Repository: appliedtopology/javaplex Branch: master Commit: 05a288a4a99f Files: 591 Total size: 5.9 MB Directory structure: gitextract_rvwgklfn/ ├── .classpath ├── .gitignore ├── .project ├── .settings/ │ ├── org.eclipse.jdt.core.prefs │ └── org.eclipse.jdt.ui.prefs ├── .travis.yml ├── LICENSE.md ├── README.md ├── build/ │ └── processing/ │ └── javaplex/ │ └── library.properties ├── build.number ├── build.xml ├── data/ │ ├── natural_images/ │ │ ├── n50000Dct.mat │ │ ├── nk15c30Dct.mat │ │ ├── nk300c30Dct.mat │ │ └── readme_natural_images.txt │ ├── point_clouds/ │ │ ├── circle.txt │ │ ├── cube.txt │ │ ├── cylinder.txt │ │ ├── octahedron.txt │ │ ├── sphere_rnd.txt │ │ └── torus.txt │ └── range_images/ │ ├── pointsRange.mat │ └── r3_50000.mat ├── doc_includes/ │ ├── overview.htm │ ├── overview_plex3.htm │ └── update_mime_types.sh ├── reports/ │ └── javaplex_tutorial/ │ ├── cleanup.sh │ ├── javaplex_tutorial.aux │ ├── javaplex_tutorial.bbl │ ├── javaplex_tutorial.bib │ ├── javaplex_tutorial.blg │ ├── javaplex_tutorial.log │ ├── javaplex_tutorial.out │ ├── javaplex_tutorial.tex │ └── javaplex_tutorial.toc ├── src/ │ ├── bsh/ │ │ ├── desktop.bsh │ │ ├── getBshPrompt.bsh │ │ ├── makeListener.bsh │ │ ├── makeWorkspace.bsh │ │ └── printBanner.bsh │ ├── cpp/ │ │ ├── Makefile │ │ └── PLEX3/ │ │ ├── DESCRIPTION │ │ ├── R/ │ │ │ ├── .plex.R.swp │ │ │ ├── plex.R │ │ │ └── zzz.R │ │ ├── autom4te.cache/ │ │ │ ├── output.0 │ │ │ ├── requests │ │ │ └── traces.0 │ │ ├── config.guess │ │ ├── config.status │ │ ├── config.sub │ │ ├── configure │ │ ├── configure.ac │ │ ├── install-sh │ │ ├── man/ │ │ │ └── rips.stream.Rd │ │ └── src/ │ │ ├── Makevars.in │ │ └── rbind_jni.cpp │ ├── java/ │ │ ├── bsh/ │ │ │ ├── JPlex.java │ │ │ ├── JTerm.java │ │ │ ├── PlexInterpreter.java │ │ │ ├── PlexReader.java │ │ │ └── commands/ │ │ │ ├── log.java │ │ │ └── setLogging.java │ │ └── edu/ │ │ └── stanford/ │ │ └── math/ │ │ ├── clustering/ │ │ │ ├── DisjointSetSystem.java │ │ │ ├── HierarchicalClustering.java │ │ │ ├── LinkageTree.java │ │ │ └── SingleLinkageClustering.java │ │ ├── mapper/ │ │ │ ├── BoundedIntervalCover.java │ │ │ ├── FilterFunctionUtility.java │ │ │ ├── FiniteMetricSpaceCover.java │ │ │ ├── HistogramCreator.java │ │ │ ├── MapperPipeline.java │ │ │ ├── MapperSpecifier.java │ │ │ ├── MetricUtility.java │ │ │ ├── RangeCoverUtility.java │ │ │ └── SetCover1D.java │ │ ├── plex/ │ │ │ ├── BCPlot.java │ │ │ ├── CRC.java │ │ │ ├── Chain.java │ │ │ ├── Cone.java │ │ │ ├── DiscreteSpace.java │ │ │ ├── DistanceData.java │ │ │ ├── EuclideanArrayData.java │ │ │ ├── ExplicitStream.java │ │ │ ├── LazyWitnessStream.java │ │ │ ├── MappedBufferData.java │ │ │ ├── Packed2Simplex.java │ │ │ ├── Packed4Simplex.java │ │ │ ├── Packed6Simplex.java │ │ │ ├── Packed8Simplex.java │ │ │ ├── Persistence.java │ │ │ ├── PersistenceBasis.java │ │ │ ├── PersistenceBasisInterval.java │ │ │ ├── PersistenceInterval.java │ │ │ ├── Plex.java │ │ │ ├── PlexMessageWindow.java │ │ │ ├── PlexSort.java │ │ │ ├── PointData.java │ │ │ ├── RDirectBufferData.java │ │ │ ├── RipsStream.java │ │ │ ├── Simplex.java │ │ │ ├── SimplexFaceIterator.java │ │ │ ├── SimplexStream.java │ │ │ ├── SimplexTable.java │ │ │ ├── TmpStream.java │ │ │ ├── Torus.java │ │ │ └── WitnessStream.java │ │ └── plex4/ │ │ ├── api/ │ │ │ ├── FilteredStreamInterface.java │ │ │ ├── PersistenceAlgorithmInterface.java │ │ │ └── Plex4.java │ │ ├── autogen/ │ │ │ └── homology/ │ │ │ ├── BooleanAbsoluteHomology.java │ │ │ ├── BooleanClassicalHomology.java │ │ │ ├── BooleanPersistenceAlgorithm.java │ │ │ ├── BooleanPersistentHomology.java │ │ │ ├── BooleanRelativeHomology.java │ │ │ ├── IntAbsoluteHomology.java │ │ │ ├── IntClassicalHomology.java │ │ │ ├── IntPersistenceAlgorithm.java │ │ │ ├── IntPersistentHomology.java │ │ │ ├── IntRelativeHomology.java │ │ │ ├── ObjectAbsoluteHomology.java │ │ │ ├── ObjectClassicalHomology.java │ │ │ ├── ObjectPersistenceAlgorithm.java │ │ │ ├── ObjectPersistentHomology.java │ │ │ └── ObjectRelativeHomology.java │ │ ├── bottleneck/ │ │ │ ├── BottleneckDistance.java │ │ │ ├── FlowEdge.java │ │ │ ├── FlowNetwork.java │ │ │ ├── FordFulkerson.java │ │ │ ├── FordFulkersonEdge.java │ │ │ ├── FordFulkersonNode.java │ │ │ └── WeightedBipartiteGraph.java │ │ ├── examples/ │ │ │ ├── CellComplexOperations.java │ │ │ ├── CellStreamExamples.java │ │ │ ├── DeSilvaMorozovJohanssonExample.java │ │ │ ├── PointCloudExamples.java │ │ │ ├── SimplexStreamExamples.java │ │ │ └── SimplicialComplexOperations.java │ │ ├── generation/ │ │ │ └── GeneratorDriver.java │ │ ├── graph/ │ │ │ ├── AbstractUndirectedGraph.java │ │ │ ├── AbstractWeightedUndirectedGraph.java │ │ │ ├── UndirectedListEdgeIterator.java │ │ │ ├── UndirectedListGraph.java │ │ │ ├── UndirectedWeightedListGraph.java │ │ │ ├── io/ │ │ │ │ └── GraphDotWriter.java │ │ │ ├── metric/ │ │ │ │ ├── GraphMetricFactory.java │ │ │ │ └── ShortestPathMetric.java │ │ │ ├── random/ │ │ │ │ ├── BAGraph.java │ │ │ │ ├── BinaryHierarchicalGraph.java │ │ │ │ ├── BinaryTree.java │ │ │ │ ├── BinaryTreeGraph.java │ │ │ │ ├── CircleGraph.java │ │ │ │ ├── ClusteredERGraph.java │ │ │ │ ├── ErdosRenyiGraph.java │ │ │ │ ├── ForestFireGraph.java │ │ │ │ ├── GraphInstanceGenerator.java │ │ │ │ ├── HierarchicalERGraph.java │ │ │ │ ├── KNearestNeighborsGraph.java │ │ │ │ ├── ManifoldGraph.java │ │ │ │ ├── PrescribedDegrees.java │ │ │ │ ├── RandomGeometricGraph.java │ │ │ │ ├── SphereGraph.java │ │ │ │ ├── StochasticBlockmodel.java │ │ │ │ └── TorusGraph.java │ │ │ └── utility/ │ │ │ └── GraphUtility.java │ │ ├── homology/ │ │ │ ├── barcodes/ │ │ │ │ ├── AnnotatedBarcodeCollection.java │ │ │ │ ├── BarcodeCollection.java │ │ │ │ ├── BarcodeUtility.java │ │ │ │ ├── Interval.java │ │ │ │ ├── IntervalLengthComparator.java │ │ │ │ └── PersistenceInvariantDescriptor.java │ │ │ ├── chain_basis/ │ │ │ │ ├── Cell.java │ │ │ │ ├── CellComparator.java │ │ │ │ ├── PrimitiveBasisElement.java │ │ │ │ ├── Simplex.java │ │ │ │ ├── SimplexComparator.java │ │ │ │ ├── SimplexPair.java │ │ │ │ └── SimplexPairComparator.java │ │ │ ├── filtration/ │ │ │ │ ├── ExternalConverter.java │ │ │ │ ├── FiltrationConverter.java │ │ │ │ ├── FiltrationUtility.java │ │ │ │ ├── IdentityConverter.java │ │ │ │ ├── IncreasingLinearConverter.java │ │ │ │ └── StaticConverter.java │ │ │ ├── interfaces/ │ │ │ │ ├── AbstractPersistenceAlgorithm.java │ │ │ │ └── AbstractPersistenceBasisAlgorithm.java │ │ │ ├── nonautogen/ │ │ │ │ ├── DisjointSetSystem.java │ │ │ │ └── PersistentCohomologyPrototype.java │ │ │ ├── utility/ │ │ │ │ └── HomologyUtility.java │ │ │ └── zigzag/ │ │ │ ├── AbstractHomologyTracker.java │ │ │ ├── AbstractPersistenceTracker.java │ │ │ ├── BasisTrackingUtility.java │ │ │ ├── HomologyBasisTracker.java │ │ │ ├── IntervalDescriptor.java │ │ │ ├── IntervalTracker.java │ │ │ ├── SimpleHomologyBasisTracker.java │ │ │ ├── ZigZagHomology.java │ │ │ └── bootstrap/ │ │ │ ├── InducedHomologyMappingUtility.java │ │ │ ├── SimplexStreamUtility.java │ │ │ ├── VietorisRipsBootstrapper.java │ │ │ └── WitnessBootstrapper.java │ │ ├── interop/ │ │ │ ├── Plex3PersistenceAlgorithm.java │ │ │ ├── Plex3Stream.java │ │ │ ├── Plex3ToPlex4BarcodeAdapter.java │ │ │ └── Plex3ToPlex4SimplexAdapter.java │ │ ├── io/ │ │ │ ├── BarcodeWriter.java │ │ │ ├── BufferedImageWriter.java │ │ │ ├── DoubleArrayReaderWriter.java │ │ │ ├── FileIOUtility.java │ │ │ ├── FileManager.java │ │ │ ├── MatlabInterface.java │ │ │ ├── MatlabWriter.java │ │ │ ├── ObjReader.java │ │ │ ├── ObjectReader.java │ │ │ ├── ObjectWriter.java │ │ │ ├── SimplexStreamReaderWriter.java │ │ │ └── Table.java │ │ ├── kd/ │ │ │ ├── KDEuclideanMetricSpace.java │ │ │ ├── KDNode.java │ │ │ └── KDTree.java │ │ ├── metric/ │ │ │ ├── impl/ │ │ │ │ ├── EuclideanMetricSpace.java │ │ │ │ ├── ExplicitMetricSpace.java │ │ │ │ ├── ObjectSearchableFiniteMetricSpace.java │ │ │ │ └── TruncatedPriorityQueue.java │ │ │ ├── interfaces/ │ │ │ │ ├── AbstractIntMetricSpace.java │ │ │ │ ├── AbstractObjectMetric.java │ │ │ │ ├── AbstractObjectMetricSpace.java │ │ │ │ └── AbstractSearchableMetricSpace.java │ │ │ ├── landmark/ │ │ │ │ ├── ExplicitLandmarkSelector.java │ │ │ │ ├── LandmarkSelector.java │ │ │ │ ├── MaxMinLandmarkSelector.java │ │ │ │ └── RandomLandmarkSelector.java │ │ │ └── utility/ │ │ │ ├── DensityEstimation.java │ │ │ └── MetricUtility.java │ │ ├── streams/ │ │ │ ├── derived/ │ │ │ │ ├── DualStream.java │ │ │ │ ├── HomStream.java │ │ │ │ ├── TensorStream.java │ │ │ │ └── TruncatedStream.java │ │ │ ├── filter/ │ │ │ │ ├── EccentricityFilterFunction.java │ │ │ │ ├── ExplicitIntFilterFunction.java │ │ │ │ ├── FilterFunction.java │ │ │ │ ├── IntFilterFunction.java │ │ │ │ ├── KernelDensityFilterFunction.java │ │ │ │ ├── MaxSimplicialFilterFunction.java │ │ │ │ ├── MinSimplicialFilterFunction.java │ │ │ │ └── RandomProjectionFilterFunction.java │ │ │ ├── impl/ │ │ │ │ ├── ExplicitCellStream.java │ │ │ │ ├── ExplicitSimplexStream.java │ │ │ │ ├── ExplicitStream.java │ │ │ │ ├── FlagComplexStream.java │ │ │ │ ├── FlexibleVietorisRipsStream.java │ │ │ │ ├── GeometricSimplexStream.java │ │ │ │ ├── LazyWitnessStream.java │ │ │ │ ├── VietorisRipsStream.java │ │ │ │ ├── WitnessBicomplex.java │ │ │ │ └── WitnessStream.java │ │ │ ├── interfaces/ │ │ │ │ ├── AbstractFilteredStream.java │ │ │ │ └── PrimitiveStream.java │ │ │ ├── multi/ │ │ │ │ ├── AbstractMultifilteredStream.java │ │ │ │ ├── AbstractStreamFlattener.java │ │ │ │ ├── BifilteredMetricStream.java │ │ │ │ ├── HalfplaneFlattener.java │ │ │ │ ├── IncreasingOrthantFlattener.java │ │ │ │ └── PrimitiveMultifilteredStream.java │ │ │ ├── storage_structures/ │ │ │ │ ├── HashedStorageStructure.java │ │ │ │ ├── HashedStorageStructureIterator.java │ │ │ │ ├── IntOrderedIterator.java │ │ │ │ ├── SortedStorageStructure.java │ │ │ │ ├── StreamStorageStructure.java │ │ │ │ └── StreamStorageStructureFactory.java │ │ │ └── utility/ │ │ │ ├── FilteredComparator.java │ │ │ ├── SkeletalMetric.java │ │ │ └── StreamUtility.java │ │ ├── utility/ │ │ │ ├── ArrayUtility.java │ │ │ ├── CollectionUtility.java │ │ │ ├── ComparisonUtility.java │ │ │ ├── ExceptionUtility.java │ │ │ ├── FormalSumUtility.java │ │ │ ├── MathUtility.java │ │ │ ├── MemoryUtility.java │ │ │ ├── Quicksort.java │ │ │ └── RandomUtility.java │ │ └── visualization/ │ │ ├── AbstractVisualizer.java │ │ ├── BarcodeVisualizer.java │ │ ├── HomologyGeneratorVisualizer.java │ │ ├── HomologyVisualizer.java │ │ ├── ImageRegion.java │ │ ├── PAppletSplitscreen.java │ │ ├── Point2D.java │ │ └── PointCloudScaling.java │ ├── matlab/ │ │ ├── experimental/ │ │ │ ├── graph_classification/ │ │ │ │ ├── ad_health_example.m │ │ │ │ ├── ad_health_plot.m │ │ │ │ ├── average_block_matrix.m │ │ │ │ ├── blockmodel_er_test.m │ │ │ │ ├── blockmodel_test.m │ │ │ │ ├── blockmodel_test2.m │ │ │ │ ├── comparative_barcode_analysis.m │ │ │ │ ├── comparative_graph_analysis.m │ │ │ │ ├── comprehensive_test.m │ │ │ │ ├── compute_adjacency_matrix.m │ │ │ │ ├── compute_normalized_laplacian.m │ │ │ │ ├── create_graph_from_edgelist.m │ │ │ │ ├── er_test.m │ │ │ │ ├── er_test_increasing_sizes.m │ │ │ │ ├── filter_distance_matrix.m │ │ │ │ ├── get_adhealth_edges16.m │ │ │ │ ├── get_adhealth_edges44.m │ │ │ │ ├── get_adhealth_edges47.m │ │ │ │ ├── heatmap.m │ │ │ │ ├── heatmap_examples.m │ │ │ │ ├── hetergeneous_test.m │ │ │ │ ├── pairwise_barcode_analysis.m │ │ │ │ ├── pairwise_graph_analysis.m │ │ │ │ ├── pairwise_row_distances.m │ │ │ │ ├── plot_example.m │ │ │ │ ├── plot_graph.m │ │ │ │ ├── random_geometric_graph.m │ │ │ │ ├── random_geometric_test.m │ │ │ │ ├── rg_plot_example.m │ │ │ │ ├── sandbox.m │ │ │ │ ├── spectral_embedding.m │ │ │ │ ├── torus_geometric.m │ │ │ │ ├── visualize_comparison_distances.m │ │ │ │ └── visualize_dissimilarity_matrix.m │ │ │ ├── hom/ │ │ │ │ ├── combinatorial/ │ │ │ │ │ ├── brute_force_test.m │ │ │ │ │ ├── flip_random_entry.m │ │ │ │ │ ├── get_binary_subsets.m │ │ │ │ │ ├── greedy_search.m │ │ │ │ │ ├── greedy_search_test.m │ │ │ │ │ ├── hom_parameterization_example.m │ │ │ │ │ ├── simmulated_annealing_test.m │ │ │ │ │ └── simulated_annealing.m │ │ │ │ ├── continuous/ │ │ │ │ │ ├── circle_example.m │ │ │ │ │ ├── create_max_lp.m │ │ │ │ │ ├── create_positive_lp.m │ │ │ │ │ ├── create_positive_lp2.m │ │ │ │ │ └── tetra_octa_example.m │ │ │ │ ├── hom_utility/ │ │ │ │ │ ├── compute_mapping.m │ │ │ │ │ ├── default_objective.m │ │ │ │ │ └── hom_parameterization.m │ │ │ │ └── load_hom.m │ │ │ ├── hom_messy/ │ │ │ │ ├── L2_distance.m │ │ │ │ ├── alexander_whitney_difference.m │ │ │ │ ├── alexander_whitney_loss_function.m │ │ │ │ ├── circle_distance.m │ │ │ │ ├── codomain_points.txt │ │ │ │ ├── codomain_stream.txt │ │ │ │ ├── colorGraph.m │ │ │ │ ├── compute_interpolated_points.m │ │ │ │ ├── compute_mapping.m │ │ │ │ ├── convert_sparse_matrix.m │ │ │ │ ├── create_max_lp.m │ │ │ │ ├── create_positive_lp.m │ │ │ │ ├── create_quotient_complex.m │ │ │ │ ├── create_quotient_mapper_complex.m │ │ │ │ ├── density_at_point.m │ │ │ │ ├── density_function.m │ │ │ │ ├── density_maximization_test.m │ │ │ │ ├── density_objective.m │ │ │ │ ├── domain_points.txt │ │ │ │ ├── domain_stream.txt │ │ │ │ ├── embedding_optimization_test.asv │ │ │ │ ├── embedding_optimization_test.m │ │ │ │ ├── embedding_optimization_test2.m │ │ │ │ ├── fast_kron_mult.m │ │ │ │ ├── flatten.m │ │ │ │ ├── floyd_warshall.m │ │ │ │ ├── gaussian_kernel_densities.m │ │ │ │ ├── gaussian_kernel_density.m │ │ │ │ ├── get_edges.m │ │ │ │ ├── gradient.m │ │ │ │ ├── graph_embedding.m │ │ │ │ ├── hom_example_test.m │ │ │ │ ├── hom_optimization_example.m │ │ │ │ ├── hom_parameterization.m │ │ │ │ ├── hom_visualization_example.m │ │ │ │ ├── kron_test.m │ │ │ │ ├── load_javaplex.m │ │ │ │ ├── mapper.m │ │ │ │ ├── mapperTutorial.m │ │ │ │ ├── mapper_mapping_test.m │ │ │ │ ├── mapping.txt │ │ │ │ ├── matrix.txt │ │ │ │ ├── normalize_rows.m │ │ │ │ ├── objectivize.m │ │ │ │ ├── pdist2.m │ │ │ │ ├── returnBarCode_linkage_noplex.m │ │ │ │ ├── show_graph.m │ │ │ │ ├── smoothness_objective.m │ │ │ │ ├── test_aw_optimization.m │ │ │ │ ├── to_graph.m │ │ │ │ ├── to_sparse_matlab_matrix.m │ │ │ │ ├── unflatten.m │ │ │ │ └── writeDotFile.m │ │ │ ├── multifiltration_flattening/ │ │ │ │ ├── Syn2d_5g1k3c.mat │ │ │ │ ├── Syn2d_5g1k3c_c1.txt │ │ │ │ ├── clustering_example.m │ │ │ │ └── flattened_clusters.eps │ │ │ ├── vietoris_rips_bootstrap/ │ │ │ │ ├── basic_circle_example.m │ │ │ │ ├── basic_sphere_example.m │ │ │ │ ├── circle_incremental.m │ │ │ │ ├── circle_long.m │ │ │ │ ├── coreSubset.m │ │ │ │ ├── core_subset_test.m │ │ │ │ ├── core_verification_test.m │ │ │ │ ├── ensure_density_indices.m │ │ │ │ ├── figure_8_incremental.m │ │ │ │ ├── filtered_barcodes.m │ │ │ │ ├── filtered_bootstrap.m │ │ │ │ ├── gaussian_kernel_densities.m │ │ │ │ ├── gaussian_kernel_density.m │ │ │ │ ├── get_cache_file_path.m │ │ │ │ ├── get_core_subset_cached.m │ │ │ │ ├── get_data_file_path.m │ │ │ │ ├── kDensitySlow.m │ │ │ │ ├── load_density_indices.m │ │ │ │ ├── natural_samples_bootstrap_example.m │ │ │ │ ├── natural_samples_example.m │ │ │ │ ├── nk15c30Dct_LW0.m │ │ │ │ ├── nk15c30Dct_LW1.m │ │ │ │ ├── nk15c30Dct_VR.m │ │ │ │ ├── nk300c30Dct_LW0.m │ │ │ │ ├── nk300c30Dct_LW1.m │ │ │ │ ├── nk300c30Dct_VR.m │ │ │ │ ├── outputs/ │ │ │ │ │ ├── n50000Dct-15-15000-1.100.eps │ │ │ │ │ ├── n50000Dct-300-15000-1.100.eps │ │ │ │ │ ├── n50000Dct-samples-10-20-1-15000-1.100.eps │ │ │ │ │ ├── n50000Dct-samples-13-17-1-15000-1.100.eps │ │ │ │ │ ├── n50000Dct-samples-15-45-5-15000-1.100.eps │ │ │ │ │ ├── n50000Dct-samples-15-450-15-15000-1.100.eps │ │ │ │ │ ├── n50000Dct-samples-2-400-1-15000-1.100.eps │ │ │ │ │ ├── n50000Dct-samples-25-350-25-15000-1.100.eps │ │ │ │ │ ├── n50000Dct-samples-300-350-25-15000-1.100.eps │ │ │ │ │ ├── n50000Dct-samples-400-800-25-15000-1.100.eps │ │ │ │ │ ├── n50000Dct-samples-5-100-5-15000-1.100.eps │ │ │ │ │ ├── n50000Dct-samples-5-25-1-15000-1.100.eps │ │ │ │ │ ├── n50000Dct-samples-5-400-5-15000-1.100.eps │ │ │ │ │ ├── n50000Dct-samples-5-50-5-15000-1.100.eps │ │ │ │ │ └── nk300c30Dct_LW0.eps │ │ │ │ └── parfor_test.m │ │ │ └── witness_bootstrap/ │ │ │ ├── circle_example.m │ │ │ ├── circle_incremental.m │ │ │ ├── circle_pairwise.m │ │ │ ├── figure8_example.m │ │ │ ├── figure8_incremental.m │ │ │ ├── figure8_pairwise.m │ │ │ ├── figure8_samples.m │ │ │ ├── image_patch_examples.m │ │ │ └── torus_example.m │ │ └── for_distribution/ │ │ ├── README │ │ ├── basic_examples/ │ │ │ ├── barcode_plot_example.m │ │ │ ├── boundary_extraction_example.m │ │ │ ├── cellular_test.m │ │ │ ├── dump_example.m │ │ │ ├── endpoint_extraction_example.m │ │ │ ├── ensure_faces_test.m │ │ │ ├── explicit_metric_space_test.m │ │ │ ├── explicit_simplex_test.m │ │ │ ├── explicit_simplex_test2.m │ │ │ ├── filter_long_intervals.m │ │ │ ├── house_example_test.m │ │ │ ├── landmark_test.m │ │ │ ├── representatives_example.m │ │ │ ├── simplicial_sphere_test.m │ │ │ ├── sphere_test.m │ │ │ └── vietoris_rips_example.m │ │ ├── benchmarks/ │ │ │ └── rips_persistence.m │ │ ├── jython/ │ │ │ ├── basic_vr_example.jy │ │ │ ├── cellular_example.jy │ │ │ ├── explicit_simplex_example.jy │ │ │ ├── image_patch_example.jy │ │ │ ├── pointsRange.csv │ │ │ ├── quick_povray.sh │ │ │ ├── representatives_example.jy │ │ │ ├── sphere_witness_example.jy │ │ │ ├── torus_witness_example.jy │ │ │ └── visualization_example.jy │ │ ├── load_javaplex.m │ │ ├── tutorial_examples/ │ │ │ ├── bottleneck_distance_example.m │ │ │ ├── coreSubset.m │ │ │ ├── core_subsets_example.m │ │ │ ├── cyclo_octane_example.m │ │ │ ├── dct.m │ │ │ ├── eulerCharacteristic.m │ │ │ ├── euler_characteristic_example.m │ │ │ ├── explicit_metric_space_example.m │ │ │ ├── explicit_simplex_example.m │ │ │ ├── house_example.m │ │ │ ├── kDensitySlow.m │ │ │ ├── landmark_example.m │ │ │ ├── lazy_witness_example.m │ │ │ ├── optical_image_example.m │ │ │ ├── pointcloud_example.m │ │ │ ├── pointsCycloOctane.mat │ │ │ ├── pointsOpticalDct_k15.mat │ │ │ ├── pointsOpticalDct_k300.mat │ │ │ ├── pointsRange.mat │ │ │ ├── pointsTorusGrid.mat │ │ │ ├── range_image_example.m │ │ │ ├── rips_example.m │ │ │ ├── sublevelset_example.m │ │ │ ├── sublevelset_persistence.m │ │ │ └── witness_example.m │ │ ├── tutorial_solutions/ │ │ │ ├── exercise_1.m │ │ │ ├── exercise_11.m │ │ │ ├── exercise_12.m │ │ │ ├── exercise_13.m │ │ │ ├── exercise_14.m │ │ │ ├── exercise_2.m │ │ │ ├── exercise_21.m │ │ │ ├── exercise_22.m │ │ │ ├── exercise_23.m │ │ │ ├── exercise_24.m │ │ │ ├── exercise_3.m │ │ │ ├── exercise_4.m │ │ │ ├── exercise_5.m │ │ │ ├── exercise_6.m │ │ │ ├── exercise_7.m │ │ │ ├── exercise_8.m │ │ │ ├── exercise_9.m │ │ │ ├── flatKleinDistanceMatrix.m │ │ │ ├── flatTorusDistanceMatrix.m │ │ │ ├── getDoubleTorusPoints.m │ │ │ └── projPlaneDistanceMatrix.m │ │ ├── utility/ │ │ │ ├── convert_sparse_matrix.m │ │ │ ├── create_landmark_pov_file.m │ │ │ ├── create_pov_file.m │ │ │ ├── flatten.m │ │ │ ├── persistence_diagram.m │ │ │ ├── plot_barcodes.m │ │ │ ├── render_onscreen.m │ │ │ ├── render_pov_file.m │ │ │ └── to_sparse_matlab_matrix.m │ │ └── visualization_examples/ │ │ ├── landmark_set_pov.m │ │ ├── witness_sphere_opengl.m │ │ └── witness_sphere_pov.m │ └── processing/ │ ├── javaplex/ │ │ └── library.properties │ ├── javaplexDemo/ │ │ ├── State.java │ │ └── javaplexDemo.pde │ └── readme.txt ├── src_test/ │ └── java/ │ └── edu/ │ └── stanford/ │ └── math/ │ ├── mapper/ │ │ ├── ClusteringTest.java │ │ ├── HistogramTest.java │ │ └── MapperTest.java │ ├── plex/ │ │ ├── CRCTest.java │ │ ├── ChainTest.java │ │ ├── CubeHashTest.java │ │ ├── ExplicitStreamTest.java │ │ ├── LazyWitnessStreamTest.java │ │ ├── MappedBufferDataTest.java │ │ ├── Packed2SimplexTest.java │ │ ├── Packed4SimplexTest.java │ │ ├── Packed6SimplexTest.java │ │ ├── PersistenceBasisTest.java │ │ ├── PersistenceIntervalTest.java │ │ ├── PersistenceTest.java │ │ ├── PlexSortTest.java │ │ ├── PlexTest.java │ │ ├── RipsStreamTest.java │ │ ├── SimplexFaceIteratorTest.java │ │ ├── SimplexTableTest.java │ │ ├── SimplexTest.java │ │ ├── TorusTest.java │ │ └── WitnessStreamTest.java │ └── plex4/ │ ├── bottleneck/ │ │ ├── BottleneckDistanceTest.java │ │ └── FordFulkersonTest.java │ ├── example_tests/ │ │ ├── CustomFiltrationTest.java │ │ ├── FiltrationTimeTest.java │ │ ├── FormalSumTest.java │ │ ├── GraphTest.java │ │ ├── HomVerificationTest.java │ │ ├── MultifilteredFlatteningTest.java │ │ ├── VdsWitnessExample.java │ │ ├── VietorisRipsBootstrapTest.java │ │ ├── WitnessBootstrapTest.java │ │ └── ZigZagTest.java │ ├── homology/ │ │ ├── HomTester.java │ │ ├── PersistenceAlgorithmTester.java │ │ └── StreamTester.java │ ├── metric/ │ │ └── SearchableMetricSpaceTester.java │ ├── test_utility/ │ │ └── Timing.java │ └── unit_tests/ │ ├── DeSilvaMorozovJohanssonTest.java │ ├── ExperimentalEqualityTest.java │ ├── PersistenceAlgorithmEqualityTest.java │ ├── SearchableMetricSpaceTest.java │ ├── SimplicialSphereTest.java │ └── StreamsTest.java └── templates/ └── homology/ ├── AbsoluteHomology.vm ├── ClassicalHomology.vm ├── PersistenceAlgorithm.vm ├── PersistentHomology.vm └── RelativeHomology.vm ================================================ FILE CONTENTS ================================================ ================================================ FILE: .classpath ================================================ ================================================ FILE: .gitignore ================================================ *.class # Package Files # *.jar *.war *.ear /bin/ # Mac system files *.DS_Store ================================================ FILE: .project ================================================ javaplex org.eclipse.jdt.core.javabuilder net.sourceforge.metrics.builder org.eclipse.jdt.core.javanature net.sourceforge.metrics.nature ================================================ FILE: .settings/org.eclipse.jdt.core.prefs ================================================ #Tue Jul 06 16:52:58 PDT 2010 eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve org.eclipse.jdt.core.compiler.compliance=1.5 org.eclipse.jdt.core.compiler.debug.lineNumber=generate org.eclipse.jdt.core.compiler.debug.localVariable=generate org.eclipse.jdt.core.compiler.debug.sourceFile=generate org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.enumIdentifier=error org.eclipse.jdt.core.compiler.source=1.5 org.eclipse.jdt.core.formatter.align_type_members_on_columns=false org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16 org.eclipse.jdt.core.formatter.alignment_for_assignment=0 org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16 org.eclipse.jdt.core.formatter.alignment_for_compact_if=16 org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80 org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0 org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16 org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16 org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16 org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16 org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16 org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16 org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 org.eclipse.jdt.core.formatter.blank_lines_after_imports=1 org.eclipse.jdt.core.formatter.blank_lines_after_package=1 org.eclipse.jdt.core.formatter.blank_lines_before_field=0 org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0 org.eclipse.jdt.core.formatter.blank_lines_before_imports=1 org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1 org.eclipse.jdt.core.formatter.blank_lines_before_method=1 org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1 org.eclipse.jdt.core.formatter.blank_lines_before_package=0 org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1 org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false org.eclipse.jdt.core.formatter.comment.format_block_comments=true org.eclipse.jdt.core.formatter.comment.format_header=false org.eclipse.jdt.core.formatter.comment.format_html=true org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true org.eclipse.jdt.core.formatter.comment.format_line_comments=true org.eclipse.jdt.core.formatter.comment.format_source_code=true org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true org.eclipse.jdt.core.formatter.comment.indent_root_tags=true org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert org.eclipse.jdt.core.formatter.comment.line_length=80 org.eclipse.jdt.core.formatter.compact_else_if=true org.eclipse.jdt.core.formatter.continuation_indentation=2 org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2 org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true org.eclipse.jdt.core.formatter.indent_empty_lines=false org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false org.eclipse.jdt.core.formatter.indentation.size=4 org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false org.eclipse.jdt.core.formatter.lineSplit=160 org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0 org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1 org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true org.eclipse.jdt.core.formatter.tabulation.char=tab org.eclipse.jdt.core.formatter.tabulation.size=4 org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true ================================================ FILE: .settings/org.eclipse.jdt.ui.prefs ================================================ #Tue Jul 06 16:52:58 PDT 2010 eclipse.preferences.version=1 formatter_profile=_Andrew formatter_settings_version=11 ================================================ FILE: .travis.yml ================================================ language: java ================================================ FILE: LICENSE.md ================================================ Copyright (c) 2014, Henry Adams, Mikael Vejdemo-Johansson, Andrew Tausz All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the {organization} nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: README.md ================================================ # JavaPlex ## Persistent Homology and Topological Data Analysis Library The `JavaPlex` library implements persistent homology and related techniques from computational and applied topology, in a library designed for ease of use, ease of access from Matlab and java-based systems, and ease of extensions for further research projects and approaches. `JavaPlex` is mainly developed by the [Computational Topology workgroup](http://comptop.stanford.edu) at Stanford University, and is based on previous similar packages from the same group. For persistent homology and its capabilities, we recommend the survey article [Topology and Data](http://www.ams.org/journals/bull/2009-46-02/S0273-0979-09-01249-X/S0273-0979-09-01249-X.pdf) by Gunnar Carlsson. ## How to get started? * Take a look at the [documentation overview](https://github.com/appliedtopology/javaplex/wiki/Overview) * Take a look at the [latest release](https://github.com/appliedtopology/javaplex/releases/). The tutorial PDF is available for download there (and also [here](http://www.math.colostate.edu/~adams/research/javaplex_tutorial.pdf)). There is also a [tutorial wiki page](https://github.com/appliedtopology/javaplex/wiki/Tutorial). * From the [latest release](https://github.com/appliedtopology/javaplex/releases/), you can download and start playing with the latest matlab examples. ## For more information * Read the [wiki page documentation](https://github.com/appliedtopology/javaplex/wiki/Overview) * Look at the [javadoc documentation](http://appliedtopology.github.io/javaplex/doc/) ## Wiki links * [Architecture Notes](https://github.com/appliedtopology/javaplex/wiki/Architecture-Notes) * [Citation Information](https://github.com/appliedtopology/javaplex/wiki/Citation-Information) * [Cohomology](https://github.com/appliedtopology/javaplex/wiki/) * [Home](https://github.com/appliedtopology/javaplex/wiki/Home) * [Interoperability](https://github.com/appliedtopology/javaplex/wiki/Interoperability) * [Overview](https://github.com/appliedtopology/javaplex/wiki/Overview) * [Troubleshooting](https://github.com/appliedtopology/javaplex/wiki/Troubleshooting) * [Tutorial](https://github.com/appliedtopology/javaplex/wiki/Tutorial) ## Citing JavaPlex To cite `JavaPlex`, please consult the [Citation Information](https://github.com/appliedtopology/javaplex/wiki/Citation-Information) page. ## Old Site `JavaPlex` was formerly hosted at [https://code.google.com/p/javaplex/](https://code.google.com/p/javaplex/). As of spring 2014, we have moved to this present page at GitHub. ## Updates * July, 2018: [Version 4.3.4](https://github.com/appliedtopology/javaplex/releases/) is released. * July, 2018: Version 4.3.3 is released. * June, 2017: Version 4.3.1 is released. * May, 2017: Version 4.3.0 is released. Installation in Matlab 2016 should now work again! * March, 2016: Version 4.2.5 is released * Jan, 2016: Version 4.2.4 released * July, 2015: Version 4.2.3 released * March, 2015: Version 4.2.2 released * July, 2014: Version 4.2.1 released * April, 2014: Google Code hosting abandoned * May, 2012: Version 4.1.0 released * For frequently asked questions regarding `JavaPlex` and troubleshooting information, consult the [troubleshooting](https://github.com/appliedtopology/javaplex/wiki/Troubleshooting) page. ================================================ FILE: build/processing/javaplex/library.properties ================================================ name=javaPlex authorList=Andrew Tausz and Mikael Vejdemo-Johansson and Henry Adams url=http://code.google.com/p/javaplex category=Geometry, Math sentence=Framework for computational topology paragraph= version=101 prettyVersion=4.3.4 ================================================ FILE: build.number ================================================ #Build Number for ANT. Do not edit! #Sun Jul 15 19:57:53 MDT 2018 build.number=102 ================================================ FILE: build.xml ================================================ ================================================ FILE: data/natural_images/readme_natural_images.txt ================================================ A natural image is a photograph. Consider natural images which contain a greyscale value at each pixel. In the paper "On the local behavior of spaces of natural images", authors Gunnar Carlsson, Tigran Ishkhanov, Vin de Silva, and Afra Zomorodian study several dense core subsets of a space of high-contrast 3x3 natural image patches. In particular, the authors find that their dense core subset X(300,30) has the topology of a circle and that their dense core subset X(15,30) has the topology of an interesting space containing three circles. A more complicated subset has the topology of a Klein bottle. The paper "On the local behavior of spaces of natural images" is available at the following website: http://www.springerlink.com/content/pm1718435n685294/ These dense core subsets are also discussed in the paper "Topological estimation using witness complexes" by Vin de Silva and Gunnar Carlsson, which is available at http://pages.pomona.edu/~vds04747/public/papers/witness.pdf The dataset of natural image patches is from "The nonlinear statistics of high-contrast patches in natural images" by Ann Lee, Kim Pdersen, and David Mumford, which is available at http://www.informatik.uni-trier.de/~ley/db/journals/ijcv/ijcv54.html The patches are taken from van Hateren's natural image database, which is available at http://www.kyb.mpg.de/bethge/vanhateren/index.php See the paper "Independent component filters of natural images compared with simple cells in primary visual cortex" by J H van Hateren and A van der Schaaf at http://www.ncbi.nlm.nih.gov/pmc/articles/PMC1688904/ The Matlab file n50000Dct.mat is a collection of 50000 random points from the space M of patches in "On the local behavior of spaces of natural images". The Matlab file nk300c30Dct.mat contains a version of the core subset X(300,30). The Matlab file nk15c30Dct.mat contains a version of the core subset X(15,30). ================================================ FILE: data/point_clouds/circle.txt ================================================ 0,1,1 0.125333233564304,0.992114701314478,1 0.248689887164855,0.968583161128631,1 0.368124552684678,0.929776485888251,1 0.481753674101715,0.876306680043864,1 0.587785252292473,0.809016994374947,1 0.684547105928689,0.728968627421412,1 0.770513242775789,0.63742398974869,1 0.844327925502015,0.535826794978997,1 0.90482705246602,0.425779291565073,1 0.951056516295154,0.309016994374947,1 0.982287250728689,0.187381314585725,1 0.998026728428272,0.0627905195293133,1 0.998026728428272,-0.0627905195293134,1 0.982287250728689,-0.187381314585725,1 0.951056516295154,-0.309016994374948,1 0.904827052466019,-0.425779291565073,1 0.844327925502015,-0.535826794978997,1 0.770513242775789,-0.63742398974869,1 0.684547105928689,-0.728968627421412,1 0.587785252292473,-0.809016994374947,1 0.481753674101715,-0.876306680043864,1 0.368124552684678,-0.929776485888251,1 0.248689887164855,-0.968583161128631,1 0.125333233564304,-0.992114701314478,1 -3.21624529935327e-16,-1,1 -0.125333233564304,-0.992114701314478,1 -0.248689887164855,-0.968583161128631,1 -0.368124552684678,-0.929776485888251,1 -0.481753674101715,-0.876306680043863,1 -0.587785252292473,-0.809016994374947,1 -0.684547105928689,-0.728968627421412,1 -0.770513242775789,-0.63742398974869,1 -0.844327925502015,-0.535826794978996,1 -0.90482705246602,-0.425779291565072,1 -0.951056516295154,-0.309016994374948,1 -0.982287250728689,-0.187381314585725,1 -0.998026728428272,-0.0627905195293132,1 -0.998026728428272,0.0627905195293137,1 -0.982287250728689,0.187381314585725,1 -0.951056516295154,0.309016994374947,1 -0.90482705246602,0.425779291565073,1 -0.844327925502015,0.535826794978997,1 -0.770513242775789,0.63742398974869,1 -0.684547105928688,0.728968627421412,1 -0.587785252292473,0.809016994374948,1 -0.481753674101715,0.876306680043864,1 -0.368124552684678,0.929776485888251,1 -0.248689887164854,0.968583161128631,1 -0.125333233564304,0.992114701314478,1 -2.44929359829471e-16,1,1 ================================================ FILE: data/point_clouds/cube.txt ================================================ 0,0,0 0,0,1 0,1,0 0,1,1 1,0,0 1,0,1 1,1,0 1,1,1 ================================================ FILE: data/point_clouds/cylinder.txt ================================================ 1.98155906437293,1.01389735228371,9.91560618858784 9.08504984057864,7.88311772218694,7.3735861806199 9.18819705140907,7.73111798693655,9.24848021706566 0.297367590525015,6.69860190196393,4.00469116866589 8.37947995174046,1.31501489069708,0.380953245330602 3.8633849243986,9.86909705899519,6.67675641831011 0.342358399089671,3.18165605083376,1.17942726472393 4.30273571776188,9.95114355686794,2.67158857081085 6.74175707022841,0.313179936427116,4.56938061863184 7.55717192220169,0.703388339597898,1.44128279294819 0.298787263452959,6.70252718208194,9.62811290519312 2.81609087584908,9.49783736227205,1.20725980959833 9.89843268972806,3.99732498574888,1.66349642444402 4.57169509699127,0.0183782851305656,3.90655303606763 8.32049682214699,8.73822161650587,7.36547205829993 2.11196347038048,9.08157383904582,2.40806992864236 0.723575182144563,7.59078960497183,8.76940758666024 3.64775712796965,0.186327886629262,4.48188315611333 0.295002987566648,6.69204110854117,1.70002741506323 3.72061581509227,0.166453051080605,0.779146109707654 2.94226994104994,0.443055079936409,5.65943384310231 2.9928126057908,9.57943214433053,0.416400467511266 8.00157963108108,8.99881478919432,1.78701147902757 0.0492417001941963,5.69999446919525,5.71796077070758 0.0381298317631824,4.38368479366356,4.94143709540367 0.0395865408689104,4.37206822466837,9.67417690902948 4.6533743259249,0.0120294064547668,1.32679875940084 1.20949259809144,8.26068300147015,4.1339967190288 9.90782881098922,5.95562354618549,8.07800238952041 2.36826753557501,9.25135087186315,8.4695887262933 9.54637444113232,7.08098040380461,1.49970934260637 9.67481897887884,3.22628426327268,2.78491820208728 2.96700892507886,0.431964613831131,5.33804455772042 4.34009512180831,0.0437387526746731,8.58999602030963 6.00137583948972,0.101301557751666,2.3132145148702 9.90972770278314,4.05418083941814,2.06402251496911 5.44400291400843,9.98024712362268,1.98890739586204 9.59057436323983,6.98157185475702,6.89322384539992 7.84754576701277,9.10992495123301,8.41165363555774 7.164404508691,0.492744391233387,7.64313261024654 3.88506360668586,0.125893226563081,8.46851739101112 0.128510562079963,3.87368270179601,6.30169098032638 7.36716245099221,0.595849465491384,7.36188026145101 9.82149805532027,3.67593183614177,3.59787971712649 9.54058412077095,2.90641555169067,3.14378441078588 8.51243925866423,8.55847867131367,3.29378595110029 0.504254282057865,2.81178830100811,4.53104746062309 4.31058221154647,0.0477577691550826,7.6893353369087 4.44022622877714,0.0314334738225615,6.42619221936911 5.51202487101679,0.026286042456781,1.98695020982996 6.91850634597638,9.61728636760255,9.52424436109141 8.57367153285729,1.50301962040886,1.11773680662736 7.06377463761604,9.55421060614601,5.61686536064371 1.45763662549831,8.52869121955846,4.57374772056937 5.34549062116696e-05,5.02312025529035,3.46125789452344 9.18165524978191,7.74112374255002,3.52681379998103 1.50237930022121,8.57304484165521,2.64214387862012 8.74651811324678,1.68886695720124,7.53608060535043 0.304140179967696,3.28276368818785,3.77550700912252 6.61454727189493,9.73214931155143,4.6098384144716 6.62134412142694,0.270175136443813,7.24471779307351 6.66905677488787,0.286800504731323,7.6736927847378 0.131508947982554,6.13920800402124,3.47244966076687 8.88076174473684,1.84727288199771,6.02516253245994 0.361630584248668,6.86695719367709,4.94784859241918 5.96265594037259,0.0935457262433017,5.71045571472496 9.9560162768063,4.33825785684225,5.45636160532013 9.9573609904291,5.65159190493117,2.77153667761013 2.96900480902746,0.431076873677297,8.53253790875897 4.896563871275,0.00107001776636384,6.02567227790132 1.04601851227502,1.93960290244417,3.44587875995785 7.64943704318637,9.24034000455056,4.57919821608812 9.82579430831009,3.69167691532942,6.64985702373087 4.65956717673615,0.0116029134756515,3.58294414822012 8.20532708024432,8.83743121223722,1.39708176488057 0.679309311050914,7.51627342918624,0.758123067207634 1.20983834758344,1.73891511172264,3.32052253186703 0.0174048897430064,5.41682846261153,2.3171843169257 9.35953292930975,7.44836121482595,0.220230356790125 0.678031617011214,2.4859217799668,3.94748639315367 0.40947673679646,6.98169023058275,4.95670055504888 9.90936123484882,5.94771950795773,2.017673375085 2.80443119025604,0.507842656175155,8.49194075679407 6.76944458349702,0.323562695177765,7.71667758235708 0.417938416671372,2.99882243501884,7.97898060409352 8.85557120973321,8.18348404215828,7.41256185341626 9.02507837855998,7.96626769635664,7.03079507453367 9.01146507363252,2.01534793266846,9.31785981170833 9.71203141911599,3.32764839065951,6.89677640330046 6.23440415042444,0.15477075945679,2.1531616942957 9.81450986991083,3.65074290347198,5.20865012425929 3.15839515312481,0.351506524908762,2.47535083908588 1.02210657444931,8.02925137533362,0.0028396095149219 2.8655124614774,9.5215000771748,1.97060911217704 9.73985120015462,6.59179477332752,5.76980191282928 8.60365380572443,8.46607548222594,9.40057422267273 4.72120415416559,0.00777876328127114,0.89916825061664 0.899924479196999,7.86170940588174,5.53220674628392 1.78718510583734,8.83116437337875,8.13203247031197 8.23375757596786,8.81350389273048,4.17472541332245 0.223151649264339,3.52293539949195,3.16485654795542 0.20603480730742,3.57947272773382,9.34758721385151 1.95315192042294,8.96443145734387,3.81980929058045 7.6799847349971,9.2210995984675,1.22901774710044 6.70593803006527,0.300023889680181,6.8852007901296 9.71234118671397,6.67147854906942,2.17834393959492 4.5033794367826,0.0247243276186557,2.84860792104155 4.29557929266267,9.95013044950074,0.973909748718143 9.08474926888194,7.88354355097482,4.5472671976313 0.0756294101361199,4.133643091051,2.16106416191906 0.66029823910638,2.51665777096736,5.86965558119118 2.56379732914619,0.633660967523851,6.13497688435018 1.29355873995238,1.64406597415614,2.76353855151683 0.100264969631659,4.00370856062026,1.6551045444794 0.0905365454550813,4.05281016238144,1.9357799529098 9.41458412196148,2.6523528735933,3.23120343266055 9.46029119992751,7.25960226850859,6.20557196438313 1.61506228912421,1.32002762327066,6.18751841131598 0.0615541899069596,5.78214639344211,5.3097306843847 4.36602958205772,0.0403546992578088,9.47704016463831 9.28853641872373,2.42930838386238,6.77681132918224 7.29096071266088,0.555734142398282,4.42116612801328 2.8995296617017,9.53740282076972,6.03302712086588 5.18252738328036,9.99666726472284,0.272806147113442 0.0812942143642257,4.10203931358152,4.87914178986102 9.59263037869132,6.97680201454815,3.04588038474321 9.53213977320231,2.88819767114493,9.17776150628924 1.11359480684662,8.14576774009628,2.92854892322794 0.57266752870386,7.32351612617748,3.42329949373379 0.123492621766849,3.89561067098706,2.08388806320727 7.5532231969333,0.701040671669285,7.07083959365264 1.8301583673687,8.86679505844793,9.08233890077099 2.65272526031104,0.585217865350758,7.49294742010534 0.480061584317667,2.8622075127742,9.37890768051147 9.98746371020676,4.64615576962362,2.79900332447141 5.39592662006372,9.9842995607733,2.07014475949109 6.8791634102023,9.63343769546509,2.42754332954064 6.70233834549015,0.298718881254401,1.0642899828963 1.38480943690339,1.54595929489862,4.33233608491719 8.93245725811804,8.08800581493539,1.35092819808051 5.11438308285688,0.00130852018689254,8.17405810346827 3.47924777426578,9.76312005600577,3.06138352956623 4.70833518708136,0.00851408527429243,2.78952522436157 4.08397549056137,0.0846262504151607,4.85826239455491 3.60879424338526,0.197443749130884,9.06072210287675 0.0322454008361284,4.43306592756635,2.71818210370839 1.09090611985281,8.11752867447852,6.32752685574815 5.09333742675109,0.000871263433248615,6.50233844295144 6.33350995633833,0.181104774292499,9.4024747540243 2.08190559071877,0.939861453284923,1.3198665715754 2.05594904172314,0.958643302668137,3.38051763828844 6.0414075995122,9.89034459027973,9.85981727950275 5.22285688177885,9.99503101194015,6.03791355388239 0.0176749515967556,4.57995582130732,3.37604096159339 9.1891974905524,2.27041681109561,4.76685512810946 7.33089157305953,9.42345390782362,3.62371941795573 0.401100363810035,3.03782719001312,3.62792111700401 9.90928481240586,4.05188469547149,2.63047105167061 7.63908110475117,0.7532069837882,4.10442095715553 0.00584500624436934,4.7583061888552,0.556122455745935 9.3893139232069,2.60543881190268,1.18974984623492 0.308771317844974,6.72984781172391,7.39169531268999 1.50041095538624,1.42888301524308,6.16055381018668 1.44985822326693,1.4791345715727,8.42528459150344 1.9663435101077,8.97453497925661,5.69394054589793 9.70801663358923,6.6836209127494,7.34111036639661 9.86819284805888,6.14048165005334,2.07985062152147 6.70213184423397,0.298644112083764,5.26059908326715 9.99899326361258,5.10033120330202,7.0604231627658 9.83218963145211,3.71549878719919,3.94992934772745 5.29275990707442,0.00857819486173117,3.65242982748896 7.8135694518341,0.866741365495507,3.01494718529284 7.28754939818023,0.553977311024462,3.82129128323868 9.11516695982113,7.83996494569854,3.63564348546788 9.95623323506021,4.33988476787413,9.04378048609942 6.79233689211751,0.332288733741714,9.17223730357364 3.02409338956007,9.59301568327605,7.14646412059665 0.00373529836814956,4.80676689924448,2.17261475976557 1.5237361105334,1.40617343618385,4.23061681212857 9.91172574526283,4.0646122711291,1.04487017029896 7.10552712589608,9.53505849158705,9.13629327202216 9.07447258569787,2.10195356345063,0.326851403806359 6.61734159922323,0.268804997527362,8.26476547168568 9.75448745899293,6.54752996813599,2.11933527840301 7.10915631422652,9.53337177409469,5.79990849364549 3.60294321736878,0.199142540534648,1.79527902510017 0.461883856380353,2.90107125727939,5.06749103777111 9.48133891958354,2.78243343102719,1.5495343809016 0.128599499224101,6.12670189537442,9.20397030189633 9.55952274803403,7.05201177144776,7.23849420901388 7.60100964154843,9.27021648685077,3.47964082611725 9.48121046769353,7.21782613029831,5.48018676694483 0.801384067738752,7.71507352632705,6.97265869006515 6.98594465253593,9.5886843252793,8.42755313031375 1.27182210138196,1.66823026662166,7.97182436101139 8.83270528300063,8.2109765202597,6.33284526178613 9.77700250818251,6.47656596087613,4.75078266346827 4.10015709451374,9.91836179489127,1.75769717432559 1.73909612204247,8.79031738759718,3.37743477663025 4.46582905896621,9.97138425448638,2.02819433761761 9.02185523813349,2.02936362987689,7.62582640862092 3.84255841252106,9.864188418593,2.29280170984566 9.23162335209545,2.33666303183385,5.36567959934473 7.59081743812425,9.27640795555233,5.30307809123769 1.70507399221928,8.76077952069119,3.94775351276621 0.301857866059078,6.71098231705913,9.08147040521726 2.31102089399296,9.21537559031904,3.97971724392846 0.0512976542006864,5.71438441519981,8.4747231239453 3.67911899677535,9.82237217304101,6.04592529824004 0.986884083053025,7.98243200042295,9.35327148996294 5.91524045728745,9.9155198001172,3.78175632795319 2.79461010012671,0.512656087445839,5.60211172094569 9.06185300867545,7.91570748462774,4.54928757390007 6.52946102764516,0.239669237866488,0.387833029963076 2.29406247021851,9.20450973181417,7.54382866900414 8.81527055549965,1.76832696760062,9.16855052346364 1.05230312243559,1.93150047044681,6.20655971812084 6.21751928698223,0.150500357168147,9.49014480458573 3.78610936012266,9.85040921102727,1.79473456460983 9.60649794414076,6.94426764891743,6.41646301373839 2.87827870141682,9.52750469145406,9.15629823459312 9.76028474404372,6.52960424804086,6.7956636310555 9.87534546053863,3.89049261363191,5.04896315280348 0.0694697057005307,5.83058474401785,6.69082100503147 8.82926641744952,1.78492321954929,3.08234069263563 0.845023136006945,7.78139663832443,8.43683670507744 0.016456919826922,5.4053373509301,8.67310285801068 4.86529529675359,0.00181486508119644,5.1640859246254 4.09412095513166,9.91725361925419,5.92254223302007 0.00838414782403252,5.28943252116096,5.42263799812645 0.0178606136099395,4.57775938781203,0.55065440479666 6.17884663172438,9.85904523737659,8.80351451458409 0.0150361264960361,5.38747281176923,1.02662118384615 6.82236424778894,0.343929924455535,0.623037782497704 1.71470574012454,1.23080358351686,2.38549605244771 9.58305239491907,6.99890738790635,5.27510567335412 9.71599232914936,6.66114910571097,7.29834318859503 6.54838749825494,0.245791742545577,9.16486918693408 5.11003450606912,9.99878909411811,0.18240817822516 6.7025172234739,0.29878365699102,2.72441705921665 8.38409744164324,8.68074510194114,1.83652173727751 8.44119969625645,8.6274156986048,2.89334535598755 5.41130006656171,0.0169454894365915,4.95241242926568 9.99839806690896,5.12655735743424,1.58623022958636 9.31303881281368,2.47063324146877,1.83140772860497 9.97362091466604,5.51292786743997,1.7711855773814 8.2988153185487,8.75736842671948,9.44953825557604 4.06546126785453,0.0881126480628724,3.17615486681461 9.96114535524651,5.62212278861649,7.87899327464402 0.0011078722302047,4.89475032104005,4.31469856528565 4.60345975649391,9.98425077973411,1.28046716097742 9.99961687967116,4.93810447102393,8.68892352329567 9.03554294886662,2.04798490724507,9.95024823583663 8.7429491272178,8.31516693864118,6.81781406514347 9.83169419770674,6.28636354886439,7.83420689869672 0.200214641514924,3.59926429599575,8.23520988924429 1.43669505035426,1.49245700869823,7.75759101845324 0.915350840145051,2.11631464252837,7.58571529295295 0.186175256047624,3.64830057538229,5.35677018808201 4.76929718950738,9.99467478553217,3.9169091056101 9.96643658926347,4.42163367592413,0.540897287428379 8.93635051970137,8.08304145058848,7.34755479265004 9.44053860769713,2.70182314136809,0.313386302441359 9.95779008930344,5.64831892645869,7.83697160426527 3.51569422375172,0.225396732439859,7.96462544705719 1.47869602251653,1.45029320955109,5.66345289582387 0.380551690833607,3.0867051144845,7.90581358363852 9.99819643827878,5.13428463939453,2.23552356939763 2.76449059214744,0.527584803777416,2.68832035595551 5.73145541633151,0.0537920611928069,0.257770600728691 9.50163487782857,2.82392936081631,8.87621809961274 6.59493400676524,0.261204212665017,8.63767869537696 9.12041618367591,2.16765636383901,6.41633699648082 6.78748092938431,9.66957299194342,2.52336235018447 9.98390097273247,5.40091282593151,4.60909839021042 7.10976163342921,0.466909900508252,7.93389781145379 8.59416406063008,8.47591494505764,7.51317153917626 3.48861600992168,0.233899032276495,4.83257923740894 3.43398434355497,0.25156921038444,5.60504770837724 3.95893266265484,0.109582962659211,6.8331754556857 0.0339784843754085,5.58191950160966,3.78945562290028 3.65964270106071,0.183004846257351,7.75675956625491 5.86253446261432,0.0749584467943194,9.36295783845708 0.153413258814298,6.22906344838782,5.56927622994408 8.51490261616401,1.44395449988567,9.91321716923267 8.22225126834924,1.17676880588922,5.80611820332706 0.00051130347827133,4.92849634029316,2.10909283952788 6.97201981746402,9.59468582598737,4.06207467662171 6.01042399850371e-07,4.99754838346427,2.39015682134777 8.47744759981314,8.59268119801268,0.857308986596763 4.00714277196487,9.90043207531115,4.51878539286554 6.79260203907294,9.66760944483486,2.86496453918517 4.81973277722636,0.00325068385520488,5.91482213931158 1.87876791099432,1.09386249005987,4.42236144095659 2.33936984805355,9.23332578412687,0.881540116388351 7.00149302532964,0.41807620430492,1.51210515294224 5.70519236019427,9.95002057926264,2.99622032558545 4.1361107617674,0.0751959039911148,8.80903256591409 8.67861417431949,8.38641370132117,3.63712762948126 2.90312859333565,0.460932881757151,5.92682712711394 ================================================ FILE: data/point_clouds/octahedron.txt ================================================ 0,0,1 0,0,-1 0,1,0 0,-1,0 1,0,0 -1,0,0 ================================================ FILE: data/point_clouds/sphere_rnd.txt ================================================ 0.0773054454995878,0.836334266051908,0.542741986143994 -0.374781006964731,-0.880579478663034,0.29003271983699 0.50978558146903,0.424200162233223,-0.748446980946273 -0.0528428774695098,-0.615719249834132,-0.786191729595546 -0.367308929628173,0.000389375987204433,0.930098918718728 0.652516428941516,-0.668637302231417,0.356576034004116 0.0149030302359853,0.0112939871690741,0.999825157486853 0.823022164605666,0.0710393566695145,-0.563549400116604 0.684126185054392,0.068103436067191,-0.72617717185186 -0.324481141146087,0.231780181172957,-0.917055034693101 -0.338509732916114,-0.214630629991015,-0.91615765749718 -0.00118381141382112,0.00937485776903048,-0.999955354319555 0.729104853184126,0.158523576536518,0.665790048547907 0.0211118341898496,0.718788101134769,0.694908595517579 -0.30806472626895,0.560002818706148,-0.769085799810402 -0.644943375782511,0.164810327877268,-0.74624767862905 -0.623589297300199,0.541391018195545,0.563943395838479 0.525375237353793,-0.100072884209631,0.84496525243433 0.60862244684568,-0.422637064685626,-0.671533043676554 -0.244930120010996,0.476438302197522,0.844402617541266 -0.72106356958232,-0.627730047134878,-0.293295612898058 -0.650652226042903,-0.294085077275247,0.700118310051542 -0.0248561877734911,0.26785334061156,-0.963139012735232 0.000718413489679035,-0.0289201833466252,-0.999581465853212 0.327261372609863,-0.930358921992411,-0.16532474184655 0.180570006689022,0.161564083033019,0.97020179331829 -0.762804638158049,0.188161799664615,-0.618647089342172 -0.0575350601444459,0.983868191621906,-0.169390372715851 0.599956158420826,-0.740027845873894,0.303992426392777 0.929425944398791,-0.368029182124441,-0.0268688478210385 -0.877107159051745,0.184651699664105,-0.443381079153513 0.854404307607442,-0.481021094629829,0.196499327385539 -0.56695042330303,-0.33707461551726,0.751630175744964 -0.126349401535378,0.0465854522909329,0.990891328232567 -0.183201230257471,0.548734530428078,0.815676237454559 -0.85144959293011,-0.110768878194278,-0.512604961274013 0.604081636514428,-0.403803804660679,-0.687042839834322 0.741799527896245,-0.649536789300367,-0.166839502990987 -0.839102405226826,0.369063236864269,-0.399624174366146 -0.329801539160309,-0.125969756216375,0.935608125919329 0.960358583097858,0.273000370356808,0.0564109001463399 0.24588518939368,0.385730790257908,0.889242504092019 0.0422772999912147,-0.382918179658079,0.922814335385399 -0.456825376110263,-0.0973021756562058,-0.884218786474414 -0.0917685997699636,-0.172338746935993,0.980753730760578 0.72403813246436,-0.0978825971963726,0.682779451875651 0.0269048253674394,0.92218857263681,-0.385803534029991 0.0787372103661066,0.111486104098655,-0.99064186278224 -0.845451465373086,0.520019711402262,0.121619568538988 0.728711360020418,-0.322857421891818,-0.60393943314422 -0.423290015741426,0.857785834188432,0.291597368368232 -0.261237798855839,0.0765516436102646,0.962234201382139 -0.907077266383511,0.409815115020244,-0.0962413856465126 0.374857363549564,-0.751777127553699,0.542506320221046 0.165385020869652,-0.838324906268616,0.519479688151193 0.758834971668538,-0.348479265852135,-0.550210584271119 -0.44497758480629,0.286706273607222,-0.848407014170806 0.913475119800637,0.0655559625862071,-0.401578910395712 0.259046495244195,0.424829785070677,0.867418334495243 0.997523240628835,0.0701016772023688,0.0057566708054242 -0.0093922330874305,0.742840239365826,-0.669402841894591 0.104895318893012,-0.413440110401736,0.904469041584804 0.637869559781783,0.359218103525119,0.681237681579352 -0.178064968133249,0.0405526164071191,-0.98318276654254 0.25249809948801,0.0611888988587843,0.965660721170429 0.0645721288707562,0.0178824894761964,-0.997752803425394 -0.875510432589323,0.237776222180498,-0.420647061790318 0.209535100840485,0.156719049083866,0.96516018420261 -0.0923660199487699,0.546070586682739,0.832631630866131 0.740281617880264,-0.637935872072206,-0.212181406706742 -0.51335002404794,-0.839944420803601,-0.175969096067698 -0.0167661356795372,-0.101565436372541,-0.994687568449928 -0.899709919293064,-0.382048812135736,0.211094211837612 0.00809383456803171,-0.296167923331757,-0.955101591994977 0.323823198840434,0.131913959808919,0.936876322200684 0.0859534183395871,-0.034309211997662,0.995708234297497 0.904457784893985,-0.0024685259488967,0.426556000689599 0.912338424948354,-0.296801985506795,0.282041095874307 0.556959569941936,0.0482825152569048,0.829134992730713 0.960806432034758,-0.27634353230344,0.0220284433107471 0.268776098747987,-0.665876601711771,0.695965343989624 -0.123750210078179,0.985388100135887,-0.117030669553731 -0.375935062819358,0.853344800562228,-0.361213897706631 0.76408305665407,0.461093653193351,0.451187018340491 -0.489899172384632,-0.712327795439265,-0.502581249890492 0.304130846139273,-0.927911729538335,-0.215602065416325 0.189324928446894,0.670239682863866,0.717589603452505 -0.429665430548303,0.808688284073863,0.401759725449693 -0.928046177378992,0.0755724835749542,0.364717825693446 0.0812822685108709,-0.333925075062947,-0.93908851396976 0.568557363276401,-0.464700859979105,-0.67881929509912 0.0258286084462135,0.0744231655904743,-0.996892208520673 -0.560530115801812,-0.768600450596889,-0.308316941833346 0.0268255219719648,0.0308043978051151,-0.999165391938089 0.456685496464383,-0.129315597500649,0.88017943259436 -0.299456560151077,0.872506442136801,0.386080661277234 -0.616090413457421,0.556277618127233,-0.557662813908688 -0.734542245897416,-0.27950972021229,-0.618321926910915 0.0261293431973975,0.0506935037862847,-0.998372388489356 0.360093378080232,0.213290900907335,0.908206887582837 -0.489724227916716,-0.43590880870435,-0.755085221074635 -0.0411238511746045,0.760872833793025,0.647596602570104 0.672180804506389,0.720489767871045,0.170491819294272 0.705145063448448,0.0649966525983608,-0.706077810616714 0.114842362167261,0.0272273430580039,-0.993010525443636 -0.794917418826794,0.606609639705738,0.0114473692096881 -0.729469920569626,-0.364092553151464,0.579059796328317 -0.133377571158276,0.053057692284941,-0.989644029336466 0.588039595939279,0.252658035466094,-0.768357566971253 0.410370449689182,0.831699934440869,-0.373993734002259 0.858227562854035,-0.326346690125003,-0.396160684826344 0.0637498626295064,-0.558954260472549,0.826744271050187 0.337428103793781,0.00545446142346483,0.941335500032116 0.121127049501086,-0.816445181320226,-0.564575507596764 0.276733401469516,0.309348999768436,0.909792185531059 0.211981526146488,0.0450425590189518,0.976235115353689 0.824176750775385,-0.505049071827148,-0.256238401743112 0.594505003726877,0.790985015573261,-0.144590821569954 -0.722340155372445,0.686039535464281,-0.0870313490442687 0.0947244160312465,0.387562881941893,-0.916963629348751 -0.0115357160144928,0.0242785918222118,0.999638673339104 0.984677062708126,-0.173208112180659,-0.0202492481664996 -0.833031477012519,0.547147640160647,-0.0817803043096287 -0.187527155304188,0.980938689082309,0.0509200774253142 0.455901909993559,-0.209976195940247,-0.864906610913969 -0.36157730019341,0.909067168606555,-0.207023522688865 0.719868757480189,0.671224838073219,-0.1767659151463 -0.347736389057685,0.129493849146236,0.928606884940239 -0.0187493710151655,-0.0350775051281273,0.999208701783827 0.493705931956134,0.0722788097753222,-0.866620001158979 0.66269554206557,0.399607400509584,-0.633362884912269 0.726722523527084,0.442345070489977,-0.525552292747014 -0.204758276914423,0.57927712222022,0.788994336929801 0.00689261327542409,0.126579963082989,0.991932459811728 -0.356726368706308,-0.827180438448998,0.434187540259892 -0.47359266295775,-0.28482709074729,0.833416773270746 -0.521214825022451,0.685391036010302,0.508501950766701 -0.275855843401269,-0.0631930114627542,0.959119490451342 0.09398986677579,0.119564015843863,0.988367518213118 0.466346836168125,0.370962215725855,0.803061431585246 0.0623189234324981,-0.641370973136701,0.764695773886515 0.0172692025366454,-0.0225997322201761,-0.999595431535841 -0.386933061653629,0.623545150392436,0.67931896132923 -0.163137075059956,0.566970664668863,0.807422169714103 0.0993292176042032,-0.644534864831166,-0.758095320225107 0.286665593978943,0.120044482544749,-0.950479962671104 0.0707596335626779,0.13411262820202,0.988436582292876 -0.463827375613848,0.885831714476767,-0.012897257783015 0.852829222228861,0.311921866898828,-0.41879239088463 -0.859500133373641,-0.251585593716346,0.444931691122454 -0.965394515080914,0.24812164325619,-0.0803061666345376 0.151857805775526,0.630726138963868,0.761001803186283 0.73582574350235,-0.258595602508218,0.62585045303381 -0.0198348660853234,0.0545180036677111,0.998315764356882 0.28461083581548,-0.153264079557224,0.946312207494911 -0.581675520525213,-0.73439685910559,-0.349735388769232 -0.991445037847008,0.0299177290721477,-0.127049857991695 -0.0492695614178428,-0.679885526000934,-0.731661248018594 0.444640211649834,-0.0784567456025451,-0.892266564011814 0.0127324000254656,-0.0173965272959882,-0.999767596408101 -0.0171984195057919,-0.384731945410837,0.922868107882646 -0.156676767551138,-0.814928782479156,-0.557981603636506 -0.399694839057765,0.888201338748911,-0.226588652573842 0.0406560169703534,0.247690687788596,0.967985749619755 -0.108993364569416,0.122635126853424,-0.986448717441248 0.565993057030192,0.101426480232535,-0.818147009101211 -0.489285054208162,-0.835365744407816,-0.250527860323942 0.133417312387217,0.000166388475130276,0.99105993414639 0.0137288164076101,0.2270000275996,0.973797980625256 0.0963708742778746,0.403648151820948,0.909824611737037 0.165049694853754,-0.0736080456290133,0.983534673434221 0.267448700115878,0.769884765003406,-0.579438211910448 0.284337195687501,-0.839133932395426,0.46368804454197 -0.428582501162862,0.168981757375846,-0.887559691159505 0.909817978299262,-0.256972045206276,0.325878220115963 -0.492082441172851,0.314163347681507,-0.811884389591841 0.422939528190122,-0.0717565420247207,-0.903312323712552 0.196288814413039,0.973547107241556,-0.116947557981867 0.705618932943305,-0.0345885370958603,-0.7077468153044 0.697653813407257,-0.102701598651704,-0.709035639635059 0.16149199568471,0.300177934157391,-0.940113579933175 0.000653363814039677,-0.00437947432374878,-0.999990196612134 -0.0553386082981052,0.349974439503299,-0.935123270016301 0.316035545319811,0.268485093417435,0.909965542593257 0.0357714998129129,0.0165234330034925,-0.999223386417128 0.0297740276570812,0.0455151261820939,-0.998519844853222 0.224210497763138,0.585639747188857,0.778945273562513 0.553555317897683,-0.554569900826654,-0.621312107659516 0.347883758003143,0.0137055723317884,0.937437490291843 0.0580957172665848,0.107042235956098,0.992555714988736 -0.215173190949024,-0.808064260224208,-0.548390963861658 0.154407026347864,0.68717174951883,0.709896793116887 -0.13255934473603,-0.989894844149766,0.0503608741868646 -0.480709384674798,-0.503120848312002,0.71818375049801 -0.322505544411402,0.42520902950717,-0.845687563494625 0.643078379214888,-0.157058729690832,0.749521683218208 -0.164434109235155,0.259522634237396,0.951635132831131 -0.142049555354451,0.826970572200564,-0.544005143852403 0.262737193627013,-0.171903692465716,-0.949430506989139 -0.454668385266488,-0.792797548798993,-0.40589248090778 ================================================ FILE: data/point_clouds/torus.txt ================================================ -0.714320398612351,-1.90692591611384,-0.267078203651368 0.880281797557814,3.78434362937461,-0.464874124438126 1.04102781021494,1.86999004591599,0.510688226707155 -3.24849890512506,-1.29990313390197,0.866643756410793 1.20992268630091,-1.954033976581,-0.712467990069739 3.85471276354862,-0.858165157455817,0.31502559578928 -2.67730603769453,1.10180477038619,-0.994488919152426 2.67286217475414,2.93308084520864,0.249911934206736 -2.01475714569943,0.394298758383513,0.321168120775367 -1.08819618488046,-2.61058272892002,0.985150276181151 -3.33083144897963,0.00459587748771458,0.943688748702064 -3.15990590148776,0.754342600836267,-0.968581102947494 2.92673516232045,0.0152003315773583,0.997315419428396 1.27616426228537,1.65219842213103,-0.409449735620048 3.45502673855084,1.7700666717259,0.47114771228712 1.86236975240961,0.867113512748675,0.325152963864206 -1.97122483344051,1.32473119871762,-0.780627293773532 1.18824629054217,1.61374920710909,0.0896302160825027 -0.264002411550957,2.30415430226382,0.732496544879508 3.42808039501758,-0.187293979213987,-0.9013011804742 1.96153469538247,2.66867799232569,0.950076321565843 -0.680797403710056,-3.60113300125575,-0.746913927757322 -3.62703428193388,-1.1491813820858,0.59363650991433 -3.94012908379452,0.383180113413902,0.284360276666664 -2.46614583531858,1.61141049408438,0.998537289999598 -0.792090973889088,-2.99832297158664,-0.994867621545582 -3.26366255097835,-1.64421088315301,-0.756115007819308 -1.99935002274715,3.44366126967676,0.188959592802154 -2.3962546726188,0.363604578397617,0.817227027241778 -3.45305318598172,-1.21952747352425,0.749433935645939 -2.36494872141656,0.412230046099487,-0.800455217507419 1.87165737305526,-1.32032323914616,-0.704697638834131 3.25531101005859,0.18860434515836,0.965400940979923 -2.53991912233213,3.08465429722359,0.0917406231940381 -1.38625133386808,-1.45917902118853,0.158766398101815 2.86361966032945,-0.208849156649635,-0.991673894374812 0.358034695792271,3.04143737536772,-0.998048807314788 -1.50896152735125,-1.36567139912116,0.262970492698508 -1.87247964584181,1.26186486518363,-0.670380018907 3.39007730529755,-2.0715802862839,0.231154983343338 -1.91159762453643,1.45295955543435,0.800826270447936 3.49599228865333,-1.40833934677047,0.639245458740745 1.39565396553202,-3.1002518260968,-0.916552913467507 0.0407307687801072,-2.07693908085762,-0.385610713125368 2.06514644404813,2.39210100571433,-0.987081673688259 -2.42108335739267,-0.844729060326557,0.900052045343072 2.89533739724166,2.7483572966331,-0.125860854439473 1.34495023606444,-2.85844551970074,0.987270400928544 -1.54295806449251,-1.48501221868802,-0.512797391312907 3.51106593510202,-0.811834738080467,-0.797210958785934 1.74862922359101,1.54515559110973,-0.745502676291502 -3.80048462218566,-1.16476608090907,-0.222349203914141 -2.73035117221928,-0.376914406922954,-0.969836636477701 -1.60503665801494,-1.54737186357483,0.637394481994473 2.78859471401276,0.31843579386906,0.981143101841957 -1.24219387776124,-3.15464688253358,0.920643436280065 -1.58460888857816,1.50006761073291,-0.575239128363173 1.39404548258418,2.7093363442083,-0.998897534314805 -2.24467362137241,-1.98850123835174,0.999999258919497 0.881128171823169,-3.49560189594454,-0.796268205063082 1.22114919384482,-2.27973558030131,-0.910365111710077 -0.172734833492129,-2.84148637291075,0.988184633074685 -0.674693389446431,-2.79690278184223,-0.992422759399541 3.61306244787288,1.020354967382,-0.656441751536718 2.54267998344273,1.43675190698195,-0.99683701321487 -3.0732696571858,2.51846814911985,0.229240215837385 0.704956003592614,-2.59748523688157,-0.951207487687372 2.90257970882872,-0.825283090354516,-0.999844666149284 1.61457282423149,-2.72311540890554,0.986161701121139 -0.783180108092612,1.84288427675276,-0.0691964707506992 2.37235608137066,-1.10773579645894,-0.924259224397928 1.53495324755595,-2.47366866015383,0.996049976944091 3.07643280241098,2.0500786112494,-0.717143145962894 2.76076016588706,-1.60199953998713,0.981415292623509 0.344978867858927,3.42946941385406,0.894645414112342 -0.604362662079682,2.184188849032,0.679430541731333 2.09177633913309,-1.52508794465896,0.911504721915111 -2.02927909771946,1.33963193673831,-0.822739403632273 -1.98567527200199,1.27545021592236,0.768388944203625 1.87343061856586,1.77566488380986,-0.908090525043219 -1.92861390568702,0.722788606043347,0.340085655584743 0.845911258179781,-3.90650540470946,-0.0768495760629745 -1.85066140524136,2.11269687601331,0.98151912288529 1.91101044451922,1.91882647050695,0.956451679481434 -2.02431231266686,-0.989625614258562,-0.665120685211147 0.510012371186223,3.95242674540308,0.171429838134267 1.8114187550926,0.89339560989046,-0.197766693542283 -1.9903122826019,-0.329778818747259,-0.185988894025097 -0.976365214738251,-2.74562180892795,-0.996300054855345 -0.238561516135115,2.53182856194817,0.889488762034343 -1.60815952744041,1.24536032918154,0.258490088989698 1.72130442385166,-1.5109894843131,-0.704614849085318 -0.678960686465728,-3.43048125798604,0.867735776833309 1.77223868898645,2.73506955582841,0.965862738005154 -0.898693150047734,-3.62395764806304,0.679444238213082 -1.97562680300527,-0.375053417846205,0.147324688728172 -3.80272108859137,-0.932323709155714,0.402673777440839 1.49586134650516,1.33089960863945,-0.066633766729041 -2.20194852434455,0.5207535003085,0.675553469148375 2.12913285906629,-1.65777681886152,-0.953438544032544 -2.95372541937467,-1.78536538861461,0.892331865640778 -1.36993262703229,-3.04461525213824,-0.940922463630955 2.6119067431494,-3.02693591114326,-0.0624314398026808 1.27536768308289,1.5618365787268,-0.180400499284649 -3.21422483499413,1.40840843620268,0.860616946048814 -1.57586782065372,1.25869517837285,-0.182786005983407 3.92765587106748,-0.74716576131132,-0.0617490058091814 3.1386913387238,1.55735573782153,0.86380986050381 2.17317917185308,-2.85978694062725,-0.806078516287854 1.60868111568867,-3.62371726599287,0.263196188528958 -2.26173830408535,1.12557694011027,0.880706701256264 2.70974355237617,-1.88326253488702,-0.95396836325622 3.77159848686435,1.33181491950522,0.0181231422761683 2.15217194080115,2.94781944210051,0.760053287593567 0.907886028757331,1.80097339748782,-0.182905014451699 -2.98596497631699,2.48098938616024,-0.470918720977207 3.3653456048496,-1.21623621703938,0.815769640912101 2.92027296311028,-1.43882152392057,-0.966812249566666 -1.80455339673991,-1.81342659069716,-0.897165704829048 3.81184732768971,-0.234803000248755,-0.57369044336767 -0.574516005623622,-3.51114713033319,-0.829948763798555 0.882669297981541,3.67292748275419,0.628883734651986 1.97057037626744,0.492326008475811,0.247611872237042 1.94041241687864,0.490681673049848,-0.0545993439733837 3.62815895805101,0.521520124423926,0.746442796827643 1.19141490156013,-3.64642918107281,-0.548526989053247 -2.27486722684705,0.0582627299010015,-0.689393767739755 -0.870975864260891,2.45711565553284,0.919502998113626 3.22048509527688,2.30660440520993,0.275481522609446 3.2480483989014,0.290545234873657,0.96533407725901 3.2077919780123,1.75565041782766,-0.754058688522266 -0.880654639478437,-1.79676204768549,-0.0441791246983483 3.98343925985975,-0.347798067631448,-0.0530147017109721 2.28738776588423,-0.416904291575919,0.737882052400129 2.21307914464716,1.34559469817523,-0.912106728949382 -3.22018854221282,-0.663834917791889,0.957660265491301 1.61654960255117,2.69819258778267,0.989374478420674 1.11691159407222,3.42625601198929,0.797204431267907 0.138982236996826,-2.71750967153386,-0.960308924364697 -0.15281203903204,-2.05034787381869,0.330044180870546 -2.5880488784223,2.7396968831178,-0.639476126769505 -0.994773995117528,1.94499075218273,-0.578926052809871 1.00091490386897,2.11833450719408,-0.753801801091053 -1.979942235672,-0.416815669394681,0.214793190821556 -1.51995641074011,-1.93921204579373,-0.844155466799302 -1.56643929258676,1.90806727465411,0.847180334382917 3.94524842347091,-0.641029659771889,-0.0775703161356899 -2.05045765971493,0.296409467723431,-0.372009372222866 1.91973163138648,0.713565160509433,0.306280782318074 3.34342688871568,-2.14009448410198,0.244303976844247 -2.8116837003415,0.114480657247195,0.982552268625157 2.03498377192774,1.44809881445098,-0.864651998213382 3.65744234206195,1.57484953246211,-0.188415823174873 3.34794527696835,1.2036157129037,0.83002379671184 1.51877358954659,-2.33374517023824,0.976487965904838 0.888647841517423,1.81225076047209,0.190960561650766 0.294158363243207,2.14404466483541,0.548926748034314 0.158785440356444,-2.05854941606409,0.3537612995639 -0.340162712092064,-1.97121929907986,-0.0266065760418155 -2.06663926075979,0.044441462735491,-0.360179666649703 -1.23803617999514,1.79412301024198,0.572104151036735 -1.98916538940685,-0.351371167218055,-0.198803134160616 2.74028022503697,0.53527221297064,0.97814360104035 1.83806377891691,1.04049584603987,0.460102138018499 -2.54939351674912,-0.118947069004261,0.894117153111335 2.30262642501755,-2.77329013841926,-0.796520245484253 2.15079516941331,-0.706472676833139,-0.676820027868247 3.15683362475018,0.140123465520194,0.987126421997771 -1.65163153688707,-1.48529537758651,0.627344877253573 -0.810886446118408,3.70446650449979,-0.610290976414269 2.64964602622044,2.32993073202612,0.849031289392961 -3.90463091308345,-0.620109375899632,-0.301186502510516 1.78674991016748,3.20441160034856,-0.743364449639186 -0.763871453153186,1.87154022972919,0.205894667876839 -3.42954834972779,0.177619781136491,0.900843089612039 -1.22126745102243,-1.61994203696612,0.237940968474628 -3.05134414038971,-1.53419267434623,-0.909672872314237 -1.73371866866574,1.12323389147044,0.356689597781806 0.716890930507223,1.95500332206228,-0.397272604771448 -0.673141082397904,2.08221869339899,0.584105284316401 -0.882406559420473,2.3890642425343,0.89141675256761 -1.19628528904322,3.65345390075763,-0.535833619789951 -1.46040623423508,3.43135965826631,-0.684288800753094 1.47681757717276,2.12533843664316,-0.911210890653397 3.27441962472972,-0.100070543522959,-0.961172447787327 1.41615956414078,-2.05072858485597,-0.861467280220919 1.80662271957664,1.12433686966506,0.489353084570643 2.99219785952063,-2.30571642472757,0.628871481171234 1.60387273506073,3.04596997093306,-0.896801858433794 2.54587923032708,1.87946967738563,-0.986381112455289 -2.26646292474878,2.4552508306654,-0.939909576284463 1.48620551792787,-1.37221867327829,-0.212401746771662 -0.378971598963202,2.00451240918219,0.280075174684415 2.62244661666601,3.01665327927031,-0.0750879915907508 -1.19247944703426,-3.11404331001422,0.942375378869094 -2.0083818072434,-0.416082178074434,0.315364744352137 -1.9004205664066,-1.13710765120878,-0.619034102311288 0.121489655611034,2.21525186304812,-0.624006377259046 2.07074228968162,-0.781655519445505,-0.617410935722934 1.86326783912881,0.839296946552966,0.291968195688999 -0.125159400819068,2.73971558078145,0.966297733376121 1.28616058229845,2.55241279913221,0.989888132003229 2.85186878413326,-1.97875748876273,0.882071996614857 -2.1840717588845,1.67894402150144,-0.969477080806596 0.526790969659728,-3.96375675082422,-0.0527207084811376 -0.752122926842743,2.46384783522958,-0.905703897001504 3.22707705441682,1.58776409576928,-0.802591492525115 -0.886521436850406,2.19182304782198,-0.771952585794445 -0.850916062216981,2.24608164609563,-0.80139309506497 1.9599600981033,-0.436349089360323,0.125806862104109 0.143432952029717,-1.99799607142996,-0.0791573576947982 -1.95984073562466,-3.47602466214732,-0.137843626105098 2.03981168644652,0.503487665115967,0.438012394519451 -2.65426974933155,0.0722691824937081,-0.938695795881477 -2.2414793646226,0.437827786913691,-0.697935637659006 1.24117163497356,3.69451598478674,-0.441158243776929 -2.11395941897502,0.602255627196146,-0.597425500224166 -3.88773153456955,0.22981059148896,0.447032203564223 -1.73315822471499,-1.00352061714323,-0.0737185553420282 1.46838349116033,-2.28633053252358,-0.959194171787188 2.98263745691891,-2.01383053038907,-0.800869699321626 2.89557478511477,-0.58843816515525,-0.99897619421275 1.06657734872892,1.91739722028324,0.592028267612026 1.9915612675626,-1.8601574569007,0.961490239582856 -1.39240243888057,-3.50180422099219,0.639877656780817 3.59628122174913,0.324476332737725,0.791715812804296 -3.53879553792849,1.01226995756173,0.732535550555928 0.575886735738642,-2.2855391862704,-0.765845854898395 -0.24271459661309,3.48538868139012,0.869558748072862 0.402059796109522,-2.89240232300575,0.996811926014314 0.452665298920687,2.04923631056222,0.433063406427209 -2.93926411681073,2.16504944962124,-0.759440271012922 1.66928570082294,-2.42900826023443,-0.998610555912656 0.873862888983233,1.91642894819756,0.448587745813449 -3.10137749594587,0.713264912114097,0.98323549981779 1.39158354130691,3.12284361399327,-0.908047229780306 2.96702894505444,-2.39144744484205,-0.585307845932848 -0.849996861066033,2.39441267781502,-0.888337192657974 2.5656897206668,-2.40327610338469,-0.856910153887797 3.98387009727179,0.290859271736434,0.104986084594907 1.94022583659458,-0.529937890748119,-0.149879427053502 -0.652002424931243,-3.0431564731331,-0.993683473922688 3.97450106976585,-0.363876801944451,-0.132945977053829 -2.40016481561417,-1.06771410337883,0.927806514179979 2.12400024740336,-0.213700641983631,-0.501295141883824 1.61720893587035,-2.26873685106966,0.976862573653806 1.43855171506103,2.04110176117294,0.864346817991303 -0.347882668065436,-2.30474664523809,-0.743130787018475 3.03312786606892,-0.43888978623968,-0.997903672375956 1.55318425845068,-1.73091353393152,-0.738371624615 -1.64487091538682,-1.15506232605014,-0.14048882675474 -0.295197600637849,3.41168159143174,0.90546129499725 0.613151449298925,-3.6726329741562,0.690361615394036 1.24303628788496,1.70949098456505,0.463007842379536 -1.92734113686103,0.603416911106011,0.19698245000706 -2.3635972695005,0.532921490707156,-0.816695794701051 -2.60056039616045,-1.11213812823468,0.98516421338084 -1.15746403096981,1.98465662841937,0.711700641427774 -2.29131806227349,0.394871478957436,-0.737903682266451 1.5753101943983,1.25510954642691,0.167778669397398 1.32848419125813,-3.45968781883132,-0.708228771967407 2.23656011798061,0.823448791024589,0.787222948011727 3.25831086262739,-0.528608201886878,-0.953652089420914 -0.839375316949776,2.88600509376057,-0.999984371107339 -1.98320474944697,3.14373320810026,-0.697063403648011 -1.70681623926324,3.39898208154652,-0.595359999973826 -1.67023185260635,-1.49754426235285,0.653741213483541 -1.11285997746734,-1.81494807405188,0.491221735824854 0.342337763515438,-2.50466022184833,0.881570375402595 -0.18049662538014,3.99515277811023,-0.039285684170402 0.178352130393365,-3.62462167902644,-0.777399636777745 -3.86927750198048,1.01254321652087,0.0293568137386468 -1.43895986930885,-3.07199770207164,0.919832544383111 0.218640143910198,2.99563209972733,0.999993518642863 1.08747055715401,-1.68793475994643,-0.125554975674212 -3.92374615907164,-0.621540172932211,0.232197589649773 2.46018516051129,3.05631223033271,0.383689461927854 2.39784947233894,1.66830700343181,0.996883959911963 1.6882260110855,-1.51799968340075,-0.683806924183867 -1.7152258021874,-1.30521463210046,-0.535337677026695 -3.02629399990599,-2.52056759770178,-0.345301960621233 -0.703555435283641,-3.93746419107644,-0.0186105043511363 -2.64334795948186,-0.35521342215911,0.942964955427318 2.49784698105039,-0.158945543782804,0.867692664790819 0.204866910748694,2.02331394263177,0.257265364312437 -0.36958886111734,1.9664040790799,0.0408585151438834 0.115684088576823,2.11508260996212,0.471705623095396 -0.731627650689339,3.88111999341168,0.313835532658015 -2.39027247160738,-3.17175288177496,0.236726350208319 2.66644145182402,-1.30303365352127,-0.999481282045336 -1.88627201520659,2.68352394121846,0.959958958133407 -1.08341676445684,-2.93146757937041,-0.992123061604357 1.98536493005221,-0.259697195800157,-0.0674572952138999 -2.17606181909418,-0.0588929951722134,-0.567836471771887 -1.44266085758462,1.83389553675679,0.745355752020073 2.00703121845621,1.1535987213864,-0.72849012497236 -0.714372468650034,1.92393404704374,-0.319100980978719 1.07056505676095,2.08758911502946,-0.756572264156863 -2.45996592433974,0.721536339862404,0.899752962678021 1.92728187981412,-0.914473029807523,0.498710596731235 ================================================ FILE: doc_includes/overview.htm ================================================ Plex in Java ================================================ FILE: doc_includes/overview_plex3.htm ================================================ Plex in Java 1. Introduction
2. Installing Plex in Matlab
3. Installing Plex in R
4. Running Plex standalone
5. Using Plex
6. Extending Plex
7. Plex Design considerations
    7.1 Basic Data Types
    7.2 Design Considerations
    7.3 Design Choices
    7.4 Algorithms

1. Introduction

Plex is a set of library routines for computing persistent homology on finite simplicial complexes generated from metric space data. The original version of Plex was a collection of matlab scripts. The current version, version 3, is a rewrite in Java improve performance and portability. It is less than .5 M, is as portable as Java itself, includes a simple self-contained GUI (provided by adapting Beanshell), and can easily be "installed" to work with Matlab.

It is important to note that this Java code was written using features from Java 5.0 (also known as 1.5, I guess to confuse people), so you should have a Java runtime that is of sufficiently recent vintage. You can find out if there is a Java launcher (or Java interpreter, if you prefer) readily available on a Linux box by invoking

% which java
at the command shell. And if you know where your Java launcher is, you can check on the version of Java that is available from the command line by invoking
% java -version
Java version "1.5.0_08"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_08-b03)
Java HotSpot(TM) 64-Bit Server VM (build 1.5.0_08-b03, mixed mode)
You can check the Java VM being used by matlab by executing, in the matlab command window,
>> version -java

ans =

Java 1.5.0_04 with Sun Microsystems Inc. Java HotSpot(TM) 64-Bit Server VM mixed mode
Anything with a version number greater than 1.5 should be fine.

At the moment most people use the library in matlab, but we are working on a port to the R environment, and that will be documented here when done. It is also possible to execute Plex directly with the Java launcher (formerly known as the Java interpreter), and we will explain how to do that below, too.

2. Installing Plex in Matlab

To install Plex in matlab, you make sure that the plex.jar you downloaded is in a convenient place, and then add it to the Java class path in matlab. You should also import the package to save yourself some typing. Specifically, suppose that the path to your home directory name is /my/path/mydir (if your login is bob, then your home directory path might be something like /home/bob). The precise installation steps are to download plex.jar to the director /my/path/mydir, and add the following lines to your matlab startup.m file:

javaaddpath('/my/path/mydir/plex.jar');
import edu.stanford.math.plex.*;

NOTE: You may need to increase the maximum Java heap size at some point, and if you do, you should create a file named java.opts and in your MATLAB startup directory -- that is, the same directory that contains the startup.m file. In this file, include a line specifying a value for the -Xmx which sets the maximum heap size allowed for the Java VM. (It doesn't force the heap to grow this large, it simply sets the limit on how large the heap is allowed to grow.) For example, to increase the JVM memory allocation limit to 128 megabytes, put the line

-Xmx128m
in your java.opts file.

The matlab documentation discourages you from setting the the -Xmx option to more than 66% of the physical RAM on your machine, but if the reason that you are running matlab is to run plex, then you should set the max memory size as large as you need it to be. Using a 64-bit Java 1.5 VM, I can grow the heap to at least 5 gigabytes, and what I have in my java.opt file in that case is -Xmx16000m, and on a version 1.6 Java VM with -d64, the heap size can be huge; for this VM I use the settings -d64 -Xmx200000M -Xms4000M, since I have 16G of memory on my machine. Setting the max heap size to be either absurdly large, or larger than it will actually grow on in practice, means that I know that it if I run out of memory, it's because I really can't get any more.

The, after restarting matlab, you should be able to do execute the following in the matlab command window:

>> Simplex.makePoint(1, 2)
 
ans =
 
<(2) 1>

At that point, you are ready to use the code. Until we get a more formal system in place, I will keep the latest stable version of plex.jar on my home directory.

NOTE: At the moment I'm not sure whether or not there is anything special that you need to do to get the Java VM in matlab to use the JIT (Just In Time compiler) on the Plex code. Having the bytecodes processed by the JIT will make a significant difference in the performance of the routines.

3. Installing Plex in R

Not yet supported.

4. Running Plex standalone

Naturally you must have a Java VM (aka JVM) installed in order to run it. However, since JVM's exist for most hardware platforms, and are commonly used by web browsers, it is very unlikely that you don't have one installed already. If you don't, though you can get the latest Sun release here.

We provide a simple "top-level-loop" for standalone use. You can execute this by running java -cp plex.jar JPlex in a command window, shell, etc. (Your Java VM installation will have to include the Swing classes, but this is standard, so there should be no problem.) There are a number keyword arguments to Java that you may want to employ, and if you are planning run larger examples you should read the documentation for the Java interpreter on -Xmx, -Xms, -d64 and -Xbatch. Again, recall that Plex only works in Java 5.0 or later.

You can put the plex.jar file anywhere, but making a copy in your home directory or in some subdirectory thereof, seems prudent, and the file is small enough that this should be no problem. At the same time, you should make a subdirectory of your home directory named plex, and create an empty file in your home directory named .bshrc.

The GUI window that comes up is a slightly modified version of Beanshell. The most visible difference between the Matlab and standalone interpreters is that Beanshell wraps "<>" around the results that it prints, so that the number 187 would print as <187> in standalone Plex.

When starting up, Beanshell loads the file .bshrc from your home directory, if there is such a file. You can put various initializations in that file, such as commands to change the default actions for input logging, which is the only non-trivial change we made to Beanshell. (The trivial changes, which the author, Pat Niemeyer, kindly allowed us to make, were to put the Beanshell jar contents in with the plex library, and to change some banners and menu options.)

The initial window contains a single "workspace", with an interpreter that you can type to; the prompt is plex>. If you wish Plex to record the input you type to a given workspace, you can enable input logging for that workspace by left-clicking the File menu for the workspace and selecting Enable logging. You can also arrange for input logging to be on by default by adding the line setLogging(true); to your .bshrc file.

You can also turn logging on or off within a workspace by typing log(true); or log(false); to the window. The log files are, by default, written to the subdirectory plex of your home directory, but you can change that. However, logging will fail if you don't have a plex subdirectory in your home directory and you left the defaults as is. You can arrange for input logging to go to a different directory, say /Users/myhome/whereIwantlogfiles by default by adding the line setLogging("/Users/myhome/whereIwantlogfiles"); to your .bshrc file. Resetting the default log directory doesn't affect the default flag setting, so if you also want logging on by default, you have to set that, too. Finally, you can change the path of a logfile for a specific workspace by invoking the command log("/my/current/log"); in the workspace window.

The default name of a logfile is the first unused name of the form log_xy.txt, where x and y are decimal digits. In other words, the first logfile that gets created is log_00.txt. If you leave more than 100 logfiles in your log directory, the names get created using a Java library routine for making temporary files, and the names become more complicated, but still begin with log and end with .txt.

Finally, you can determine the current status of input logging by selecting the Logging status item in the File menu, or by by invoking the command log(); in the workspace window. In either case a message is printed describing the status for both input logging in the current workspace and the default values for all workspaces. (Specifically, log(); returns a status string, and since return values are printed by default, this String gets printed, unless you disable printing of return values. The Logging status menu item actually inserts the string in the Workspace window, so this works even when return value printing is disabled.)

5. Using Plex

Currently Plex supports building simplicial streams, which is the name given to simplicial complexes sorted by filtration index and dimension. All such streams are subclasses of the abstract class SimplexStream. Plex also provides a class called Persistence which has methods for computing the persistence intervals for a SimplexStream. Because the matlab command window doesn't allow the use of the Java new operator, there are static methods in the Plex class for the creation of most of the higher level Plex classes. Here is a the result of a toy session in matlab using the Plex code:
>> p = Plex.Persistence()
 
p = 

edu.stanford.math.plex.Persistence@11eea7f0
 
>> tor = Plex.Torus(20, 2)
 
tor =
 
edu.stanford.math.plex.Torus@1ae2b9e5
 
>> rc = Plex.RipsStream(0.053096, 0.530956, 3, tor)
 
rc =
 
edu.stanford.math.plex.RipsStream@675ee9e3
 
>> rc.size()

ans =

       4000

>> res = Plex.FilterInfinite(p.computeIntervals(rc))
 
res =
 
BN{1, 2, 1}
At least the results are correct, but more exposition here wouldn't hurt.

6. Extending Plex

The obvious way to extend Plex is to write some more Java code and add that code to the classpath. You should look at the Matlab or Beanshell documentation to see how to do this. It can be done either at startup or dynamically, and is quite easy in either case.

7. Plex Design considerations

Plex is a library designed to compute persistent homology over finite fields for finite metric spaces. The code centers around a clever, but fairly obscure, algorithm for computing what are called "persistence intervals". The algorithm (in this section an unspecified "algorithm" means this particular one) is intimately connected with the structure of finitely generated modules over a principal ideal domain (aka PID) and something called Smith normal form for matrices over PID's. The persistence algorithm (as it is called) is complex and subtle enough that it couldn't be readily replaced, and since it is surprisingly efficient both in space and time, it seems very unlikely to be supplanted. (The algorithm and the associated mathematics is described in some detail in: A. Zomorodian and G. Carlsson, "Computing persistent homology," Discrete and Computational Geometry, 33 (2), pp. 247-274.

Rather than repeat the information in the paper above, the contents of the paper will be assumed, and the persistent algorithm will be presented as described. That is, no attempt will be made here to prove that the algorithm works, although we will give a few alternative descriptions of elements of the algorithm to provide some intuition. While it might not be obvious that this is the case, the computation of the persistent homology over a finite field is equivalent to reducing the various boundary matrices to Smith normal form, and in turn, because of the specific structure of the boundary matrices, it is enough to use column operations on these matrices to reduce them to column echelon form, provided we have properly ordered the rows and columns of the matrix before starting -- specifically, to have the rows and columns of the matrix be in increasing persistence order (e.g., to have all simplices of a given degree appear in an order so that the filtration indices are non-decreasing.

Another critical point in the matrix reduction, and one which allows for a very efficient representation of the columns of the matrix, is that the polynomials in the boundary matrix are, in fact, monomials, and the degree of the ij-th entry is the difference between filtration_index(simplex(j)) and filtration_index(simplex(i)), and this property is preserved by the row and column operations used in reducing to Smith normal form (and hence by the subset of operations used to reduce to column echelon form). This means that columns in the matrix may be stored as an array of field elements, and in fact, by an array of type char if we desired (as long as the base field is Zp for some p smaller than 256. The last important "theoretical optimization" used in the algorithm is that it is possible to ignore all of the rows in the boundary matrix of dimension d that correspond to pivot columns in dimension d-1. (This last point is Lemma 4.2 in the paper referred to above.

It is critical in making a scalable version of this algorithm is the realization that the boundary matrix is quite sparse, which means that we certainly want to represent the columns of the boundary matrix from dimension d to d-1 as something other than an array whose length is equal to number of simplices of dimension d-1.

7.1 Basic Data Types

The most basic of the data types is the Simplex. In Plex these are a (smallish) subset of some set of points (aka vertices), and for convenience we always take these points to be integers in the range from 1 to N, inclusive (for N the cardinality of the finite set -- for small finite metric spaces, the indices can range over all the points, for larger sets, they range over a particular subset known as landmarks.). In addition to being able to get the vertices for a simplex, we must also be able to compute its boundary. This immediately leads us to a basic design question: Do we want to have simplices be unique, or will we allow multiple instances of Simplex with the same vertex set to be equivalent? There is an additional attribute for simplices, which is the filtration index or findex. Intuitively this index corresponds to an index into an array of increasing "times of creation", but the only essential point is that the findex of a simplex is at least as large as the findex of each of its faces. There is an obvious ordering on simplices, given by ordering first on the dimension, next on the findex, and finally lexicographically on the indices. This ordering is something that will be used fairly often, so it should be fast.

Another type we require in the Chain. As we mentioned above, all of the column operations on the boundary matrices can be computed in terms of simplicial chains, and the sparsity of the boundary matrix suggests that these chains should be implemented as an association between simplices and coefficients, rather than as an array where the i-th entry is the coefficient of the i-th simplex (for some enumeration of simplices). Since we expect to have lots of simplices and for most chains to have comparatively few non-zero entries, having a pair of arrays of equal length , one for coefficients and and one for simplices, seems to be about as simple as is possible. If we arrange the entries in the chain so that the simplex vector is sorted, then chain operations become linear in the size of the chains, which is as fast as they can be.

The final basic data structure we call a SimplexStream. There is some flexibility in the order in which the persistence algorithm needs to process the elements of a given simplicial complex. Any ordering must process all of the faces of a simplex before the simplex itself, and within a given dimension, the order must be non-decreasing for findex values. The order that we choose in our implementation is to sort simplices first by findex, and then by dimension. (It might seem odd that a matrix column reduction can process all of the dimensions at once, but the reason this is possible is that ONLY column operations are done, no simplex is ever processed until all of its faces have been processed, and the algorithm only does reductions using columns of a given dimension. In other words, we could sort the simplices lexicographically first by dimension and then by findex and the algorithm would do the same calculations in an equivalent order.)

Any instance of SimplexStream must return the simplices in some order compatible with this requirement. For each of the general mechanisms I came up with, I was able to prove that it was not possible to make a mechanism to generate the simplices in a suitable order without generating at least all of the elements of a given dimension. (The proofs were pretty simple, but I don't recall any details, since once I failed a few times I just expunged the entire idea.) So any Plex implementation of SimplexStream generates all of the simplices of the complex and stores them. There also turn out to be other reasons why having all of the simplices present during the persistence calculation is necessary, so there is probably no real benefit to being able to generate them one at a time, even if it were possible.

7.2 Design Considerations

For the types of simplicial complexes that we study with Plex, the number of simplices grows geometrically with N. Therefore, even for large metric spaces, we can't construct simplicial complexes where the index set is large. This offers one opportunity for compression -- restrict N to a size that limits the number of bits required to represent it, and for large metric spaces, use a "landmark array" of size N of indices to make the smaller, contiguous "vertex indices" into points in the metric space.

The boundary operation on simplices is the first set in the basic algorithm, and deciding how to handle this is probably the key design decision for the implementation. The options are whether the boundary value is built-in (or at least cached), or not. By built-in we mean that there is a slot in the simplex that points to a chain or array of faces (or something analogous). The advantage of this is that the boundary operation is fast, and the disadvantage is that construction of simplices is more complicated, and the simplices themselves are larger and more intertwined (the latter makes it much more difficult for the garbage collector to reclaim storage, and the former means that it is even more critical that this happen). The key question here seems to be whether or not it is better to have a unique simplex for a given vertex set (aka "interned" simplices), or whether simplices should be given "by value" (that is, two distinct instances of Simplex are interchangeable if they were created using the same vertex set). The best answer is matter of code simplicity and performance. Since it will surely be simpler to use by-value simplices, if it is much faster to construct the simplicial complex this way, and this doesn't hurt the performance of the persistence algorithm, then we should use them.

Affiliated issue are the matters of the findex, and what is called in the paper the "mark" and entries in T[]. If simplices are by-value, then having a slot holding the filtration index seems less problematic, at least if complex (i.e., SimplexStream) construction is very fast. The reason is that we can simply dispose of the entire stream and start over again (the GC will have little trouble reclaiming the space -- accidentally holding on to a Simplex instance prevents reclaiming only a few bytes).

Since T[] is indexed by the simplices, what this really implies is a mapping between simplices and the chains that are their reduced columns in the boundary matrix. If the simplices in the chain returned by the "remove pivot rows" subroutine are actually the same instances as will be found in the non-empty boundary chains after the removal of unmarked terms in subsequent calls to removePivotRows(), then we can simply store the T[] chain for the simplex in the simplex itself. This means that having interned simplices, at least for the duration of the algorithm, can speed up access to the chains in T[]. However, since not all simplices have T[] entries, this can consume more space. For data sets that I've looked at, which may be far from representative, it appears that having T[] be separate from the simplices doesn't save large percentage of the space.

Finally, if the simplices are by-value, it seems impossible to avoid having (for instance) a separate hashtable in which to store the values of marked simplices, since there are no "details" about the faces of a simplex stored with the simplex. If the simplices are interned, however, it seems most efficient to have a flag in the object to indicate whether or not it is marked. (If we have a separate T[], the flag can be in the entries for that.)

7.3 Design Choices

In the end the choice was made to have simplices be by-value. Since we aren't interested in very large dimensional cases, we have specific implementations for Simplex for dimensions 0-7. (If we need still higher dimensions implementing them in the same manner is trivial.) All concrete implementations of Simplex pack integer values in one or more long integer slots. At one time we used 16-bit values, but we discovered enough cases where we needed on the order of a million points, and most of the large calculations use very low dimensional homology, so it seemed best and simplest to increase the size of spaces to the limit of positive int in Java, which is 16 bits. Since the values are stored in increasing order, the patterns are unique, so equality testing, comparison, and computing the dimension and vertex set are all very fast. (We make the base class, Simplex, be abstract, and the all of the implementation classes are final subclasses of this base class, which speeds up method invocations on code written against instances of the base class.) The base class includes slots for findex and the T[] chain values (we'll explain below why this works). Because the dimensions are small and have fixed limits, we also have open-coded versions of the boundary() method, where this method returns an array [face0,face1,...], rather than the usual chain.

Also, the implementations that we provide for SimplexStream all store the simplices in an array of stacks indexed by dimension and filtration index, which means that the construction methods that are implemented take a the maximum dimension argument, and must somehow determine a bound on the possible values of findex. These choices allow things to scale enough that constructing Rips stream objects with tens of millions of simplices is quite fast (e.g, 36M simplices, took 13.17 seconds on my machine).

7.4 Algorithms

The reason that we can have simplices by by-value when being constructed, but be unique during critical parts of the algorithm is that we use a specially designed hashtable, an instance of SimplexTable, to store simplices that are "marked" by the algorithm. The average number of probes to insert or find a simplex is less than 1.5 (reprobes just go to the next index in the array), and the hashing algorithm only uses the values of the long slots that encode the vertices, so this step is quite fast. Since we store a simplex in the table to mark it, and we have check every entry in the boundary() array and delete those that are unmarked, what we actually do is this: Simplex[] b = sigma.boundary(); if (b == null) return null; for (int i = 0; i < b.length; i++) // If the entry isn't marked, we clear it, and if the entry is // marked, we replace it with the Simplex that came from the // stream, which has the findex properly set. This means that // we don't have to recompute or find the filtration indices // for the faces, and all of the simplices created by the // boundary() method die immediately. b[i] = marked.get(b[i]); Chain d = Chain.fromBoundaryChain.fromBoundary(b,p);

As the comment points out, we get to have our cake and eat it, too. The step of running the simplices through the marked table allows them to be interned for purposes of the algorithm, so we automatically get to retain any state that was stored in them earlier, and can use the simplices as repositories for any per-simplex state needed by the algorithm. Notice also that all of the new objects allocated during the removePivotRows() call are dead almost immediately, which allows for very efficient reclamation of that memory. In fact, the only objects that don't survive the call to removePivotRows() are the chains that "get stored in T[]", and which live for the duration of the algorithm.

================================================ FILE: doc_includes/update_mime_types.sh ================================================ #!/bin/sh svn propset svn:mime-type text/html -R *.html svn propset svn:mime-type text/html -R */*.html svn propset svn:mime-type text/html -R */*/*.html svn propset svn:mime-type text/html -R */*/*/*.html svn propset svn:mime-type text/html -R */*/*/*/*.html svn propset svn:mime-type text/html -R */*/*/*/*/*.html svn propset svn:mime-type text/html -R */*/*/*/*/*/*.html svn propset svn:mime-type text/html -R */*/*/*/*/*/*/*.html svn propset svn:mime-type text/html -R */*/*/*/*/*/*/*/*.html svn propset svn:mime-type text/html -R */*/*/*/*/*/*/*/*/*.html svn propset svn:mime-type text/html -R */*/*/*/*/*/*/*/*/*/*.html ================================================ FILE: reports/javaplex_tutorial/cleanup.sh ================================================ #!/bin/bash rm javaplex_tutorial.aux rm javaplex_tutorial.blg rm javaplex_tutorial.log rm javaplex_tutorial.out rm javaplex_tutorial.bbl rm javaplex_tutorial.toc rm javaplex_tutorial.pdf ================================================ FILE: reports/javaplex_tutorial/javaplex_tutorial.aux ================================================ \relax \providecommand\hyper@newdestlabel[2]{} \providecommand\HyperFirstAtBeginDocument{\AtBeginDocument} \HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined \global\let\oldcontentsline\contentsline \gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}} \global\let\oldnewlabel\newlabel \gdef\newlabel#1#2{\newlabelxx{#1}#2} \gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}} \AtEndDocument{\ifx\hyper@anchor\@undefined \let\contentsline\oldcontentsline \let\newlabel\oldnewlabel \fi} \fi} \global\let\hyper@last\relax \gdef\HyperFirstAtBeginDocument#1{#1} \providecommand\HyField@AuxAddToFields[1]{} \providecommand\HyField@AuxAddToCoFields[2]{} \citation{Javaplex} \@writefile{toc}{\contentsline {section}{\tocsection {}{1}{Introduction}}{2}{section.1}} \@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{1.1}{Javaplex}}{2}{subsection.1.1}} \@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{1.2}{License}}{2}{subsection.1.2}} \@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{1.3}{Installation for Matlab}}{2}{subsection.1.3}} \citation{Armstrong} \citation{ComputationalTopology} \citation{TopologicalPersistence} \citation{Hatcher} \citation{ComputingPersistent} \@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{1.4}{Accompanying files}}{3}{subsection.1.4}} \@writefile{toc}{\contentsline {section}{\tocsection {}{2}{Math review}}{3}{section.2}} \@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{2.1}{Simplicial complexes}}{3}{subsection.2.1}} \@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{2.2}{Homology}}{3}{subsection.2.2}} \@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{2.3}{Filtered simplicial complexes}}{3}{subsection.2.3}} \@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{2.4}{Persistent homology}}{3}{subsection.2.4}} \@writefile{toc}{\contentsline {section}{\tocsection {}{3}{Explicit simplex streams}}{4}{section.3}} \newlabel{S:explicitStream}{{3}{4}{Explicit simplex streams}{section.3}{}} \@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{3.1}{Computing homology}}{4}{subsection.3.1}} \citation{Hatcher} \newlabel{S:computingPersistentHomology}{{3.2}{6}{Computing persistent homology}{subsection.3.2}{}} \@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{3.2}{Computing persistent homology}}{6}{subsection.3.2}} \@writefile{toc}{\contentsline {section}{\tocsection {}{4}{Point cloud data}}{10}{section.4}} \newlabel{SS:euclidean-metric}{{4.1}{10}{Euclidean metric spaces}{subsection.4.1}{}} \@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{4.1}{Euclidean metric spaces}}{10}{subsection.4.1}} \@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces The house point cloud}}{10}{figure.1}} \newlabel{fig:housePointCloud}{{1}{10}{The house point cloud}{figure.1}{}} \newlabel{SS:explicit-metric}{{4.2}{11}{Explicit metric spaces}{subsection.4.2}{}} \@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{4.2}{Explicit metric spaces}}{11}{subsection.4.2}} \newlabel{Ex:flatTorus}{{5}{12}{}{exercise.5}{}} \newlabel{Ex:flatKlein}{{6}{12}{}{exercise.6}{}} \newlabel{Ex:quotProjPlane}{{7}{12}{}{exercise.7}{}} \citation{WitnessComplexes} \@writefile{toc}{\contentsline {section}{\tocsection {}{5}{Streams from point cloud data}}{13}{section.5}} \newlabel{S:sfpc}{{5}{13}{Streams from point cloud data}{section.5}{}} \newlabel{SS:VietorisRips}{{5.1}{13}{Vietoris--Rips streams}{subsection.5.1}{}} \@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{5.1}{Vietoris--Rips streams}}{13}{subsection.5.1}} \citation{Range} \citation{KleinBottle} \newlabel{SS:landmarks}{{5.2}{17}{Landmark selection}{subsection.5.2}{}} \@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{5.2}{Landmark selection}}{17}{subsection.5.2}} \@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{5.3}{Witness streams}}{19}{subsection.5.3}} \newlabel{Ex:witnessHouse}{{17}{20}{}{exercise.17}{}} \citation{WitnessComplexes} \@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{5.4}{Lazy witness streams}}{21}{subsection.5.4}} \citation{Range} \citation{Mumford} \citation{Range} \citation{Range} \newlabel{Ex:flatTorusLazy}{{21}{23}{}{exercise.21}{}} \newlabel{Ex:flatKleinLazy}{{22}{23}{}{exercise.22}{}} \newlabel{Ex:quotProjPlaneLazy}{{23}{23}{}{exercise.23}{}} \@writefile{toc}{\contentsline {section}{\tocsection {}{6}{Examples with real data}}{23}{section.6}} \newlabel{S:real}{{6}{23}{Examples with real data}{section.6}{}} \@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{6.1}{Range image patches}}{23}{subsection.6.1}} \citation{Range,Mumford} \@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Betti intervals for the lazy witness complex built from $X^5(300,30)$}}{25}{figure.2}} \newlabel{fig:rangeBetti}{{2}{25}{Betti intervals for the lazy witness complex built from $X^5(300,30)$}{figure.2}{}} \citation{adams2015nudged} \citation{VanHaterenVanDerSchaaf} \citation{Mumford} \citation{KleinBottle} \citation{KleinBottle} \citation{KleinBottle} \citation{KleinBottle} \@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Projection of $X^5(300,30)$}}}{26}{subfigure.3.2}} \@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {Range primary circle}}}{26}{subfigure.3.2}} \@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{6.2}{Optical image patches}}{26}{subsection.6.2}} \@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces Betti intervals for the lazy witness complex built from $X(300,30)$}}{28}{figure.3}} \newlabel{fig:rangeBetti}{{3}{28}{Betti intervals for the lazy witness complex built from $X(300,30)$}{figure.3}{}} \@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Projection of $X(300,30)$}}}{29}{subfigure.4.2}} \@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {Optical primary circle}}}{29}{subfigure.4.2}} \@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces Betti intervals for the lazy witness complex built from $X(15,30)$}}{30}{figure.4}} \newlabel{fig:rangeBetti}{{4}{30}{Betti intervals for the lazy witness complex built from $X(15,30)$}{figure.4}{}} \citation{brown2008algorithmic} \citation{martin2010topology} \citation{martin2011non} \citation{martin2011non} \citation{zomorodian2012advances} \@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Projection of $X(15,30)$}}}{31}{subfigure.5.2}} \@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {Three circle model}}}{31}{subfigure.5.2}} \@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{6.3}{Cyclo-octane molecule conformations}}{31}{subsection.6.3}} \@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces The cyclo-octane molecule consists of a ring of 8 carbon atoms (black), each bonded to a pair of hydrogen atoms (white).}}{32}{figure.5}} \newlabel{fig:cyclo}{{5}{32}{The cyclo-octane molecule consists of a ring of 8 carbon atoms (black), each bonded to a pair of hydrogen atoms (white)}{figure.5}{}} \@writefile{lof}{\contentsline {figure}{\numberline {6}{\ignorespaces Betti intervals for the lazy witness complex built from $X(300,30)$}}{33}{figure.6}} \newlabel{fig:rangeBetti}{{6}{33}{Betti intervals for the lazy witness complex built from $X(300,30)$}{figure.6}{}} \@writefile{toc}{\contentsline {section}{\tocsection {}{7}{Remarks}}{33}{section.7}} \newlabel{SS:java-heap-size}{{7.1}{33}{Java heap size}{subsection.7.1}{}} \@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{7.1}{Java heap size}}{33}{subsection.7.1}} \citation{brown2008algorithmic} \citation{martin2010topology} \citation{martin2011non} \newlabel{SS:matlabFunctions}{{7.2}{34}{Matlab functions with Javaplex commands}{subsection.7.2}{}} \@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{7.2}{Matlab functions with Javaplex commands}}{34}{subsection.7.2}} \@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{7.3}{Displaying the simplices in a stream}}{34}{subsection.7.3}} \@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{7.4}{Displaying the boundary matrix of a homology computation}}{34}{subsection.7.4}} \@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{7.5}{Computing the bottleneck distance}}{34}{subsection.7.5}} \@writefile{toc}{\contentsline {section}{\tocsection {}{8}{Acknowledgements}}{34}{section.8}} \@writefile{toc}{\contentsline {section}{Appendices}{34}{section*.2}} \@writefile{toc}{\contentsline {section}{\tocsection {Appendix}{A}{Dense core subsets}}{34}{appendix.A}} \newlabel{A:core}{{A}{34}{Dense core subsets}{appendix.A}{}} \citation{KleinBottle} \citation{WitnessComplexes} \citation{Hatcher} \@writefile{toc}{\contentsline {section}{\tocsection {Appendix}{B}{Exercise solutions}}{36}{appendix.B}} \newlabel{A:solutions}{{B}{36}{Exercise solutions}{appendix.B}{}} \citation{ChazalDeSilvaOudot2013} \citation{Adamaszek2013,AAFPP-J,AA-VRS1,AAM} \bibstyle{abbrvnat} \bibdata{javaplex_tutorial} \bibcite{Adamaszek2013}{{1}{2013}{{Adamaszek}}{{}}} \bibcite{AA-VRS1}{{2}{2017}{{Adamaszek and Adams}}{{}}} \bibcite{AAFPP-J}{{3}{2016}{{Adamaszek et~al.}}{{Adamaszek, Adams, Frick, Peterson, and Previte-Johnson}}} \bibcite{AAM}{{4}{2017}{{Adamaszek et~al.}}{{Adamaszek, Adams, and Motta}}} \bibcite{Range}{{5}{2009}{{Adams and Carlsson}}{{}}} \bibcite{adams2015nudged}{{6}{2015}{{Adams et~al.}}{{Adams, Atanasov, and Carlsson}}} \bibcite{Armstrong}{{7}{1983}{{Armstrong}}{{}}} \bibcite{brown2008algorithmic}{{8}{2008}{{Brown et~al.}}{{Brown, Martin, Pollock, Coutsias, and Watson}}} \bibcite{KleinBottle}{{9}{2008}{{Carlsson et~al.}}{{Carlsson, Ishkhanov, de~Silva, and Zomorodian}}} \bibcite{ChazalDeSilvaOudot2013}{{10}{2013}{{Chazal et~al.}}{{Chazal, de~Silva, and Oudot}}} \bibcite{WitnessComplexes}{{11}{2004}{{de~Silva and Carlsson}}{{}}} \bibcite{ComputationalTopology}{{12}{2010}{{Edelsbrunner and Harer}}{{}}} \bibcite{TopologicalPersistence}{{13}{2002}{{Edelsbrunner et~al.}}{{Edelsbrunner, Letscher, and Zomorodian}}} \bibcite{Hatcher}{{14}{2002}{{Hatcher}}{{}}} \bibcite{Mumford}{{15}{2003}{{Lee et~al.}}{{Lee, Pedersen, and Mumford}}} \bibcite{martin2011non}{{16}{2011}{{Martin and Watson}}{{}}} \bibcite{martin2010topology}{{17}{2010}{{Martin et~al.}}{{Martin, Thompson, Coutsias, and Watson}}} \bibcite{Javaplex}{{18}{2014}{{Tausz et~al.}}{{Tausz, Vejdemo-Johansson, and Adams}}} \bibcite{VanHaterenVanDerSchaaf}{{19}{1998}{{van Hateren and van~der Schaaf}}{{}}} \bibcite{zomorodian2012advances}{{20}{2012}{{Zomorodian}}{{}}} \bibcite{ComputingPersistent}{{21}{2005}{{Zomorodian and Carlsson}}{{}}} \newlabel{tocindent-1}{0pt} \newlabel{tocindent0}{58.61125pt} \newlabel{tocindent1}{66.11127pt} \newlabel{tocindent2}{29.38873pt} \newlabel{tocindent3}{0pt} \@writefile{toc}{\contentsline {section}{\tocsection {Appendix}{}{References}}{41}{section*.3}} ================================================ FILE: reports/javaplex_tutorial/javaplex_tutorial.bbl ================================================ \begin{thebibliography}{21} \providecommand{\natexlab}[1]{#1} \providecommand{\url}[1]{\texttt{#1}} \expandafter\ifx\csname urlstyle\endcsname\relax \providecommand{\doi}[1]{doi: #1}\else \providecommand{\doi}{doi: \begingroup \urlstyle{rm}\Url}\fi \bibitem[Adamaszek(2013)]{Adamaszek2013} M.~Adamaszek. \newblock Clique complexes and graph powers. \newblock \emph{Israel Journal of Mathematics}, 196\penalty0 (1):\penalty0 295--319, 2013. \bibitem[Adamaszek and Adams(2017)]{AA-VRS1} M.~Adamaszek and H.~Adams. \newblock The {V}ietoris--{R}ips complexes of a circle. \newblock \emph{Pacific Journal of Mathematics}, 290\penalty0 (1):\penalty0 1--40, 2017. \bibitem[Adamaszek et~al.(2016)Adamaszek, Adams, Frick, Peterson, and Previte-Johnson]{AAFPP-J} M.~Adamaszek, H.~Adams, F.~Frick, C.~Peterson, and C.~Previte-Johnson. \newblock Nerve complexes of circular arcs. \newblock \emph{Discrete \& Computational Geometry}, 56:\penalty0 251--273, 2016. \bibitem[Adamaszek et~al.(2017)Adamaszek, Adams, and Motta]{AAM} M.~Adamaszek, H.~Adams, and F.~Motta. \newblock Random cyclic dynamical systems. \newblock \emph{Advances in Applied Mathematics}, 83:\penalty0 1--23, 2017. \bibitem[Adams and Carlsson(2009)]{Range} H.~Adams and G.~Carlsson. \newblock On the nonlinear statistics of range image patches. \newblock \emph{SIAM J.\ Imag.\ Sci.}, 2:\penalty0 110--117, 2009. \bibitem[Adams et~al.(2015)Adams, Atanasov, and Carlsson]{adams2015nudged} H.~Adams, A.~Atanasov, and G.~Carlsson. \newblock Nudged elastic band in topological data analysis. \newblock \emph{Topological methods in nonlinear analysis}, 45\penalty0 (1):\penalty0 247--272, 2015. \bibitem[Armstrong(1983)]{Armstrong} M.~A. Armstrong. \newblock \emph{Basic Topology}. \newblock Springer, New York, Berlin, 1983. \bibitem[Brown et~al.(2008)Brown, Martin, Pollock, Coutsias, and Watson]{brown2008algorithmic} M.~W. Brown, S.~Martin, S.~N. Pollock, E.~A. Coutsias, and J.~P. Watson. \newblock Algorithmic dimensionality reduction for molecular structure analysis. \newblock \emph{Journal of Chemical Physics}, 129:\penalty0 064118, 2008. \bibitem[Carlsson et~al.(2008)Carlsson, Ishkhanov, de~Silva, and Zomorodian]{KleinBottle} G.~Carlsson, T.~Ishkhanov, V.~de~Silva, and A.~Zomorodian. \newblock On the local behavior of spaces of natural images. \newblock \emph{Int.\ J.\ Comput.\ Vision}, 76:\penalty0 1--12, 2008. \bibitem[Chazal et~al.(2013)Chazal, de~Silva, and Oudot]{ChazalDeSilvaOudot2013} F.~Chazal, V.~de~Silva, and S.~Oudot. \newblock Persistence stability for geometric complexes. \newblock \emph{Geometriae Dedicata}, pages 1--22, 2013. \bibitem[de~Silva and Carlsson(2004)]{WitnessComplexes} V.~de~Silva and G.~Carlsson. \newblock Topological estimation using witness complexes. \newblock In \emph{Eurographics Symposium on Point-Based Graphics}, June 2004. \bibitem[Edelsbrunner and Harer(2010)]{ComputationalTopology} H.~Edelsbrunner and J.~Harer. \newblock \emph{Computational Topology: An Introduction}. \newblock American Mathematical Society, Providence, 2010. \bibitem[Edelsbrunner et~al.(2002)Edelsbrunner, Letscher, and Zomorodian]{TopologicalPersistence} H.~Edelsbrunner, D.~Letscher, and A.~Zomorodian. \newblock Topological persistence and simplification. \newblock \emph{Discrete Comput.\ Geom.}, 28:\penalty0 511--533, 2002. \bibitem[Hatcher(2002)]{Hatcher} A.~Hatcher. \newblock \emph{Algebraic Topology}. \newblock Cambridge University Press, Cambridge, 2002. \bibitem[Lee et~al.(2003)Lee, Pedersen, and Mumford]{Mumford} A.~B. Lee, K.~S. Pedersen, and D.~Mumford. \newblock The nonlinear statistics of high-contrast patches in natural images. \newblock \emph{Int.\ J.\ Comput.\ Vision}, 54:\penalty0 83--103, 2003. \bibitem[Martin and Watson(2011)]{martin2011non} S.~Martin and J.~P. Watson. \newblock Non-manifold surface reconstruction from high-dimensional point cloud data. \newblock \emph{Computational Geometry}, 44:\penalty0 427--441, 2011. \bibitem[Martin et~al.(2010)Martin, Thompson, Coutsias, and Watson]{martin2010topology} S.~Martin, A.~Thompson, E.~A. Coutsias, and J.~P. Watson. \newblock Topology of cyclo-octane energy landscape. \newblock \emph{Journal of Chemical Physics}, 132:\penalty0 234115, 2010. \bibitem[Tausz et~al.(2014)Tausz, Vejdemo-Johansson, and Adams]{Javaplex} A.~Tausz, M.~Vejdemo-Johansson, and H.~Adams. \newblock Java{P}lex: {A} research software package for persistent (co)homology. \newblock In H.~Hong and C.~Yap, editors, \emph{Proceedings of ICMS 2014}, Lecture Notes in Computer Science 8592, pages 129--136, 2014. \newblock Software available at \url{http://appliedtopology.github.io/javaplex/}. \bibitem[van Hateren and van~der Schaaf(1998)]{VanHaterenVanDerSchaaf} J.~H. van Hateren and A.~van~der Schaaf. \newblock Independent component filters of natural images compared with simple cells in primary visual cortex. \newblock \emph{Proc.\ R.\ Soc.\ Lond.\ B}, 265:\penalty0 359--366, 1998. \bibitem[Zomorodian(2012)]{zomorodian2012advances} A.~Zomorodian. \newblock \emph{Advances in Applied and Computational Topology}. \newblock American Mathematical Society, 2012. \bibitem[Zomorodian and Carlsson(2005)]{ComputingPersistent} A.~Zomorodian and G.~Carlsson. \newblock Computing persistent homology. \newblock \emph{Discrete Comput.\ Geom.}, 33:\penalty0 249--274, 2005. \end{thebibliography} ================================================ FILE: reports/javaplex_tutorial/javaplex_tutorial.bib ================================================ @article{Adamaszek2013, title={Clique complexes and graph powers}, author={Adamaszek, Micha{\l}}, journal={Israel Journal of Mathematics}, volume={196}, number={1}, pages={295--319}, year={2013} } @article{AAFPP-J, title={Nerve complexes of circular arcs}, author={Adamaszek, Micha{\l} and Adams, Henry and Frick, Florian and Peterson, Chris and Previte-Johnson, Corrine}, journal={Discrete \& Computational Geometry}, volume={56}, pages={251--273}, year={2016} } @article{AA-VRS1, title={The {V}ietoris--{R}ips complexes of a circle}, author={Adamaszek, Micha{\l} and Adams, Henry}, journal={Pacific Journal of Mathematics}, volume={290}, number={1}, pages={1--40}, year={2017} } @article{AAM, title={Random cyclic dynamical systems}, author={Adamaszek, Micha{\l} and Adams, Henry and Motta, Francis}, journal={Advances in Applied Mathematics}, volume={83}, pages={1--23}, year={2017} } @article{adams2015nudged, title={Nudged elastic band in topological data analysis}, author={Adams, Henry and Atanasov, Atanas and Carlsson, Gunnar}, journal={Topological methods in nonlinear analysis}, volume={45}, number={1}, pages={247--272}, year={2015} } @article{Range, author = "H.~Adams and G.~Carlsson", title = "On the nonlinear statistics of range image patches", journal = "SIAM J.\ Imag.\ Sci.", volume = "2", year = "2009", pages = "110--117", } @book{Armstrong, author = "M.~A.~Armstrong", title = "Basic Topology", publisher = "Springer", address = "New York, Berlin", year = "1983", } @article{KleinBottle, author = "G.~Carlsson and T.~Ishkhanov and V.~de Silva and A.~Zomorodian", title = "On the local behavior of spaces of natural images", journal = "Int.\ J.\ Comput.\ Vision", volume = "76", year = "2008", pages = "1--12", } @article{ChazalDeSilvaOudot2013, title={Persistence stability for geometric complexes}, author={Chazal, Fr{\'e}d{\'e}ric and de~Silva, Vin and Oudot, Steve}, journal={Geometriae Dedicata}, pages={1--22}, year={2013} } @inproceedings{WitnessComplexes, author = "V.~de Silva and G.~Carlsson", title = "Topological estimation using witness complexes", booktitle = "Eurographics Symposium on Point-Based Graphics", month = "June", year = "2004", } @book{ComputationalTopology, author = "H.~Edelsbrunner and J.~Harer", title = "Computational Topology: An Introduction", publisher = "American Mathematical Society", address = "Providence", year = "2010", } @article{TopologicalPersistence, author = "H.~Edelsbrunner and D.~Letscher and A.~Zomorodian", title = "Topological persistence and simplification", journal = "Discrete Comput.\ Geom.", volume = "28", year = "2002", pages = "511--533", } @book{Hatcher, author = "A.~Hatcher", title = "Algebraic Topology", publisher = "Cambridge University Press", address = "Cambridge", year = "2002", } @article{Mumford, author = "A.~B.~Lee and K.~S.~Pedersen and D.~Mumford", title = "The nonlinear statistics of high-contrast patches in natural images", journal = "Int.\ J.\ Comput.\ Vision", volume = "54", year = "2003", pages = "83--103", } @inproceedings{Javaplex, author = "A.~Tausz and M.~Vejdemo-Johansson and H.~Adams", title = "Java{P}lex: {A} research software package for persistent (co)homology", booktitle = "Proceedings of ICMS 2014", editor = "H.~Hong and C.~Yap", series = "Lecture Notes in Computer Science 8592", year = "2014", pages = "129-136", note = "Software available at \url{http://appliedtopology.github.io/javaplex/}" } @article{VanHaterenVanDerSchaaf, author ="J.~H.~van Hateren and A.~van der Schaaf", title ="Independent component filters of natural images compared with simple cells in primary visual cortex", journal ="Proc.\ R.\ Soc.\ Lond.\ B", volume ="265", pages ="359--366", year ="1998", } @article{ComputingPersistent, author = "A.~Zomorodian and G.~Carlsson", title = "Computing persistent homology", journal = "Discrete Comput.\ Geom.", volume = "33", year = "2005", pages = "249--274", } @article{martin2010topology, title={Topology of cyclo-octane energy landscape}, author={S.~Martin and A.~Thompson and E.~A.~Coutsias and J.~P.~Watson}, journal={Journal of Chemical Physics}, volume={132}, pages={234115}, year={2010} } @article{martin2011non, title={Non-manifold surface reconstruction from high-dimensional point cloud data}, author={S.~Martin and J.~P.~Watson}, journal={Computational Geometry}, volume={44}, pages={427--441}, year={2011} } @article{brown2008algorithmic, title={Algorithmic dimensionality reduction for molecular structure analysis}, author={M.~W.~Brown and S.~Martin and S.~N.~Pollock and E.~A.~Coutsias and J.~P.~Watson}, journal={Journal of Chemical Physics}, volume={129}, pages={064118}, year={2008} } @book{zomorodian2012advances, title={Advances in Applied and Computational Topology}, author={A.~Zomorodian}, year={2012}, publisher={American Mathematical Society} } ================================================ FILE: reports/javaplex_tutorial/javaplex_tutorial.blg ================================================ This is BibTeX, Version 0.99d (TeX Live 2017) Capacity: max_strings=100000, hash_size=100000, hash_prime=85009 The top-level auxiliary file: javaplex_tutorial.aux The style file: abbrvnat.bst Database file #1: javaplex_tutorial.bib You've used 21 entries, 2773 wiz_defined-function locations, 738 strings with 7740 characters, and the built_in function-call counts, 9700 in all, are: = -- 861 > -- 549 < -- 13 + -- 185 - -- 164 * -- 779 := -- 1500 add.period$ -- 64 call.type$ -- 21 change.case$ -- 113 chr.to.int$ -- 21 cite$ -- 42 duplicate$ -- 450 empty$ -- 810 format.name$ -- 199 if$ -- 2023 int.to.chr$ -- 1 int.to.str$ -- 1 missing$ -- 25 newline$ -- 114 num.names$ -- 86 pop$ -- 223 preamble$ -- 1 purify$ -- 96 quote$ -- 0 skip$ -- 337 stack$ -- 0 substring$ -- 395 swap$ -- 38 text.length$ -- 2 text.prefix$ -- 0 top$ -- 0 type$ -- 211 warning$ -- 0 while$ -- 95 width$ -- 0 write$ -- 281 ================================================ FILE: reports/javaplex_tutorial/javaplex_tutorial.log ================================================ This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017) (preloaded format=pdflatex 2017.5.23) 15 JUL 2018 19:49 entering extended mode restricted \write18 enabled. file:line:error style messages enabled. %&-line parsing enabled. **javaplex_tutorial.tex (./javaplex_tutorial.tex LaTeX2e <2017-04-15> Babel <3.10> and hyphenation patterns for 84 language(s) loaded. (/usr/local/texlive/2017/texmf-dist/tex/latex/amscls/amsart.cls Document Class: amsart 2015/03/04 v2.20.2 \linespacing=\dimen102 \normalparindent=\dimen103 \normaltopskip=\skip41 (/usr/local/texlive/2017/texmf-dist/tex/latex/amsmath/amsmath.sty Package: amsmath 2016/11/05 v2.16a AMS math features \@mathmargin=\skip42 For additional information on amsmath, use the `?' option. (/usr/local/texlive/2017/texmf-dist/tex/latex/amsmath/amstext.sty Package: amstext 2000/06/29 v2.01 AMS text (/usr/local/texlive/2017/texmf-dist/tex/latex/amsmath/amsgen.sty File: amsgen.sty 1999/11/30 v2.0 generic functions \@emptytoks=\toks14 \ex@=\dimen104 )) (/usr/local/texlive/2017/texmf-dist/tex/latex/amsmath/amsbsy.sty Package: amsbsy 1999/11/29 v1.2d Bold Symbols \pmbraise@=\dimen105 ) (/usr/local/texlive/2017/texmf-dist/tex/latex/amsmath/amsopn.sty Package: amsopn 2016/03/08 v2.02 operator names ) \inf@bad=\count79 LaTeX Info: Redefining \frac on input line 213. \uproot@=\count80 \leftroot@=\count81 LaTeX Info: Redefining \overline on input line 375. \classnum@=\count82 \DOTSCASE@=\count83 LaTeX Info: Redefining \ldots on input line 472. LaTeX Info: Redefining \dots on input line 475. LaTeX Info: Redefining \cdots on input line 596. \Mathstrutbox@=\box26 \strutbox@=\box27 \big@size=\dimen106 LaTeX Font Info: Redeclaring font encoding OML on input line 712. LaTeX Font Info: Redeclaring font encoding OMS on input line 713. \macc@depth=\count84 \c@MaxMatrixCols=\count85 \dotsspace@=\muskip10 \c@parentequation=\count86 \dspbrk@lvl=\count87 \tag@help=\toks15 \row@=\count88 \column@=\count89 \maxfields@=\count90 \andhelp@=\toks16 \eqnshift@=\dimen107 \alignsep@=\dimen108 \tagshift@=\dimen109 \tagwidth@=\dimen110 \totwidth@=\dimen111 \lineht@=\dimen112 \@envbody=\toks17 \multlinegap=\skip43 \multlinetaggap=\skip44 \mathdisplay@stack=\toks18 LaTeX Info: Redefining \[ on input line 2817. LaTeX Info: Redefining \] on input line 2818. ) LaTeX Font Info: Try loading font information for U+msa on input line 388. (/usr/local/texlive/2017/texmf-dist/tex/latex/amsfonts/umsa.fd File: umsa.fd 2013/01/14 v3.01 AMS symbols A ) (/usr/local/texlive/2017/texmf-dist/tex/latex/amsfonts/amsfonts.sty Package: amsfonts 2013/01/14 v3.01 Basic AMSFonts support \symAMSa=\mathgroup4 \symAMSb=\mathgroup5 LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold' (Font) U/euf/m/n --> U/euf/b/n on input line 106. ) \copyins=\insert199 \abstractbox=\box28 \listisep=\skip45 \c@part=\count91 \c@section=\count92 \c@subsection=\count93 \c@subsubsection=\count94 \c@paragraph=\count95 \c@subparagraph=\count96 \c@figure=\count97 \c@table=\count98 \abovecaptionskip=\skip46 \belowcaptionskip=\skip47 \captionindent=\dimen113 \thm@style=\toks19 \thm@bodyfont=\toks20 \thm@headfont=\toks21 \thm@notefont=\toks22 \thm@headpunct=\toks23 \thm@preskip=\skip48 \thm@postskip=\skip49 \thm@headsep=\skip50 \dth@everypar=\toks24 ) (/usr/local/texlive/2017/texmf-dist/tex/latex/preprint/fullpage.sty Package: fullpage 1999/02/23 1.1 (PWD) \FP@margin=\skip51 ) (/usr/local/texlive/2017/texmf-dist/tex/latex/amsfonts/amssymb.sty Package: amssymb 2013/01/14 v3.01 AMS font symbols ) (/usr/local/texlive/2017/texmf-dist/tex/latex/base/latexsym.sty Package: latexsym 1998/08/17 v2.2e Standard LaTeX package (lasy symbols) \symlasy=\mathgroup6 LaTeX Font Info: Overwriting symbol font `lasy' in version `bold' (Font) U/lasy/m/n --> U/lasy/b/n on input line 52. ) (/usr/local/texlive/2017/texmf-dist/tex/latex/pb-diagram/pb-diagram.sty \dgARROWLENGTH=\skip52 \dgTEXTARROWLENGTH=\skip53 \dgHORIZPAD=\skip54 \dgVERTPAD=\skip55 \dgLABELOFFSET=\skip56 \dgARROWPARTS=\count99 \dgDOTSPACING=\skip57 \dgDOTSIZE=\skip58 \dgMAXSQUARE=\count100 \dgMINDBLSQ=\count101 \dgCOLUMNWIDTH=\skip59 \dg@HORIZ=\count102 \dg@VERT=\count103 \dg@XLPAD=\count104 \dg@YBPAD=\count105 \dg@XRPAD=\count106 \dg@YTPAD=\count107 \dg@X=\count108 \dg@Y=\count109 \dg@XGRID=\count110 \dg@YGRID=\count111 \dg@SIZE=\count112 \dg@USERSIZE=\count113 \dg@DX=\count114 \dg@DY=\count115 \dg@XLBL=\count116 \dg@YLBL=\count117 \dg@XOFFSET=\count118 \dg@YOFFSET=\count119 \dg@LBLOFF=\count120 \dg@XLBLOFF=\count121 \dg@YLBLOFF=\count122 \dg@LBLPOS=\count123 \dg@XTEMP=\count124 \dg@YTEMP=\count125 \dg@ZTEMP=\count126 \dg@XNODE=\count127 \dg@YNODE=\count128 \dg@XEND=\count129 \dg@YEND=\count130 \dg@WEND=\count131 \dg@HEND=\count132 \dg@COUNT=\count133 \dg@NODEBOX=\box29 \dg@LABONEBOX=\box30 \dg@LABTWOBOX=\box31 ) (/usr/local/texlive/2017/texmf-dist/tex/latex/amsfonts/euscript.sty Package: euscript 2009/06/22 v3.00 Euler Script fonts LaTeX Font Info: Overwriting math alphabet `\EuScript' in version `bold' (Font) U/eus/m/n --> U/eus/b/n on input line 33. ) (/usr/local/texlive/2017/texmf-dist/tex/latex/graphics/graphicx.sty Package: graphicx 2014/10/28 v1.0g Enhanced LaTeX Graphics (DPC,SPQR) (/usr/local/texlive/2017/texmf-dist/tex/latex/graphics/keyval.sty Package: keyval 2014/10/28 v1.15 key=value parser (DPC) \KV@toks@=\toks25 ) (/usr/local/texlive/2017/texmf-dist/tex/latex/graphics/graphics.sty Package: graphics 2017/04/14 v1.1b Standard LaTeX Graphics (DPC,SPQR) (/usr/local/texlive/2017/texmf-dist/tex/latex/graphics/trig.sty Package: trig 2016/01/03 v1.10 sin cos tan (DPC) ) (/usr/local/texlive/2017/texmf-dist/tex/latex/graphics-cfg/graphics.cfg File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration ) Package graphics Info: Driver file: pdftex.def on input line 99. (/usr/local/texlive/2017/texmf-dist/tex/latex/graphics-def/pdftex.def File: pdftex.def 2017/01/12 v0.06k Graphics/color for pdfTeX (/usr/local/texlive/2017/texmf-dist/tex/generic/oberdiek/infwarerr.sty Package: infwarerr 2016/05/16 v1.4 Providing info/warning/error messages (HO) ) (/usr/local/texlive/2017/texmf-dist/tex/generic/oberdiek/ltxcmds.sty Package: ltxcmds 2016/05/16 v1.23 LaTeX kernel commands for general use (HO) ) \Gread@gobject=\count134 )) \Gin@req@height=\dimen114 \Gin@req@width=\dimen115 ) (/usr/local/texlive/2017/texmf-dist/tex/latex/subfigure/subfigure.sty Package: subfigure 2002/03/15 v2.1.5 subfigure package \subfigtopskip=\skip60 \subfigcapskip=\skip61 \subfigcaptopadj=\dimen116 \subfigbottomskip=\skip62 \subfigcapmargin=\dimen117 \subfiglabelskip=\skip63 \c@subfigure=\count135 \c@lofdepth=\count136 \c@subtable=\count137 \c@lotdepth=\count138 **************************************** * Local config file subfigure.cfg used * **************************************** (/usr/local/texlive/2017/texmf-dist/tex/latex/subfigure/subfigure.cfg) \subfig@top=\skip64 \subfig@bottom=\skip65 ) (/usr/local/texlive/2017/texmf-dist/tex/latex/placeins/placeins.sty Package: placeins 2005/04/18 v 2.2 ) (/usr/local/texlive/2017/texmf-dist/tex/latex/wrapfig/wrapfig.sty \wrapoverhang=\dimen118 \WF@size=\dimen119 \c@WF@wrappedlines=\count139 \WF@box=\box32 \WF@everypar=\toks26 Package: wrapfig 2003/01/31 v 3.6 ) (/usr/local/texlive/2017/texmf-dist/tex/latex/hyperref/hyperref.sty Package: hyperref 2017/03/14 v6.85a Hypertext links for LaTeX (/usr/local/texlive/2017/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty Package: hobsub-hyperref 2016/05/16 v1.14 Bundle oberdiek, subset hyperref (HO) (/usr/local/texlive/2017/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty Package: hobsub-generic 2016/05/16 v1.14 Bundle oberdiek, subset generic (HO) Package: hobsub 2016/05/16 v1.14 Construct package bundles (HO) Package hobsub Info: Skipping package `infwarerr' (already loaded). Package hobsub Info: Skipping package `ltxcmds' (already loaded). Package: ifluatex 2016/05/16 v1.4 Provides the ifluatex switch (HO) Package ifluatex Info: LuaTeX not detected. Package: ifvtex 2016/05/16 v1.6 Detect VTeX and its facilities (HO) Package ifvtex Info: VTeX not detected. Package: intcalc 2016/05/16 v1.2 Expandable calculations with integers (HO) Package: ifpdf 2017/03/15 v3.2 Provides the ifpdf switch Package: etexcmds 2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO) Package etexcmds Info: Could not find \expanded. (etexcmds) That can mean that you are not using pdfTeX 1.50 or (etexcmds) that some package has redefined \expanded. (etexcmds) In the latter case, load this package earlier. Package: kvsetkeys 2016/05/16 v1.17 Key value parser (HO) Package: kvdefinekeys 2016/05/16 v1.4 Define keys (HO) Package: pdftexcmds 2017/03/19 v0.25 Utility functions of pdfTeX for LuaTeX (HO ) Package pdftexcmds Info: LuaTeX not detected. Package pdftexcmds Info: \pdf@primitive is available. Package pdftexcmds Info: \pdf@ifprimitive is available. Package pdftexcmds Info: \pdfdraftmode found. Package: pdfescape 2016/05/16 v1.14 Implements pdfTeX's escape features (HO) Package: bigintcalc 2016/05/16 v1.4 Expandable calculations on big integers (HO ) Package: bitset 2016/05/16 v1.2 Handle bit-vector datatype (HO) Package: uniquecounter 2016/05/16 v1.3 Provide unlimited unique counter (HO) ) Package hobsub Info: Skipping package `hobsub' (already loaded). Package: letltxmacro 2016/05/16 v1.5 Let assignment for LaTeX macros (HO) Package: hopatch 2016/05/16 v1.3 Wrapper for package hooks (HO) Package: xcolor-patch 2016/05/16 xcolor patch Package: atveryend 2016/05/16 v1.9 Hooks at the very end of document (HO) Package atveryend Info: \enddocument detected (standard20110627). Package: atbegshi 2016/06/09 v1.18 At begin shipout hook (HO) Package: refcount 2016/05/16 v3.5 Data extraction from label references (HO) Package: hycolor 2016/05/16 v1.8 Color options for hyperref/bookmark (HO) ) (/usr/local/texlive/2017/texmf-dist/tex/generic/ifxetex/ifxetex.sty Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional ) (/usr/local/texlive/2017/texmf-dist/tex/latex/oberdiek/auxhook.sty Package: auxhook 2016/05/16 v1.4 Hooks for auxiliary files (HO) ) (/usr/local/texlive/2017/texmf-dist/tex/latex/oberdiek/kvoptions.sty Package: kvoptions 2016/05/16 v3.12 Key value format for package options (HO) ) \@linkdim=\dimen120 \Hy@linkcounter=\count140 \Hy@pagecounter=\count141 (/usr/local/texlive/2017/texmf-dist/tex/latex/hyperref/pd1enc.def File: pd1enc.def 2017/03/14 v6.85a Hyperref: PDFDocEncoding definition (HO) ) \Hy@SavedSpaceFactor=\count142 (/usr/local/texlive/2017/texmf-dist/tex/latex/latexconfig/hyperref.cfg File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive ) Package hyperref Info: Hyper figures OFF on input line 4498. Package hyperref Info: Link nesting OFF on input line 4503. Package hyperref Info: Hyper index ON on input line 4506. Package hyperref Info: Plain pages OFF on input line 4513. Package hyperref Info: Backreferencing OFF on input line 4518. Package hyperref Info: Implicit mode ON; LaTeX internals redefined. Package hyperref Info: Bookmarks ON on input line 4751. \c@Hy@tempcnt=\count143 (/usr/local/texlive/2017/texmf-dist/tex/latex/url/url.sty \Urlmuskip=\muskip11 Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc. ) LaTeX Info: Redefining \url on input line 5104. \XeTeXLinkMargin=\dimen121 \Fld@menulength=\count144 \Field@Width=\dimen122 \Fld@charsize=\dimen123 Package hyperref Info: Hyper figures OFF on input line 6358. Package hyperref Info: Link nesting OFF on input line 6363. Package hyperref Info: Hyper index ON on input line 6366. Package hyperref Info: backreferencing OFF on input line 6373. Package hyperref Info: Link coloring OFF on input line 6378. Package hyperref Info: Link coloring with OCG OFF on input line 6383. Package hyperref Info: PDF/A mode OFF on input line 6388. LaTeX Info: Redefining \ref on input line 6428. LaTeX Info: Redefining \pageref on input line 6432. \Hy@abspage=\count145 \c@Item=\count146 \c@Hfootnote=\count147 ) Package hyperref Message: Driver (autodetected): hpdftex. (/usr/local/texlive/2017/texmf-dist/tex/latex/hyperref/hpdftex.def File: hpdftex.def 2017/03/14 v6.85a Hyperref driver for pdfTeX \Fld@listcount=\count148 \c@bookmark@seq@number=\count149 (/usr/local/texlive/2017/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty Package: rerunfilecheck 2016/05/16 v1.8 Rerun checks for auxiliary files (HO) Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2 82. ) \Hy@SectionHShift=\skip66 ) (/usr/local/texlive/2017/texmf-dist/tex/latex/appendix/appendix.sty Package: appendix 2009/09/02 v1.2b extra appendix facilities \c@@pps=\count150 \c@@ppsavesec=\count151 \c@@ppsaveapp=\count152 ) (/usr/local/texlive/2017/texmf-dist/tex/latex/natbib/natbib.sty Package: natbib 2010/09/13 8.31b (PWD, AO) \bibhang=\skip67 \bibsep=\skip68 LaTeX Info: Redefining \cite on input line 694. \c@NAT@ctr=\count153 ) \c@exercise=\count154 \c@exerciseSol=\count155 LaTeX Warning: Unused global option(s): [amscd,amssymb,verbatim]. (./javaplex_tutorial.aux LaTeX Warning: Label `fig:rangeBetti' multiply defined. LaTeX Warning: Label `fig:rangeBetti' multiply defined. LaTeX Warning: Label `fig:rangeBetti' multiply defined. ) \openout1 = `javaplex_tutorial.aux'. LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 33. LaTeX Font Info: ... okay on input line 33. LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 33. LaTeX Font Info: ... okay on input line 33. LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 33. LaTeX Font Info: ... okay on input line 33. LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 33. LaTeX Font Info: ... okay on input line 33. LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 33. LaTeX Font Info: ... okay on input line 33. LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 33. LaTeX Font Info: ... okay on input line 33. LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 33. LaTeX Font Info: ... okay on input line 33. LaTeX Font Info: Try loading font information for U+msa on input line 33. (/usr/local/texlive/2017/texmf-dist/tex/latex/amsfonts/umsa.fd File: umsa.fd 2013/01/14 v3.01 AMS symbols A ) LaTeX Font Info: Try loading font information for U+msb on input line 33. (/usr/local/texlive/2017/texmf-dist/tex/latex/amsfonts/umsb.fd File: umsb.fd 2013/01/14 v3.01 AMS symbols B ) LaTeX Font Info: Try loading font information for U+lasy on input line 33. (/usr/local/texlive/2017/texmf-dist/tex/latex/base/ulasy.fd File: ulasy.fd 1998/08/17 v2.2e LaTeX symbol font definitions ) (/usr/local/texlive/2017/texmf-dist/tex/context/base/mkii/supp-pdf.mkii [Loading MPS to PDF converter (version 2006.09.02).] \scratchcounter=\count156 \scratchdimen=\dimen124 \scratchbox=\box33 \nofMPsegments=\count157 \nofMParguments=\count158 \everyMPshowfont=\toks27 \MPscratchCnt=\count159 \MPscratchDim=\dimen125 \MPnumerator=\count160 \makeMPintoPDFobject=\count161 \everyMPtoPDFconversion=\toks28 ) (/usr/local/texlive/2017/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty Package: epstopdf-base 2016/05/15 v2.6 Base part for package epstopdf (/usr/local/texlive/2017/texmf-dist/tex/latex/oberdiek/grfext.sty Package: grfext 2016/05/16 v1.2 Manage graphics extensions (HO) ) Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4 38. Package grfext Info: Graphics extension search list: (grfext) [.png,.pdf,.jpg,.mps,.jpeg,.jbig2,.jb2,.PNG,.PDF,.JPG,.JPE G,.JBIG2,.JB2,.eps] (grfext) \AppendGraphicsExtensions on input line 456. (/usr/local/texlive/2017/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv e )) \AtBeginShipoutBox=\box34 Package hyperref Info: Link coloring OFF on input line 33. (/usr/local/texlive/2017/texmf-dist/tex/latex/hyperref/nameref.sty Package: nameref 2016/05/21 v2.44 Cross-referencing by name of section (/usr/local/texlive/2017/texmf-dist/tex/generic/oberdiek/gettitlestring.sty Package: gettitlestring 2016/05/16 v1.5 Cleanup title references (HO) ) \c@section@level=\count162 ) LaTeX Info: Redefining \ref on input line 33. LaTeX Info: Redefining \pageref on input line 33. LaTeX Info: Redefining \nameref on input line 33. (./javaplex_tutorial.out) (./javaplex_tutorial.out) \@outlinefile=\write3 \openout3 = `javaplex_tutorial.out'. (./javaplex_tutorial.toc) \tf@toc=\write4 \openout4 = `javaplex_tutorial.toc'. Underfull \vbox (badness 1502) has occurred while \output is active [] [1{/usr/local/texlive/2017/texmf-var/fonts/map/pdftex/updmap/pdftex.map}] Overfull \hbox (6.01897pt too wide) in paragraph at lines 116--116 []\OT1/cmtt/m/n/10 ans = Java 1.5.0_13 with Apple Inc. Java Hotspot(TM) Clie nt VM mixed mode, sharing[] [] Overfull \hbox (2.38226pt too wide) in paragraph at lines 120--121 []\OT1/cmr/m/n/10 To in-stall Javaplex for Mat-lab, go to the lat-est re-lease at []$\OT1/cmtt/m/n/10 https : / / github . com / appliedtopology / javaplex / [] Overfull \hbox (8.64397pt too wide) in paragraph at lines 120--121 \OT1/cmr/m/n/10 like \OT1/cmtt/m/n/10 matlab-examples-4.2.3.zip\OT1/cmr/m/n/10 . Ex-tract the zip file. The re-sult-ing folder should be called \OT1/cmtt/m/n/ 10 matlab[]examples\OT1/cmr/m/n/10 ; [] [2] [3] File: s1.pdf Graphic file (type pdf) Package pdftex.def Info: s1.pdf used on input line 207. (pdftex.def) Requested size: 72.26999pt x 79.70169pt. [4 <./s1.pdf>] [5] File: smallSimplicialComplex.png Graphic file (type png) Package pdftex.def Info: smallSimplicialComplex.png used on input line 326. (pdftex.def) Requested size: 144.54pt x 81.06123pt. File: houseFig.pdf Graphic file (type pdf) Package pdftex.def Info: houseFig.pdf used on input line 352. (pdftex.def) Requested size: 72.26999pt x 105.44159pt. [6 <./smallSimplicialComplex.png> <./houseFig.pdf>] Overfull \hbox (47.59558pt too wide) in paragraph at lines 378--378 []\OT1/cmtt/m/n/10 >> persistence = api.Plex4.getModularSimplicialAlgorithm(3, 2);[] [] [7] File: house.png Graphic file (type png) Package pdftex.def Info: house.png used on input line 469. (pdftex.def) Requested size: 433.62pt x 325.2142pt. [8] [9 <./house.png (PNG copy)>] File: houseCoord.pdf Graphic file (type pdf) Package pdftex.def Info: houseCoord.pdf used on input line 516. (pdftex.def) Requested size: 112.0187pt x 97.0769pt. [10 <./houseCoord.pdf>] Overfull \hbox (16.51888pt too wide) in paragraph at lines 604--604 []\OT1/cmtt/m/n/10 >> point_cloud = examples.PointCloudExamples.getRandomSpher eProductPoints(1000, 1, 2);[] [] [11] [12] [13] File: ripsHouse.png Graphic file (type png) Package pdftex.def Info: ripsHouse.png used on input line 748. (pdftex.def) Requested size: 433.62pt x 325.2142pt. [14] Overfull \hbox (38.27599pt too wide) in paragraph at lines 780--781 []\OT1/cmr/m/n/10 Make sure you are in the di-rec-tory \OT1/cmtt/m/n/10 tutoria l[]examples \OT1/cmr/m/n/10 (you may need to en-ter the com-mand \OT1/cmtt/m/n/ 10 cd tutorial[]examples\OT1/cmr/m/n/10 ), [] [15 <./ripsHouse.png (PNG copy)>] File: ripsTorus.png Graphic file (type png) Package pdftex.def Info: ripsTorus.png used on input line 807. (pdftex.def) Requested size: 433.62pt x 325.2142pt. [16 <./ripsTorus.png (PNG copy)>] [17] Overfull \hbox (16.51888pt too wide) in paragraph at lines 895--895 []\OT1/cmtt/m/n/10 >> random_selector = api.Plex4.createRandomSelector(point_c loud, num_landmark_points);[] [] Overfull \hbox (16.51888pt too wide) in paragraph at lines 895--895 []\OT1/cmtt/m/n/10 >> maxmin_selector = api.Plex4.createMaxMinSelector(point_c loud, num_landmark_points);[] [] File: fig8lands.png Graphic file (type png) Package pdftex.def Info: fig8lands.png used on input line 917. (pdftex.def) Requested size: 361.34999pt x 271.02286pt. [18] [19 <./fig8lands.png (PNG copy)>] Overfull \hbox (32.26874pt too wide) in paragraph at lines 966--966 []\OT1/cmtt/m/n/10 >> point_cloud = examples.PointCloudExamples.getRandomSpher eProductPoints(num_points, ...[] [] Overfull \hbox (27.01878pt too wide) in paragraph at lines 966--966 []\OT1/cmtt/m/n/10 >> landmark_selector = api.Plex4.createMaxMinSelector(point _cloud, num_landmark_points);[] [] File: witnessTorus.png Graphic file (type png) Package pdftex.def Info: witnessTorus.png used on input line 1001. (pdftex.def) Requested size: 433.62pt x 325.2142pt. [20] [21 <./witnessTorus.png (PNG copy)>] Overfull \hbox (27.01878pt too wide) in paragraph at lines 1048--1048 []\OT1/cmtt/m/n/10 >> landmark_selector = api.Plex4.createMaxMinSelector(point _cloud, num_landmark_points);[] [] Overfull \hbox (48.0186pt too wide) in paragraph at lines 1069--1069 []\OT1/cmtt/m/n/10 >> stream = streams.impl.LazyWitnessStream(landmark_selecto r.getUnderlyingMetricSpace(), ...[] [] File: lazySphere.png Graphic file (type png) Package pdftex.def Info: lazySphere.png used on input line 1075. (pdftex.def) Requested size: 433.62pt x 325.2142pt. [22] [23 <./lazySphere.png (PNG copy)>] Overfull \hbox (38.27599pt too wide) in paragraph at lines 1110--1111 []\OT1/cmr/m/n/10 Make sure you are in the di-rec-tory \OT1/cmtt/m/n/10 tutoria l[]examples \OT1/cmr/m/n/10 (you may need to en-ter the com-mand \OT1/cmtt/m/n/ 10 cd tutorial[]examples\OT1/cmr/m/n/10 ), [] Overfull \hbox (27.01878pt too wide) in paragraph at lines 1145--1145 []\OT1/cmtt/m/n/10 >> landmark_selector = api.Plex4.createMaxMinSelector(point sRange, num_landmark_points);[] [] Overfull \hbox (48.0186pt too wide) in paragraph at lines 1145--1145 []\OT1/cmtt/m/n/10 >> stream = streams.impl.LazyWitnessStream(landmark_selecto r.getUnderlyingMetricSpace(), ...[] [] File: lazyRange.png Graphic file (type png) Package pdftex.def Info: lazyRange.png used on input line 1151. (pdftex.def) Requested size: 433.62pt x 325.2142pt. [24] File: linearGrad.png Graphic file (type png) Package pdftex.def Info: linearGrad.png used on input line 1173. (pdftex.def) Requested size: 144.54pt x 46.83868pt. File: r5k300c30.png Graphic file (type png) Package pdftex.def Info: r5k300c30.png used on input line 1188. (pdftex.def) Requested size: 216.81pt x 210.28905pt. File: primaryCircle.png Graphic file (type png) Package pdftex.def Info: primaryCircle.png used on input line 1190. (pdftex.def) Requested size: 209.58255pt x 204.59773pt. [25 <./lazyRange.png (PNG copy)> <./linearGrad.png (PNG copy)>] Overfull \hbox (38.27599pt too wide) in paragraph at lines 1206--1207 []\OT1/cmr/m/n/10 Make sure you are in the di-rec-tory \OT1/cmtt/m/n/10 tutoria l[]examples \OT1/cmr/m/n/10 (you may need to en-ter the com-mand \OT1/cmtt/m/n/ 10 cd tutorial[]examples\OT1/cmr/m/n/10 ), [] [26 <./r5k300c30.png (PNG copy)> <./primaryCircle.png (PNG copy)>] Overfull \hbox (48.0186pt too wide) in paragraph at lines 1242--1242 []\OT1/cmtt/m/n/10 >> stream = streams.impl.LazyWitnessStream(landmark_selecto r.getUnderlyingMetricSpace(), ...[] [] File: lazyOpticalDct-k300.png Graphic file (type png) Package pdftex.def Info: lazyOpticalDct-k300.png used on input line 1248. (pdftex.def) Requested size: 433.62pt x 325.2142pt. [27] File: nk300c30.png Graphic file (type png) Package pdftex.def Info: nk300c30.png used on input line 1267. (pdftex.def) Requested size: 216.81pt x 212.19128pt. File: primaryCircle.png Graphic file (type png) Package pdftex.def Info: primaryCircle.png used on input line 1269. (pdftex.def) Requested size: 209.58255pt x 204.59773pt. [28 <./lazyOpticalDct-k300.png (PNG copy)>] Overfull \hbox (57.21542pt too wide) in paragraph at lines 1276--1277 []\OT1/cmr/m/n/10 We next an-a-lyze the core sub-set $\OML/cmm/m/it/10 X\OT1/cm r/m/n/10 (15\OML/cmm/m/it/10 ; \OT1/cmr/m/n/10 30)$. Load the file []\OT1/cmtt/ m/n/10 pointsOpticalDct[]k15.mat[]\OT1/cmr/m/n/10 . The ma-trix \OT1/cmtt/m/n/1 0 pointsOpticalDct[]k15 [] Overfull \hbox (48.0186pt too wide) in paragraph at lines 1312--1312 []\OT1/cmtt/m/n/10 >> stream = streams.impl.LazyWitnessStream(landmark_selecto r.getUnderlyingMetricSpace(), ...[] [] [29 <./nk300c30.png>] File: lazyOpticalDct-k15.png Graphic file (type png) Package pdftex.def Info: lazyOpticalDct-k15.png used on input line 1318. (pdftex.def) Requested size: 433.62pt x 325.2142pt. File: nk15c30.png Graphic file (type png) Package pdftex.def Info: nk15c30.png used on input line 1337. (pdftex.def) Requested size: 216.81pt x 213.92442pt. File: threeCircle.png Graphic file (type png) Package pdftex.def Info: threeCircle.png used on input line 1339. (pdftex.def) Requested size: 209.58255pt x 209.8242pt. [30 <./lazyOpticalDct-k15.png (PNG copy)>] Overfull \hbox (11.05464pt too wide) in paragraph at lines 1349--1350 \OT1/cmr/m/n/10 6.3.\OT1/cmr/bx/n/10 Cyclo-octane mol-e-cule con-for-ma-tions. [][] \OT1/cmr/m/n/10 The cor-re-spond-ing Mat-lab script is []\OT1/cmtt/m/n/10 cyclo[]octane[]example.m[]\OT1/cmr/m/n/10 , [] File: Cyclooctane-boat-chair-3D-balls.png Graphic file (type png) Package pdftex.def Info: Cyclooctane-boat-chair-3D-balls.png used on input line 1355. (pdftex.def) Requested size: 144.54pt x 149.30775pt. Overfull \hbox (38.27599pt too wide) in paragraph at lines 1363--1364 []\OT1/cmr/m/n/10 Make sure you are in the di-rec-tory \OT1/cmtt/m/n/10 tutoria l[]examples \OT1/cmr/m/n/10 (you may need to en-ter the com-mand \OT1/cmtt/m/n/ 10 cd tutorial[]examples\OT1/cmr/m/n/10 ), [] [31 <./nk15c30.png> <./threeCircle.png>] Overfull \hbox (48.0186pt too wide) in paragraph at lines 1399--1399 []\OT1/cmtt/m/n/10 >> stream = streams.impl.LazyWitnessStream(landmark_selecto r.getUnderlyingMetricSpace(), ...[] [] File: lazyCycloOctane.png Graphic file (type png) Package pdftex.def Info: lazyCycloOctane.png used on input line 1405. (pdftex.def) Requested size: 433.62pt x 325.2142pt. [32 <./Cyclooctane-boat-chair-3D-balls.png>] Overfull \hbox (10.02187pt too wide) in paragraph at lines 1430--1431 \OT1/cmr/m/n/10 in-clude Javaplex com-mands in an m-file func-tion, in-clude th e com-mand \OT1/cmtt/m/n/10 import edu.stanford.math.plex4.*; [] [33 <./lazyCycloOctane.png (PNG copy)>] Overfull \hbox (11.26892pt too wide) in paragraph at lines 1454--1454 []\OT1/cmtt/m/n/10 The Euler characteristic is 2 = 8 - 28 + 56 - 70 + 56 - 28 + 8, using the alternating[] [] Overfull \hbox (6.01897pt too wide) in paragraph at lines 1454--1454 []\OT1/cmtt/m/n/10 The Euler characteristic is 2 = 1 - 0 + 0 - 0 + 0 - 0 + 1, using the alternating sum[] [] [34] [35] Overfull \hbox (26.71925pt too wide) in paragraph at lines 1590--1591 []\OT1/cmr/m/n/10 Several ex-er-cise so-lu-tions are ac-com-pa-nied by Mat-lab scripts, which are avail-able in the folder []\OT1/cmtt/m/n/10 tutorial[]soluti ons[]\OT1/cmr/m/n/10 . [] File: smallSimplicialComplex.png Graphic file (type png) Package pdftex.def Info: smallSimplicialComplex.png used on input line 1595. (pdftex.def) Requested size: 144.54pt x 81.06123pt. File: torus.png Graphic file (type png) Package pdftex.def Info: torus.png used on input line 1614. (pdftex.def) Requested size: 180.67499pt x 186.97464pt. [36] File: klein.png Graphic file (type png) Package pdftex.def Info: klein.png used on input line 1629. (pdftex.def) Requested size: 180.67499pt x 186.97464pt. File: projPlane.png Graphic file (type png) Package pdftex.def Info: projPlane.png used on input line 1644. (pdftex.def) Requested size: 180.67499pt x 152.1435pt. [37 <./torus.png (PNG copy)> <./klein.png (PNG copy)>] [38 <./projPlane.png (PNG copy)>] [39] (./javaplex_tutorial.bbl [40]) Package atveryend Info: Empty hook `BeforeClearDocument' on input line 1834. [41] Package atveryend Info: Empty hook `AfterLastShipout' on input line 1834. (./javaplex_tutorial.aux) Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 1834. Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 1834. Package rerunfilecheck Info: File `javaplex_tutorial.out' has not changed. (rerunfilecheck) Checksum: 4E641A8A9A783CD703486AEBBEBCB5C9;2543. LaTeX Warning: There were multiply-defined labels. Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 1834. ) Here is how much of TeX's memory you used: 7696 strings out of 492995 108553 string characters out of 6132704 200021 words of memory out of 5000000 10801 multiletter control sequences out of 15000+600000 11554 words of font info for 49 fonts, out of 8000000 for 9000 1302 hyphenation exceptions out of 8191 33i,8n,32p,1460b,520s stack positions out of 5000i,500n,10000p,200000b,80000s < /usr/local/texlive/2017/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb> Output written on javaplex_tutorial.pdf (41 pages, 1529932 bytes). PDF statistics: 879 PDF objects out of 1000 (max. 8388607) 771 compressed objects within 8 object streams 160 named destinations out of 1000 (max. 500000) 409 words of extra memory for PDF output out of 10000 (max. 10000000) ================================================ FILE: reports/javaplex_tutorial/javaplex_tutorial.out ================================================ \BOOKMARK [1][-]{section.1}{1. Introduction}{}% 1 \BOOKMARK [2][-]{subsection.1.1}{1.1. Javaplex}{section.1}% 2 \BOOKMARK [2][-]{subsection.1.2}{1.2. License}{section.1}% 3 \BOOKMARK [2][-]{subsection.1.3}{1.3. Installation for Matlab}{section.1}% 4 \BOOKMARK [2][-]{subsection.1.4}{1.4. Accompanying files}{section.1}% 5 \BOOKMARK [1][-]{section.2}{2. Math review}{}% 6 \BOOKMARK [2][-]{subsection.2.1}{2.1. Simplicial complexes}{section.2}% 7 \BOOKMARK [2][-]{subsection.2.2}{2.2. Homology}{section.2}% 8 \BOOKMARK [2][-]{subsection.2.3}{2.3. Filtered simplicial complexes}{section.2}% 9 \BOOKMARK [2][-]{subsection.2.4}{2.4. Persistent homology}{section.2}% 10 \BOOKMARK [1][-]{section.3}{3. Explicit simplex streams}{}% 11 \BOOKMARK [2][-]{subsection.3.1}{3.1. Computing homology}{section.3}% 12 \BOOKMARK [2][-]{subsection.3.2}{3.2. Computing persistent homology}{section.3}% 13 \BOOKMARK [1][-]{section.4}{4. Point cloud data}{}% 14 \BOOKMARK [2][-]{subsection.4.1}{4.1. Euclidean metric spaces}{section.4}% 15 \BOOKMARK [2][-]{subsection.4.2}{4.2. Explicit metric spaces}{section.4}% 16 \BOOKMARK [1][-]{section.5}{5. Streams from point cloud data}{}% 17 \BOOKMARK [2][-]{subsection.5.1}{5.1. Vietoris\205Rips streams}{section.5}% 18 \BOOKMARK [2][-]{subsection.5.2}{5.2. Landmark selection}{section.5}% 19 \BOOKMARK [2][-]{subsection.5.3}{5.3. Witness streams}{section.5}% 20 \BOOKMARK [2][-]{subsection.5.4}{5.4. Lazy witness streams}{section.5}% 21 \BOOKMARK [1][-]{section.6}{6. Examples with real data}{}% 22 \BOOKMARK [2][-]{subsection.6.1}{6.1. Range image patches}{section.6}% 23 \BOOKMARK [2][-]{subsection.6.2}{6.2. Optical image patches}{section.6}% 24 \BOOKMARK [2][-]{subsection.6.3}{6.3. Cyclo-octane molecule conformations}{section.6}% 25 \BOOKMARK [1][-]{section.7}{7. Remarks}{}% 26 \BOOKMARK [2][-]{subsection.7.1}{7.1. Java heap size}{section.7}% 27 \BOOKMARK [2][-]{subsection.7.2}{7.2. Matlab functions with Javaplex commands}{section.7}% 28 \BOOKMARK [2][-]{subsection.7.3}{7.3. Displaying the simplices in a stream}{section.7}% 29 \BOOKMARK [2][-]{subsection.7.4}{7.4. Displaying the boundary matrix of a homology computation}{section.7}% 30 \BOOKMARK [2][-]{subsection.7.5}{7.5. Computing the bottleneck distance}{section.7}% 31 \BOOKMARK [1][-]{section.8}{8. Acknowledgements}{}% 32 \BOOKMARK [1][-]{section*.2}{Appendices}{}% 33 \BOOKMARK [1][-]{appendix.A}{Appendix A. Dense core subsets}{}% 34 \BOOKMARK [1][-]{appendix.B}{Appendix B. Exercise solutions}{}% 35 \BOOKMARK [1][-]{section*.3}{References}{}% 36 ================================================ FILE: reports/javaplex_tutorial/javaplex_tutorial.tex ================================================ \documentclass[amscd, amssymb, verbatim]{amsart}[12pt] \usepackage{fullpage} \usepackage{amssymb} \usepackage{latexsym} \usepackage{pb-diagram} \usepackage[mathscr]{euscript} \usepackage{graphicx} \usepackage{subfigure} \usepackage{placeins} \usepackage{wrapfig} \usepackage{hyperref} \usepackage{appendix} %\usepackage{multind} \usepackage{natbib} \bibpunct{[}{]}{;}{a}{}{,~} \theoremstyle{remark} \newtheorem{exercise}{Exercise} \theoremstyle{remark} \newtheorem{exerciseSol}{Exercise} \theoremstyle{remark} \newtheorem*{solution}{Solution} \DeclareMathOperator{\VR}{VR} \DeclareMathOperator{\W}{W} \DeclareMathOperator{\LW}{LW} \newcommand{\N}{\mathbb{N}} \newcommand{\R}{\mathbb{R}} \newcommand{\Z}{\mathbb{Z}} \newcommand{\cyclo}{\mathrm{C}_8\mathrm{H}_{16}} \begin{document} \title{Javaplex Tutorial} \author{Henry Adams} \email[Henry~Adams]{henry.adams@colostate.edu} \author{Andrew Tausz} \email[Andrew~Tausz]{andrew.tausz@gmail.com} \date{\today} \maketitle \tableofcontents \setlength{\parindent}{0pt} \setlength{\parskip}{8pt} % TODO: test tutorial after making changes to include examples finding representative cycles (For example, getDefaultSimplicialAlgorithm changed everywhere to getModularSimplicialAlgorithm). % TODO: Add more figures with data points in blue and landmarks in red, such as the one in exercise_19, to this tutorial. % TODO: the figures for the random trials in this tutorial don't currently match the numbers (number of simplices, etc). %UPDATE: They do for witness_example.m and lazy_witness_example.m % "Googlecode Issue": In the tutorial, explain the new feature that allows the user to specify the initial seed used for sequential maxmin landmark selection. This feature has been added as a result of Issue 23 (fixed). % TODO: explain API class and how most commands for users are in this class (API does not contain under-the-hood implementation, but instead shows what the user can do w/ the library.) Check if Lazy Witness is in API; if not, perhaps it should be added. % TODO: add example which is FLAT double torus. That is, select points at random from an octagon. Then, create explicit metric by identifying sides. % UPDATE: added example for double torus embedded in R^3. % TODO: is "ensureAllFaces" working as I expect? See representatives_example_HA and try changing dimensions. % UPDATE: See Javaplex Issue 20 created by Andrew. % TODO: Add zigzag examples to tutorial. See: % http://code.google.com/p/javaplex/source/browse/#svn%2Ftrunk%2Fsrc%2Fmatlab%2Fexperimental%2Fvietoris_rips_bootstrap % http://code.google.com/p/javaplex/source/browse/#svn%2Ftrunk%2Fsrc%2Fmatlab%2Fexperimental%2Fwitness_bootstrap % http://arxiv.org/abs/1108.3545 % Also, see email from Anthony Bak 10-21-11 % TODO: ask Andrew: Move lazy witness to API so that the syntax is more similar to Vietoris-Rips and witness filtrations? \section{Introduction} \subsection{Javaplex} Javaplex is a Java software package for computing the persistent homology of filtered simplicial complexes (or more generally, filtered chain complexes), with special emphasis on applications arising in topological data analysis~\citep{Javaplex}. The main author is Andrew Tausz. Javaplex is a re-write of the JPlex package, which was written by Harlan Sexton and Mikael Vejdemo--Johansson. The main motivation for the development of Javaplex was the need for a flexible platform that supported new directions of research in topological data analysis and computational persistent homology. The website for Javaplex is \url{http://appliedtopology.github.io/javaplex/}, the documentation overview is at \url{https://github.com/appliedtopology/javaplex/wiki/Overview}, and the javadoc tree for the library is at \url{http://appliedtopology.github.io/javaplex/doc/}. This tutorial is written for those using Javaplex with Matlab. However, one can run Javaplex without Matlab; see \url{https://github.com/appliedtopology/javaplex/wiki/Interoperability}. If you are interested in Javaplex, then there are many other software packages that you may also be interested in. See \url{https://www.math.colostate.edu/~adams/advising/#software} for one list of applied topology software packages. % Below link currently broken: %Some of the exercises in this tutorial are borrowed from Vin de Silva's {\em Plexercises}, available at \url{http://comptop.stanford.edu/u/programs/Plexercises2.pdf}. Please email Henry at \texttt{henry.adams@colostate.edu} or Andrew at \texttt{andrew.tausz@gmail.com} if you have questions about this tutorial. \subsection{License} Javaplex is an open source software package under the Open BSD License. The source code can be found at \url{https://github.com/appliedtopology/javaplex}. \subsection{Installation for Matlab} Open Matlab and check which version of Java is being used. In this tutorial, the symbol \texttt{>>} precedes commands to enter into your Matlab window. \begin{quote} \begin{verbatim} >> version -java ans = Java 1.5.0_13 with Apple Inc. Java Hotspot(TM) Client VM mixed mode, sharing \end{verbatim} \end{quote} Javaplex requires version number \texttt{1.5} or higher. To install Javaplex for Matlab, go to the latest release at \url{https://github.com/appliedtopology/javaplex/releases/latest/}. Download the zip file containing the Matlab examples, which should be called something like \texttt{matlab-examples-4.2.3.zip}. Extract the zip file. The resulting folder should be called \texttt{matlab\_examples}; make sure you know the location of this folder and that it is not inside the zip file. In Matlab, change Matlab's ``Current Folder" to the directory \texttt{matlab\_examples} that you just extracted from the zip file. In the Matlab command window, run the \texttt{load\_javaplex.m} file. \begin{quote} \begin{verbatim} >> load_javaplex \end{verbatim} \end{quote} Also in the Matlab command window, type the following command. \begin{quote} \begin{verbatim} >> import edu.stanford.math.plex4.*; \end{verbatim} \end{quote} Installation is complete. Confirm that Javaplex is working properly with the following command. \begin{quote} \begin{verbatim} >> api.Plex4.createExplicitSimplexStream() ans = edu.stanford.math.plex4.streams.impl.ExplicitSimplexStream@513fd4 \end{verbatim} \end{quote} Your output should be the same except for the last several characters. Each time upon starting a new Matlab session, you will need to run \texttt{load\_javaplex.m}. \subsection{Accompanying files} The folder \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_examples}{\texttt{tutorial\_examples}} contains Matlab scripts, such as \\ %Space \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_examples/explicit_simplex_example.m}{\texttt{explicit\_simplex\_example.m}} or \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_examples/house_example.m}{\texttt{house\_example.m}}, which list all of the commands in this tutorial. This means that you don't need to type in each command individually. The folder \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_examples}{\texttt{tutorial\_examples}} also contains the Matlab data files, such as \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_examples/pointsRange.mat}{\texttt{pointsRange.mat}} or \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_examples/pointsTorusGrid.mat}{\texttt{pointsTorusGrid.mat}}, which are used in this tutorial. The folder \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_solutions}{\texttt{tutorial\_solutions}} contains the solution scripts, such as \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_solutions/exercise_1.m}{\texttt{exercise\_1.m}}, for all of the tutorial exercises. See Appendix~\ref{A:solutions} for exercise solutions. \section{Math review} Below is a brief math review. For more details, see~\citet{Armstrong},~\citet{ComputationalTopology},~\citet{TopologicalPersistence},~\citet{Hatcher}, and~\citet{ComputingPersistent}. \subsection{Simplicial complexes} An abstract simplicial complex is given by the following data. \begin{itemize} \item A set $Z$ of vertices or 0-simplices. \item For each $k\geq 1$, a set of $k$-simplices $\sigma = [z_0,z_1,\ldots,z_k]$, where $z_i\in Z$. \item Each $k$-simplex has $k+1$ faces obtained by deleting one of the vertices. The following membership property must be satisfied: if $\sigma$ is in the simplicial complex, then all faces of $\sigma$ must be in the simplicial complex. \end{itemize} We think of 0-simplices as vertices, 1-simplices as edges, 2-simplices as triangular faces, and 3-simplices as tetrahedrons. \subsection{Homology} Betti numbers help describe the homology of a simplicial complex $X$. The value $Betti_k$, where $k\in \N$, is equal to the rank of the $k$-th homology group of $X$. Roughly speaking, $Betti_k$ gives the number of $k$-dimensional holes. In particular, $Betti_0$ is the number of connected components. For instance, a $k$-dimensional sphere has all Betti numbers equal to zero except for $Betti_0 = Betti_k = 1$. \subsection{Filtered simplicial complexes} A filtration on a simplicial complex $X$ is a collection of subcomplexes $\{X(t) \ |\ t\in \R\}$ of $X$ such that $X(t) \subset X(t')$ whenever $t\leq t'$. The filtration value of a simplex $\sigma \in X$ is the smallest $t$ such that $\sigma \in X(t)$. In Javaplex, filtered simplicial complexes (or more generally filtered chain complexes) are called streams. % Introduce filtered chain complexes? \subsection{Persistent homology} Betti intervals help describe how the homology of $X(t)$ changes with $t$. A $k$-dimensional Betti interval, with endpoints [$t_{start}$, $t_{end}$), corresponds roughly to a $k$-dimensional hole that appears at filtration value $t_{start}$, remains open for $t_{start} \leq t < t_{end}$, and closes at value $t_{end}$. We are often interested in Betti intervals that persist for a long filtration range. Persistent homology depends heavily on functoriality: for $t\leq t'$, the inclusion $i:X(t)\to X(t')$ of simplicial complexes induces a map $i_*:H_k(X(t))\to H_k(X(t'))$ between homology groups. \section{Explicit simplex streams}\label{S:explicitStream} In Javaplex, filtered simplicial complexes (or more generally filtered chain complexes) are called streams. The class ExplicitSimplexStream allows one to build a simplicial complex from scratch. In Section~\ref{S:sfpc} we will learn about other automated methods of generating simplicial complexes; namely the Vietoris--Rips, witness, and lazy witness constructions. \subsection{Computing homology} You should change your current Matlab directory to \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_examples}{\texttt{tutorial\_examples}}, perhaps using the following command. \begin{quote} \begin{verbatim} >> cd tutorial_examples \end{verbatim} \end{quote} The Matlab script corresponding to this section is \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_examples/explicit_simplex_example.m}{\texttt{explicit\_simplex\_example.m}}, which is in the folder \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_examples}{\texttt{tutorial\_examples}}. You may copy and paste commands from this script into the Matlab window, or you may run the entire script at once with the following command. \begin{quote} \begin{verbatim} >> explicit_simplex_example \end{verbatim} \end{quote} {\em Circle example.} Let's build a simplicial complex homeomorphic to a circle. We have three 0-simplices: [0], [1], [2], and three 1-simplices: [0,1], [0,2], [1,2]. \begin{figure}[htp] \begin{center} \includegraphics[width=1in]{s1.pdf} \end{center} \end{figure} \FloatBarrier To build a simplicial complex in Javaplex we simply build a stream in which all filtration values are zero. First we create an empty explicit simplex stream. Many command lines in this tutorial will end with a semicolon to supress unwanted output. \begin{quote} \begin{verbatim} >> stream = api.Plex4.createExplicitSimplexStream(); \end{verbatim} \end{quote} Next we add simplicies using the methods \texttt{addVertex} and \texttt{addElement}. The first creates a vertex with a specified index, and the second creates a $k$-simplex (for $k >0$) with the specified array of vertices. Since we don't specify any filtration values, by default all added simplices will have filtration value zero. \begin{quote} \begin{verbatim} >> stream.addVertex(0); >> stream.addVertex(1); >> stream.addVertex(2); >> stream.addElement([0, 1]); >> stream.addElement([0, 2]); >> stream.addElement([1, 2]); >> stream.finalizeStream(); \end{verbatim} \end{quote} After we are done building the complex, calling the method \texttt{finalizeStream} is necessary before working with this complex! We print the total number of simplices in the complex. \begin{quote} \begin{verbatim} >> num_simplices = stream.getSize() num_simplices = 6 \end{verbatim} \end{quote} We create an object that will compute the homology of our complex. The first input parameter 3 indicates that homology will be computed in dimensions 0, 1, and 2 --- that is, in all dimensions strictly less than 3. The second input 2 means that we will compute homology with $\Z/2\Z$ coefficients, and this input can be any prime number. \begin{quote} \begin{verbatim} >> persistence = api.Plex4.getModularSimplicialAlgorithm(3, 2); \end{verbatim} \end{quote} We compute and print the intervals. \begin{quote} \begin{verbatim} >> intervals = persistence.computeIntervals(stream) intervals = Dimension: 1 [0.0, infinity) Dimension: 0 [0.0, infinity) \end{verbatim} \end{quote} This gives us the expected Betti numbers $Betti_0=1$ and $Betti_1=1$. The persistence algorithm computing intervals can also find a representative cycle for each interval. However, there is no guarantee that the produced representative will be geometrically nice. \begin{quote} \begin{verbatim} >> intervals = persistence.computeAnnotatedIntervals(stream) intervals = Dimension: 1 [0.0, infinity): [1,2] + [0,2] + [0,1] Dimension: 0 [0.0, infinity): [0] \end{verbatim} \end{quote} A representative cycle generating the single 0-dimensional homology class is [0], and a representative cycle generating the single 1-dimensional homology class is [1,2] + [0,2] + [0,1]. {\em 9-sphere example.} Let's build a 9-sphere, which is homeomorphic to the boundary of a 10-simplex. First we add a single 10-simplex to an empty explicit simplex stream. The result is not a simplicial complex because it does not contain the faces of the 10-simplex. We add all faces using the method \texttt{ensureAllFaces}. Then, we remove the 10-simplex using the method \texttt{removeElementIfPresent}. What remains is the boundary of a 10-simplex, that is, a 9-sphere. \begin{quote} \begin{verbatim} >> dimension = 9; >> stream = api.Plex4.createExplicitSimplexStream(); >> stream.addElement(0:(dimension + 1)); >> stream.ensureAllFaces(); >> stream.removeElementIfPresent(0:(dimension + 1)); >> stream.finalizeStream(); \end{verbatim} \end{quote} In the above, the \texttt{finalizeStream} method is used to ensure that the stream has been fully constructed and is ready for consumption by a persistence algorithm. It should be called every time after you build an explicit simplex stream. We print the total number of simplices in the complex. \begin{quote} \begin{verbatim} >> num_simplices = stream.getSize() num_simplices = 2046 \end{verbatim} \end{quote} We get the persistence algorithm \begin{quote} \begin{verbatim} persistence = api.Plex4.getModularSimplicialAlgorithm(dimension + 1, 2); \end{verbatim} \end{quote} and compute and print the intervals. \begin{quote} \begin{verbatim} >> intervals = persistence.computeIntervals(stream) intervals = Dimension: 9 [0.0, infinity) Dimension: 0 [0.0, infinity) \end{verbatim} \end{quote} This gives us the expected Betti numbers $Betti_0=1$ and $Betti_9=1$. Try computing a representative cycle for each barcode. \begin{quote} \begin{verbatim} >> intervals = persistence.computeAnnotatedIntervals(stream) \end{verbatim} \end{quote} We don't display the output from this command in the tutorial, because the representative 9-cycle is very long and contains all eleven 9-simplices. See Appendix~\ref{A:solutions} for exercise solutions. \begin{exercise} Build the following simplicial complex in Javaplex. \begin{center} \includegraphics[width=2in]{smallSimplicialComplex.png} \end{center} Compute its Betti numbers (i.e.\ the ranks of its homology groups, or the number of holes it has in each dimension). \end{exercise} \begin{exercise} Build a simplicial complex homeomorphic to the torus. Compute its Betti numbers. {\em Hint: You will need at least 7 vertices}~\citep[page 107]{Hatcher}{\em . We recommend using a $3\times 3$ grid of 9 vertices.} \end{exercise} \begin{exercise} Build a simplicial complex homeomorphic to the Klein bottle. Check that it has the same Betti numbers as the torus over $\Z/2\Z$ coefficients but different Betti numbers over $\Z/3\Z$ coefficients. \end{exercise} \begin{exercise} Build a simplicial complex homeomorphic to the projective plane. Find its Betti numbers over $\Z/2\Z$ and $\Z/3\Z$ coefficients. \end{exercise} \subsection{Computing persistent homology}\label{S:computingPersistentHomology} Let's build a stream with nontrivial filtration values. If your filtration values are not all integers, then please see the remark at the end of this section. {\em House example.} The Matlab script corresponding to this section is \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_examples/house_example.m}{\texttt{house\_example.m}}. \begin{wrapfigure}{r}{1in} \begin{center} \includegraphics[width=1in]{houseFig.pdf} \end{center} \end{wrapfigure} We build a house, with the vertices and edges on the square appearing at value 0, with the top vertex appearing at value 1, with the roof edges appearing at values 2 and 3, and with the roof 2-simplex appearing at value 7. \begin{quote} \begin{verbatim} >> stream = api.Plex4.createExplicitSimplexStream(); >> stream.addVertex(1, 0); >> stream.addVertex(2, 0); >> stream.addVertex(3, 0); >> stream.addVertex(4, 0); >> stream.addVertex(5, 1); >> stream.addElement([1, 2], 0); >> stream.addElement([2, 3], 0); >> stream.addElement([3, 4], 0); >> stream.addElement([4, 1], 0); >> stream.addElement([3, 5], 2); >> stream.addElement([4, 5], 3); >> stream.addElement([3, 4, 5], 7); >> stream.finalizeStream(); \end{verbatim} \end{quote} We get the persistence algorithm with $\Z/2\Z$ coefficients \begin{quote} \begin{verbatim} >> persistence = api.Plex4.getModularSimplicialAlgorithm(3, 2); \end{verbatim} \end{quote} and compute the intervals. \begin{quote} \begin{verbatim} >> intervals = persistence.computeIntervals(stream) intervals = Dimension: 1 [3.0, 7.0) [0.0, infinity) Dimension: 0 [1.0, 2.0) [0.0, infinity) \end{verbatim} \end{quote} There are four intervals. The first is a $Betti_1$ interval, starting at filtration value 3 and ending at 7, with a representative cycle formed by the three edges of the roof. This 1-dimensional hole forms when edge $[4,5]$ appears at filtration value 3 and closes when 2-simplex $[3,4,5]$ appears at filtration value 7. We can also store the intervals as Matlab matrices. \begin{quote} \begin{verbatim} >> intervals_dim0 = edu.stanford.math.plex4.homology.barcodes.BarcodeUtility... .getEndpoints(intervals, 0, 0) intervals_dim0 = 0 Inf 1 2 >> intervals_dim1 = edu.stanford.math.plex4.homology.barcodes.BarcodeUtility... .getEndpoints(intervals, 1, 0) intervals_dim1 = 0 Inf 3 7 \end{verbatim} \end{quote} The second input of this command is the dimension of the intervals, and the third input is a Boolean flag: 0 to include infinite intervals, and 1 to exclude infinite intervals. We compute a representative cycle for each barcode. \begin{quote} \begin{verbatim} >> intervals = persistence.computeAnnotatedIntervals(stream) intervals = Dimension: 1 [3.0, 7.0): [4,5] + [3,4] + -[3,5] [0.0, infinity): [1,4] + [2,3] + [1,2] + [3,4] Dimension: 0 [1.0, 2.0): -[3] + [5] [0.0, infinity): [1] \end{verbatim} \end{quote} One $Betti_0$ interval and one $Betti_1$ interval are semi-infinite. \begin{quote} \begin{verbatim} >> infinite_barcodes = intervals.getInfiniteIntervals() infinite_barcodes = Dimension: 1 [0.0, infinity): [1,4] + [2,3] + [1,2] + [3,4] Dimension: 0 [0.0, infinity): [1] \end{verbatim} \end{quote} We can print the Betti numbers at the largest filtration value (7 in this case) as an array \begin{quote} \begin{verbatim} >> betti_numbers_array = infinite_barcodes.getBettiSequence() betti_numbers_array = 1 1 \end{verbatim} \end{quote} or as a list with entries of the form $k: Betti_k$. \begin{quote} \begin{verbatim} >> betti_numbers_string = infinite_barcodes.getBettiNumbers() betti_numbers_string = {0: 1, 1: 1} \end{verbatim} \end{quote} The Matlab function \texttt{plot\_barcodes.m} lets us display the intervals as Betti barcodes. The Matlab structure array \texttt{options} contains different options for the plot. We choose the filename \texttt{house} and we choose the maximum filtration value for the plot to be eight. \begin{quote} \begin{verbatim} >> options.filename = 'house'; >> options.max_filtration_value = 8; >> plot_barcodes(intervals, options); \end{verbatim} \end{quote} The file \texttt{house.png} is saved to your current directory. \begin{figure}[htp] \begin{center} \includegraphics[width=6in]{house.png} \end{center} \end{figure} \FloatBarrier The filtration values are on the horizontal axis. The $Betti_k$ number of the stream at filtration value $t$ is the number of intervals in the dimension $k$ plot that intersect a vertical line through $t$. Check that the displayed intervals agree with the filtration values we built into the house stream. At value 0, a connected component and a 1-dimensional hole form. At value 1, a second connected component appears, which joins to the first at value 2. A second 1-dimensional hole forms at value 3, and closes at value 7. {\em Remark.} The methods \texttt{addElement} and \texttt{removeElementIfPresent} do not necessarily enforce the definition of a stream. They allow us to build inconsistent complexes in which some simplex $\sigma \in X(t)$ contains a subsimplex $\sigma' \notin X(t)$, meaning that $X(t)$ is not a simplicial complex. The method \texttt{validateVerbose} returns \texttt{1} if our stream is consistent and returns \texttt{0} with explanation if not. \begin{quote} \begin{verbatim} >> stream.validateVerbose() ans = 1 >> stream.addElement([1, 4, 5], 0); >> stream.validateVerbose() Filtration index of face [4,5] exceeds that of element [1,4,5] (3 > 0) Stream does not contain face [1,5] of element [1,4,5] ans = 0 \end{verbatim} \end{quote} {\em Remark.} If you want to use filtration values that are not integers, then you first need to specify an upper bound on the filtration values in your complex. This is demonstrated below, where the non-integer filtration value is 17.23 and the upper bound is 100. \begin{quote} \begin{verbatim} >> stream = api.Plex4.createExplicitSimplexStream(100); >> stream.addVertex(1, 17.23); >> stream.finalizeStream(); \end{verbatim} \end{quote} {\em Remark.} You should avoid negative filtration values with Javaplex (simply by adding some large constant until all filtration values are nonnegative). %In Section~\ref{S:sfpc} we will create simplex streams that are not also explicit simplex streams. To display or edit such streams, we will first need to use the method \texttt{makeExplicit}. See Exercise~\ref{ripsExpl}. % Henry: At the moment there is no ``make Explicit'' function. \section{Point cloud data} A point cloud is a finite metric space, that is, a finite set of points equipped with a notion of distance. One can create a Euclidean metric space by specifying the coordinates of points in Euclidean space, or one can create an explicit metric space by specifying all pairwise distances between points. In Section~\ref{S:sfpc} we will learn how to build streams from point cloud data. \subsection{Euclidean metric spaces}\label{SS:euclidean-metric} The Matlab script corresponding to this section is \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_examples/pointcloud_example.m}{\texttt{pointcloud\_example.m}}. {\em House example.} Let's give Euclidean coordinates to the points of our house. \vspace{-3mm} \begin{figure}[htb] \centering \includegraphics[width=1.55in]{houseCoord.pdf} \vspace{-3mm} \caption{The house point cloud} \label{fig:housePointCloud} \end{figure} \FloatBarrier You can enter these coordinates manually as a Matlab matrix. \begin{quote} \begin{verbatim} >> point_cloud = [-1,0; 1,0; 1,2; -1,2; 0,3] point_cloud = -1 0 1 0 1 2 -1 2 0 3 \end{verbatim} \end{quote} %Or alternatively, these coordinates are stored as a Javaplex example. %\begin{quote} \begin{verbatim} %>> point_cloud = examples.PointCloudExamples.getHouseExample(); %\end{verbatim} \end{quote} We create a metric space using these coordinates. The input to the \texttt{EuclideanMetricSpace} method is a matrix whose $i$-th row lists the coordinates of the $i$-th point. \begin{quote} \begin{verbatim} >> m_space = metric.impl.EuclideanMetricSpace(point_cloud); \end{verbatim} \end{quote} We can return the coordinates of a specific point. Note the points are indexed starting at 0. \begin{quote} \begin{verbatim} >> m_space.getPoint(0) ans = -1 0 >> m_space.getPoint(2) ans = 1 2 \end{verbatim} \end{quote} A metric space can return the distance between any two points. \begin{quote} \begin{verbatim} >> m_space.distance(m_space.getPoint(0), m_space.getPoint(2)) ans = 2.8284 \end{verbatim} \end{quote} {\em Figure~8 example.} We select 1,000 points randomly from a figure eight, that is, the union of unit circles centered at $(0,1)$ and $(0,-1)$. \begin{quote} \begin{verbatim} >> point_cloud = examples.PointCloudExamples.getRandomFigure8Points(1000); \end{verbatim} \end{quote} We plot the points. \begin{quote} \begin{verbatim} >> figure >> scatter(point_cloud(:,1), point_cloud(:,2), '.') >> axis equal \end{verbatim} \end{quote} {\em Torus example.} We select 2,000 points randomly from a torus in $\R^3$ with inner radius 1 and outer radius 2. The first input is the number of points, the second input is the inner radius, and the third input is the outer radius \begin{quote} \begin{verbatim} >> point_cloud = examples.PointCloudExamples.getRandomTorusPoints(2000, 1, 2); \end{verbatim} \end{quote} We plot the points. \begin{quote} \begin{verbatim} >> figure >> scatter3(point_cloud(:,1), point_cloud(:,2), point_cloud(:,3), '.') >> axis equal >> view(60,40) \end{verbatim} \end{quote} {\em Sphere product example.} We select 1,000 points randomly from the unit torus $S^1 \times S^1$ in $\R^4$. The first input is the number of points, the second input is the dimension of each sphere, and the third input is the number of sphere factors. \begin{quote} \begin{verbatim} >> point_cloud = examples.PointCloudExamples.getRandomSphereProductPoints(1000, 1, 2); \end{verbatim} \end{quote} Plotting the third and fourth coordinates of each point shows a circle $S^1$. \begin{quote} \begin{verbatim} >> figure >> scatter(point_cloud(:,3), point_cloud(:,4), '.') >> axis equal \end{verbatim} \end{quote} \subsection{Explicit metric spaces}\label{SS:explicit-metric} We can also create a metric space from a distance matrix using the method \texttt{ExplicitMetricSpace}. For a point cloud in Euclidean space, this method is generally less convenient than the command \texttt{EuclideanMetricSpace}. However, method \texttt{ExplicitMetricSpace} can be used for a point cloud in an arbitrary (perhaps non-Euclidean) metric space. The Matlab script corresponding to this section is \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_examples/explicit_metric_space_example.m}{\texttt{explicit\_metric\_space\_example.m}}. {\em House example.} The matrix \texttt{distances} summarizes the metric for our house points in Figure~\ref{fig:housePointCloud}: entry $(i,j)$ is the distance from point $i$ to point $j$. \begin{quote} \begin{verbatim} >> distances = [0,2,sqrt(8),2,sqrt(10); 2,0,2,sqrt(8),sqrt(10); sqrt(8),2,0,2,sqrt(2); 2,sqrt(8),2,0,sqrt(2); sqrt(10),sqrt(10),sqrt(2),sqrt(2),0] distances = 0 2.0000 2.8284 2.0000 3.1623 2.0000 0 2.0000 2.8284 3.1623 2.8284 2.0000 0 2.0000 1.4142 2.0000 2.8482 2.0000 0 1.4142 3.1623 3.1623 1.4142 1.4142 0 \end{verbatim} \end{quote} We create a metric space from this distance matrix. \begin{quote} \begin{verbatim} >> m_space = metric.impl.ExplicitMetricSpace(distances); \end{verbatim} \end{quote} We return the distance between points 0 and 2. \begin{quote} \begin{verbatim} >> m_space.distance(0, 2) ans = 2.8284 \end{verbatim} \end{quote} {\em Remark.} Be careful: the constructor \texttt{metric.impl.ExplicitMetricSpace()} will accept matrices that fail to be symmetric, square, or nonnegative, creating ``metrics'' that do not satisfy the mathematical definition, and which may lead to errors down the road. The triangle inequality is similarly easy to ignore, but this is often useful: sometimes real world ``distances" or ``similarities" satisfy all of the axioms of a metric except for the triangle inequality, and one can still define a Vietoris--Rips complex on top of this data. \begin{exercise}\label{Ex:flatTorus} One way to produce a torus is to take a square $[0, 1] \times [0, 1]$ and then identify opposite sides. This is called the flat torus. More explicitly, the flat torus is the quotient space $$([0, 1] \times [0, 1]) / \sim,$$ where $(0, y) \sim (1, y)$ for all $y \in [0, 1]$ and where $(x, 0) \sim (x, 1)$ for all $x \in [0, 1]$. The Euclidean metric on $[0, 1] \times [0, 1]$ induces a metric on the flat torus. For example, in the induced metric on the flat torus, the distance between $(0, \frac{1}{2})$ and $(1, \frac{1}{2})$ is zero, since these two points are identified. The distance between $(\frac{1}{10}, \frac{1}{2})$ and $(\frac{9}{10}, \frac{1}{2})$ is $\frac{2}{10}$, by passing through the point $(0, \frac{1}{2}) \sim (1, \frac{1}{2})$. Write a Matlab script or function that selects 1,000 random points from the square $[0, 1] \times [0, 1]$ and then computes the 1,000 $\times$ 1,000 distance matrix for these points under the induced metric on the flat torus. Create an explicit metric space from this distance matrix. This exercise is continued by Exercise~\ref{Ex:flatTorusLazy}. % TODO: Gard Spreeman at MRC gave me a good idea for the Matlab function FlatTorusDistanceMatrix.m: just move one point to the center of the square, and then find the distance in the square to the other point. \end{exercise} \begin{exercise}\label{Ex:flatKlein} One way to produce a Klein bottle is to take a square $[0, 1] \times [0, 1]$ and then identify opposite edges, with the left and right sides identified with a twist. This is called the flat Klein bottle. More explicitly, the flat Klein bottle is the quotient space $$([0, 1] \times [0, 1]) / \sim,$$ where $(0, y) \sim (1, 1 - y)$ for all $y \in [0, 1]$ and where $(x, 0) \sim (x, 1)$ for all $x \in [0, 1]$. The Euclidean metric on $[0, 1] \times [0, 1]$ induces a metric on the flat Klein bottle. For example, in the induced metric on the flat Klein bottle, the distance between $(0, \frac{4}{10})$ and $(1, \frac{6}{10})$ is zero, since these two points are identified. The distance between $(\frac{1}{10}, \frac{4}{10})$ and $(\frac{9}{10}, \frac{6}{10})$ is $\frac{2}{10}$, by passing through the point $(0, \frac{4}{10}) \sim (1, \frac{6}{10})$. Write a Matlab script or function that selects 1,000 random points from the square $[0, 1] \times [0, 1]$ and then computes the 1,000 $\times$ 1,000 distance matrix for these points under the induced metric on the flat Klein bottle. Create an explicit metric space from this distance matrix. This exercise is continued by Exercise~\ref{Ex:flatKleinLazy}. \end{exercise} \begin{exercise}\label{Ex:quotProjPlane} One way to produce a projective plane is to take the unit sphere $S^2 \subset \R^3$ and then identify antipodal points. More explicitly, the projective plane is the quotient space $$S^2 / (x \sim -x).$$ The Euclidean metric on $S^2$ induces a metric on the projective plane. Write a Matlab script or function that selects 1,000 random points from the unit sphere $S^2 \subset \R^3$ and then computes the 1,000 $\times$ 1,000 distance matrix for these points under the induced metric on the projective plane. Create an explicit metric space from this distance matrix. This exercise is continued by Exercise~\ref{Ex:quotProjPlaneLazy}. \end{exercise} \section{Streams from point cloud data}\label{S:sfpc} In Section~\ref{S:explicitStream} we built streams explicitly, or by hand. In this section we construct streams from a point cloud $Z$. We build Vietoris--Rips, witness, and lazy witness streams. See~\citet{WitnessComplexes} for additional information. The Vietoris--Rips, witness, and lazy witness streams all take three of the same inputs: the maximum dimension $d_{max}$ of any included simplex, the maximum filtration value $t_{max}$, and the number of divisions $N$. These inputs allow the user to limit the size of the constructed stream, for computational efficiency. No simplices above dimension $d_{max}$ are included. The persistent homology of the resulting stream can be calculated only up to dimension $d_{max} - 1$ since homology in dimension $d_{max}-1$ depends on the boundary matrix from $d_{max}$-simplices to $(d_{max}-1)$-simplices. Also, instead of computing filtered simplcial complex $X(t)$ for all $t \geq 0$, we only compute $X(t)$ for $$t \in \Biggl\{ 0,\ \frac{t_{max}}{N-1},\ \frac{2t_{max}}{N-1},\ \frac{3t_{max}}{N-1},\ \dots,\ \frac{(N-2)t_{max}}{N-1},\ t_{max} \Biggr\}.$$ The number of divisions $N$ is an optional input. If this input parameter is not specified, then the default value $N = 20$ is used. In this tutorial, we typically set $N=1000$; the size of $N$ does not affect the computation time very much. {\em Warning.} When working with a new dataset, don't choose $d_{max}$ and $t_{max}$ too large initially. Indeed, it is extremely easy to ask Javaplex to do an infeasible computation. Suppose you have a (quite small) collection of only 266 vertices. If you set $d_{max}$ and $t_{max}$ such that you ask Javaplex to build the full simplicial complex on 266 vertices, then your complex will have $2^{266}-1$ simplices in it. Note that $2^{266}\approx 10^{80}$ is on the order of the number of atoms in the universe, and hence you've asked Javaplex to build something too large. Prevent this problem by limiting the size of the computation by setting $d_{max}$ and $t_{max}$ small at first. Get a feel for how fast the simplicial complexes are growing, and then raise $d_{max}$ and $t_{max}$ nearer to the computational limits. If you ever choose $d_{max}$ or $t_{max}$ too large and Matlab seems to be running forever, pressing the \texttt{control} and \texttt{c} buttons simultaneously may halt the computation. See also the remark in Section~\ref{SS:java-heap-size}. %The first author is currently working with Jan Segert on interactive visualizations of the Vietoris--Rips and Witness filtrations for the Wolfram Demonstrations Project. We have preliminary drafts of the demonstrations. Please email Henry if you'd like to check them out; in particular, the witness filtrations can be hard to visualize. \subsection{Vietoris--Rips streams}\label{SS:VietorisRips} Let $d(\ \cdot\ ,\ \cdot \ )$ denote the distance between two points in metric space $Z$. A natural stream to build is the Vietoris--Rips stream. The complex $\VR(Z,t)$ is defined as follows: \begin{itemize} \item{the vertex set is $Z$.} \item{for vertices $a$ and $b$, edge $[ab]$ is included in $\VR(Z,t)$ if $d(a,b) \leq t$.} \item{a higher dimensional simplex is included in $\VR(Z,t)$ if all of its edges are.} \end{itemize} Note that $\VR(Z,t) \subset \VR(Z,t')$ whenever $t\leq t'$, so the Vietoris--Rips stream is a filtered simplicial complex. Since a Vietoris--Rips complex is the maximal simplicial complex that can be built on top of its 1-skeleton, it is an example of a {\em clique complex} or a {\em flag complex}. The Matlab script corresponding to this section is \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_examples/rips_example.m}{\texttt{rips\_example.m}}. {\em House example.} Let's build a Vietoris--Rips stream from the house point cloud in Section~\ref{SS:euclidean-metric}, where the metric space is $Z=\{(-1,0),(1,0),(1,2),(-1,2),(0,3)\}$. Note this stream is different than the explicit house stream we built in Section~\ref{S:computingPersistentHomology}. \begin{quote} \begin{verbatim} >> max_dimension = 3; >> max_filtration_value = 4; >> num_divisions = 1000; >> point_cloud = examples.PointCloudExamples.getHouseExample(); >> stream = api.Plex4.createVietorisRipsStream(point_cloud, max_dimension, ... max_filtration_value, num_divisions); \end{verbatim} \end{quote} The ellipses in the command above should be omitted; they are included only to indicate that this command continues onto the next line. The order of the inputs is \texttt{createVietorisRipsStream(}$Z,\ d_{max},\ t_{max},\ N$\texttt{)}. For a Vietoris--Rips stream, the parameter $t_{max}$ is the maximum possible edge length. Since $t_{max} = 4$ is greater than the diameter ($\sqrt{10}$) of our point cloud, all edges will eventually form. Since $d_{max} = 3$ we can compute up to second dimensional persistent homology. \begin{quote} \begin{verbatim} >> persistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension, 2); >> intervals = persistence.computeIntervals(stream); \end{verbatim} \end{quote} We display the Betti intervals. Parameter \texttt{options.max\_filtration\_value} is the largest filtration value to be displayed; typically \texttt{options.max\_filtration\_value} is chosen to be \texttt{max\_filtration\_value}. Parameter \texttt{options.max\_dimension} is the largest persistent homology dimension to be displayed; typically \texttt{options.max\_dimension} is chosen to be \texttt{max\_dimension - 1} because in a stream with simplices computed up to dimension $d_{max}$ we can only compute persistent homology up to dimension $d_{max} - 1$. \begin{quote} \begin{verbatim} >> options.filename = 'ripsHouse'; >> options.max_filtration_value = max_filtration_value; >> options.max_dimension = max_dimension - 1; >> plot_barcodes(intervals, options); \end{verbatim} \end{quote} The file \texttt{ripsHouse.png} is saved to your current directory. \begin{figure}[htp] \begin{center} \includegraphics[width=6in]{ripsHouse.png} \end{center} \end{figure} \FloatBarrier Check that these plots are consistent with the Vietoris--Rips definition: edges $[3,5]$ and $[4,5]$ appear at filtration value $t = \sqrt{2}$; the square appears at $t = 2$; the square closes at $t = \sqrt{8}$. %\begin{exercise} %Change \texttt{ripsHouse} into an explicit stream % %\begin{quote} \begin{verbatim} %>> ripsExpl = Plex.makeExplicit(ripsHouse); %\end{verbatim} \end{quote} % %Check that you can display and edit stream \texttt{ripsExpl} using the methods of Section~\ref{S:explicitStream}. %\end{exercise} % Is the above exercise no longer necessary, or no longer possible? % Answer: At the moment it isn't possible. Do you think it is meaningful? % Is there a way to print the simplices in a stream (and perhaps their filtration values? {\em Torus example.} Try the following sequence of commands. We start with 400 points from a $20 \times 20$ grid on the unit torus $S^1 \times S^1$ in $\R^4$, and add a small amount of noise to each point. % If I select points randomly from the torus instead from the regular grid, then the Vietoris--Rips stream does not seem to be able to recover the correct Betti numbers. We build the Vietoris--Rips stream. \begin{quote} \begin{verbatim} >> max_dimension = 3; >> max_filtration_value = 0.9; >> num_divisions = 1000; \end{verbatim} \end{quote} Make sure you are in the directory \texttt{tutorial\_examples} (you may need to enter the command \texttt{cd tutorial\_examples}), and then load the file \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_examples/pointsTorusGrid.mat}{\texttt{pointsTorusGrid.mat}}. The matrix \texttt{pointsTorusGrid} appears in your Matlab workspace. \begin{quote} \begin{verbatim} >> load pointsTorusGrid.mat >> point_cloud = pointsTorusGrid; >> size(point_cloud) ans = 400 4 % 400 points in dimension 4 >> stream = api.Plex4.createVietorisRipsStream(point_cloud, max_dimension, ... max_filtration_value, num_divisions); >> num_simplices = stream.getSize() num_simplices = 82479 >> persistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension, 2); >> intervals = persistence.computeIntervals(stream); >> options.filename = 'ripsTorus'; >> options.max_filtration_value = max_filtration_value; >> options.max_dimension = max_dimension - 1; >> options.side_by_side = true; >> plot_barcodes(intervals, options); \end{verbatim} \end{quote} Setting the parameter \texttt{options.side\_by\_side} equal to \texttt{true} makes it such that the Betti barcodes of different dimensions are plotted side by side instead of above and below each other. The file \texttt{ripsTorus.png} is saved to your current directory. \begin{figure}[htp] \begin{center} \includegraphics[width=6in]{ripsTorus.png} \end{center} \end{figure} \FloatBarrier The diameter of this torus (before adding noise) is $\sqrt{8}$, so choosing $t_{max} = 0.9$ likely will not show all homological activity. However, the torus will be reasonably connected by this time. Note the semi-infinite intervals match the correct numbers $Betti_0 = 1$, $Betti_1 = 2$, $Betti_2 = 1$ for a torus. \begin{quote} \begin{verbatim} >> infinite_barcodes = intervals.getInfiniteIntervals(); >> betti_numbers_array = infinite_barcodes.getBettiSequence() betti_numbers_array = 1 2 1 \end{verbatim} \end{quote} This example makes it clear that the computed ``semi-infinite'' intervals do not necessarily persist until $t = \infty$: in a Vietoris--Rips stream, once $t$ is greater than the diameter of the point cloud, the Betti numbers for $\VR(Z,t)$ will be $ Betti_0 = 1$, $Betti_1 = Betti_2 = ... = 0$. The computed semi-infinite intervals are merely those that persist until $t = t_{max}$. {\em Remark.} We can build Vietoris--Rips streams not only on top of Euclidean point clouds, but also on top of more general metric spaces. For example, if \texttt{m\_space} were an explicit metric space (see Section~\ref{SS:explicit-metric}), then we could call the following command. \begin{quote} \begin{verbatim} >> stream = api.Plex4.createVietorisRipsStream(m_space, max_dimension, ... max_filtration_value, num_divisions); \end{verbatim} \end{quote} \begin{exercise} Compute the persistent homology of the Vietoris--Rips complex of the collection of points $\{(-1,0),(1,0),(-1,2),(1,2),(0,3),(4,0),(4,2)\}$ in the plane (i.e.\ a house with a garage). Perturb the points with a small amount of noise. Do the barcodes change a lot or only a little? \end{exercise} \begin{exercise} Compute the persistent homology of the Vietoris--Rips complex of 75 points randomly sampled from a ``figure 8" space. You can get these points using the following command: \begin{verbatim} >> point_cloud = examples.PointCloudExamples.getRandomFigure8Points(75); \end{verbatim} We suggest including simplices up to dimension 3, and setting the max filtration value to be 1.1. Does the persistent homology agree with what you would expect? \end{exercise} \begin{exercise} In the torus example, slowly increase the values for $t_{max}$, $d_{max}$ and note how quickly the size of the Vietoris--Rips stream and the time of computation grow. Either increasing $t_{max}$ from 0.9 to 1 or increasing $d_{max}$ from 3 to 4 roughly doubles the size of the Vietoris--Rips stream. \end{exercise} \begin{exercise} Write a Matlab script that will select $n$ even-spaced points from the unit circle in the plane. Compute the persistent homology of the Vietoris--Rips complex of 4 points, 6, 9, 12, 15 points, and 20 equally spaced points. We suggest including simplices up to dimension 4 to start. Do you ever get homology in dimension above 1? \end{exercise} \begin{exercise} Find a planar dataset $Z \subset \R^2$ and a filtration value $t$ such that $\VR(Z,t)$ has nonzero $Betti_2$. Build a Vietoris--Rips stream to confirm your answer. \end{exercise} \begin{exercise} Find a planar dataset $Z \subset \R^2$ and a filtration value $t$ such that $\VR(Z,t)$ has nonzero $Betti_6$. When building a Vietoris--Rips stream to confirm your answer, don't forget to choose $d_{max} = 7$. \end{exercise} \begin{exercise} Let $X$ be 8 vertices of the cube in $\R^3$: $X=\{(\pm1, \pm1, \pm1)\}$. Equip $X$ with the Euclidean metric. Compute the persistent homology of the Vietoris--Rips complex of $X$. Include simplices up to dimension 7 (i.e.\ all possible simplices). Do you get ever homology above dimension 2? \end{exercise} \subsection{Landmark selection}\label{SS:landmarks} For larger datasets, if we include every data point as a vertex, as in the Vietoris--Rips construction, our streams will quickly contain too many simplices for efficient computation. The witness stream and the lazy witness stream address this problem. In building these streams, we select a subset $L \subset Z$, called landmark points, as the only vertices. All data points in $Z$ help serve as witnesses for the inclusion of higher dimensional simplices. There are two common methods for selecting landmark points. The first is to choose the landmarks $L$ randomly from point cloud $Z$. The second is a greedy inductive selection process called sequential maxmin. In sequential maxmin, the first landmark is picked randomly from $Z$. Inductively, if $L_{i-1}$ is the set of the first $i-1$ landmarks, then let the $i$-th landmark be the point of $Z$ which maximizes the function $z \mapsto d(z, L_{i-1})$, where $d(z, L_{i-1})$ is the distance between the point $z$ and the set $L_{i-1}$. Landmarks chosen using sequential maxmin tend to cover the dataset and to be spread apart from each other. A disadvantage is that outlier points tend to be selected. However, outlier points are less of an issue if one first takes dense core subsets as in Appendix~\ref{A:core}. Sequential maxmin landmarks are used by~\citet{Range} and~\citet{KleinBottle}. The Matlab script corresponding to this section is \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_examples/landmark_example.m}{\texttt{landmark\_example.m}}. {\em Figure~8 example.} We create a point cloud of 1,000 points from a figure eight. \begin{quote} \begin{verbatim} >> point_cloud = examples.PointCloudExamples.getRandomFigure8Points(1000); \end{verbatim} \end{quote} We create both a random landmark selector and a sequential maxmin landmark selector. These selectors will pick 100 landmarks each. \begin{quote} \begin{verbatim} >> num_landmark_points = 100; >> random_selector = api.Plex4.createRandomSelector(point_cloud, num_landmark_points); >> maxmin_selector = api.Plex4.createMaxMinSelector(point_cloud, num_landmark_points); \end{verbatim} \end{quote} We select 100 random landmarks and 100 landmarks via sequential maxmin. Note we need to increment the indices by 1 since Java uses 0-based arrays. \begin{quote} \begin{verbatim} >> random_points = point_cloud(random_selector.getLandmarkPoints() + 1, :); >> maxmin_points = point_cloud(maxmin_selector.getLandmarkPoints() + 1, :); \end{verbatim} \end{quote} We plot the two sets of landmark points to see the difference between random and sequential maxmin landmark selection. \begin{quote} \begin{verbatim} >> subplot(1, 2, 1); >> scatter(random_points(:,1), random_points(:, 2)); >> title('Random landmark selection'); >> subplot(1, 2, 2); >> scatter(maxmin_points(:,1), maxmin_points(:, 2)); >> title('Maxmin landmark selection'); \end{verbatim} \end{quote} \begin{figure}[htp] \begin{center} \includegraphics[width=5in]{fig8lands} \end{center} \end{figure} \FloatBarrier Sequential maxmin seems to do a better job of choosing landmarks that cover the figure eight and that are spread apart. {\em Remark.} We can select landmark points not only from Euclidean point clouds but also from more general metric spaces. For example, if \texttt{m\_space} is an explicit metric space, then we may select landmarks using a command such as the following. \begin{quote} \begin{verbatim} >> maxmin_selector = api.Plex4.createMaxMinSelector(m_space, num_landmark_points); \end{verbatim} \end{quote} Given point cloud $Z$ and landmark subset $L$, we define $\texttt{R} = \max_{z\in Z}\bigl\{d(z,L)\bigr\}$. Number \texttt{R} reflects how finely the landmarks cover the dataset. We often use it as a guide for selecting the maximum filtration value $t_{max}$ for a witness or lazy witness stream. \begin{exercise} Let $Z$ be the point cloud in Figure~\ref{fig:housePointCloud} from Section~\ref{SS:euclidean-metric}, corresponding to the house point cloud. Suppose we are using sequential maxmin to select a set $L$ of 3 landmarks, and the first (randomly selected) landmark is $(1,0)$. Find by hand the other two landmarks in $L$. \end{exercise} \begin{exercise} Let $Z$ be a point cloud and $L$ a landmark subset. Show that if $L$ is chosen via sequential maxmin, then for any $l_i,l_j\in L$, we have $d(l_i,l_j)\geq\texttt{R}$. \end{exercise} \subsection{Witness streams} Suppose we are given a point cloud $Z$ and landmark subset $L$. Let $m_k(z)$ be the distance from a point $z \in Z$ to its $(k+1)$-th closest landmark point. The witness stream complex $\W(Z,L,t)$ is defined as follows. \begin{itemize} \item{the vertex set is $L$.} \item{for $k>0$ and vertices $l_i$, the $k$-simplex $[l_0 l_1 ... l_k]$ is in $\W(Z,L,t)$ if all of its faces are, and if there exists a witness point $z \in Z$ such that $$\max\bigl\{d(l_0,z), d(l_1,z), ..., d(l_k,z)\bigr\} \leq t+m_k(z).$$ } \end{itemize} Note that $\W(Z,L,t) \subset \W(Z,L,t')$ whenever $t\leq t'$, so the witness stream is a filtered simplicial complex. Note that a landmark point can serve as a witness point. \begin{exercise}\label{Ex:witnessHouse} Let $Z$ be the point cloud in Figure~\ref{fig:housePointCloud} from Section~\ref{SS:euclidean-metric}, corresponding to the house point cloud. Let $L = \{(1,0),(0,3),(-1,0)\}$ be the landmark subset. Find by hand the filtration value for the edge between vertices $(1,0)$ and $(0,3)$. Which point or points witness this edge? What is the filtration value for the lone 2-simplex $[(1,0),(0,3),(-1,0)]$? \end{exercise} The Matlab script corresponding to this section is \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_examples/witness_example.m}{\texttt{witness\_example.m}}. {\em Torus example.} Let's build a witness stream instance for 10,000 random points from the unit torus $S^1 \times S^1$ in $\R^4$, with 50 sequential maxmin landmarks. \begin{quote} \begin{verbatim} >> num_points = 10000; >> num_landmark_points = 50; >> max_dimension = 3; >> num_divisions = 1000; >> point_cloud = examples.PointCloudExamples.getRandomSphereProductPoints(num_points, ... 1, 2); >> landmark_selector = api.Plex4.createMaxMinSelector(point_cloud, num_landmark_points); \end{verbatim} \end{quote} The next command returns the landmark covering measure \texttt{R} from Section~\ref{SS:landmarks}. Often the value for $t_{max}$ is chosen in proportion to \texttt{R}. \begin{quote} \begin{verbatim} >> R = landmark_selector.getMaxDistanceFromPointsToLandmarks() R = 0.7033 % Generally close to 0.7 >> max_filtration_value = R / 8; \end{verbatim} \end{quote} We create the witness stream. \begin{quote} \begin{verbatim} >> stream = api.Plex4.createWitnessStream(landmark_selector, max_dimension, ... max_filtration_value, num_divisions); >> num_simplices = stream.getSize() num_simplices = 1164 % Generally close to 1200 \end{verbatim} \end{quote} We plot the Betti intervals. \begin{quote} \begin{verbatim} >> persistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension, 2); >> intervals = persistence.computeIntervals(stream); >> options.filename = 'witnessTorus'; >> options.max_filtration_value = max_filtration_value; >> options.max_dimension = max_dimension - 1; >> plot_barcodes(intervals, options); \end{verbatim} \end{quote} The file \texttt{witnessTorus.png} is saved to your current directory. \begin{figure}[htp] \begin{center} \includegraphics[width=6in]{witnessTorus.png} \end{center} \end{figure} \FloatBarrier The idea of persistent homology is that long intervals should correspond to real topological features, whereas short intervals are considered to be noise. The plot above shows that for a long range, the torus numbers $Betti_0 = 1$, $Betti_1 = 2$, $Betti_2 = 1$ are obtained. Your plot should contain a similar range. The witness stream above contains approximately 2,000 simplices, fewer than the approximately 80,000 simplices in the Vietoris--Rips stream from the torus example in Section~\ref{SS:VietorisRips}. This is despite the fact that we started with a point cloud of 100,000 points in the witness case, but of only 400 points in the Vietoris--Rips case. This supports our belief that the witness stream returns good results at lower computational expense. \subsection{Lazy witness streams} A lazy witness stream is similar to a witness stream. However, there is an extra parameter $\nu$, typically chosen to be 0, 1, or 2, which helps determine how the lazy witness complexes $\LW_\nu(Z,L,t)$ are constructed. See~\citet{WitnessComplexes} for more information. Suppose we are given a point cloud $Z$, landmark subset $L$, and parameter $\nu\in\N$. If $\nu = 0$, let $m(z) = 0$ for all $z\in Z$. If $\nu >0$, let $m(z)$ be the distance from $z$ to the $\nu$-th closest landmark point. The lazy witness complex $\LW_\nu(Z,L,t)$ is defined as follows. \begin{itemize} \item{the vertex set is $L$.} \item{for vertices $a$ and $b$, edge $[ab]$ is in $\LW_\nu(Z,L,t)$ if there exists a witness $z \in Z$ such that $$\max\bigl\{d(a,z), d(b,z)\bigr\} \leq t+m(z).$$} \item{a higher dimensional simplex is in $\LW_\nu(Z,L,t)$ if all of its edges are.} \end{itemize} Note that $\LW_\nu(Z,L,t) \subset \LW_\nu(Z,L,t')$ whenever $t\leq t'$, so the lazy witness stream is a filtered simplicial complex. The adjective {\em lazy} refers to the fact that the lazy witness complex is a flag complex: since the 1-skeleton determines all higher dimensional simplices, less computation is involved. \begin{exercise} Let $Z$ be the point cloud in Figure~\ref{fig:housePointCloud} from Section~\ref{SS:euclidean-metric}, corresponding to the house point cloud. Let $L = \{(1,0),(0,3),(-1,0)\}$ be the landmark subset. Let $\nu = 1$. Find by hand the filtration value for the edge between vertices $(1,0)$ and $(0,3)$. Which point or points witness this edge? What is the filtration value for the lone 2-simplex $[(1,0),(0,3),(-1,0)]$? \end{exercise} \begin{exercise} Repeat the above exercise with $\nu = 0$ and with $\nu = 2$. \end{exercise} \begin{exercise} Check that the 1-skeleton of a witness complex $\W(Z,L,t)$ is the same as the 1-skeleton of a lazy witness complex $\LW_2(Z,L,t)$. As a consequence, $\LW_2(Z,L,t)$ is the flag complex of $\W(Z,L,t)$. \end{exercise} {\em 2-sphere example.} The Matlab script corresponding to this example is \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_examples/lazy_witness_example.m}{\texttt{lazy\_witness\_example.m}}. We use parameter $\nu = 1$. \begin{quote} \begin{verbatim} >> max_dimension = 3; >> num_points = 1000; >> num_landmark_points = 50; >> nu = 1; >> num_divisions = 1000; >> point_cloud = examples.PointCloudExamples.getRandomSpherePoints(num_points, ... max_dimension - 1); >> landmark_selector = api.Plex4.createMaxMinSelector(point_cloud, num_landmark_points); \end{verbatim} \end{quote} Often $t_{max}$ is chosen in proportion to \texttt{R}. % Is LazyWitnessStream constructer being added to class api? \begin{quote} \begin{verbatim} >> R = landmark_selector.getMaxDistanceFromPointsToLandmarks() R = 0.3841 % Generally close to 0.38 >> max_filtration_value = 2 * R; >> stream = streams.impl.LazyWitnessStream(landmark_selector.getUnderlyingMetricSpace(), ... landmark_selector, max_dimension, max_filtration_value, nu, num_divisions); >> stream.finalizeStream() >> num_simplices = stream.getSize() num_simplices = 56518 % Generally close to 50000 >> persistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension, 2); >> intervals = persistence.computeIntervals(stream); >> options.filename = 'lazySphere'; >> options.max_filtration_value = max_filtration_value; >> options.max_dimension = max_dimension - 1; >> plot_barcodes(intervals, options); \end{verbatim} \end{quote} The file \texttt{lazySphere.png} is saved to your current directory. \begin{figure}[htp] \begin{center} \includegraphics[width=6in]{lazySphere.png} \end{center} \end{figure} \FloatBarrier \begin{exercise}\label{Ex:flatTorusLazy} In Exercise~\ref{Ex:flatTorus} you created an explicit metric space for 1,000 random points on a flat torus. Build a lazy witness stream on this explicit metric space with 50 landmarks chosen via sequential maxmin and with $\nu = 1$. Confirm the barcodes match the homology of a torus. \end{exercise} \begin{exercise}\label{Ex:flatKleinLazy} In Exercise~\ref{Ex:flatTorus} you created an explicit metric space for 1,000 random points on a flat Klein bottle. Build a lazy witness stream on this explicit metric space with 50 landmarks chosen via sequential maxmin and with $\nu = 1$. Confirm the barcodes match the homology of a Klein bottle, over $\Z/2\Z$ and $\Z/3\Z$ coefficients. \end{exercise} \begin{exercise}\label{Ex:quotProjPlaneLazy} In Exercise~\ref{Ex:quotProjPlane} you created an explicit metric space for 1,000 random points on a projective plane. Build a lazy witness stream on this explicit metric space with 50 landmarks chosen via sequential maxmin and with $\nu = 1$. Confirm the barcodes match the homology of a projective plane, over $\Z/2\Z$ and $\Z/3\Z$ coefficients. \end{exercise} % This exercise was first done by David Eisenbud and Agnes Beadry at MRC. \begin{exercise} Sample points from an embedding of a double torus, that is, a surface of genus two, in $\R^3$. Build a lazy witness stream on this Euclidean metric space. Confirm the barcodes match the homology of a double torus. Choosing suitable parameters will not be easy. \end{exercise} \section{Examples with real data}\label{S:real} We now do two examples with real datasets: a data set of range image patches, and a data set of optical image patches \subsection{Range image patches} The corresponding Matlab script is \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_examples/range_image_example.m}{\texttt{range\_image\_example.m}}, and it relies on the files \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_examples/pointsRange.mat}{\texttt{pointsRange.mat}} and \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_examples/dct.m}{\texttt{dct.m}}. In {\em On the nonlinear statistics of range image patches}~\citep{Range}, we study a space of range image patches drawn from the Brown database~\citep{Mumford}. A range image is like an optical image, except that each pixel contains a distance instead of a grayscale value. Our space contains high-contrast, normalized, $5 \times5$ pixel patches. We write each $5\times5$ patch as a vector with 25 coordinates and think of our patches as point cloud data in $\R^{25}$. We select from this space the 30\% densest vectors, based on a density estimator called $\rho_{300}$ (see Appendix~\ref{A:core}). In~\citet{Range} this dense core subset is denoted $X^5(300,30)$, and it contains 15,000 points. In the next example we verify a result from~\citet{Range}: $X^5(300,30)$ has the topology of a circle. Make sure you are in the directory \texttt{tutorial\_examples} (you may need to enter the command \texttt{cd tutorial\_examples}), and then load the file \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_examples/pointsRange.mat}{\texttt{pointsRange.mat}}. The matrix \texttt{pointsRange} appears in your Matlab workspace. \begin{quote} \begin{verbatim} >> load pointsRange.mat >> size(pointsRange) ans = 15000 25 % 15000 points in dimension 25 \end{verbatim} \end{quote} Matrix \texttt{pointsRange} is in fact $X^5(300,30)$: each of its rows is a vector in $\R^{25}$. Display some of the coordinates of \texttt{pointsRange}. It is not easy to visualize a circle by looking at these coordinates! We pick 50 sequential maxmin landmark points, we find the value of \texttt{R}, and we build the lazy witness stream with parameter $\nu = 1$. \begin{quote} \begin{verbatim} >> max_dimension = 3; >> num_landmark_points = 50; >> nu = 1; >> num_divisions = 1000; >> landmark_selector = api.Plex4.createMaxMinSelector(pointsRange, num_landmark_points); >> R = landmark_selector.getMaxDistanceFromPointsToLandmarks() R = 0.7759 % Generally close to 0.75 >> max_filtration_value = R / 3; >> stream = streams.impl.LazyWitnessStream(landmark_selector.getUnderlyingMetricSpace(), ... landmark_selector, max_dimension, max_filtration_value, nu, num_divisions); >> stream.finalizeStream() >> num_simplices = stream.getSize() num_simplices = 12036 % Generally between 10000 and 25000 >> persistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension, 2); >> intervals = persistence.computeIntervals(stream); >> options.filename = 'lazyRange'; >> options.max_filtration_value = max_filtration_value; >> options.max_dimension = max_dimension - 1; >> plot_barcodes(intervals, options); \end{verbatim} \end{quote} The file \texttt{lazyRange.png} is saved to your current directory. \begin{figure}[htp] \begin{center} \includegraphics[width=6in]{lazyRange.png} \end{center} \caption{Betti intervals for the lazy witness complex built from $X^5(300,30)$} \label{fig:rangeBetti} \end{figure} \FloatBarrier The plots above show that for a long range, the circle Betti numbers $Betti_0 = Betti_1 = 1$ are obtained. Your plot should contain a similar range. This is good evidence that the core subset $X^5(300,30)$ is well-approximated by a circle. Our $5\times 5$ normalized patches are currently in the pixel basis: every coordinate corresponds to the range value at one of the 25 pixels. The Discrete Cosine Transform (DCT) basis is a useful basis for our patches~\citep{Range, Mumford}. We change to this basis in order to plot a projection of the loop evidenced by Figure~\ref{fig:rangeBetti}. The method \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_examples/dct.m}{\texttt{dct.m}} returns the DCT change-of-basis matrix for square patches of size specified by the input parameter. %>> size(pointsRangeDct) %ans = 15000\quad 24 \hspace{30mm} \% 15000 points in DCT basis (representation) \begin{quote} \begin{verbatim} >> pointsRangeDct = pointsRange * dct(5); \end{verbatim} \end{quote} Two of the DCT basis vectors are horizontal and linear gradients. \vspace{-3mm} \begin{figure}[htb] \centering \includegraphics[width=2in]{linearGrad} \end{figure} \vspace{-3mm} \FloatBarrier We plot the projection of \texttt{pointsRangeDct} onto the linear gradient DCT basis vectors. \begin{quote} \begin{verbatim} >> figure >> scatter(pointsRangeDct(:,1), pointsRangeDct(:,5), '.') >> axis square \end{verbatim} \end{quote} \begin{figure}[htp] \begin{center} \subfigure[Projection of $X^5(300,30)$]{\includegraphics[width=3.0in]{r5k300c30}} \quad \subfigure[Range primary circle]{\includegraphics[width=2.9in]{primaryCircle}} \end{center} \end{figure} \FloatBarrier The projection of $X^5(300,30)$ in Figure~(a) shows a circle. It is called the range primary circle and is parameterized as shown in Figure~(b). This dataset is also analyzed using the Nudged Elastic Band (NEB) method and Morse theory in~\citet{adams2015nudged}. \subsection{Optical image patches} The corresponding Matlab script is \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_examples/optical_image_example.m}{\texttt{optical\_image\_example.m}}, and it relies on the files \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_examples/pointsOpticalDct_k300.mat}{\texttt{pointsOpticalDct\_k300.mat}} and \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_examples/pointsOpticalDct_k15.mat}{\texttt{pointsOpticalDct\_k15.mat}}. The optical image database collected by~\citet{VanHaterenVanDerSchaaf} contains black and white digital photographs from a variety of indoor and outdoor scenes. \citet{Mumford} study $3 \times 3$ patches from these images, and~\citet{KleinBottle} continue the analysis of image patches using persistent homology. \citet{KleinBottle} begin with a large collection of high-contrast, normalized $3 \times 3$ pixel patches, each thought of as a point in $\R^9$. They change to the Discrete Cosine Transform (DCT) basis, which maps the patches to the unit sphere $S^7 \subset \R^8$. They select from this space the 30\% densest vectors, based first on the density estimator $\rho_{300}$ (see Appendix~\ref{A:core}), and next based on the density estimator $\rho_{15}$. In~\citet{KleinBottle} these dense core subset are denoted $X(300,30)$ and $X(15,30)$, and they contain 15,000 points. In the next example we verify two results from~\citet{KleinBottle}: $X(300,30)$ has the topology of a circle, and $X(15,30)$ has the topology of a three circle model. Make sure you are in the directory \texttt{tutorial\_examples} (you may need to enter the command \texttt{cd tutorial\_examples}), and then load the file \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_examples/pointsOpticalDct_k300.mat}{\texttt{pointsOpticalDct\_k300.mat}}. The matrix \texttt{pointsOpticalDct\_k300} appears in your Matlab workspace. \begin{quote} \begin{verbatim} >> load pointsOpticalDct_k300.mat >> size(pointsOpticalDct_k300) ans = 15000 8 % 15000 points in dimension 8 \end{verbatim} \end{quote} Matrix \texttt{pointsOpticalDct\_k300} is in fact $X(300,30)$: each of its rows is a vector in $\R^8$. We pick 50 sequential maxmin landmark points, we find the value of \texttt{R}, and we build the lazy witness stream with parameter $\nu = 1$. \begin{quote} \begin{verbatim} >> max_dimension = 3; >> num_landmark_points = 50; >> nu = 1; >> num_divisions = 1000; >> landmark_selector = api.Plex4.createMaxMinSelector(pointsOpticalDct_k300, ... num_landmark_points); >> R = landmark_selector.getMaxDistanceFromPointsToLandmarks() R = 0.5919 >> max_filtration_value = R / 4; >> stream = streams.impl.LazyWitnessStream(landmark_selector.getUnderlyingMetricSpace(), ... landmark_selector, max_dimension, max_filtration_value, nu, num_divisions); >> stream.finalizeStream() >> num_simplices = stream.getSize() num_simplices = 2351 >> persistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension, 2); >> intervals = persistence.computeIntervals(stream); >> options.filename = 'lazyOpticalDct-k300'; >> options.max_filtration_value = max_filtration_value; >> options.max_dimension = max_dimension - 1; >> plot_barcodes(intervals, options); \end{verbatim} \end{quote} The file \texttt{lazyOpticalDct-k300.png} is saved to your current directory. \begin{figure}[htp] \begin{center} \includegraphics[width=6in]{lazyOpticalDct-k300.png} \end{center} \caption{Betti intervals for the lazy witness complex built from $X(300,30)$} \label{fig:rangeBetti} \end{figure} \FloatBarrier The plots above show that for a long range, the circle Betti numbers $Betti_0 = Betti_1 = 1$ are obtained. Your plot should contain a similar range. This is good evidence that the core subset $X(300,30)$ is well-approximated by a circle. We plot the projection of \texttt{pointsOpticalDct\_k300} onto the linear gradient DCT basis vectors. \begin{quote} \begin{verbatim} >> figure >> scatter(pointsOpticalDct_k300(:,1), pointsOpticalDct_k300(:,2), '.') >> axis square \end{verbatim} \end{quote} \begin{figure}[htp] \begin{center} \subfigure[Projection of $X(300,30)$]{\includegraphics[width=3.0in]{nk300c30}} \quad \subfigure[Optical primary circle]{\includegraphics[width=2.9in]{primaryCircle}} \end{center} \end{figure} \FloatBarrier The projection of $X(300,30)$ in Figure~(a) shows a circle. It is called the optical primary circle and is parameterized as shown in Figure~(b). We next analyze the core subset $X(15,30)$. Load the file \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_examples/pointsOpticalDct_k15.mat}{\texttt{pointsOpticalDct\_k15.mat}}. The matrix \texttt{pointsOpticalDct\_k15} appears in your Matlab workspace. \begin{quote} \begin{verbatim} >> load pointsOpticalDct_k15.mat >> size(pointsOpticalDct_k15) ans = 15000 8 % 15000 points in dimension 8 \end{verbatim} \end{quote} Matrix \texttt{pointsOpticalDct\_k15} is in fact $X(15,30)$: each of its rows is a vector in $\R^8$. We pick 50 sequential maxmin landmark points, we find the value of \texttt{R}, and we build the lazy witness stream with parameter $\nu = 1$. \begin{quote} \begin{verbatim} >> max_dimension = 3; >> num_landmark_points = 50; >> nu = 1; >> num_divisions = 1000; >> landmark_selector = api.Plex4.createMaxMinSelector(pointsOpticalDct_k15, ... num_landmark_points); >> R = landmark_selector.getMaxDistanceFromPointsToLandmarks() R = 0.6554 >> max_filtration_value = R / 4; >> stream = streams.impl.LazyWitnessStream(landmark_selector.getUnderlyingMetricSpace(), ... landmark_selector, max_dimension, max_filtration_value, nu, num_divisions); >> stream.finalizeStream() >> num_simplices = stream.getSize() num_simplices = 1570 >> persistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension, 2); >> intervals = persistence.computeIntervals(stream); >> options.filename = 'lazyOpticalDct-k15'; >> options.max_filtration_value = max_filtration_value; >> options.max_dimension = max_dimension - 1; >> plot_barcodes(intervals, options); \end{verbatim} \end{quote} The file \texttt{lazyOpticalDct-k15.png} is saved to your current directory. \begin{figure}[htp] \begin{center} \includegraphics[width=6in]{lazyOpticalDct-k15.png} \end{center} \caption{Betti intervals for the lazy witness complex built from $X(15,30)$} \label{fig:rangeBetti} \end{figure} \FloatBarrier The plots above show that for a long range, the Betti numbers $Betti_0 = 1$ and $Betti_1 = 5$ are obtained. Your plot should contain a similar range. This is good evidence that the core subset $X(15,30)$ is well-approximated by a connected space with five loops. We plot the projection of \texttt{pointsOpticalDct\_k300} onto the linear gradient DCT basis vectors. \begin{quote} \begin{verbatim} >> figure >> scatter(pointsOpticalDct_k15(:,1), pointsOpticalDct_k15(:,2), '.') >> axis square \end{verbatim} \end{quote} \begin{figure}[htp] \begin{center} \subfigure[Projection of $X(15,30)$]{\includegraphics[width=3.0in]{nk15c30}} \quad \subfigure[Three circle model]{\includegraphics[width=2.9in]{threeCircle}} \end{center} \end{figure} \FloatBarrier Figure~(a) shows a projection of $X(15,30)$. The space $X(15,30)$ is parameterized by the three circle model shown in Figure~(b). The solid outer circle in the three circle model is the primary circle and contains linear gradients. The dotted and dashed inner circles are the horizontal and vertical secondary circles which contain quadratic gradients. Each secondary circle intersects the primary circle twice, but the secondary circles do not intersect each other; this results in a connected space with $Betti_1 = 5$. The primary circle reflects nature's preference for linear gradients in all directions, and the secondary circles reflect nature's preference for the horizontal and vertical directions. \subsection{Cyclo-octane molecule conformations} The corresponding Matlab script is \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_examples/cyclo_octane_example.m}{\texttt{cyclo\_octane\_example.m}}, and it relies on the file \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_examples/pointsCycloOctane.mat}{\texttt{pointsCycloOctane.mat}}. The cyclo-octane molecule $\cyclo$ consists of a ring of 8 carbons atoms, each bonded to a pair of hydrogen atoms (Figure~\ref{fig:cyclo}). A conformation of this molecule is a chemically and physically possible realization in 3D space, modulo translations and rotations. The locations of the carbon atoms in a conformation determine the locations of the hydrogen atoms via energy minimization, and hence each molecule conformation can be mapped to a point in $\R^{24}=\R^{8\cdot 3}$, as there are eight carbon atoms in the molecule and each carbon location is represented by three coordinates $x,y,z$. This map realizes the conformation space of cyclo-octane as a subset of $\R^{24}$. It turns out that the conformation space is a two-dimensional stratified space, i.e.\ a two-dimensional manifold with singularities. Furthermore,~\citet{brown2008algorithmic},~\citet{martin2010topology}, and~\citet{martin2011non} show that the conformation space of cyclo-octane is the union of a sphere with a Klein bottle, glued together along two circles of singularities (see Figures~7 and 8 in~\citet{martin2011non}). Indeed, the algorithm they develop allows them to triangulate this conformation space from a finite sample. \begin{figure}[htp] \begin{center} \includegraphics[width=2in]{Cyclooctane-boat-chair-3D-balls.png} \end{center} \caption{The cyclo-octane molecule consists of a ring of 8 carbon atoms (black), each bonded to a pair of hydrogen atoms (white).} \label{fig:cyclo} \end{figure} \citet{zomorodian2012advances} uses the cyclo-octane dataset as an example to show that we can efficiently recover the homology groups of the conformation space using persistent homology. In this section we essentially follow Zomorodian's example. We begin with a sample of 6,040 points on the conformation space (this data is publicly available at Shawn Martin's webpage \url{http://www.sandia.gov/~smartin/software.html}) and compute the resulting persistent homology. We obtain the Betti numbers $Betti_0 = Betti_1 = 1$ and $Betti_2 = 2$, which match the homology groups of the union of a sphere with a Klein bottle, glued together along two circles of singularities. Make sure you are in the directory \texttt{tutorial\_examples} (you may need to enter the command \texttt{cd tutorial\_examples}), and then load the file \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_examples/pointsCycloOctane.mat}{\texttt{pointsCycloOctane.mat}}. The matrix \texttt{pointsCycloOctane} appears in your Matlab workspace. \begin{quote} \begin{verbatim} >> load pointsCycloOctane.mat >> size(pointsCycloOctane) ans = 6040 24 % 6040 points in dimension 24 \end{verbatim} \end{quote} Matrix \texttt{pointsCycloOctane} is a sample of 6,040 points from the cyclo-octane conformation space: each of its rows is a vector in $\R^{24}$. We pick 100 sequential maxmin landmark points, and we build the lazy witness stream with parameter $\nu = 1$. \begin{quote} \begin{verbatim} >> max_dimension = 3; >> num_landmark_points = 100; >> max_filtration_value = 0.5; >> nu = 1; >> num_divisions = 1000; >> landmark_selector = api.Plex4.createMaxMinSelector(pointsCycloOctane, ... num_landmark_points); >> R = landmark_selector.getMaxDistanceFromPointsToLandmarks() R = 0.8046 >> stream = streams.impl.LazyWitnessStream(landmark_selector.getUnderlyingMetricSpace(), ... landmark_selector, max_dimension, max_filtration_value, nu, num_divisions); >> stream.finalizeStream() >> num_simplices = stream.getSize() num_simplices = 8025 >> persistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension, 2); >> intervals = persistence.computeIntervals(stream); >> options.filename = 'lazyCycloOctane'; >> options.max_filtration_value = max_filtration_value; >> options.max_dimension = max_dimension - 1; >> plot_barcodes(intervals, options); \end{verbatim} \end{quote} The file \texttt{lazyCycloOctane.png} is saved to your current directory. \begin{figure}[htp] \begin{center} \includegraphics[width=6in]{lazyCycloOctane.png} \end{center} \caption{Betti intervals for the lazy witness complex built from $X(300,30)$} \label{fig:rangeBetti} \end{figure} \FloatBarrier The plots above show that for a long range, the Betti numbers $Betti_0 = Betti_1 = 1$ and $Betti_2 = 2$ are obtained, which matches the homology of the union of a sphere with a Klein bottle, glued together along two circles of singularities. \section{Remarks} \subsection{Java heap size}\label{SS:java-heap-size} Depending on the size of your Javaplex computations, you may need to increase the maximum Java heap size. This should not be necessary for the examples in this tutorial. The following command returns your maximum heap size in bytes. \begin{quote} \texttt{>> java.lang.Runtime.getRuntime.maxMemory\\ ans = 130875392 } \end{quote} My Matlab installation sets the limit to approximately 128 megabytes by default. To increase your limit to, say, 1.5 gigabytes, create a file named \texttt{java.opts} in your Matlab directory which contains the text \texttt{-Xmx1500m} and then restart Matlab. For more information, please see this link: \url{http://www.mathworks.com/support/solutions/en/data/1-18I2C/}. \subsection{Matlab functions with Javaplex commands}\label{SS:matlabFunctions} Writing Matlab functions is very useful. In order to include Javaplex commands in an m-file function, include the command \texttt{import edu.stanford.math.plex4.*;} as the second line of the function --- that is, as the first line underneath the function header. We include the m-file \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_examples/eulerCharacteristic.m}{\texttt{eulerCharacteristic.m}} as an example Matlab function. {\em Euler characteristic example.} The corresponding Matlab script is \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_examples/euler_characteristic_example.m}{\texttt{euler\_characteristic\_example.m}}, and it relies on the file \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_examples/eulerCharacteristic.m}{\texttt{eulerCharacteristic.m}}. First we create a 6-dimensional sphere. \begin{quote} \begin{verbatim} >> dimension = 6; >> stream = api.Plex4.createExplicitSimplexStream(); >> stream.addElement(0:(dimension + 1)); >> stream.ensureAllFaces(); >> stream.removeElementIfPresent(0:(dimension + 1)); >> stream.finalizeStream(); \end{verbatim} \end{quote} The function \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_examples/eulerCharacteristic.m}{\texttt{eulerCharacteristic.m}} accepts an explicit simplex stream and its dimension as input. The function demonstrates two different methods for computing the Euler characteristic. \begin{quote} \begin{verbatim} >> eulerCharacteristic(stream, dimension) The Euler characteristic is 2 = 8 - 28 + 56 - 70 + 56 - 28 + 8, using the alternating sum of cells. The Euler characteristic is 2 = 1 - 0 + 0 - 0 + 0 - 0 + 1, using the alternating sum of Betti numbers. \end{verbatim} \end{quote} \subsection{Displaying the simplices in a stream} It is possible to display the simplices in a stream, along with their filtration values. You can also obtain the vertices of each simplex as a Matlab matrix. For an example of how to do this, please see the file \href{https://github.com/appliedtopology/javaplex/blob/master/src/matlab/for_distribution/basic_examples/dump_example.m}{\texttt{dump\_example.m}} in the folder \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/basic_examples}{\texttt{basic\_examples}}. \subsection{Displaying the boundary matrix of a homology computation} It is possible to display the boundary matrix of a homology computation. For an example of how to do this, please see the file \href{https://github.com/appliedtopology/javaplex/blob/master/src/matlab/for_distribution/basic_examples/boundary_extraction_example.m}{\texttt{boundary\_extraction\_example.m}} in the folder \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/basic_examples}{\texttt{basic\_examples}}. \subsection{Computing the bottleneck distance} It is possible to compute the bottleneck distance between two barcodes. For an example of how to do this, please see the file \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_examples/bottleneck_distance_example.m}{\texttt{bottleneck\_distance\_example.m}} in the folder \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_examples}{\texttt{tutorial\_examples}}. \subsection{Computing sublevelset persistence} It is possible to use Javaplex to compute the sublevelset persistence of a function defined, for example, on a 2-dimensional grid. For an example of how to do this, please see the file \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_examples/sublevelset\_example.m}{\texttt{sublevelset\_example.m}}, which relies on the file \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_examples/sublevelset\_persistence.m}{\texttt{sublevelset\_persistence.m}}, both in the folder \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_examples}{\texttt{tutorial\_examples}}. %\subsection{Java heap size} %Depending on the size of your Javaplex computations, you may need to increase the maximum Java heap size. This should not be necessary for the examples in this tutorial. %The following command returns your maximum heap size in bytes. %\begin{quote} \begin{verbatim} %>> java.lang.Runtime.getRuntime.maxMemory %ans = 130875392 %\end{verbatim} \end{quote} %My computer has a heap limit of approximately 128 megabytes. To increase your limit to, say, 256 megabytes, create a file named \texttt{java.opts} in your Matlab directory which contains the text \texttt{-Xmx256m} and then restart Matlab. %\subsection{From Java variables to Matlab variables} %Some Javaplex commands return Java variables, when instead one might want output in the form of a Matlab variable, such as a matrix of numbers. One way to transform Java variables into Matlab variables is by using an m-file. For instance, in Section ?? %\ref{S:explicitStream} % no %we used the m-file \texttt{interval2mat.m} to take an array of type PersistenceInterval into a Matlab matrix. Similarly, the m-file \texttt{betti2mat.m} accepts input of type \texttt{Plex.BettiNumbers} and returns a Matlab vector of integers. These commands are typically used as shown below, where \texttt{intervals} is an array of type PersistenceInterval. %\begin{quote} \begin{verbatim} intervalMatrix = interval2mat(intervals); %>> bettiVect = betti2vect(Plex.FilterInfinite(intervals)); %\end{verbatim} \end{quote} \section{Acknowledgements} We would like to thank the authors of~\citet{brown2008algorithmic},~\citet{martin2010topology}, and~\citet{martin2011non} for allowing us to use the cyclo-octane dataset in this tutorial. \appendix \appendixpage \addappheadtotoc \section{Dense core subsets}\label{A:core} A core subset of a dataset is a collection of the densest points, such as $X^5(300,30)$ in Section~\ref{S:real}. Since there are many density estimators, and since we can choose any number of the densest points, a dataset has a variety of core subsets. In this appendix we discuss how to create core subsets. Real datasets can be very noisy, and outlier points can significantly alter the computed topology. Therefore, instead of trying to approximate the topology of an entire dataset, we often proceed as follows. We create a family of core subsets and identify their topologies. Looking at a variety of core subsets can give a good picture of the entire dataset. See~\citet{KleinBottle} and~\citet{WitnessComplexes} for an example using multiple core subsets. The dataset contains high-contrast patches from natural images. The authors use three density estimators. As they change from the most global to the most local density estimate, the topologies of the core subsets change from a circle, to three intersecting circles, to a Klein bottle. One way to estimate the density of a point $z$ in a point cloud $Z$ is as follows. Let $\rho_k(z)$ be the distance from $z$ to its $k$-th closest neighbor. Let the density estimate at $z$ be $\frac{1}{\rho_k(z)}$. Varying parameter $k$ gives a family of density estimates. Using a small value for $k$ gives a local density estimate, and using a larger value for $k$ gives a more global estimate. For Euclidean datasets, one can use the m-file \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_examples/kDensitySlow.m}{\texttt{kDensitySlow.m}} to produce density estimates $\frac{1}{\rho_k}$. The following command is typical. \begin{quote} \begin{verbatim} >> densities = kDensitySlow(points, k); \end{verbatim} \end{quote} Input \texttt{points} is an $N\times n$ matrix of $N$ points in $\R^n$. Input $k$ is the density estimate parameter. Output \texttt{densities} is a vertical vertex of length $N$ containing the density estimate at each point. M-file \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_examples/coreSubset.m}{\texttt{coreSubset.m}} builds a core subset. The following command is typical. \begin{quote} \begin{verbatim} >> core = coreSubset(points, densities, numPoints); \end{verbatim} \end{quote} Inputs \texttt{points} and \texttt{densities} are as above. Output \texttt{core} is a $\texttt{numPoints}\times n$ matrix representing the \texttt{numPoints} densest points. {\em Prime numbers example.} The Matlab script corresponding to this example is \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_examples/core_subsets_example.m}{\texttt{core\_subsets\_example.m}}. The command \texttt{primes(3571)} returns a vector listing all prime numbers less than or equal to 3571, which is the 500-th prime. We think of these primes as points in $\R$ and build the core subset of the 10 densest points with density parameter $k = 1$. \begin{quote} \begin{verbatim} >> p = primes(3571)'; >> length(p) ans = 500 >> densities1 = kDensitySlow(p, 1); >> core1 = coreSubset(p, densities1, 10) core1 = 2 3 5 7 11 13 17 19 29 31 \end{verbatim} \end{quote} We get a bunch of twin primes, which makes sense since $k = 1$. Let's repeat with $k = 50$. \begin{quote} \begin{verbatim} >> densities50 = kDensitySlow(p, 50); >> core50 = coreSubset(p, densities50, 10) core50 = 113 127 109 131 107 137 139 157 149 151 \end{verbatim} \end{quote} With $k = 50$, we expect the densest points to be slightly larger than the 25-th prime, which is 97. {\em Note:} As its name suggests, the m-file \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_examples/kDensitySlow.m}{\texttt{kDensitySlow.m}} is not the most efficient way to calculate $\rho_k$ for large datasets. There is a faster file \texttt{kDensity.m} for this purpose, which uses the kd-tree data structure. It is not included in the tutorial because it requires one to download a kd-tree package for Matlab, available at \url{http://www.mathworks.com/matlabcentral/fileexchange/21512-kd-tree-for-matlab}. Please email Henry at \texttt{henry.adams@colostate.edu} if you're interested in using \texttt{kDensity.m}. % What are the differences in timings between fast and slow versions? % It seems that k=300 is surprisingly slow with kDensity.m: 1108 seconds. Slower than kDensitySlow.m. Double check? %I typically use the m-file \texttt{kDensitySlow.m} on datasets of around 50,000 points (for instance, $X^5(300,30)$ in Section~\ref{S:real} is the 30\% densest points from a set of size 50,000, using the density estimate $\rho_{300}$). This computation takes about 10 minutes on my MacBook, which is much longer than any of the computations I do using the JPlex software. % Elapsed time is 432.024880 seconds, 7-17-09. This was effectively kDensitySlow.m, I think \section{Exercise solutions}\label{A:solutions} Several exercise solutions are accompanied by Matlab scripts, which are available in the folder \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_solutions}{\texttt{tutorial\_solutions}}. \begin{exerciseSol} Build the following simplicial complex in Javaplex. \begin{center} \includegraphics[width=2in]{smallSimplicialComplex.png} \end{center} Compute its Betti numbers (i.e.\ the ranks of its homology groups, or the number of holes it has in each dimension). \end{exerciseSol} \begin{solution} See the Matlab script \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_solutions/exercise_1.m}{\texttt{exercise\_1.m}} in folder \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_solutions}{\texttt{tutorial\_solutions}} for a solution. You should compute $Betti_0=1$, i.e.\ one connected component, and $Betti_2=1$, i.e.\ two 1-dimensional holes. \end{solution} \begin{exerciseSol} Build a simplicial complex homeomorphic to the torus. Compute its Betti numbers. {\em Hint: You will need at least 7 vertices}~\citep[page 107]{Hatcher}{\em . We recommend using a $3\times 3$ grid of 9 vertices.} \end{exerciseSol} \begin{solution} See the Matlab script \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_solutions/exercise_2.m}{\texttt{exercise\_2.m}} in folder \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_solutions}{\texttt{tutorial\_solutions}} for a solution. We use 9 vertices, which we think of as a $3 \times 3$ grid numbered as a telephone keypad. We identify opposite sides. \end{solution} \begin{figure}[htp] \begin{center} \includegraphics[width=2.5in]{torus} \end{center} \end{figure} \FloatBarrier \begin{exerciseSol} Build a simplicial complex homeomorphic to the Klein bottle. Check that it has the same Betti numbers as the torus over $\Z/2\Z$ coefficients but different Betti numbers over $\Z/3\Z$ coefficients. \end{exerciseSol} \begin{solution} See the Matlab script \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_solutions/exercise_3.m}{\texttt{exercise\_3.m}} for a solution. We use 9 vertices, which we think of as a $3 \times 3$ grid numbered as a telephone keypad. We identify opposite sides, with left and right sides identified with a twist. \end{solution} \begin{figure}[htp] \begin{center} \includegraphics[width=2.5in]{klein} \end{center} \end{figure} \FloatBarrier \begin{exerciseSol} Build a simplicial complex homeomorphic to the projective plane. Find its Betti numbers over $\Z/2\Z$ and $\Z/3\Z$ coefficients. \end{exerciseSol} \begin{solution} See the Matlab script \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_solutions/exercise_4.m}{\texttt{exercise\_4.m}} for a solution. We use the minimal triangulation for the projective plane, which contains 6 vertices. \end{solution} \begin{figure}[htp] \begin{center} \includegraphics[width=2.5in]{projPlane} \end{center} \end{figure} \FloatBarrier \begin{exerciseSol} Write a Matlab script or function that selects 1,000 random points from the square $[0, 1] \times [0, 1]$ and then computes the 1,000 $\times$ 1,000 distance matrix for these points under the induced metric on the flat torus. Create an explicit metric space from this distance matrix. \end{exerciseSol} \begin{solution} See the Matlab script \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_solutions/exercise_5.m}{\texttt{exercise\_5.m}} and the Matlab function \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_solutions/flatTorusDistanceMatrix.m}{\texttt{flatTorusDistanceMatrix.m}} for a solution. \end{solution} \begin{exerciseSol} Write a Matlab script or function that selects 1,000 random points from the square $[0, 1] \times [0, 1]$ and then computes the 1,000 $\times$ 1,000 distance matrix for these points under the induced metric on the flat Klein bottle. Create an explicit metric space from this distance matrix. \end{exerciseSol} \begin{solution} See the Matlab script \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_solutions/exercise_6.m}{\texttt{exercise\_6.m}} and the Matlab function \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_solutions/flatKleinDistanceMatrix.m}{\texttt{flatKleinDistanceMatrix.m}} for a solution. \end{solution} \begin{exerciseSol} Write a Matlab script or function that selects 1,000 random points from the unit sphere $S^2 \subset \R^3$ and then computes the 1,000 $\times$ 1,000 distance matrix for these points under the induced metric on the projective plane. Create an explicit metric space from this distance matrix. \end{exerciseSol} \begin{solution} See the Matlab script \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_solutions/exercise_7.m}{\texttt{exercise\_7.m}} and the Matlab function \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_solutions/projPlaneDistanceMatrix.m}{\texttt{projPlaneDistanceMatrix.m}} for a solution. \end{solution} \begin{exerciseSol} Compute the persistent homology of the Vietoris--Rips complex of the collection of points $\{(-1,0),(1,0),(-1,2),(1,2),(0,3),(4,0),(4,2)\}$ in the plane (i.e.\ a house with a garage). Perturb the points with a small amount of noise. Do the barcodes change a lot or only a little? \end{exerciseSol} \begin{solution} See the Matlab script \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_solutions/exercise_8.m}{\texttt{exercise\_8.m}} for a solution. When a small amount of noise is added, the barcodes should only change by a little bit. This is due to the stability theorem in~\citet{ChazalDeSilvaOudot2013}. \end{solution} \begin{exerciseSol} Compute the persistent homology of the Vietoris--Rips complex of 75 points randomly sampled from a ``figure 8" space. You can get these points using the following command: \begin{verbatim} >> point_cloud = examples.PointCloudExamples.getRandomFigure8Points(75); \end{verbatim} We suggest including simplices up to dimension 3, and setting the max filtration value to be 1.1. Does the persistent homology agree with what you would expect? \end{exerciseSol} \begin{solution} See the Matlab script \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_solutions/exercise_9.m}{\texttt{exercise\_9.m}} for a solution. \end{solution} \begin{exerciseSol} In the torus example, increase the values for $t_{max}$, $d_{max}$ and note how quickly the size of the Vietoris--Rips stream and the time of computation grow. Either increasing $t_{max}$ from 0.9 to 1 or increasing $d_{max}$ from 3 to 4 roughly doubles the size of the Vietoris--Rips stream. \end{exerciseSol} \begin{solution} No solution included. \end{solution} \begin{exerciseSol} Write a Matlab script that will select $n$ even-spaced points from the unit circle in the plane. Compute the persistent homology of the Vietoris--Rips complex of 4 points, 6, 9, 12, 15 points, and 20 equally spaced points. We suggest including simplices up to dimension 4 to start. Do you ever get homology in dimension above 1? \end{exerciseSol} \begin{solution} See the Matlab script \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_solutions/exercise_11.m}{\texttt{exercise\_11.m}} for a solution. Homology above dimension 1 does appear; this and more is explained in the papers~\citep{Adamaszek2013,AAFPP-J,AA-VRS1,AAM}. \end{solution} \begin{exerciseSol} Find a planar dataset $Z \subset \R^2$ and a filtration value $t$ such that $\VR(Z,t)$ has nonzero $Betti_2$. Build a Vietoris--Rips stream to confirm your answer. \end{exerciseSol} \begin{solution} See the Matlab script \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_solutions/exercise_12.m}{\texttt{exercise\_12.m}} for a solution. Our planar dataset is 6 evenly spaced points on the unit circle. We build a Vietoris--Rips stream which, at the correct filtration value, is an octahedron. It is also the boundary of the 3-dimensional cross-polytope on 6 vertices. \end{solution} \begin{exerciseSol} Find a planar dataset $Z \subset \R^2$ and a filtration value $t$ such that $\VR(Z,t)$ has nonzero $Betti_6$. When building a Vietoris--Rips stream to confirm your answer, don't forget to choose $d_{max} = 7$. \end{exerciseSol} \begin{solution} See the Matlab script \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_solutions/exercise_13.m}{\texttt{exercise\_13.m}} for a solution. Our planar dataset is 14 evenly spaced points on the unit circle. We build a Vietoris--Rips stream which, at the correct filtration value, is homeomorphic to the 6-sphere. It is also the boundary of the 7-dimensional cross-polytope on 14 vertices. It has 14 vertices because it is obtained by suspending the 0-sphere six times, for a total of $2 + (6 \times 2) = 14$ vertices. \end{solution} \begin{exerciseSol} Let $X$ be 8 vertices of the cube in $\R^3$: $X=\{(\pm1, \pm1, \pm1)\}$. Equip $X$ with the Euclidean metric. Compute the persistent homology of the Vietoris--Rips complex of $X$. Include simplices up to dimension 7 (i.e.\ all possible simplices). Do you get ever homology above dimension 2? \end{exerciseSol} \begin{solution} See the Matlab script \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_solutions/exercise_14.m}{\texttt{exercise\_14.m}} for a solution. The 3-dimensional homology appears because for a range of scales, this Vietors--Rips complex is isomorphic to a 3-sphere, in fact the boundary of the 4-dimensional cross-polytope on 8 vertices. \end{solution} \begin{exerciseSol} Let $Z$ be the point cloud in Figure~\ref{fig:housePointCloud} from Section~\ref{SS:euclidean-metric}, corresponding to the house point cloud. Suppose we are using sequential maxmin to select a set $L$ of 3 landmarks, and the first (randomly selected) landmark is $(1,0)$. Find by hand the other two landmarks in $L$. \end{exerciseSol} \begin{solution} $L$ is the set $\{(1, 0), (0, 3), (-1, 0)\}$. \end{solution} \begin{exerciseSol} Let $Z$ be a point cloud and $L$ a landmark subset. Show that if $L$ is chosen via sequential maxmin, then for any $l_i,l_j\in L$, we have $d(l_i,l_j)\geq\texttt{R}$. \end{exerciseSol} \begin{solution} Without loss of generality, assume that $i < j$ and that landmarks $l_i$ and $l_j$ were the $i$-th and $j$-th landmarks selected by the inductive sequential maxmin process. Let $L_{j-1}$ be the first $j - 1$ landmarks chosen. We proceed using a proof by contradiction. Suppose that $d(l_i, l_j) < \texttt{R}$. By definition of \texttt{R}, there exists a $z \in Z$ such that $d(z,L) = \texttt{R}$. Note that $$d(l_j, L_{j-1}) \leq d(l_j, l_i) = d(l_i, l_j) < \texttt{R} = d(z,L) \leq d(z, L_{j-1}).$$ This contradicts the fact that landmark $l_j$ was chosen at the $j$-th step of sequential maxmin. Hence, it must be the case that $d(l_i, l_j) \geq \texttt{R}$. \end{solution} \begin{exerciseSol} Let $Z$ be the point cloud in Figure~\ref{fig:housePointCloud} from Section~\ref{SS:euclidean-metric}, corresponding to the house point cloud. Let $L = \{(1,0),(0,3),(-1,0)\}$ be the landmark subset. Find by hand the filtration value for the edge between vertices $(1,0)$ and $(0,3)$. Which point or points witness this edge? What is the filtration value for the lone 2-simplex $[(1,0),(0,3),(-1,0)]$? \end{exerciseSol} \begin{solution} Since $m_1$ is the distance from a point to its second closest landmark, we have $m_1((\pm1,0))=2=m_1((\pm1,2))$ and $m_1((0,3))=\sqrt{10}$. It follows that the edge between $(1,0)$ and $(0,3)$ has filtration value zero, and that points $(1,2)$ and $(0,3)$ are both witness for this edge at filtration value zero. Since $m_2$ is the distance from a point to its third closest landmark, we have $m_2((\pm1,0))=\sqrt{10}=m_2((0,3))$ and $m_2((\pm1,2))=2\sqrt{2}$. It follows that the lone 2-simplex has filtration value zero, and that all five points of $Z$ are witnesses for this 2-simplex at filtration value zero. \end{solution} \begin{exerciseSol} Let $Z$ be the point cloud in Figure~\ref{fig:housePointCloud} from Section~\ref{SS:euclidean-metric}, corresponding to the house point cloud. Let $L = \{(1,0),(0,3),(-1,0)\}$ be the landmark subset. Let $\nu = 1$. Find by hand the filtration value for the edge between vertices $(1,0)$ and $(0,3)$. Which point or points witness this edge? What is the filtration value for the lone 2-simplex $[(1,0),(0,3),(-1,0)]$? \end{exerciseSol} \begin{solution} The edge between $(1, 0)$ and $(0, 3)$ has filtration value $2-\sqrt{2}$. Point $(1, 2)$ witnesses this edge. The lone 2-simplex has filtration value $\sqrt{2}$, which is when the edge between $(1, 0)$ and $(-1, 0)$ appears. \end{solution} \begin{exerciseSol} Repeat the above exercise with $\nu = 0$ and with $\nu = 2$. \end{exerciseSol} \begin{solution} First we do the case when $\nu = 0$. The edge between $(1, 0)$ and $(0, 3)$ has filtration value 2. Point $(1, 2)$ witnesses this edge. The lone 2-simplex has filtration value 2. Next we do the case when $\nu = 2$. The edge between $(1, 0)$ and $(0, 3)$ has filtration value zero. Points $(1, 2)$ or $(0, 3)$ witness this edge. The lone 2-simplex has filtration value zero. \end{solution} \begin{exerciseSol} Check that the 1-skeleton of a witness complex $\W(Z,L,t)$ is the same as the 1-skeleton of a lazy witness complex $\LW_2(Z,L,t)$. As a consequence, $\LW_2(Z,L,t)$ is the flag complex of $\W(Z,L,t)$. \end{exerciseSol} \begin{solution} This follows from the definition of the witness stream and the definition of the lazy witness stream for $\nu = 2$. \end{solution} \begin{exerciseSol} In Exercise~\ref{Ex:flatTorus} you created an explicit metric space for 1,000 random points on a flat torus. Build a lazy witness stream on this explicit metric space with 50 landmarks chosen via sequential maxmin and with $\nu = 1$. Confirm the barcodes match the homology of a torus. \end{exerciseSol} \begin{solution} See the Matlab script \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_solutions/exercise_21.m}{\texttt{exercise\_21.m}} and the Matlab function \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_solutions/flatTorusDistanceMatrix.m}{\texttt{flatTorusDistanceMatrix.m}} for a solution. \end{solution} \begin{exerciseSol} In Exercise~\ref{Ex:flatKlein} you created an explicit metric space for 1,000 random points on a flat Klein bottle. Build a lazy witness stream on this explicit metric space with 50 landmarks chosen via sequential maxmin and with $\nu = 1$. Confirm the barcodes match the homology of a Klein bottle, over $\Z/2\Z$ and $\Z/3\Z$ coefficients. \end{exerciseSol} \begin{solution} See the Matlab script \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_solutions/exercise_22.m}{\texttt{exercise\_22.m}} and the Matlab function \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_solutions/flatKleinDistanceMatrix.m}{\texttt{flatKleinDistanceMatrix.m}} for a solution. \end{solution} \begin{exerciseSol} In Exercise~\ref{Ex:quotProjPlane} you created an explicit metric space for 1,000 random points on a projective plane. Build a lazy witness stream on this explicit metric space with 50 landmarks chosen via sequential maxmin and with $\nu = 1$. Confirm the barcodes match the homology of a projective plane, over $\Z/2\Z$ and $\Z/3\Z$ coefficients. \end{exerciseSol} \begin{solution} See the Matlab script \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_solutions/exercise_23.m}{\texttt{exercise\_23.m}} and the Matlab function \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_solutions/projPlaneDistanceMatrix.m}{\texttt{projPlaneDistanceMatrix.m}} for a solution. \end{solution} \begin{exerciseSol} Sample points from an embedding of a double torus, that is, a surface of genus two, in $\R^3$. Build a lazy witness stream on this Euclidean metric space. Confirm the barcodes match the homology of a double torus. Choosing suitable parameters will not be easy. \end{exerciseSol} \begin{solution} See the Matlab script \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_solutions/exercise_24.m}{\texttt{exercise\_24.m}} and the Matlab function \href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_solutions/getDoubleTorusPoints.m}{\texttt{getDoubleTorusPoints.m}}. Thanks to Ulrich Bauer for this solution. \end{solution} \bibliographystyle{abbrvnat} \bibliography{javaplex_tutorial} \end{document} ================================================ FILE: reports/javaplex_tutorial/javaplex_tutorial.toc ================================================ \contentsline {section}{\tocsection {}{1}{Introduction}}{2}{section.1} \contentsline {subsection}{\tocsubsection {}{1.1}{Javaplex}}{2}{subsection.1.1} \contentsline {subsection}{\tocsubsection {}{1.2}{License}}{2}{subsection.1.2} \contentsline {subsection}{\tocsubsection {}{1.3}{Installation for Matlab}}{2}{subsection.1.3} \contentsline {subsection}{\tocsubsection {}{1.4}{Accompanying files}}{3}{subsection.1.4} \contentsline {section}{\tocsection {}{2}{Math review}}{3}{section.2} \contentsline {subsection}{\tocsubsection {}{2.1}{Simplicial complexes}}{3}{subsection.2.1} \contentsline {subsection}{\tocsubsection {}{2.2}{Homology}}{3}{subsection.2.2} \contentsline {subsection}{\tocsubsection {}{2.3}{Filtered simplicial complexes}}{3}{subsection.2.3} \contentsline {subsection}{\tocsubsection {}{2.4}{Persistent homology}}{3}{subsection.2.4} \contentsline {section}{\tocsection {}{3}{Explicit simplex streams}}{4}{section.3} \contentsline {subsection}{\tocsubsection {}{3.1}{Computing homology}}{4}{subsection.3.1} \contentsline {subsection}{\tocsubsection {}{3.2}{Computing persistent homology}}{6}{subsection.3.2} \contentsline {section}{\tocsection {}{4}{Point cloud data}}{10}{section.4} \contentsline {subsection}{\tocsubsection {}{4.1}{Euclidean metric spaces}}{10}{subsection.4.1} \contentsline {subsection}{\tocsubsection {}{4.2}{Explicit metric spaces}}{11}{subsection.4.2} \contentsline {section}{\tocsection {}{5}{Streams from point cloud data}}{13}{section.5} \contentsline {subsection}{\tocsubsection {}{5.1}{Vietoris--Rips streams}}{13}{subsection.5.1} \contentsline {subsection}{\tocsubsection {}{5.2}{Landmark selection}}{17}{subsection.5.2} \contentsline {subsection}{\tocsubsection {}{5.3}{Witness streams}}{19}{subsection.5.3} \contentsline {subsection}{\tocsubsection {}{5.4}{Lazy witness streams}}{21}{subsection.5.4} \contentsline {section}{\tocsection {}{6}{Examples with real data}}{23}{section.6} \contentsline {subsection}{\tocsubsection {}{6.1}{Range image patches}}{23}{subsection.6.1} \contentsline {subsection}{\tocsubsection {}{6.2}{Optical image patches}}{26}{subsection.6.2} \contentsline {subsection}{\tocsubsection {}{6.3}{Cyclo-octane molecule conformations}}{31}{subsection.6.3} \contentsline {section}{\tocsection {}{7}{Remarks}}{33}{section.7} \contentsline {subsection}{\tocsubsection {}{7.1}{Java heap size}}{33}{subsection.7.1} \contentsline {subsection}{\tocsubsection {}{7.2}{Matlab functions with Javaplex commands}}{34}{subsection.7.2} \contentsline {subsection}{\tocsubsection {}{7.3}{Displaying the simplices in a stream}}{34}{subsection.7.3} \contentsline {subsection}{\tocsubsection {}{7.4}{Displaying the boundary matrix of a homology computation}}{34}{subsection.7.4} \contentsline {subsection}{\tocsubsection {}{7.5}{Computing the bottleneck distance}}{34}{subsection.7.5} \contentsline {section}{\tocsection {}{8}{Acknowledgements}}{34}{section.8} \contentsline {section}{Appendices}{34}{section*.2} \contentsline {section}{\tocsection {Appendix}{A}{Dense core subsets}}{34}{appendix.A} \contentsline {section}{\tocsection {Appendix}{B}{Exercise solutions}}{36}{appendix.B} \contentsline {section}{\tocsection {Appendix}{}{References}}{41}{section*.3} ================================================ FILE: src/bsh/desktop.bsh ================================================ /** * Start the BeanShell GUI desktop in a JFrame. A starter workspace is created * and added to the desktop. * * @method void desktop() * * @author Pat Niemeyer * @author Daniel Leuck * @author Harlan Sexton (Plex revision) */ import javax.swing.*; import javax.swing.border.*; import bsh.util.JConsole; import bsh.util.Util; import bsh.Interpreter; import java.awt.Component; import bsh.Capabilities; desktop() { // need a way to set things to void again if ( bsh.system.desktop != void ) { print("There is already a desktop running..."); return; } else bsh.system.desktop = this; // race condition (hah!) bsh.system.icons=object(); bsh.system.icons.bean= new ImageIcon(); // new ImageIcon(getResource("/bsh/util/lib/icon.gif")); bsh.system.icons.workspace= new ImageIcon(getResource("/bsh/util/lib/workspace.gif")); bsh.system.icons.script= new ImageIcon(getResource("/bsh/util/lib/script.gif")); bsh.system.icons.eye= new ImageIcon(); // new ImageIcon(getResource("/bsh/util/lib/eye.jpg")); // Disallowed by applet security try { bsh.system.fonts = GraphicsEnvironment.getLocalGraphicsEnvironment(). getAvailableFontFamilyNames(); } catch ( SecurityException se ) { } JPanel stage=new JPanel(new BorderLayout()); JPanel taskBar=new JPanel(new FlowLayout(FlowLayout.LEFT, 1, 1)); // For some insane reason, access to the JPanel background color object // is protected on the Mac borderColor = taskBar.background; try { borderColor = taskBar.background.darker(); } catch ( SecurityException e ) { } taskBar.setBorder( new MatteBorder(1,0,0,0, borderColor) ); ButtonGroup taskBarButtonGroup = new ButtonGroup(); // Ignore unhandled method invocations from listeners. invoke( method, args ) { } makeInternalFrame( String name ) { // Closable by default this.frame = new JInternalFrame( name, true, true, true, true ); frame.frameIcon=bsh.system.icons.bean; frame.visible=true; return frame; } this.frameMap=new Hashtable(); taskBarButtonListener() { actionPerformed(ae) { this.iframe=frameMap.get(ae.source); if(iframe.icon) iframe.icon=false; if(iframe!=null && !iframe.selected) iframe.selected=true; } return this; } this.taskBarButtonListener=taskBarButtonListener(); addInternalFrame( frame ) { iframeListener=new InternalFrameListener() { internalFrameClosing(ife) { for(e:new Hashtable(frameMap).entrySet()) { if(e.value.equals(ife.source)) { taskBar.remove(e.key); taskBarButtonGroup.remove(e.key); frameMap.remove(e.key); taskBar.validate(); taskBar.repaint(); } } } internalFrameActivated(ife) { for(e:frameMap.entrySet()) if(e.value.equals(ife.source)) { if(!e.key.selected) e.key.selected=true; } } internalFrameDeactivated(ife) {} internalFrameClosed(ife) {} internalFrameOpened(ife) {} internalFrameIconified(ife) {} internalFrameDeiconified(ife) {} }; bsh.system.desktop.pane.add( frame ); frame.addInternalFrameListener(iframeListener); JToggleButton button = new JToggleButton(frame.title, frame.frameIcon); taskBarButtonGroup.add(button); // For some insane reason access to some of the color objects is // protected on the Mac try { button.border= new CompoundBorder((Border)thinBorder(), new EmptyBorder(2,2,2,3)); } catch ( SecurityException e ) { } button.addActionListener(taskBarButtonListener); taskBar.add(button); taskBar.validate(); frameMap.put(button,frame); } this.windowCount=0; mousePressed( e ) { popup.show( pane, e.getX(), e.getY() ); } shutdown() { /* ret = JOptionPane.showInternalConfirmDialog( pane, "This workspace has not been saved. Do you really want to exit?" ); if ( ret == JOptionPane.YES_OPTION ) exit(); */ frame.dispose(); exit(); } actionPerformed( e ) { this.com = e.getActionCommand(); if ( com.equals("New Plex Workspace") ) makeWorkspace( ""+ super.windowCount++); if ( com.equals("New Class Browser") ) classBrowser(); else if ( com.equals("Save Workspace") ) JOptionPane.showInternalMessageDialog( pane, "Unimplemented" ); else if ( com.equals("Exit") ) shutdown(); } this.pane=new JDesktopPane(); this.popup=new JPopupMenu("Root Menu"); this.mi=new JMenuItem("New Plex Workspace"); mi.addActionListener(this); popup.add( mi ); mi=new JMenuItem("New Class Browser"); mi.addActionListener(this); popup.add( mi ); mi=new JMenuItem("Save Workspace"); mi.addActionListener(this); popup.add( mi ); mi=new JMenuItem("Exit"); mi.addActionListener(this); popup.add( mi ); pane.addMouseListener( this ); this.frame=new JFrame("Plex Top Level"); stage.add(pane); stage.add(taskBar, BorderLayout.SOUTH); frame.getContentPane().add(stage); windowClosing( e ) { bsh.system.desktop = null; shutdown(); } frame.iconImage=bsh.system.icons.bean.image; frame.addWindowListener( this ); /* If available, add a listener for classpath mapping I'm planning to implement a GUI progress indicator here if ( Capabilities.canGenerateInterfaces() ) { import bsh.classpath.BshClassPath; classFeedbackListener = new BshClassPath.MappingFeedback() { startClassMapping() { } classMapping( msg ) { } errorWhileMapping( msg ) { } endClassMapping() { } }; BshClassPath.addMappingFeedback( classFeedbackListener ); } */ // start one terminal workSpace=makeWorkspace( ""+windowCount++ ); frame.setSize(800,600); frame.show(); // Util.endSplashScreen(); frame.toFront(); workSpace.frame.selected=true; } ================================================ FILE: src/bsh/getBshPrompt.bsh ================================================ /** Get the value to display for the bsh interactive prompt. This command checks for the variable bsh.prompt and uses it if set. else returns "plex> "

Remember that you can override bsh commands simply by defining the method in your namespace. e.g. the following method displays the current working directory in your prompt:

	String getBshPrompt() {
		return bsh.cwd + " % ";
	}
	
@author Harlan Sexton (Plex Revision) */ String getBshPrompt() { if ( bsh != void && bsh.prompt != void ) return bsh.prompt; else return "plex> "; } ================================================ FILE: src/bsh/makeListener.bsh ================================================ /** * Creates an interpreter loop and returns it. * * @return this (the workspace scripted object for allowing access to the * frame, interpreter, etc.) * * @author Pat Niemeyer * @author Daniel Leuck (bug fixes) * @author Harlan Sexton (modified for Plex use) */ import bsh.Interpreter; import bsh.PlexInterpreter; import bsh.BshClassManager; import bsh.ClassPathException; import bsh.util.JConsole; import bsh.util.NameCompletionTable; makeListener( String name ) { this.console = null; this.name="Plex Listener: "+name; bsh.PlexInterpreter interp = new bsh.PlexInterpreter( name ); this.interpreter = interp; // provide name completion for console, name source is global namespace // move this into JConsole? // Access to read classpath is protected try { this.nct = new NameCompletionTable(); nct.add( interpreter.getNameSpace() ); try { this.bcm = this.caller.namespace.getClassManager(); if ( bcm != null ) { classNamesSource = bcm.getClassPath(); nct.add( classNamesSource ); } } catch ( ClassPathException e ) { error("classpath exception in name compl:"+e); } // end setup name completion } catch ( SecurityException e ) { } // turn on printing by default -- Plex change interpreter.setShowResults(true); // import plex commands -- Plex change interpreter.eval("import edu.stanford.math.plex.*;"); this.thread = new Thread( interpreter ); thread.start(); this.haveSysIO=false; this.sysIn = System.in; this.sysOut = System.out; this.sysErr = System.err; return this; } ================================================ FILE: src/bsh/makeWorkspace.bsh ================================================ /** * Creates a JConsole in a JInternalFrame and adds it to the desktop * * @return this (the workspace scripted object for allowing access to the * frame, interpreter, etc.) * * @author Pat Niemeyer * @author Daniel Leuck (bug fixes) * @author Harlan Sexton (modified for Plex use) */ import javax.swing.*; import bsh.Interpreter; import bsh.PlexInterpreter; import bsh.BshClassManager; import bsh.ClassPathException; import bsh.util.JConsole; import bsh.util.NameCompletionTable; makeWorkspace( String name ) { if ( bsh.system.desktop == void ) { print("No desktop..."); return; } this.console = new JConsole(); this.name="Plex Workspace: "+name; bsh.PlexInterpreter interp = new bsh.PlexInterpreter( console , name ); this.interpreter = interp; // provide name completion for console, name source is global namespace // move this into JConsole? // Access to read classpath is protected try { this.nct = new NameCompletionTable(); nct.add( interpreter.getNameSpace() ); try { this.bcm = this.caller.namespace.getClassManager(); if ( bcm != null ) { classNamesSource = bcm.getClassPath(); nct.add( classNamesSource ); } } catch ( ClassPathException e ) { error("classpath exception in name compl:"+e); } console.setNameCompletion( nct ); // end setup name completion } catch ( SecurityException e ) { } // for convenience and backwards compatability interpreter.set( "bsh.desktop", bsh.system.desktop ); // turn on printing by default -- Plex change interpreter.setShowResults(true); // import plex commands -- Plex change interpreter.eval("import edu.stanford.math.plex.*;"); this.frame = bsh.system.desktop.makeInternalFrame( name ); frame.frameIcon=bsh.system.icons.workspace; /* Notes: Careful not to print anything before returning sys io... console is now gone. */ internalFrameClosing( e ) { } internalFrameActivated(ife) {} internalFrameDeactivated(ife) {} internalFrameClosed(ife) {} internalFrameOpened(ife) {} internalFrameIconified(ife) {} internalFrameDeiconified(ife) {} frame.addInternalFrameListener(this); actionPerformed( e ) { this.com = e.getActionCommand(); if ( com.equals("Workspace Editor") ) workspaceEditor( interpreter, name ); else if ( com.equals("Enable logging") ) enableLogging(); else if ( com.equals("Disable logging") ) disableLogging(); else if ( com.equals("Logging status") ) logStatus(); else if ( com.equals("Close") ) { frame.setClosed(true); } } this.menubar = new JMenuBar(); this.menu=new JMenu("File"); this.mi=new JMenuItem("Workspace Editor"); mi.addActionListener(this); menu.add(mi); // Plex changes -- add menu items for input logging mi=new JMenuItem("Enable logging"); mi.addActionListener(this); menu.add(mi); mi=new JMenuItem("Disable logging"); mi.addActionListener(this); menu.add(mi); mi=new JMenuItem("Logging status"); mi.addActionListener(this); menu.add(mi); mi=new JMenuItem("Close"); mi.addActionListener(this); menu.add(mi); menubar.add(menu); menu = fontMenu(console); menubar.add(menu); frame.setMenuBar(menubar); frame.getContentPane().add("Center", console); //frame.pack(); this.thread = new Thread( interpreter ); thread.start(); frame.setBounds(5,5,600,300); // cascade windows? //off=bsh.system.desktop.windowCount*10; //frame.setLocation( off, off ); //frame.validate(); bsh.system.desktop.addInternalFrame( frame ); frame.toFront(); frame.setSelected(true); this.haveSysIO=false; this.sysIn = System.in; this.sysOut = System.out; this.sysErr = System.err; // Plex changes -- add menu items for input logging enableLogging() { interpreter.enableLogging(); } // Plex changes -- add menu items for input logging disableLogging() { interpreter.disableLogging(); } // Plex changes -- add menu items for input logging logStatus() { interpreter.print("\n" + interpreter.logStatus() + "\n" + getBshPrompt()); } return this; } ================================================ FILE: src/bsh/printBanner.bsh ================================================ /** Print the BeanShell banner (version and author line) - GUI or non GUI. @author Daniel Leuck @author Harlan Sexton (Plex revision) */ import javax.swing.ImageIcon; import java.awt.*; import bsh.Interpreter; import bsh.Capabilities; import bsh.util.JConsole; /* Note: any errors thrown in here will be caught by interpreter and ignored... printing the default message. */ printBanner() { if ((bsh.console != void) && Capabilities.haveSwing() && (bsh.console instanceof JConsole)) { this.jconsole = bsh.console; jconsole.println(new ImageIcon()); jconsole.print( " Plex 3.0 (comptop.stanford.edu) \n ", new Font("SansSerif", Font.BOLD, 12), new Color(100,100,100) ); jconsole.println(); } else print( " Plex 3.0 (comptop.stanford.edu) \n "); // turn on printing by default -- Plex change this.interpreter.setShowResults(true); } ================================================ FILE: src/cpp/Makefile ================================================ build: R CMD build --configure-args='--with-jplex=/afs/ir.stanford.edu/users/c/h/chakj/plex3/jplex.jar' PLEX3 check: R CMD check PLEX3 install: R CMD INSTALL -l ~/Rbin/ --configure-args='--with-jplex=/afs/ir.stanford.edu/users/c/h/chakj/plex3/jplex.jar' PLEX3 ================================================ FILE: src/cpp/PLEX3/DESCRIPTION ================================================ Package: PLEX3 Type: Package Title: R Interface for the PLEX3 Library Version: 2.4.0 Date: 2008-02-05 Author: John Chakerian Maintainer: John Chakerian Description: Provides an interface to the PLEX3 Java library. License: BSD URL: http://math.stanford.edu/ ================================================ FILE: src/cpp/PLEX3/R/plex.R ================================================ `as.internal.distance.matrix` <- function(dmatrix) { pdata.handle = .Call("make_internal_distance_array", as.matrix(dmatrix), as.integer(length(as.matrix(dmatrix)))) attr(pdata.handle, 'class') <- 'pointdata' pdata.handle } `random.euclidean.array.data` <- function(count, dim) { pdata.handle = .Call("random_euclidean_array_data", as.integer(count), as.integer(dim)) attr(pdata.handle, 'class') <- 'pointdata' pdata.handle } `ensure.square` <- function(mat) { if( (is.null(mat) == FALSE) && (is.null(dim(mat)) == FALSE) && (dim(mat)[1] == dim(mat)[2])) TRUE else FALSE } `open.explicit.stream` <- function(ex.stream) { .Call("open_ex_stream", ex.stream) eval(eval(substitute(expression(attr(ex.stream,'is.open') <<- TRUE)))) invisible() } `close.explicit.stream` <- function(ex.stream) { if(is.null(.Call("close_ex_stream", ex.stream)) == FALSE) stop("Stream not in a valid state to be closed.") eval(eval(substitute(expression(attr(ex.stream,'is.open') <<- FALSE)))) invisible() } `add.simplex` <- function(ex.stream, vertices, parameter) { if(attr(ex.stream, 'is.open') == FALSE) stop("You must open the stream before adding or removing simplices.") .Call("add_simplex", ex.stream, as.integer(vertices), as.double(parameter)) invisible() } `remove.simplex` <- function(ex.stream, vertices) { if(attr(ex.stream, 'is.open') == FALSE) stop("You must open the stream before adding or removing simplices.") .Call("remove_simplex", ex.stream, as.integer(vertices)) invisible() } `explicit.stream` <- function(x, ...) UseMethod("explicit.stream") `explicit.stream.pointdata` <- function(dmatrix) { stop("Simplicies must be added explicitly to an explicit stream.") } `explicit.stream.default` <- function() { exstream = .Call("create_explicit_stream") attr(exstream, 'class') <- 'explicit.stream' attr(exstream, 'is.open') <- FALSE exstream } `rips.stream` <- function(x, ...) UseMethod("rips.stream") `rips.stream.pointdata` <- function(pdata.handle, delta, max.edge, max.dim) { rstream = .Call("create_rips_stream", pdata.handle, as.double(delta), as.double(max.edge), as.integer(max.dim)) attr(rstream, 'class') <- 'rips.stream' rstream } `rips.stream.default` <- function(dmatrix, delta, max.edge, max.dim) { # ensure the matrix is square and has values if(ensure.square(dmatrix)) { i <- as.internal.distance.matrix(dmatrix) rips.stream(i, delta, max.edge, max.dim) } else { stop("This function cannot operate on non-square or null matrices.") } } `make.random.landmarks` <- function(x, ...) UseMethod("make.random.landmarks") `make.random.landmarks.pointdata` <- function(pdata.handle, count) { .Call("make_random_landmarks", pdata.handle, as.integer(count)) } `make.random.landmarks.default` <- function(dmatrix, count) { # ensure the matrix is square and has values if(ensure.square(dmatrix)) { i <- as.internal.distance.matrix(dmatrix) make.random.landmarks(i,count) } else { stop("This function cannot operate on non-square or null matrices.") } } `estimate.rmax` <- function(x, ...) UseMethod("estimate.rmax") `estimate.rmax.pointdata` <- function(pdata.handle, landmarks) { .Call("estimate_r_max", pdata.handle, as.integer(landmarks)) } `estimate.rmax.default` <- function(dmatrix, landmarks) { # ensure the matrix is square and has values if(ensure.square(dmatrix)) { i <- as.internal.distance.matrix(dmatrix) estimate.rmax(i,landmarks) } else { stop("This function cannot operate on non-square or null matrices.") } } `lazy.witness.stream` <- function(x, ...) UseMethod("lazy.witness.stream") `lazy.witness.stream.pointdata` <- function(pdata.handle, granularity, max.dim, rmax, nu, landmarks) { lwstream = .Call("create_lw_stream_from_handle", pdata.handle, as.double(granularity), as.integer(max.dim), as.double(rmax), as.integer(nu), as.vector(landmarks)) attr(lwstream, 'class') <- 'lazy.witness.stream' lwstream } `lazy.witness.stream.default` <- function(dmatrix, granularity, max.dim, rmax, nu, landmarks) { # ensure the matrix is square and has values if(ensure.square(dmatrix)) { i <- as.internal.distance.matrix(dmatrix) lazy.witness.stream(i,granularity, max.dim, rmax, nu, landmarks) } else { stop("This function cannot operate on non-square or null matrices.") } } `persistence.intervals` <- function(x, ...) UseMethod("persistence.intervals") `persistence.intervals.explicit.stream` <- function(exstream) { close(exstream) persistence.intervals.from.stream(exstream) } `persistence.intervals.rips.stream` <- function(exstream) { persistence.intervals.from.stream(exstream) } `persistence.intervals.lazy.witness.stream` <- function(exstream) { persistence.intervals.from.stream(exstream) } `length.persistence.intervals` <- function(intervals) { length(as.vector(intervals)) / 3 } # this function should not be called directly `persistence.intervals.from.stream` <- function(exstream) { intervals = .Call("get_intervals_from_stream", exstream) attr(intervals, 'dim') <- c(3,length(intervals)/3) attr(intervals, 'class') <- 'persistence.intervals' intervals = t(intervals) intervals } `filter.infinite` <- function(intervals) { .Call("filter_infinite", as.double(t(intervals)), as.integer(length(intervals))) } ================================================ FILE: src/cpp/PLEX3/R/zzz.R ================================================ `.First.lib` <- function(libname,pkgname) { library.dynam("PLEX3", pkgname, libname) .Call("init_java", jplex.path) } ================================================ FILE: src/cpp/PLEX3/autom4te.cache/output.0 ================================================ @%:@! /bin/sh @%:@ Guess values for system-dependent variables and create Makefiles. @%:@ Generated by GNU Autoconf 2.61. @%:@ @%:@ Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, @%:@ 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. @%:@ This configure script is free software; the Free Software Foundation @%:@ gives unlimited permission to copy, distribute and modify it. ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi # PATH needs CR # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) as_nl=' ' IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # CDPATH. $as_unset CDPATH if test "x$CONFIG_SHELL" = x; then if (eval ":") 2>/dev/null; then as_have_required=yes else as_have_required=no fi if test $as_have_required = yes && (eval ": (as_func_return () { (exit \$1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = \"\$1\" ); then : else exitcode=1 echo positional parameters were not saved. fi test \$exitcode = 0) || { (exit 1); exit 1; } ( as_lineno_1=\$LINENO as_lineno_2=\$LINENO test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } ") 2> /dev/null; then : else as_candidate_shells= as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. case $as_dir in /*) for as_base in sh bash ksh sh5; do as_candidate_shells="$as_candidate_shells $as_dir/$as_base" done;; esac done IFS=$as_save_IFS for as_shell in $as_candidate_shells $SHELL; do # Try only shells that exist, to save several forks. if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { ("$as_shell") 2> /dev/null <<\_ASEOF if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi : _ASEOF }; then CONFIG_SHELL=$as_shell as_have_required=yes if { "$as_shell" 2> /dev/null <<\_ASEOF if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi : (as_func_return () { (exit $1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = "$1" ); then : else exitcode=1 echo positional parameters were not saved. fi test $exitcode = 0) || { (exit 1); exit 1; } ( as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } _ASEOF }; then break fi fi done if test "x$CONFIG_SHELL" != x; then for as_var in BASH_ENV ENV do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done export CONFIG_SHELL exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} fi if test $as_have_required = no; then echo This script requires a shell more modern than all the echo shells that I found on your system. Please install a echo modern shell, or manually run the script under such a echo shell if you do have one. { (exit 1); exit 1; } fi fi fi (eval "as_func_return () { (exit \$1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = \"\$1\" ); then : else exitcode=1 echo positional parameters were not saved. fi test \$exitcode = 0") || { echo No shell found that supports shell functions. echo Please tell autoconf@gnu.org about your system, echo including any error possibly output before this echo message } as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, and appends # trailing '-' during substitution so that $LINENO is not a special # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # scripts with optimization help from Paolo Bonzini. Blame Lee # E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir fi echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIB@&t@OBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME= PACKAGE_TARNAME= PACKAGE_VERSION= PACKAGE_STRING= PACKAGE_BUGREPORT= ac_unique_file="src/rbind_jni.cpp" # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datarootdir datadir sysconfdir sharedstatedir localstatedir includedir oldincludedir docdir infodir htmldir dvidir pdfdir psdir libdir localedir mandir DEFS ECHO_C ECHO_N ECHO_T LIBS build_alias host_alias target_alias CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CPP GREP EGREP LIB@&t@OBJS POW_LIB build build_cpu build_vendor build_os host host_cpu host_vendor host_os LTLIBOBJS' ac_subst_files='' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CXX CXXFLAGS CCC CPP' # Initialize some variables set by options. ac_init_help= ac_init_version=false # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'` eval enable_$ac_feature=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'` eval enable_$ac_feature=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package | sed 's/[-.]/_/g'` eval with_$ac_package=\$ac_optarg ;; -without-* | --without-*) ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package | sed 's/[-.]/_/g'` eval with_$ac_package=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) { echo "$as_me: error: unrecognized option: $ac_option Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 { (exit 1); exit 1; }; } eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` { echo "$as_me: error: missing argument to $ac_option" >&2 { (exit 1); exit 1; }; } fi # Be sure to have absolute directory names. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; } done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || { echo "$as_me: error: Working directory cannot be determined" >&2 { (exit 1); exit 1; }; } test "X$ac_ls_di" = "X$ac_pwd_ls_di" || { echo "$as_me: error: pwd does not report name of working directory" >&2 { (exit 1); exit 1; }; } # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$0" || $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$0" : 'X\(//\)[^/]' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || echo X"$0" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 { (exit 1); exit 1; }; } fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2 { (exit 1); exit 1; }; } pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures this package to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root @<:@DATAROOTDIR/doc/PACKAGE@:>@ --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then cat <<\_ACEOF Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-jplex=JPLEX_PATH path to the jplex.jar file Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if you have headers in a nonstandard directory CXX C++ compiler command CXXFLAGS C++ compiler flags CPP C preprocessor Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF configure generated by GNU Autoconf 2.61 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by $as_me, which was generated by GNU Autoconf 2.61. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME @%:@@%:@ --------- @%:@@%:@ @%:@@%:@ Platform. @%:@@%:@ @%:@@%:@ --------- @%:@@%:@ hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF @%:@@%:@ ----------- @%:@@%:@ @%:@@%:@ Core tests. @%:@@%:@ @%:@@%:@ ----------- @%:@@%:@ _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; 2) ac_configure_args1="$ac_configure_args1 '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac done done $as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } $as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo cat <<\_ASBOX @%:@@%:@ ---------------- @%:@@%:@ @%:@@%:@ Cache variables. @%:@@%:@ @%:@@%:@ ---------------- @%:@@%:@ _ASBOX echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( *) $as_unset $ac_var ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo cat <<\_ASBOX @%:@@%:@ ----------------- @%:@@%:@ @%:@@%:@ Output variables. @%:@@%:@ @%:@@%:@ ----------------- @%:@@%:@ _ASBOX echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX @%:@@%:@ ------------------- @%:@@%:@ @%:@@%:@ File substitutions. @%:@@%:@ @%:@@%:@ ------------------- @%:@@%:@ _ASBOX echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then cat <<\_ASBOX @%:@@%:@ ----------- @%:@@%:@ @%:@@%:@ confdefs.h. @%:@@%:@ @%:@@%:@ ----------- @%:@@%:@ _ASBOX echo cat confdefs.h echo fi test "$ac_signal" != 0 && echo "$as_me: caught signal $ac_signal" echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF @%:@define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF @%:@define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF @%:@define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF @%:@define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF @%:@define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer explicitly selected file to automatically selected ones. if test -n "$CONFIG_SITE"; then set x "$CONFIG_SITE" elif test "x$prefix" != xNONE; then set x "$prefix/share/config.site" "$prefix/etc/config.site" else set x "$ac_default_prefix/share/config.site" \ "$ac_default_prefix/etc/config.site" fi shift for ac_site_file do if test -r "$ac_site_file"; then { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special # files actually), so we avoid doing that. if test -f "$cache_file"; then { echo "$as_me:$LINENO: loading cache $cache_file" >&5 echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { echo "$as_me:$LINENO: creating cache $cache_file" >&5 echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 echo "$as_me: former value: $ac_old_val" >&2;} { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 echo "$as_me: current value: $ac_new_val" >&2;} ac_cache_corrupted=: fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 echo "$as_me: error: changes in the environment can compromise the build" >&2;} { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $@%:@ != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&5 echo "$as_me: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } # Provide some information about the compiler. echo "$as_me:$LINENO: checking for C compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6; } ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # # List of possible output files, starting from the most likely. # The algorithm is not robust to junk in `.', hence go to wildcards (a.*) # only as a last resort. b.out is created by i960 compilers. ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out' # # The IRIX 6 linker writes into existing files which may not be # executable, retaining their permissions. Remove them first so a # subsequent execution test works. ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { (ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link_default") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi { echo "$as_me:$LINENO: result: $ac_file" >&5 echo "${ECHO_T}$ac_file" >&6; } if test -z "$ac_file"; then echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: C compiler cannot create executables See \`config.log' for more details." >&5 echo "$as_me: error: C compiler cannot create executables See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } fi ac_exeext=$ac_cv_exeext # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { echo "$as_me:$LINENO: checking whether the C compiler works" >&5 echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6; } # FIXME: These cross compiler hacks should be removed for Autoconf 3.0 # If not cross compiling, check that we can run a simple program. if test "$cross_compiling" != yes; then if { ac_try='./$ac_file' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { echo "$as_me:$LINENO: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&5 echo "$as_me: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi fi fi { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } rm -f a.out a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6; } { echo "$as_me:$LINENO: result: $cross_compiling" >&5 echo "${ECHO_T}$cross_compiling" >&6; } { echo "$as_me:$LINENO: checking for suffix of executables" >&5 echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6; } if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest$ac_cv_exeext { echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 echo "${ECHO_T}$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT { echo "$as_me:$LINENO: checking for suffix of object files" >&5 echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6; } if test "${ac_cv_objext+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 echo "${ECHO_T}$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; } GCC=`test $ac_compiler_gnu = yes && echo yes` ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CFLAGS="" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_c89=$ac_arg else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { echo "$as_me:$LINENO: result: none needed" >&5 echo "${ECHO_T}none needed" >&6; } ;; xno) { echo "$as_me:$LINENO: result: unsupported" >&5 echo "${ECHO_T}unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -z "$CXX"; then if test -n "$CCC"; then CXX=$CCC else if test -n "$ac_tool_prefix"; then for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then { echo "$as_me:$LINENO: result: $CXX" >&5 echo "${ECHO_T}$CXX" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CXX="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then { echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5 echo "${ECHO_T}$ac_ct_CXX" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$ac_ct_CXX" && break done if test "x$ac_ct_CXX" = x; then CXX="g++" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac CXX=$ac_ct_CXX fi fi fi fi # Provide some information about the compiler. echo "$as_me:$LINENO: checking for C++ compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6; } if test "${ac_cv_cxx_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi { echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6; } GXX=`test $ac_compiler_gnu = yes && echo yes` ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS { echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5 echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6; } if test "${ac_cv_prog_cxx_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_save_cxx_werror_flag=$ac_cxx_werror_flag ac_cxx_werror_flag=yes ac_cv_prog_cxx_g=no CXXFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cxx_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CXXFLAGS="" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cxx_werror_flag=$ac_save_cxx_werror_flag CXXFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cxx_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cxx_werror_flag=$ac_save_cxx_werror_flag fi { echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5 echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6; } if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5 echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;} { (exit 1); exit 1; }; } fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. { echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in ./ | .// | /cC/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi done done ;; esac done IFS=$as_save_IFS fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { echo "$as_me:$LINENO: result: $INSTALL" >&5 echo "${ECHO_T}$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ @%:@ifdef __STDC__ @%:@ include @%:@else @%:@ include @%:@endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ @%:@include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { echo "$as_me:$LINENO: result: $CPP" >&5 echo "${ECHO_T}$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ @%:@ifdef __STDC__ @%:@ include @%:@else @%:@ include @%:@endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ @%:@include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&5 echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 echo $ECHO_N "checking for grep that handles long lines and -e... $ECHO_C" >&6; } if test "${ac_cv_path_GREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Extract the first word of "grep ggrep" to use in msg output if test -z "$GREP"; then set dummy grep ggrep; ac_prog_name=$2 if test "${ac_cv_path_GREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS fi GREP="$ac_cv_path_GREP" if test -z "$GREP"; then { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } fi else ac_cv_path_GREP=$GREP fi fi { echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 echo "${ECHO_T}$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { echo "$as_me:$LINENO: checking for egrep" >&5 echo $ECHO_N "checking for egrep... $ECHO_C" >&6; } if test "${ac_cv_path_EGREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else # Extract the first word of "egrep" to use in msg output if test -z "$EGREP"; then set dummy egrep; ac_prog_name=$2 if test "${ac_cv_path_EGREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS fi EGREP="$ac_cv_path_EGREP" if test -z "$EGREP"; then { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } fi else ac_cv_path_EGREP=$EGREP fi fi fi { echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 echo "${ECHO_T}$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" if test $ac_cv_c_compiler_gnu = yes; then { echo "$as_me:$LINENO: checking whether $CC needs -traditional" >&5 echo $ECHO_N "checking whether $CC needs -traditional... $ECHO_C" >&6; } if test "${ac_cv_prog_gcc_traditional+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_pattern="Autoconf.*'x'" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include Autoconf TIOCGETP _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "$ac_pattern" >/dev/null 2>&1; then ac_cv_prog_gcc_traditional=yes else ac_cv_prog_gcc_traditional=no fi rm -f conftest* if test $ac_cv_prog_gcc_traditional = no; then cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include Autoconf TCGETA _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "$ac_pattern" >/dev/null 2>&1; then ac_cv_prog_gcc_traditional=yes fi rm -f conftest* fi fi { echo "$as_me:$LINENO: result: $ac_cv_prog_gcc_traditional" >&5 echo "${ECHO_T}$ac_cv_prog_gcc_traditional" >&6; } if test $ac_cv_prog_gcc_traditional = yes; then CC="$CC -traditional" fi fi { echo "$as_me:$LINENO: checking for ANSI C header files" >&5 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; } if test "${ac_cv_header_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_header_stdc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi { echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 echo "${ECHO_T}$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF @%:@define STDC_HEADERS 1 _ACEOF fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default @%:@include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then eval "$as_ac_Header=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF @%:@define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done { echo "$as_me:$LINENO: checking for working memcmp" >&5 echo $ECHO_N "checking for working memcmp... $ECHO_C" >&6; } if test "${ac_cv_func_memcmp_working+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then ac_cv_func_memcmp_working=no else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { /* Some versions of memcmp are not 8-bit clean. */ char c0 = '\100', c1 = '\200', c2 = '\201'; if (memcmp(&c0, &c2, 1) >= 0 || memcmp(&c1, &c2, 1) >= 0) return 1; /* The Next x86 OpenStep bug shows up only when comparing 16 bytes or more and with at least one buffer not starting on a 4-byte boundary. William Lewis provided this test program. */ { char foo[21]; char bar[21]; int i; for (i = 0; i < 4; i++) { char *a = foo + i; char *b = bar + i; strcpy (a, "--------01111111"); strcpy (b, "--------10000000"); if (memcmp (a, b, 16) >= 0) return 1; } return 0; } ; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_memcmp_working=yes else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_func_memcmp_working=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi { echo "$as_me:$LINENO: result: $ac_cv_func_memcmp_working" >&5 echo "${ECHO_T}$ac_cv_func_memcmp_working" >&6; } test $ac_cv_func_memcmp_working = no && case " $LIB@&t@OBJS " in *" memcmp.$ac_objext "* ) ;; *) LIB@&t@OBJS="$LIB@&t@OBJS memcmp.$ac_objext" ;; esac for ac_header in stdlib.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default @%:@include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ @%:@include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ;; esac { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF @%:@define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done { echo "$as_me:$LINENO: checking for GNU libc compatible malloc" >&5 echo $ECHO_N "checking for GNU libc compatible malloc... $ECHO_C" >&6; } if test "${ac_cv_func_malloc_0_nonnull+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then ac_cv_func_malloc_0_nonnull=no else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #if defined STDC_HEADERS || defined HAVE_STDLIB_H # include #else char *malloc (); #endif int main () { return ! malloc (0); ; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_malloc_0_nonnull=yes else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_func_malloc_0_nonnull=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi { echo "$as_me:$LINENO: result: $ac_cv_func_malloc_0_nonnull" >&5 echo "${ECHO_T}$ac_cv_func_malloc_0_nonnull" >&6; } if test $ac_cv_func_malloc_0_nonnull = yes; then cat >>confdefs.h <<\_ACEOF @%:@define HAVE_MALLOC 1 _ACEOF else cat >>confdefs.h <<\_ACEOF @%:@define HAVE_MALLOC 0 _ACEOF case " $LIB@&t@OBJS " in *" malloc.$ac_objext "* ) ;; *) LIB@&t@OBJS="$LIB@&t@OBJS malloc.$ac_objext" ;; esac cat >>confdefs.h <<\_ACEOF @%:@define malloc rpl_malloc _ACEOF fi { echo "$as_me:$LINENO: checking for working strtod" >&5 echo $ECHO_N "checking for working strtod... $ECHO_C" >&6; } if test "${ac_cv_func_strtod+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then ac_cv_func_strtod=no else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #ifndef strtod double strtod (); #endif int main() { { /* Some versions of Linux strtod mis-parse strings with leading '+'. */ char *string = " +69"; char *term; double value; value = strtod (string, &term); if (value != 69 || term != (string + 4)) return 1; } { /* Under Solaris 2.4, strtod returns the wrong value for the terminating character under some conditions. */ char *string = "NaN"; char *term; strtod (string, &term); if (term != string && *(term - 1) == 0) return 1; } return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_strtod=yes else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_func_strtod=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi { echo "$as_me:$LINENO: result: $ac_cv_func_strtod" >&5 echo "${ECHO_T}$ac_cv_func_strtod" >&6; } if test $ac_cv_func_strtod = no; then case " $LIB@&t@OBJS " in *" strtod.$ac_objext "* ) ;; *) LIB@&t@OBJS="$LIB@&t@OBJS strtod.$ac_objext" ;; esac { echo "$as_me:$LINENO: checking for pow" >&5 echo $ECHO_N "checking for pow... $ECHO_C" >&6; } if test "${ac_cv_func_pow+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define pow to an innocuous variant, in case declares pow. For example, HP-UX 11i declares gettimeofday. */ #define pow innocuous_pow /* System header to define __stub macros and hopefully few prototypes, which can conflict with char pow (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef pow /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char pow (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_pow || defined __stub___pow choke me #endif int main () { return pow (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_func_pow=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_pow=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_func_pow" >&5 echo "${ECHO_T}$ac_cv_func_pow" >&6; } if test $ac_cv_func_pow = no; then { echo "$as_me:$LINENO: checking for pow in -lm" >&5 echo $ECHO_N "checking for pow in -lm... $ECHO_C" >&6; } if test "${ac_cv_lib_m_pow+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lm $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char pow (); int main () { return pow (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_m_pow=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_m_pow=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_m_pow" >&5 echo "${ECHO_T}$ac_cv_lib_m_pow" >&6; } if test $ac_cv_lib_m_pow = yes; then POW_LIB=-lm else { echo "$as_me:$LINENO: WARNING: cannot find library containing definition of pow" >&5 echo "$as_me: WARNING: cannot find library containing definition of pow" >&2;} fi fi fi { echo "$as_me:$LINENO: checking return type of signal handlers" >&5 echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6; } if test "${ac_cv_type_signal+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include int main () { return *(signal (0, 0)) (0) == 1; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_type_signal=int else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_signal=void fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_type_signal" >&5 echo "${ECHO_T}$ac_cv_type_signal" >&6; } cat >>confdefs.h <<_ACEOF @%:@define RETSIGTYPE $ac_cv_type_signal _ACEOF for ac_func in vprintf do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$ac_func || defined __stub___$ac_func choke me #endif int main () { return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_var'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF @%:@define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF { echo "$as_me:$LINENO: checking for _doprnt" >&5 echo $ECHO_N "checking for _doprnt... $ECHO_C" >&6; } if test "${ac_cv_func__doprnt+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define _doprnt to an innocuous variant, in case declares _doprnt. For example, HP-UX 11i declares gettimeofday. */ #define _doprnt innocuous__doprnt /* System header to define __stub macros and hopefully few prototypes, which can conflict with char _doprnt (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef _doprnt /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char _doprnt (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub__doprnt || defined __stub____doprnt choke me #endif int main () { return _doprnt (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_func__doprnt=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func__doprnt=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_func__doprnt" >&5 echo "${ECHO_T}$ac_cv_func__doprnt" >&6; } if test $ac_cv_func__doprnt = yes; then cat >>confdefs.h <<\_ACEOF @%:@define HAVE_DOPRNT 1 _ACEOF fi fi done # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || { { echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5 echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;} { (exit 1); exit 1; }; } { echo "$as_me:$LINENO: checking build system type" >&5 echo $ECHO_N "checking build system type... $ECHO_C" >&6; } if test "${ac_cv_build+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 echo "$as_me: error: cannot guess build type; you must specify one" >&2;} { (exit 1); exit 1; }; } ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5 echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;} { (exit 1); exit 1; }; } fi { echo "$as_me:$LINENO: result: $ac_cv_build" >&5 echo "${ECHO_T}$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) { { echo "$as_me:$LINENO: error: invalid value of canonical build" >&5 echo "$as_me: error: invalid value of canonical build" >&2;} { (exit 1); exit 1; }; };; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { echo "$as_me:$LINENO: checking host system type" >&5 echo $ECHO_N "checking host system type... $ECHO_C" >&6; } if test "${ac_cv_host+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5 echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;} { (exit 1); exit 1; }; } fi fi { echo "$as_me:$LINENO: result: $ac_cv_host" >&5 echo "${ECHO_T}$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) { { echo "$as_me:$LINENO: error: invalid value of canonical host" >&5 echo "$as_me: error: invalid value of canonical host" >&2;} { (exit 1); exit 1; }; };; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac # Check whether --with-jplex was given. if test "${with_jplex+set}" = set; then withval=$with_jplex; jplex_path=$withval fi if test -n "$jplex_path" ; then JPLEX_PATH="${jplex_path}" else JPLEX_PATH="${HOME}/plex3/jplex.jar" fi echo "\`jplex.path\` <- \"${JPLEX_PATH}\";" > R/config.R : ${R_HOME=`R RHOME`} if test -z "${R_HOME}"; then echo "could not determine R_HOME" exit 1 fi CC=`"${R_HOME}/bin/R" CMD config CC` CFLAGS=`"${R_HOME}/bin/R" CMD config CFLAGS` JAVA_HOME=`"${R_HOME}/bin/R" CMD config JAVA_HOME` JAVA_LIBS=`"${R_HOME}/bin/R" CMD config JAVA_LIBS` JAVA_CPPFLAGS=`"${R_HOME}/bin/R" CMD config JAVA_CPPFLAGS` JAVA_LD_LIBRARY_PATH=`grep -e "^JAVA_LD_LIBRARY_PATH = " ${R_HOME}/etc/Makeconf | awk '{print $3}'` CPPFLAGS="${JAVA_CPPFLAGS} ${CPPFLAGS}" LIBS="${JAVA_LIBS} -Wl,-rpath,${JAVA_LD_LIBRARY_PATH} ${LIBS}" for ac_header in jni.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default @%:@include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ @%:@include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ;; esac { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF @%:@define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done if test "${ac_cv_header_jni_h}" = no ; then { { echo "$as_me:$LINENO: error: \"Necessary JNI header jni.h not found. Did you remember to run R CMD javareconf? \"" >&5 echo "$as_me: error: \"Necessary JNI header jni.h not found. Did you remember to run R CMD javareconf? \"" >&2;} { (exit 1); exit 1; }; } fi ac_config_files="$ac_config_files src/Makevars" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( *) $as_unset $ac_var ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes (double-quote # substitution turns \\\\ into \\, and sed turns \\ into \). sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then test "x$cache_file" != "x/dev/null" && { echo "$as_me:$LINENO: updating cache $cache_file" >&5 echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # Transform confdefs.h into DEFS. # Protect against shell expansion while executing Makefile rules. # Protect against Makefile macro expansion. # # If the first sed substitution is executed (which looks for macros that # take arguments), then branch to the quote section. Otherwise, # look for a macro that doesn't take arguments. ac_script=' t clear :clear s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g t quote s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g t quote b any :quote s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g s/\[/\\&/g s/\]/\\&/g s/\$/$$/g H :any ${ g s/^\n// s/\n/ /g p } ' DEFS=`sed -n "$ac_script" confdefs.h` ac_libobjs= ac_ltlibobjs= for ac_i in : $LIB@&t@OBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' done LIB@&t@OBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs : ${CONFIG_STATUS=./config.status} ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 echo "$as_me: creating $CONFIG_STATUS" >&6;} cat >$CONFIG_STATUS <<_ACEOF #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi # PATH needs CR # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) as_nl=' ' IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # CDPATH. $as_unset CDPATH as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, and appends # trailing '-' during substitution so that $LINENO is not a special # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # scripts with optimization help from Paolo Bonzini. Blame Lee # E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir fi echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 # Save the log message, to keep $[0] and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by $as_me, which was generated by GNU Autoconf 2.61. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # Files that config.status was made for. config_files="$ac_config_files" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF ac_cs_usage="\ \`$as_me' instantiates files from templates according to the current configuration. Usage: $0 [OPTIONS] [FILE]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE Configuration files: $config_files Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ config.status configured by $0, generated by GNU Autoconf 2.61, with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" Copyright (C) 2006 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # If no file are specified by the user, then we need to provide default # value. By we need to know if files were specified by the user. ac_need_defaults=: while test $# != 0 do case $1 in --*=*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) echo "$ac_cs_version"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift CONFIG_FILES="$CONFIG_FILES $ac_optarg" ac_need_defaults=false;; --he | --h | --help | --hel | -h ) echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) { echo "$as_me: error: unrecognized option: $1 Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *) ac_config_targets="$ac_config_targets $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF if \$ac_cs_recheck; then echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 CONFIG_SHELL=$SHELL export CONFIG_SHELL exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../@%:@@%:@ /;s/...$/ @%:@@%:@/;p;x;p;x' <<_ASBOX @%:@@%:@ Running $as_me. @%:@@%:@ _ASBOX echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "src/Makevars") CONFIG_FILES="$CONFIG_FILES src/Makevars" ;; *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= trap 'exit_status=$? { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status ' 0 trap '{ (exit 1); exit 1; }' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || { echo "$me: cannot create a temporary directory in ." >&2 { (exit 1); exit 1; } } # # Set up the sed scripts for CONFIG_FILES section. # # No need to generate the scripts if there are no CONFIG_FILES. # This happens for instance when ./config.status config.h if test -n "$CONFIG_FILES"; then _ACEOF ac_delim='%!_!# ' for ac_last_try in false false false false false :; do cat >conf$$subs.sed <<_ACEOF SHELL!$SHELL$ac_delim PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim PACKAGE_NAME!$PACKAGE_NAME$ac_delim PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim PACKAGE_STRING!$PACKAGE_STRING$ac_delim PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim exec_prefix!$exec_prefix$ac_delim prefix!$prefix$ac_delim program_transform_name!$program_transform_name$ac_delim bindir!$bindir$ac_delim sbindir!$sbindir$ac_delim libexecdir!$libexecdir$ac_delim datarootdir!$datarootdir$ac_delim datadir!$datadir$ac_delim sysconfdir!$sysconfdir$ac_delim sharedstatedir!$sharedstatedir$ac_delim localstatedir!$localstatedir$ac_delim includedir!$includedir$ac_delim oldincludedir!$oldincludedir$ac_delim docdir!$docdir$ac_delim infodir!$infodir$ac_delim htmldir!$htmldir$ac_delim dvidir!$dvidir$ac_delim pdfdir!$pdfdir$ac_delim psdir!$psdir$ac_delim libdir!$libdir$ac_delim localedir!$localedir$ac_delim mandir!$mandir$ac_delim DEFS!$DEFS$ac_delim ECHO_C!$ECHO_C$ac_delim ECHO_N!$ECHO_N$ac_delim ECHO_T!$ECHO_T$ac_delim LIBS!$LIBS$ac_delim build_alias!$build_alias$ac_delim host_alias!$host_alias$ac_delim target_alias!$target_alias$ac_delim CC!$CC$ac_delim CFLAGS!$CFLAGS$ac_delim LDFLAGS!$LDFLAGS$ac_delim CPPFLAGS!$CPPFLAGS$ac_delim ac_ct_CC!$ac_ct_CC$ac_delim EXEEXT!$EXEEXT$ac_delim OBJEXT!$OBJEXT$ac_delim CXX!$CXX$ac_delim CXXFLAGS!$CXXFLAGS$ac_delim ac_ct_CXX!$ac_ct_CXX$ac_delim INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim INSTALL_DATA!$INSTALL_DATA$ac_delim CPP!$CPP$ac_delim GREP!$GREP$ac_delim EGREP!$EGREP$ac_delim LIB@&t@OBJS!$LIB@&t@OBJS$ac_delim POW_LIB!$POW_LIB$ac_delim build!$build$ac_delim build_cpu!$build_cpu$ac_delim build_vendor!$build_vendor$ac_delim build_os!$build_os$ac_delim host!$host$ac_delim host_cpu!$host_cpu$ac_delim host_vendor!$host_vendor$ac_delim host_os!$host_os$ac_delim LTLIBOBJS!$LTLIBOBJS$ac_delim _ACEOF if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 64; then break elif $ac_last_try; then { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` if test -n "$ac_eof"; then ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` ac_eof=`expr $ac_eof + 1` fi cat >>$CONFIG_STATUS <<_ACEOF cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof /@[a-zA-Z_][a-zA-Z_0-9]*@/!b end _ACEOF sed ' s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g s/^/s,@/; s/!/@,|#_!!_#|/ :n t n s/'"$ac_delim"'$/,g/; t s/$/\\/; p N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n ' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF :end s/|#_!!_#|//g CEOF$ac_eof _ACEOF # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/ s/:*\${srcdir}:*/:/ s/:*@srcdir@:*/:/ s/^\([^=]*=[ ]*\):*/\1/ s/:*$// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF fi # test -n "$CONFIG_FILES" for ac_tag in :F $CONFIG_FILES do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5 echo "$as_me: error: Invalid tag $ac_tag." >&2;} { (exit 1); exit 1; }; };; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 echo "$as_me: error: cannot find input file: $ac_f" >&2;} { (exit 1); exit 1; }; };; esac ac_file_inputs="$ac_file_inputs $ac_f" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input="Generated from "`IFS=: echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure." if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { echo "$as_me:$LINENO: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} fi case $ac_tag in *:-:* | *:-) cat >"$tmp/stdin";; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` { as_dir="$ac_dir" case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= case `sed -n '/datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p ' $ac_file_inputs` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF sed "$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s&@configure_input@&$configure_input&;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t $ac_datarootdir_hack " $ac_file_inputs | sed -f "$tmp/subs-1.sed" >$tmp/out test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&5 echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&2;} rm -f "$tmp/stdin" case $ac_file in -) cat "$tmp/out"; rm -f "$tmp/out";; *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;; esac ;; esac done # for ac_tag { (exit 0); exit 0; } _ACEOF chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || { (exit 1); exit 1; } fi ================================================ FILE: src/cpp/PLEX3/autom4te.cache/requests ================================================ # This file was generated by Autom4te Wed Mar 19 22:03:23 PDT 2008. # It contains the lists of macros which have been traced. # It can be safely removed. @request = ( bless( [ '0', 1, [ '/usr/share/autoconf' ], [ '/usr/share/autoconf/autoconf/autoconf.m4f', 'configure.ac' ], { '_LT_AC_TAGCONFIG' => 1, 'AM_PROG_F77_C_O' => 1, 'AC_INIT' => 1, 'm4_pattern_forbid' => 1, 'AC_CANONICAL_TARGET' => 1, 'AC_SUBST' => 1, 'AC_CONFIG_LIBOBJ_DIR' => 1, 'AC_FC_SRCEXT' => 1, 'AC_CANONICAL_HOST' => 1, 'AC_PROG_LIBTOOL' => 1, 'AM_INIT_AUTOMAKE' => 1, 'AC_CONFIG_SUBDIRS' => 1, 'AM_AUTOMAKE_VERSION' => 1, 'LT_CONFIG_LTDL_DIR' => 1, 'AC_REQUIRE_AUX_FILE' => 1, 'AC_CONFIG_LINKS' => 1, 'm4_sinclude' => 1, 'LT_SUPPORTED_TAG' => 1, 'AM_MAINTAINER_MODE' => 1, 'AM_GNU_GETTEXT_INTL_SUBDIR' => 1, '_m4_warn' => 1, 'AM_PROG_CXX_C_O' => 1, 'AM_ENABLE_MULTILIB' => 1, 'AC_CONFIG_FILES' => 1, 'include' => 1, 'LT_INIT' => 1, 'AM_GNU_GETTEXT' => 1, 'AC_LIBSOURCE' => 1, 'AM_PROG_FC_C_O' => 1, 'AC_CANONICAL_BUILD' => 1, 'AC_FC_FREEFORM' => 1, 'AH_OUTPUT' => 1, '_AM_SUBST_NOTMAKE' => 1, 'AC_CONFIG_AUX_DIR' => 1, 'sinclude' => 1, 'm4_pattern_allow' => 1, 'AM_PROG_CC_C_O' => 1, 'AC_CANONICAL_SYSTEM' => 1, 'AM_CONDITIONAL' => 1, 'AC_CONFIG_HEADERS' => 1, 'AC_DEFINE_TRACE_LITERAL' => 1, 'm4_include' => 1, 'AC_SUBST_TRACE' => 1 } ], 'Autom4te::Request' ) ); ================================================ FILE: src/cpp/PLEX3/autom4te.cache/traces.0 ================================================ m4trace:configure.ac:1: -1- AC_INIT([src/rbind_jni.cpp]) m4trace:configure.ac:1: -1- m4_pattern_forbid([^_?A[CHUM]_]) m4trace:configure.ac:1: -1- m4_pattern_forbid([_AC_]) m4trace:configure.ac:1: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS']) m4trace:configure.ac:1: -1- m4_pattern_allow([^AS_FLAGS$]) m4trace:configure.ac:1: -1- m4_pattern_forbid([^_?m4_]) m4trace:configure.ac:1: -1- m4_pattern_forbid([^dnl$]) m4trace:configure.ac:1: -1- m4_pattern_forbid([^_?AS_]) m4trace:configure.ac:1: -1- AC_SUBST([SHELL], [${CONFIG_SHELL-/bin/sh}]) m4trace:configure.ac:1: -1- AC_SUBST_TRACE([SHELL]) m4trace:configure.ac:1: -1- m4_pattern_allow([^SHELL$]) m4trace:configure.ac:1: -1- AC_SUBST([PATH_SEPARATOR]) m4trace:configure.ac:1: -1- AC_SUBST_TRACE([PATH_SEPARATOR]) m4trace:configure.ac:1: -1- m4_pattern_allow([^PATH_SEPARATOR$]) m4trace:configure.ac:1: -1- AC_SUBST([PACKAGE_NAME], [m4_ifdef([AC_PACKAGE_NAME], ['AC_PACKAGE_NAME'])]) m4trace:configure.ac:1: -1- AC_SUBST_TRACE([PACKAGE_NAME]) m4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_NAME$]) m4trace:configure.ac:1: -1- AC_SUBST([PACKAGE_TARNAME], [m4_ifdef([AC_PACKAGE_TARNAME], ['AC_PACKAGE_TARNAME'])]) m4trace:configure.ac:1: -1- AC_SUBST_TRACE([PACKAGE_TARNAME]) m4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_TARNAME$]) m4trace:configure.ac:1: -1- AC_SUBST([PACKAGE_VERSION], [m4_ifdef([AC_PACKAGE_VERSION], ['AC_PACKAGE_VERSION'])]) m4trace:configure.ac:1: -1- AC_SUBST_TRACE([PACKAGE_VERSION]) m4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_VERSION$]) m4trace:configure.ac:1: -1- AC_SUBST([PACKAGE_STRING], [m4_ifdef([AC_PACKAGE_STRING], ['AC_PACKAGE_STRING'])]) m4trace:configure.ac:1: -1- AC_SUBST_TRACE([PACKAGE_STRING]) m4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_STRING$]) m4trace:configure.ac:1: -1- AC_SUBST([PACKAGE_BUGREPORT], [m4_ifdef([AC_PACKAGE_BUGREPORT], ['AC_PACKAGE_BUGREPORT'])]) m4trace:configure.ac:1: -1- AC_SUBST_TRACE([PACKAGE_BUGREPORT]) m4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$]) m4trace:configure.ac:1: -1- AC_SUBST([exec_prefix], [NONE]) m4trace:configure.ac:1: -1- AC_SUBST_TRACE([exec_prefix]) m4trace:configure.ac:1: -1- m4_pattern_allow([^exec_prefix$]) m4trace:configure.ac:1: -1- AC_SUBST([prefix], [NONE]) m4trace:configure.ac:1: -1- AC_SUBST_TRACE([prefix]) m4trace:configure.ac:1: -1- m4_pattern_allow([^prefix$]) m4trace:configure.ac:1: -1- AC_SUBST([program_transform_name], [s,x,x,]) m4trace:configure.ac:1: -1- AC_SUBST_TRACE([program_transform_name]) m4trace:configure.ac:1: -1- m4_pattern_allow([^program_transform_name$]) m4trace:configure.ac:1: -1- AC_SUBST([bindir], ['${exec_prefix}/bin']) m4trace:configure.ac:1: -1- AC_SUBST_TRACE([bindir]) m4trace:configure.ac:1: -1- m4_pattern_allow([^bindir$]) m4trace:configure.ac:1: -1- AC_SUBST([sbindir], ['${exec_prefix}/sbin']) m4trace:configure.ac:1: -1- AC_SUBST_TRACE([sbindir]) m4trace:configure.ac:1: -1- m4_pattern_allow([^sbindir$]) m4trace:configure.ac:1: -1- AC_SUBST([libexecdir], ['${exec_prefix}/libexec']) m4trace:configure.ac:1: -1- AC_SUBST_TRACE([libexecdir]) m4trace:configure.ac:1: -1- m4_pattern_allow([^libexecdir$]) m4trace:configure.ac:1: -1- AC_SUBST([datarootdir], ['${prefix}/share']) m4trace:configure.ac:1: -1- AC_SUBST_TRACE([datarootdir]) m4trace:configure.ac:1: -1- m4_pattern_allow([^datarootdir$]) m4trace:configure.ac:1: -1- AC_SUBST([datadir], ['${datarootdir}']) m4trace:configure.ac:1: -1- AC_SUBST_TRACE([datadir]) m4trace:configure.ac:1: -1- m4_pattern_allow([^datadir$]) m4trace:configure.ac:1: -1- AC_SUBST([sysconfdir], ['${prefix}/etc']) m4trace:configure.ac:1: -1- AC_SUBST_TRACE([sysconfdir]) m4trace:configure.ac:1: -1- m4_pattern_allow([^sysconfdir$]) m4trace:configure.ac:1: -1- AC_SUBST([sharedstatedir], ['${prefix}/com']) m4trace:configure.ac:1: -1- AC_SUBST_TRACE([sharedstatedir]) m4trace:configure.ac:1: -1- m4_pattern_allow([^sharedstatedir$]) m4trace:configure.ac:1: -1- AC_SUBST([localstatedir], ['${prefix}/var']) m4trace:configure.ac:1: -1- AC_SUBST_TRACE([localstatedir]) m4trace:configure.ac:1: -1- m4_pattern_allow([^localstatedir$]) m4trace:configure.ac:1: -1- AC_SUBST([includedir], ['${prefix}/include']) m4trace:configure.ac:1: -1- AC_SUBST_TRACE([includedir]) m4trace:configure.ac:1: -1- m4_pattern_allow([^includedir$]) m4trace:configure.ac:1: -1- AC_SUBST([oldincludedir], ['/usr/include']) m4trace:configure.ac:1: -1- AC_SUBST_TRACE([oldincludedir]) m4trace:configure.ac:1: -1- m4_pattern_allow([^oldincludedir$]) m4trace:configure.ac:1: -1- AC_SUBST([docdir], [m4_ifset([AC_PACKAGE_TARNAME], ['${datarootdir}/doc/${PACKAGE_TARNAME}'], ['${datarootdir}/doc/${PACKAGE}'])]) m4trace:configure.ac:1: -1- AC_SUBST_TRACE([docdir]) m4trace:configure.ac:1: -1- m4_pattern_allow([^docdir$]) m4trace:configure.ac:1: -1- AC_SUBST([infodir], ['${datarootdir}/info']) m4trace:configure.ac:1: -1- AC_SUBST_TRACE([infodir]) m4trace:configure.ac:1: -1- m4_pattern_allow([^infodir$]) m4trace:configure.ac:1: -1- AC_SUBST([htmldir], ['${docdir}']) m4trace:configure.ac:1: -1- AC_SUBST_TRACE([htmldir]) m4trace:configure.ac:1: -1- m4_pattern_allow([^htmldir$]) m4trace:configure.ac:1: -1- AC_SUBST([dvidir], ['${docdir}']) m4trace:configure.ac:1: -1- AC_SUBST_TRACE([dvidir]) m4trace:configure.ac:1: -1- m4_pattern_allow([^dvidir$]) m4trace:configure.ac:1: -1- AC_SUBST([pdfdir], ['${docdir}']) m4trace:configure.ac:1: -1- AC_SUBST_TRACE([pdfdir]) m4trace:configure.ac:1: -1- m4_pattern_allow([^pdfdir$]) m4trace:configure.ac:1: -1- AC_SUBST([psdir], ['${docdir}']) m4trace:configure.ac:1: -1- AC_SUBST_TRACE([psdir]) m4trace:configure.ac:1: -1- m4_pattern_allow([^psdir$]) m4trace:configure.ac:1: -1- AC_SUBST([libdir], ['${exec_prefix}/lib']) m4trace:configure.ac:1: -1- AC_SUBST_TRACE([libdir]) m4trace:configure.ac:1: -1- m4_pattern_allow([^libdir$]) m4trace:configure.ac:1: -1- AC_SUBST([localedir], ['${datarootdir}/locale']) m4trace:configure.ac:1: -1- AC_SUBST_TRACE([localedir]) m4trace:configure.ac:1: -1- m4_pattern_allow([^localedir$]) m4trace:configure.ac:1: -1- AC_SUBST([mandir], ['${datarootdir}/man']) m4trace:configure.ac:1: -1- AC_SUBST_TRACE([mandir]) m4trace:configure.ac:1: -1- m4_pattern_allow([^mandir$]) m4trace:configure.ac:1: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_NAME]) m4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_NAME$]) m4trace:configure.ac:1: -1- AH_OUTPUT([PACKAGE_NAME], [/* Define to the full name of this package. */ #undef PACKAGE_NAME]) m4trace:configure.ac:1: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_TARNAME]) m4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_TARNAME$]) m4trace:configure.ac:1: -1- AH_OUTPUT([PACKAGE_TARNAME], [/* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME]) m4trace:configure.ac:1: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_VERSION]) m4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_VERSION$]) m4trace:configure.ac:1: -1- AH_OUTPUT([PACKAGE_VERSION], [/* Define to the version of this package. */ #undef PACKAGE_VERSION]) m4trace:configure.ac:1: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_STRING]) m4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_STRING$]) m4trace:configure.ac:1: -1- AH_OUTPUT([PACKAGE_STRING], [/* Define to the full name and version of this package. */ #undef PACKAGE_STRING]) m4trace:configure.ac:1: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_BUGREPORT]) m4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$]) m4trace:configure.ac:1: -1- AH_OUTPUT([PACKAGE_BUGREPORT], [/* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT]) m4trace:configure.ac:1: -1- AC_SUBST([DEFS]) m4trace:configure.ac:1: -1- AC_SUBST_TRACE([DEFS]) m4trace:configure.ac:1: -1- m4_pattern_allow([^DEFS$]) m4trace:configure.ac:1: -1- AC_SUBST([ECHO_C]) m4trace:configure.ac:1: -1- AC_SUBST_TRACE([ECHO_C]) m4trace:configure.ac:1: -1- m4_pattern_allow([^ECHO_C$]) m4trace:configure.ac:1: -1- AC_SUBST([ECHO_N]) m4trace:configure.ac:1: -1- AC_SUBST_TRACE([ECHO_N]) m4trace:configure.ac:1: -1- m4_pattern_allow([^ECHO_N$]) m4trace:configure.ac:1: -1- AC_SUBST([ECHO_T]) m4trace:configure.ac:1: -1- AC_SUBST_TRACE([ECHO_T]) m4trace:configure.ac:1: -1- m4_pattern_allow([^ECHO_T$]) m4trace:configure.ac:1: -1- AC_SUBST([LIBS]) m4trace:configure.ac:1: -1- AC_SUBST_TRACE([LIBS]) m4trace:configure.ac:1: -1- m4_pattern_allow([^LIBS$]) m4trace:configure.ac:1: -1- AC_SUBST([build_alias]) m4trace:configure.ac:1: -1- AC_SUBST_TRACE([build_alias]) m4trace:configure.ac:1: -1- m4_pattern_allow([^build_alias$]) m4trace:configure.ac:1: -1- AC_SUBST([host_alias]) m4trace:configure.ac:1: -1- AC_SUBST_TRACE([host_alias]) m4trace:configure.ac:1: -1- m4_pattern_allow([^host_alias$]) m4trace:configure.ac:1: -1- AC_SUBST([target_alias]) m4trace:configure.ac:1: -1- AC_SUBST_TRACE([target_alias]) m4trace:configure.ac:1: -1- m4_pattern_allow([^target_alias$]) m4trace:configure.ac:3: -1- AC_SUBST([CC]) m4trace:configure.ac:3: -1- AC_SUBST_TRACE([CC]) m4trace:configure.ac:3: -1- m4_pattern_allow([^CC$]) m4trace:configure.ac:3: -1- AC_SUBST([CFLAGS]) m4trace:configure.ac:3: -1- AC_SUBST_TRACE([CFLAGS]) m4trace:configure.ac:3: -1- m4_pattern_allow([^CFLAGS$]) m4trace:configure.ac:3: -1- AC_SUBST([LDFLAGS]) m4trace:configure.ac:3: -1- AC_SUBST_TRACE([LDFLAGS]) m4trace:configure.ac:3: -1- m4_pattern_allow([^LDFLAGS$]) m4trace:configure.ac:3: -1- AC_SUBST([LIBS]) m4trace:configure.ac:3: -1- AC_SUBST_TRACE([LIBS]) m4trace:configure.ac:3: -1- m4_pattern_allow([^LIBS$]) m4trace:configure.ac:3: -1- AC_SUBST([CPPFLAGS]) m4trace:configure.ac:3: -1- AC_SUBST_TRACE([CPPFLAGS]) m4trace:configure.ac:3: -1- m4_pattern_allow([^CPPFLAGS$]) m4trace:configure.ac:3: -1- AC_SUBST([CC]) m4trace:configure.ac:3: -1- AC_SUBST_TRACE([CC]) m4trace:configure.ac:3: -1- m4_pattern_allow([^CC$]) m4trace:configure.ac:3: -1- AC_SUBST([CC]) m4trace:configure.ac:3: -1- AC_SUBST_TRACE([CC]) m4trace:configure.ac:3: -1- m4_pattern_allow([^CC$]) m4trace:configure.ac:3: -1- AC_SUBST([CC]) m4trace:configure.ac:3: -1- AC_SUBST_TRACE([CC]) m4trace:configure.ac:3: -1- m4_pattern_allow([^CC$]) m4trace:configure.ac:3: -1- AC_SUBST([CC]) m4trace:configure.ac:3: -1- AC_SUBST_TRACE([CC]) m4trace:configure.ac:3: -1- m4_pattern_allow([^CC$]) m4trace:configure.ac:3: -1- AC_SUBST([ac_ct_CC]) m4trace:configure.ac:3: -1- AC_SUBST_TRACE([ac_ct_CC]) m4trace:configure.ac:3: -1- m4_pattern_allow([^ac_ct_CC$]) m4trace:configure.ac:3: -1- AC_SUBST([EXEEXT], [$ac_cv_exeext]) m4trace:configure.ac:3: -1- AC_SUBST_TRACE([EXEEXT]) m4trace:configure.ac:3: -1- m4_pattern_allow([^EXEEXT$]) m4trace:configure.ac:3: -1- AC_SUBST([OBJEXT], [$ac_cv_objext]) m4trace:configure.ac:3: -1- AC_SUBST_TRACE([OBJEXT]) m4trace:configure.ac:3: -1- m4_pattern_allow([^OBJEXT$]) m4trace:configure.ac:4: -1- AC_SUBST([CXX]) m4trace:configure.ac:4: -1- AC_SUBST_TRACE([CXX]) m4trace:configure.ac:4: -1- m4_pattern_allow([^CXX$]) m4trace:configure.ac:4: -1- AC_SUBST([CXXFLAGS]) m4trace:configure.ac:4: -1- AC_SUBST_TRACE([CXXFLAGS]) m4trace:configure.ac:4: -1- m4_pattern_allow([^CXXFLAGS$]) m4trace:configure.ac:4: -1- AC_SUBST([LDFLAGS]) m4trace:configure.ac:4: -1- AC_SUBST_TRACE([LDFLAGS]) m4trace:configure.ac:4: -1- m4_pattern_allow([^LDFLAGS$]) m4trace:configure.ac:4: -1- AC_SUBST([LIBS]) m4trace:configure.ac:4: -1- AC_SUBST_TRACE([LIBS]) m4trace:configure.ac:4: -1- m4_pattern_allow([^LIBS$]) m4trace:configure.ac:4: -1- AC_SUBST([CPPFLAGS]) m4trace:configure.ac:4: -1- AC_SUBST_TRACE([CPPFLAGS]) m4trace:configure.ac:4: -1- m4_pattern_allow([^CPPFLAGS$]) m4trace:configure.ac:4: -1- AC_SUBST([CXX]) m4trace:configure.ac:4: -1- AC_SUBST_TRACE([CXX]) m4trace:configure.ac:4: -1- m4_pattern_allow([^CXX$]) m4trace:configure.ac:4: -1- AC_SUBST([ac_ct_CXX]) m4trace:configure.ac:4: -1- AC_SUBST_TRACE([ac_ct_CXX]) m4trace:configure.ac:4: -1- m4_pattern_allow([^ac_ct_CXX$]) m4trace:configure.ac:6: -1- AC_REQUIRE_AUX_FILE([install-sh]) m4trace:configure.ac:6: -1- AC_SUBST([INSTALL_PROGRAM]) m4trace:configure.ac:6: -1- AC_SUBST_TRACE([INSTALL_PROGRAM]) m4trace:configure.ac:6: -1- m4_pattern_allow([^INSTALL_PROGRAM$]) m4trace:configure.ac:6: -1- AC_SUBST([INSTALL_SCRIPT]) m4trace:configure.ac:6: -1- AC_SUBST_TRACE([INSTALL_SCRIPT]) m4trace:configure.ac:6: -1- m4_pattern_allow([^INSTALL_SCRIPT$]) m4trace:configure.ac:6: -1- AC_SUBST([INSTALL_DATA]) m4trace:configure.ac:6: -1- AC_SUBST_TRACE([INSTALL_DATA]) m4trace:configure.ac:6: -1- m4_pattern_allow([^INSTALL_DATA$]) m4trace:configure.ac:8: -1- AC_SUBST([CPP]) m4trace:configure.ac:8: -1- AC_SUBST_TRACE([CPP]) m4trace:configure.ac:8: -1- m4_pattern_allow([^CPP$]) m4trace:configure.ac:8: -1- AC_SUBST([CPPFLAGS]) m4trace:configure.ac:8: -1- AC_SUBST_TRACE([CPPFLAGS]) m4trace:configure.ac:8: -1- m4_pattern_allow([^CPPFLAGS$]) m4trace:configure.ac:8: -1- AC_SUBST([CPP]) m4trace:configure.ac:8: -1- AC_SUBST_TRACE([CPP]) m4trace:configure.ac:8: -1- m4_pattern_allow([^CPP$]) m4trace:configure.ac:8: -1- AC_SUBST([GREP]) m4trace:configure.ac:8: -1- AC_SUBST_TRACE([GREP]) m4trace:configure.ac:8: -1- m4_pattern_allow([^GREP$]) m4trace:configure.ac:8: -1- AC_SUBST([GREP]) m4trace:configure.ac:8: -1- AC_SUBST_TRACE([GREP]) m4trace:configure.ac:8: -1- m4_pattern_allow([^GREP$]) m4trace:configure.ac:8: -1- AC_SUBST([EGREP]) m4trace:configure.ac:8: -1- AC_SUBST_TRACE([EGREP]) m4trace:configure.ac:8: -1- m4_pattern_allow([^EGREP$]) m4trace:configure.ac:8: -1- AC_SUBST([EGREP]) m4trace:configure.ac:8: -1- AC_SUBST_TRACE([EGREP]) m4trace:configure.ac:8: -1- m4_pattern_allow([^EGREP$]) m4trace:configure.ac:9: -1- AC_DEFINE_TRACE_LITERAL([STDC_HEADERS]) m4trace:configure.ac:9: -1- m4_pattern_allow([^STDC_HEADERS$]) m4trace:configure.ac:9: -1- AH_OUTPUT([STDC_HEADERS], [/* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS]) m4trace:configure.ac:9: -1- AH_OUTPUT([HAVE_SYS_TYPES_H], [/* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H]) m4trace:configure.ac:9: -1- AH_OUTPUT([HAVE_SYS_STAT_H], [/* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H]) m4trace:configure.ac:9: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H]) m4trace:configure.ac:9: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the header file. */ #undef HAVE_STRING_H]) m4trace:configure.ac:9: -1- AH_OUTPUT([HAVE_MEMORY_H], [/* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H]) m4trace:configure.ac:9: -1- AH_OUTPUT([HAVE_STRINGS_H], [/* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H]) m4trace:configure.ac:9: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H]) m4trace:configure.ac:9: -1- AH_OUTPUT([HAVE_STDINT_H], [/* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H]) m4trace:configure.ac:9: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H]) m4trace:configure.ac:9: -1- AC_LIBSOURCE([memcmp.c]) m4trace:configure.ac:9: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS memcmp.$ac_objext"]) m4trace:configure.ac:9: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) m4trace:configure.ac:9: -1- m4_pattern_allow([^LIB@&t@OBJS$]) m4trace:configure.ac:10: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H]) m4trace:configure.ac:10: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MALLOC]) m4trace:configure.ac:10: -1- m4_pattern_allow([^HAVE_MALLOC$]) m4trace:configure.ac:10: -1- AH_OUTPUT([HAVE_MALLOC], [/* Define to 1 if your system has a GNU libc compatible `malloc\' function, and to 0 otherwise. */ #undef HAVE_MALLOC]) m4trace:configure.ac:10: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MALLOC]) m4trace:configure.ac:10: -1- m4_pattern_allow([^HAVE_MALLOC$]) m4trace:configure.ac:10: -1- AC_LIBSOURCE([malloc.c]) m4trace:configure.ac:10: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS malloc.$ac_objext"]) m4trace:configure.ac:10: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) m4trace:configure.ac:10: -1- m4_pattern_allow([^LIB@&t@OBJS$]) m4trace:configure.ac:10: -1- AC_DEFINE_TRACE_LITERAL([malloc]) m4trace:configure.ac:10: -1- m4_pattern_allow([^malloc$]) m4trace:configure.ac:10: -1- AH_OUTPUT([malloc], [/* Define to rpl_malloc if the replacement function should be used. */ #undef malloc]) m4trace:configure.ac:11: -1- AC_SUBST([POW_LIB]) m4trace:configure.ac:11: -1- AC_SUBST_TRACE([POW_LIB]) m4trace:configure.ac:11: -1- m4_pattern_allow([^POW_LIB$]) m4trace:configure.ac:11: -1- AC_LIBSOURCE([strtod.c]) m4trace:configure.ac:11: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS strtod.$ac_objext"]) m4trace:configure.ac:11: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) m4trace:configure.ac:11: -1- m4_pattern_allow([^LIB@&t@OBJS$]) m4trace:configure.ac:12: -1- AC_DEFINE_TRACE_LITERAL([RETSIGTYPE]) m4trace:configure.ac:12: -1- m4_pattern_allow([^RETSIGTYPE$]) m4trace:configure.ac:12: -1- AH_OUTPUT([RETSIGTYPE], [/* Define as the return type of signal handlers (`int\' or `void\'). */ #undef RETSIGTYPE]) m4trace:configure.ac:13: -1- AH_OUTPUT([HAVE_VPRINTF], [/* Define to 1 if you have the `vprintf\' function. */ #undef HAVE_VPRINTF]) m4trace:configure.ac:13: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DOPRNT]) m4trace:configure.ac:13: -1- m4_pattern_allow([^HAVE_DOPRNT$]) m4trace:configure.ac:13: -1- AH_OUTPUT([HAVE_DOPRNT], [/* Define to 1 if you don\'t have `vprintf\' but do have `_doprnt.\' */ #undef HAVE_DOPRNT]) m4trace:configure.ac:15: -1- AC_CANONICAL_HOST m4trace:configure.ac:15: -1- AC_CANONICAL_BUILD m4trace:configure.ac:15: -1- AC_REQUIRE_AUX_FILE([config.sub]) m4trace:configure.ac:15: -1- AC_REQUIRE_AUX_FILE([config.guess]) m4trace:configure.ac:15: -1- AC_SUBST([build], [$ac_cv_build]) m4trace:configure.ac:15: -1- AC_SUBST_TRACE([build]) m4trace:configure.ac:15: -1- m4_pattern_allow([^build$]) m4trace:configure.ac:15: -1- AC_SUBST([build_cpu], [$[1]]) m4trace:configure.ac:15: -1- AC_SUBST_TRACE([build_cpu]) m4trace:configure.ac:15: -1- m4_pattern_allow([^build_cpu$]) m4trace:configure.ac:15: -1- AC_SUBST([build_vendor], [$[2]]) m4trace:configure.ac:15: -1- AC_SUBST_TRACE([build_vendor]) m4trace:configure.ac:15: -1- m4_pattern_allow([^build_vendor$]) m4trace:configure.ac:15: -1- AC_SUBST([build_os]) m4trace:configure.ac:15: -1- AC_SUBST_TRACE([build_os]) m4trace:configure.ac:15: -1- m4_pattern_allow([^build_os$]) m4trace:configure.ac:15: -1- AC_SUBST([host], [$ac_cv_host]) m4trace:configure.ac:15: -1- AC_SUBST_TRACE([host]) m4trace:configure.ac:15: -1- m4_pattern_allow([^host$]) m4trace:configure.ac:15: -1- AC_SUBST([host_cpu], [$[1]]) m4trace:configure.ac:15: -1- AC_SUBST_TRACE([host_cpu]) m4trace:configure.ac:15: -1- m4_pattern_allow([^host_cpu$]) m4trace:configure.ac:15: -1- AC_SUBST([host_vendor], [$[2]]) m4trace:configure.ac:15: -1- AC_SUBST_TRACE([host_vendor]) m4trace:configure.ac:15: -1- m4_pattern_allow([^host_vendor$]) m4trace:configure.ac:15: -1- AC_SUBST([host_os]) m4trace:configure.ac:15: -1- AC_SUBST_TRACE([host_os]) m4trace:configure.ac:15: -1- m4_pattern_allow([^host_os$]) m4trace:configure.ac:18: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... configure.ac:18: the top level]) m4trace:configure.ac:50: -1- AC_SUBST([CPPFLAGS], ["${JAVA_CPPFLAGS} ${CPPFLAGS}"]) m4trace:configure.ac:50: -1- AC_SUBST_TRACE([CPPFLAGS]) m4trace:configure.ac:50: -1- m4_pattern_allow([^CPPFLAGS$]) m4trace:configure.ac:51: -1- AC_SUBST([LIBS], ["${JAVA_LIBS} -Wl,-rpath,${JAVA_LD_LIBRARY_PATH} ${LIBS}"]) m4trace:configure.ac:51: -1- AC_SUBST_TRACE([LIBS]) m4trace:configure.ac:51: -1- m4_pattern_allow([^LIBS$]) m4trace:configure.ac:53: -1- AC_SUBST([CPPFLAGS]) m4trace:configure.ac:53: -1- AC_SUBST_TRACE([CPPFLAGS]) m4trace:configure.ac:53: -1- m4_pattern_allow([^CPPFLAGS$]) m4trace:configure.ac:54: -1- AC_SUBST([LIBS]) m4trace:configure.ac:54: -1- AC_SUBST_TRACE([LIBS]) m4trace:configure.ac:54: -1- m4_pattern_allow([^LIBS$]) m4trace:configure.ac:59: -1- AH_OUTPUT([HAVE_JNI_H], [/* Define to 1 if you have the header file. */ #undef HAVE_JNI_H]) m4trace:configure.ac:64: -1- AC_CONFIG_FILES([src/Makevars]) m4trace:configure.ac:64: -1- _m4_warn([obsolete], [AC_OUTPUT should be used without arguments. You should run autoupdate.], []) m4trace:configure.ac:64: -1- AC_SUBST([LIB@&t@OBJS], [$ac_libobjs]) m4trace:configure.ac:64: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) m4trace:configure.ac:64: -1- m4_pattern_allow([^LIB@&t@OBJS$]) m4trace:configure.ac:64: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs]) m4trace:configure.ac:64: -1- AC_SUBST_TRACE([LTLIBOBJS]) m4trace:configure.ac:64: -1- m4_pattern_allow([^LTLIBOBJS$]) m4trace:configure.ac:64: -1- AC_SUBST_TRACE([top_builddir]) m4trace:configure.ac:64: -1- AC_SUBST_TRACE([srcdir]) m4trace:configure.ac:64: -1- AC_SUBST_TRACE([abs_srcdir]) m4trace:configure.ac:64: -1- AC_SUBST_TRACE([top_srcdir]) m4trace:configure.ac:64: -1- AC_SUBST_TRACE([abs_top_srcdir]) m4trace:configure.ac:64: -1- AC_SUBST_TRACE([builddir]) m4trace:configure.ac:64: -1- AC_SUBST_TRACE([abs_builddir]) m4trace:configure.ac:64: -1- AC_SUBST_TRACE([abs_top_builddir]) m4trace:configure.ac:64: -1- AC_SUBST_TRACE([INSTALL]) ================================================ FILE: src/cpp/PLEX3/config.guess ================================================ #! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 # Free Software Foundation, Inc. timestamp='2008-01-23' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner . # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # The plan is that this can be called by configure scripts if you # don't specify an explicit build system type. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep __ELF__ >/dev/null then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm:riscos:*:*|arm:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[456]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep __LP64__ >/dev/null then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) case ${UNAME_MACHINE} in pc98) echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:[3456]*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; EM64T | authenticamd) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) echo ia64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then echo ${UNAME_MACHINE}-unknown-linux-gnu else echo ${UNAME_MACHINE}-unknown-linux-gnueabi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo crisv32-axis-linux-gnu exit ;; frv:Linux:*:*) echo frv-unknown-linux-gnu exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; mips:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips #undef mipsel #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mipsel #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips64 #undef mips64el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mips64el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips64 #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo or32-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent # problems with other programs or directories called `ld' in the path. # Set LC_ALL=C to ensure ld outputs messages in English. ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ | sed -ne '/supported targets:/!d s/[ ][ ]*/ /g s/.*supported targets: *// s/ .*// p'` case "$ld_supported_targets" in elf32-i386) TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" exit ;; coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" exit ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-pc-linux-gnuoldld" exit ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include #ifdef __ELF__ # ifdef __GLIBC__ # if __GLIBC__ >= 2 LIBC=gnu # else LIBC=gnulibc1 # endif # else LIBC=gnulibc1 # endif #else #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) LIBC=gnu #else LIBC=gnuaout #endif #endif #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^LIBC/{ s: ::g p }'`" test x"${LIBC}" != x && { echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit } test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i386. echo i386-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: ================================================ FILE: src/cpp/PLEX3/config.status ================================================ #! /bin/bash # Generated by configure. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=${CONFIG_SHELL-/bin/bash} ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then set -o posix fi DUALCASE=1; export DUALCASE # for MKS sh # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # Work around bugs in pre-3.0 UWIN ksh. $as_unset ENV MAIL MAILPATH PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)$' \| \ . : '\(.\)' 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } /^X\/\(\/\/\)$/{ s//\1/; q; } /^X\/\(\/\).*/{ s//\1/; q; } s/.*/./; q'` # PATH needs CR, and LINENO needs CR and PATH. # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" || { # Find who we are. Look in the path if we contain no path at all # relative or not. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5 echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;} { (exit 1); exit 1; }; } fi case $CONFIG_SHELL in '') as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for as_base in sh bash ksh sh5; do case $as_dir in /*) if ("$as_dir/$as_base" -c ' as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } CONFIG_SHELL=$as_dir/$as_base export CONFIG_SHELL exec "$CONFIG_SHELL" "$0" ${1+"$@"} fi;; esac done done ;; esac # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line before each line; the second 'sed' does the real # work. The second script uses 'N' to pair each line-number line # with the numbered line, and appends trailing '-' during # substitution so that $LINENO is not a special case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) sed '=' <$as_myself | sed ' N s,$,-, : loop s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, t loop s,-$,, s,^['$as_cr_digits']*\n,, ' >$as_me.lineno && chmod +x $as_me.lineno || { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5 echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;} { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensible to this). . ./$as_me.lineno # Exit status is that of the last command. exit } case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in *c*,-n*) ECHO_N= ECHO_C=' ' ECHO_T=' ' ;; *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; *) ECHO_N= ECHO_C='\c' ECHO_T= ;; esac if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then # We could just check for DJGPP; but this test a) works b) is more generic # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). if test -f conf$$.exe; then # Don't use ln at all; we don't have any links as_ln_s='cp -p' else as_ln_s='ln -s' fi elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.file if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_executable_p="test -f" # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" # IFS # We need space, tab and new line, in precisely that order. as_nl=' ' IFS=" $as_nl" # CDPATH. $as_unset CDPATH exec 6>&1 # Open the log real soon, to keep \$[0] and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. Logging --version etc. is OK. exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX } >&5 cat >&5 <<_CSEOF This file was extended by $as_me, which was generated by GNU Autoconf 2.59. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ _CSEOF echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5 echo >&5 config_files=" src/Makevars" ac_cs_usage="\ \`$as_me' instantiates files from templates according to the current configuration. Usage: $0 [OPTIONS] [FILE]... -h, --help print this help, then exit -V, --version print version number, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE Configuration files: $config_files Report bugs to ." ac_cs_version="\ config.status configured by ./configure, generated by GNU Autoconf 2.59, with options \"'--with-jre=/afs/ir.stanford.edu/systems/i386_linux24/pubsw/package/Languages/jdk-6/i386_linux24/apps/jdk-6' '--with-jplex=/afs/ir.stanford.edu/users/c/h/chakj/plex3/jplex.jar'\" Copyright (C) 2003 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." srcdir=. INSTALL="/usr/bin/install -c" # If no file are specified by the user, then we need to provide default # value. By we need to know if files were specified by the user. ac_need_defaults=: while test $# != 0 do case $1 in --*=*) ac_option=`expr "x$1" : 'x\([^=]*\)='` ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'` ac_shift=: ;; -*) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; *) # This is not an option, so the user has probably given explicit # arguments. ac_option=$1 ac_need_defaults=false;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --vers* | -V ) echo "$ac_cs_version"; exit 0 ;; --he | --h) # Conflict between --help and --header { { echo "$as_me:$LINENO: error: ambiguous option: $1 Try \`$0 --help' for more information." >&5 echo "$as_me: error: ambiguous option: $1 Try \`$0 --help' for more information." >&2;} { (exit 1); exit 1; }; };; --help | --hel | -h ) echo "$ac_cs_usage"; exit 0 ;; --debug | --d* | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift CONFIG_FILES="$CONFIG_FILES $ac_optarg" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" ac_need_defaults=false;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1 Try \`$0 --help' for more information." >&5 echo "$as_me: error: unrecognized option: $1 Try \`$0 --help' for more information." >&2;} { (exit 1); exit 1; }; } ;; *) ac_config_targets="$ac_config_targets $1" ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi if $ac_cs_recheck; then echo "running /bin/bash ./configure " '--with-jre=/afs/ir.stanford.edu/systems/i386_linux24/pubsw/package/Languages/jdk-6/i386_linux24/apps/jdk-6' '--with-jplex=/afs/ir.stanford.edu/users/c/h/chakj/plex3/jplex.jar' $ac_configure_extra_args " --no-create --no-recursion" >&6 exec /bin/bash ./configure '--with-jre=/afs/ir.stanford.edu/systems/i386_linux24/pubsw/package/Languages/jdk-6/i386_linux24/apps/jdk-6' '--with-jplex=/afs/ir.stanford.edu/users/c/h/chakj/plex3/jplex.jar' $ac_configure_extra_args --no-create --no-recursion fi for ac_config_target in $ac_config_targets do case "$ac_config_target" in # Handling of arguments. "src/Makevars" ) CONFIG_FILES="$CONFIG_FILES src/Makevars" ;; *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason to put it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Create a temporary directory, and hook for its removal unless debugging. $debug || { trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 trap '{ (exit 1); exit 1; }' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./confstat$$-$RANDOM (umask 077 && mkdir $tmp) } || { echo "$me: cannot create a temporary directory in ." >&2 { (exit 1); exit 1; } } # # CONFIG_FILES section. # # No need to generate the scripts if there are no CONFIG_FILES. # This happens for instance when ./config.status config.h if test -n "$CONFIG_FILES"; then # Protect against being on the right side of a sed subst in config.status. sed 's/,@/@@/; s/@,/@@/; s/,;t t$/@;t t/; /@;t t$/s/[\\&,]/\\&/g; s/@@/,@/; s/@@/@,/; s/@;t t$/,;t t/' >$tmp/subs.sed <<\CEOF s,@SHELL@,/bin/bash,;t t s,@PATH_SEPARATOR@,:,;t t s,@PACKAGE_NAME@,,;t t s,@PACKAGE_TARNAME@,,;t t s,@PACKAGE_VERSION@,,;t t s,@PACKAGE_STRING@,,;t t s,@PACKAGE_BUGREPORT@,,;t t s,@exec_prefix@,${prefix},;t t s,@prefix@,/usr/local,;t t s,@program_transform_name@,s,x,x,,;t t s,@bindir@,${exec_prefix}/bin,;t t s,@sbindir@,${exec_prefix}/sbin,;t t s,@libexecdir@,${exec_prefix}/libexec,;t t s,@datadir@,${prefix}/share,;t t s,@sysconfdir@,${prefix}/etc,;t t s,@sharedstatedir@,${prefix}/com,;t t s,@localstatedir@,${prefix}/var,;t t s,@libdir@,${exec_prefix}/lib,;t t s,@includedir@,${prefix}/include,;t t s,@oldincludedir@,/usr/include,;t t s,@infodir@,${prefix}/info,;t t s,@mandir@,${prefix}/man,;t t s,@build_alias@,,;t t s,@host_alias@,,;t t s,@target_alias@,,;t t s,@DEFS@,-DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MALLOC=1 -DRETSIGTYPE=void -DHAVE_VPRINTF=1 -DHAVE_JNI_H=1 ,;t t s,@ECHO_C@,,;t t s,@ECHO_N@,-n,;t t s,@ECHO_T@,,;t t s,@LIBS@,-L/afs/ir.stanford.edu/systems/i386_linux24/pubsw/package/Languages/jdk-6/i386_linux24/apps/jdk-6/jre/lib/i386/server -ljvm -Wl,-rpath,/afs/ir.stanford.edu/systems/i386_linux24/pubsw/package/Languages/jdk-6/i386_linux24/apps/jdk-6/jre/lib/i386/server ,;t t s,@CC@,gcc -std=gnu99,;t t s,@CFLAGS@,-g -O2,;t t s,@LDFLAGS@,,;t t s,@CPPFLAGS@,-I/afs/ir.stanford.edu/systems/i386_linux24/pubsw/package/Languages/jdk-6/i386_linux24/apps/jdk-6/include -I /afs/ir.stanford.edu/systems/i386_linux24/pubsw/package/Languages/jdk-6/i386_linux24/apps/jdk-6/include/linux ,;t t s,@ac_ct_CC@,gcc,;t t s,@EXEEXT@,,;t t s,@OBJEXT@,o,;t t s,@CXX@,g++,;t t s,@CXXFLAGS@,-g -O2,;t t s,@ac_ct_CXX@,g++,;t t s,@INSTALL_PROGRAM@,${INSTALL},;t t s,@INSTALL_SCRIPT@,${INSTALL},;t t s,@INSTALL_DATA@,${INSTALL} -m 644,;t t s,@CPP@,gcc -E,;t t s,@EGREP@,grep -E,;t t s,@LIBOBJS@,,;t t s,@POW_LIB@,,;t t s,@build@,i686-pc-linux-gnu,;t t s,@build_cpu@,i686,;t t s,@build_vendor@,pc,;t t s,@build_os@,linux-gnu,;t t s,@host@,i686-pc-linux-gnu,;t t s,@host_cpu@,i686,;t t s,@host_vendor@,pc,;t t s,@host_os@,linux-gnu,;t t s,@LTLIBOBJS@,,;t t CEOF # Split the substitutions into bite-sized pieces for seds with # small command number limits, like on Digital OSF/1 and HP-UX. ac_max_sed_lines=48 ac_sed_frag=1 # Number of current file. ac_beg=1 # First line for current file. ac_end=$ac_max_sed_lines # Line after last line for current file. ac_more_lines=: ac_sed_cmds= while $ac_more_lines; do if test $ac_beg -gt 1; then sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag else sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag fi if test ! -s $tmp/subs.frag; then ac_more_lines=false else # The purpose of the label and of the branching condition is to # speed up the sed processing (if there are no `@' at all, there # is no need to browse any of the substitutions). # These are the two extra sed commands mentioned above. (echo ':t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed if test -z "$ac_sed_cmds"; then ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" else ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" fi ac_sed_frag=`expr $ac_sed_frag + 1` ac_beg=$ac_end ac_end=`expr $ac_end + $ac_max_sed_lines` fi done if test -z "$ac_sed_cmds"; then ac_sed_cmds=cat fi fi # test -n "$CONFIG_FILES" for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". case $ac_file in - | *:- | *:-:* ) # input from stdin cat >$tmp/stdin ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; * ) ac_file_in=$ac_file.in ;; esac # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. ac_dir=`(dirname "$ac_file") 2>/dev/null || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` { if $as_mkdir_p; then mkdir -p "$ac_dir" else as_dir="$ac_dir" as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. if test "$ac_dir" != .; then ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A "../" for each directory in $ac_dir_suffix. ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` else ac_dir_suffix= ac_top_builddir= fi case $srcdir in .) # No --srcdir option. We are building in place. ac_srcdir=. if test -z "$ac_top_builddir"; then ac_top_srcdir=. else ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` fi ;; [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ;; *) # Relative path. ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac # Do not use `cd foo && pwd` to compute absolute paths, because # the directories may not exist. case `pwd` in .) ac_abs_builddir="$ac_dir";; *) case "$ac_dir" in .) ac_abs_builddir=`pwd`;; [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; *) ac_abs_builddir=`pwd`/"$ac_dir";; esac;; esac case $ac_abs_builddir in .) ac_abs_top_builddir=${ac_top_builddir}.;; *) case ${ac_top_builddir}. in .) ac_abs_top_builddir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; esac;; esac case $ac_abs_builddir in .) ac_abs_srcdir=$ac_srcdir;; *) case $ac_srcdir in .) ac_abs_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; esac;; esac case $ac_abs_builddir in .) ac_abs_top_srcdir=$ac_top_srcdir;; *) case $ac_top_srcdir in .) ac_abs_top_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; esac;; esac case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_builddir$INSTALL ;; esac if test x"$ac_file" != x-; then { echo "$as_me:$LINENO: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} rm -f "$ac_file" fi # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ if test x"$ac_file" = x-; then configure_input= else configure_input="$ac_file. " fi configure_input=$configure_input"Generated from `echo $ac_file_in | sed 's,.*/,,'` by configure." # First look for the input files in the build tree, otherwise in the # src tree. ac_file_inputs=`IFS=: for f in $ac_file_in; do case $f in -) echo $tmp/stdin ;; [\\/$]*) # Absolute (can't be DOS-style, as IFS=:) test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } echo "$f";; *) # Relative if test -f "$f"; then # Build tree echo "$f" elif test -f "$srcdir/$f"; then # Source tree echo "$srcdir/$f" else # /dev/null tree { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } fi;; esac done` || { (exit 1); exit 1; } sed "/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/; s/:*\${srcdir}:*/:/; s/:*@srcdir@:*/:/; s/^\([^=]*=[ ]*\):*/\1/; s/:*$//; s/^[^=]*=[ ]*$//; } :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s,@configure_input@,$configure_input,;t t s,@srcdir@,$ac_srcdir,;t t s,@abs_srcdir@,$ac_abs_srcdir,;t t s,@top_srcdir@,$ac_top_srcdir,;t t s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t s,@builddir@,$ac_builddir,;t t s,@abs_builddir@,$ac_abs_builddir,;t t s,@top_builddir@,$ac_top_builddir,;t t s,@abs_top_builddir@,$ac_abs_top_builddir,;t t s,@INSTALL@,$ac_INSTALL,;t t " $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out rm -f $tmp/stdin if test x"$ac_file" != x-; then mv $tmp/out $ac_file else cat $tmp/out rm -f $tmp/out fi done { (exit 0); exit 0; } ================================================ FILE: src/cpp/PLEX3/config.sub ================================================ #! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 # Free Software Foundation, Inc. timestamp='2008-01-16' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray) os= basic_machine=$1 ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | mcore | mep \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64vr | mips64vrel \ | mips64orion | mips64orionel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | mt \ | msp430 \ | nios | nios2 \ | ns16k | ns32k \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | score \ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64vr-* | mips64vrel-* \ | mips64orion-* | mips64orionel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) basic_machine=$basic_machine-unknown ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; blackfin) basic_machine=bfin-unknown os=-linux ;; blackfin-*) basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; c90) basic_machine=c90-cray os=-unicos ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16) basic_machine=cr16-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; parisc) basic_machine=hppa-unknown os=-linux ;; parisc-*) basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tic55x | c55x*) basic_machine=tic55x-unknown os=-coff ;; tic6x | c6x*) basic_machine=tic6x-unknown os=-coff ;; tile*) basic_machine=tile-unknown os=-linux-gnu ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: ================================================ FILE: src/cpp/PLEX3/configure ================================================ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.61. # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi # PATH needs CR # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) as_nl=' ' IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # CDPATH. $as_unset CDPATH if test "x$CONFIG_SHELL" = x; then if (eval ":") 2>/dev/null; then as_have_required=yes else as_have_required=no fi if test $as_have_required = yes && (eval ": (as_func_return () { (exit \$1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = \"\$1\" ); then : else exitcode=1 echo positional parameters were not saved. fi test \$exitcode = 0) || { (exit 1); exit 1; } ( as_lineno_1=\$LINENO as_lineno_2=\$LINENO test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } ") 2> /dev/null; then : else as_candidate_shells= as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. case $as_dir in /*) for as_base in sh bash ksh sh5; do as_candidate_shells="$as_candidate_shells $as_dir/$as_base" done;; esac done IFS=$as_save_IFS for as_shell in $as_candidate_shells $SHELL; do # Try only shells that exist, to save several forks. if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { ("$as_shell") 2> /dev/null <<\_ASEOF if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi : _ASEOF }; then CONFIG_SHELL=$as_shell as_have_required=yes if { "$as_shell" 2> /dev/null <<\_ASEOF if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi : (as_func_return () { (exit $1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = "$1" ); then : else exitcode=1 echo positional parameters were not saved. fi test $exitcode = 0) || { (exit 1); exit 1; } ( as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } _ASEOF }; then break fi fi done if test "x$CONFIG_SHELL" != x; then for as_var in BASH_ENV ENV do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done export CONFIG_SHELL exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} fi if test $as_have_required = no; then echo This script requires a shell more modern than all the echo shells that I found on your system. Please install a echo modern shell, or manually run the script under such a echo shell if you do have one. { (exit 1); exit 1; } fi fi fi (eval "as_func_return () { (exit \$1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = \"\$1\" ); then : else exitcode=1 echo positional parameters were not saved. fi test \$exitcode = 0") || { echo No shell found that supports shell functions. echo Please tell autoconf@gnu.org about your system, echo including any error possibly output before this echo message } as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, and appends # trailing '-' during substitution so that $LINENO is not a special # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # scripts with optimization help from Paolo Bonzini. Blame Lee # E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir fi echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME= PACKAGE_TARNAME= PACKAGE_VERSION= PACKAGE_STRING= PACKAGE_BUGREPORT= ac_unique_file="src/rbind_jni.cpp" # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datarootdir datadir sysconfdir sharedstatedir localstatedir includedir oldincludedir docdir infodir htmldir dvidir pdfdir psdir libdir localedir mandir DEFS ECHO_C ECHO_N ECHO_T LIBS build_alias host_alias target_alias CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CPP GREP EGREP LIBOBJS POW_LIB build build_cpu build_vendor build_os host host_cpu host_vendor host_os LTLIBOBJS' ac_subst_files='' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CXX CXXFLAGS CCC CPP' # Initialize some variables set by options. ac_init_help= ac_init_version=false # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'` eval enable_$ac_feature=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'` eval enable_$ac_feature=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package | sed 's/[-.]/_/g'` eval with_$ac_package=\$ac_optarg ;; -without-* | --without-*) ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package | sed 's/[-.]/_/g'` eval with_$ac_package=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) { echo "$as_me: error: unrecognized option: $ac_option Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 { (exit 1); exit 1; }; } eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` { echo "$as_me: error: missing argument to $ac_option" >&2 { (exit 1); exit 1; }; } fi # Be sure to have absolute directory names. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; } done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || { echo "$as_me: error: Working directory cannot be determined" >&2 { (exit 1); exit 1; }; } test "X$ac_ls_di" = "X$ac_pwd_ls_di" || { echo "$as_me: error: pwd does not report name of working directory" >&2 { (exit 1); exit 1; }; } # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$0" || $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$0" : 'X\(//\)[^/]' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || echo X"$0" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 { (exit 1); exit 1; }; } fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2 { (exit 1); exit 1; }; } pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures this package to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then cat <<\_ACEOF Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-jplex=JPLEX_PATH path to the jplex.jar file Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if you have headers in a nonstandard directory CXX C++ compiler command CXXFLAGS C++ compiler flags CPP C preprocessor Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF configure generated by GNU Autoconf 2.61 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by $as_me, which was generated by GNU Autoconf 2.61. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; 2) ac_configure_args1="$ac_configure_args1 '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac done done $as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } $as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo cat <<\_ASBOX ## ---------------- ## ## Cache variables. ## ## ---------------- ## _ASBOX echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( *) $as_unset $ac_var ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo cat <<\_ASBOX ## ----------------- ## ## Output variables. ## ## ----------------- ## _ASBOX echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX ## ------------------- ## ## File substitutions. ## ## ------------------- ## _ASBOX echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then cat <<\_ASBOX ## ----------- ## ## confdefs.h. ## ## ----------- ## _ASBOX echo cat confdefs.h echo fi test "$ac_signal" != 0 && echo "$as_me: caught signal $ac_signal" echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer explicitly selected file to automatically selected ones. if test -n "$CONFIG_SITE"; then set x "$CONFIG_SITE" elif test "x$prefix" != xNONE; then set x "$prefix/share/config.site" "$prefix/etc/config.site" else set x "$ac_default_prefix/share/config.site" \ "$ac_default_prefix/etc/config.site" fi shift for ac_site_file do if test -r "$ac_site_file"; then { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special # files actually), so we avoid doing that. if test -f "$cache_file"; then { echo "$as_me:$LINENO: loading cache $cache_file" >&5 echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { echo "$as_me:$LINENO: creating cache $cache_file" >&5 echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 echo "$as_me: former value: $ac_old_val" >&2;} { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 echo "$as_me: current value: $ac_new_val" >&2;} ac_cache_corrupted=: fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 echo "$as_me: error: changes in the environment can compromise the build" >&2;} { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&5 echo "$as_me: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } # Provide some information about the compiler. echo "$as_me:$LINENO: checking for C compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6; } ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # # List of possible output files, starting from the most likely. # The algorithm is not robust to junk in `.', hence go to wildcards (a.*) # only as a last resort. b.out is created by i960 compilers. ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out' # # The IRIX 6 linker writes into existing files which may not be # executable, retaining their permissions. Remove them first so a # subsequent execution test works. ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { (ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link_default") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi { echo "$as_me:$LINENO: result: $ac_file" >&5 echo "${ECHO_T}$ac_file" >&6; } if test -z "$ac_file"; then echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: C compiler cannot create executables See \`config.log' for more details." >&5 echo "$as_me: error: C compiler cannot create executables See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } fi ac_exeext=$ac_cv_exeext # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { echo "$as_me:$LINENO: checking whether the C compiler works" >&5 echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6; } # FIXME: These cross compiler hacks should be removed for Autoconf 3.0 # If not cross compiling, check that we can run a simple program. if test "$cross_compiling" != yes; then if { ac_try='./$ac_file' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { echo "$as_me:$LINENO: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&5 echo "$as_me: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi fi fi { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } rm -f a.out a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6; } { echo "$as_me:$LINENO: result: $cross_compiling" >&5 echo "${ECHO_T}$cross_compiling" >&6; } { echo "$as_me:$LINENO: checking for suffix of executables" >&5 echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6; } if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest$ac_cv_exeext { echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 echo "${ECHO_T}$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT { echo "$as_me:$LINENO: checking for suffix of object files" >&5 echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6; } if test "${ac_cv_objext+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 echo "${ECHO_T}$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; } GCC=`test $ac_compiler_gnu = yes && echo yes` ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CFLAGS="" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_c89=$ac_arg else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { echo "$as_me:$LINENO: result: none needed" >&5 echo "${ECHO_T}none needed" >&6; } ;; xno) { echo "$as_me:$LINENO: result: unsupported" >&5 echo "${ECHO_T}unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -z "$CXX"; then if test -n "$CCC"; then CXX=$CCC else if test -n "$ac_tool_prefix"; then for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then { echo "$as_me:$LINENO: result: $CXX" >&5 echo "${ECHO_T}$CXX" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CXX="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then { echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5 echo "${ECHO_T}$ac_ct_CXX" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$ac_ct_CXX" && break done if test "x$ac_ct_CXX" = x; then CXX="g++" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac CXX=$ac_ct_CXX fi fi fi fi # Provide some information about the compiler. echo "$as_me:$LINENO: checking for C++ compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6; } if test "${ac_cv_cxx_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi { echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6; } GXX=`test $ac_compiler_gnu = yes && echo yes` ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS { echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5 echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6; } if test "${ac_cv_prog_cxx_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_save_cxx_werror_flag=$ac_cxx_werror_flag ac_cxx_werror_flag=yes ac_cv_prog_cxx_g=no CXXFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cxx_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CXXFLAGS="" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cxx_werror_flag=$ac_save_cxx_werror_flag CXXFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cxx_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cxx_werror_flag=$ac_save_cxx_werror_flag fi { echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5 echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6; } if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5 echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;} { (exit 1); exit 1; }; } fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. { echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in ./ | .// | /cC/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi done done ;; esac done IFS=$as_save_IFS fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { echo "$as_me:$LINENO: result: $INSTALL" >&5 echo "${ECHO_T}$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { echo "$as_me:$LINENO: result: $CPP" >&5 echo "${ECHO_T}$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&5 echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 echo $ECHO_N "checking for grep that handles long lines and -e... $ECHO_C" >&6; } if test "${ac_cv_path_GREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Extract the first word of "grep ggrep" to use in msg output if test -z "$GREP"; then set dummy grep ggrep; ac_prog_name=$2 if test "${ac_cv_path_GREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS fi GREP="$ac_cv_path_GREP" if test -z "$GREP"; then { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } fi else ac_cv_path_GREP=$GREP fi fi { echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 echo "${ECHO_T}$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { echo "$as_me:$LINENO: checking for egrep" >&5 echo $ECHO_N "checking for egrep... $ECHO_C" >&6; } if test "${ac_cv_path_EGREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else # Extract the first word of "egrep" to use in msg output if test -z "$EGREP"; then set dummy egrep; ac_prog_name=$2 if test "${ac_cv_path_EGREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS fi EGREP="$ac_cv_path_EGREP" if test -z "$EGREP"; then { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } fi else ac_cv_path_EGREP=$EGREP fi fi fi { echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 echo "${ECHO_T}$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" if test $ac_cv_c_compiler_gnu = yes; then { echo "$as_me:$LINENO: checking whether $CC needs -traditional" >&5 echo $ECHO_N "checking whether $CC needs -traditional... $ECHO_C" >&6; } if test "${ac_cv_prog_gcc_traditional+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_pattern="Autoconf.*'x'" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include Autoconf TIOCGETP _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "$ac_pattern" >/dev/null 2>&1; then ac_cv_prog_gcc_traditional=yes else ac_cv_prog_gcc_traditional=no fi rm -f conftest* if test $ac_cv_prog_gcc_traditional = no; then cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include Autoconf TCGETA _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "$ac_pattern" >/dev/null 2>&1; then ac_cv_prog_gcc_traditional=yes fi rm -f conftest* fi fi { echo "$as_me:$LINENO: result: $ac_cv_prog_gcc_traditional" >&5 echo "${ECHO_T}$ac_cv_prog_gcc_traditional" >&6; } if test $ac_cv_prog_gcc_traditional = yes; then CC="$CC -traditional" fi fi { echo "$as_me:$LINENO: checking for ANSI C header files" >&5 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; } if test "${ac_cv_header_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_header_stdc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi { echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 echo "${ECHO_T}$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF #define STDC_HEADERS 1 _ACEOF fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then eval "$as_ac_Header=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done { echo "$as_me:$LINENO: checking for working memcmp" >&5 echo $ECHO_N "checking for working memcmp... $ECHO_C" >&6; } if test "${ac_cv_func_memcmp_working+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then ac_cv_func_memcmp_working=no else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { /* Some versions of memcmp are not 8-bit clean. */ char c0 = '\100', c1 = '\200', c2 = '\201'; if (memcmp(&c0, &c2, 1) >= 0 || memcmp(&c1, &c2, 1) >= 0) return 1; /* The Next x86 OpenStep bug shows up only when comparing 16 bytes or more and with at least one buffer not starting on a 4-byte boundary. William Lewis provided this test program. */ { char foo[21]; char bar[21]; int i; for (i = 0; i < 4; i++) { char *a = foo + i; char *b = bar + i; strcpy (a, "--------01111111"); strcpy (b, "--------10000000"); if (memcmp (a, b, 16) >= 0) return 1; } return 0; } ; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_memcmp_working=yes else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_func_memcmp_working=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi { echo "$as_me:$LINENO: result: $ac_cv_func_memcmp_working" >&5 echo "${ECHO_T}$ac_cv_func_memcmp_working" >&6; } test $ac_cv_func_memcmp_working = no && case " $LIBOBJS " in *" memcmp.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS memcmp.$ac_objext" ;; esac for ac_header in stdlib.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ;; esac { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done { echo "$as_me:$LINENO: checking for GNU libc compatible malloc" >&5 echo $ECHO_N "checking for GNU libc compatible malloc... $ECHO_C" >&6; } if test "${ac_cv_func_malloc_0_nonnull+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then ac_cv_func_malloc_0_nonnull=no else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #if defined STDC_HEADERS || defined HAVE_STDLIB_H # include #else char *malloc (); #endif int main () { return ! malloc (0); ; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_malloc_0_nonnull=yes else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_func_malloc_0_nonnull=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi { echo "$as_me:$LINENO: result: $ac_cv_func_malloc_0_nonnull" >&5 echo "${ECHO_T}$ac_cv_func_malloc_0_nonnull" >&6; } if test $ac_cv_func_malloc_0_nonnull = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_MALLOC 1 _ACEOF else cat >>confdefs.h <<\_ACEOF #define HAVE_MALLOC 0 _ACEOF case " $LIBOBJS " in *" malloc.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS malloc.$ac_objext" ;; esac cat >>confdefs.h <<\_ACEOF #define malloc rpl_malloc _ACEOF fi { echo "$as_me:$LINENO: checking for working strtod" >&5 echo $ECHO_N "checking for working strtod... $ECHO_C" >&6; } if test "${ac_cv_func_strtod+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then ac_cv_func_strtod=no else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #ifndef strtod double strtod (); #endif int main() { { /* Some versions of Linux strtod mis-parse strings with leading '+'. */ char *string = " +69"; char *term; double value; value = strtod (string, &term); if (value != 69 || term != (string + 4)) return 1; } { /* Under Solaris 2.4, strtod returns the wrong value for the terminating character under some conditions. */ char *string = "NaN"; char *term; strtod (string, &term); if (term != string && *(term - 1) == 0) return 1; } return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_strtod=yes else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_func_strtod=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi { echo "$as_me:$LINENO: result: $ac_cv_func_strtod" >&5 echo "${ECHO_T}$ac_cv_func_strtod" >&6; } if test $ac_cv_func_strtod = no; then case " $LIBOBJS " in *" strtod.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS strtod.$ac_objext" ;; esac { echo "$as_me:$LINENO: checking for pow" >&5 echo $ECHO_N "checking for pow... $ECHO_C" >&6; } if test "${ac_cv_func_pow+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define pow to an innocuous variant, in case declares pow. For example, HP-UX 11i declares gettimeofday. */ #define pow innocuous_pow /* System header to define __stub macros and hopefully few prototypes, which can conflict with char pow (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef pow /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char pow (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_pow || defined __stub___pow choke me #endif int main () { return pow (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_func_pow=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_pow=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_func_pow" >&5 echo "${ECHO_T}$ac_cv_func_pow" >&6; } if test $ac_cv_func_pow = no; then { echo "$as_me:$LINENO: checking for pow in -lm" >&5 echo $ECHO_N "checking for pow in -lm... $ECHO_C" >&6; } if test "${ac_cv_lib_m_pow+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lm $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char pow (); int main () { return pow (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_m_pow=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_m_pow=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_m_pow" >&5 echo "${ECHO_T}$ac_cv_lib_m_pow" >&6; } if test $ac_cv_lib_m_pow = yes; then POW_LIB=-lm else { echo "$as_me:$LINENO: WARNING: cannot find library containing definition of pow" >&5 echo "$as_me: WARNING: cannot find library containing definition of pow" >&2;} fi fi fi { echo "$as_me:$LINENO: checking return type of signal handlers" >&5 echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6; } if test "${ac_cv_type_signal+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include int main () { return *(signal (0, 0)) (0) == 1; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_type_signal=int else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_signal=void fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_type_signal" >&5 echo "${ECHO_T}$ac_cv_type_signal" >&6; } cat >>confdefs.h <<_ACEOF #define RETSIGTYPE $ac_cv_type_signal _ACEOF for ac_func in vprintf do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$ac_func || defined __stub___$ac_func choke me #endif int main () { return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_var'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF { echo "$as_me:$LINENO: checking for _doprnt" >&5 echo $ECHO_N "checking for _doprnt... $ECHO_C" >&6; } if test "${ac_cv_func__doprnt+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define _doprnt to an innocuous variant, in case declares _doprnt. For example, HP-UX 11i declares gettimeofday. */ #define _doprnt innocuous__doprnt /* System header to define __stub macros and hopefully few prototypes, which can conflict with char _doprnt (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef _doprnt /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char _doprnt (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub__doprnt || defined __stub____doprnt choke me #endif int main () { return _doprnt (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_func__doprnt=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func__doprnt=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_func__doprnt" >&5 echo "${ECHO_T}$ac_cv_func__doprnt" >&6; } if test $ac_cv_func__doprnt = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_DOPRNT 1 _ACEOF fi fi done # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || { { echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5 echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;} { (exit 1); exit 1; }; } { echo "$as_me:$LINENO: checking build system type" >&5 echo $ECHO_N "checking build system type... $ECHO_C" >&6; } if test "${ac_cv_build+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 echo "$as_me: error: cannot guess build type; you must specify one" >&2;} { (exit 1); exit 1; }; } ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5 echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;} { (exit 1); exit 1; }; } fi { echo "$as_me:$LINENO: result: $ac_cv_build" >&5 echo "${ECHO_T}$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) { { echo "$as_me:$LINENO: error: invalid value of canonical build" >&5 echo "$as_me: error: invalid value of canonical build" >&2;} { (exit 1); exit 1; }; };; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { echo "$as_me:$LINENO: checking host system type" >&5 echo $ECHO_N "checking host system type... $ECHO_C" >&6; } if test "${ac_cv_host+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5 echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;} { (exit 1); exit 1; }; } fi fi { echo "$as_me:$LINENO: result: $ac_cv_host" >&5 echo "${ECHO_T}$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) { { echo "$as_me:$LINENO: error: invalid value of canonical host" >&5 echo "$as_me: error: invalid value of canonical host" >&2;} { (exit 1); exit 1; }; };; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac # Check whether --with-jplex was given. if test "${with_jplex+set}" = set; then withval=$with_jplex; jplex_path=$withval fi if test -n "$jplex_path" ; then JPLEX_PATH="${jplex_path}" else JPLEX_PATH="${HOME}/plex3/jplex.jar" fi echo "\`jplex.path\` <- \"${JPLEX_PATH}\";" > R/config.R : ${R_HOME=`R RHOME`} if test -z "${R_HOME}"; then echo "could not determine R_HOME" exit 1 fi CC=`"${R_HOME}/bin/R" CMD config CC` CFLAGS=`"${R_HOME}/bin/R" CMD config CFLAGS` JAVA_HOME=`"${R_HOME}/bin/R" CMD config JAVA_HOME` JAVA_LIBS=`"${R_HOME}/bin/R" CMD config JAVA_LIBS` JAVA_CPPFLAGS=`"${R_HOME}/bin/R" CMD config JAVA_CPPFLAGS` JAVA_LD_LIBRARY_PATH=`grep -e "^JAVA_LD_LIBRARY_PATH = " ${R_HOME}/etc/Makeconf | awk '{print $3}'` CPPFLAGS="${JAVA_CPPFLAGS} ${CPPFLAGS}" LIBS="${JAVA_LIBS} -Wl,-rpath,${JAVA_LD_LIBRARY_PATH} ${LIBS}" for ac_header in jni.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ;; esac { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done if test "${ac_cv_header_jni_h}" = no ; then { { echo "$as_me:$LINENO: error: \"Necessary JNI header jni.h not found. Did you remember to run R CMD javareconf? \"" >&5 echo "$as_me: error: \"Necessary JNI header jni.h not found. Did you remember to run R CMD javareconf? \"" >&2;} { (exit 1); exit 1; }; } fi ac_config_files="$ac_config_files src/Makevars" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( *) $as_unset $ac_var ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes (double-quote # substitution turns \\\\ into \\, and sed turns \\ into \). sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then test "x$cache_file" != "x/dev/null" && { echo "$as_me:$LINENO: updating cache $cache_file" >&5 echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # Transform confdefs.h into DEFS. # Protect against shell expansion while executing Makefile rules. # Protect against Makefile macro expansion. # # If the first sed substitution is executed (which looks for macros that # take arguments), then branch to the quote section. Otherwise, # look for a macro that doesn't take arguments. ac_script=' t clear :clear s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g t quote s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g t quote b any :quote s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g s/\[/\\&/g s/\]/\\&/g s/\$/$$/g H :any ${ g s/^\n// s/\n/ /g p } ' DEFS=`sed -n "$ac_script" confdefs.h` ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs : ${CONFIG_STATUS=./config.status} ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 echo "$as_me: creating $CONFIG_STATUS" >&6;} cat >$CONFIG_STATUS <<_ACEOF #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi # PATH needs CR # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) as_nl=' ' IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # CDPATH. $as_unset CDPATH as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, and appends # trailing '-' during substitution so that $LINENO is not a special # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # scripts with optimization help from Paolo Bonzini. Blame Lee # E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir fi echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 # Save the log message, to keep $[0] and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by $as_me, which was generated by GNU Autoconf 2.61. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # Files that config.status was made for. config_files="$ac_config_files" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF ac_cs_usage="\ \`$as_me' instantiates files from templates according to the current configuration. Usage: $0 [OPTIONS] [FILE]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE Configuration files: $config_files Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ config.status configured by $0, generated by GNU Autoconf 2.61, with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" Copyright (C) 2006 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # If no file are specified by the user, then we need to provide default # value. By we need to know if files were specified by the user. ac_need_defaults=: while test $# != 0 do case $1 in --*=*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) echo "$ac_cs_version"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift CONFIG_FILES="$CONFIG_FILES $ac_optarg" ac_need_defaults=false;; --he | --h | --help | --hel | -h ) echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) { echo "$as_me: error: unrecognized option: $1 Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *) ac_config_targets="$ac_config_targets $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF if \$ac_cs_recheck; then echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 CONFIG_SHELL=$SHELL export CONFIG_SHELL exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "src/Makevars") CONFIG_FILES="$CONFIG_FILES src/Makevars" ;; *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= trap 'exit_status=$? { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status ' 0 trap '{ (exit 1); exit 1; }' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || { echo "$me: cannot create a temporary directory in ." >&2 { (exit 1); exit 1; } } # # Set up the sed scripts for CONFIG_FILES section. # # No need to generate the scripts if there are no CONFIG_FILES. # This happens for instance when ./config.status config.h if test -n "$CONFIG_FILES"; then _ACEOF ac_delim='%!_!# ' for ac_last_try in false false false false false :; do cat >conf$$subs.sed <<_ACEOF SHELL!$SHELL$ac_delim PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim PACKAGE_NAME!$PACKAGE_NAME$ac_delim PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim PACKAGE_STRING!$PACKAGE_STRING$ac_delim PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim exec_prefix!$exec_prefix$ac_delim prefix!$prefix$ac_delim program_transform_name!$program_transform_name$ac_delim bindir!$bindir$ac_delim sbindir!$sbindir$ac_delim libexecdir!$libexecdir$ac_delim datarootdir!$datarootdir$ac_delim datadir!$datadir$ac_delim sysconfdir!$sysconfdir$ac_delim sharedstatedir!$sharedstatedir$ac_delim localstatedir!$localstatedir$ac_delim includedir!$includedir$ac_delim oldincludedir!$oldincludedir$ac_delim docdir!$docdir$ac_delim infodir!$infodir$ac_delim htmldir!$htmldir$ac_delim dvidir!$dvidir$ac_delim pdfdir!$pdfdir$ac_delim psdir!$psdir$ac_delim libdir!$libdir$ac_delim localedir!$localedir$ac_delim mandir!$mandir$ac_delim DEFS!$DEFS$ac_delim ECHO_C!$ECHO_C$ac_delim ECHO_N!$ECHO_N$ac_delim ECHO_T!$ECHO_T$ac_delim LIBS!$LIBS$ac_delim build_alias!$build_alias$ac_delim host_alias!$host_alias$ac_delim target_alias!$target_alias$ac_delim CC!$CC$ac_delim CFLAGS!$CFLAGS$ac_delim LDFLAGS!$LDFLAGS$ac_delim CPPFLAGS!$CPPFLAGS$ac_delim ac_ct_CC!$ac_ct_CC$ac_delim EXEEXT!$EXEEXT$ac_delim OBJEXT!$OBJEXT$ac_delim CXX!$CXX$ac_delim CXXFLAGS!$CXXFLAGS$ac_delim ac_ct_CXX!$ac_ct_CXX$ac_delim INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim INSTALL_DATA!$INSTALL_DATA$ac_delim CPP!$CPP$ac_delim GREP!$GREP$ac_delim EGREP!$EGREP$ac_delim LIBOBJS!$LIBOBJS$ac_delim POW_LIB!$POW_LIB$ac_delim build!$build$ac_delim build_cpu!$build_cpu$ac_delim build_vendor!$build_vendor$ac_delim build_os!$build_os$ac_delim host!$host$ac_delim host_cpu!$host_cpu$ac_delim host_vendor!$host_vendor$ac_delim host_os!$host_os$ac_delim LTLIBOBJS!$LTLIBOBJS$ac_delim _ACEOF if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 64; then break elif $ac_last_try; then { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` if test -n "$ac_eof"; then ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` ac_eof=`expr $ac_eof + 1` fi cat >>$CONFIG_STATUS <<_ACEOF cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof /@[a-zA-Z_][a-zA-Z_0-9]*@/!b end _ACEOF sed ' s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g s/^/s,@/; s/!/@,|#_!!_#|/ :n t n s/'"$ac_delim"'$/,g/; t s/$/\\/; p N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n ' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF :end s/|#_!!_#|//g CEOF$ac_eof _ACEOF # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/ s/:*\${srcdir}:*/:/ s/:*@srcdir@:*/:/ s/^\([^=]*=[ ]*\):*/\1/ s/:*$// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF fi # test -n "$CONFIG_FILES" for ac_tag in :F $CONFIG_FILES do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5 echo "$as_me: error: Invalid tag $ac_tag." >&2;} { (exit 1); exit 1; }; };; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 echo "$as_me: error: cannot find input file: $ac_f" >&2;} { (exit 1); exit 1; }; };; esac ac_file_inputs="$ac_file_inputs $ac_f" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input="Generated from "`IFS=: echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure." if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { echo "$as_me:$LINENO: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} fi case $ac_tag in *:-:* | *:-) cat >"$tmp/stdin";; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` { as_dir="$ac_dir" case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= case `sed -n '/datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p ' $ac_file_inputs` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF sed "$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s&@configure_input@&$configure_input&;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t $ac_datarootdir_hack " $ac_file_inputs | sed -f "$tmp/subs-1.sed" >$tmp/out test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&5 echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&2;} rm -f "$tmp/stdin" case $ac_file in -) cat "$tmp/out"; rm -f "$tmp/out";; *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;; esac ;; esac done # for ac_tag { (exit 0); exit 0; } _ACEOF chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || { (exit 1); exit 1; } fi ================================================ FILE: src/cpp/PLEX3/configure.ac ================================================ AC_INIT([src/rbind_jni.cpp]) AC_PROG_CC AC_PROG_CXX AC_PROG_INSTALL AC_PROG_GCC_TRADITIONAL AC_FUNC_MEMCMP AC_FUNC_MALLOC AC_FUNC_STRTOD AC_TYPE_SIGNAL AC_FUNC_VPRINTF AC_CANONICAL_HOST AC_ARG_WITH([jplex], AC_HELP_STRING([--with-jplex=JPLEX_PATH], [path to the jplex.jar file]), [jplex_path=$withval]) if test [ -n "$jplex_path" ] ; then JPLEX_PATH="${jplex_path}" else JPLEX_PATH="${HOME}/plex3/jplex.jar" fi dnl Write the config.R file echo "\`jplex.path\` <- \"${JPLEX_PATH}\";" > R/config.R dnl Now find the compiler and compiler flags to use : ${R_HOME=`R RHOME`} if test -z "${R_HOME}"; then echo "could not determine R_HOME" exit 1 fi CC=`"${R_HOME}/bin/R" CMD config CC` CFLAGS=`"${R_HOME}/bin/R" CMD config CFLAGS` JAVA_HOME=`"${R_HOME}/bin/R" CMD config JAVA_HOME` JAVA_LIBS=`"${R_HOME}/bin/R" CMD config JAVA_LIBS` JAVA_CPPFLAGS=`"${R_HOME}/bin/R" CMD config JAVA_CPPFLAGS` dnl The following line would be preferrable. However, R CMD config is broken. dnl JAVA_LD_LIBRARY_PATH=`"${R_HOME}/bin/R" CMD config JAVA_LD_LIBRARY_PATH` dnl This is a workaround, looking at Makeconf directly: JAVA_LD_LIBRARY_PATH=`grep -e "^JAVA_LD_LIBRARY_PATH = " ${R_HOME}/etc/Makeconf | awk '{print $3}'` AC_SUBST([CPPFLAGS],["${JAVA_CPPFLAGS} ${CPPFLAGS}"]) AC_SUBST([LIBS],["${JAVA_LIBS} -Wl,-rpath,${JAVA_LD_LIBRARY_PATH} ${LIBS}"]) AC_SUBST(CPPFLAGS) AC_SUBST(LIBS) dnl Hopefully, R CMD javareconf has already been run and we have our variables. dnl If not, print a message telling them to get their act together. AC_CHECK_HEADERS(jni.h) if test "${ac_cv_header_jni_h}" = no ; then AC_MSG_ERROR("Necessary JNI header jni.h not found. Did you remember to run R CMD javareconf? ") fi AC_OUTPUT(src/Makevars) ================================================ FILE: src/cpp/PLEX3/install-sh ================================================ #!/bin/sh # install - install a program, script, or datafile scriptversion=2006-12-25.00 # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. nl=' ' IFS=" "" $nl" # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} if test -z "$doit"; then doit_exec=exec else doit_exec=$doit fi # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_glob='?' initialize_posix_glob=' test "$posix_glob" != "?" || { if (set -f) 2>/dev/null; then posix_glob= else posix_glob=: fi } ' posix_mkdir= # Desired mode of installed file. mode=0755 chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false no_target_directory= usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve the last data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *' '* | *' '* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) dst_arg=$2 shift;; -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then trap '(exit $?); exit' 1 2 13 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names starting with `-'. case $src in -*) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # Protect names starting with `-'. case $dst in -*) dst=./$dst;; esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else # Prefer dirname, but fall back on a substitute if dirname fails. dstdir=` (dirname "$dst") 2>/dev/null || expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$dst" : 'X\(//\)[^/]' \| \ X"$dst" : 'X\(//\)$' \| \ X"$dst" : 'X\(/\)' \| . 2>/dev/null || echo X"$dst" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q' ` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 if (umask $mkdir_umask && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writeable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; -*) prefix='./';; *) prefix='';; esac eval "$initialize_posix_glob" oIFS=$IFS IFS=/ $posix_glob set -f set fnord $dstdir shift $posix_glob set +f IFS=$oIFS prefixes= for d do test -z "$d" && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && eval "$initialize_posix_glob" && $posix_glob set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && $posix_glob set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: ================================================ FILE: src/cpp/PLEX3/man/rips.stream.Rd ================================================ \name{rips.stream} \alias{rips.stream} \title{Rips Stream} \description{ Construct a Rips Stream from either a distance matrix or a handle to a dataset made with \code{as.internal.distance.matrix}. } \usage{ rips.stream(dmatrix, delta, max.edge, max.dim) } \arguments{ \item{dmatrix}{A distance matrix} \item{delta}{ No clue } \item{max.edge}{ No clue } \item{max.dim}{ No clue } } \seealso{ \code{\link{save}}. } \examples{ ## Load point data from a CSV file pointdata <- read.table("plex_torus_data.txt") ## Create the RipsStream from the distance matrix stream <- rips.stream(pointdata) ## Calculate persistence intervals from the RipsStream intervals <- persistence.intervals(stream) ## Use FilterInfinite to get Betti numbers filter.infinite(intervals) } \keyword{stream} ================================================ FILE: src/cpp/PLEX3/src/Makevars.in ================================================ PKG_CPPFLAGS=@CPPFLAGS@ PKG_LIBS=@LIBS@ ================================================ FILE: src/cpp/PLEX3/src/rbind_jni.cpp ================================================ #include #include #include #include #include #include #include #include #include // predicate for STL algorithms. cannot have C linkage, so outside extern "C" template bool intmap_keycompare(std::pair a, std::pair b) { return (a.first < b.first); } extern "C" { JavaVM *jvm; JNIEnv* env; std::map cl; std::map fn; int add_class(std::string classname, std::string classpath); int add_method(std::string classname, std::string methodname, std::string methodsig); // Global persistence object. No sense in having more than one of these around jobject p; // Keep track of the persistent stream & data Java objects. // These should all be global refs with finalizers. std::map current_streams; std::map current_pointdata; // Keep track of the distance matrices that need to be protected from the GC std::map protected_objects; SEXP init_java(SEXP classpath) { JavaVMInitArgs initArgs; initArgs.version = JNI_VERSION_1_4; JavaVMOption options[2]; std::string classpath_optstr = "-Djava.class.path="; classpath_optstr += CHAR(STRING_ELT(classpath,0)); // these lines require explicit casts to cast away const-ness. I'm trusting // Java won't be modifying the options strings. options[0].optionString = (char*)classpath_optstr.c_str(); options[1].optionString = (char*)"-Djava.version=1.5"; initArgs.options=options; initArgs.nOptions = 2; //jint JNI_GetCreatedJavaVMs(JavaVM **vmBuf, jsize bufLen, jsize *nVMs); // See if there's a pre-existing VM, and use it if so. Only the first VM returned // is used. jsize numvms; JavaVM *existing_vm; JNI_GetCreatedJavaVMs(&existing_vm, 1, &numvms); if(numvms > 0) existing_vm->AttachCurrentThread((void**)&env, NULL); else JNI_CreateJavaVM(&jvm, (void**)&env, (void*)&initArgs); add_class("RDirectBufferData", "edu/stanford/math/plex/RDirectBufferData"); add_method("RDirectBufferData", "", "(ILjava/nio/ByteBuffer;)V"); add_class("RipsStream", "edu/stanford/math/plex/RipsStream"); add_method("RipsStream", "", "(DDILedu/stanford/math/plex/PointData;)V"); add_class("Persistence","edu/stanford/math/plex/Persistence"); add_method("Persistence", "", "()V"); add_method("Persistence","computeIntervals", "(Ledu/stanford/math/plex/SimplexStream;)[Ledu/stanford/math/plex/PersistenceInterval$Float;"); add_class("PersistenceInterval.Float","edu/stanford/math/plex/PersistenceInterval$Float"); add_method("PersistenceInterval.Float", "", "()V"); add_method("PersistenceInterval.Float", "2", "(IDD)V"); add_class("LazyWitnessStream", "edu/stanford/math/plex/LazyWitnessStream"); add_method("LazyWitnessStream", "", "(DIDI[ILedu/stanford/math/plex/PointData;)V"); add_class("WitnessStream", "edu/stanford/math/plex/WitnessStream"); add_method("WitnessStream", "makeRandomLandmarks", "(Ledu/stanford/math/plex/PointData;I)[I"); add_method("WitnessStream", "estimateRmax", "(Ledu/stanford/math/plex/PointData;[I)D"); add_class("Plex", "edu/stanford/math/plex/Plex"); add_method("Plex", "FilterInfinite", "([Ledu/stanford/math/plex/PersistenceInterval;)Ledu/stanford/math/plex/Plex$BettiNumbers;"); add_class("Plex.BettiNumbers", "edu/stanford/math/plex/Plex$BettiNumbers"); add_method("Plex.BettiNumbers", "toString", "()Ljava/lang/String;"); add_class("ExplicitStream", "edu/stanford/math/plex/ExplicitStream"); add_method("ExplicitStream", "", "()V"); add_method("ExplicitStream", "open", "()V"); add_method("ExplicitStream", "close", "()V"); add_method("ExplicitStream", "add", "([ID)V"); add_method("ExplicitStream", "remove", "([I)V"); add_class("EuclideanArrayData", "edu/stanford/math/plex/EuclideanArrayData"); add_method("EuclideanArrayData", "", "([DI)V"); add_method("EuclideanArrayData", "2", "(II)V"); p = env->NewObject(cl["Persistence"], fn["Persistence."]); return(R_NilValue); } SEXP R_exception() { env->ExceptionDescribe(); env->ExceptionClear(); SEXP retval; PROTECT(retval = allocVector(INTSXP, 1)); INTEGER(retval)[0] = -1; UNPROTECT(1); return (retval); } static void matrix_finalizer(SEXP handle) { R_ReleaseObject(protected_objects[*INTEGER(R_ExternalPtrTag(handle))]); std::cout << "R/PLEX: Distance matrix unprotected." << std::endl; } static void java_data_ref_finalizer(SEXP handle) { // Release the JNI global reference. env->DeleteGlobalRef(current_pointdata[*INTEGER(R_ExternalPtrTag(handle))]); std::cout << "R/PLEX: Java global ref to PointData deleted." << std::endl; } static void java_stream_ref_finalizer(SEXP handle) { // Release the JNI global reference. env->DeleteGlobalRef(current_streams[*INTEGER(R_ExternalPtrTag(handle))]); std::cout << "R/PLEX: Java global ref to SimplexStream deleted." << std::endl; } // internal use only jobject create_direct_buffer(SEXP matrix, SEXP buflen) { int d = *INTEGER(buflen); if(d < 0) return (NULL); d = sqrt(d); // We lose the handle to the DirectByteBuffer, but since it doesn't own the data itself, // this is trivial. Java may even clean it up for us? jobject dbytebuffer = env->NewDirectByteBuffer(REAL(matrix), d*d*sizeof(double)); if(env->ExceptionOccurred()) { env->ExceptionDescribe(); env->ExceptionClear(); return NULL; } jobject distbuffer = env->NewObject(cl["RDirectBufferData"], fn["RDirectBufferData."], d, dbytebuffer); if(env->ExceptionOccurred()) { env->ExceptionDescribe(); env->ExceptionClear(); return NULL; } // If all goes well, preserve the matrix memory for Java R_PreserveObject(matrix); return distbuffer; } // internal use only SEXP register_stream(jobject stream) { // get the max key and add one int streamkey = (*(std::max_element(current_streams.begin(), current_streams.end(), intmap_keycompare))).first + 1; current_streams[streamkey] = stream; SEXP streamhandle; PROTECT(streamhandle = allocVector(INTSXP, 1)); INTEGER(streamhandle)[0] = streamkey; UNPROTECT(1); // convert the local stream ref into a global stream ref // and assign an R finalizer to delete it when all R // references disappear. env->NewGlobalRef(stream); SEXP nhandle; PROTECT(nhandle = R_MakeExternalPtr(NULL, streamhandle, R_NilValue)); R_RegisterCFinalizer(nhandle, java_stream_ref_finalizer); UNPROTECT(1); return nhandle;; } SEXP register_pointdata(jobject pdata) { // get the max key and add one int datakey = (*(std::max_element(current_pointdata.begin(), current_pointdata.end(), intmap_keycompare))).first + 1; current_pointdata[datakey] = pdata; SEXP datahandle; PROTECT(datahandle = allocVector(INTSXP, 1)); INTEGER(datahandle)[0] = datakey; UNPROTECT(1); // convert the local data ref into a global ref // and assign an R finalizer to delete it when all R // references disappear. env->NewGlobalRef(pdata); SEXP nhandle; PROTECT(nhandle = R_MakeExternalPtr(NULL, datahandle, R_NilValue)); R_RegisterCFinalizer(nhandle, java_data_ref_finalizer); UNPROTECT(1); return nhandle; } SEXP make_internal_distance_array(SEXP dmatrix, SEXP buflen) { if(buflen < 0) return(R_NilValue); jobject pdata = create_direct_buffer(dmatrix, buflen); SEXP nhandle = register_pointdata(pdata); // Add finalizer to the handle to clean up the matrix memory, and // add matrix to the projected objects list. protected_objects[*INTEGER(R_ExternalPtrTag(nhandle))] = dmatrix; R_RegisterCFinalizer(nhandle, matrix_finalizer); return nhandle; } SEXP random_euclidean_array_data(SEXP count, SEXP dim) { if(*INTEGER(count) < 0 || *INTEGER(dim) < 0) return (R_NilValue); jobject arr = env->NewObject(cl["EuclideanArrayData"], fn["EuclideanArrayData.2"], *INTEGER(count), *INTEGER(dim)); if(env->ExceptionOccurred()) return R_exception(); return register_pointdata(arr); } // also include accessors for pointdata? SEXP make_random_landmarks(SEXP pdata_handle, SEXP landmark_count) { int sid = *INTEGER(R_ExternalPtrTag(pdata_handle)); if(current_pointdata.find(sid) == current_pointdata.end()) return (R_NilValue); jobject arr = env->CallStaticObjectMethod(cl["WitnessStream"], fn["WitnessStream.makeRandomLandmarks"], current_pointdata[sid], *INTEGER(landmark_count)); int len = env->GetArrayLength((jintArray)arr); SEXP landmarks_arr; PROTECT(landmarks_arr = allocVector(INTSXP, len)); int *parr = env->GetIntArrayElements((jintArray)arr, NULL); memcpy(INTEGER(landmarks_arr), parr, len*sizeof(int)); env->ReleaseIntArrayElements((jintArray)arr, parr, JNI_ABORT); UNPROTECT(1); if(env->ExceptionOccurred()) return R_exception(); return landmarks_arr; } SEXP estimate_r_max(SEXP pdata_handle, SEXP landmarks) { // landmarks represented as an array of ints. translate this back into java int sid = *INTEGER(R_ExternalPtrTag(pdata_handle)); if(current_pointdata.find(sid) == current_pointdata.end()) return (R_NilValue); int len = length(landmarks); jintArray landmarkarr = env->NewIntArray(len); int *parr = env->GetIntArrayElements(landmarkarr, NULL); memcpy(parr, INTEGER(landmarks), len*sizeof(int)); env->ReleaseIntArrayElements(landmarkarr, parr, 0); jdouble rmax = env->CallStaticDoubleMethod(cl["WitnessStream"], fn["WitnessStream.estimateRmax"], current_pointdata[sid], landmarkarr); SEXP r_rmax; PROTECT(r_rmax = allocVector(REALSXP, 1)); REAL(r_rmax)[0] = rmax; UNPROTECT(1); if(env->ExceptionOccurred()) return R_exception(); return r_rmax; } SEXP filter_infinite(SEXP intervals, SEXP intervalcount) { // repack interval vector (of reals) into PersistenceInterval.Floats jobjectArray intervalarr = env->NewObjectArray(*INTEGER(intervalcount), cl["PersistenceInterval.Float"], NULL); for(int i = 0; i < *INTEGER(intervalcount); i++) { jobject ival = env->NewObject(cl["PersistenceInterval.Float"], fn["PersistenceInterval.Float.2"], (int)(REAL(intervals)[3*i+0] + 0.1), REAL(intervals)[3*i+1], REAL(intervals)[3*i+2]); env->SetObjectArrayElement(intervalarr, i, ival); } jobject bn = env->CallStaticObjectMethod(cl["Plex"], fn["Plex.FilterInfinite"], intervalarr); jstring bn_str = (jstring)env->CallObjectMethod(bn, fn["Plex.BettiNumbers.toString"]); SEXP r_bettinumbers; const char *sbettinumbers = env->GetStringUTFChars(bn_str, 0); PROTECT(r_bettinumbers = allocVector(STRSXP, 1)); SET_STRING_ELT(r_bettinumbers, 0, mkChar(sbettinumbers)); UNPROTECT(1); env->ReleaseStringUTFChars(bn_str, sbettinumbers); if(env->ExceptionOccurred()) return R_exception(); return r_bettinumbers; } SEXP create_lw_stream_from_handle(SEXP pdata_handle, SEXP granularity, SEXP max_d, SEXP rmax, SEXP nu, SEXP landmarks) { int sid = *INTEGER(R_ExternalPtrTag(pdata_handle)); if(current_pointdata.find(sid) == current_pointdata.end()) return (R_NilValue); int len = length(landmarks); jintArray landmarkarr = env->NewIntArray(len); int *parr = env->GetIntArrayElements(landmarkarr, NULL); memcpy(parr, INTEGER(landmarks), len*sizeof(int)); env->ReleaseIntArrayElements(landmarkarr, parr, 0); jobject lw_stream = env->NewObject(cl["LazyWitnessStream"], fn["LazyWitnessStream."], *REAL(granularity), *INTEGER(max_d), *REAL(rmax), *INTEGER(nu), landmarkarr, current_pointdata[sid]); if(env->ExceptionOccurred()) return R_exception(); return register_stream(lw_stream); } SEXP create_rips_stream(SEXP pdata_handle, SEXP delta, SEXP max_len, SEXP max_d, SEXP mat_buflen) { int sid = *INTEGER(R_ExternalPtrTag(pdata_handle)); if(current_pointdata.find(sid) == current_pointdata.end()) return (R_NilValue); jobject rips_str = env->NewObject(cl["RipsStream"], fn["RipsStream."], *REAL(delta), *REAL(max_len), *INTEGER(max_d), current_pointdata[sid]); if(env->ExceptionOccurred()) return R_exception(); return register_stream(rips_str); } SEXP create_explicit_stream() { jobject ex_stream = env->NewObject(cl["ExplicitStream"], fn["ExplicitStream."]); if(env->ExceptionOccurred()) return R_exception(); return register_stream(ex_stream); } SEXP open_ex_stream(SEXP streamid) { int sid = *INTEGER(R_ExternalPtrTag(streamid)); if(current_streams.find(sid) == current_streams.end()) return (R_NilValue); env->CallObjectMethod(current_streams[sid], fn["ExplicitStream.open"]); if(env->ExceptionOccurred()) return R_exception(); return(R_NilValue); } SEXP close_ex_stream(SEXP streamid) { int sid = *INTEGER(R_ExternalPtrTag(streamid)); if(current_streams.find(sid) == current_streams.end()) return (R_NilValue); env->CallObjectMethod(current_streams[sid], fn["ExplicitStream.close"]); if(env->ExceptionOccurred()) return R_exception(); return(R_NilValue); } SEXP add_simplex(SEXP streamid, SEXP vertices, SEXP param) { int sid = *INTEGER(R_ExternalPtrTag(streamid)); if(current_streams.find(sid) == current_streams.end()) return (R_NilValue); int len = length(vertices); jintArray vertices_arr = env->NewIntArray(len); int *parr = env->GetIntArrayElements(vertices_arr, NULL); memcpy(parr, INTEGER(vertices), len*sizeof(int)); env->ReleaseIntArrayElements(vertices_arr, parr, 0); env->CallObjectMethod(current_streams[sid], fn["ExplicitStream.add"], vertices_arr, *REAL(param)); if(env->ExceptionOccurred()) return R_exception(); return(R_NilValue); } SEXP remove_simplex(SEXP streamid, SEXP vertices) { int sid = *INTEGER(R_ExternalPtrTag(streamid)); if(current_streams.find(sid) == current_streams.end()) return (R_NilValue); int len = length(vertices); jintArray vertices_arr = env->NewIntArray(len); int *parr = env->GetIntArrayElements(vertices_arr, NULL); memcpy(parr, INTEGER(vertices), len*sizeof(int)); env->ReleaseIntArrayElements(vertices_arr, parr, 0); env->CallObjectMethod(current_streams[sid], fn["ExplicitStream.remove"], vertices_arr); if(env->ExceptionOccurred()) return R_exception(); return(R_NilValue); } SEXP get_intervals_from_stream(SEXP streamid) { int sid = *INTEGER(R_ExternalPtrTag(streamid)); if(current_streams.find(sid) == current_streams.end()) return (R_NilValue); jobject intervals = env->CallObjectMethod(p, fn["Persistence.computeIntervals"], current_streams[sid]); jfieldID dimension = env->GetFieldID(cl["PersistenceInterval.Float"], "dimension", "I"); jfieldID start = env->GetFieldID(cl["PersistenceInterval.Float"], "start", "D"); jfieldID end = env->GetFieldID(cl["PersistenceInterval.Float"], "end", "D"); int len = env->GetArrayLength((jobjectArray)intervals); SEXP pintervals; PROTECT(pintervals = allocVector(REALSXP, 3*len)); for(int i = 0; i < len; i++) { jobject firstint = env->GetObjectArrayElement((jobjectArray)intervals, i); REAL(pintervals)[3*i + 0] = (double)env->GetIntField(firstint, dimension); REAL(pintervals)[3*i + 1] = (double)env->GetDoubleField(firstint, start); REAL(pintervals)[3*i + 2] = (double)env->GetDoubleField(firstint, end); } UNPROTECT(1); if(env->ExceptionOccurred()) return R_exception(); return(pintervals); } int add_class(std::string classname, std::string classpath) { if(!env) return -1; jclass t = env->FindClass(classpath.c_str()); cl[classname] = t; if(env->ExceptionOccurred()) { env->ExceptionDescribe(); env->ExceptionClear(); return -1; } return 0; } int add_method(std::string classname, std::string methodname, std::string methodsig) { if(!env) return -1; jmethodID t; if(methodname.substr(0,3) == "") t = env->GetStaticMethodID(cl[classname], methodname.substr(3).c_str(), methodsig.c_str()); else if(std::isdigit(methodname.substr(0,1)[0])) t = env->GetMethodID(cl[classname], methodname.substr(1).c_str(), methodsig.c_str()); else t = env->GetMethodID(cl[classname], methodname.c_str(), methodsig.c_str()); fn[classname + "." + methodname] = t; if(env->ExceptionOccurred()) { env->ExceptionDescribe(); env->ExceptionClear(); return -1; } return 0; } } ================================================ FILE: src/java/bsh/JPlex.java ================================================ package bsh; // // JPlex.java // // *************************************************************************** // // Copyright 2008, Stanford University // // Permission to use, copy, modify, and distribute this software and its // documentation for any purpose and without fee is hereby granted, // provided that the above copyright notice appear in all copies and that // both that copyright notice and this permission notice appear in // supporting documentation, and that the name of Stanford University not // be used in advertising or publicity pertaining to distribution of the // software without specific, written prior permission. Stanford // University makes no representations about the suitability of this // software for any purpose. It is provided "as is" without express or // implied warranty. // // *************************************************************************** // // JPlex.java // // $Id: JPlex.java,v 1.2 2008/09/25 17:50:25 hsexton Exp $ // import edu.stanford.math.plex.Plex; /** * The JPlex class is the entry point for Plex users into Beanshell. * This file is a trivial modification of the analogous code in Beanshell. *

* * @version $Id: JPlex.java,v 1.2 2008/09/25 17:50:25 hsexton Exp $ */ public class JPlex { /** * The arguments to main are ignored. This method should be invoked via: *

* java -cp plex.jar JPlex */ public static void main( String args[] ) { if (!Capabilities.classExists( "bsh.util.Util" )) System.out.println("Can't find the BeanShell utilities."); if (Capabilities.haveSwing()) { try { Plex.useMessageWindow(true); new Interpreter().eval("desktop()"); } catch ( EvalError e ) { System.err.println("Couldn't start desktop: "+e); } } else { System.err.println("Can't find required javax.swing package"); } } } ================================================ FILE: src/java/bsh/JTerm.java ================================================ package bsh; // // JTerm.java // // *************************************************************************** // // Copyright 2008, Stanford University // // Permission to use, copy, modify, and distribute this software and its // documentation for any purpose and without fee is hereby granted, // provided that the above copyright notice appear in all copies and that // both that copyright notice and this permission notice appear in // supporting documentation, and that the name of Stanford University not // be used in advertising or publicity pertaining to distribution of the // software without specific, written prior permission. Stanford // University makes no representations about the suitability of this // software for any purpose. It is provided "as is" without express or // implied warranty. // // *************************************************************************** // // JTerm.java // // $Id: JTerm.java,v 1.1 2008/09/16 17:21:32 hsexton Exp $ // /** * The JTerm class is the entry point for Plex users into * Beanshell who want a simple "terminal" interface (no windows, menus, * etc.).

* * @version $Id: JTerm.java,v 1.1 2008/09/16 17:21:32 hsexton Exp $ */ public class JTerm { /** * The arguments to main are ignored. This method should be invoked via: *

* java -cp plex.jar JTerm */ public static void main( String args[] ) { if (!Capabilities.classExists( "bsh.util.Util" )) System.out.println("Can't find the BeanShell utilities."); try { new Interpreter().eval("makeListener(\"top level\")"); } catch ( EvalError e ) { System.err.println("Couldn't start listener: "+e); } } } ================================================ FILE: src/java/bsh/PlexInterpreter.java ================================================ // // PlexInterpreter.java // // *************************************************************************** // // Copyright 2008, Stanford University // // Permission to use, copy, modify, and distribute this software and its // documentation for any purpose and without fee is hereby granted, // provided that the above copyright notice appear in all copies and that // both that copyright notice and this permission notice appear in // supporting documentation, and that the name of Stanford University not // be used in advertising or publicity pertaining to distribution of the // software without specific, written prior permission. Stanford // University makes no representations about the suitability of this // software for any purpose. It is provided "as is" without express or // implied warranty. // // *************************************************************************** // // PlexInterpreter.java // // $Id$ // package bsh; /** * The PlexInterpreter class is a wrapper for Interpreter * whose only purpose at the moment is to allow users to log their input to * a file. The PlexReader class is the one that does the * actual logging. Instances of this class are easier to get our hands on * in some scripts, so we put methods to enable/disable logging and specify * the logfile name in here. */ public class PlexInterpreter extends Interpreter { // Needed because Interpreter is serializable. public static final long serialVersionUID = 0; /** * Constructor PlexInterpreter, only called in the makeWorkspace.bsh * script. We ignore the name argument. *

* @param console Console for the workspace using this interpreter instance. * @param name Workspace name, which we ignore. */ public PlexInterpreter(ConsoleInterface console, String name) { super(PlexReader.log(console.getIn(), name), console.getOut(), console.getErr(), true, null); setConsole(console); } /** * Constructor PlexInterpreter, only called in the makeListener.bsh. *

* @param name Workspace name, which we ignore. */ public PlexInterpreter(String name) { super(PlexReader.log(System.in, name), System.out, System.err, true); } /** * Specify the name of the logfile. *

* @param logfile_name Where to write the input log, if we keep one. */ public void setLogfile(String logfile_name) { if (in instanceof PlexReader) ((PlexReader)in).setLogfile(logfile_name); } /** * Turn ON input logging for this Interpreter. *

*/ public void enableLogging() { if (in instanceof PlexReader) ((PlexReader)in).enable(); } /** * Return the status string *

*/ public String logStatus() { if (in instanceof PlexReader) { return ((PlexReader)in).log_status(); } else return "No logging status available for this Interpreter instance."; } /** * Turn OFF input logging for this Interpreter. *

*/ public void disableLogging() { if (in instanceof PlexReader) ((PlexReader)in).disable(); } } ================================================ FILE: src/java/bsh/PlexReader.java ================================================ // // PlexReader.java // // *************************************************************************** // // Copyright 2008, Stanford University // // Permission to use, copy, modify, and distribute this software and its // documentation for any purpose and without fee is hereby granted, // provided that the above copyright notice appear in all copies and that // both that copyright notice and this permission notice appear in // supporting documentation, and that the name of Stanford University not // be used in advertising or publicity pertaining to distribution of the // software without specific, written prior permission. Stanford // University makes no representations about the suitability of this // software for any purpose. It is provided "as is" without express or // implied warranty. // // *************************************************************************** // // PlexReader.java // // $Id$ // package bsh; import java.io.File; import java.io.FileOutputStream; import java.io.FilterReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.Reader; /** * The PlexReader class is a wrapper for the input Reader for * interactive Interpreter instances. We intercept the read() * operations, and when input logging is enabled, we write (with conversion * if needed) the chars read() into a log file. Such a file * can be read and executed later via the source() command, * for instance. */ public class PlexReader extends FilterReader { private static boolean logging_by_default = false; private static String default_logfile_dir = System.getProperty("user.home") + File.separator + "plex"; private static String default_logfile_prefix = "log"; private static String default_logfile_suffix = ".txt"; // Something to throw when we get PlexReader errors private static final class Error extends IOException { public final static long serialVersionUID = 0; @SuppressWarnings("unused") public Error() { super("PlexReader error"); } public Error(String message) { super("PlexReader error: " + message); } } // Something to throw when we get "expected" PlexReader errors private static final class ContinuableError extends IOException { public final static long serialVersionUID = 0; @SuppressWarnings("unused") public ContinuableError() { super("PlexReader exception"); } public ContinuableError(String message) { super("PlexReader exception: " + message); } } // Something to throw when we get PlexReader errors we can't handle private static final class FatalError extends IOException { public final static long serialVersionUID = 0; @SuppressWarnings("unused") public FatalError() { super("Unrecoverable PlexReader error"); } public FatalError(String message) { super("Unrecoverable PlexReader error: " + message); } } // We need a place to store a copy of the characters from the underlying // stream so that we can convert all of the backslash-u escaped expansions that // wind up in these streams for some mysterious reason. Anyway, we copy // the characters in bulk from the input stream buffer where they got put // by the read, and then we consume as many of them as we can convert at // a time, and put those in the actual buffer that gets written to the // logfile. private static final class CharQ { private int first; private int free; private char[] buf; private final static int INIT_SZ = 1024; public CharQ() { first = 0; free = 0; buf = new char[INIT_SZ]; } private void reset() { first = 0; free = 0; } private final void ensureSpace(int need) { if (first > 0) { if (first < free) { for (int i = first; i < free; i++) { buf[i-first] = buf[i]; } } free -= first; first = 0; } if ((free + need) > buf.length) { // grow the buffer assert(first == 0); int new_size = 2*buf.length; if (new_size < (need + free)) new_size = need + free; char[] new_buf = new char[new_size]; for (int i = 0; i < free; i++) { new_buf[i] = buf[i]; } } } @SuppressWarnings("unused") public final void add(char c) { ensureSpace(1); buf[free++] = c; } public final void bulkAdd(char[] b, int pos, int len) { ensureSpace(len); for (int i = 0; i < len; i++) { buf[free++] = b[pos+i]; } } public final String toString() { if (first < free) return new String(buf, first, free-first); else return new String(""); } public final int available() { return (free-first); } public final boolean hasNext() { return (first < free); } static final int char_to_hex(char c) throws FatalError { if ((c >= '0') && (c <= '9')) return (c - '0'); else if ((c >= 'a') && (c <= 'f')) return (c - 'a') + 10; else if ((c >= 'A') && (c <= 'F')) return (c - 'A') + 10; else throw new FatalError("Unexpected value, " + c + ", in hex escape sequence."); } public final char next() throws Error { if (first < free) return buf[first++]; else throw new Error("reading past end of queue"); } public final char peek() throws Error { if (first < free) return buf[first]; else throw new Error("peeking past end of queue"); } public final int current() { return first; } public final void rewind(int new_first) { if ((0 <= new_first) && (new_first <= first)) first = new_first; else throw new IllegalArgumentException("rewinding first to illegal value"); } public final char convertNext() throws Error, ContinuableError, FatalError { int initial = current(); int available = available(); // Should never get called when available <= 0. char c = next(); if (c != '\\') { return c; } else { // backslash case if (available == 1) { rewind(initial); throw new ContinuableError("trailing backslash"); } else if (peek() != 'u') { return c; } else if (available < 6) { rewind(initial); throw new ContinuableError("incomplete binary escape sequence"); } else { // backslash-u case with enough characters. Unless the stream is // garbled, we can decode. If the stream is garbled, we throw a // FatalError with a message that shows the queue contents. The // FatalError signals the calling method to turn off logging, and // perhaps the unlucky user send us a bug report with the // message, if we are not also unlucky. // eat the 'u' next(); c = (char)(char_to_hex(next()) << 12 | char_to_hex(next()) << 8 | char_to_hex(next()) << 4 | char_to_hex(next())); return c; } } } } private boolean logging; private String logfile_prefix; private String logfile_suffix; private String logfile_dir; // can be set to override generated names private String logfile_name; private final char[] logbits; private int bits_offset; private OutputStreamWriter logstream; private final CharQ logqueue; private final static int LOGBITS_LEN = 10; /** * Constructor PlexReader, only called by PlexInterpreter(). We ignore the name argument. *

* @param in Input Reader for an interative interpreter instance. * @param ws_name Workspace name, which we ignore. */ public PlexReader(Reader in, String ws_name) { super(in); logging = logging_by_default; logfile_prefix = default_logfile_prefix + "_"; // ws_name + "_"; logfile_suffix = default_logfile_suffix; logfile_dir = default_logfile_dir; logbits = new char[LOGBITS_LEN]; logqueue = new CharQ(); bits_offset = 0; } // Clear buffer state. private void reset_log_data() { logqueue.reset(); bits_offset = 0; } /** * Wrap Reader instance in a PlexReader, unless we already did. We ignore the name argument. *

* @param in Input Reader for an interative interpreter instance. * @param ws_name Workspace name, which we ignore. * @return A PlexReader wrapper for in. */ static Reader log(Reader in, String ws_name) { if (in instanceof PlexReader) return in; else { PlexReader return_value = null; try { return_value = new PlexReader(in, ws_name); if (logging_by_default) return_value.enable(null); } catch (java.io.IOException ioe) { return (in); } return return_value; } } /** * Wrap InputStream instance in a PlexReader. We ignore the name argument. *

* @param in InputStream for an terminal-based interpreter instance. * @param ws_name Workspace name, which we ignore. * @return A PlexReader wrapper for in. */ static Reader log(InputStream in, String ws_name) { PlexReader return_value = null; try { return_value = new PlexReader(new InputStreamReader(in), ws_name); if (logging_by_default) return_value.enable(null); } catch (java.io.IOException ioe) { return (new InputStreamReader(in)); } return return_value; } // Try to make a new logfile with a name that makes it easy to find the // newest one (e.g., ls lists the files in order of creation). If that // doesn't seem to be working, give up and use the tempfile method. private static File createNewFile(String prefix, String suffix, String dir) throws IOException { for (int i = 0; i < 100; i++) { String name = String.format("%s%s%s%02d%s", dir, File.separator, prefix, i, suffix); File tmp = new File(name); if (!tmp.exists()) return tmp; } // give up return(File.createTempFile(prefix, suffix, new File(dir))); } /** * Enable logging, making sure that there is an underlying logstream. *

* @param log_name Name to use as logfile, or null, if the default is okay. */ public void enable(String log_name) throws IOException { if (logstream == null) { // no logstream, so make one logfile_name = log_name; if (logfile_name != null) { logstream = new OutputStreamWriter(new FileOutputStream(new File(logfile_name))); } else { File lfile = createNewFile(logfile_prefix, logfile_suffix, logfile_dir); logfile_name = lfile.toString(); logstream = new OutputStreamWriter(new FileOutputStream(lfile)); } } logging = true; } /** * Enable logging, using default settings if there is no underlying logstream. *

*/ final void enable() { if (logstream != null) { if (!logging) bits_offset = 0; logging = true; } else { try { enable(null); } catch (java.io.IOException ioe) { logging = false; } return; } } /** * Disable logging, flushing any unwritten input, and leaving the * underlying logstream, if any, in place.

*/ final void disable() { if (logging) { flush(); } logging = false; } /** * Force logstream to go to specified filename. *

* @param new_log_name Name to use as logfile -- must be the name of a * writable file. */ public void setLogfile (String new_log_name) { if (logstream != null) { File old_file = new File(logfile_name); File new_file = new File(new_log_name); if (old_file.equals(new_file)) return; else { try { logstream.flush(); } catch (IOException e) { } try { logstream.close(); } catch (IOException e) { } reset_log_data(); logstream = null; } } logfile_name = new String(new_log_name); try { logstream = new OutputStreamWriter(new FileOutputStream(new File(logfile_name))); } catch (IOException e) { throw new IllegalArgumentException("Failed setting logfile to: " + logfile_name + "\n" + e.getMessage()); } } // Append the log to the specified log file. private boolean flush() { if (logging && (logstream != null) && (bits_offset > 0)) { try { logstream.write(logbits, 0, bits_offset); logstream.flush(); } catch (java.io.IOException ioe) { // turn off logging -- we're losing here logging = false; bits_offset = 0; return false; } } bits_offset = 0; return true; } // Read the next character out of the logqueue, and do whatever // conversions are appropriate. If we encounter a FatalError, turn off // logging and try to indicate the nature of the lossage to the user. If // we encounter a ContinuableError, return. Encountering an Error is a // sign of a programming mistake, so we want to hear about that, too, but // I doubt that we will, and I hope that it never comes up. private void convertInput() { int q_pos = 0; try { while(logqueue.hasNext()) { q_pos = logqueue.current(); char last_char = logbits[bits_offset++] = logqueue.convertNext(); if ((bits_offset == logbits.length) || (last_char == '\n')) { boolean success = flush(); if (!success) throw new IllegalStateException("Writing log to " + logfile_name + " failed, and is now disabled."); } } } catch (ContinuableError ce) { return; } catch (FatalError fe) { logging = false; logqueue.rewind(q_pos); throw new IllegalStateException("Input logging disabled, unrecognized input: " + logqueue.toString()); } catch (Error e) { throw new IllegalStateException("this should be impossible: " + e.getMessage()); } } // Log b, if logging is on, and return the character. private void log(char[] buf, int off, int len) { if (logging) { logqueue.bulkAdd(buf, off, len); convertInput(); } } /** * Wrapper for normal read to buffer operation. If logging is on, log the * characters that were read, otherwise, do nothing. *

* @param buf Where to write the characters read. * @param off Offset at which to start writing the characters. * @param len Max number of characters to read. * @return Number of characters read. */ public int read(char[] buf, int off, int len) throws IOException { int chars_read = in.read(buf, off, len); if (chars_read != -1) { log(buf, off, chars_read); } return chars_read; } /** * Set the default logging flag. The default default is false. * Invoked via the setLogging() command. *

* @param flag If true, input logging is on by default, else off. */ public static void setDefaultFlag(boolean flag) { logging_by_default = flag; } /** * Return a String describing the logging status, including defaults. *

* @return Log status string. */ public String log_status() { String instance_status = ""; if (logstream == null) { instance_status = "Logging is off"; } else if (logging) { instance_status = "Logging is enabled, and the logfile is " + logfile_name; } else { instance_status = "Logging is diabled, and the logfile is " + logfile_name; } String default_status = ""; if (logging_by_default) { default_status = "By default, it is on and the logfile directory is " + default_logfile_dir; } else default_status = "By default, it is off and the logfile directory is " + default_logfile_dir; return instance_status + ". " + default_status + "."; } /** * Set the default logging directory. The default default is ~/plex. * Invoked via the setLogging() command. *

* @param pathname Set the default directory in which to store log files. */ public static void setDefaultDir(String pathname) { File tmp = new File(pathname); if (tmp.exists() && tmp.isDirectory()) { // that's good enough for me default_logfile_dir = new String(pathname); } else throw new IllegalArgumentException ("Default logging directory not a directory: " + pathname); } } ================================================ FILE: src/java/bsh/commands/log.java ================================================ // // log.java // // *************************************************************************** // // Copyright 2008, Stanford University // // Permission to use, copy, modify, and distribute this software and its // documentation for any purpose and without fee is hereby granted, // provided that the above copyright notice appear in all copies and that // both that copyright notice and this permission notice appear in // supporting documentation, and that the name of Stanford University not // be used in advertising or publicity pertaining to distribution of the // software without specific, written prior permission. Stanford // University makes no representations about the suitability of this // software for any purpose. It is provided "as is" without express or // implied warranty. // // *************************************************************************** // // log.java // // $Id$ // package bsh.commands; import bsh.CallStack; import bsh.Interpreter; import bsh.PlexInterpreter; /** Turn on/off input logging in the current interpreter, specify the specific log file to use, or return the logging status string. void log( [ String logfile_name ] ) void log( [ boolean on_flag ] ) String log() */ public class log { public static String usage() { return "usage: log( boolean on_flag )\n" + " log( String logfile_name )\n" + " log( )\n" ; } /** Implement log() command. */ public static String invoke(Interpreter env, CallStack callstack){ if (env instanceof PlexInterpreter) { return ((PlexInterpreter)env).logStatus(); } else throw new IllegalArgumentException("No input logging for this " + "interpreter instance"); } /** Implement log(String logfile_name) command. */ public static void invoke(Interpreter env, CallStack callstack, String logfile_name){ if (env instanceof PlexInterpreter) { ((PlexInterpreter)env).setLogfile(logfile_name); } else throw new IllegalArgumentException("No input logging for this " + "interpreter instance"); } /** Implement log(boolean on_flag) command. */ public static void invoke(Interpreter env, CallStack callstack, boolean on_flag) { if (env instanceof PlexInterpreter) { if (on_flag) ((PlexInterpreter)env).enableLogging(); else ((PlexInterpreter)env).disableLogging(); } else throw new IllegalArgumentException("No input logging for this " + "interpreter instance"); } } ================================================ FILE: src/java/bsh/commands/setLogging.java ================================================ // // setLogging.java // // *************************************************************************** // // Copyright 2008, Stanford University // // Permission to use, copy, modify, and distribute this software and its // documentation for any purpose and without fee is hereby granted, // provided that the above copyright notice appear in all copies and that // both that copyright notice and this permission notice appear in // supporting documentation, and that the name of Stanford University not // be used in advertising or publicity pertaining to distribution of the // software without specific, written prior permission. Stanford // University makes no representations about the suitability of this // software for any purpose. It is provided "as is" without express or // implied warranty. // // *************************************************************************** // // setLogging.java // // $Id$ // package bsh.commands; import bsh.CallStack; import bsh.Interpreter; import bsh.PlexReader; /** Set the global defaults for input logging. The default directory is ~/plex/ and the default setting is false. void setLogging( [ String default_dir ] ) void setLogging( [ boolean default_on_flag ] ) */ public class setLogging { public static String usage() { return "usage: setLogging( boolean default_on_flag )\n" + " setLogging( String default_logdir )\n" ; } /** Implement setLogging(String default_dir) command. */ public static void invoke(Interpreter env, CallStack callstack, String default_dir){ PlexReader.setDefaultDir(default_dir); } /** Implement setLogging(boolean default_on_flag) command. */ public static void invoke(Interpreter env, CallStack callstack, boolean default_flag) { PlexReader.setDefaultFlag(default_flag); } } ================================================ FILE: src/java/edu/stanford/math/clustering/DisjointSetSystem.java ================================================ package edu.stanford.math.clustering; public class DisjointSetSystem { protected int[] parents; protected int[] ranks; public DisjointSetSystem(int n) { this.parents = new int[n]; this.ranks = new int[n]; for (int i = 0; i < n; i++) { this.parents[i] = i; } } public void union(int x, int y) { int xRoot = this.find(x); int yRoot = this.find(y); if (xRoot == yRoot) return; if (this.ranks[xRoot] < this.ranks[yRoot]) { this.parents[xRoot] = yRoot; } else if (this.ranks[xRoot] > this.ranks[yRoot]) { this.parents[yRoot] = xRoot; } else { this.parents[yRoot] = xRoot; this.ranks[xRoot]++; } } public int find(int x) { if (this.parents[x] != x) this.parents[x] = this.find(this.parents[x]); return this.parents[x]; } public int size() { return this.parents.length; } } ================================================ FILE: src/java/edu/stanford/math/clustering/HierarchicalClustering.java ================================================ package edu.stanford.math.clustering; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; import edu.stanford.math.plex4.metric.interfaces.AbstractIntMetricSpace; import gnu.trove.TIntHashSet; public abstract class HierarchicalClustering { public static double INFINITY = Double.POSITIVE_INFINITY; protected final AbstractIntMetricSpace metricSpace; protected double[] mergeDistances; protected int[][] mergedPairs; public HierarchicalClustering(AbstractIntMetricSpace metricSpace) { this.metricSpace = metricSpace; this.performClustering(); } public double[] getMergedDistances() { return this.mergeDistances; } public static List> getImpliedClusters(DisjointSetSystem setSystem) { Map> clusters = new HashMap>(); int N = setSystem.size(); for (int i = 0; i < N; i++) { int assignment = setSystem.find(i); if (!clusters.containsKey(assignment)) clusters.put(assignment, new HashSet()); clusters.get(assignment).add(i); } ArrayList> result = new ArrayList>(clusters.values()); return result; } public static List getImpliedClustersTrove(DisjointSetSystem setSystem) { Map clusters = new HashMap(); int N = setSystem.size(); for (int i = 0; i < N; i++) { int assignment = setSystem.find(i); if (!clusters.containsKey(assignment)) clusters.put(assignment, new TIntHashSet()); clusters.get(assignment).add(i); } ArrayList result = new ArrayList(clusters.values()); return result; } public DisjointSetSystem thresholdByDistance(double maxDistance) { int N = metricSpace.size(); DisjointSetSystem setSystem = new DisjointSetSystem(N); for (int s = 0; mergeDistances[s] <= maxDistance; s++) { if (mergedPairs[s] == null) break; setSystem.union(mergedPairs[s][0], mergedPairs[s][1]); } return setSystem; } public DisjointSetSystem thresholdByNumClusters(int numClusters) { int N = metricSpace.size(); DisjointSetSystem setSystem = new DisjointSetSystem(N); if (numClusters > N) numClusters = N; if (numClusters < 1) numClusters = 1; for (int s = 0; s < N - numClusters; s++) { if (mergedPairs[s] == null) break; setSystem.union(mergedPairs[s][0], mergedPairs[s][1]); } return setSystem; } public abstract void performClustering(); } ================================================ FILE: src/java/edu/stanford/math/clustering/LinkageTree.java ================================================ package edu.stanford.math.clustering; public class LinkageTree { protected double[] mergeDistances; protected int[][] mergePairs; } ================================================ FILE: src/java/edu/stanford/math/clustering/SingleLinkageClustering.java ================================================ package edu.stanford.math.clustering; import edu.stanford.math.plex4.metric.interfaces.AbstractIntMetricSpace; public class SingleLinkageClustering extends HierarchicalClustering { public SingleLinkageClustering(AbstractIntMetricSpace metricSpace) { super(metricSpace); } public void performClustering() { int N = metricSpace.size(); double[][] dist = new double[N][N]; // index of closest point to i-th point int[] mindist = new int[N]; for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { if (i == j) dist[i][j] = INFINITY; else dist[i][j] = metricSpace.distance(i, j); if (dist[i][j] < dist[i][mindist[i]]) mindist[i] = j; } } this.mergeDistances = new double[N]; this.mergedPairs = new int[N][]; int[] parents = new int[N]; for (int i = 0; i < N; i++) parents[i] = i; for (int s = 0; s < N - 1; s++) { // find closest pair of vectors (i1, i2) int i1 = 0; for (int i = 0; i < N; i++) if (dist[i][mindist[i]] < dist[i1][mindist[i1]]) i1 = i; int i2 = mindist[i1]; mergeDistances[s] = dist[i1][i2]; // mergedPairs[s] = new int[] { parents[i1], parents[i2] }; mergedPairs[s] = new int[] { i1, i2 }; parents[i1] = parents[i2] = s + N; // overwrite row i1 with minimum of entries in row i1 and i2 for (int j = 0; j < N; j++) if (dist[i2][j] < dist[i1][j]) dist[i1][j] = dist[j][i1] = dist[i2][j]; dist[i1][i1] = INFINITY; for (int i = 0; i < N; i++) { dist[i2][i] = dist[i][i2] = INFINITY; } // update mindist for (int j = 0; j < N; j++) { if (mindist[j] == i2) mindist[j] = i1; if (dist[i1][j] < dist[i1][mindist[i1]]) mindist[i1] = j; } } } } ================================================ FILE: src/java/edu/stanford/math/mapper/BoundedIntervalCover.java ================================================ package edu.stanford.math.mapper; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import edu.stanford.math.plex4.homology.barcodes.Interval; public class BoundedIntervalCover implements Iterable> { private double min, max; private int n; private double overlap; private List> intervals = new ArrayList>(); public BoundedIntervalCover(double min, double max, int n, double overlap) { this.min = min; this.max = max; this.n = n; this.overlap = overlap; this.initialize(); } void initialize() { double width = (max - min) / ((double) n); double overhang = width * this.overlap / 2; for (int i = 0; i < n; i++) { double start = min + i * width; double end = start + width; start = Math.max(start - overhang, min); end = Math.min(end + overhang, max); this.intervals.add(Interval.makeFiniteClosedInterval(start, end)); } } public Iterator> iterator() { return this.intervals.iterator(); } } ================================================ FILE: src/java/edu/stanford/math/mapper/FilterFunctionUtility.java ================================================ package edu.stanford.math.mapper; public class FilterFunctionUtility { } ================================================ FILE: src/java/edu/stanford/math/mapper/FiniteMetricSpaceCover.java ================================================ package edu.stanford.math.mapper; import edu.stanford.math.plex4.metric.interfaces.AbstractIntMetricSpace; import edu.stanford.math.plex4.streams.filter.IntFilterFunction; import gnu.trove.TIntHashSet; import java.util.Iterator; public class FiniteMetricSpaceCover implements Iterable { private IntFilterFunction filter; private AbstractIntMetricSpace metricSpace; public FiniteMetricSpaceCover(IntFilterFunction filter, AbstractIntMetricSpace metricSpace) { super(); this.filter = filter; this.metricSpace = metricSpace; } public Iterator iterator() { // TODO Auto-generated method stub return null; } } ================================================ FILE: src/java/edu/stanford/math/mapper/HistogramCreator.java ================================================ package edu.stanford.math.mapper; public class HistogramCreator { protected final double[] values; protected final int numBins; protected final int[] bins; protected final String string; HistogramCreator(double[] values, int numBins) { this.values = values; this.numBins = numBins; this.bins = this.performBinning(); this.string = this.generateString(20); } protected int[] performBinning() { double min = this.getMin(); double max = this.getMax(); int[] bins = new int[this.numBins]; for (int i = 0; i < this.values.length; i++) { int bin = (int) Math.floor(this.numBins * (this.values[i] - min) / (max - min)); if (bin >= this.numBins) bin = this.numBins - 1; bins[bin]++; } return bins; } protected double getMin() { double min = Double.POSITIVE_INFINITY; for (int i = 0; i < this.values.length; i++) { min = this.values[i] < min ? this.values[i] : min; } return min; } protected double getMax() { double max = Double.NEGATIVE_INFINITY; for (int i = 0; i < this.values.length; i++) { max = this.values[i] > max ? this.values[i] : max; } return max; } public int[] getCounts() { return this.bins; } protected double[] getBinLattice(double offset) { double[] values = new double[this.numBins]; double min = this.getMin(); double max = this.getMax(); double binWidth = (max - min) / this.numBins; for (int i = 0; i < this.numBins; i++) { values[i] = (i + offset) * binWidth + min; } return values; } public double[] getBinStartingPoints() { return this.getBinLattice(0); } public double[] getBinEndingPoints() { return this.getBinLattice(1); } public double[] getBinMidPoints() { return this.getBinLattice(0.5); } public double getBinStartPoint(int binIndex) { return this.getBinLatticePoint(binIndex, 0); } public double getBinLatticePoint(int binIndex, double offset) { double min = this.getMin(); double max = this.getMax(); double binWidth = (max - min) / this.numBins; return (binIndex + offset) * binWidth + min; } public int getLastZeroBinIndex() { for (int i = this.numBins - 1; i >= 0; i--) { if (this.bins[i] == 0) return i; } return this.numBins; } protected String generateString(int maxHistogramStars) { double min = this.getMin(); double max = this.getMax(); double binWidth = (max - min) / this.numBins; StringBuilder builder = new StringBuilder(); double maxBinCount = 0; for (int i = 0; i < this.numBins; i++) { maxBinCount = this.bins[i] > maxBinCount ? this.bins[i] : maxBinCount; } double starMultiplier = 1; if (maxBinCount > maxHistogramStars) { starMultiplier = maxHistogramStars / maxBinCount; } for (int i = 0; i < this.numBins; i++) { double start = i * binWidth + min; double end = (i + 1) * binWidth + min; if (i == this.numBins - 1) { builder.append(String.format("[%10.2f, %10.2f]", start, end)); } else { builder.append(String.format("[%10.2f, %10.2f)", start, end)); } int starCount = (int) Math.ceil(starMultiplier * this.bins[i]); String starString = HistogramCreator.repeatString("*", starCount); builder.append(": "); builder.append(String.format("(%10d) ", this.bins[i])); builder.append(starString); builder.append("\n"); } return builder.toString(); } protected static String repeatString(String s, int n) { return new String(new char[n]).replace("\0", s); } @Override public String toString() { return this.string; } } ================================================ FILE: src/java/edu/stanford/math/mapper/MapperPipeline.java ================================================ package edu.stanford.math.mapper; import edu.stanford.math.clustering.DisjointSetSystem; import edu.stanford.math.clustering.HierarchicalClustering; import edu.stanford.math.clustering.SingleLinkageClustering; import edu.stanford.math.plex4.graph.AbstractWeightedUndirectedGraph; import edu.stanford.math.plex4.graph.UndirectedWeightedListGraph; import edu.stanford.math.plex4.homology.barcodes.Interval; import edu.stanford.math.plex4.homology.utility.HomologyUtility; import edu.stanford.math.plex4.metric.interfaces.AbstractIntMetricSpace; import edu.stanford.math.plex4.streams.filter.IntFilterFunction; import gnu.trove.TIntHashSet; import gnu.trove.TIntIterator; import java.util.ArrayList; import java.util.List; public class MapperPipeline { public static List producePartialClustering(IntFilterFunction filter, AbstractIntMetricSpace metricSpace, MapperSpecifier specifier) { Iterable> rangeCover = RangeCoverUtility.createUniformIntervalCover(filter, specifier.numIntervals, specifier.overlap); SetCover1D domainCover = new SetCover1D(filter, rangeCover); List mapperCover = new ArrayList(); for (TIntHashSet set : domainCover) { // construct sub-metric space AbstractIntMetricSpace subMetricSpace = MetricUtility.createSubMetricSpace(metricSpace, set); // run clustering on subset SingleLinkageClustering clustering = new SingleLinkageClustering(subMetricSpace); // get merge times for clustering tree double[] mergeTimes = clustering.getMergedDistances(); // construct histogram on merge times HistogramCreator histogram = new HistogramCreator(mergeTimes, specifier.numHistogramBuckets); // select last bin for which histogram is zero int lastZeroBinIndex = histogram.getLastZeroBinIndex(); // obtain distance cutoff corresponding to zero-bin double distanceCutoff = histogram.getBinStartPoint(lastZeroBinIndex); // get clusters by thresholding linkage tree DisjointSetSystem setSystem = clustering.thresholdByDistance(distanceCutoff); // convert clusters to list of sets List clusters = HierarchicalClustering.getImpliedClustersTrove(setSystem); for (TIntHashSet subCluster : clusters) { mapperCover.add(MapperPipeline.pullUpIndices(subCluster, set)); } } return mapperCover; } public static AbstractWeightedUndirectedGraph intersectionGraph(List sets) { int n = sets.size(); UndirectedWeightedListGraph graph = new UndirectedWeightedListGraph(n); for (int i = 0; i < n; i++) { TIntHashSet x = sets.get(i); for (int j = 0; j < i; j++) { TIntHashSet y = sets.get(j); TIntHashSet intersection = HomologyUtility.computeIntersection(x, y); if (intersection.size() > 0) graph.addEdge(i, j, intersection.size()); } } return graph; } protected static TIntHashSet pullUpIndices(TIntHashSet subIndices, TIntHashSet indices) { TIntHashSet result = new TIntHashSet(); TIntIterator iterator = subIndices.iterator(); int[] indicesArray = indices.toArray(); while (iterator.hasNext()) { int subIndex = iterator.next(); result.add(indicesArray[subIndex]); } return result; } } ================================================ FILE: src/java/edu/stanford/math/mapper/MapperSpecifier.java ================================================ package edu.stanford.math.mapper; public class MapperSpecifier { double overlap = 0.2; int numIntervals = 40; int numHistogramBuckets = 20; public static MapperSpecifier create() { return new MapperSpecifier(); } MapperSpecifier numIntervals(int numIntervals) { this.numIntervals = numIntervals; return this; } MapperSpecifier overlap(double overlap) { this.overlap = overlap; return this; } MapperSpecifier numHistogramBuckets(int numHistogramBuckets) { this.numHistogramBuckets = numHistogramBuckets; return this; } } ================================================ FILE: src/java/edu/stanford/math/mapper/MetricUtility.java ================================================ package edu.stanford.math.mapper; import edu.stanford.math.plex4.metric.interfaces.AbstractIntMetricSpace; import gnu.trove.TIntHashSet; public class MetricUtility { public static AbstractIntMetricSpace createSubMetricSpace(final AbstractIntMetricSpace metricSpace, final int[] indices) { return new AbstractIntMetricSpace() { public double distance(int i, int j) { return metricSpace.distance(indices[i], indices[j]); } public int size() { return indices.length; } }; } public static AbstractIntMetricSpace createSubMetricSpace(final AbstractIntMetricSpace metricSpace, final TIntHashSet indices) { int[] indicesArray = indices.toArray(); return MetricUtility.createSubMetricSpace(metricSpace, indicesArray); } } ================================================ FILE: src/java/edu/stanford/math/mapper/RangeCoverUtility.java ================================================ package edu.stanford.math.mapper; import edu.stanford.math.plex4.homology.barcodes.Interval; import edu.stanford.math.plex4.streams.filter.IntFilterFunction; public class RangeCoverUtility { public static Iterable> createUniformIntervalCover(IntFilterFunction filter, int n, double overlap) { return new BoundedIntervalCover(filter.getMinValue(), filter.getMaxValue(), n, overlap); } } ================================================ FILE: src/java/edu/stanford/math/mapper/SetCover1D.java ================================================ package edu.stanford.math.mapper; import edu.stanford.math.plex4.homology.barcodes.Interval; import edu.stanford.math.plex4.streams.filter.IntFilterFunction; import gnu.trove.TIntHashSet; import java.util.ArrayList; import java.util.Iterator; import java.util.List; /** * This class computes the pre-image of a cover of the codomain of a function. * The function is assumed to be of the type IntFilterFunction. The result is is * accessible as an Iterable set of TIntHashSets which contain the pre-images of * each element of the cover. * * @author Andrew Tausz * */ public class SetCover1D implements Iterable { private IntFilterFunction filter; private Iterable> rangeCover; private List setCover = new ArrayList(); public SetCover1D(IntFilterFunction filter, Iterable> rangeCover) { super(); this.filter = filter; this.rangeCover = rangeCover; this.initialize(); } void initialize() { double[] values = filter.getValues(); // note that this is not necessarily the most efficient in case more is // known about the range cover // will leave it generic for now for (Interval interval : this.rangeCover) { TIntHashSet set = new TIntHashSet(); for (int i = 0; i < values.length; i++) { if (interval.containsPoint(values[i])) { set.add(i); } } this.setCover.add(set); } } public Iterator iterator() { return this.setCover.iterator(); } } ================================================ FILE: src/java/edu/stanford/math/plex/BCPlot.java ================================================ package edu.stanford.math.plex; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.FontMetrics; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.GridLayout; import java.awt.Rectangle; import java.awt.RenderingHints; import java.awt.event.ActionEvent; import java.awt.event.KeyEvent; import java.awt.geom.AffineTransform; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.util.Arrays; import java.util.HashMap; import java.util.Map; import java.util.TreeSet; import javax.imageio.ImageIO; import javax.swing.AbstractAction; import javax.swing.Action; import javax.swing.BorderFactory; import javax.swing.BoxLayout; import javax.swing.ImageIcon; import javax.swing.JComponent; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JPanel; import javax.swing.JScrollPane; /** * The BCPlot class does simple plotting of PersistenceIntervals. * * @version $Id$ */ public class BCPlot extends JPanel { protected static final int CIRCLE_SIZE = 7; protected static final long serialVersionUID = 1L; // If it is not a barcode plot it will be a scatter plot protected boolean plotTypeScatter = false; // Fixed Ruler for the bar graph protected Ruler fixedRuler; // The amount of space in pixels for the fixed ruler at top of scroll pain protected static final int FIXED_RULER_HEIGHT = 35; // protected static final int MAX_GRID_HEIGHT_PER_PAGE = 1500; // protected static final int MAX_DISPLAYABLE_BARS = MAX_GRID_HEIGHT_PER_PAGE - 1; // protected static final int DEFAULT_BARS_PER_PAGE = 249; // The panel that actually holds the Graphics of the plot protected DrawingPane barcodePane; protected Action fileSaveMenuHandler; // This dimension is of the region Used For the Plot Legend, Ruler, // Labels, and Title protected Rectangle baseRegionUsedForPlotLegendRulerLabels; // This is the height in Pixels of the region Used For the Plot Legend, // Ruler, Labels, and Tittle protected int heightOfBaseRegionUsedForPlotLegendRulerLabels = 75; protected int widthOfSideRegionUsedForPlotLegendRulerLabels = 100; protected int leftMargin = widthOfSideRegionUsedForPlotLegendRulerLabels/2; protected int rightMargin = widthOfSideRegionUsedForPlotLegendRulerLabels/2; protected String legendMajorString = "", legendMinorString = null; // Set Visualization Region Size protected int fullVisualizationWidth = 1200; // Width of the grid for the plot protected int gridWidth; // Height of the grid for the plot 10 inch at 1500 dpi protected int gridHeight = MAX_GRID_HEIGHT_PER_PAGE; protected int fullVisualizationHeight; // barcode values protected double[][] plotValue; // barcode plot upper bound protected double plotUpperBound; protected Color gridRulerFontColor, tickUpperBoundColor, gridTickMinorColor, gridTickMajorColor; protected Color upperBoundFontColor, labelFontColor, legendMinorFontColor, legendMajorFontColor; protected Color fixedRulerBorderColor, fixedRulerColor, barcodeBarColor; protected Color fixedRulerFontColor, fixedRulerMinorTickColor, fixedRulerMajorTickColor; protected Font labelFont, legendMinorFont, legendMajorFont, gridRulerFont, fixedRulerFont; protected FontMetrics legendMinorFontMetrics, legendMajorFontMetrics; protected FontMetrics fixedRulerFontMetrics, labelFontMetrics, gridRulerFontMetrics; // Writable Region protected int upperMargin; // Barcode Parameters protected int barcodeBarHeight, barcodeBarSpacing; // is a grid visible behind the plot protected Boolean gridIsVisible; // Flag indicating plot is being saved to a file protected Boolean plotBeingSaved = false; // unit value for the pixels unit value in rulers protected double unitsPerPixel; // how how many pixels are in a unit protected double pixelsPerUnit; // How often do you place a major tick mark on a ruler or grid protected int tickMajorPlacement; // How often do you place a tick in terms of pixels protected int tickGap; // Used to load and save grahpic2d regions as graphic files protected BufferedImage bufferedImage; // Indicator that a background image is loaded protected Boolean thereIsaBackgroundImage; // Directory path to background image protected String backgroundImageName; /** * Returns the maximum number of barcodes that can be "plotted". */ public int getMaxDisplayableBars(){ return MAX_DISPLAYABLE_BARS; } /** * Sets the Major Legend */ protected void setMajorLegend(String s){ legendMajorString = s; } protected BCPlot() { throw new IllegalStateException("Do not use"); } // protected constructor. protected BCPlot(double[][] values, double upperBound, boolean forceScatter) { validate(values, upperBound); // Set Barcode Properties // if the interval count <= {250,300,375,500,750,1500}; // then {barcodeBarHeight,barcodeBarSpacing} is // {{3,3},{3,2},{2,2},{2,1},{1,1},{1,0}}; gridWidth = fullVisualizationWidth; if (forceScatter || (plotValue.length > MAX_DISPLAYABLE_BARS)) { plotTypeScatter = true; barcodeBarHeight = 0; barcodeBarSpacing = 0; upperMargin = 0; gridWidth = fullVisualizationWidth - rightMargin - leftMargin; gridHeight = gridWidth; fullVisualizationHeight = gridHeight + heightOfBaseRegionUsedForPlotLegendRulerLabels; } else { // At this point it looks to be a barcode plot plotTypeScatter = false; fullVisualizationWidth += 20; // Set barcode plot visual properties if(plotValue.length <= DEFAULT_BARS_PER_PAGE){ barcodeBarHeight = 3; barcodeBarSpacing = 3; upperMargin = 3; }else if(plotValue.length <= 299){ barcodeBarHeight = 3; barcodeBarSpacing = 2; upperMargin = 2; }else if(plotValue.length <= 374){ barcodeBarHeight = 2; barcodeBarSpacing = 2; upperMargin = 2; }else if(plotValue.length <= 499){ barcodeBarHeight = 2; barcodeBarSpacing = 1; upperMargin = 1; }else if(plotValue.length <= 749){ barcodeBarHeight = 1; barcodeBarSpacing = 1; upperMargin = 1; }else if(plotValue.length < MAX_DISPLAYABLE_BARS){ barcodeBarHeight = 1; barcodeBarSpacing = 0; upperMargin = 1; }else if(plotValue.length == MAX_DISPLAYABLE_BARS){ barcodeBarHeight = 1; barcodeBarSpacing = 0; upperMargin = 0; } gridHeight = upperMargin + ((barcodeBarHeight + barcodeBarSpacing) * plotValue.length); fullVisualizationHeight = gridHeight + heightOfBaseRegionUsedForPlotLegendRulerLabels; } // run it! initJFrame(); } // Put together an error string for the argument checker. protected static String illegal_interval_string(int i, double a, double b) { return String.format("Interval %d is [%.8g, %.8g), " + "not a non-empty subset of [0.0, %.8g)", i, a, b, Double.MAX_VALUE); } /** * Validate the upperBound and the values used for the Barcode Plot */ protected void validate(double[][] numbers, double upperBound) { if (numbers == null) throw new IllegalArgumentException("No plot values"); if ((upperBound >= Double.MAX_VALUE) || (upperBound <= 0)) { throw new IllegalArgumentException ("upperBound, " + upperBound + ", must be in the range " + "[0.0, " + Double.MAX_VALUE + ")"); } for (int i = 0; i < numbers.length; i++) { if ((numbers[i][0] < 0) || (numbers[i][0] >= Double.MAX_VALUE) || (numbers[i][0] > numbers[i][1]) || (numbers[i][1] > Double.POSITIVE_INFINITY)) throw new IllegalArgumentException (illegal_interval_string(i, numbers[i][0], numbers[i][1])); } // set boundries and values for the plot plotUpperBound = upperBound; plotValue = numbers; } /** * */ protected void initJFrame(){ setLayout(new BoxLayout(this, BoxLayout.LINE_AXIS)); JPanel instructionPanel = new JPanel(new GridLayout(0,1)); instructionPanel.setFocusable(true); //Set up the drawing area. barcodePane = new DrawingPane(); barcodePane.setBackground(Color.white); barcodePane.setPreferredSize(new Dimension(fullVisualizationWidth, fullVisualizationHeight)); //Create a scroll panel with a fixed Ruler along the top. JScrollPane barcodeScrollPane = new JScrollPane(barcodePane); barcodeScrollPane.setPreferredSize(new Dimension(fullVisualizationWidth+20, fullVisualizationHeight)); barcodeScrollPane.setViewportBorder (BorderFactory.createLineBorder(fixedRulerBorderColor)); //Create a fixed header for display pane. fixedRuler = new Ruler(barcodePane); barcodeScrollPane.setColumnHeaderView(fixedRuler); //Put it in this panel. add(barcodeScrollPane,BorderLayout.CENTER); setBorder(BorderFactory.createEmptyBorder(20,20,20,20)); // Create the handler for the Menu Bar Items fileSaveMenuHandler = new fileSaveMenuHandler("fileSaveMenuHandler", null, "Handles the File Menu Save action event", new Integer(2)); } /* * Create The Menu Bar */ protected JMenuBar createMenuBar() { JMenuItem menuItem = null; JMenuBar menuBar; //Create the menu bar. menuBar = new JMenuBar(); //Create the first menu. JMenu mainMenu = new JMenu("Save as"); mainMenu.setMnemonic(KeyEvent.VK_S); mainMenu.setMnemonic(KeyEvent.VK_S); mainMenu.setIcon(new ImageIcon()); //Give all image file formats that are available as menu options String[] imageFileFormats = getFormats(); for (int i = 0; i < imageFileFormats.length; i++) { menuItem = new JMenuItem(imageFileFormats[i]); menuItem.setIcon(null); menuItem.addActionListener(fileSaveMenuHandler); mainMenu.add(menuItem); } //Set up the menu bar. menuBar.add(mainMenu); return menuBar; } /* * Return the formats sorted alphabetically and in lower case */ protected String[] getFormats() { String[] formats = ImageIO.getWriterFormatNames(); TreeSet formatSet = new TreeSet(); for (String s : formats) { formatSet.add(s.toLowerCase()); } return formatSet.toArray(new String[0]); } /* * This handles the File Save Menu action events */ protected class fileSaveMenuHandler extends AbstractAction { protected static final long serialVersionUID = 1L; protected fileSaveMenuHandler(String text, ImageIcon icon, String desc, Integer mnemonic) { super(text, icon); putValue(SHORT_DESCRIPTION, desc); putValue(MNEMONIC_KEY, mnemonic); } /** * Action events handler */ public void actionPerformed(ActionEvent e) { String cmd = e.getActionCommand(); if (Arrays.asList(getFormats()).contains(cmd)){ // Use the format name to initialise the file suffix. File file = new File("untitledBarcode." + cmd); JFileChooser fc = new JFileChooser(); fc.setSelectedFile(file); int rval = fc.showSaveDialog(BCPlot.this); if (rval == JFileChooser.APPROVE_OPTION) { file = fc.getSelectedFile(); barcodePane.saveImage(file, cmd); } } } } /** * The component inside the scroll pane. * This is were the BARCODE PLOT is set up displayed and saved from */ protected class DrawingPane extends JPanel { protected static final long serialVersionUID = 1L; public static final int ON_TOP = 0; public static final int ON_BOTTOM = 1; public static final int ON_LEFT = 3; public static final int ON_RIGHT = 4; /* * This is were the BARCODE PLOT is set up and drawn */ protected DrawingPane(){ super(); // Display loaded background image thereIsaBackgroundImage = false; // Display a background grid gridIsVisible = true; // Visualization Colors barcodeBarColor = Color.black; tickUpperBoundColor = new Color(0xff,0x00,0x00); gridTickMajorColor = new Color(0x0f,0x85,0xff); gridTickMinorColor = new Color(0xa9,0xcc,0xdf); // Fixed Ruler Colors. fixedRulerColor = new Color(0x97,0xd8,0xff); fixedRulerMinorTickColor = Color.black; fixedRulerMajorTickColor = Color.black; fixedRulerBorderColor = Color.black; // Ruler Text fixedRulerFont = new Font("sansserif", Font.PLAIN, 10); fixedRulerFontColor = Color.black; fixedRulerFontMetrics = this.getFontMetrics(fixedRulerFont); // Fonts labelFont = new Font("sansserif", Font.BOLD, 14); labelFontColor = Color.red; labelFontMetrics = this.getFontMetrics(labelFont); legendMinorFont = new Font("sansserif", Font.BOLD, 10); legendMinorFontColor = Color.red; //new Color(0x01,0x01,0xe5); legendMinorFontMetrics = this.getFontMetrics(legendMinorFont); legendMajorFont = new Font("sansserif", Font.BOLD, 20); legendMajorFontColor = new Color(0x01,0x01,0xe5); legendMajorFontMetrics = this.getFontMetrics(legendMajorFont); gridRulerFont = new Font("sansserif", Font.PLAIN, 10); gridRulerFontColor = new Color(0x0f,0x85,0xff); gridRulerFontMetrics = this.getFontMetrics(gridRulerFont); upperBoundFontColor = new Color(0xff,0x00,0x00); // Set dimension of the region Used For the Plot Legend, Ruler, // Labels, and Title baseRegionUsedForPlotLegendRulerLabels = new Rectangle(0, gridHeight, gridWidth, heightOfBaseRegionUsedForPlotLegendRulerLabels); unitsPerPixel = plotUpperBound/gridWidth; pixelsPerUnit = (double)gridWidth/plotUpperBound; tickMajorPlacement = 5; tickGap = (gridWidth/100); } /* * */ protected void paintComponent(Graphics g) { super.paintComponent(g); int xOffset = !plotTypeScatter ? 0 : leftMargin; // Make the background white g.setColor(Color.white); g.fillRect(0, 0, fullVisualizationWidth, fullVisualizationHeight); // if there is one, Draw Background Image if (thereIsaBackgroundImage){ g.drawImage(bufferedImage, 0, 0, null); } // if it is visible Draw grid if (gridIsVisible){ drawGridLines(g); } // Horizontal line at bottom of graphing region g.setColor(gridTickMajorColor); g.drawLine(0+xOffset, gridHeight+1, gridWidth+xOffset, gridHeight+1); //draw a ruler at the bottom drawRuler(g,DrawingPane.ON_BOTTOM); if (!plotTypeScatter){ // Draw Barcodes int y, barcodeBarLength; g.setColor(barcodeBarColor); for (int i = 0; i < plotValue.length; i++) { double a = plotValue[i][0]; double b = plotValue[i][1]; barcodeBarLength = (int)((b - a) * pixelsPerUnit); y = (i * (barcodeBarSpacing + barcodeBarHeight)) + upperMargin; // If the B value is greater than the UPPER BOUND of the barcode plot if (b > plotUpperBound) { barcodeBarLength = (int)((plotUpperBound - a) * pixelsPerUnit) + 10; } int x = (int)(a * pixelsPerUnit); g.fillRect(x, y, barcodeBarLength, barcodeBarHeight); } }else{ // Draw a ruler at the bottom //drawRuler(g,DrawingPane.ON_LEFT); // Plot the dots g.setColor(barcodeBarColor); int aCount=0, bCount=0; int x=0, y=0; for (int i = 0; i < plotValue.length; i++) { double a = plotValue[i][0]; double b = plotValue[i][1]; y = gridWidth - (int)(b * pixelsPerUnit); x = (int)(a * pixelsPerUnit); if (a > plotUpperBound) { // If the A value is greater than the UPPER BOUND // of the scatter plot so is B so just count it aCount++; bCount++; } else if (b > plotUpperBound) { // If the B value is greater than the UPPER BOUND of the // scatter plot mark it on the A=B co-ordinate with a // green dot and count it g.setColor(Color.red); g.fillOval(x+xOffset-(CIRCLE_SIZE/2), -(CIRCLE_SIZE/2), CIRCLE_SIZE, CIRCLE_SIZE); bCount++; } else { g.setColor(barcodeBarColor); g.fillOval(x+xOffset-(CIRCLE_SIZE/2), y-(CIRCLE_SIZE/2), CIRCLE_SIZE, CIRCLE_SIZE); } } // Write out the legends at the center under the plot if ((aCount > 0 || bCount > 0) && (!plotBeingSaved)) { String aText = ""; if (aCount > 0) { if (aCount > 1) aText = "There are " + aCount + " X,Y points completely off the grid."; else aText = "One of the X,Y points is completely off the grid."; } String bText = ""; if ((bCount-aCount) > 0) { if ((bCount-aCount) > 1) bText = "There are " + (bCount-aCount) + " points above the top of the grid."; else bText = "One of the X,Y points is above the top of the grid."; } centerText(aText, labelFont, labelFontMetrics, labelFontColor, bText, labelFont, labelFontMetrics, labelFontColor, g, (int)(gridWidth * 0.75)+xOffset,(int)(gridWidth * 0.75), 60, 40, 0); } } // Write out the legends at the center under the plot centerText(legendMajorString, legendMajorFont, legendMajorFontMetrics, legendMajorFontColor, legendMinorString, legendMinorFont, legendMinorFontMetrics, legendMinorFontColor, g, 0+xOffset, gridHeight+(2*gridRulerFontMetrics.getHeight()) + 3, baseRegionUsedForPlotLegendRulerLabels.width, baseRegionUsedForPlotLegendRulerLabels.height - (2*gridRulerFontMetrics.getHeight())-3, 0); } /* * Assumption for fullVisualization * 150 dpi and 8"x10" plot region => 1200x1500 pixels * tick */ protected void drawGridLines(Graphics g){ int xOffset = !plotTypeScatter ? 0 : leftMargin; // Draw the vertical lines int tickMinorCount = 0; for (int i=0; i <= gridWidth; i+=tickGap) { if(tickMinorCount%tickMajorPlacement == 0){ if(i == gridWidth){ g.setColor(tickUpperBoundColor); }else{ g.setColor(gridTickMajorColor); } }else{ g.setColor(gridTickMinorColor); } g.drawLine(i+xOffset, 0, i+xOffset, gridHeight); tickMinorCount++; } // Draw the horizontal lines if (plotTypeScatter){ tickMinorCount = 0; for (int i=0; i <= gridWidth; i+=tickGap) { if(tickMinorCount%tickMajorPlacement == 0){ if(i == 0){ g.setColor(tickUpperBoundColor); }else{ g.setColor(gridTickMajorColor); } }else{ g.setColor(gridTickMinorColor); } g.drawLine(0+xOffset, i, gridWidth+xOffset, i); tickMinorCount++; } g.setColor(tickUpperBoundColor); g.drawLine(0+xOffset, gridWidth, gridWidth+xOffset, 0); } } /* * Assumption for fullVisualization * 150 dpi and 8"x10" plot region => 1200x1500 pixels * tick */ protected void drawRuler(Graphics g, int position){ int xOffset = !plotTypeScatter ? 0 : leftMargin; Font rf; FontMetrics rfm; Color rfc; int tickMajorLength; int tickMinorLength; int toggleLength; int rulerY; Color tMajorC, tMinorC; String text = null; boolean itShouldBePlacedHigh = true; int tickLineLength = 0; // Used for drawing lines and placing text int fromY=0,toY=0,atY=0,fromX=0,toX=0,atX=0; // The angle in PI radians to rotate text double sr = 0; switch (position) { case ON_TOP: rf = fixedRulerFont; rfm = fixedRulerFontMetrics; rfc = fixedRulerFontColor; tickMajorLength = 5; tickMinorLength = 1; rulerY = 0; tMinorC = fixedRulerMinorTickColor; tMajorC = fixedRulerMajorTickColor; toggleLength = 10; break; case ON_BOTTOM: rf = gridRulerFont; rfm = gridRulerFontMetrics; rfc = gridRulerFontColor; tickMajorLength = 5; tickMinorLength = 1; rulerY = gridHeight+1; tMajorC = gridTickMajorColor; tMinorC = gridTickMinorColor; toggleLength = 10; break; case ON_LEFT: rf = gridRulerFont; rfm = gridRulerFontMetrics; rfc = gridRulerFontColor; tickMajorLength = 5; tickMinorLength = 1; rulerY = gridHeight+1; tMajorC = gridTickMajorColor; tMinorC = gridTickMinorColor; toggleLength = 10; break; case ON_RIGHT: // Someday implement default: rf = fixedRulerFont; rfm = fixedRulerFontMetrics; rfc = fixedRulerFontColor; tickMajorLength = 5; tickMinorLength = 1; rulerY = 0; tMinorC = fixedRulerMinorTickColor; tMajorC = fixedRulerMajorTickColor; toggleLength = 10; break; } // Draw The Ticks And Labels int i = 0; for (; i <= gridWidth; i+=tickGap) { // if it is a major tick if (i % tickMajorPlacement == 0) { // alternate the length every other one if (itShouldBePlacedHigh){ tickLineLength = tickMajorLength + toggleLength; itShouldBePlacedHigh = false; }else{ tickLineLength = tickMajorLength; itShouldBePlacedHigh = true; } // Set Tick Color And Determine Tick Text switch (position) { case ON_TOP: case ON_BOTTOM: text = String.format("%.6g", i * unitsPerPixel); if(i != gridWidth){ g.setColor(tMajorC); }else{ g.setColor(tickUpperBoundColor); rfc = upperBoundFontColor; } break; case ON_LEFT: case ON_RIGHT: text = String.format("%.6g", (gridWidth - i) * unitsPerPixel); if( i != 0){ g.setColor(tMajorC); }else{ g.setColor(tickUpperBoundColor); rfc = upperBoundFontColor; } break; default: break; } // If there is a decimal point there might be trailing zeros if (text.indexOf('.') > -1){ // Remove any trailing zeros while (text.endsWith("0")){ text = text.substring(0, text.length()-1); } // Remove if any trailing decimal point if (text.endsWith(".")){ text = text.substring(0, text.length()-1); } } } else { g.setColor(tMinorC); text = null; tickLineLength = tickMinorLength; } if (tickLineLength != 0){ // Determine Where To Draw The Tick And Place The Text switch (position) { case ON_TOP: fromY = FIXED_RULER_HEIGHT-1; toY = FIXED_RULER_HEIGHT-tickLineLength-1; atY = toY + 1 - rfm.getHeight(); fromX = i+xOffset+1; toX = i+xOffset+1; atX = toX; sr = 0; if(i == gridWidth) atX = atX - rfm.stringWidth(text)/2; break; case ON_BOTTOM: fromY = rulerY+1; toY = rulerY + tickLineLength; atY = toY + 1; fromX = i+xOffset; toX = i+xOffset; atX = toX; sr = 0; if(i == gridWidth) atX = atX - rfm.stringWidth(text)/2; break; case ON_LEFT: fromY = i; toY = i; atY = toY + 1; fromX = xOffset; toX = xOffset - tickLineLength; atX = toX - 1; sr = 1.5; if(i == 0) atY = atY + rfm.stringWidth(text)/2; break; case ON_RIGHT: // Someday implement default: break; } // Draw the tick g.drawLine(fromX, fromY, toX, toY); // Place the text if (text != null) centerText(text, rf, rfm, rfc, null, null, null, null, g, atX, atY, 3, 3, sr); } } } /** * Center text to be displayed within a given rectangle */ protected void centerText(String s1, Font f1, FontMetrics m1, Color color1, String s2, Font f2, FontMetrics m2, Color color2, Graphics g, int x, int y, int regionWidth, int regionHeight, double stringRotationPiRadians) { // init int stringWidth1=0, stringWidth2 = 0, x0=0, x1=0, y0=0, y1=0, fontAscent1=0, fontHeight1=0, fontHeight2=0; // Font Height fontHeight1 = m1.getHeight(); // Width of first string stringWidth1 = m1.stringWidth(s1); // Font Height From Baseline fontAscent1 = m1.getAscent(); if (s2 != null) { fontHeight2 = m2.getHeight(); stringWidth2 = m2.stringWidth(s2); } // Determine position if ((stringRotationPiRadians == 0.5) || (stringRotationPiRadians == 1.5)){ // Center the strings horizontally y0 = y - (regionHeight - stringWidth1)/2; y1 = y - (regionHeight - stringWidth2)/2; if (s2 == null) { // Center Vertically x0 = x + (regionWidth - fontHeight1)/2; } else { x0 = x + ((regionWidth - (int)(fontHeight1 + (fontHeight2 * 1.2)))/2); x1 = x0 + (int)(fontHeight2 * 1.2 ); } }else{ // Center the strings horizontally x0 = x + (regionWidth - stringWidth1)/2; x1 = x + (regionWidth - stringWidth2)/2; if (s2 == null) { // Center Vertically y0 = y + (regionHeight - fontHeight1)/2 + fontAscent1; } else { y0 = y + ((regionHeight - (int)(fontHeight1 + (fontHeight2 * 1.2)))/2) + fontAscent1; y1 = y0 + (int)(fontHeight2 * 1.2 ); } } if (g instanceof Graphics2D) { Map hints = new HashMap(); hints.put(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); ((Graphics2D)g).addRenderingHints(hints); } Font f3 = f1.deriveFont (AffineTransform.getRotateInstance (stringRotationPiRadians * Math.PI)); g.setFont (f3); g.setColor(color1); g.drawString (s1, x0, y0); if (s2 != null) { Font f4 = f2.deriveFont (AffineTransform.getRotateInstance (stringRotationPiRadians * Math.PI)); g.setFont (f4); g.setColor(color2); g.drawString(s2, x1, y1); } } /* * Saves the barcode plot as an image */ protected void saveImage(File file, String format){ // Write the image in the selected format, to the file chosen by the user. Graphics g=null; if (thereIsaBackgroundImage){ try { bufferedImage = ImageIO.read(new File(backgroundImageName)); g = bufferedImage.getGraphics(); g.drawImage(bufferedImage, 0, 0, null); } catch (IOException e1) { bufferedImage = new BufferedImage(fullVisualizationWidth, fullVisualizationHeight, BufferedImage.TYPE_INT_BGR); g = bufferedImage.createGraphics(); } }else { bufferedImage = new BufferedImage(fullVisualizationWidth, fullVisualizationHeight, BufferedImage.TYPE_INT_BGR); g = bufferedImage.createGraphics(); } plotBeingSaved = true; paintComponent(g); plotBeingSaved = false; try { ImageIO.write( bufferedImage, format, file); } catch (IOException e1) { } } } /* * Draws a ruler for the Plot the barcode plot */ protected class Ruler extends JComponent { protected static final long serialVersionUID = 1L; protected DrawingPane dp; protected Ruler(DrawingPane bc) { dp = bc; setPreferredSize(new Dimension(gridWidth, FIXED_RULER_HEIGHT)); } protected void paintComponent(Graphics g) { Rectangle graphicRegion = g.getClipBounds(); // Fill clipping area g.setColor(fixedRulerColor); g.fillRect(graphicRegion.x, graphicRegion.y, graphicRegion.width, graphicRegion.height); dp.drawRuler(g,DrawingPane.ON_TOP); } } /** * Create the plot window and display results. For thread safety, this * method should be invoked from the event-dispatching thread. */ protected static void plot(String legend, double[][] values, double upperBound, boolean forceScatter) { //Create and set up the window. JFrame frame = new JFrame(legend); frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); if (values == null) throw new IllegalArgumentException("No barcodes to plot"); //Create and set up the content pane. BCPlot bcplot = new BCPlot(values, upperBound, forceScatter); bcplot.setMajorLegend(legend); frame.setJMenuBar(bcplot.createMenuBar()); bcplot.setOpaque(true); //content panes must be opaque frame.setContentPane(bcplot); //Display the window. frame.pack(); frame.setVisible(true); } /** * Make a barcode plot -- call via Plex.plot(). * *

* * @param label Window label. * @param intervals An array of double[2] of [x,y] intervals to plot. * @param upperBound Display the range from 0 to upperBound. * * @see edu.stanford.math.plex.Plex#plot */ public static void doPlot(String label, double[][] intervals, double upperBound) { //Schedule a job for the event-dispatching thread to do the actual //plotting. final double[][] values = intervals; final double ubound = upperBound; final String legend = label; javax.swing.SwingUtilities.invokeLater(new Runnable() { public void run() { plot(legend, values, ubound, false); } }); } /** * Make a barcode scatterplot -- call via Plex.scatter(). * *

* * @param label Window label. * @param intervals An array of double[2] of x,y points to plot. * @param upperBound Display the square from 0 to upperBound. * * @see edu.stanford.math.plex.Plex#scatter */ public static void doScatter(String label, double[][] intervals, double upperBound) { //Schedule a job for the event-dispatching thread to do the actual //plotting. final double[][] values = intervals; final double ubound = upperBound; final String legend = label; javax.swing.SwingUtilities.invokeLater(new Runnable() { public void run() { plot(legend, values, ubound, true); } }); } } ================================================ FILE: src/java/edu/stanford/math/plex/CRC.java ================================================ package edu.stanford.math.plex; /** * The CRC class provides good hash methods for int/long and string data. * * @version $Id$ */ public class CRC { private CRC() { // no instances } // CRC Hashing Explained: // // The underlying idea here is that the string (or whatever) being // hashed is regarded as being a polynomial in Z/2[X]. (This is // trivial, but in case it isn't obvious, you can identify an array of // length N of bytes with the integer formed by summing the terms // (byte[i]*(8**(N - (1+i)))) -- in other words, look at the entire // array of bytes as one giant bitfield, with the "significance" of the // bits decreasing as you move from left to right. Then, you can // identify an integer I with p(x) in Z/2[X] such that the coefficient // of X**k is non-zero iff the LOGICAL_AND (2**k, I) is non-zero.) // // The trick is to pick some polynomial M(x), and take as the hash // value for the string the remainder of the string modulo M(x). // Clearly, in order for the strings to hash to more possible values, // the degree of M should be as large as feasible. In order to make the // make the hash values "more random" for short strings, we "multiply" // the string by some power of X. To make this more concrete, let M be // a polynomial of degree 32, and shift the strings 32bits (multiply by // X**32). In other words, define the hash value of a byte array to be // the remainder, modulo M(x), of the new array constructed by // appending 4 null bytes. What was not instantly obvious to me is that // this calculation can be done, by using a table, examining the string // a byte at a time. Here's how this works: // // Let string = [Byte0][Byte1][Byte2][Byte3][Byte4][Byte5].... // // and M(x) = 1[byte0][byte1][byte2][byte3] // // Now, string is equal to // // string = [00000][Byte1][Byte2][Byte3][Byte4][Byte5].... // +[Byte0]...all zeros.... // // and this has the same remainder as // // string1 = [00000][Byte1][Byte2][Byte3][Byte4][Byte5].... // +[00000][rem-0][rem-1][rem-2][rem-4]....all zeros... // // where the bytes rem-i are the bytes of the remainder of // [Byte0][00000][00000][00000][00000] when divided by M(x). (This may // need some thinking about, but it is straightforward once you // remember that the remainder is computed by successively XORing // shifts of M(x) so that the leading bit of M(x) cancels the // appropriate bit of the polynomial we are dividing -- this means that // any bits more than 4 bytes from the "last cancelled bit", that is, // bits in [Byte5] and beyond are unaffected.) // // That means that the remainder of string is the same as the remainder of // // string1 = [Byte1][Byte2][Byte3][Byte4][Byte5].... // +[rem-0][rem-1][rem-2][rem-4]....all zeros... // // or string1 = [Btr_1][Btr_2][Btr_3][Btr_4][Btr_5].... // // where Btr_i = rem-i XOR Bytei, for i <= 4, and Bytei for i > 4. // // // In other words, for a given string, we process the first byte by // taking the 32bit remainder of that "shifted" byte (and since there // are only 256 of these bytes, we can compute these remainders and // keep them in a table), and then XOR that remainder word with the // succeeding 4 bytes in the string. Further, since XOR is associative // and commutative, we can just keep that remainder in an accumulator, // and do the XORing "virtually". // // To see this, consider the next step in the hashing: // // string1 = [Byte1][Byte2][Byte3][Byte4][Byte5].... // +[rem-0][rem-1][rem-2][rem-4]....all zeros... // // has the same remainder as // // string2 = [Byte2][Byte3][Byte4][Byte5].... // +[rem-1][rem-2][rem-4]....all zeros... // +[rem21][rem22][rem21][rem22] // // where [rem2i] is the remainder of [Byte1 ^ rem-0][0][0][0][0]. // // This, in turn is equal to // // string2 = [Byte2][Byte3][Byte4][Byte5].... // +[rem2-0][rem2-1][rem2-3][rem2-4]....all zeros... // // where the rem2-i are the bytes of ((first-rem) << BITS_PER_BYTE) XOR // (second-rem). In other words, the algorithm is to start with // ACCUMULATOR = 0, and looping through each i in the byte array, // // table_index = byte[i] ^ (ACCUMULATOR>> (BITS_PER_ULONG - BITS_PER_BYTE)); // ACCUMULATOR = (ACCUMULATOR << BITS_PER_BYTE) ^ REMAINDER_TABLE[table_index]; // // Now, looking at this code, we see we can eliminate one shift and replace // it by a logical and, if we make an alteration. Let the contents of // REMAINDER_TABLE be byte-reversed (that is, the bytes are present, but // byte[i] is switched with byte[3-i]). Then, start with REV_ACCUMULATOR = // 0; and loop through each i, // // table_index = byte[i] ^ (REV_ACCUMULATOR && 0xff); // ACCUMULATOR = (REV_ACCUMULATOR >> 8) ^ REV_REMAINDER_TABLE[table_index]; // // Now, whether this is better or not is somewhat unclear -- there is // no perceptible difference on a Sun4, and I doubt that there is on // any RISC machine, although I suppose some CISC machines might // magically do something to do the first line just above in a single // instruction. // // This thing is a linear code, and I seem to recall that it is clear // (during the short time that one remembers the details) that the // polynomial should be prime. In fact, if you choose one with the // correct roots, you can guarantee that nothing in the kernel of the // linear map is of degree <= K (excluding 0, of course) for some K // that's bigger than you think... The reference for this code, a paper // which is much less clear than this comment and has a lot of // extraneous junk and no theory in it, is: Aram Perez, IEEE Micro, // June 1983, pp. 40-50. Knuth has a short reference that is better, // but doesn't explain how to use a table to speed up the calculation. // Finally, the table is made from the 33bit number 0x1e4725ca3, which // is a prime polynomial of degree 32. // // A moment's reflection will convince you that this same argument // applies to any prime of degree B*n (where B is the number of bits in // a byte). The question is how to apply this method when you want to // use a polynomial Q(x) of degree, say, 29. The answer is simple. Make // a table as above, and apply the same algorithm. You will get a // "remainder" which is of degree 31 -- this is a polynomial that has // the same remainder modulo Q(x) as the original value, so all that is // necessary is to compute the remainders of possible polynomials of // the form: // // [Byte][0][0][0] // // modulo Q(x). That is, you need a second ("dregs") table of the same // size mas the first, and you have to apply the iterative step of the // algorithm one last time using the dregs table. /** * Internal table used by CRC code. */ // This table is made from the 65bit number 0x1000000000000001b, // considered as a prime polynomial of degree 64. The polynomial x64 + // x4 + x3 + x + 1 (as described in ISO 3309) is prime, and presumably // the advantage that the entries in the table are smaller is one of // the reasons that it was chosen. We also have a table below made from // a prime with a lot more bits in it. protected static long[] hash64tab0 = new long[] { 0x000L, 0x01bL, 0x036L, 0x02dL, 0x06cL, 0x077L, 0x05aL, 0x041L, 0x0d8L, 0x0c3L, 0x0eeL, 0x0f5L, 0x0b4L, 0x0afL, 0x082L, 0x099L, 0x1b0L, 0x1abL, 0x186L, 0x19dL, 0x1dcL, 0x1c7L, 0x1eaL, 0x1f1L, 0x168L, 0x173L, 0x15eL, 0x145L, 0x104L, 0x11fL, 0x132L, 0x129L, 0x360L, 0x37bL, 0x356L, 0x34dL, 0x30cL, 0x317L, 0x33aL, 0x321L, 0x3b8L, 0x3a3L, 0x38eL, 0x395L, 0x3d4L, 0x3cfL, 0x3e2L, 0x3f9L, 0x2d0L, 0x2cbL, 0x2e6L, 0x2fdL, 0x2bcL, 0x2a7L, 0x28aL, 0x291L, 0x208L, 0x213L, 0x23eL, 0x225L, 0x264L, 0x27fL, 0x252L, 0x249L, 0x6c0L, 0x6dbL, 0x6f6L, 0x6edL, 0x6acL, 0x6b7L, 0x69aL, 0x681L, 0x618L, 0x603L, 0x62eL, 0x635L, 0x674L, 0x66fL, 0x642L, 0x659L, 0x770L, 0x76bL, 0x746L, 0x75dL, 0x71cL, 0x707L, 0x72aL, 0x731L, 0x7a8L, 0x7b3L, 0x79eL, 0x785L, 0x7c4L, 0x7dfL, 0x7f2L, 0x7e9L, 0x5a0L, 0x5bbL, 0x596L, 0x58dL, 0x5ccL, 0x5d7L, 0x5faL, 0x5e1L, 0x578L, 0x563L, 0x54eL, 0x555L, 0x514L, 0x50fL, 0x522L, 0x539L, 0x410L, 0x40bL, 0x426L, 0x43dL, 0x47cL, 0x467L, 0x44aL, 0x451L, 0x4c8L, 0x4d3L, 0x4feL, 0x4e5L, 0x4a4L, 0x4bfL, 0x492L, 0x489L, 0xd80L, 0xd9bL, 0xdb6L, 0xdadL, 0xdecL, 0xdf7L, 0xddaL, 0xdc1L, 0xd58L, 0xd43L, 0xd6eL, 0xd75L, 0xd34L, 0xd2fL, 0xd02L, 0xd19L, 0xc30L, 0xc2bL, 0xc06L, 0xc1dL, 0xc5cL, 0xc47L, 0xc6aL, 0xc71L, 0xce8L, 0xcf3L, 0xcdeL, 0xcc5L, 0xc84L, 0xc9fL, 0xcb2L, 0xca9L, 0xee0L, 0xefbL, 0xed6L, 0xecdL, 0xe8cL, 0xe97L, 0xebaL, 0xea1L, 0xe38L, 0xe23L, 0xe0eL, 0xe15L, 0xe54L, 0xe4fL, 0xe62L, 0xe79L, 0xf50L, 0xf4bL, 0xf66L, 0xf7dL, 0xf3cL, 0xf27L, 0xf0aL, 0xf11L, 0xf88L, 0xf93L, 0xfbeL, 0xfa5L, 0xfe4L, 0xfffL, 0xfd2L, 0xfc9L, 0xb40L, 0xb5bL, 0xb76L, 0xb6dL, 0xb2cL, 0xb37L, 0xb1aL, 0xb01L, 0xb98L, 0xb83L, 0xbaeL, 0xbb5L, 0xbf4L, 0xbefL, 0xbc2L, 0xbd9L, 0xaf0L, 0xaebL, 0xac6L, 0xaddL, 0xa9cL, 0xa87L, 0xaaaL, 0xab1L, 0xa28L, 0xa33L, 0xa1eL, 0xa05L, 0xa44L, 0xa5fL, 0xa72L, 0xa69L, 0x820L, 0x83bL, 0x816L, 0x80dL, 0x84cL, 0x857L, 0x87aL, 0x861L, 0x8f8L, 0x8e3L, 0x8ceL, 0x8d5L, 0x894L, 0x88fL, 0x8a2L, 0x8b9L, 0x990L, 0x98bL, 0x9a6L, 0x9bdL, 0x9fcL, 0x9e7L, 0x9caL, 0x9d1L, 0x948L, 0x953L, 0x97eL, 0x965L, 0x924L, 0x93fL, 0x912L, 0x909L }; /** * Internal table used by CRC code. */ // This table is made from the 65bit number 0x1dbf5da0ff9e2a9e3, // considered as a prime polynomial of degree 64. */ protected static long[] hash64tab1 = new long[] { 0x0000000000000000L, 0xdbf5da0ff9e2a9e3L, 0x6c1e6e100a27fa25L, 0xb7ebb41ff3c553c6L, 0xd83cdc20144ff44aL, 0x03c9062fedad5da9L, 0xb422b2301e680e6fL, 0x6fd7683fe78aa78cL, 0x6b8c624fd17d4177L, 0xb079b840289fe894L, 0x07920c5fdb5abb52L, 0xdc67d65022b812b1L, 0xb3b0be6fc532b53dL, 0x684564603cd01cdeL, 0xdfaed07fcf154f18L, 0x045b0a7036f7e6fbL, 0xd718c49fa2fa82eeL, 0x0ced1e905b182b0dL, 0xbb06aa8fa8dd78cbL, 0x60f37080513fd128L, 0x0f2418bfb6b576a4L, 0xd4d1c2b04f57df47L, 0x633a76afbc928c81L, 0xb8cfaca045702562L, 0xbc94a6d07387c399L, 0x67617cdf8a656a7aL, 0xd08ac8c079a039bcL, 0x0b7f12cf8042905fL, 0x64a87af067c837d3L, 0xbf5da0ff9e2a9e30L, 0x08b614e06defcdf6L, 0xd343ceef940d6415L, 0x75c45330bc17ac3fL, 0xae31893f45f505dcL, 0x19da3d20b630561aL, 0xc22fe72f4fd2fff9L, 0xadf88f10a8585875L, 0x760d551f51baf196L, 0xc1e6e100a27fa250L, 0x1a133b0f5b9d0bb3L, 0x1e48317f6d6aed48L, 0xc5bdeb70948844abL, 0x72565f6f674d176dL, 0xa9a385609eafbe8eL, 0xc674ed5f79251902L, 0x1d81375080c7b0e1L, 0xaa6a834f7302e327L, 0x719f59408ae04ac4L, 0xa2dc97af1eed2ed1L, 0x79294da0e70f8732L, 0xcec2f9bf14cad4f4L, 0x153723b0ed287d17L, 0x7ae04b8f0aa2da9bL, 0xa1159180f3407378L, 0x16fe259f008520beL, 0xcd0bff90f967895dL, 0xc950f5e0cf906fa6L, 0x12a52fef3672c645L, 0xa54e9bf0c5b79583L, 0x7ebb41ff3c553c60L, 0x116c29c0dbdf9becL, 0xca99f3cf223d320fL, 0x7d7247d0d1f861c9L, 0xa6879ddf281ac82aL, 0xeb88a661782f587eL, 0x307d7c6e81cdf19dL, 0x8796c8717208a25bL, 0x5c63127e8bea0bb8L, 0x33b47a416c60ac34L, 0xe841a04e958205d7L, 0x5faa145166475611L, 0x845fce5e9fa5fff2L, 0x8004c42ea9521909L, 0x5bf11e2150b0b0eaL, 0xec1aaa3ea375e32cL, 0x37ef70315a974acfL, 0x5838180ebd1ded43L, 0x83cdc20144ff44a0L, 0x3426761eb73a1766L, 0xefd3ac114ed8be85L, 0x3c9062fedad5da90L, 0xe765b8f123377373L, 0x508e0ceed0f220b5L, 0x8b7bd6e129108956L, 0xe4acbedece9a2edaL, 0x3f5964d137788739L, 0x88b2d0cec4bdd4ffL, 0x53470ac13d5f7d1cL, 0x571c00b10ba89be7L, 0x8ce9dabef24a3204L, 0x3b026ea1018f61c2L, 0xe0f7b4aef86dc821L, 0x8f20dc911fe76fadL, 0x54d5069ee605c64eL, 0xe33eb28115c09588L, 0x38cb688eec223c6bL, 0x9e4cf551c438f441L, 0x45b92f5e3dda5da2L, 0xf2529b41ce1f0e64L, 0x29a7414e37fda787L, 0x46702971d077000bL, 0x9d85f37e2995a9e8L, 0x2a6e4761da50fa2eL, 0xf19b9d6e23b253cdL, 0xf5c0971e1545b536L, 0x2e354d11eca71cd5L, 0x99def90e1f624f13L, 0x422b2301e680e6f0L, 0x2dfc4b3e010a417cL, 0xf6099131f8e8e89fL, 0x41e2252e0b2dbb59L, 0x9a17ff21f2cf12baL, 0x495431ce66c276afL, 0x92a1ebc19f20df4cL, 0x254a5fde6ce58c8aL, 0xfebf85d195072569L, 0x9168edee728d82e5L, 0x4a9d37e18b6f2b06L, 0xfd7683fe78aa78c0L, 0x268359f18148d123L, 0x22d85381b7bf37d8L, 0xf92d898e4e5d9e3bL, 0x4ec63d91bd98cdfdL, 0x9533e79e447a641eL, 0xfae48fa1a3f0c392L, 0x211155ae5a126a71L, 0x96fae1b1a9d739b7L, 0x4d0f3bbe50359054L, 0x0ce496cd09bc191fL, 0xd7114cc2f05eb0fcL, 0x60faf8dd039be33aL, 0xbb0f22d2fa794ad9L, 0xd4d84aed1df3ed55L, 0x0f2d90e2e41144b6L, 0xb8c624fd17d41770L, 0x6333fef2ee36be93L, 0x6768f482d8c15868L, 0xbc9d2e8d2123f18bL, 0x0b769a92d2e6a24dL, 0xd083409d2b040baeL, 0xbf5428a2cc8eac22L, 0x64a1f2ad356c05c1L, 0xd34a46b2c6a95607L, 0x08bf9cbd3f4bffe4L, 0xdbfc5252ab469bf1L, 0x0009885d52a43212L, 0xb7e23c42a16161d4L, 0x6c17e64d5883c837L, 0x03c08e72bf096fbbL, 0xd835547d46ebc658L, 0x6fdee062b52e959eL, 0xb42b3a6d4ccc3c7dL, 0xb070301d7a3bda86L, 0x6b85ea1283d97365L, 0xdc6e5e0d701c20a3L, 0x079b840289fe8940L, 0x684cec3d6e742eccL, 0xb3b936329796872fL, 0x0452822d6453d4e9L, 0xdfa758229db17d0aL, 0x7920c5fdb5abb520L, 0xa2d51ff24c491cc3L, 0x153eabedbf8c4f05L, 0xcecb71e2466ee6e6L, 0xa11c19dda1e4416aL, 0x7ae9c3d25806e889L, 0xcd0277cdabc3bb4fL, 0x16f7adc2522112acL, 0x12aca7b264d6f457L, 0xc9597dbd9d345db4L, 0x7eb2c9a26ef10e72L, 0xa54713ad9713a791L, 0xca907b927099001dL, 0x1165a19d897ba9feL, 0xa68e15827abefa38L, 0x7d7bcf8d835c53dbL, 0xae380162175137ceL, 0x75cddb6deeb39e2dL, 0xc2266f721d76cdebL, 0x19d3b57de4946408L, 0x7604dd42031ec384L, 0xadf1074dfafc6a67L, 0x1a1ab352093939a1L, 0xc1ef695df0db9042L, 0xc5b4632dc62c76b9L, 0x1e41b9223fcedf5aL, 0xa9aa0d3dcc0b8c9cL, 0x725fd73235e9257fL, 0x1d88bf0dd26382f3L, 0xc67d65022b812b10L, 0x7196d11dd84478d6L, 0xaa630b1221a6d135L, 0xe76c30ac71934161L, 0x3c99eaa38871e882L, 0x8b725ebc7bb4bb44L, 0x508784b3825612a7L, 0x3f50ec8c65dcb52bL, 0xe4a536839c3e1cc8L, 0x534e829c6ffb4f0eL, 0x88bb58939619e6edL, 0x8ce052e3a0ee0016L, 0x571588ec590ca9f5L, 0xe0fe3cf3aac9fa33L, 0x3b0be6fc532b53d0L, 0x54dc8ec3b4a1f45cL, 0x8f2954cc4d435dbfL, 0x38c2e0d3be860e79L, 0xe3373adc4764a79aL, 0x3074f433d369c38fL, 0xeb812e3c2a8b6a6cL, 0x5c6a9a23d94e39aaL, 0x879f402c20ac9049L, 0xe8482813c72637c5L, 0x33bdf21c3ec49e26L, 0x84564603cd01cde0L, 0x5fa39c0c34e36403L, 0x5bf8967c021482f8L, 0x800d4c73fbf62b1bL, 0x37e6f86c083378ddL, 0xec132263f1d1d13eL, 0x83c44a5c165b76b2L, 0x58319053efb9df51L, 0xefda244c1c7c8c97L, 0x342ffe43e59e2574L, 0x92a8639ccd84ed5eL, 0x495db993346644bdL, 0xfeb60d8cc7a3177bL, 0x2543d7833e41be98L, 0x4a94bfbcd9cb1914L, 0x916165b32029b0f7L, 0x268ad1acd3ece331L, 0xfd7f0ba32a0e4ad2L, 0xf92401d31cf9ac29L, 0x22d1dbdce51b05caL, 0x953a6fc316de560cL, 0x4ecfb5ccef3cffefL, 0x2118ddf308b65863L, 0xfaed07fcf154f180L, 0x4d06b3e30291a246L, 0x96f369ecfb730ba5L, 0x45b0a7036f7e6fb0L, 0x9e457d0c969cc653L, 0x29aec91365599595L, 0xf25b131c9cbb3c76L, 0x9d8c7b237b319bfaL, 0x4679a12c82d33219L, 0xf1921533711661dfL, 0x2a67cf3c88f4c83cL, 0x2e3cc54cbe032ec7L, 0xf5c91f4347e18724L, 0x4222ab5cb424d4e2L, 0x99d771534dc67d01L, 0xf600196caa4cda8dL, 0x2df5c36353ae736eL, 0x9a1e777ca06b20a8L, 0x41ebad735989894bL }; /** * Internal table used by CRC code. */ // This table is made from the 33bit number 0x1e4725ca3, considered // as a prime polynomial of degree 32. protected static int[] hash32tab0 = new int[] { 0x00000000, 0xe4725ca3, 0x2c96e5e5, 0xc8e4b946, 0x592dcbca, 0xbd5f9769, 0x75bb2e2f, 0x91c9728c, 0xb25b9794, 0x5629cb37, 0x9ecd7271, 0x7abf2ed2, 0xeb765c5e, 0x0f0400fd, 0xc7e0b9bb, 0x2392e518, 0x80c5738b, 0x64b72f28, 0xac53966e, 0x4821cacd, 0xd9e8b841, 0x3d9ae4e2, 0xf57e5da4, 0x110c0107, 0x329ee41f, 0xd6ecb8bc, 0x1e0801fa, 0xfa7a5d59, 0x6bb32fd5, 0x8fc17376, 0x4725ca30, 0xa3579693, 0xe5f8bbb5, 0x018ae716, 0xc96e5e50, 0x2d1c02f3, 0xbcd5707f, 0x58a72cdc, 0x9043959a, 0x7431c939, 0x57a32c21, 0xb3d17082, 0x7b35c9c4, 0x9f479567, 0x0e8ee7eb, 0xeafcbb48, 0x2218020e, 0xc66a5ead, 0x653dc83e, 0x814f949d, 0x49ab2ddb, 0xadd97178, 0x3c1003f4, 0xd8625f57, 0x1086e611, 0xf4f4bab2, 0xd7665faa, 0x33140309, 0xfbf0ba4f, 0x1f82e6ec, 0x8e4b9460, 0x6a39c8c3, 0xa2dd7185, 0x46af2d26, 0x2f832bc9, 0xcbf1776a, 0x0315ce2c, 0xe767928f, 0x76aee003, 0x92dcbca0, 0x5a3805e6, 0xbe4a5945, 0x9dd8bc5d, 0x79aae0fe, 0xb14e59b8, 0x553c051b, 0xc4f57797, 0x20872b34, 0xe8639272, 0x0c11ced1, 0xaf465842, 0x4b3404e1, 0x83d0bda7, 0x67a2e104, 0xf66b9388, 0x1219cf2b, 0xdafd766d, 0x3e8f2ace, 0x1d1dcfd6, 0xf96f9375, 0x318b2a33, 0xd5f97690, 0x4430041c, 0xa04258bf, 0x68a6e1f9, 0x8cd4bd5a, 0xca7b907c, 0x2e09ccdf, 0xe6ed7599, 0x029f293a, 0x93565bb6, 0x77240715, 0xbfc0be53, 0x5bb2e2f0, 0x782008e8, 0x9c525b4b, 0x54b6e20d, 0xb0c4beae, 0x210dcc22, 0xc57f9081, 0x0d9b29c7, 0xe9e97564, 0x4abee3f7, 0xaeccbf54, 0x66280612, 0x825a5ab1, 0x1393283d, 0xf7e1749e, 0x3f05cdd8, 0xdb77917b, 0xf8e57463, 0x1c9728c0, 0xd4739186, 0x3001cd25, 0xa1c8bfa9, 0x45bae30a, 0x8d5e5a4c, 0x692c06ef, 0x5f065792, 0xbb740b31, 0x7390b277, 0x97e2eed4, 0x062b9c58, 0xe259c0fb, 0x2abd79bd, 0xcecf251e, 0xed5dc006, 0x092f9ca5, 0xc1cb25e3, 0x25b97940, 0xb4700bcc, 0x5002576f, 0x98e6ee29, 0x7c94b28a, 0xdfc32419, 0x3bb178ba, 0xf355c1fc, 0x17279d5f, 0x86eeefd3, 0x629cb370, 0xaa780a36, 0x4e0a5695, 0x6d98b38d, 0x89eaef2e, 0x410e5668, 0xa57c0acb, 0x34b57847, 0xd0c724e4, 0x18239da2, 0xfc51c101, 0xbafeec27, 0x5e8cb084, 0x966809c2, 0x721a5561, 0xe3d327ed, 0x07a17b4e, 0xcf45c208, 0x2b379eab, 0x08a57bb3, 0xecd72710, 0x24339e56, 0xc041c2f5, 0x5188b079, 0xb5faecda, 0x7d1e559c, 0x996c093f, 0x3a3b9fac, 0xde49c30f, 0x16ad7a49, 0xf2df26ea, 0x63165466, 0x876408c5, 0x4f80b183, 0xabf2ed20, 0x88600838, 0x6c12549b, 0xa4f6eddd, 0x4084b17e, 0xd14dc3f2, 0x353f9f51, 0xfddb2617, 0x19a97ab4, 0x70857c5b, 0x94f720f8, 0x5c1399be, 0xb861c51d, 0x29a8b791, 0xcddaeb32, 0x053e5274, 0xe14c0ed7, 0xc2deebcf, 0x26acb76c, 0xee480e2a, 0x0a3a5289, 0x9bf32005, 0x7f817ca6, 0xb765c5e0, 0x53179943, 0xf0400fd0, 0x14325373, 0xdcd6ea35, 0x38a4b696, 0xa96dc41a, 0x4d1f98b9, 0x85fb21ff, 0x61897d5c, 0x421b9844, 0xa669c4e7, 0x6e8d7da1, 0x8aff2102, 0x1b36538e, 0xff440f2d, 0x37a0b66b, 0xd3d2eac8, 0x957dc7ee, 0x710f9b4d, 0xb9eb220b, 0x5d997ea8, 0xcc500c24, 0x28225087, 0xe0c6e9c1, 0x04b4b562, 0x2726507a, 0xc3540cd9, 0x0bb0b59f, 0xefc2e93c, 0x7e0b9bb0, 0x9a79c713, 0x529d7e55, 0xb6ef22f6, 0x15b8b465, 0xf1cae8c6, 0x392e5180, 0xdd5c0d23, 0x4c957faf, 0xa8e7230c, 0x60039a4a, 0x8471c6e9, 0xa7e323f1, 0x43917f52, 0x8b75c614, 0x6f079ab7, 0xfecee83b, 0x1abcb498, 0xd2580dde, 0x362a517d }; /** * Incremental 32-bit CRC calculation for a single byte. * *

* * @param b The next data in the CRC calculation (only lowest byte is used). * @param hcode The current int result. * @return Updated int value of CRC calculation. */ protected static int update32l(long b, int hcode, int[] tbl) { return ( hcode << 8 ) ^ tbl[(int)((b ^ ( hcode >>> 24 )) & 0xffL)]; } /** * Incremental 32-bit CRC calculation for a single byte. * *

* * @param b The next data in the CRC calculation. * @param hcode The current long result. * @return Updated int value of CRC calculation. */ protected static int update32(byte b, int hcode, int[] tbl) { hcode = update32l(b, hcode, tbl); return hcode; } /** * Incremental 32-bit CRC calculation for a single short. * *

* * @param s The next data in the CRC calculation. * @param hcode The current long result. * @return Updated int value of CRC calculation. */ protected static int update32(short s, int hcode, int[] tbl) { hcode = update32l(s, hcode, tbl); hcode = update32l((s >>> 8), hcode, tbl); return hcode; } /** * Incremental 32-bit CRC calculation for a single int. * *

* * @param i The next data in the CRC calculation. * @param hcode The current long result. * @return Updated int value of CRC calculation. */ protected static int update32(int i, int hcode, int[] tbl) { hcode = update32l(i, hcode, tbl); hcode = update32l((i >>> 8), hcode, tbl); hcode = update32l((i >>> 16), hcode, tbl); hcode = update32l((i >>> 24), hcode, tbl); return hcode; } /** * Incremental 32-bit CRC calculation for a single long. * *

* * @param l The next data in the CRC calculation. * @param hcode The current long result. * @return Updated int value of CRC calculation. */ protected static int update32(long l, int hcode, int[] tbl) { hcode = update32l(l, hcode, tbl); hcode = update32l((l >>> 8), hcode, tbl); hcode = update32l((l >>> 16), hcode, tbl); hcode = update32l((l >>> 24), hcode, tbl); hcode = update32l((l >>> 32), hcode, tbl); hcode = update32l((l >>> 40), hcode, tbl); hcode = update32l((l >>> 48), hcode, tbl); hcode = update32l((l >>> 56), hcode, tbl); return hcode; } /** * Incremental 64-bit CRC calculation for a single byte. * *

* * @param b The next data in the CRC calculation (only lowest byte is used). * @param hcode The current long result. * @return Updated long value of CRC calculation. */ protected static long update64l(long b, long hcode, long[] tbl) { return ( hcode << 8 ) ^ tbl[(int)((b ^ ( hcode >>> 56 )) & 0xffL)]; } /** * Incremental 64-bit CRC calculation for a single byte. * *

* * @param b The next data in the CRC calculation. * @param hcode The current long result. * @return Updated long value of CRC calculation. */ protected static long update64(byte b, long hcode, long[] tbl) { hcode = update64l(b, hcode, tbl); return hcode; } /** * Incremental 64-bit CRC calculation for a single short. * *

* * @param s The next data in the CRC calculation. * @param hcode The current long result. * @return Updated long value of CRC calculation. */ protected static long update64(short s, long hcode, long[] tbl) { hcode = update64l(s, hcode, tbl); hcode = update64l((s >>> 8), hcode, tbl); return hcode; } /** * Incremental 64-bit CRC calculation for a single int. * *

* * @param i The next data in the CRC calculation. * @param hcode The current long result. * @return Updated long value of CRC calculation. */ protected static long update64(int i, long hcode, long[] tbl) { hcode = update64l(i, hcode, tbl); hcode = update64l((i >>> 8), hcode, tbl); hcode = update64l((i >>> 16), hcode, tbl); hcode = update64l((i >>> 24), hcode, tbl); return hcode; } /** * Incremental 64-bit CRC calculation for a single long. * *

* * @param l The next data in the CRC calculation. * @param hcode The current long result. * @return Updated long value of CRC calculation. */ protected static long update64(long l, long hcode, long[] tbl) { hcode = update64l(l, hcode, tbl); hcode = update64l((l >>> 8), hcode, tbl); hcode = update64l((l >>> 16), hcode, tbl); hcode = update64l((l >>> 24), hcode, tbl); hcode = update64l((l >>> 32), hcode, tbl); hcode = update64l((l >>> 40), hcode, tbl); hcode = update64l((l >>> 48), hcode, tbl); hcode = update64l((l >>> 56), hcode, tbl); return hcode; } /** * Compute 64-bit CRC for an array of bytes. * *

* * @param v The byte array. * @return Long containing CRC hash of array. */ protected static long hash64(byte[] v) { long hcode = 0L; for(byte x : v) { hcode = update64(x, hcode, hash64tab1); } return hcode; } /** * Compute 64-bit CRC for an array of shorts. * *

* * @param v The short array. * @return Long containing CRC hash of array. */ public static long hash64(short[] v) { long hcode = 0L; for(short x : v) { hcode = update64(x, hcode, hash64tab1); } return hcode; } /** * Incremental 64-bit CRC for an integer. * *

* * @param x The int. * @param hcode The hash so far. * @return Long which is the updated hcode for x. */ public static long update_hash(int x, long hcode) { return update64(x, hcode, hash64tab1); } /** * Incremental 64-bit CRC for a long. * *

* * @param x The long. * @param hcode The hash so far. * @return Long which is the updated hcode for x. */ public static long update_hash(long x, long hcode) { return update64(x, hcode, hash64tab1); } /** * Compute 64-bit CRC for an array of ints. * *

* * @param v The int array. * @return Long containing CRC hash of array. */ public static long hash64(int[] v) { long hcode = 0L; for(int x : v) { hcode = update64(x, hcode, hash64tab1); } return hcode; } /** * Compute 64-bit CRC for an array of float. * *

* * @param v The float array. * @return CRC hash of array. */ public static long hash64(float[] v) { long hcode = 0L; for(float xf : v) { int x = Float.floatToRawIntBits(xf); hcode = update64(x, hcode, hash64tab1); } return hcode; } /** * Compute 64-bit CRC for an array of longs. * *

* * @param v The long array. * @return Long containing CRC hash of array. */ public static long hash64(long[] v) { long hcode = 0L; for(long x : v) { hcode = update64(x, hcode, hash64tab1); } return hcode; } /** * Compute 64-bit CRC for an array of double. * *

* * @param v The double array. * @return CRC hash of array. */ public static long hash64(double[] v) { long hcode = 0L; for(double xd : v) { long x = Double.doubleToRawLongBits(xd); hcode = update64(x, hcode, hash64tab1); } return hcode; } /** * Compute 32-bit CRC for an array of bytes. * *

* * @param v The byte array. * @return Int containing CRC hash of array. */ public static int hash32(byte[] v) { int hcode = 0; for(byte x : v) { hcode = update32(x, hcode, hash32tab0); } return hcode; } /** * Compute 32-bit CRC for an array of shorts. * *

* * @param v The short array. * @return Int containing CRC hash of array. */ public static int hash32(short[] v) { int hcode = 0; for(short x : v) { hcode = update32(x, hcode, hash32tab0); } return hcode; } /** * Compute 32-bit CRC for an array of ints. * *

* * @param v The int array. * @return Int containing CRC hash of array. */ public static int hash32(int[] v) { int hcode = 0; for(int x : v) { hcode = update32(x, hcode, hash32tab0); } return hcode; } /** * Compute 32-bit CRC for an array of float. * *

* * @param v The float array. * @return CRC hash of array. */ public static int hash32(float[] v) { int hcode = 0; for(float xf : v) { int x = Float.floatToRawIntBits(xf); hcode = update32(x, hcode, hash32tab0); } return hcode; } /** * Compute 32-bit CRC for an array of longs. * *

* * @param v The long array. * @return Int containing CRC hash of array. */ public static int hash32(long[] v) { int hcode = 0; for(long x : v) { hcode = update32(x, hcode, hash32tab0); } return hcode; } /** * Compute 32-bit CRC for an array of double. * *

* * @param v The double array. * @return Int containing CRC hash of array. */ public static int hash32(double[] v) { int hcode = 0; for(double xd : v) { long x = Double.doubleToRawLongBits(xd); hcode = update32(x, hcode, hash32tab0); } return hcode; } /** * Compute 32-bit CRC for a matrix of doubles. Used to compute a hash * value for instances of Matrix. * *

* * @param A The double[][]. * @param rows The length of A. * @param cols The length of A[0]. * @return CRC hash of A. */ public static int hash32(double[][] A, int rows, int cols) { int hcode = 0; for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { long x = Double.doubleToRawLongBits(A[i][j]); hcode = update32(x, hcode, hash32tab0); } } return hcode; } /** * Easily testable function which computes 64-bit CRC for a single long. * *

These functions are only intended as entry points for test * code. They are structurally the same as a some functions in a * long-used and well-tested C library, so we were easily able to * generate testcases for this code from the C code.

* * @param x The long to be hashed. * @param initial The CRC value to be updated. * @return Long containing CRC hash value. */ public static long hash64(long x, long initial) { long hcode = initial; hcode = update64(x, hcode, hash64tab1); return hcode; } /** * Easily testable function which computes 32-bit CRC for a single long. * * *

These functions are only intended as entry points for test * code. They are structurally the same as a some functions in a * long-used and well-tested C library, so we were easily able to * generate testcases for this code from the C code.

* * @param x The long to be hashed. * @param initial The CRC value to be updated. * @return Int containing CRC hash value. */ public static int hash32(long x, int initial) { int hcode = initial; hcode = update32(x, hcode, hash32tab0); return hcode; } } ================================================ FILE: src/java/edu/stanford/math/plex/Chain.java ================================================ package edu.stanford.math.plex; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Vector; /** * A Chain instance is an element of the module constructed by * taking formal sums of ring elements times simplices. In our case the * ring will always be a field, so the module is a vector space where the * basis elements are indexed by simplices. The dimension of the space of * chains is huge, so instead of making vectors of length the dimension of * the space, we use a sparse representation with (sorted) Simplex[] arrays * and corresponding int[] coefficient arrays. Addition and finding the * coefficient of the largest (non-zero) basis element are the most * important in persistence calculations, and this representation is suited * to these operations. * *

See Persistence, and references therein for the real story. * * @see edu.stanford.math.plex.Persistence * * @version $Id$ */ public class Chain { /** * Characteristic of the field of coefficients. *

* This will be a prime. Someday we might allow 0, for the rationals. *

*/ final int p; /** * The implementation we use here is that the chain is given by an * sorted array of Simplex instances, and a paired array (of the same * length) of coefficients of those instances. */ final int[] coefficients; final Simplex[] simplices; final static Map zero; static { zero = new HashMap(); } /** * Return the largest basis element. *

* * @return Largest simplex with nonzero coefficient. */ public Simplex maxS() { return simplices[simplices.length-1]; } /** * Return the coefficient of the largetst basis element. *

* * @return Coefficient of largest simplex with nonzero coefficient. */ public int maxC() { return coefficients[coefficients.length-1]; } // Chain constructor is called only from within this file. public Chain (int modulus, int[] cvec, Simplex[] elts) { assert(s_and_c_okay (elts, cvec, modulus)); p = modulus; chain_sort(elts,cvec); coefficients = cvec; simplices = elts; } public Chain (int modulus) { p = modulus; coefficients = new int[0]; simplices = new Simplex[0]; } public Chain (int modulus, int coeff, Simplex elt) { int[] cvec = new int[1]; Simplex[] elts = new Simplex[1]; cvec[0] = coeff; elts[0] = elt; assert(s_and_c_okay (elts, cvec, modulus)); p = modulus; coefficients = cvec; simplices = elts; } public static Chain zero(int modulus) { if(!zero.containsKey(modulus)) zero.put(modulus, new Chain(modulus)); return zero.get(modulus); } public static boolean isZero(Chain c) { if(c == null) return true; if(c.simplices.length == 0 || c.coefficients.length == 0) return true; for(int i=0; i * *

* * @param x the chain to add * @param c a coefficient to apply to the argument chain before adding. * @return the result of the addition */ public Chain add(Chain x, int c) { if (c == 0) return this; assert (this.p == x.p); return mergeBasisElts(simplices, coefficients, x.simplices, x.coefficients, c); } // Normalize the elements of a chain. protected static Chain normalize(Simplex[] s, int[] c, int p) { int counter = 0; for (int i = 0; i < s.length; i++) { if ((c[i] != 0) && (s[i] != null)) counter++; } // if everything cancels, we return zero. if (counter == 0) return Chain.zero(p); int[] newC = new int[counter]; Simplex[] newS = new Simplex[counter]; int index = 0; for (int i = 0; i < s.length; i++) { if ((c[i] != 0) && (s[i] != null)) { newS[index] = s[i]; newC[index] = c[i]; index++; } } chain_sort(newS, newC); return new Chain(p, newC, newS); } // Sort the elements of b, and in the course of doing so, do an // identical rearrangment of the elements of c. NOTE: Doing a // bubblesort on a long array would be inefficient, but this function // is only used to convert a "Simplex boundary" into a chain, and so // the length of b will always be so short that bubblesort would be the // first choice, anyway. protected static void chain_sort (Simplex[] b, int[] c) { for (int j = b.length - 1; j > 0; j--) { for (int i = 0; i < j; i++) { if (b[i+1].slt(b[i])) { Simplex dummyS = b[i]; int dummyC = c[i]; b[i] = b[i+1]; b[i+1] = dummyS; c[i] = c[i+1]; c[i+1] = dummyC; } } } } // Make "boundary coefficients". protected static int[] alternatingCoefficients(int mod, int len) { int[] return_value = new int[len]; int sign = 1; for (int i = 0; i < len; i++) { if (sign > 0) return_value[i] = 1; else return_value[i] = mod - 1; sign = -sign; } return return_value; } /** * Convert a boundary array to a chain. The non-null Simplex entries * must have their filtration indices set already.

* * @param boundary the boundary array to convert * @return the chain that corresponds to the boundary */ static Chain fromBoundary(Simplex[] boundary, int p) { if (boundary == null) return Chain.zero(p); int[] c = alternatingCoefficients(p, boundary.length); return normalize(boundary, c, p); } /** * Rewrite an element in Z/p from the representation in the interval [0,p) to the representation in (-p/2,p/2). *

* @param elt Element * @return Rewritten element. */ public int rewriteModP(int elt) { return (elt > p/2) ? elt-p : elt; } /** * Represent a Chain as a String. * *

* @return A string that describes a Chain. */ public String toString() { if (simplices.length == 0) return "0"; String return_value = ""; int coeff; for (int i = 0; i < simplices.length-1; i++) { coeff = rewriteModP(coefficients[i]); return_value = return_value + String.format("%d*", coeff) + simplices[i].toString() + " + "; } coeff = rewriteModP(coefficients[simplices.length-1]); return_value = return_value + String.format("%d*", coeff) + simplices[simplices.length-1].toString(); return return_value; } /** * Filter simplices. In several cases, we'll want to extract only a portion of a chain * spanned by specific simplices. In the non-basis supported persistent interval computation * this is an optimization step. *

* This function also gets used to replace generated (and thus filtration agnostic) simplices * by the singleton instances equipped with the correct filtration index. *

* @param simplexList The list of simplices onto which the chain is projected * @return A chain with only the simplices form the list, and with references * to each simplex updated to point at those in the list. */ public Chain filter(SimplexTable simplexList) { if(simplexList == null) return zero(p); Vector newSV = new Vector(); Vector newCV = new Vector(); for(int i=0; i newCi = newCV.iterator(); Iterator newSi = newSV.iterator(); while(i simplexList) { if(simplexList == null) return zero(p); Vector newSV = new Vector(); Vector newCV = new Vector(); for(Simplex s : simplexList) { int newC = coefficientOf(s); if(newC != 0) { newSV.add(s); newCV.add(newC); } } Simplex newS[] = new Simplex[newSV.size()]; int newC[] = new int[newCV.size()]; int i=0; Iterator newSi=newSV.iterator(); Iterator newCi=newCV.iterator(); while(i * * * @return the boundary chain */ Chain boundary(int p) { int first_index = 0; Chain first = Chain.zero(p); while((first.isZero()) && (first_index < simplices.length)){ first = fromBoundary((simplices[first_index]).boundaryArray(), p); int first_c = coefficients[first_index]; if (!first.isZero()) { for (int i = 0; i < first.simplices.length; i++) first.coefficients[i] = (first.coefficients[i] * first_c) % p; } first_index++; } if (first.isZero()) return first; for (int i = first_index; i < simplices.length; i++) { Chain next = fromBoundary((simplices[i]).boundaryArray(), p); if (!next.isZero()) { int next_c = coefficients[i]; if (!first.isZero()) first = first.add(next, next_c); else { first = next; for (int j = 0; j < first.simplices.length; j++) first.coefficients[j] = (first.coefficients[j] * next_c) % p; } } } return first; } /** * Chain EQuals. Test function. * *

* @param c Chain to compare. * @return true is equal, else false. * */ boolean ceq(Chain c) { if (simplices.length != c.simplices.length) return false; for (int i = 0; i < simplices.length; i++) { if ((coefficients[i] != c.coefficients[i]) || !(simplices[i].seq(c.simplices[i]))) return false; } return true; } /** * Chain equals implementation. Allows for standard style compliant * comparisons. * * @param c Chain to compare * @return true if equal, else false. */ public boolean equals(Chain c) { return this.ceq(c); } /** * Because we override equals, we also need to override HashCode. * We don't claim to do any kind of an informed choice here. * * @return Always returns 0. */ public int HashCode() { return 0; } /** * Return a random Chain. A test function. * *

* @return A "random" Chain. */ static Chain random(int p) { int length = 1 + (int) Math.floor((Math.random() * 20.0)); Simplex[] simplices = new Simplex[length]; int[] coefficients = new int[length]; for(int i = 0; i < length; i++) { simplices[i] = Simplex.random(); coefficients[i] = (1 + (int) Math.floor((Math.random() * p))) % p; if (coefficients[i] == 0) coefficients[i] = 1; } assert(simplices != null); assert(coefficients != null); chain_sort (simplices, coefficients); { boolean loser = false; for(int i = 0; i < length-1; i++) { if (!(simplices[i].slt(simplices[i+1]))) { coefficients[i+1] = 0; loser = true; } } if (loser) return normalize(simplices, coefficients, p); } return new Chain(p, coefficients, simplices); } // Test function. static protected boolean s_and_c_okay (Simplex[] s, int[] c, int p) { if ((s.length != c.length) || (s.length < 1)) return false; for (int i = 0; i < s.length; i++) { if ((c[i] < 1) || (c[i] > (p - 1))) return false; } for (int i = 0; i < s.length-1; i++) { if (!(s[i].slt(s[i+1]))) return false; } return true; } } ================================================ FILE: src/java/edu/stanford/math/plex/Cone.java ================================================ package edu.stanford.math.plex; import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.Set; /** * The class Cone provides support for computing persistence across a * filtration as well as a cone over this filtration. This has uses in * computing relative homology as well as in computing cohomology and * relative cohomology. See de Silva-Vejdemo Johansson (forthcoming) for * details. */ public class Cone extends SimplexStream { protected SimplexStream sstream; protected boolean coning; protected int conepoint; protected Iterator ssiterator; protected HashMap support; protected int findexOffset; /** * Creates a new cone from an existing SimplexStream. * * @param sstr Simplex Stream to be coned. */ public Cone(SimplexStream sstr) { sstream = sstr; coning = false; conepoint = 0; ssiterator = sstream.iterator(); support = new HashMap(); } // Interface functions defined by SimplexStream public boolean hasNext() { if(coning) return ssiterator.hasNext(); else return (sstream.size() > 0); } public Simplex next() { Simplex s; if(ssiterator.hasNext()) { s = ssiterator.next(); } else { if(coning) return null; else { // We reached the end of the ordinary iteration. Now we need // to start with coning simplices. coning = true; ssiterator = sstream.iterator(); Set supportpoints = support.keySet(); Integer maxpoint = Collections.max(supportpoints); conepoint = maxpoint+1; s = Simplex.getSimplex(new int[0],0); } } if(coning) { Simplex t = s.copy(); t = t.addVertex(conepoint); t.setfindex(s.findex()+findexOffset); s = t; } else { int[] vertices = s.vertices(); for(int i = 0; i iterator() { return this; } } ================================================ FILE: src/java/edu/stanford/math/plex/DiscreteSpace.java ================================================ package edu.stanford.math.plex; /** * The DiscreteSpace class implements a finite discrete metric * space. Used for testing. * * @version $Id$ */ public class DiscreteSpace extends PointData { public final int N; /** * The number of data points. * *

* * @return the number of points */ public int count() { return N; } /** * Discrete distance. * *

* * @param p1 the first point * @param p2 the second point * @return the distance between p1 and p2. */ public double distance (int p1, int p2) { if (p1 == p2) return 0.0; else return 1.0; } // Constructor for this class. public DiscreteSpace(int N) { this.N = N; } } ================================================ FILE: src/java/edu/stanford/math/plex/DistanceData.java ================================================ package edu.stanford.math.plex; /** * The DistanceData class is the simplest implementation * of NSpace. Intended for smallish data sets. * * @version $Id$ */ public class DistanceData extends PointData { final double[][] d; final int numPoints; /** * The number of data points. * *

* * @return the number of points */ public int count() { if (d != null) return (d.length); else return 0; } /** * Euclidean distance. * *

* * @param p1 the first point * @param p2 the second point * @return the distance between p1 and p2. */ public double distance (int p1, int p2) { if (p1 == p2) return 0.0; else { return d[p1-1][p2-1]; } } // Constructor for this class. public DistanceData(double[][] data) { super(); d = data; numPoints = d.length; } } ================================================ FILE: src/java/edu/stanford/math/plex/EuclideanArrayData.java ================================================ package edu.stanford.math.plex; import java.util.Random; /** * The EuclideanArrayData class is the simplest implementation * of NSpace. Intended for smallish data sets. Instances of this class are * implemented at 0-based arrays of double, but the first dimension() * entries are ignored, since PointData instances are indexed from 1 to * count(), inclusive. This is occasionally awkward, and it is the reason * that constructors that provide the data in the form of double[][], do * not require "blank space" to be provided. * * @version $Id$ */ public class EuclideanArrayData extends PointData.NSpace { final double[] points; final int dimensions; /** * The number of dimensions of the space. * *

* * @return the dimension of the data. */ public int dimension() { return dimensions; } /** * The number of data points. * *

* * @return the number of points */ public int count() { if (points != null) return ((points.length/dimensions)-1); else return 0; } /** * Euclidean distance. * *

* * @param p1 the first point * @param p2 the second point * @return the Euclidean distance between p1 and p2. */ public double distance (int p1, int p2) { if (p1 == p2) return 0.0; else if ((p1 == 0) || (p2 == 0)) return Double.MAX_VALUE; else { int p1_base = dimensions * p1; int p2_base = dimensions * p2; double accum = 0.0; for (int i = 0; i < dimensions; i++) { double diff = points[p1_base + i] - points[p2_base + i]; accum += diff * diff; } return Math.sqrt(accum); } } /** * Get coordinates. Not much checking. * *

* * @param p the point * @param i the coordinate * @return The i-th coordinate of p; */ public double coordinate (int p, int i) { if ((i >= dimensions) || (i < 0)) throw new IllegalArgumentException("Coordinate index " + i + "must be in range [0, " + (dimensions-1) + "]."); return points[(dimensions * p) + i]; } /** * Get point. No checking. * *

* * @param p the point * @param vec place to store point * @return Coordinates of p; */ public double[] get_pt (int p, double[] vec) { assert(dimensions == vec.length); for (int i = 0; i < dimensions; i++) { vec[i] = points[(dimensions * p)+i]; } return vec; } // Make sure that the data and dimension arguments are not absurd. protected boolean pointsAreConsistent(double[] data, int dimension) { if (dimension < 1) { throw new IllegalArgumentException("dimension, " + dimension + ", must be a positive integer."); } if (((data.length % dimension) != 0) || (data.length <= dimension)) { throw new IllegalArgumentException("data.length, " + data.length + ", must be a multiple of, and " + "greater than, dimension, " + dimension + "."); } return true; } // Make sure that the data and dimension arguments are not absurd. protected boolean pointsAreConsistent(double[][] data) { boolean data_length_loser = (data.length < 2); if (!data_length_loser) { int dim = data[0].length; if (dim < 1) { throw new IllegalArgumentException("dimension, " + dim + ", must be a positive integer."); } for (int i = 0; i < data.length; i++) { if (data[i].length != dim) { throw new IllegalArgumentException ("data[" + i + "].length must be " + ", must be constant for all elements of data, " + "and == " + dim + "."); } } } else { throw new IllegalArgumentException("data.length, " + data.length + ", must be greater than 1."); } return true; } // Don't call this one. protected EuclideanArrayData() { super(); points = null; dimensions = 0; } /** * The obvious constructor for this class.

This is more likely to be * called programmatically. The first dimension entries in data are * ignored. * * @param data The first dimension entries of this array will be ignored. * @param dimension The number of dimensions. */ public EuclideanArrayData(double[] data, int dimension) { super(); pointsAreConsistent(data, dimension); dimensions = dimension; points = data; } /** * Construct a EuclideanArrayData instance from a double[][].

This * constructor requires taht the double[][] be of consistent dimenions; * that is, data[i].length must be constant -- this will be the dimension * of the instance. The instance will be initialize with data[0] being * the first "point", so data.length will be count(). * * @param data A "rectangular matrix" of data; data[0] is the first point. */ public EuclideanArrayData(double[][] data) { super(); pointsAreConsistent(data); dimensions = data[0].length; points = new double[(data.length + 1) * dimensions]; for (int i = 0; i < data.length; i++) { for (int j = 0; j < dimensions; j++) { points[((i+1) * dimensions) + j] = data[i][j]; } } } // Constructor for test use. public EuclideanArrayData(int num_pts, int dimension) { super(); Random rand = new Random(0L); double[] data = new double[(num_pts + 1) * dimension]; for (int i = 1; i <= num_pts; i++) { for (int j = 0; j < dimension; j++) { data[(i * dimension) + j] = rand.nextDouble(); } } pointsAreConsistent(data, dimension); dimensions = dimension; points = data; } // Constructor for test use. public EuclideanArrayData(int num_pts, int dimension, double min, double max) { super(); Random rand = new Random(0L); double[] data = new double[(num_pts + 1) * dimension]; double len = max - min; for (int i = 1; i <= num_pts; i++) { for (int j = 0; j < dimension; j++) { data[(i * dimension) + j] = (len * rand.nextDouble()) + min; } } pointsAreConsistent(data, dimension); dimensions = dimension; points = data; } } ================================================ FILE: src/java/edu/stanford/math/plex/ExplicitStream.java ================================================ package edu.stanford.math.plex; import java.util.Arrays; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.Map; import java.util.NoSuchElementException; /** * A ExplicitStream instance is SimplexStream whose elements * are given explicitly, along with associated values of a persistence * parameter. Instances of ExplicitStream can be edited after creation, * unlike other SimplexStream subclasses, and an expected use is to create * empty ExplicitStreams and add simplices (and associated persistence * parameters) to the stream. Instances of this class exist in two states, * open (meaning open for additions) and closed. A stream that is closed * can be reopened at any time, but streams that are open cannot be used as * arguments to the methods in the Persistence class, iterated over, or * have their contents dumped for examination. Further, iterators or dump * state created when an ExplicitStream is closed become invalid (and * useless) once a stream is reopened. There is no explicit way to open one * of these streams -- it happens implicitly when an empty stream is * created, and when the stream is edited by adding/removing simplices. You * can create an iterator on an open stream, but you can't use the iterator * until the stream is closed. Dumping the contents of a stream will close * it, as will calling the close() method. There is a * verification process which must succeed in order for a close to happen * -- if the stream is in an inconsistent state (e.g., missing faces or the * persistence parameters of a face exceed that of a simplex), an * IllegalStateException will be thrown. It should be possible to catch * this exception, fix the problem, and proceed, but it might not work in * every case. There is also a verify() method which will * safely tell if a close() would succeed, and a verbose version that will * print messages about all of the errors found. * * @see edu.stanford.math.plex.RipsStream * * @version $Id$ */ public class ExplicitStream extends SimplexStream { // Store the simplices entries by dimension -- recall that the // Persistence algorithm only requires that the stream return the // simplices in persistence order within each dimension, and that // all of the faces of a simplex are seen before the simplex is // seen. This means that we can sort the simplices either by // dimension first, or by findex first. The SimplexStream.Stack, // used by the "industrial strength" streams in Plex, sorts first // by findex, and then dimension. However, because we want to be // able to return the contents of these streams as matrices to // Matlab and R, it is more convenient to keep the simplices // grouped by dimension, so that all of the simplices of a given // dimension can be returned as single matrix with dimension+1 // columns. protected Simplex[][] simplices; // map between persistence parameters and findices. protected double[] persistence_parameters; protected PlexMessageWindow message_window; // False if the stream is open for the addition/removal of // simplices. Closing the stream results in updating the simplices and // lengths arrays, and confirming that the set of simplices does form a // simplicial complex with consistent parameters. protected boolean closed; // Used to iterate over simplices if the stream is closed -- get reset // every time it is open. protected int current_dimension; protected int current_index; // Increment every time this is opened. Iterators for this class can only // work when their cached open_count is == to the stream's open_count. protected int open_count; // The state below is used whenever the stream is open for additions, and // gets flushed at the point that the stream is closed. // Used to map simplices being added to stream to their persistence // parameters. The contents of this table are always new Simplex // instances with unset _findex slots. protected HashMap simplex_table; // Any parameter seen goes in this table. When we are done the contents // are used to fill in the persistence_parameters array, which is then // sorted, and indices from there are used to fill in the simplices in // the simplex_table, which are in turn stored, by dimension and then // sorted by findex within the dimensions, in the simplices array. protected HashSet parameters_table; /** * A DComplex (for Dimensional Complex) is the set of simplices (and * associated persistence parameters) of specified dimension for an * ExplicitStream. The slots are accessed only by read methods. It is * expected that this will be used primarily to connect Plex with Matlab. * */ public static class DComplex { protected ExplicitStream parent; protected int dimension; protected int open_count; protected int[][] C; protected double[] F; /** * Constructor for DComplex; * *

* @param parent The ExplicitStream from which the simplices came. * @param dimension The dimension of the simplices. * @param C The actual array of vertex arrays (simplices). * @param F The array of associated persistence parameters. */ public DComplex(ExplicitStream parent, int dimension, int[][] C, double[] F) { this.parent = parent; this.open_count = parent.open_count; this.dimension = dimension; this.C = C; this.F = F; } // Are the parent stream and the iterator consistent? protected boolean parent_is_consistent() { return (parent.closed && (open_count == parent.open_count)); } /** * Is there a larger dimensional DComplex for this stream? *

* @return true if the parent is consistent with this DComplex * and there is are larger dimensional simplices in the parent, else * false. * */ public boolean hasNext() { if (!parent_is_consistent()) return false; else return (dimension < parent.maxDimension()); } /** * Return a DComplex of the next largest dimension, if there is one, * else null. * *

* @return A DComplex of dimension 1 more, if there is one, else null. */ public DComplex next() { if (!parent_is_consistent()) return null; else return parent.dump(dimension+1); } /** * Return the parent ExplicitStream of this DComplex. * *

* @return The parent ExplicitStream. * */ public ExplicitStream parent() { return parent; } /** * Return the dimension of this DComplex. * *

* @return The dimension of this DComplex. * */ public int dimension() { return dimension; } /** * Return the array of vertex arrays for the simplices of this dimension. * *

* @return Return the array describing the part of the complex having * the current dimension. * */ public int[][] C() { return C; } /** * Return the array of persistence parameters corresponding to the * simplices of this dimension. * *

* @return A double[] of the persistence parameters for this dimension. * */ public double[] F() { return F; } } /** * Return a DComplex of the requested dimension, if there is one, else null; * *

* @param dim The dimension of the simplices we want. * @return Return a DComplex if dim >= 0 and <= maxDimension(), else null. * */ public DComplex dump(int dim) { if (!closed) close(); if ((dim < 0) || (dim > maxDimension())) return null; else { int[][] cvec = new int[simplices[dim].length][]; double[] fvec = new double[cvec.length]; for (int i = 0; i < cvec.length; i++) { Simplex s = simplices[dim][i]; cvec[i] = s.vertices(); fvec[i] = persistence_parameters[s.findex()]; } return new DComplex(this, dim, cvec, fvec); } } /** * Is there a next Simplex in the stream? * *

* @return Return true if the stream is not yet empty. * */ public boolean hasNext() { // NOTE: For this to work it must be the case that any CLOSED // ExplicitStream has the property that the Simplex[] for the highest // dimension has positive length. That is, if the largest dimensional // Simplex in the stream has dimension 3, then simplices.length must // be 4. It is, of course, possible that simplices[i] has 0 length // for some i, just not for i == simplices.length-1. if (!closed) return false; else return ((current_dimension < (simplices.length-1)) || (current_dimension == (simplices.length-1)) && (current_index < simplices[simplices.length-1].length)); } // Go to the "next" index pair. This code assumes that there is such a // pair, and so needs to be called only when we know that this is the // case. protected void skip_to_next_index_pair() { current_index++; while((current_dimension < simplices.length) && (current_index >= simplices[current_dimension].length)) { current_index = 0; current_dimension++; } } /** * Next Simplex in the stream. * *

* @return Return the smallest remaining Simplex instance. * */ public Simplex next() { if (!hasNext()) return null; Simplex next = simplices[current_dimension][current_index]; skip_to_next_index_pair(); return next; } // Do the obvious conversions in case we need to return double[]. public static double[] toDouble(int[] in) { if (in == null) return null; double[] return_value = new double[in.length]; for (int i = 0; i < in.length; i++) { return_value[i] = (double)in[i]; } return return_value; } // Do the obvious conversions in case we need to return double[][]. public static double[][] toDouble(int[][] in) { if (in == null) return null; double[][] return_value = new double[in.length][]; for (int i = 0; i < in.length; i++) { return_value[i] = toDouble(in[i]); } return return_value; } // Do the obvious conversions in case we are passed a simplex as a double[]. public static int[] toInt(double[] in) { if (in == null) return null; int[] return_value = new int[in.length]; for (int i = 0; i < in.length; i++) { return_value[i] = (int)Math.round(in[i]); } return return_value; } // Do the obvious conversions in case we are passed simplices as double[][]. protected static int[][] toInt(double[][] in) { if (in == null) return null; int[][] return_value = new int[in.length][]; for (int i = 0; i < in.length; i++) { return_value[i] = toInt(in[i]); } return return_value; } /** * Constructor for ExplicitStream. * *

* Make an empty, open, ExplicitStream. */ public ExplicitStream() { simplices = null; persistence_parameters = null; closed = false; current_dimension = 0; current_index = 0; open_count = 1; parameters_table = new HashSet(100); simplex_table = new HashMap(100); } // Open the stream for further additions, after creating the internal // state needed to record these additions. In particular, we put the // existing state into these tables and then throw away that existing // state. protected void open() { if (closed) { if (parameters_table == null) parameters_table = new HashSet(100); if (simplex_table == null) simplex_table = new HashMap(100); if (simplices != null) { for(int d = 0; d < simplices.length; d++) { for(int i = 0; i < simplices[d].length; i++) { Simplex s = simplices[d][i]; Double P = new Double(persistence_parameters[s.findex()]); simplex_table.put(Simplex.getSimplex(s.vertices()), P); parameters_table.add(P); } } } simplices = null; persistence_parameters = null; closed = false; open_count++; } } /** * Convert a SimplexStream into an explicit one. * *

* @param str A SimplexStream instance. * @return An ExplicitStream with equivalent Simplex entries. * */ public static ExplicitStream makeExplicit(SimplexStream str) { if (str instanceof ExplicitStream) return (ExplicitStream) str; else { ExplicitStream estr = new ExplicitStream(); estr.open(); if (str instanceof Iterable) { Iterator iter = str.iterator(); while(iter.hasNext()) { Simplex s = iter.next(); estr.add(s.vertices(), str.convert_filtration_index(s.findex())); } } else { while(str.hasNext()) { Simplex s = str.next(); estr.add(s.vertices(), str.convert_filtration_index(s.findex())); } } estr.close(); return estr; } } /** * Remove a simplex, specified by its vertex vector, from the stream. If * the simplex isn't present, do nothing. *

* @param vertices The vertex array of the Simplex to remove. */ public void remove(int[] vertices) { if (closed) open(); Simplex s = Simplex.getSimplex(vertices); simplex_table.remove(s); assert(!simplex_table.containsKey(s)); } /** * Remove a simplex, specified by its vertex vector, and any simplex that * contains it, from the stream. If nothing in the stream contains the * simplex, do nothing.

* @param vertices The vertex array of the Simplex to remove. */ public void prune(int[] vertices) { if (closed) open(); Simplex tp = Simplex.getSimplex(vertices); int[] tp_vec = new int[tp.dimension()+1]; int[] s_vec = new int[10]; HashMap pending = new HashMap(100); for(Map.Entry E : simplex_table.entrySet()) { Simplex s = E.getKey(); Double P = E.getValue(); if ((s.dimension()+1) > s_vec.length) { s_vec = new int[2 * (s.dimension()+1)]; } if (tp.subset(s, tp_vec, s_vec)) pending.put(s, P); } for(Map.Entry E : pending.entrySet()) { Simplex s = E.getKey(); simplex_table.remove(s); } assert(!simplex_table.containsKey(tp)); } /** * Remove a simplex, specified by its vertex vector as an array of * double, from the stream. If the simplex isn't present, do nothing. *

* @param vertices The vertex array of the Simplex to remove, where the * vertices are double instead of float -- this may be useful when called * from Matlab. */ public void remove(double[] vertices) { remove(toInt(vertices)); } /** * Prune a simplex, specified by an array of double, from the stream. *

* @param vertices The vertex array of the Simplex to prune, where the * vertices are double instead of float -- this may be useful when called * from Matlab. */ public void prune(double[] vertices) { prune(toInt(vertices)); } /** * Remove an array of simplices, specified by vertex vectors, from the stream. *

* @param simplex_array An array of arrays of vertices of the Simplices to remove. * from Matlab. */ public void remove(int[][] simplex_array) { for (int i = 0; i < simplex_array.length; i++) { remove(simplex_array[i]); } } /** * Prune an array of simplices, specified by vertex vectors, from the stream. *

* @param simplex_array An array of arrays of vertices of the Simplices to prune. * from Matlab. */ public void prune(int[][] simplex_array) { for (int i = 0; i < simplex_array.length; i++) { prune(simplex_array[i]); } } /** * Remove an array of simplices, specified by double[] vertex vectors, * from the stream.

* @param simplex_array An array of arrays of vertices of the Simplices, * given as double[][], to remove. This may be useful when called from Matlab. */ public void remove(double[][] simplex_array) { remove(toInt(simplex_array)); } /** * Prune an array of simplices, specified by double[] vertex vectors, * from the stream.

* @param simplex_array An array of arrays of vertices of the Simplices, * given as double[][], to prune. This may be useful when called from Matlab. */ public void prune(double[][] simplex_array) { prune(toInt(simplex_array)); } // Internal version -- add a Simplex with a specified persistence parameter. protected void add(Simplex s, double p) { if (closed) open(); Double P = new Double(p); parameters_table.add(P); Double sP = simplex_table.get(s); if (sP == null) { simplex_table.put(s, P); } else { simplex_table.put(s, (P.doubleValue() > sP.doubleValue())?sP:P); } } /** * Add a simplex, specified by its vertex vector and persistence * parameter, to the stream. If the simplex is already present, make sure * that the associated persistence parameter is the minimum of the new * value and the one already in use. *

* @param vertices The vertex array of the Simplex to add. * @param parameter The persistence parameter of the Simplex to add. */ public void add(int[] vertices, double parameter) { Simplex s = Simplex.getSimplex(vertices); add(s, parameter); } /** * Add a simplex, specified by its vertex vector and persistence * parameter, to the stream. If the simplex is already present, make sure * that the associated persistence parameter is the minimum of the new * value and the one already in use. *

* @param vertices The vertex array of the Simplex to add, given as a double[]. * @param parameter The persistence parameter of the Simplex to add. */ public void add(double[] vertices, double parameter) { add(toInt(vertices), parameter); } /** * Add an array of simplices, specified by matching vertex vectors and * persistence parameters, to the stream. *

* @param simplex_array The array of array of vertices specifying the * Simplices to add. * @param parray The array of associated persistence parameters. */ public void add(int[][] simplex_array, double[] parray) { if (simplex_array.length != parray.length) throw new IllegalArgumentException ("Length mismatch between arguments to add()."); for (int i = 0; i < simplex_array.length; i++) { add(simplex_array[i], parray[i]); } } /** * Add an array of simplices, specified by matching vertex vectors and * persistence parameters, to the stream. *

* @param simplex_array The array of array of vertices specifying the * Simplices to add, given as arrays of double[]. * @param parray The array of associated persistence parameters. */ public void add(double[][] simplex_array, double[] parray) { add(toInt(simplex_array), parray); } // Make sure that all of the faces are present of a Simplex are // present. If some are missing, add them with the smallest persistence // parameter associated with that face in the pending table. protected void ensure_faces(Simplex s, Double P, HashMap pending) { assert(P instanceof Double); if (s.dimension() > 0) { SimplexFaceIterator fi = new SimplexFaceIterator(s, s.dimension()-1); // add missing faces while (fi.hasNext()) { Simplex face = Simplex.getSimplex(fi.next()); if (!simplex_table.containsKey(face)) { if (pending.containsKey(face)) { Double prior_faceP = pending.get(face); if (prior_faceP.doubleValue() < P.doubleValue()) P = prior_faceP; } pending.put(Simplex.getSimplex(face.vertices()), P); ensure_faces(face, P, pending); } } } } /** * Make sure all of the faces of simplices in simplex_table are present * in the table as well.

In doing so we use the smallest relevant * persistence parameter. This does NOT ensure that the full complex will * be consistent, but if it fails, the complex was doomed anyway.

* */ public void ensure_all_faces() { if (!closed) { HashMap pending = new HashMap(100); for(Map.Entry E : simplex_table.entrySet()) { Simplex s = E.getKey(); Double P = E.getValue(); ensure_faces(s, P, pending); } for(Map.Entry E : pending.entrySet()) { Simplex s = E.getKey(); Double P = E.getValue(); parameters_table.add(P); simplex_table.put(s, P); } } } // Realloc() for int[]. protected int[] ensure_length(int[] v, int index) { if (index < v.length) return v; int[] new_v = new int[index+1]; for (int i = 0; i < v.length; i++) new_v[i] = v[i]; return new_v; } // Don't make the window unless we actually need it. protected void message(String msg) { if ((message_window == null) && (Plex.useMessageWindow())) message_window = new PlexMessageWindow("Messages: " + this.toString()); if (message_window == null) System.out.printf("%s", msg); else message_window.message(msg); } // Iterate over all of the faces of s and make sure that they are present // in simplex_table. This only applies to open ExplicitStreams, since the // process of closing a stream requires that it be consistent. protected boolean faces_are_consistent(Simplex s, Double P, boolean error, boolean print) { boolean success = true; if (!closed) { SimplexFaceIterator fi = new SimplexFaceIterator(s, s.dimension()-1); // check that the faces are all present and have smaller persistence parameter while (fi.hasNext()) { Simplex face = Simplex.getSimplex(fi.next()); Double faceP = simplex_table.get(face); if (faceP == null) { success = false; if (error) { persistence_parameters = null; throw new IllegalStateException("Simplex " + s.toString() + " is in the stream, but not face " + face.toString()); } else if (print) { message(String.format("Simplex %s is present, but its face %s is not.\n", s.toString(), face.toString())); } } else if ((faceP.doubleValue() > P.doubleValue()) || (face.findex() > s.findex())) { success = false; if (error) { persistence_parameters = null; throw new IllegalStateException("Simplex " + s.toString() + " has persistence value " + P.toString() + " filtration index " + s.findex() + ", but persistence value of " + face.toString() + " or filtration index of " + face.findex() + " is larger"); } else if (print) { message(String.format ("Simplex %s has value %.4f, but face %s has value %.4f.\n", s.toString(), P.doubleValue(), face.toString(), faceP.doubleValue())); } } } } return success; } /** * Quietly verify the ExplicitStream. Any successfully closed stream must * be consistent.

* @return Return true if the stream is consistent, else false. * */ public boolean verify() { return verify(false); } /** * Verify the ExplicitStream. This is only applied to a stream that has been * opened for additions. Any successfully closed stream must be consistent. * *

* @param verbose if true print a message for every mistake found. * @return Return true if the stream is consistent, else false. * */ public boolean verify(boolean verbose) { boolean success = true; if (!closed) { for(Map.Entry E : simplex_table.entrySet()) { Simplex s = E.getKey(); Double P = E.getValue(); assert(P instanceof Double); boolean good_face = faces_are_consistent(s, P, false, verbose); if (success) success = good_face; } } return success; } /** * Close the stream the current additions, provided that the contents are * consistent and complete. Otherwise, throw an error indicating the * problem. Note that even if the close is successful, further additions * can be made at any time. It isn't obvious that this method needs to be * public, but it makes some testing simpler. */ public void close() { if (!closed) { int pcount = (parameters_table != null)?parameters_table.size():0; persistence_parameters = new double[pcount]; if (parameters_table != null) { int pcounter = 0; for (Double P : parameters_table) { persistence_parameters[pcounter++] = P.doubleValue(); } } Arrays.sort(persistence_parameters); if (simplex_table != null) { int[] dimensions = new int[10]; int max_dimension = -1; for(Map.Entry E : simplex_table.entrySet()) { Simplex s = E.getKey(); Double P = E.getValue(); assert(P instanceof Double); dimensions = ensure_length(dimensions, s.dimension()); dimensions[s.dimension()]++; max_dimension = Math.max(max_dimension, s.dimension()); // check that the faces are all present and have persistence // parameters that are no larger faces_are_consistent(s, P, true, false); } simplices = new Simplex[max_dimension+1][]; int[] counters = new int[max_dimension+1]; for (int i = 0; i < simplices.length; i++) simplices[i] = new Simplex[dimensions[i]]; for(Map.Entry E : simplex_table.entrySet()) { Simplex s = E.getKey(); Double P = E.getValue(); double s_p = P.doubleValue(); if (s.findex() < 0) // only bother setting the findex values if they haven't been set s.setfindex(Arrays.binarySearch(persistence_parameters, s_p)); simplices[s.dimension()][counters[s.dimension()]++] = s; } // Sort the simplices entries within each dimension. This will // result in a state that allows us to return the contents of the // stream in an order suitable for the Persistence calculation. for (int i = 0; i < simplices.length; i++) { // assert that the simplices subarrays are full assert (simplices[i].length == counters[i]); Simplex.persistence_sort(simplices[i]); } } simplex_table = null; parameters_table = null; closed = true; } } /** * How many simplices are in the stream? * *

* @return The number of simplices in a closed stream, else 0 if the * stream is open. * */ public int size() { if (!closed) return 0; else { if (simplices == null) return 0; else { int total = 0; for (int i = 0; i < simplices.length; i++) { total += simplices[i].length; } return total; } } } /** * Max dimension of simplices in the stream. * *

* @return Max dimension of simplices in the stream, if closed and * non-empty, else -1. * */ public int maxDimension() { if (!closed) return -1; else { if (simplices == null) return -1; else { return simplices.length-1; } } } /** * Convert a filtration index into a persistence parameter (i.e., double) * -- gets overloaded by some subclasses. * *

* @param fi Filtration index to convert. * @return double persistence parameter. * */ public double convert_filtration_index(int fi) { return persistence_parameters[fi]; } /** * Make an iterator for the stream. *

* * @return Iterator instance for the stream. * * @see java.util.Iterator */ public Iterator iterator() { return new ExplicitStreamIterator(this); } /** * Make an iterator for the stream elements of fixed dimension. *

* * @param d dimension of simplices of interest. * @return Iterator instance for the stream. * * @see java.util.Iterator */ public Iterator iterator(int d) { return new ExplicitStreamIterator(this, d); } /** * Instances provide Iterator for non-destructive iterating * over entries. That is, repeated iteration over an ExplicitStream * instance is possible with multiple instances of this class. */ protected static class ExplicitStreamIterator implements Iterator { protected int current_index; protected int current_dimension; protected boolean fixed_dimension; protected int open_count; protected ExplicitStream parent; protected ExplicitStreamIterator(ExplicitStream str) { current_dimension = 0; current_index = 0; open_count = str.open_count; fixed_dimension = false; parent = str; } protected ExplicitStreamIterator(ExplicitStream str, int dimension) { if ((dimension < 0) || (dimension >= str.simplices.length)) throw new IllegalArgumentException(dimension + " must be >= 0 and <= " + (str.simplices.length-1)); current_dimension = dimension; current_index = 0; open_count = str.open_count; fixed_dimension = true; parent = str; } // Go to the "next" index pair. This code assumes that there is such a // pair, and so needs to be called only when we know that this is the // case. protected void skip_to_next_index_pair() { current_index++; while((current_dimension < parent.simplices.length) && (current_index >= parent.simplices[current_dimension].length)) { current_index = 0; current_dimension++; } } // Are the parent stream and the iterator consistent? protected boolean parent_is_consistent() { return (parent.closed && (open_count == parent.open_count)); } // NOTE: For this to work it must be the case that any CLOSED // ExplicitStream has the property that the Simplex[] for the highest // dimension has positive length. That is, if the largest dimensional // Simplex in the stream has dimension 3, then simplices.length must // be 4. It is, of course, possible that simplices[i] has 0 length // for some i, just not for i == simplices.length-1. protected boolean has_next_index() { return (fixed_dimension? (current_index < parent.simplices[current_dimension].length): ((current_dimension < (parent.simplices.length-1)) || (current_dimension == (parent.simplices.length-1)) && (current_index < parent.simplices[parent.simplices.length-1].length))); } /** * Returns true if the iterator has more simplices. * * @return true if the iterator has more simplices, else * false. */ public boolean hasNext() { if (!parent_is_consistent()) return false; else return has_next_index(); } /** * Returns the next Simplex in the iteration of the stream. * Used in concert with the {@link #hasNext()} method returns * return each Simplex in the stream exactly once. Does * not have any side effects on the stream. *

* @return the next Simplex in the stream. * @exception NoSuchElementException stream has no more elements. */ public Simplex next() { if (!parent_is_consistent()) throw new IllegalStateException("The parent stream (" + parent.toString() + ") has changed since this iterator was created."); if (!has_next_index()) throw new NoSuchElementException(); Simplex next = parent.simplices[current_dimension][current_index]; skip_to_next_index_pair(); return next; } /** * Unsupported remove() operation. * * @exception UnsupportedOperationException */ public void remove() { throw new UnsupportedOperationException(); } } /** * Convert a Simplex[][] into an ExplicitStream. *

* @param complex A Simplex[][] collection of simplices which are * believed to a simplicial complex with findex values usable as * persistence parameters. * @return An ExplicitStream instance the encloses the Simplex instances. */ public static ExplicitStream enclose (Simplex[][] complex) { ExplicitStream estr = new ExplicitStream(); estr.open(); for (int i = 0; i < complex.length; i++) { Simplex[] sarray = complex[i]; for (int j = 0; j < sarray.length; j++) { Simplex s = sarray[j]; double p = (s.findex() < 0)?0.0:((double)s.findex()); estr.add(s.copy(), p); } } estr.close(); return estr; } } ================================================ FILE: src/java/edu/stanford/math/plex/LazyWitnessStream.java ================================================ package edu.stanford.math.plex; import static edu.stanford.math.plex.RipsStream.all_edges_present; import static edu.stanford.math.plex.RipsStream.edge_index; import static edu.stanford.math.plex.WitnessStream.D_index; import static edu.stanford.math.plex.WitnessStream.HUGE; import static edu.stanford.math.plex.WitnessStream.distance_ln; import static edu.stanford.math.plex.WitnessStream.max; import static edu.stanford.math.plex.WitnessStream.min; import java.util.Arrays; import java.util.Iterator; /** *

* A LazyWitnessStream is a SimplexStream whose elements are the simplices of * the lazy Witness complex of a PointData instance. The implementation is very * similar to the RipsStream, and in fact the results are analogous for nu=0. * The details of this construction are described in Topological estimation * using witness complexes, Vin de Silva and Gunnar Carlsson, Symposium on * Point-Based Graphics, ETH, Zurich, Switzerland, June 2-4, 2004. * * @see edu.stanford.math.plex.RipsStream * @see edu.stanford.math.plex.WitnessStream * * * @version $Id$ */ public class LazyWitnessStream extends SimplexStream { // the pdata, landmarks, granularity and nu can't change, but we (may) // allow the limit to increase, which can result in more simplices // being added. public final PointData pdata; public final double granularity; public final int maxDimension; public final int[] landmarks; public final int nu; protected double maxR; protected double[] finite_eij_array; protected SimplexStream.Stack stack; /** * Is there a next Simplex in the stream? * *

* * @return Return true if the stream is not yet empty. * */ public boolean hasNext() { return stack.hasNext(); } /** * Next Simplex in the stream. * *

* * @return Return the smallest remaining Simplex instance. * */ public Simplex next() { return stack.next(); } /** * Constructor for LazyWitnessStream. * *

* Make a stream of the simplices in a lazy Witness complex for data. *

* * @param delta * Granularity to apply to the underlying metric. * @param max_d * Maximum dimension of Simplex instances we construct. * @param R * Maximum R we will use. * @param nu * See Topological estimation using witness complexes, * above. * @param landmarks * Indices of points to use as landmarks. The simplices * constructed will use the landmark indices, rather than the * indices into data. * @param data * Metric data to use in constructing stream. * */ LazyWitnessStream(double delta, int max_d, double R, int nu, int[] landmarks, PointData data) { assert delta >= 0.0; granularity = delta; this.landmarks = landmarks; this.nu = nu; maxR = R; pdata = data; maxDimension = max_d; stack = find_simplices(delta, R, nu, max_d, landmarks, data); } /** * How many simplices are in the stream? * *

* * @return The number of simplices in the stream. * */ public int size() { return stack.size(); } /** * Max dimension of simplices in the stream. * *

* * @return Max dimension of simplices in the stream. * */ public int maxDimension() { return stack.maxDimension(); } /** * Convert a filtration index into a persistence parameter (i.e., double) -- * gets overloaded by some subclasses. * *

* * @param fi * Filtration index to convert. * @return double persistence parameter. * */ public double convert_filtration_index(int fi) { if (granularity > 0.0) return granularity * fi; else return finite_eij_array[fi]; } /** * Make an iterator for the stream. *

* * @return Iterator instance for the stream. * * @see java.util.Iterator */ public Iterator iterator() { return stack.iterator(); } // don't use protected LazyWitnessStream() { granularity = 0.0; maxDimension = 0; landmarks = null; pdata = null; nu = 0; } // The algorithm here is essentially the same as the one for Rips // complexes, as it would be for constructing any complex where a // simplex is part of the complex if and only if all of its edges are, // and where the filtration index of a simplex is the max of the // filtration indices of all of the component edges. The difference // between this algorithm and the RipsStream one is how the edge_info[] // is initialized. protected SimplexStream.Stack find_simplices(double delta, double R_max, int nu, int max_dimension, int[] landmarks, PointData data) { // Recall that we never use 0 as a simplex index, so landmarks[0] should // be empty assert (landmarks[0] == 0); // there is no point doing this unless 1 < L <= N. assert ((landmarks.length > 2) && (data.count() >= (landmarks.length - 1))); // nu == 0, 1, or 2 in practice, but 0 <= nu <= L is all that we require assert ((nu >= 0) && (nu <= (landmarks.length - 1))); if (max_dimension < 0) return null; // The landmarks are indexed from 1 to L, inclusive, and since 0 is // excluded, // L = landmarks.length-1. int L = landmarks.length - 1; int[] edge_info = new int[(L * (L - 1)) / 2]; int max_findex; if (granularity > 0.0) max_findex = (int) (Math.floor(R_max / granularity)); else max_findex = (L * (L - 1)) / 2; // Construct the tail of the queue -- we add any simplices of less // than max dimension to this queue, so that we can go over go over // them again in a later pass SimplexStream.Tail q = new SimplexStream.Tail(); // repository for the elements of the LazyWitness complex. SimplexStream.Stack stack = new SimplexStream.Stack(max_findex, max_dimension); // Fill in the edge_info array with -1's, which indicate "no edge". for (int i = 0; i < edge_info.length; i++) edge_info[i] = -1; // Add all of the points to the stack. for (int l = 1; l <= L; l++) stack.push(Simplex.makePoint(l, 0)); // If max_dimension is 0, we just want the points. if (max_dimension < 1) return stack; // Remember the start of dimension k, where in this case, k=1. SimplexStream.Head last_dim_start = new SimplexStream.Head(q); // Construct the edge_info[] -- the only iteration over the full // data set occurs within this block, and we use the variable n for // that. The other indexing that occurs is over the landmarks set. // We try to create a cached D matrix of distances, but if we don't // have enough memory for that, we recalculate the distances as // needed. { // Recall that "count" means that the points are indexed from 1 to // N, inclusive. int N = data.count(); double[] m = new double[N + 1]; double[] D = null; try { if ((L * N) > 0) { // fill in the distance matrix, if we can D = new double[L * N]; for (int l = 1; l <= L; l++) { for (int n = 1; n <= N; n++) { D[D_index(l, n, L, N)] = distance_ln(l, n, landmarks, data); } } } } catch (OutOfMemoryError oom) { } finally { } if (nu > 0) { double[] m_tmp = new double[L + 1]; for (int n = 1; n <= N; n++) { for (int l = 1; l <= L; l++) if (D == null) m_tmp[l] = distance_ln(l, n, landmarks, data); else m_tmp[l] = D[D_index(l, n, L, N)]; Arrays.sort(m_tmp); assert (m_tmp[0] == 0.0); m[n] = m_tmp[nu]; assert (m[n] > 0.0); } } // Process the edges. We both enqueue them, and create the // edge_info[] which we use to bootstrap from dimension k to // dimension k+1. What happens in this section of the code is the // essential difference between a Rips complex and a LazyWitness // complex. { double[] i_cache = (D == null) ? null : new double[N + 1]; double[] eij_array = new double[(L * (L - 1)) / 2]; int finite_eij_counter = 1; for (int i = 1; i <= L; i++) { if (D == null) { for (int n = 1; n <= N; n++) i_cache[n] = distance_ln(i, n, landmarks, data); } for (int j = i + 1; j <= L; j++) { // Compute the R at which the edge comes into // existence. We use the m[] values to adjust the // distance_ln() values. double e_ij = HUGE; for (int n = 1; n <= N; n++) { double d_ijn; if (D == null) d_ijn = max(i_cache[n], distance_ln(j, n, landmarks, data)); else d_ijn = max(D[D_index(i, n, L, N)], D[D_index(j, n, L, N)]); if (d_ijn < m[n]) d_ijn = 0.0; else d_ijn = d_ijn - m[n]; e_ij = min(e_ij, d_ijn); } if (e_ij <= R_max) { finite_eij_counter++; eij_array[edge_index(i, j, L)] = e_ij; } else eij_array[edge_index(i, j, L)] = HUGE; } } // If the granularity is 0, then instead of making the // filtration // indices be proportional to the e_ij, we make an array of the // e_ij, sort it, and use the index into this sorted array as // the // filtration index for the corresponding edge. if (granularity == 0.0) { // Copy the non-HUGE lengths into the finite_eij_array // (leaving a 0 // in the first entry), and sort it -- we will use the index // of e_ij // in finite_eij_array as the persistence index for the // corresponding // edge simplex. We don't bother looking for duplicate // lengths, // because these will occur with probability 0 in real data. finite_eij_array = new double[finite_eij_counter]; finite_eij_counter = 1; for (int i = 0; i < eij_array.length; i++) { if (eij_array[i] != HUGE) finite_eij_array[finite_eij_counter++] = eij_array[i]; } Arrays.sort(finite_eij_array); } // Use either division or binary search to find filtration index // for the edge from i to j. for (int i = 1; i <= L; i++) { for (int j = i + 1; j <= L; j++) { double e_ij = eij_array[edge_index(i, j, L)]; // if the edge appears early enough, create it, and // then push and enqueue it if (e_ij < HUGE) { int f_ij = ((granularity > 0.0) ? ((int) (Math.floor(e_ij / granularity))) : Arrays.binarySearch(finite_eij_array, e_ij)); edge_info[edge_index(i, j, L)] = f_ij; Simplex s = Simplex.makeEdge(i, j, f_ij); stack.push(s); q = q.enqueue(s); } } } } } // We are ready to construct the higher dimensional data. Since we // already have the edges, we begin with 2-dimensional simplexes, // and continue until we have constructed those of max_dimension. int current_dimension = 2; while (current_dimension <= max_dimension) { // we start processing at last_dim_start SimplexStream.Head current = last_dim_start; // At this point all simplices of current_dimension-1 have been // added to the queue (and none of current_dimension), so we // stop processing for this dimension when current reaches end. SimplexStream.Head end = new SimplexStream.Head(q); // Remember end as last_dim_start, for the next iteration last_dim_start = end; // We construct a scratch array in which to store any potential // vertex sets for possible simplices of dimension // current_dimension. int[] verts = new int[current_dimension + 1]; while (current.lessThan(end)) { // Until current reaches end, extract simplices and copy // their vertices into the scratch array. Simplex face = current.nextEntry(); assert (face.dimension() == (current_dimension - 1)); face.vertices(verts); // We know that any k dimensional simplex that we can admit // must have all of its faces in the list of k-1 simplices // (a simplex cannot belong to a complex unless all of its // faces belong, too). That means that any possible k // simplex [x1,...,x(k+1)] must have the face [x1,...,xk] // in the list. So we see that we can get to any possible k // simplex by adding a vertex "onto the end" (that is, the // new vertex is larger than any of the existing ones) of a // k-1 simplex. Further, it is easy to see that adding onto // the end of 2 distinct k-1 simplices can never yield the // same k simplex. So if we just add onto the end of the // simplices in the previous dimension, we will see all // potential k simplices precisely once. So if verts is // [v1,...,vk, ], then we are interested in any // possible simplex [v1,...,vk,x] with x > vk. In this case // we merely need to check if (v1, x),...,(v1, k) are // edges. If so, [v1,...,vk,x] is a simplex, and its // filtration index is the max of ([v1,...,vk]).findex() // and filtration indices of the edges (v1,x),...(vk,x). int largest_v = verts[current_dimension - 1]; for (int new_last = largest_v + 1; new_last <= L; new_last++) { verts[current_dimension] = new_last; int f_new = all_edges_present(verts, edge_info, L); if (f_new >= 0) { Simplex newSimplex = Simplex.getSimplexPresorted(verts, Math.max(face.findex(), f_new)); stack.push(newSimplex); if (current_dimension < max_dimension) // if the dimension of newSimplex isn't maximal, // then we put it in the queue q = q.enqueue(newSimplex); } } } // Make sure that if we are exiting we have processed all // simplices in q. assert ((current_dimension < max_dimension) || (last_dim_start.eql(new SimplexStream.Head(q)))); current_dimension++; } return stack; } } ================================================ FILE: src/java/edu/stanford/math/plex/MappedBufferData.java ================================================ package edu.stanford.math.plex; import java.io.File; import java.io.FileOutputStream; import java.io.RandomAccessFile; import java.nio.DoubleBuffer; import java.nio.MappedByteBuffer; import java.nio.channels.FileChannel; import java.util.Random; /** * The MappedBufferData class is another very simple implementation * of NSpace. Intended for larger, but still mappable, data sets. * * @version $Id$ */ public class MappedBufferData extends PointData.NSpace { final MappedByteBuffer points_buf; final DoubleBuffer points; final int dimensions; final int start_dimension; final int stop_dimension; /** * The number of dimensions of the space. * *

* * @return the dimension of the data. */ public int dimension() { return dimensions; } /** * The first data dimension of the space. * *

* * @return the first data dimension of the space. */ public int start() { return start_dimension; } /** * The last data dimension of the space. * *

* * @return the last data dimension of the space. */ public int stop() { return stop_dimension; } /** * The number of data points. * *

* * @return the number of points */ public int count() { if (points != null) return ((points.capacity()/dimensions)-1); else return 0; } /** * Euclidean distance. * *

* * @param p1 the first point * @param p2 the second point * @return the Euclidean distance between p1 and p2. */ public double distance (int p1, int p2) { if (p1 == p2) return 0.0; else if ((p1 == 0) || (p2 == 0)) return Double.MAX_VALUE; else { int p1_base = dimensions * p1; int p2_base = dimensions * p2; double accum = 0.0; for (int i = start_dimension; i <= stop_dimension; i++) { double diff = points.get(p1_base + i) - points.get(p2_base + i); accum += diff * diff; } return Math.sqrt(accum); } } /** * Get point. No checking. * *

* * @param p the point * @param vec place to store point * @return Coordinates of p; */ public double[] get_pt (int p, double[] vec) { assert(dimensions == vec.length); for (int i = 0; i < dimensions; i++) { vec[i] = points.get((dimensions * p)+i); //assert(vec[i] == coordinate(p, i)); } return vec; } /** * Set point. No checking. Just for testing. * *

* * @param p the point * @param vec the coordinate values * @return The coordinates of p. */ public double[] set_pt (int p, double[] vec) { assert(dimensions == vec.length); for (int i = 0; i < dimensions; i++) { points.put((dimensions * p)+i, vec[i]); //assert(points.get((dimensions * p)+i) == vec[i]); } return vec; } /** * Get coordinates. Not much checking. * *

* * @param p the point * @param i the coordinate * @return The i-th coordinate of p; */ public double coordinate (int p, int i) { if ((i >= dimensions) || (i < 0)) throw new IllegalArgumentException("Coordinate index " + i + "must be in range [0, " + (dimensions-1) + "]."); return points.get((dimensions * p) + i); } /** * Set coordinates. No checking. * *

* * @param p the point * @param i the coordinate * @param v the coordinate value * @return The i-th coordinate of p; */ public double set_coordinate (int p, int i, double v) { // really shouldn't be here assert(false); if ((i >= dimensions) || (i < 0)) throw new IllegalArgumentException("Coordinate index " + i + "must be in range [0, " + (dimensions-1) + "]."); points.put((dimensions * p) + i, v); //assert(points.get((dimensions * p)+i) == v); return v; } /** * Force changes to data back to file. * *

*/ public void force () { points_buf.force(); } // Don't call this one. protected MappedBufferData() { super(); points_buf = null; points = null; dimensions = 0; start_dimension = 0; stop_dimension = 0; } // Does a file exist? protected static boolean file_exists(String filename, boolean andWriteable) { File file = new File(filename); if ((file != null) && file.exists() && file.canRead()) { if (andWriteable) { return file.canWrite(); } else return true; } else { return false; } } // Does a file exist? public static void delete(String filename) { File file = new File(filename); if ((file != null) && file.exists()) { file.delete(); } } // Make an empty file of a given size suitable for mapping. protected static void make_empty_file(String filename, int bytes) { try { FileOutputStream stream = new FileOutputStream(filename); byte[] tmp = new byte[1024 * 256]; while(bytes > 0) { int len = (bytes > tmp.length)?tmp.length:bytes; stream.write(tmp, 0, len); bytes -= len; } stream.flush(); stream.close(); } catch (java.io.FileNotFoundException fnfe) { throw new IllegalArgumentException("Cannot open or create file: " + filename); } catch (java.io.IOException ioe) { throw new IllegalArgumentException("IO exception writing empty file: " + filename); } } // Open the empty buffer file. protected static MappedByteBuffer empty_dbl_file(String filename, int len) { if (file_exists(filename, false)) throw new IllegalArgumentException("File already exists: " + filename); make_empty_file(filename, 8 * len); return map_file(filename, true); } // Map a file; protected static MappedByteBuffer map_file(String filename, boolean writable) { try { FileChannel.MapMode mode = (writable)?FileChannel.MapMode.READ_WRITE:FileChannel.MapMode.READ_ONLY; String open_mode = (writable)?"rw":"r"; FileChannel chnl = new RandomAccessFile(filename, open_mode).getChannel(); MappedByteBuffer buf = chnl.map(mode, 0, (int) chnl.size()); buf.load(); return buf; } catch (java.io.FileNotFoundException fnfe) { throw new IllegalArgumentException("Cannot find data file: " + filename); } catch (java.io.IOException ioe) { throw new IllegalArgumentException("IO exception mapping data file: " + filename); } } // Make sure that the buf and dimension arguments are compatible. protected boolean buf_is_consistent(DoubleBuffer buf, int dimension, boolean just_created) { if (dimension < 1) return false; if ((buf.capacity() % dimension) != 0) return false; if (buf.capacity() <= dimension) return false; if (!just_created && ((int)buf.get(0) != dimension)) return false; for (int i = 1; i < dimension; i++) { if (buf.get(i) != 0.0) return false; } return true; } // create mapped data file public MappedBufferData(String filename, int length, int dimension, int start_dimension, int stop_dimension) { if (file_exists(filename, false)) throw new IllegalArgumentException("Data file already exists: " + filename); points_buf = empty_dbl_file(filename, (length+1)*dimension); points = points_buf.asDoubleBuffer(); if (!buf_is_consistent(points, dimension, true)) throw new IllegalArgumentException("Data file not properly sized" + " or initialized: " + filename); if ((start_dimension < 0) || (start_dimension > stop_dimension) || (stop_dimension >= dimension)) throw new IllegalArgumentException("start/stop dimension arguments must be" + " in the range of [0," + (dimension-1) + "]."); points.put(0, (double)dimension); dimensions = dimension; this.start_dimension = start_dimension; this.stop_dimension = stop_dimension; points_buf.force(); } // map data from file, possibly writably public MappedBufferData(String filename, int start_dimension, int stop_dimension, boolean writable) { if (!file_exists(filename, writable)) { if (writable) throw new IllegalArgumentException("Data file not found or not" + " readable and writable: " + filename); else throw new IllegalArgumentException("Data file not found or not readable: " + filename); } points_buf = map_file(filename, writable); points = points_buf.asDoubleBuffer(); if (!buf_is_consistent(points, (int)points.get(0), false)) throw new IllegalArgumentException("Data file not properly sized" + " or initialized: " + filename); dimensions = (int)points.get(0); if (!buf_is_consistent(points, (int)points.get(0), false)) throw new IllegalArgumentException("Data file not properly sized" + " or initialized: " + filename); if (stop_dimension == 0) stop_dimension = dimensions-1; if ((start_dimension < 0) || (start_dimension > stop_dimension) || (stop_dimension >= dimensions)) throw new IllegalArgumentException("start/stop dimension arguments must" + " be in the range of [0," + (dimensions-1) + "]."); this.start_dimension = start_dimension; this.stop_dimension = stop_dimension; } // map data from file readonly public MappedBufferData(String filename) { this(filename, 0, 0, false); } // map data from file readonly public MappedBufferData(String filename, boolean writable) { this(filename, 0, 0, writable); } // map data from file readonly, ignoring some leading dimensions public MappedBufferData(String filename, int start_dimension) { this(filename, start_dimension, 0, false); } // Constructor for test use. public MappedBufferData(String filename, int num_pts, int dimension, double min, double max) { super(); Random rand = new Random(0L); points_buf = empty_dbl_file(filename, (num_pts+1)*dimension); points = points_buf.asDoubleBuffer(); assert(buf_is_consistent(points, dimension, true)); double len = max - min; for (int i = 1; i <= num_pts; i++) { for (int j = 0; j < dimension; j++) { points.put((i * dimension) + j, (len * rand.nextDouble()) + min); } } points.put(0, (double)dimension); points_buf.force(); dimensions = dimension; start_dimension = 0; stop_dimension = dimensions-1; } // Constructor for test use. public MappedBufferData(String filename, int num_pts, int dimension, int partition_count) { super(); assert(partition_count > 1); Random rand = new Random(0L); points_buf = empty_dbl_file(filename, (num_pts+1)*dimension); points = points_buf.asDoubleBuffer(); assert(buf_is_consistent(points, dimension, true)); for (int i = 1; i <= num_pts; i++) { points.put((i * dimension), (double)(1+rand.nextInt(partition_count-1))); for (int j = 1; j < dimension; j++) { points.put((i * dimension) + j, rand.nextDouble()); } } points.put(0, (double)dimension); points_buf.force(); dimensions = dimension; start_dimension = 1; stop_dimension = dimensions-1; } } ================================================ FILE: src/java/edu/stanford/math/plex/Packed2Simplex.java ================================================ package edu.stanford.math.plex; /** *

The Packed2Simplex class implements the abstract class * Simplex for Simplices that are points or edges by storing * the vertices as 2 packed 32-bit values in a single long int. This limits * us to H0 calculations with this representation, but this is the most * important case for Mapper use, and increased vertex sizes, and * simplicity and speed of this form make it worthwhile. * * @version $Id$ */ public class Packed2Simplex extends Simplex { public final long bits; // This is the largest vertex index that we can use for this kind of // Simplex. protected static int VERTEX_BIT_SZ = 32; protected static int MAX_2_INDEX = Integer.MAX_VALUE; protected static long DIM_0_MASK = ~((long) MAX_2_INDEX); static boolean checkConstants() { assert(MAX_2_INDEX == 0x7fffffff); assert(DIM_0_MASK == 0xffffffff80000000L); return true; } // Extract smallest vertex. protected int v1() { return (int) (bits & MAX_2_INDEX); } // Extract second vertex. protected int v2() { return (int) ((bits >>> VERTEX_BIT_SZ) & MAX_2_INDEX); } // We only use the constructors for Packed2Simplex internally. This one // is never used. protected Packed2Simplex() { bits = 0; } // We only use the constructors for Packed2Simplex internally. protected Packed2Simplex(long bits) { this.bits = bits; } protected static boolean check_2_vertices(int[] v) { if (v.length == 0) return true; if ((v.length == 1) && (v[0] > 0)) return true; else if ((v.length == 2) && (v[0] > 0) && (v[1] > v[0])) return true; else return false; } protected static void assert_2_vertices(int[] v) { if (!check_2_vertices(v)) { throw new IllegalArgumentException ("Packed2Simplex instances must have between 0 and 2" + "distinct positive integer vertices."); } } // In the explicit constructors, the indices must all be non-zero and // be in increasing order. protected Packed2Simplex(int v1) { assert(v1 > 0); bits = v1; } Packed2Simplex(int v1, int v2) { assert((v2 > v1) && (v1 > 0)); bits = ((((long)v2) << VERTEX_BIT_SZ) | ((long)v1)); } /** * Overrides Object hashcode. * *

* @return CRC hash of the vertex set. * */ public int hashCode() { return CRC.hash32(bits, 0); } /** * Overrides Object equals. * *

* @param obj object to compare. * @return true or false, depending on whether or not the Simplex is = * to obj. * */ public boolean equals(Object obj) { if (!(obj instanceof Packed2Simplex)) return false; Packed2Simplex s = (Packed2Simplex) obj; return (bits == s.bits); } // Internal comparison routine. protected int compareTo(Packed2Simplex s) { if (bits > s.bits) return 1; else if (bits < s.bits) return -1; else return 0; } /** * Implements Comparable interface. * *

* @param s Simplex to compare. * @return negative, 0, or positive, if this <, =, resp. > than s. * */ public int compareTo(Simplex s) { if (!(s instanceof Packed2Simplex)) return (this.dimension() - s.dimension()); else return this.compareTo((Packed2Simplex)s); } /** * Simplex Less Than. Used internally in Persistence and Chain * code. Not the same as compareTo. * *

* @param s Simplex to compare. * @return true if this < s, else false. * */ boolean slt(Simplex s) { if (this.findex() != s.findex()) return (this.findex() < s.findex()); else if (s instanceof Packed2Simplex) { Packed2Simplex ps = (Packed2Simplex) s; return (bits < ps.bits); } else return (this.dimension() < s.dimension()); } /** * Simplex EQuals. Used internally in Persistence and Chain code. * *

* @param s Simplex to compare. * @return true is equal, else false. * */ boolean seq(Simplex s) { if (!(s instanceof Packed2Simplex)) return false; Packed2Simplex ps = (Packed2Simplex) s; return (bits == ps.bits); } /** * Make a "blank" copy of the Simplex -- equivalent to getSimplex(this.vertices()). *

* * * @return the copied instance. * */ public Simplex copy() { return new Packed2Simplex(bits); } /** * Returns the dimension of self. *

* * * @return int, the dimension of the simplex. * * @see edu.stanford.math.plex.Simplex#dimension */ public int dimension() { if (bits == 0) return -1; else if ((bits & DIM_0_MASK) == 0) return 0; else return 1; } /** * Returns the indices of self as an array. *

* * * @return an int[] of vertices, or null if no vertices. * * @see edu.stanford.math.plex.Simplex#vertices */ public int[] vertices() { int dim = dimension(); int verts[] = new int[dimension()+1]; if (dim == -1) return verts; if (dim == 0) { verts[0] = this.v1(); return verts; } verts[0] = this.v1(); verts[1] = this.v2(); return verts; } /** * Returns the indices of self in the given array argument. *

* * * @param verts the int[] into which the vertices, if any, are written. * @return the given array argument, or null if no vertices. * * @see edu.stanford.math.plex.Simplex#vertices */ public int[] vertices(int[] verts) { if (bits==0) return verts; if ((bits & DIM_0_MASK) == 0) { verts[0] = this.v1(); return verts; } verts[0] = this.v1(); verts[1] = this.v2(); return verts; } // The obvious thing. public static Simplex makeSimplex(int[] vertices) { assert(vertices.length <= 2); Simplex.vertex_sort(vertices); assert_2_vertices(vertices); if (vertices.length == 0) return new Packed2Simplex(); else if (vertices.length == 1) return new Packed2Simplex(vertices[0]); else return new Packed2Simplex(vertices[0], vertices[1]); } // Another obvious thing. public static Simplex makeSimplexPresorted(int[] vertices) { assert(vertices.length <= 2); assert(check_2_vertices(vertices)); if (vertices.length == 0) return new Packed2Simplex(); else if (vertices.length == 1) return new Packed2Simplex(vertices[0]); else return new Packed2Simplex(vertices[0], vertices[1]); } // Still another obvious thing. public static Simplex makeEdge(int v1, int v2) { if ((v1 < 1) || (v2 < 1) || (v1 == v2)) throw new IllegalArgumentException ("Edge vertices must be distinct positive integers."); if (v2 > v1) return new Packed2Simplex(v1, v2); else return new Packed2Simplex(v2, v1); } // The most obvious thing. public static Simplex makePoint(int v) { if (v < 1) throw new IllegalArgumentException ("Simplex vertices must be positive integers."); return new Packed2Simplex(v); } /** * Returns the boundary of self. * *

It is simple enough to do explicitly, and it needs to be fast. * * * @return [face0, face1, ...] * * @see edu.stanford.math.plex.Simplex#vertices */ public Simplex[] boundaryArray() { int dimension = dimension(); if (dimension <= 0) return null; else { Simplex[] return_value = new Simplex[2]; return_value[0] = new Packed2Simplex(this.v2()); return_value[1] = new Packed2Simplex(this.v1()); return return_value; } } } ================================================ FILE: src/java/edu/stanford/math/plex/Packed4Simplex.java ================================================ package edu.stanford.math.plex; /** *

The Packed4Simplex class implements the abstract class * Simplex for Simplices of dimension at most 3 by storing the * vertices as 4 packed positive integer values in a pair of long * ints. This limits us to H2 calculations with this representation, but * this is the next most important case, and having a more compact * representation for this case makes it worthwhile. * * @version $Id$ */ public class Packed4Simplex extends Simplex { public final long bits_lo; public final long bits_hi; // This is the largest vertex index that we can use for this kind of // Simplex. protected static int VERTEX_BIT_SZ = 32; protected static int MAX_4_INDEX = Integer.MAX_VALUE; protected static long DIM_2_MASK = ~((long) MAX_4_INDEX); static boolean checkConstants() { assert(MAX_4_INDEX == 0x7fffffff); assert(DIM_2_MASK == 0xffffffff80000000L); return true; } // Extract smallest vertex. protected int v1() { return (int) (bits_lo & MAX_4_INDEX); } // Extract second vertex. protected int v2() { return (int) ((bits_lo >>> VERTEX_BIT_SZ) & MAX_4_INDEX); } // Extract third vertex. protected int v3() { return (int) (bits_hi & MAX_4_INDEX); } // Extract largest vertex. protected int v4() { return (int) ((bits_hi >>> VERTEX_BIT_SZ) & MAX_4_INDEX); } // We only use the constructors for Packed4Simplex internally. This one // is never used. protected Packed4Simplex() { bits_lo = 0; bits_hi = 0; } // We only use the constructors for Packed4Simplex internally. protected Packed4Simplex(long bits_lo, long bits_hi) { this.bits_lo = bits_lo; this.bits_hi = bits_hi; } protected static boolean check_4_vertices(int[] v) { if (v.length <= 2) return false; else if ((v.length == 3) && (v[0] > 0) && (v[1] > v[0]) && (v[2] > v[1])) return true; else if ((v.length == 4) && (v[0] > 0) && (v[1] > v[0]) && (v[2] > v[1]) && (v[3] > v[2])) return true; else return false; } protected static void assert_4_vertices(int[] v) { if (!check_4_vertices(v)) { throw new IllegalArgumentException ("Packed4Simplex instances must have either 3 or 4 " + "distinct positive integer vertices."); } } // In the explicit constructors, the indices must all be non-zero and // be in increasing order. protected Packed4Simplex(int v1, int v2, int v3) { assert((v3 > v2) && (v2 > v1) && (v1 > 0)); bits_lo = ((((long)v2) << VERTEX_BIT_SZ) | ((long)v1)); bits_hi = (long)v3; } // Boundary method in Packed8Simplex needs this constructor. Packed4Simplex(int v1, int v2, int v3, int v4) { assert((v4 > v3) && (v3 > v2) && (v2 > v1) && (v1 > 0)); bits_lo = ((((long)v2) << VERTEX_BIT_SZ) | ((long)v1)); bits_hi = ((((long)v4) << VERTEX_BIT_SZ) | ((long)v3)); } /** * Overrides Object hashcode. * *

* @return CRC hash of the vertex set. * */ public int hashCode() { return CRC.hash32(bits_hi, CRC.hash32(bits_lo, 0)); } /** * Overrides Object equals. * *

* @param obj object to compare. * @return true or false, depending on whether or not the Simplex is = * to obj. * */ public boolean equals(Object obj) { if (!(obj instanceof Packed4Simplex)) return false; Packed4Simplex s = (Packed4Simplex) obj; return ((bits_lo == s.bits_lo) && (bits_hi == s.bits_hi)); } // Internal comparison routine. protected int compareTo(Packed4Simplex s) { if (bits_hi > s.bits_hi) return 1; else if (bits_hi < s.bits_hi) return -1; else if (bits_lo > s.bits_lo) return 1; else if (bits_lo < s.bits_lo) return -1; else return 0; } /** * Implements Comparable interface. * *

* @param s Simplex to compare. * @return negative, 0, or positive, if this <, =, resp. > than s. * */ public int compareTo(Simplex s) { if (!(s instanceof Packed4Simplex)) return (this.dimension() - s.dimension()); else return this.compareTo((Packed4Simplex)s); } /** * Simplex Less Than. Used internally in Persistence and Chain * code. Not the same as compareTo. * *

* @param s Simplex to compare. * @return true if this < s, else false. * */ boolean slt(Simplex s) { if (this.findex() != s.findex()) return (this.findex() < s.findex()); else if (s instanceof Packed4Simplex) { Packed4Simplex ps = (Packed4Simplex) s; if (bits_hi < ps.bits_hi) return true; else if (bits_hi == ps.bits_hi) return (bits_lo < ps.bits_lo); else return false; } else return (this.dimension() < s.dimension()); } /** * Simplex EQuals. Used internally in Persistence and Chain code. * *

* @param s Simplex to compare. * @return true is equal, else false. * */ boolean seq(Simplex s) { if (!(s instanceof Packed4Simplex)) return false; Packed4Simplex ps = (Packed4Simplex) s; return ((bits_lo == ps.bits_lo) && (bits_hi == ps.bits_hi)); } /** * Make a "blank" copy of the Simplex -- equivalent to getSimplex(this.vertices()). *

* * * @return the copied instance. * */ public Simplex copy() { return new Packed4Simplex(bits_lo, bits_hi); } /** * Returns the dimension of self. *

* * * @return int, the dimension of the simplex. * * @see edu.stanford.math.plex.Simplex#dimension */ public int dimension() { if ((bits_hi & DIM_2_MASK) == 0) return 2; else return 3; } /** * Returns the indices of self as an array. *

* * * @return an int[] of vertices, or null if no vertices. * * @see edu.stanford.math.plex.Simplex#vertices */ public int[] vertices() { int dim = dimension(); int verts[] = new int[dimension()+1]; if (dim == 2) { verts[0] = this.v1(); verts[1] = this.v2(); verts[2] = this.v3(); return verts; } verts[0] = this.v1(); verts[1] = this.v2(); verts[2] = this.v3(); verts[3] = this.v4(); return verts; } /** * Returns the indices of self in the given array argument. *

* * * @param verts the int[] into which the vertices, if any, are written. * @return the given array argument, or null if no vertices. * * @see edu.stanford.math.plex.Simplex#vertices */ public int[] vertices(int[] verts) { int dim = dimension(); if (dim == 2) { verts[0] = this.v1(); verts[1] = this.v2(); verts[2] = this.v3(); return verts; } verts[0] = this.v1(); verts[1] = this.v2(); verts[2] = this.v3(); verts[3] = this.v4(); return verts; } // The obvious thing. public static Simplex makeSimplex(int[] vertices) { Simplex.vertex_sort(vertices); assert_4_vertices(vertices); if (vertices.length == 3) return new Packed4Simplex(vertices[0], vertices[1], vertices[2]); else return new Packed4Simplex(vertices[0], vertices[1], vertices[2], vertices[3]); } // Another obvious thing. public static Simplex makeSimplexPresorted(int[] vertices) { assert(check_4_vertices(vertices)); if (vertices.length == 3) return new Packed4Simplex(vertices[0], vertices[1], vertices[2]); else return new Packed4Simplex(vertices[0], vertices[1], vertices[2], vertices[3]); } /** * Returns the boundary of self. * *

It is simple enough to do explicitly, and it needs to be fast. * * * @return [face0, face1, ...] * * @see edu.stanford.math.plex.Simplex#vertices */ public Simplex[] boundaryArray() { int dimension = dimension(); Simplex[] return_value; if (dimension == 2) { return_value = new Simplex[3]; return_value[0] = new Packed2Simplex(this.v2(), this.v3()); return_value[1] = new Packed2Simplex(this.v1(), this.v3()); return_value[2] = new Packed2Simplex(this.v1(), this.v2()); } else { return_value = new Simplex[4]; return_value[0] = new Packed4Simplex(this.v2(), this.v3(), this.v4()); return_value[1] = new Packed4Simplex(this.v1(), this.v3(), this.v4()); return_value[2] = new Packed4Simplex(this.v1(), this.v2(), this.v4()); return_value[3] = new Packed4Simplex(this.v1(), this.v2(), this.v3()); } return return_value; } } ================================================ FILE: src/java/edu/stanford/math/plex/Packed6Simplex.java ================================================ package edu.stanford.math.plex; /** *

The Packed6Simplex class implements the abstract class * Simplex for Simplices of dimension 4-5 by storing the * vertices as 6 packed positive integer values in three long * integers. This limits us to H4 calculations with this representation, * but it is unlikely that we can go to higher dimensions without an * alteration of the basic algorithm. * * @version $Id$ */ public class Packed6Simplex extends Simplex { public final long bits_lo; public final long bits_mid; public final long bits_hi; // This is the largest vertex index that we can use for this kind of // Simplex. protected static int VERTEX_BIT_SZ = 32; protected static int MAX_6_INDEX = Integer.MAX_VALUE; protected static long DIM_4_MASK = ~((long) MAX_6_INDEX); static boolean checkConstants() { assert(MAX_6_INDEX == 0x7fffffff); assert(DIM_4_MASK == 0xffffffff80000000L); return true; } protected static boolean check_6_vertices(int[] v) { if (v.length <= 4) return false; else if ((v.length == 5) && (v[0] > 0) && (v[1] > v[0]) && (v[2] > v[1]) && (v[3] > v[2]) && (v[4] > v[3])) return true; else if ((v.length == 6) && (v[0] > 0) && (v[1] > v[0]) && (v[2] > v[1]) && (v[3] > v[2]) && (v[4] > v[3]) && (v[5] > v[4])) return true; else return false; } protected static void assert_6_vertices(int[] v) { if (!check_6_vertices(v)) throw new IllegalArgumentException ("Packed6Simplex instances must have either 5 or 6 " + "distinct positive integer vertices."); } // Convert an array of vertices into the "bits_lo" of a // Packed6Simplex. Vertices MUST BE SORTED. protected static long p6_v_to_l_lo(int[] vertices) { return (((long)vertices[1]) << VERTEX_BIT_SZ) | ((long)vertices[0]); } // Convert an array of vertices into the "bits_mid" of a // Packed6Simplex. Vertices MUST BE SORTED. protected static long p6_v_to_l_mid(int[] vertices) { return (((long)vertices[3]) << VERTEX_BIT_SZ) | ((long)vertices[2]); } // Convert an array of vertices into the "bits_hi" of a // Packed6Simplex. Vertices MUST BE SORTED. protected static long p6_v_to_l_hi(int[] vertices) { if (vertices.length == 5) return (long) vertices[4]; else return (((long)vertices[5]) << VERTEX_BIT_SZ) | ((long)vertices[4]); } // Extract largest vertex. protected int v6() { return (int) ((bits_hi >>> VERTEX_BIT_SZ) & MAX_6_INDEX); } // Extract 5th vertex (second hi bits vertex). protected int v5() { return (int) (bits_hi & MAX_6_INDEX); } // Extract 4th vertex. protected int v4() { return (int) ((bits_mid >>> VERTEX_BIT_SZ) & MAX_6_INDEX); } // Extract 3rd vertex. protected int v3() { return (int) (bits_mid & MAX_6_INDEX); } // Extract 2nd vertex. protected int v2() { return (int) ((bits_lo >>> VERTEX_BIT_SZ) & MAX_6_INDEX); } // Extract smallest vertex. protected int v1() { return (int) (bits_lo & MAX_6_INDEX); } // We only use the constructors for Packed6Simplex internally. This one // is never used externally because none of bits_lo, bits_mid, or bits_hi // is ever 0. protected Packed6Simplex() { bits_lo = 0; bits_mid = 0; bits_hi = 0; } // We only use the constructors for Packed6Simplex internally. protected Packed6Simplex(long bits_lo_val, long bits_mid_val, long bits_hi_val) { bits_lo = bits_lo_val; bits_mid = bits_mid_val; bits_hi = bits_hi_val; } // In the explicit constructors, the indices must all be non-zero and // be in increasing order. Packed6Simplex(int v1, int v2, int v3, int v4, int v5) { assert((v5 > v4) && (v4 > v3) && (v3 > v2) && (v2 > v1) && (v1 > 0)); bits_hi = (long) v5; bits_mid = (((long) v4) << VERTEX_BIT_SZ) | ((long) v3); bits_lo = (((long) v2) << VERTEX_BIT_SZ) | ((long) v1); } Packed6Simplex(int v1, int v2, int v3, int v4, int v5, int v6) { assert((v6 > v5) && (v5 > v4) && (v4 > v3) && (v3 > v2) && (v2 > v1) && (v1 > 0)); bits_hi = (((long) v6) << VERTEX_BIT_SZ) | ((long) v5); bits_mid = (((long) v4) << VERTEX_BIT_SZ) | ((long) v3); bits_lo = (((long) v2) << VERTEX_BIT_SZ) | ((long) v1); } /** * Overrides Object hashcode. * *

* @return CRC hash of the vertex set. * */ public int hashCode() { return CRC.hash32(bits_hi, CRC.hash32(bits_mid, CRC.hash32(bits_lo, 0))); } /** * Overrides Object equals. * *

* @param obj object to compare. * @return true or false, depending on whether or not the Simplex is = * to obj. * */ public boolean equals(Object obj) { if (!(obj instanceof Packed6Simplex)) return false; Packed6Simplex s = (Packed6Simplex) obj; return ((bits_lo == s.bits_lo) && (bits_mid == s.bits_mid) && (bits_hi == s.bits_hi)); } // Internal comparison routine. protected int compareTo(Packed6Simplex s) { if (bits_hi > s.bits_hi) return 1; else if (bits_hi < s.bits_hi) return -1; else if (bits_mid > s.bits_mid) return 1; else if (bits_mid < s.bits_mid) return -1; else if (bits_lo > s.bits_lo) return 1; else if (bits_lo < s.bits_lo) return -1; else return 0; } /** * Implements Comparable interface. * *

* @param s Simplex to compare. * @return negative, 0, or positive, if this <, =, resp. > than s. * */ public int compareTo(Simplex s) { if (!(s instanceof Packed6Simplex)) return (this.dimension() - s.dimension()); else return this.compareTo((Packed6Simplex)s); } /** * Simplex Less Than. Used internally in Persistence and Chain * code. Not the same as compareTo. * *

* @param s Simplex to compare. * @return true if this < s, else false. * */ boolean slt(Simplex s) { if (this.findex() != s.findex()) return (this.findex() < s.findex()); else if (s instanceof Packed6Simplex) { Packed6Simplex ps = (Packed6Simplex) s; if (bits_hi < ps.bits_hi) return true; else if (bits_hi == ps.bits_hi) { if (bits_mid < ps.bits_mid) return true; else if (bits_mid == ps.bits_mid) return (bits_lo < ps.bits_lo); } return false; } else return (this.dimension() < s.dimension()); } /** * Simplex EQuals. Used internally in Persistence and Chain code. * *

* @param s Simplex to compare. * @return true is equal, else false. * */ boolean seq(Simplex s) { if (!(s instanceof Packed6Simplex)) return false; Packed6Simplex ps = (Packed6Simplex) s; return ((bits_lo == ps.bits_lo) && (bits_mid == ps.bits_mid) && (bits_hi == ps.bits_hi)); } /** * Make a "blank" copy of the Simplex -- equivalent to getSimplex(this.vertices()). *

* * * @return the copied instance. * */ public Simplex copy() { return new Packed6Simplex(bits_lo, bits_mid, bits_hi); } /** * Returns the dimension of self. *

* * * @return int, the dimension of the simplex. * * @see edu.stanford.math.plex.Simplex#dimension */ public int dimension() { if ((bits_hi & DIM_4_MASK) == 0) return 4; else return 5; } /** * Returns the indices of self as an array. *

* * * @return an int[] of vertices, or null if no vertices. * * @see edu.stanford.math.plex.Simplex#vertices */ public int[] vertices() { int dimension = dimension(); int verts[] = new int[dimension+1]; verts[0] = this.v1(); verts[1] = this.v2(); verts[2] = this.v3(); verts[3] = this.v4(); if (dimension == 4) { verts[4] = this.v5(); return verts; } verts[4] = this.v5(); verts[5] = this.v6(); return verts; } /** * Returns the indices of self in the given array argument. *

* * * @param verts the int[] into which the vertices, if any, are written. * @return the given array argument, or null if no vertices. * * @see edu.stanford.math.plex.Simplex#vertices */ public int[] vertices(int[] verts) { int dimension = dimension(); verts[0] = this.v1(); verts[1] = this.v2(); verts[2] = this.v3(); verts[3] = this.v4(); if (dimension == 4) { verts[4] = this.v5(); return verts; } verts[4] = this.v5(); verts[5] = this.v6(); return verts; } // The obvious thing. public static Simplex makeSimplex(int[] vertices) { Simplex.vertex_sort(vertices); assert_6_vertices(vertices); return new Packed6Simplex(p6_v_to_l_lo(vertices), p6_v_to_l_mid(vertices), p6_v_to_l_hi(vertices)); } // The other obvious thing. public static Simplex makeSimplexPresorted(int[] vertices) { assert_6_vertices(vertices); return new Packed6Simplex(p6_v_to_l_lo(vertices), p6_v_to_l_mid(vertices), p6_v_to_l_hi(vertices)); } /** * Returns the boundary of self. * *

It is simple enough to do explicitly, and it needs to be fast. * * * @return [face0, face1, ...] * * @see edu.stanford.math.plex.Simplex#vertices */ public Simplex[] boundaryArray() { int dimension = dimension(); Simplex[] return_value = new Simplex[dimension+1]; if (dimension == 4) { return_value[0] = new Packed4Simplex(this.v2(), this.v3(), this.v4(), this.v5()); return_value[1] = new Packed4Simplex(this.v1(), this.v3(), this.v4(), this.v5()); return_value[2] = new Packed4Simplex(this.v1(), this.v2(), this.v4(), this.v5()); return_value[3] = new Packed4Simplex(this.v1(), this.v2(), this.v3(), this.v5()); return_value[4] = new Packed4Simplex(this.v1(), this.v2(), this.v3(), this.v4()); } else { return_value[0] = new Packed6Simplex(this.v2(), this.v3(), this.v4(), this.v5(), this.v6()); return_value[1] = new Packed6Simplex(this.v1(), this.v3(), this.v4(), this.v5(), this.v6()); return_value[2] = new Packed6Simplex(this.v1(), this.v2(), this.v4(), this.v5(), this.v6()); return_value[3] = new Packed6Simplex(this.v1(), this.v2(), this.v3(), this.v5(), this.v6()); return_value[4] = new Packed6Simplex(this.v1(), this.v2(), this.v3(), this.v4(), this.v6()); return_value[5] = new Packed6Simplex(this.v1(), this.v2(), this.v3(), this.v4(), this.v5()); } return return_value; } } ================================================ FILE: src/java/edu/stanford/math/plex/Packed8Simplex.java ================================================ package edu.stanford.math.plex; /** *

The Packed8Simplex class implements the abstract class * Simplex for Simplices of dimension 6-7 by storing the * vertices as 8 packed positive integer values in three long * integers. This limits us to H6 calculations with this representation, * but it seems very unlikely that we can go even this far an alteration of * the basic algorithm. * * @version $Id$ */ public class Packed8Simplex extends Simplex { public final long bits_lo; public final long bits_lo_mid; public final long bits_hi_mid; public final long bits_hi; // This is the largest vertex index that we can use for this kind of // Simplex. protected static int VERTEX_BIT_SZ = 32; protected static int MAX_8_INDEX = Integer.MAX_VALUE; protected static long DIM_6_MASK = ~((long) MAX_8_INDEX); static boolean checkConstants() { assert(MAX_8_INDEX == 0x7fffffff); assert(DIM_6_MASK == 0xffffffff80000000L); return true; } protected static boolean check_8_vertices(int[] v) { if (v.length <= 6) return false; else if ((v.length == 7) && (v[0] > 0) && (v[1] > v[0]) && (v[2] > v[1]) && (v[3] > v[2]) && (v[4] > v[3]) && (v[5] > v[4]) && (v[6] > v[5])) return true; else if ((v.length == 8) && (v[0] > 0) && (v[1] > v[0]) && (v[2] > v[1]) && (v[3] > v[2]) && (v[4] > v[3]) && (v[5] > v[4]) && (v[6] > v[5]) && (v[7] > v[6])) return true; else return false; } protected static void assert_8_vertices(int[] v) { if (!check_8_vertices(v)) throw new IllegalArgumentException ("Packed8Simplex instances must have either 7 or 8 " + "distinct positive integer vertices."); } // Convert an array of vertices into the "bits_lo" of a // Packed8Simplex. Vertices MUST BE SORTED. protected static long p8_v_to_l_lo(int[] vertices) { return (((long)vertices[1]) << VERTEX_BIT_SZ) | ((long)vertices[0]); } // Convert an array of vertices into the "bits_lo_mid" of a // Packed8Simplex. Vertices MUST BE SORTED. protected static long p8_v_to_l_lo_mid(int[] vertices) { return (((long)vertices[3]) << VERTEX_BIT_SZ) | ((long)vertices[2]); } // Convert an array of vertices into the "bits_hi_mid" of a // Packed8Simplex. Vertices MUST BE SORTED. protected static long p8_v_to_l_hi_mid(int[] vertices) { return (((long)vertices[5]) << VERTEX_BIT_SZ) | ((long)vertices[4]); } // Convert an array of vertices into the "bits_hi" of a // Packed8Simplex. Vertices MUST BE SORTED. protected static long p8_v_to_l_hi(int[] vertices) { if (vertices.length == 7) return (long) vertices[6]; else return (((long)vertices[7]) << VERTEX_BIT_SZ) | ((long)vertices[6]); } // Extract largest vertex. protected int v8() { return (int) ((bits_hi >>> VERTEX_BIT_SZ) & MAX_8_INDEX); } // Extract 5th vertex (second hi bits vertex). protected int v7() { return (int) (bits_hi & MAX_8_INDEX); } // Extract largest vertex. protected int v6() { return (int) ((bits_hi_mid >>> VERTEX_BIT_SZ) & MAX_8_INDEX); } // Extract 5th vertex (second hi bits vertex). protected int v5() { return (int) (bits_hi_mid & MAX_8_INDEX); } // Extract 4th vertex. protected int v4() { return (int) ((bits_lo_mid >>> VERTEX_BIT_SZ) & MAX_8_INDEX); } // Extract 3rd vertex. protected int v3() { return (int) (bits_lo_mid & MAX_8_INDEX); } // Extract 2nd vertex. protected int v2() { return (int) ((bits_lo >>> VERTEX_BIT_SZ) & MAX_8_INDEX); } // Extract smallest vertex. protected int v1() { return (int) (bits_lo & MAX_8_INDEX); } // We only use the constructors for Packed8Simplex internally. This one // is never used externally because none of bits_lo, bits_mid, or bits_hi // is ever 0. protected Packed8Simplex() { bits_lo = 0; bits_lo_mid = 0; bits_hi_mid = 0; bits_hi = 0; } // We only use the constructors for Packed8Simplex internally. protected Packed8Simplex(long bits_lo_val, long bits_lo_mid_val, long bits_hi_mid_val, long bits_hi_val) { bits_lo = bits_lo_val; bits_lo_mid = bits_lo_mid_val; bits_hi_mid = bits_hi_mid_val; bits_hi = bits_hi_val; } // In the explicit constructors, the indices must all be non-zero and // be in increasing order. protected Packed8Simplex(int v1, int v2, int v3, int v4, int v5, int v6, int v7) { assert((v7 > v6) && (v6 > v5) && (v5 > v4) && (v4 > v3) && (v3 > v2) && (v2 > v1) && (v1 > 0)); bits_hi = (long) v7; bits_hi_mid = (((long) v6) << VERTEX_BIT_SZ) | ((long) v5); bits_lo_mid = (((long) v4) << VERTEX_BIT_SZ) | ((long) v3); bits_lo = (((long) v2) << VERTEX_BIT_SZ) | ((long) v1); } protected Packed8Simplex(int v1, int v2, int v3, int v4, int v5, int v6, int v7, int v8) { assert((v8 > v7) && (v7 > v6) && (v6 > v5) && (v5 > v4) && (v4 > v3) && (v3 > v2) && (v2 > v1) && (v1 > 0)); bits_hi = (((long) v8) << VERTEX_BIT_SZ) | ((long) v7); bits_hi_mid = (((long) v6) << VERTEX_BIT_SZ) | ((long) v5); bits_lo_mid = (((long) v4) << VERTEX_BIT_SZ) | ((long) v3); bits_lo = (((long) v2) << VERTEX_BIT_SZ) | ((long) v1); } /** * Overrides Object hashcode. * *

* @return CRC hash of the vertex set. * */ public int hashCode() { return CRC.hash32(bits_hi, CRC.hash32(bits_hi_mid, CRC.hash32(bits_lo_mid, CRC.hash32(bits_lo, 0)))); } /** * Overrides Object equals. * *

* @param obj object to compare. * @return true or false, depending on whether or not the Simplex is = * to obj. * */ public boolean equals(Object obj) { if (!(obj instanceof Packed8Simplex)) return false; Packed8Simplex s = (Packed8Simplex) obj; return ((bits_lo == s.bits_lo) && (bits_lo_mid == s.bits_lo_mid) && (bits_hi_mid == s.bits_hi_mid) && (bits_hi == s.bits_hi)); } // Internal comparison routine. protected int compareTo(Packed8Simplex s) { if (bits_hi > s.bits_hi) return 1; else if (bits_hi < s.bits_hi) return -1; else if (bits_hi_mid > s.bits_hi_mid) return 1; else if (bits_hi_mid < s.bits_hi_mid) return -1; else if (bits_lo_mid > s.bits_lo_mid) return 1; else if (bits_lo_mid < s.bits_lo_mid) return -1; else if (bits_lo > s.bits_lo) return 1; else if (bits_lo < s.bits_lo) return -1; else return 0; } /** * Implements Comparable interface. * *

* @param s Simplex to compare. * @return negative, 0, or positive, if this <, =, resp. > than s. * */ public int compareTo(Simplex s) { // The Packed8Simplex instances are of larger dimension than any // other kind of Simplex, so if s is a Simplex but not a // Packed8Simplex, then this > s. if (!(s instanceof Packed8Simplex)) return 1; else return this.compareTo((Packed8Simplex)s); } /** * Simplex Less Than. Used internally in Persistence and Chain * code. Not the same as compareTo. * *

* @param s Simplex to compare. * @return true if this < s, else false. * */ boolean slt(Simplex s) { if (this.findex() != s.findex()) return (this.findex() < s.findex()); else if (s instanceof Packed8Simplex) { Packed8Simplex ps = (Packed8Simplex) s; if (bits_hi < ps.bits_hi) return true; else if (bits_hi == ps.bits_hi) { if (bits_hi_mid < ps.bits_hi_mid) return true; else if (bits_hi_mid == ps.bits_hi_mid) { if (bits_lo_mid < ps.bits_lo_mid) return true; else if (bits_lo_mid == ps.bits_lo_mid) return (bits_lo < ps.bits_lo); else return false; } else return false; } else return false; } else return (this.dimension() < s.dimension()); } /** * Simplex EQuals. Used internally in Persistence and Chain code. * *

* @param s Simplex to compare. * @return true is equal, else false. * */ boolean seq(Simplex s) { if (!(s instanceof Packed8Simplex)) return false; Packed8Simplex ps = (Packed8Simplex) s; return ((bits_lo == ps.bits_lo) && (bits_lo_mid == ps.bits_lo_mid) && (bits_hi_mid == ps.bits_hi_mid) && (bits_hi == ps.bits_hi)); } /** * Make a "blank" copy of the Simplex -- equivalent to getSimplex(this.vertices()). *

* * * @return the copied instance. * */ public Simplex copy() { return new Packed8Simplex(bits_lo, bits_lo_mid, bits_hi_mid, bits_hi); } /** * Returns the dimension of self. *

* * * @return int, the dimension of the simplex. * * @see edu.stanford.math.plex.Simplex#dimension */ public int dimension() { if ((bits_hi & DIM_6_MASK) == 0) return 6; else return 7; } /** * Returns the indices of self as an array. *

* * * @return an int[] of vertices, or null if no vertices. * * @see edu.stanford.math.plex.Simplex#vertices */ public int[] vertices() { int dimension = dimension(); int verts[] = new int[dimension+1]; verts[0] = this.v1(); verts[1] = this.v2(); verts[2] = this.v3(); verts[3] = this.v4(); verts[4] = this.v5(); verts[5] = this.v6(); if (dimension == 6) { verts[6] = this.v7(); return verts; } verts[6] = this.v7(); verts[7] = this.v8(); return verts; } /** * Returns the indices of self in the given array argument. *

* * * @param verts the int[] into which the vertices, if any, are written. * @return the given array argument, or null if no vertices. * * @see edu.stanford.math.plex.Simplex#vertices */ public int[] vertices(int[] verts) { int dimension = dimension(); verts[0] = this.v1(); verts[1] = this.v2(); verts[2] = this.v3(); verts[3] = this.v4(); verts[4] = this.v5(); verts[5] = this.v6(); if (dimension == 6) { verts[6] = this.v7(); return verts; } verts[6] = this.v7(); verts[7] = this.v8(); return verts; } // The obvious thing. public static Simplex makeSimplex(int[] vertices) { Simplex.vertex_sort(vertices); assert_8_vertices(vertices); return new Packed8Simplex(p8_v_to_l_lo(vertices), p8_v_to_l_lo_mid(vertices), p8_v_to_l_hi_mid(vertices), p8_v_to_l_hi(vertices)); } // The other obvious thing. public static Simplex makeSimplexPresorted(int[] vertices) { assert_8_vertices(vertices); return new Packed8Simplex(p8_v_to_l_lo(vertices), p8_v_to_l_lo_mid(vertices), p8_v_to_l_hi_mid(vertices), p8_v_to_l_hi(vertices)); } /** * Returns the boundary of self. * *

It is simple enough to do explicitly, and it needs to be fast. * * * @return [face0, face1, ...] * * @see edu.stanford.math.plex.Simplex#vertices */ public Simplex[] boundaryArray() { int dimension = dimension(); Simplex[] return_value = new Simplex[dimension+1]; if (dimension == 6) { return_value[0] = new Packed6Simplex(this.v2(), this.v3(), this.v4(), this.v5(), this.v6(), this.v7()); return_value[1] = new Packed6Simplex(this.v1(), this.v3(), this.v4(), this.v5(), this.v6(), this.v7()); return_value[2] = new Packed6Simplex(this.v1(), this.v2(), this.v4(), this.v5(), this.v6(), this.v7()); return_value[3] = new Packed6Simplex(this.v1(), this.v2(), this.v3(), this.v5(), this.v6(), this.v7()); return_value[4] = new Packed6Simplex(this.v1(), this.v2(), this.v3(), this.v4(), this.v6(), this.v7()); return_value[5] = new Packed6Simplex(this.v1(), this.v2(), this.v3(), this.v4(), this.v5(), this.v7()); return_value[6] = new Packed6Simplex(this.v1(), this.v2(), this.v3(), this.v4(), this.v5(), this.v6()); } else { return_value[0] = new Packed8Simplex(this.v2(), this.v3(), this.v4(), this.v5(), this.v6(), this.v7(), this.v8()); return_value[1] = new Packed8Simplex(this.v1(), this.v3(), this.v4(), this.v5(), this.v6(), this.v7(), this.v8()); return_value[2] = new Packed8Simplex(this.v1(), this.v2(), this.v4(), this.v5(), this.v6(), this.v7(), this.v8()); return_value[3] = new Packed8Simplex(this.v1(), this.v2(), this.v3(), this.v5(), this.v6(), this.v7(), this.v8()); return_value[4] = new Packed8Simplex(this.v1(), this.v2(), this.v3(), this.v4(), this.v6(), this.v7(), this.v8()); return_value[5] = new Packed8Simplex(this.v1(), this.v2(), this.v3(), this.v4(), this.v5(), this.v7(), this.v8()); return_value[6] = new Packed8Simplex(this.v1(), this.v2(), this.v3(), this.v4(), this.v5(), this.v6(), this.v8()); return_value[7] = new Packed8Simplex(this.v1(), this.v2(), this.v3(), this.v4(), this.v5(), this.v6(), this.v7()); } return return_value; } } ================================================ FILE: src/java/edu/stanford/math/plex/Persistence.java ================================================ package edu.stanford.math.plex; import java.util.ArrayList; import java.util.Arrays; import java.util.Iterator; /** * The Persistence class class implements the algorithm of * Zomorodian and Carlsson for computing the persistent homology groups * with coefficients in a finite field. The details of this are too complex * to explain here. See A. Zomorodian and G. Carlsson, "Computing * persistent homology," Discrete and Computational Geometry, 33 * (2), pp. 247-274. * *

* * The algorithm needs to be extended to return useful basis elements for * the homology, and do cohomology calculations. And a really big, open * question is how to do the same sort of calculation when using some * representation (possibly simplicial sets) that will scale better at the * persistence parameter increases. * * @version $Id$ */ public class Persistence { // The characteristic of the coefficient field currently in // use. Default is 11 (for no particular reason). private static int p = 11; // The multiplicative inverses for the coefficient field currently in use. // Again, the default is for the field Z11. private static int[] pInverses = multiplicative_inverses(p); /** * What is modulus of the coefficient field? */ public static int baseModulus() { return p; } /** * Set or reset the coefficient field. * @param modulus Must be a prime in [2,255]. * @exception IllegalArgumentException */ public static void setBaseModulus(int modulus) { if ((modulus <= 1) || (modulus >= 256)) throw new IllegalArgumentException(modulus + " is not in [2, 255]."); p = modulus; pInverses = multiplicative_inverses(modulus); } // Compute the multiplicative inverses for elements of Zp. private static int[] multiplicative_inverses(int p) { int[] return_value = new int[p]; for (int i = 1; i < p; i++) { int inverse = 0; for (int j = 1; j < p; j++) { if (((j * i) % p) == 1) { inverse = j; break; } } if (inverse == 0) throw new IllegalArgumentException(p + " is not a prime."); return_value[i] = inverse; } return return_value; } /** * Table in which to intern the simplices that form a basis for the cycle space. */ SimplexTable marked; // Remove pivot rows from the boundary of private Chain removePivotRows(Simplex sigma) { Simplex[] b = sigma.boundaryArray(); if (b == null) return null; for (int i = 0; i < b.length; i++) // If the entry isn't marked, we clear it, and if the entry is // marked, we replace it with the Simplex that came from the // stream, which has the findex properly set. This means that // we don't have to recompute or find the filtration indices // for the faces, and all of the simplices created by the // boundary() method die immediately. b[i] = marked.get(b[i]); Chain d = Chain.fromBoundary(b,p); while (!d.equals(Chain.zero(p))) { Simplex d_max = d.maxS(); Chain t_i = d_max.chain(); if (t_i == null) return d; else { int minus_q_inv = p - pInverses[t_i.maxC()]; // NOTE: If we add support for fields other then Zp, we should // change this line to be a method that returns // -(d.maxC()/t_i.maxC()). Also, we'll have to change the Chain // code that does addition. int c = (d.maxC() * minus_q_inv) % p; d = d.add(t_i, c); } } return null; } /** * Return the dimension of the cycle space. *

* * This function is for performance tuning and pandering to aimless curiosity. *

* * @return number of basis cycles. * */ public int cycleSpaceDimension() { return marked.size(); } /** * Calculate the persistent homology. *

* * @param stream generates simplices in persistence/dimension order. * @return PersistenceInterval.Float[] instances describing the * homology. */ public PersistenceInterval.Float[] computeIntervals(SimplexStream stream) { return computeIntervals(stream, true, p); } /** * Calculate the persistent homology with a specified Zp. *

* * @param stream generates simplices in persistence/dimension order. * @param preserveStream If true, don't deplete the stream. * @param prime Set the base field to be Z/prime. * @return PersistenceInterval.Float[] instances describing the * homology. */ public PersistenceInterval.Float[] computeIntervals(SimplexStream stream, boolean preserveStream, int prime) { PersistenceInterval[] raw = computeRawIntervals(stream, preserveStream, prime); PersistenceInterval.Float[] return_value = new PersistenceInterval.Float[raw.length]; int counter = 0; for(PersistenceInterval pi : raw) return_value[counter++] = stream.convertInterval(pi); return return_value; } /** * Calculate the raw persistent intervals for a stream, using a specified Zp. * This method will probably be used only by internal tests. *

* * @param stream generates simplices in persistence/dimension order. * @param preserveStream If true, don't deplete the stream. * @param prime Set the base field to be Z/prime. * @return PersistenceInterval[] instances describing the * homology in terms of the raw filtration indices. */ public PersistenceInterval[] computeRawIntervals (SimplexStream stream, boolean preserveStream, int prime) { Iterator iterator = (preserveStream)?stream.iterator():stream; // when running with assertions, verify streams that aren't really big assert ((stream.size() < 10000000) && stream.verify()); if(prime != p) setBaseModulus(prime); marked = new SimplexTable(stream.size()); ArrayList intervals = new ArrayList(); while(iterator.hasNext()) { Simplex current = iterator.next(); // Make sure that current.chain() is empty -- if we are consuming the // chain without having run an iterator, this must be so. current.clearChain(); Chain d = removePivotRows(current); if (d == null) { marked.put(current); } else { Simplex d_max = d.maxS(); int k = d_max.dimension(); d_max.setChain(d); if (k < stream.maxDimension()) { if (d_max.findex() != current.findex()) { // leave out intervals that are created and destroyed "simultaneously" PersistenceInterval i = new PersistenceInterval.Int(k, d_max.findex(), current.findex()); intervals.add(i); } } } } for(Simplex sigma : marked) { if (sigma.chain() == null) { int k = sigma.dimension(); if (k < stream.maxDimension()) { PersistenceInterval i = new PersistenceInterval.Int(k, sigma.findex()); intervals.add(i); } } } { PersistenceInterval[] return_value = new PersistenceInterval[intervals.size()]; int counter = 0; for(PersistenceInterval pi : intervals) { return_value[counter++] = pi; } Arrays.sort(return_value); return return_value; } } } ================================================ FILE: src/java/edu/stanford/math/plex/PersistenceBasis.java ================================================ package edu.stanford.math.plex; import java.util.Arrays; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.List; import java.util.ListIterator; import java.util.Map; import java.util.Vector; /** The class PersistenceBasis implements the Persistence algorithm by * Carlsson-Zomorodian, with additional basis element tracking to make * sure that afterwards, basis elements for the persistence intervals may * be extracted. */ public class PersistenceBasis { protected static int p = 11; protected static int[] pInverses = multiplicative_inverses(p); /** * What is modulus of the coefficient field? */ public static int baseModulus() { return p; } /** * Set or reset the coefficient field. * @param modulus Must be a prime in [2,255]. * @exception IllegalArgumentException */ public static void setBaseModulus(int modulus) { if ((modulus <= 1) || (modulus >= 256)) throw new IllegalArgumentException(modulus + " is not in [2, 255]."); p = modulus; pInverses = multiplicative_inverses(modulus); } // Compute the multiplicative inverses for elements of Zp. protected static int[] multiplicative_inverses(int p) { int[] return_value = new int[p]; for (int i = 1; i < p; i++) { int inverse = 0; for (int j = 1; j < p; j++) { if (((j * i) % p) == 1) { inverse = j; break; } } if (inverse == 0) throw new IllegalArgumentException(p + " is not a prime."); return_value[i] = inverse; } return return_value; } /** * Returns a boundary matrix for a given simple simplex stream in a format usable from Matlab. *

* @param stream SimpleSimplexStream providing the simplices * @param findex The filtration index at which to perform the computation * @param degree We want the boundary matrix taking simplices of dimension degree to simplices of dimension degree-1 */ public static double[][] boundaryMatrix(SimplexStream stream, double findex, int degree) { boolean DEBUGGING = false; Vector fromBasis = new Vector(); Vector toBasis = new Vector(); Iterator ss = stream.iterator(); // avoid consuming the entire stream // Construct a basis for the matrix. while(ss.hasNext()) { Simplex s = ss.next(); if(stream.convert_filtration_index(s.findex()) > findex) continue; if(DEBUGGING) System.out.printf("Considering %s\n", s); if(s.dimension() == degree) { fromBasis.add(s); if(DEBUGGING) System.out.println("\tfromBasis"); } else if(s.dimension() == degree-1) { toBasis.add(s); if(DEBUGGING) System.out.println("\ttoBasis"); } } if(DEBUGGING) System.out.printf("# fromBasis:\t%d\t# toBasis:\t%d\n", fromBasis.size(), toBasis.size()); double[][] returnMatrix = new double[toBasis.size()][fromBasis.size()]; for(int i=0; i * @param stream SimpleSimplexStream providing the simplices * @param findex The filtration index at which to perform the computation * @param degree We want the boundary matrix taking simplices of dimension degree to simplices of dimension degree-1 */ public static double[][] boundaryMatrixSparse(SimplexStream stream, double findex, int degree) { boolean DEBUGGING = false; Vector fromBasis = new Vector(); Vector toBasis = new Vector(); Iterator ss = stream.iterator(); // avoid consuming the entire stream // Construct a basis for the matrix. while(ss.hasNext()) { Simplex s = ss.next(); if(stream.convert_filtration_index(s.findex()) > findex) continue; if(DEBUGGING) System.out.printf("Considering %s\n", s); if(s.dimension() == degree) { fromBasis.add(s); if(DEBUGGING) System.out.println("\tfromBasis"); } else if(s.dimension() == degree-1) { toBasis.add(s); if(DEBUGGING) System.out.println("\ttoBasis"); } } if(DEBUGGING) System.out.printf("# fromBasis:\t%d\t# toBasis:\t%d\n", fromBasis.size(), toBasis.size()); Vector returnMatrix = new Vector(stream.size()+1); double[] entry = new double[3]; entry[0] = fromBasis.size()-1; entry[1] = toBasis.size()-1; entry[2] = 0; returnMatrix.add(entry); for(int i=0; i ss = stream.iterator(); int degree = chain.maxS().dimension(); // Construct a basis Vector basis = new Vector(); while(ss.hasNext()) { Simplex s = ss.next(); if(stream.convert_filtration_index(s.findex()) > findex) break; if(s.dimension() == degree) basis.add(s); } // Rewrite vector in this basis double[] returnVector = new double[basis.size()]; for(int i=0; i ss = stream.iterator(); // Construct a basis Vector basis = new Vector(); while(ss.hasNext()) { Simplex s = ss.next(); if(stream.convert_filtration_index(s.findex()) > findex) break; if(s.dimension() == degree) basis.add(s); } int[][] basisArray = new int[degree+1][basis.size()]; for(int i=0; i * @param sstream The simplex stream representing the filtered * complex of which the homology is computed. * @return An array of type PersistenceBasisInterval carrying the * relevant persistence intervals with basis elements. */ public static PersistenceBasisInterval.Float[] computeIntervals(SimplexStream sstream) { PersistenceBasis pb = new PersistenceBasis(); return pb.computeIntervals(sstream,11,false); } /** * Compute the persistent homology intervals of the simplex stream * given with an option flag to control which type of basis we want * to choose. *

* @param sstream The simplex stream representing the filtered * complex of which the homology is computed. * @param retrofit If false, the basis element is guaranteed to * exist throughout the entire interval. If true, * the basis element of a finite interval will * correspond to the reduced boundary of the simplex * killing the interval. * @return An array of type PersistenceBasisInterval carrying the * relevant persistence intervals with basis elements. */ public static PersistenceBasisInterval.Float[] computeIntervals(SimplexStream sstream, boolean retrofit) { PersistenceBasis pb = new PersistenceBasis(); return pb.computeIntervals(sstream,11,retrofit); } /** * Compute the persistent homology intervals of the simplex stream * given with explicitly given characteristic of the underlying field * as well as an option flag to control which type of basis we want to * choose. *

* * @param sstream The simplex stream representing the filtered * complex of which the homology is computed. * @param prime The characteristic of the base field of the computation. * @param retrofit If false, the basis element is guaranteed to * exist throughout the entire interval. If true, * the basis element of a finite interval will * correspond to the reduced boundary of the simplex * killing the interval. * @return An array of type PersistenceBasisInterval carrying the * relevant persistence intervals with basis elements. */ public PersistenceBasisInterval.Float[] computeIntervals(SimplexStream sstream, int prime, boolean retrofit) { PersistenceBasisInterval[] raw = computeRawIntervals(sstream, prime); Vector preret = new Vector(); for(PersistenceBasisInterval pi : raw) { PersistenceBasisInterval.Float newInterval = sstream.convertInterval(pi); if(newInterval.end != newInterval.start) preret.add(newInterval); } PersistenceBasisInterval.Float[] ret = new PersistenceBasisInterval.Float[preret.size()]; int counter = 0; for(PersistenceBasisInterval.Float pi : preret) ret[counter++] = pi; return ret; } // Compute raw intervals - amalgamates the old computeIntervals and // removePivotRows protected enum SimplexType { CHAIN, CYCLE, BOUNDARY } public PersistenceBasisInterval[] computeRawIntervals(SimplexStream sstream, int prime) { boolean DEBUGGING = false; if(prime != p) setBaseModulus(prime); // Notice that the findex renumbering we are performing in order to guarantee that the // arithmetic works well means we can have constant time interactions for all the // simplex-to-something else tables. int nSpx = sstream.size(); Simplex killer[] = new Simplex[nSpx]; Chain tadpole[] = new Chain[nSpx]; Chain preimage[] = new Chain[nSpx]; SimplexType type[] = new SimplexType[nSpx]; int localFindex[] = new int[nSpx]; List simplices = new Vector(); Integer currentFindex = 0; Iterator iterator = sstream.iterator(); while(iterator.hasNext()) { Simplex nextSimplex = iterator.next(); Simplex current = nextSimplex.copy(); localFindex[currentFindex]=nextSimplex.findex(); current.setfindex(currentFindex); currentFindex++; type[current.findex()] = SimplexType.CHAIN; simplices.add(current); if(DEBUGGING) System.out.printf("%s\n",current); Chain d = current.boundary(p); d = d.filter(simplices); Chain w = new Chain(p); // Reduce d modulo the boundaries reduce: while(!Chain.isZero(d)) { Simplex sigma = d.maxS(); switch (type[sigma.findex()]) { case CHAIN: //System.out.printf("\t%s leads a chain\n", sigma); if(DEBUGGING) System.out.printf("\tLeading term of %s is %s is white\n", d, sigma); throw new IllegalArgumentException("Simplex stream is not a complex."); case CYCLE: if(DEBUGGING) System.out.printf("\tLeading term of %s is %s is yellow\n", d, sigma); break reduce; case BOUNDARY: if(DEBUGGING) System.out.printf("\tLeading term of %s is %s is pink\n", d, sigma); int q = d.maxC(); Chain dt = tadpole[sigma.findex()]; Chain t = preimage[sigma.findex()]; if(Chain.isZero(t)) { // We are in a degenerate case. break reduce; } d = d.add(dt,p-q); w = w.add(t,q); break; } } if(Chain.isZero(d)) { type[current.findex()] = SimplexType.CYCLE; Chain newTadpole = new Chain(p,1,current); tadpole[current.findex()] = newTadpole.add(w,p-1); if(DEBUGGING) System.out.printf("\tNew cycle with tadpole: %s lead by %s\n", tadpole[current.findex()], current); } else { Simplex sigma = d.maxS(); type[sigma.findex()] = SimplexType.BOUNDARY; killer[sigma.findex()] = current; int c = pInverses[d.maxC()]; Chain newTadpole = new Chain(p); newTadpole = newTadpole.add(d,c); tadpole[sigma.findex()] =newTadpole; Chain newPreimage = new Chain(p); newPreimage = newPreimage.add(new Chain(p,1,current),c); newPreimage = newPreimage.add(w,p-c); preimage[sigma.findex()] = newPreimage; if(DEBUGGING) System.out.printf("\tNew boundary with tadpole: %s lead by %s\n", tadpole[sigma.findex()], sigma); if(DEBUGGING) System.out.printf("\t\tkiller(%s) = %s\n", sigma, killer[sigma.findex()]); if(DEBUGGING) System.out.printf("\t\tpreimage(%s) = %s\n", sigma, preimage[sigma.findex()]); } } // Assemble the persistence intervals List intervals = new Vector(); for(Simplex s : simplices) { PersistenceBasisInterval pbi; switch (type[s.findex()]) { case CHAIN: continue; case CYCLE: if(s.dimension() >= sstream.maxDimension()) break; pbi = new PersistenceBasisInterval.Int(tadpole[s.findex()],localFindex[s.findex()]); intervals.add(pbi); break; case BOUNDARY: if(s.dimension() >= sstream.maxDimension()) break; if(localFindex[s.findex()] == localFindex[killer[s.findex()].findex()]) break; pbi = new PersistenceBasisInterval.Int(tadpole[s.findex()], localFindex[s.findex()], localFindex[killer[s.findex()].findex()]); intervals.add(pbi); break; } } { PersistenceBasisInterval[] returnvalue = new PersistenceBasisInterval[intervals.size()]; int counter = 0; for(PersistenceBasisInterval pi : intervals) returnvalue[counter++] = pi; Arrays.sort(returnvalue); return returnvalue; } } protected static class ListItem { public Chain cocycle; public Chain coboundary; public int findex; } /** * Computes persistent cohomology using a zig-zag based approach due to Dmitriy Morozov. *

* Seems to compute wrongly. Need to step through small examples and work out what exactly what's happening. * Diagnosis: too high dimensional cocycles occurring, and way too many of them. The cocycles expected do not occur. *

* @param stream SimpleSimplexStream providing the simplices * @return PersistenceBasisInterval[] carrying the computed intervals and their basis elements. */ public static PersistenceBasisInterval[] computePersistentCohomologyZigZag(SimplexStream stream, int prime) { boolean DEBUGGING = false; if(prime != p) setBaseModulus(prime); // compute all coboundaries, and set them in the simplex chain properties Vector simplices = new Vector(stream.size()); { Map coboundary = new LinkedHashMap(); Iterator sIt = stream.iterator(); while(sIt.hasNext()) { Simplex s = sIt.next(); // System.out.println(s); coboundary.put(s, new Chain(prime)); Chain boundary = s.boundary(prime); for(Simplex t : boundary.simplices) { coboundary.put(t,coboundary.get(t).add(new Chain(p,1,s),boundary.coefficientOf(t))); } } for(Simplex s : coboundary.keySet()) { s.clearChain(); s.setChain(coboundary.get(s)); simplices.add(s); } } // System.out.printf("*************************\n"); /* go through the algorithm */ // We need lists for the cocycles and coboundaries LinkedList bases = new LinkedList(); LinkedList intervals = new LinkedList(); if(DEBUGGING) System.out.printf("# simplices: %d\n", simplices.size()); for(Simplex s : simplices) { if(DEBUGGING) System.out.println(s); ListIterator wIt = bases.listIterator(); ListItem w=null; // Find first coboundary with nonzero coefficient for s while(wIt.hasNext()) { w = wIt.next(); if(w.coboundary.coefficientOf(s) != 0) { break; } } if(DEBUGGING) System.out.printf("\tFound %s, %s\n", w!=null?w.cocycle:"null", w!=null?w.coboundary:"null"); if(w == null || w.coboundary.coefficientOf(s) == 0) { // We are starting an interval. ListItem nextItem = new ListItem(); nextItem.cocycle = new Chain(prime,1,s); nextItem.coboundary = s.chain(); nextItem.findex = s.findex(); bases.addFirst(nextItem); if(DEBUGGING) System.out.printf("\tAdded to bases:\n\t\tcocycle:\t%s\n\t\tcoboundary:\t%s\n\t\tfindex:\t%d\n", nextItem.cocycle, nextItem.coboundary, nextItem.findex); } else { assert(w.coboundary.coefficientOf(s) != 0); // We are finishing an interval. // There is a z* which is the first to contain s. Also, idx points to z* and the // current value of dz*. // Remove w from bases, and then adjust all the rest. wIt.remove(); int dzstarC = w.coboundary.coefficientOf(s); while(wIt.hasNext()) { ListItem z = wIt.next(); Chain zc = z.cocycle; Chain dz = z.coboundary; if(DEBUGGING) System.out.printf("\tConsidering %s and %s\n", zc, dz); if(dz.coefficientOf(s)!=0) { if(DEBUGGING) System.out.printf("\tAdding to %s and %s:\n\t%s and %s\n", zc, dz, w.cocycle, w.coboundary); z.cocycle = zc.add(w.cocycle,(pInverses[dzstarC]*(prime-dz.coefficientOf(s)))%prime); z.coboundary = dz.add(w.coboundary,(pInverses[dzstarC]*(prime-dz.coefficientOf(s)))%prime); if(DEBUGGING) System.out.printf("\tResult of addition:\n\t%s and %s\n", z.cocycle, z.coboundary); } } // Now, construct the persistence interval if(w.findex != s.findex() && w.cocycle.maxS().dimension() < stream.maxDimension()) { PersistenceBasisInterval.Int pi = new PersistenceBasisInterval.Int(w.cocycle,w.findex,s.findex()); intervals.add(pi); } } } if(DEBUGGING) System.out.printf("# infinite bases: %d\n", bases.size()); ListIterator wIt = bases.listIterator(); while(wIt.hasNext()) { ListItem nextItem = wIt.next(); if(nextItem.cocycle.maxS().dimension() < stream.maxDimension()) { PersistenceBasisInterval.Int pi = new PersistenceBasisInterval.Int(nextItem.cocycle, nextItem.findex); intervals.add(pi); } } Vector rets = new Vector(); for(PersistenceBasisInterval.Int pi : intervals) { PersistenceBasisInterval.Float newpi = stream.convertInterval(pi); if(newpi.start != newpi.end) rets.add(newpi); } PersistenceBasisInterval[] retpi = new PersistenceBasisInterval[rets.size()]; int i = 0; for(PersistenceBasisInterval pi : rets) { retpi[i++] = pi; } return retpi; } public static PersistenceBasisInterval[] computePersistentCohomologyZigZag(SimplexStream stream) { return computePersistentCohomologyZigZag(stream,11); } } ================================================ FILE: src/java/edu/stanford/math/plex/PersistenceBasisInterval.java ================================================ package edu.stanford.math.plex; /** * PersistenceBasisInterval instances encode a dimension and a * duration (e.g., start and end times) as well as a basis element for each * interval. The integer start/end times are * used internally in the Persistence class, but these may be converted to * form that uses doubles for start/end. * */ abstract public class PersistenceBasisInterval implements Comparable { /** * The dimension of the PersistenceBasisInterval. */ public final int dimension; /** * Is this PersistenceBasisInterval semi-infinite in extent? * *

* @return True or false depending on whether or not the right endpoint * is infinite. */ public abstract boolean infiniteExtent(); /** * Return the start/endpoints as double[]. * *

* @return double[] describing the start and end points of the interval. */ public abstract double[] toDouble(); /** * The basis representing the interval. * *

* @return Chain the associated basis element. */ public abstract Chain basis(); /** * Conversion to PersistenceInterval * *

* @return PersistenceInterval */ public abstract PersistenceInterval toPersistenceInterval(); // used just by subclasses protected PersistenceBasisInterval(int d) { assert(d >= 0); dimension = d; } /** * Represent a PersistenceBasisInterval as a String. * *

* @return A string that describes a PersistenceBasisInterval. */ public String toString() { if (this instanceof PersistenceBasisInterval.Float) { PersistenceBasisInterval.Float tmp = (PersistenceBasisInterval.Float) this; return tmp.toString(); } else { PersistenceBasisInterval.Int tmp = (PersistenceBasisInterval.Int) this; return tmp.toString(); } } public static class Int extends PersistenceBasisInterval { public static int MAX_END = 0x7fffffff; public final int start; public final int end; public final Chain basisElement; // don't use protected Int() { super(0); start = 0; end = 0; basisElement = null; } public Int(Chain basisElement, int start, int end) { super(basisElement.maxS().dimension()); assert((start >= 0) && (end >= start)); this.start = start; this.end = end; this.basisElement = basisElement; } public Int(Chain basisElement, int start) { super(basisElement.maxS().dimension()); assert((start >= 0) && (MAX_END > start)); this.start = start; this.end = MAX_END; this.basisElement = basisElement; } /** * Is this PersistenceBasisInterval semi-infinite in extent? * *

* @return True or false depending on the right endpoint. */ public boolean infiniteExtent() { return end == MAX_END; } /** * Represent a PersistenceBasisInterval.Int as a String. * *

* @return A string that describes a PersistenceBasisInterval.Int. */ public String toString() { if (end == MAX_END) return String.format("[%d: (%d,inf)] %s", dimension, start, basisElement.toString()); else return String.format("[%d: (%d,%d)] %s", dimension, start, end, basisElement.toString()); } public PersistenceInterval toPersistenceInterval() { return (PersistenceInterval) new PersistenceInterval.Int(dimension,start,end); } /** * Represent a PersistenceBasisInterval.Int as a double[]. * *

* @return A double[] that describes the endpoints. */ public double[] toDouble() { if (end == MAX_END) return new double[] { (double) start, Double.POSITIVE_INFINITY }; else return new double[] { (double) start, (double) end }; } /** * Retrieves the basis element of an interval. * *

* @return The Chain object representing the stored basis element. */ public Chain basis() { return basisElement; } /** * Overrides Object hashcode. * *

* @return CRC hash of the slots set. * */ public int hashCode() { int hash32 = CRC.hash32(dimension, 0); hash32 = CRC.hash32(start, hash32); return CRC.hash32(end, hash32); } /** * Are two persistence intervals equivalent. Overrides Object equal. * *

* @param obj object to compare. * @return true or false, depending on whether or not the * PersistenceBasisInterval is equivalent to obj. * */ public boolean equals(Object obj) { if (!(obj instanceof PersistenceBasisInterval.Int)) return false; PersistenceBasisInterval.Int p = (PersistenceBasisInterval.Int) obj; return ((p.dimension == dimension) && (p.start == start) && (p.end == end) && (p.basis().equals(basisElement))); } /** * Implements Comparable interface. * *

* @param p PersistenceBasisInterval to compare. * @return negative, 0, or positive, if this <, =, resp. > than p. * */ public int compareTo(PersistenceBasisInterval p) { if (p instanceof PersistenceBasisInterval.Float) return -1; PersistenceBasisInterval.Int pi = (PersistenceBasisInterval.Int) p; if (dimension != pi.dimension) return (dimension - pi.dimension); if (start != pi.start) return (start - pi.start); return (end - pi.end); } } public static class Float extends PersistenceBasisInterval { public static double MAX_END = Double.POSITIVE_INFINITY; public final double start; public final double end; public final Chain basisElement; // don't use protected Float() { super(0); start = 0; end = 0; basisElement = null; } public Float(Chain basisElement, double start, double end) { super(basisElement.maxS().dimension()); assert((start >= 0) && (end >= start)); this.start = start; this.end = end; this.basisElement = basisElement; } public Float(Chain basisElement, double start) { super(basisElement.maxS().dimension()); assert((start >= 0) && (MAX_END > start)); this.start = start; this.end = MAX_END; this.basisElement = basisElement; } /** * Is this PersistenceBasisInterval semi-infinite in extent? * *

* @return True or false depending on the right endpoint. */ public boolean infiniteExtent() { return end == MAX_END; } /** * Represent a PersistenceBasisInterval.Float as a String. * *

* @return A string that describes a PersistenceBasisInterval. */ public String toString() { if (end == MAX_END) return String.format("[%d: (%f,inf) %s]", dimension, start, basisElement.toString()); else return String.format("[%d: (%f,%f)] %s", dimension, start, end, basisElement.toString()); } public PersistenceInterval toPersistenceInterval() { return (PersistenceInterval) new PersistenceInterval.Float(dimension, start, end); } /** * Represent a PersistenceBasisInterval.Int as a double[]. * *

* @return A double[] that describes the endpoints. */ public double[] toDouble() { if (end == MAX_END) return new double[] { start, Double.POSITIVE_INFINITY }; else return new double[] { start, end }; } /** * Retrieves the basis element of an interval. * *

* @return The Chain object representing the stored basis element. */ public Chain basis() { return basisElement; } /** * Overrides Object hashcode. * *

* @return CRC hash of the slots set. * */ public int hashCode() { int hash32 = CRC.hash32(dimension, 0); hash32 = CRC.hash32((int)start, hash32); return CRC.hash32((int)end, hash32); } /** * Are two persistence intervals equivalent. Overrides Object equal. * *

* @param obj object to compare. * @return true or false, depending on whether or not the * PersistenceBasisInterval is equivalent to obj. * */ public boolean equals(Object obj) { if (!(obj instanceof PersistenceBasisInterval.Float)) return false; PersistenceBasisInterval.Float p = (PersistenceBasisInterval.Float) obj; return ((p.dimension == dimension) && (p.start == start) && (p.end == end) && (p.basis().equals(basisElement))); } /** * Implements Comparable interface. * *

* @param p PersistenceBasisInterval to compare. * @return negative, 0, or positive, if this <, =, resp. > than p. * */ public int compareTo(PersistenceBasisInterval p) { if (p instanceof PersistenceBasisInterval.Int) return 1; PersistenceBasisInterval.Float pf = (PersistenceBasisInterval.Float) p; if (dimension != pf.dimension) return (dimension - pf.dimension); if (start != pf.start) return (start < pf.start)?-1:1; if (end != pf.end) return (end < pf.end)?-1:1; return 0; } } } ================================================ FILE: src/java/edu/stanford/math/plex/PersistenceInterval.java ================================================ package edu.stanford.math.plex; /** * PersistenceInterval instances encode a dimension and a * duration (e.g., start and end times). The integer start/end times are * used internally in the Persistence class, but these may be converted to * form that uses doubles for start/end. * * @version $Id$ */ abstract public class PersistenceInterval implements Comparable { /** * The dimension of the PersistenceInterval. */ public final int dimension; /** * Is this PersistenceInterval semi-infinite in extent? * *

* @return True or false depending on whether or not the right endpoint * is infinite. */ public abstract boolean infiniteExtent(); /** * Return the start/endpoints as double[]. * *

* @return double[] describing the start and end points of the interval. */ public abstract double[] toDouble(); // used just by subclasses private PersistenceInterval(int d) { assert(d >= 0); dimension = d; } /** * Represent a PersistenceInterval as a String. * *

* @return A string that describes a PersistenceInterval. */ public String toString() { if (this instanceof PersistenceInterval.Float) { PersistenceInterval.Float tmp = (PersistenceInterval.Float) this; return tmp.toString(); } else { PersistenceInterval.Int tmp = (PersistenceInterval.Int) this; return tmp.toString(); } } public static class Int extends PersistenceInterval { public static final int MAX_END = 0x7fffffff; public final int start; public final int end; // don't use //private Int() { super(0); start = 0; end = 0; } public Int(int dimension, int start, int end) { super(dimension); assert((start >= 0) && (end >= start)); this.start = start; this.end = end; } public Int(int dimension, int start) { super(dimension); assert((start >= 0) && (MAX_END > start)); this.start = start; this.end = MAX_END; } /** * Is this PersistenceInterval semi-infinite in extent? * *

* @return True or false depending on the right endpoint. */ public boolean infiniteExtent() { return end == MAX_END; } /** * Represent a PersistenceInterval.Int as a String. * *

* @return A string that describes a PersistenceInterval.Int. */ public String toString() { if (end == MAX_END) return String.format("[%d: (%d,inf)]", dimension, start); else return String.format("[%d: (%d,%d)]", dimension, start, end); } /** * Represent a PersistenceInterval.Int as a double[]. * *

* @return A double[] that describes the endpoints. */ public double[] toDouble() { if (end == MAX_END) return new double[] { (double) start, Double.POSITIVE_INFINITY }; else return new double[] { (double) start, (double) end }; } /** * Overrides Object hashcode. * *

* @return CRC hash of the slots set. * */ public int hashCode() { int hash32 = CRC.hash32(dimension, 0); hash32 = CRC.hash32(start, hash32); return CRC.hash32(end, hash32); } /** * Are two persistence intervals equivalent. Overrides Object equal. * *

* @param obj object to compare. * @return true or false, depending on whether or not the * PersistenceInterval is equivalent to obj. * */ public boolean equals(Object obj) { if (!(obj instanceof PersistenceInterval.Int)) return false; PersistenceInterval.Int p = (PersistenceInterval.Int) obj; return ((p.dimension == dimension) && (p.start == start) && (p.end == end)); } /** * Implements Comparable interface. * *

* @param p PersistenceInterval to compare. * @return negative, 0, or positive, if this <, =, resp. > than p. * */ public int compareTo(PersistenceInterval p) { if (p instanceof PersistenceInterval.Float) return -1; PersistenceInterval.Int pi = (PersistenceInterval.Int) p; if (dimension != pi.dimension) return (dimension - pi.dimension); if (start != pi.start) return (start - pi.start); return (end - pi.end); } } public static class Float extends PersistenceInterval { public static final double MAX_END = Double.POSITIVE_INFINITY; public final double start; public final double end; // don't use //private Float() { super(0); start = 0; end = 0; } public Float(int dimension, double start, double end) { super(dimension); assert((start >= 0) && (end >= start)); this.start = start; this.end = end; } public Float(int dimension, double start) { super(dimension); assert((start >= 0) && (MAX_END > start)); this.start = start; this.end = MAX_END; } /** * Is this PersistenceInterval semi-infinite in extent? * *

* @return True or false depending on the right endpoint. */ public boolean infiniteExtent() { return end == MAX_END; } /** * Represent a PersistenceInterval.Float as a String. * *

* @return A string that describes a PersistenceInterval. */ public String toString() { if (end == MAX_END) return String.format("[%d: (%f,inf)]", dimension, start); else return String.format("[%d: (%f,%f)]", dimension, start, end); } /** * Represent a PersistenceInterval.Int as a double[]. * *

* @return A double[] that describes the endpoints. */ public double[] toDouble() { if (end == MAX_END) return new double[] { start, Double.POSITIVE_INFINITY }; else return new double[] { start, end }; } /** * Overrides Object hashcode. * *

* @return CRC hash of the slots set. * */ public int hashCode() { int hash32 = CRC.hash32(dimension, 0); hash32 = CRC.hash32((int)start, hash32); return CRC.hash32((int)end, hash32); } /** * Are two persistence intervals equivalent. Overrides Object equal. * *

* @param obj object to compare. * @return true or false, depending on whether or not the * PersistenceInterval is equivalent to obj. * */ public boolean equals(Object obj) { if (!(obj instanceof PersistenceInterval.Float)) return false; PersistenceInterval.Float p = (PersistenceInterval.Float) obj; return ((p.dimension == dimension) && (p.start == start) && (p.end == end)); } /** * Implements Comparable interface. * *

* @param p PersistenceInterval to compare. * @return negative, 0, or positive, if this <, =, resp. > than p. * */ public int compareTo(PersistenceInterval p) { if (p instanceof PersistenceInterval.Int) return 1; PersistenceInterval.Float pf = (PersistenceInterval.Float) p; if (dimension != pf.dimension) return (dimension - pf.dimension); if (start != pf.start) return (start < pf.start)?-1:1; if (end != pf.end) return (end < pf.end)?-1:1; return 0; } } } ================================================ FILE: src/java/edu/stanford/math/plex/Plex.java ================================================ package edu.stanford.math.plex; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.Reader; import java.io.StreamTokenizer; import java.util.ArrayList; import java.util.Arrays; import java.util.Random; /** * The Plex class provides some utility functions that don't * have a clearly defined home, and some entry points into plex library * code that are especially useful when in matlab. It is (apparently) * impossible in matlab to execute code like new PlexClass(), * so we provide static methods for creating Plex objects in matlab. The * naming convention for these methods is that the constructor for * instances of PlexClass will be named * PlexClass(), and its argument spectrum will be whatever the * usual form (or forms) of the associated constuctor are. * * @version $Id$ */ public class Plex { protected static Random rand = new Random(); // Compute the size of the intersection of v1 and v2, assuming that no // elements appear in either v1 or v2 more than once. This method has the // advantage that it doesn't need the arguments to sorted. If the sets // are already sorted or we actually want the intersection, see below. public static int intersection_count(int[] v1, int[] v2) { int[] tmp = new int[v1.length + v2.length]; if (tmp.length == 0) return 0; int tmp_counter = 0; for (int i = 0; i < v1.length; i++) tmp[tmp_counter++] = v1[i]; for (int i = 0; i < v2.length; i++) tmp[tmp_counter++] = v2[i]; assert(tmp_counter == tmp.length); Arrays.sort(tmp); int intersection_counter = 0; int current_tmpval = tmp[0]; int current_hits = 1; for (int i = 1; i < tmp.length; i++) { int x = tmp[i]; if (x == current_tmpval) current_hits++; else { if (current_hits > 1) { assert(current_hits == 2); intersection_counter++; } current_hits = 1; current_tmpval = x; } } return intersection_counter; } /** * Compute the overlap size for two sorted arrays using the zipper algorithm. * * @param v1 First sorted array. * @param v2 Second sorted array. * @return The number of common elements of v1 and v2. * */ public static int sorted_intersection_count(int[] v1, int[] v2) { int count = 0; int i = 0; int i_max = v1.length-1; int j = 0; int j_max = v2.length-1; if ((i > i_max) || (j > j_max)) return count; int max_xi = v1[i_max]; int max_xj = v2[j_max]; int xi = v1[i]; if (xi > max_xj) return count; int xj = v2[j]; if (xj > max_xi) return count; while (true) { if (xi == xj) { count++; i++; j++; if ((i > i_max) || (j > j_max)) return count; else { xi = v1[i]; if (xi > max_xj) return count; xj = v2[j]; if (xj > max_xi) return count; } } else if (xi < xj) { i++; xi = v1[i]; if (xi > max_xj) return count; } else { j++; xj = v2[j]; if (xj > max_xi) return count; } } } /** * Take subset_size distinct entries from initial segment of length * set_size in set[] and put them in the initial segment of subset[]. The * ordering of the entries is preserved -- that is, if set[i] and * set[i+d] both go into subset, the index of set[i] is less than that of * set[i+d].

* @param set an int[] from which to select. * @param set_size an int specifying how many entries to use. * @param subset an int[] in which to deposit the selections. * @param subset_size an int specifying how many entries to select. */ public static void random_subset(int[] set, int set_size, int[] subset, int subset_size) { if (subset_size > set_size) throw new IllegalArgumentException("Requested subset is larger than argument set."); if (subset_size > subset.length) throw new IllegalArgumentException("Requested subset is larger than storage given."); if (set_size > set.length) throw new IllegalArgumentException("Set storage smaller than argument size."); if (subset_size <= 0) return; int[] tmp = new int[set_size]; random_permutation(tmp); for (int i = 0; i < subset_size; i++) { subset[i] = tmp[i]; } Arrays.sort(subset, 0, subset_size); for (int i = 0; i < subset_size; i++) { subset[i] = set[subset[i]]; } } /** * Take subset.length distinct entries from set[], and put them in * subset[]. *

* @param set an int[] from which to select. * @param subset an int[] in which to deposit the selections. */ public static void random_subset(int[] set, int[] subset) { random_subset(set, set.length, subset, subset.length); } /** * Take subset_size distinct entries from the integers 1 through N, * and put them in the initial segment of subset[]. *

* @param N an int specifying the range from which to choose the subset. * @param subset an int[] in which to deposit the selections. * @param subset_size an int specifying how many entries to use. */ public static void random_subset(int N, int[] subset, int subset_size) { if (subset_size > subset.length) throw new IllegalArgumentException("Requested subset is larger than storage given."); if (subset.length <= 0) return; int[] tmp = new int[N]; random_permutation(tmp); // The entries of tmp range from 0 to N-1, so we need to add 1 to each of them. for (int i = 0; i < subset_size; i++) { subset[i] = tmp[i]+1; } Arrays.sort(subset, 0, subset_size); } /** * Take subset.length distinct entries from the integers 1 through N, * and put them in subset[]. *

* @param N an int specifying the range from which to choose the subset. * @param subset an int[] in which to deposit the selections. */ public static void random_subset(int N, int[] subset) { random_subset(N, subset, subset.length); } // confirm that this is a permutation protected static boolean is_permutation (int[] perm) { int[] tmp = new int[perm.length]; for (int i = 0; i < perm.length; i++) tmp[perm[i]]++; for (int i = 0; i < perm.length; i++) { if (tmp[i] != 1) return false; } return true; } /** * Make a random permutation of the integers 0 through perm.length-1 * and put them in perm. *

* @param perm an int[] to hold a random permutation. */ public static void random_permutation(int[] perm) { if (perm.length <= 0) return; // start with the identity for (int i = 0; i < perm.length; i++) perm[i] = i; for (int current = perm.length; current > 0; current--) { int swap_to = rand.nextInt(current); int swap_from = current - 1; int tmp = perm[swap_to]; perm[swap_to] = perm[swap_from]; perm[swap_from] = tmp; } assert(is_permutation(perm)); } /** * Take an array of int and make a string. *

* @param x an int[] we want to examine. * @param max_entries The maximum number of entries we wish to examine. * @return A String instance that "looks like" x. */ public static String toString(int[] x, int max_entries) { if (x == null) return ""; int max = Math.min(max_entries, x.length); String start = "{"; if (max >= 1) start = start + " " + x[0]; for (int i = 1; i < max; i++) { start = start + ", " + x[i]; } if (max < x.length) start = start + " ..."; return start + " }"; } /** * Take an array of int and make a string. *

* @param x an int[] we want to examine. * @return A String instance that "looks like" x. */ public static String toString(int[] x) { return toString(x, 100); } /** * Take an array of byte and make a string. *

* @param x an byte[] we want to examine. * @param max_entries The maximum number of entries we wish to examine. * @return A String instance that "looks like" x. */ public static String toString(byte[] x, int max_entries) { if (x == null) return ""; int max = Math.min(max_entries, x.length); String start = "{"; if (max >= 1) start = start + " " + x[0]; for (int i = 1; i < max; i++) { start = start + ", " + x[i]; } if (max < x.length) start = start + " ..."; return start + " }"; } /** * Take an array of byte and make a string. *

* @param x an byte[] we want to examine. * @return A String instance that "looks like" x. */ public static String toString(byte[] x) { return toString(x, 100); } /** * Take an array of int[] and make a string. *

* @param x an int[][] we want to examine. * @param max_entries The maximum number of entries we wish to examine. * @return A String instance that "looks like" x. */ public static String toString(int[][] x, int max_entries) { int max = Math.min(max_entries, x.length); String start = "{"; if (max >= 1) start = start + " " + toString(x[0], max_entries) + "\n"; for (int i = 1; i < max; i++) { start = start + ", " + toString(x[i], max_entries) + "\n"; } if (max < x.length) start = start + " ..."; return start + " }"; } /** * Take an int[][] and make a string. *

* @param x an int[][] we want to examine. * @return A String instance that "looks like" x. */ public static String toString(int[][] x) { return toString(x, 100); } /** * Take an array of double and make a string. *

* @param x a double[] we want to examine. * @param max_entries The maximum number of entries we wish to examine. * @return A String instance that "looks like" x. */ public static String toString(double[] x, int max_entries) { if (x == null) return ""; int max = Math.min(max_entries, x.length); String start = "{"; if (max >= 1) start = start + String.format(" %.3g", x[0]); for (int i = 1; i < max; i++) { start = start + String.format(", %.3g", x[i]); } if (max < x.length) start = start + " ..."; return start + " }"; } /** * Take an array of double and make a string. *

* @param x a double[] we want to examine. * @return A String instance that "looks like" x. */ public static String toString(double[] x) { return toString(x, 100); } /** * Take an array of double[] and make a string. *

* @param x an double[][] we want to examine. * @param max_entries The maximum number of entries we wish to examine. * @return A String instance that "looks like" x. */ public static String toString(double[][] x, int max_entries) { int max = Math.min(max_entries, x.length); String start = "{"; if (max >= 1) start = start + " " + toString(x[0], max_entries) + "\n"; for (int i = 1; i < max; i++) { start = start + ", " + toString(x[i], max_entries) + "\n"; } if (max < x.length) start = start + " ..."; return start + " }"; } /** * Take an double[][] and make a string. *

* @param x an double[][] we want to examine. * @return A String instance that "looks like" x. */ public static String toString(double[][] x) { return toString(x, 100); } /** * Take an array of long and make a string. *

* @param x a long[] we want to examine. * @param max_entries The maximum number of entries we wish to examine. * @return A String instance that "looks like" x. */ public static String toString(long[] x, int max_entries) { int max = Math.min(max_entries, x.length); String start = "[ "; for (int i = 0; i < max; i++) { start = start + " " + x[i]; } if (max < x.length) start = start + " ..."; return start + " ]"; } /** * Take an array of long and make a string. *

* @param x a long[] we want to examine. * @return A String instance that "looks like" x. */ public static String toString(long[] x) { return toString(x, 100); } /** * Take subset_size distinct entries from the integers 0 through N-1, * and put them in the initial segment of subset[]. *

* @param N an int specifying the range from which to choose the subset. * @param subset an int[] in which to deposit the selections. * @param subset_size an int specifying how many entries to use. */ public static void random_index_subset(int N, int[] subset, int subset_size) { if (subset_size > subset.length) throw new IllegalArgumentException("Requested subset is larger than storage given."); if (subset.length <= 0) return; int min_value = subset_size-1; int max_value = N-1; int current_index = subset_size - 1; int select_value = min_value; while (current_index >= 0) { if (max_value > min_value) select_value = min_value + rand.nextInt(1 + (max_value - min_value)); else select_value = min_value; subset[current_index] = select_value; assert((select_value >= 0) && (select_value <= N-1)); assert((current_index >= (subset_size-1)) || (subset[current_index] < subset[current_index+1])); current_index--; max_value = select_value-1; min_value--; } assert(current_index == -1); } // Compare two int[] arguments, returning negative if less, 0 if equal, // and positive if greater so that we can use it in binary search. static int comparePtArrays (int[] pts1, int[] pts2) { int len1 = pts1.length; int len2 = pts2.length; int count = (len2 > len1)?len2:len1; for (int i = 0; i < count; i++) { if (pts1[i] != pts2[i]) return (pts1[i] - pts2[i]); } return (len1 - len2); } // Compare two int[] arguments, returning TRUE if equal, else FALSE. static boolean equalPtArrays (int[] pts1, int[] pts2) { if (pts1 == pts2) return true; else if ((pts1 == null) || (pts2 == null)) return false; else if (pts1.length != pts2.length) return false; else { for (int i = 0; i < pts1.length; i++) { if (pts1[i] != pts2[i]) return false; } return true; } } // Find the first index i such that arg >= pts[i]. Returns -1 for failure. // We start from argument "lo", which is protected static int firstSmallerPtIndex (int arg, int lo, int[] pts) { // Binary search. int hi = pts.length - 1; if ((lo > hi) || (pts[hi] > arg)) return -1; else if (arg >= pts[lo]) return lo; else { // Do a binary search. At the top of the loop, we always have // that (pts[lo] > arg), lo != hi, and (arg >= pts[hi]). while (lo < hi) { int mid = (lo + hi)/2; assert(lo < hi); assert(pts[lo] > arg); assert(pts[hi] <= arg); if (mid == lo) return hi; else if (pts[mid] > arg) lo = mid; else hi = mid; } // should never get here assert(false); return -1; } } // Returns TRUE if ipts is a subset of jpts. protected static boolean ptArrayIsSubset (int[] ipts, int[] jpts) { int j = 0; for (int i = 0; i < ipts.length; i++) { if ((ipts.length - jpts.length) > (i - j)) // this the same as (ipts.length-i) > (jpts.length-j), which // would mean that we have more points to find than we have // places to look for them return false; j = firstSmallerPtIndex (ipts[i], j, jpts); if ((j < 0) || (ipts[i] != jpts[j])) // jpts is decreasing, so if the first entry is too small, // we'll never find a match return false; else j++; } return true; } /** * An array of Betti numbers (int[]) boxed up for convenience. */ public static class BettiNumbers { protected int[] numbers; // make sure the numbers array is okay. static protected boolean init_okay(int[] init) { for (int i = 0; i < init.length; i++) { if (init[i] < 0) return false; } if ((init.length == 0) || (init[init.length-1] == 0)) return false; return true; } // unused protected BettiNumbers() { numbers = null; } /** * Encapsulate a verified array of Betti numbers. * *

* @param init an int[] of betti numbers. * @exception IllegalArgumentException */ public BettiNumbers(int[] init) { if (!init_okay(init)) throw new IllegalArgumentException("Bad betti numbers"); numbers = new int[init.length]; for(int i = 0; i < init.length; i++) numbers[i] = init[i]; } /** * Make BettiNumbers printable. * *

* @return String form of an array of Betti numbers. */ public String toString() { String base = "BN{"; for (int i = 0; i < numbers.length-1; i++) { base = base + String.format("%d, ", numbers[i]); } base = base + String.format("%d}", numbers[numbers.length-1]); return base; } /** * Determine if two instances of BettiNumbers are equal. * *

* param obj Object to check equality against. * @return True if equal, else false. */ public boolean equals(Object obj) { if (!(obj instanceof BettiNumbers)) return false; BettiNumbers b = (BettiNumbers) obj; return Plex.equalPtArrays(numbers, b.numbers); } } /** * Summarize the semi-infinite PersistenceIntervals. * *

* @param coll A collection of PersistenceIntervals. * @return An instance of Plex.BettiNumbers. */ public static BettiNumbers FilterInfinite(PersistenceInterval[] coll) { int max_dimension = 0; for (PersistenceInterval i : coll) { if (i.infiniteExtent() && (i.dimension > max_dimension)) max_dimension = i.dimension; } int[] results = new int[max_dimension+1]; for (PersistenceInterval i : coll) { if (i.infiniteExtent()) results[i.dimension]++; } return new BettiNumbers(results); } /** * Summarize the semi-infinite PersistenceBasisIntervals. * *

* @param coll A collection of PersistenceBasisIntervals. * @return An isntance of Plex.BettiNumbers. */ public static BettiNumbers FilterInfinite(PersistenceBasisInterval[] coll) { int max_dimension = 0; for(PersistenceBasisInterval i : coll) { if (i.infiniteExtent() && (i.dimension > max_dimension)) max_dimension = i.dimension; } int[] results = new int[max_dimension+1]; for(PersistenceBasisInterval i : coll) { if (i.infiniteExtent()) results[i.dimension]++; } return new BettiNumbers(results); } /** * Create an empty SimplexStream.Stack. * *

The object returned from this method can be used to create a new * SimplexStream from the contents of another one, or using an * Interator constructed from such a stream.

* * @param max_findex Largest filtration index used by entries in this stream. * @param max_dimension Maximum dimension of Simplex instances stored in this stream. * @return An empty SimplexStream.Stack. * */ public static SimplexStream.Stack SimplexStack(int max_findex, int max_dimension) { return new SimplexStream.Stack(max_findex, max_dimension); } /** * Create a Persistence instance. * *

Used to calculate persistent homology; e.g., p.computeIntervals(stream). * * @return A new Persistence instance. * */ public static Persistence Persistence () { return new Persistence(); } /** * Create a PersistenceBasis instance. * *

Used to calculate persistent homology returning bases for the resulting intervals; * e.g., p.computeIntervals(stream). * * @return A new PersistenceBasis instance. * */ public static PersistenceBasis PersistenceBasis () { return new PersistenceBasis(); } /** * Create a random EuclideanArrayData instance. * *

* * @param num_pts How many points. * @param dimension Dimension of the space. * @return A randomly generated EuclideanArrayData instance. * */ public static EuclideanArrayData EuclideanArrayData(int num_pts, int dimension) { return new EuclideanArrayData(num_pts, dimension); } /** * Create a EuclideanArrayData instance from a data array. * *

* * @param data The data. * @param dimension The dimension of the data. * @return EuclideanArrayData instance encapsulating the argument data. * */ public static EuclideanArrayData EuclideanArrayData(double[] data, int dimension) { return new EuclideanArrayData(data, dimension); } /** * Create a EuclideanArrayData instance from a double[][]. * *

* * @param data The data. * @return EuclideanArrayData instance encapsulating the argument data. * */ public static EuclideanArrayData EuclideanArrayData(double[][] data) { return new EuclideanArrayData(data); } /** * Create a EuclideanArrayData instance from a text file containing a * distance matrix. * *

* * @param filename The name of the datafile. * @return EuclideanArrayData instance encapsulating the argument data. * */ public static EuclideanArrayData EuclideanArrayData(String filename) { return new EuclideanArrayData(readMatrix(filename)); } /** * Read a double[][] from a stream. The format is fairly general, where * the elements are separated by whitespace and all the elements for each * row appear on a single line, and the last row is followed by a blank * line. * @param input A Reader instance. * @return The matrix as a double[][]. */ public static double[][] readMatrix(Reader input) { try { StreamTokenizer tokenizer= new StreamTokenizer(input); // Although StreamTokenizer will parse numbers, it doesn't recognize // scientific notation (E or D); however, Double.valueOf does. // The strategy here is to disable StreamTokenizer's number parsing. // We'll only get whitespace delimited words, EOL's and EOF's. // These words should all be numbers, for Double.valueOf to parse. tokenizer.resetSyntax(); tokenizer.wordChars(0,255); tokenizer.whitespaceChars(0, ' '); tokenizer.eolIsSignificant(true); ArrayList first_row = new ArrayList(); ArrayList all_rows = new ArrayList(); // Ignore initial empty lines while (tokenizer.nextToken() == StreamTokenizer.TT_EOL); if (tokenizer.ttype == StreamTokenizer.TT_EOF) throw new java.io.IOException("Unexpected EOF on matrix read."); do { first_row.add(Double.valueOf(tokenizer.sval)); // Read & store 1st row. } while (tokenizer.nextToken() == StreamTokenizer.TT_WORD); int n = first_row.size(); // Now we've got the number of columns! double row[] = new double[n]; for (int j=0; j= n) throw new java.io.IOException ("Row " + all_rows.size() + " is too long."); row[j++] = Double.valueOf(tokenizer.sval).doubleValue(); } while (tokenizer.nextToken() == StreamTokenizer.TT_WORD); if (j < n) throw new java.io.IOException ("Row " + all_rows.size() + " is too short."); } double[][] A = all_rows.toArray(new double[all_rows.size()][]); return A; } catch(IOException e) { // Make this a RuntimeException so this is easier to call from // the interpreter. throw new IllegalStateException(e.getMessage()); } } /** * Read a double[][] from a file. The format is fairly general, where * the elements are separated by whitespace and all the elements for each * row appear on a single line, and the last row is followed by a blank * line. * @param inputFilename An input file. * @return The matrix as a double[][]. */ public static double[][] readMatrix(String inputFilename) { InputStreamReader reader = null; try { reader = new InputStreamReader(new FileInputStream(new File(inputFilename))); } catch(IOException e) { // Make this a RuntimeException so this is easier to call from // the interpreter. throw new IllegalStateException("Failed opening matrix file \"" + inputFilename + "\": " + e.getMessage()); } try { return readMatrix(reader); } catch(IllegalStateException e) { // Catch and rethrow so we get the filename in it throw new IllegalStateException("Failed reading matrix from file \"" + inputFilename + "\": " + e.getMessage()); } } // make sure that the matrix is square protected static boolean d_okay(double[][] d) { for(int i = 0; i < d.length; i++) { if (d.length != d[i].length) return false; } return true; } /** * Create a DistanceData instance. * *

* * @param d The distance matrix * @return A DistanceData instance. * */ public static DistanceData DistanceData(double[][] d) { assert d_okay(d); return new DistanceData(d); } /** * Create a Torus with a given granulatity. *

* * @param n Split the Torus into n^^d squares, return the corners. * @return PointData for a d-dimensional Torus. * */ public static Torus Torus (int n, int d) { return new Torus(n, d); } /** * Make a stream of the simplices in a Rips complex for given data set. *

* @param delta Granularity to apply to the underlying metric. * @param max_distance Maximum edge length we will consider. * @param max_d Maximum dimension of Simplex instances we construct. * @param data Metric data to use in constructing stream. * * @return A SimplexStream.Stack containing the Rips complex. */ public static RipsStream RipsStream(double delta, int max_d, double max_distance, PointData data) { return new RipsStream(delta, max_d, max_distance, data); } /** * Make an empty ExplicitStream. These are normally populated "by hand". *

* * @return An empty ExplicitStream. */ public static ExplicitStream ExplicitStream() { return new ExplicitStream(); } /** * Convert a SimplexStream into an explicit one. * *

* @param str A SimplexStream instance. * @return An ExplicitStream with equivalent Simplex entries. * */ public static ExplicitStream makeExplicit(SimplexStream str) { return ExplicitStream.makeExplicit(str); } /** * Make a new SimplexTable. * *

* * @param limit An upper bound on the number of simplices that * will be interned in the table. * * @return An empty SimplexTable. * * @see edu.stanford.math.plex.SimplexTable#SimplexTable */ public static SimplexTable SimplexTable (int limit) { return new SimplexTable(limit); } /** * Make a stream of the simplices in a Witness complex for data. *

* @param delta Granularity to apply to the underlying metric. * @param max_d Maximum dimension of Simplex instances we construct. * @param R Maximum R we will use. * @param landmarks Indices of points to use as landmarks. The * simplices constructed will use the landmark * indices, rather than the indices into data. * @param data Metric data to use in constructing stream. * * @return A WitnessStream for the given data. */ public static WitnessStream WitnessStream(double delta, int max_d, double R, int[] landmarks, PointData data) { return new WitnessStream(delta, max_d, R, landmarks, data); } /** * Make a stream of the simplices in a lazy Witness complex for data. *

* @param delta Granularity to apply to the underlying metric. * @param max_d Maximum dimension of Simplex instances we construct. * @param R Maximum R we will use. * @param nu See Topological estimation using witness complexes, above. * @param landmarks Indices of points to use as landmarks. The * simplices constructed will use the landmark * indices, rather than the indices into data. * @param data Metric data to use in constructing stream. * * @return A LazyWitnessStream for the given data. */ public static LazyWitnessStream LazyWitnessStream(double delta, int max_d, double R, int nu, int[] landmarks, PointData data) { return new LazyWitnessStream(delta, max_d, R, nu, landmarks, data); } // Get rid of really short PersistenceInterval.Float instances. protected static PersistenceInterval.Float[] filter_pintervals (PersistenceInterval.Float[] vec, double delta) { int return_len = 0; for (int i = 0; i < vec.length; i++) { PersistenceInterval.Float p = vec[i]; if (Math.abs(p.start - p.start) > delta) return_len++; } PersistenceInterval.Float[] return_value = new PersistenceInterval.Float[return_len]; return_len = 0; for (int i = 0; i < vec.length; i++) { PersistenceInterval.Float p = vec[i]; if (Math.abs(p.start - p.start) > delta) return_value[return_len++] = vec[i]; } return return_value; } /** * Are two PersistenceInterval.Float[] arguments sufficiently equal? * *

* @param arg1 PersistenceInterval.Float[]. * @param arg2 PersistenceInterval.Float[]. * @param delta double * @return true if the arguments are equivalent up the precision of the stream and delta. * */ public static boolean equalPersistenceIntervals(PersistenceInterval.Float[] arg1, PersistenceInterval.Float[] arg2, double delta) { if (arg1 == arg2) return true; else { arg1 = filter_pintervals(arg1, delta); arg2 = filter_pintervals(arg2, delta); if (arg1.length != arg2.length) return false; for (int i = 0; i < arg1.length; i++) { PersistenceInterval.Float p1 = arg1[i]; PersistenceInterval.Float p2 = arg2[i]; if ((Math.abs(p1.start - p2.start) > 1.5 * delta) || (Math.abs(p1.end - p2.end) > 1.5 * delta)) return false; } return true; } } // Find the smallest "two decimal digit" double >= arg. protected static double normalizeUpperBound(double arg) { if (arg < 1.0) { double current = .1; while (current > arg) { current *= .1; } return (current * normalizeUpperBound(arg/current)); } else if (arg > 10.0) { double current = 10.0; while (current < arg) { current *= 10.0; } return (current * normalizeUpperBound(arg/current)); } else { assert((arg >= 1.0) || (arg <= 10.0)); if ((arg == 1.0) || (arg == 10.0)) return arg; else return ((double)(((int)(10.0*arg)) + 1))/10.0; } } // Convert arg into ordered and sorted-by-dimension double[2], suitable for // printing. protected static double[][][] printable_intervals(PersistenceInterval[] arg) { PersistenceInterval[][] pi_tmp; double[][][] print_copy; { int[] dimensions = new int[0]; int max_dimension = -1; for (int i = 0; i < arg.length; i++) { if (arg[i].dimension >= dimensions.length) { int[] new_dimensions = new int[Math.max(arg[i].dimension+1, 2*dimensions.length)]; for (int j = 0; j < dimensions.length; j++) { new_dimensions[j] = dimensions[j]; } dimensions = new_dimensions; } max_dimension = Math.max(max_dimension, arg[i].dimension); dimensions[arg[i].dimension]++; } pi_tmp = new PersistenceInterval[max_dimension+1][]; print_copy = new double[max_dimension+1][][]; for (int i = 0; i < pi_tmp.length; i++) { pi_tmp[i] = new PersistenceInterval[dimensions[i]]; } } { int[] counters = new int[pi_tmp.length]; for (int i = 0; i < arg.length; i++) { int d = arg[i].dimension; pi_tmp[d][counters[d]++] = arg[i]; } for (int i = 0; i < pi_tmp.length; i++) { Arrays.sort(pi_tmp[i]); } } for (int i = 0; i < pi_tmp.length; i++) { print_copy[i] = new double[pi_tmp[i].length][]; for (int j = 0; j < pi_tmp[i].length; j++) { print_copy[i][j] = pi_tmp[i][j].toDouble(); } } return print_copy; } /** * Plot an array of Plex barcodes (that is, a PersistenceInterval[]). * *

* @param arg PersistenceInterval[]. * @param label A String to use as the label. * @param upperBound A limit on the plot width. This limit is not strict. * The actual plotted range will be at least this size, * and no larger than 10% greater. */ public static void plot(PersistenceInterval[] arg, String label, double upperBound) { double[][][] print_tmp = printable_intervals(arg); for (int i = 0; i < print_tmp.length; i++) { if (print_tmp[i].length > 0) { BCPlot.doPlot(String.format("%s: Dimension %d", label, i), print_tmp[i], normalizeUpperBound(upperBound)); } } } /** * Plot an array of Plex barcodes computed with bases. * *

* @param arg PersistenceBasisInterval[]. * @param label A string to use as a label. * @param upperBound A limit on the plot width. This limit is not strict. * The actual plotted range will be at least this size, and * no larger than 10% greater. */ public static void plot(PersistenceBasisInterval[] arg, String label, double upperBound) { PersistenceInterval[] newarg = new PersistenceInterval[arg.length]; for(int i = 0; i < arg.length; i++) newarg[i] = arg[i].toPersistenceInterval(); plot(newarg, label, upperBound); } /** * Make a scatterplot of a PersistenceInterval[]. * *

* @param arg PersistenceInterval[]. * @param label A String to use as the label. * @param upperBound A limit on the plot width. This limit is not strict. * The actual plotted range will be at least this size, * and no larger than 10% greater. */ public static void scatter(PersistenceInterval[] arg, String label, double upperBound) { double[][][] print_tmp = printable_intervals(arg); for (int i = 0; i < print_tmp.length; i++) { if (print_tmp[i].length > 0) { BCPlot.doScatter(String.format("%s: Dimension %d", label, i), print_tmp[i], normalizeUpperBound(upperBound)); } } } /** * Make a scatterplot of a PersistenceBasisInterval[]. * *

* @param arg PersistenceBasisInterval[]. * @param label A String to use as the label. * @param upperBound A limit on the plot width. This limit is not strict. * The actual plotted range will be at least this size, * and no larger than 10% greater. */ public static void scatter(PersistenceBasisInterval[] arg, String label, double upperBound) { PersistenceInterval[] newarg = new PersistenceInterval[arg.length]; for(int i = 0; i < arg.length; i++) newarg[i] = arg[i].toPersistenceInterval(); scatter(newarg, label, upperBound); } protected static boolean useMessageWindow = false; /** * Use a PlexMessageWindow for messages? * *

* @param flag Set useMessageWindow. */ public static void useMessageWindow(boolean flag) { useMessageWindow = flag; } /** * Should we use a PlexMessageWindow for messages? * *

* @return true if a PlexMessageWindow is preferable, else false. */ public static boolean useMessageWindow() { return useMessageWindow; } /** * Make a Plex message window. * *

* @param title Window title. * @return A PlexMessageWindow instance. */ public static PlexMessageWindow messageWindow(String title) { return new PlexMessageWindow(title); } /** * Entry point to Plex from the java interpreter. * *

This stub will, when time permits, be turned into something that * allows users to make some non-trivial use of Plex from the java * launcher. *

* * @param args Strings that will need to be parsed. * */ public static void main(String[] args) { SimplexStream stream = TmpStream.PaperTestCase(); Persistence P = new Persistence(); PersistenceInterval[] intervals = P.computeIntervals(stream); for (PersistenceInterval i : intervals) { System.out.printf("%s\n", i.toString()); } plot(intervals, "Main Test", 26.23); } } ================================================ FILE: src/java/edu/stanford/math/plex/PlexMessageWindow.java ================================================ package edu.stanford.math.plex; import java.awt.BorderLayout; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTextPane; import javax.swing.text.BadLocationException; import javax.swing.text.DefaultStyledDocument; import javax.swing.text.Style; import javax.swing.text.StyleConstants; import javax.swing.text.StyleContext; import javax.swing.text.StyledDocument; /** * A PlexMessageWindow instance is a scrollable text window in * which we can insert messages. * * @version $Id$ */ public class PlexMessageWindow { protected JFrame frame; protected StyledDocument document; protected StyleContext context; protected Style style; protected JTextPane textPane; protected JScrollPane scrollPane; /** * Create a new PlexMessageWindow with the given title. *

* @param title Title string for the window. */ public PlexMessageWindow(String title) { frame = new JFrame(title); frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); context = new StyleContext(); document = new DefaultStyledDocument(context); style = context.getStyle(StyleContext.DEFAULT_STYLE); StyleConstants.setAlignment(style, StyleConstants.ALIGN_LEFT); StyleConstants.setFontSize(style, 14); //StyleConstants.setSpaceAbove(style, 1); //StyleConstants.setSpaceBelow(style, 1); textPane = new JTextPane(document); textPane.setEditable(false); scrollPane = new JScrollPane(textPane); frame.add(scrollPane, BorderLayout.CENTER); frame.setSize(300, 150); } /** * Print a message string in the window. *

* @param messageString String to print. */ public void message(String messageString) { final String msg = messageString; javax.swing.SwingUtilities.invokeLater (new Runnable() { public void run() { try { textPane.setEditable(true); document.insertString(document.getLength(), msg, style); frame.setVisible(true); } catch (BadLocationException e) { throw new IllegalStateException("Failed to display message: " + msg); } textPane.setEditable(false); } }); } } ================================================ FILE: src/java/edu/stanford/math/plex/PlexSort.java ================================================ package edu.stanford.math.plex; /** * The PlexSort class provides a sorting routine that I'd prefer * was part of the standard libraries. * * @version $Id$ */ public class PlexSort { /** * Instances of the Comp inner class are used as comparison * closures for the sorting routine comp_sort. In addition * to the obvious uses, such as sorting in decreasing order, using * closures allows us to sort arrays of points by increasing or * decreasing density (or any other real-valued function on the points). * There are also some slightly non-obvious applications, which we * probably won't use here, such a computing the inverse of a permutation * stored in an array p[]. If p is [1,2,0] -- that is, the permutation * mapping 0->1, 1->2, 2->0, then let x = [0,1,2], and sort the entries * of x[i] so that x[i] is less than x[j] iff p[x[i]] < p[x[j]]. Then the * sorted contents of x are [2,0,1]. This is the inverse of p[]. * */ public static abstract class Comp { /** * Compare two int arguments, and return an integer less than, equal * to, or greater than 0, depending on whether i is respectively less, * equivalent, or greater than, j. * * @param i The first argument. * @param j The second argument. * @return an int that is -/0/+ -- intuitively, return (i-j) for * an increasing sort. */ public abstract int fn(int i, int j); } public static abstract class CompL { /** * Compare two long arguments, and return an integer less than, equal * to, or greater than 0, depending on whether i is respectively less, * equivalent, or greater than, j. * * @param i The first argument. * @param j The second argument. * @return an int that is -/0/+ -- intuitively, return (i-j) for * an increasing sort. */ public abstract int fn(long i, long j); } public static abstract class CompObj { /** * Compare two object arguments, and return an integer less than, equal * to, or greater than 0, depending on whether i is respectively less, * equivalent, or greater than, j. * * @param o1 The first argument. * @param o2 The second argument. * @return an int that is -/0/+ -- intuitively, return (i-j) for * an increasing sort. */ public abstract int fn(Object o1 , Object o2); } // Exchange contents of x[i] and x[j]. private static void swap(int[] x, int i, int j) { int tmp = x[i]; x[i] = x[j]; x[j] = tmp; } // Returns the index of the median of the three argument entries. private static int med3(int[] x, int a, int b, int c, Comp comp) { int xa = x[a]; int xb = x[b]; int xc = x[c]; return ((comp.fn(xa, xb) < 0)? ((comp.fn(xb, xc) < 0)?b:((comp.fn(xa, xc)<0)?c:a)): ((comp.fn(xb, xc) > 0)?b:((comp.fn(xa, xc)>0)?c:a))); } // Exchange subintervals [i, i+(len-1)] and [j, j+(len-1)] in x[]; private static void swapfunc(int[] x, int i, int j, int len) { int stop = j + len; while (j < stop) { int tmp = x[i]; x[i] = x[j]; x[j] = tmp; i++; j++; } } // Exchange contents of x[i] and x[j]. private static void swap(long[] x, int i, int j) { long tmp = x[i]; x[i] = x[j]; x[j] = tmp; } // Returns the index of the median of the three argument entries. private static int med3(long[] x, int a, int b, int c, CompL comp) { long xa = x[a]; long xb = x[b]; long xc = x[c]; return ((comp.fn(xa, xb) < 0)? ((comp.fn(xb, xc) < 0)?b:((comp.fn(xa, xc)<0)?c:a)): ((comp.fn(xb, xc) > 0)?b:((comp.fn(xa, xc)>0)?c:a))); } // Exchange subintervals [i, i+(len-1)] and [j, j+(len-1)] in x[]; private static void swapfunc(long[] x, int i, int j, int len) { int stop = j + len; while (j < stop) { long tmp = x[i]; x[i] = x[j]; x[j] = tmp; i++; j++; } } // Exchange contents of x[i] and x[j]. private static void swap(Object[] x, int i, int j) { Object tmp = x[i]; x[i] = x[j]; x[j] = tmp; } // Returns the index of the median of the three argument entries. private static int med3(Object[] x, int a, int b, int c, CompObj comp) { Object xa = x[a]; Object xb = x[b]; Object xc = x[c]; return ((comp.fn(xa, xb) < 0)? ((comp.fn(xb, xc) < 0)?b:((comp.fn(xa, xc)<0)?c:a)): ((comp.fn(xb, xc) > 0)?b:((comp.fn(xa, xc)>0)?c:a))); } // Exchange subintervals [i, i+(len-1)] and [j, j+(len-1)] in x[]; private static void swapfunc(Object[] x, int i, int j, int len) { int stop = j + len; while (j < stop) { Object tmp = x[i]; x[i] = x[j]; x[j] = tmp; i++; j++; } } /** * Sort a subarray of an int[] using a comparison function. The sort is * not stable, but it uses no extra storage, and seems to be faster in * practice then even insertion sort, although it doesn't have that * algorithm's guarantee of optimal worst-case behavior.

* * This code is copied with trivial alterations from "Engineering a Sort * Function", by Bentley and McIlroy. I have no idea why there isn't * something like this already available in the class java.util.Arrays -- * apparently the sort routines in that class are based on the same * paper, but support for a comparison function has been removed. * * @param x int[] to sort. * @param start Beginning of subarray to sort. * @param len Length of the subarray of x to sort. * @param comp PlexSort.Comp instance to use in sorting. * */ public static void comp_sort(int[] x, int start, int len, Comp comp) { if (len < 7) { // Use insertion sort on the smallest arrays. for (int i = start; i< len + start; i++) for (int j = i; (j > start) && (comp.fn(x[j-1], x[j]) > 0); j--) { swap(x, j, j-1); } return; } // Partition on the middle entry for small arrays. int pm = start + len/2; if (len > 7) { int p_bot = start; int p_top = start + len - 1; if (len > 40) { // For big arrays, use the pseudomedian of 9 entries. int psm_incr = len/8; p_bot = med3(x, p_bot, p_bot+psm_incr, p_bot+(2*psm_incr), comp); pm = med3(x, pm-psm_incr, pm, pm+psm_incr, comp); p_top = med3(x, p_top-(2*psm_incr), p_top-psm_incr, p_top, comp); } // For mid-size arrays, use the pseudomedian of 3 entries. pm = med3(x, p_bot, pm, p_top, comp); } int partition_value = x[pm]; int pa = start, pb = pa; int pc = start + len - 1, pd = pc; while(true) { int comp_val; while ((pb <= pc) && ((comp_val = comp.fn(x[pb], partition_value)) <= 0)) { if (comp_val == 0) { swap(x, pa, pb); pa++; } pb++; } while ((pc >= pb) && ((comp_val = comp.fn(x[pc], partition_value)) >= 0)) { if (comp_val == 0) { swap(x, pc, pd); pd--; } pc--; } if (pb > pc) break; swap(x, pb, pc); pb++; pc--; } int pn = start + len; int s; s = Math.min(pa-start, pb-pa); swapfunc(x, start, pb-s, s); s = Math.min(pd-pc, pn-pd-1); swapfunc(x, pb, pn-s, s); if ((s = pb-pa) > 1) comp_sort(x, start, s, comp); if ((s = pd-pc) > 1) comp_sort(x, pn-s, s, comp); } /** * Same as comp_sort(int[], int, int, Comp), but for arrays of long. */ public static void comp_sort(long[] x, int start, int len, CompL comp) { if (len < 7) { // Use insertion sort on the smallest arrays. for (int i = start; i< len + start; i++) for (int j = i; (j > start) && (comp.fn(x[j-1], x[j]) > 0); j--) { swap(x, j, j-1); } return; } // Partition on the middle entry for small arrays. int pm = start + len/2; if (len > 7) { int p_bot = start; int p_top = start + len - 1; if (len > 40) { // For big arrays, use the pseudomedian of 9 entries. int psm_incr = len/8; p_bot = med3(x, p_bot, p_bot+psm_incr, p_bot+(2*psm_incr), comp); pm = med3(x, pm-psm_incr, pm, pm+psm_incr, comp); p_top = med3(x, p_top-(2*psm_incr), p_top-psm_incr, p_top, comp); } // For mid-size arrays, use the pseudomedian of 3 entries. pm = med3(x, p_bot, pm, p_top, comp); } long partition_value = x[pm]; int pa = start, pb = pa; int pc = start + len - 1, pd = pc; while(true) { int comp_val; while ((pb <= pc) && ((comp_val = comp.fn(x[pb], partition_value)) <= 0)) { if (comp_val == 0) { swap(x, pa, pb); pa++; } pb++; } while ((pc >= pb) && ((comp_val = comp.fn(x[pc], partition_value)) >= 0)) { if (comp_val == 0) { swap(x, pc, pd); pd--; } pc--; } if (pb > pc) break; swap(x, pb, pc); pb++; pc--; } int pn = start + len; int s; s = Math.min(pa-start, pb-pa); swapfunc(x, start, pb-s, s); s = Math.min(pd-pc, pn-pd-1); swapfunc(x, pb, pn-s, s); if ((s = pb-pa) > 1) comp_sort(x, start, s, comp); if ((s = pd-pc) > 1) comp_sort(x, pn-s, s, comp); } /** * Same as comp_sort(int[], int, int, Comp), but for arrays of Object. */ public static void comp_sort(Object[] x, int start, int len, CompObj comp) { if (len < 7) { // Use insertion sort on the smallest arrays. for (int i = start; i< len + start; i++) for (int j = i; (j > start) && (comp.fn(x[j-1], x[j]) > 0); j--) { swap(x, j, j-1); } return; } // Partition on the middle entry for small arrays. int pm = start + len/2; if (len > 7) { int p_bot = start; int p_top = start + len - 1; if (len > 40) { // For big arrays, use the pseudomedian of 9 entries. int psm_incr = len/8; p_bot = med3(x, p_bot, p_bot+psm_incr, p_bot+(2*psm_incr), comp); pm = med3(x, pm-psm_incr, pm, pm+psm_incr, comp); p_top = med3(x, p_top-(2*psm_incr), p_top-psm_incr, p_top, comp); } // For mid-size arrays, use the pseudomedian of 3 entries. pm = med3(x, p_bot, pm, p_top, comp); } Object partition_value = x[pm]; int pa = start, pb = pa; int pc = start + len - 1, pd = pc; while(true) { int comp_val; while ((pb <= pc) && ((comp_val = comp.fn(x[pb], partition_value)) <= 0)) { if (comp_val == 0) { swap(x, pa, pb); pa++; } pb++; } while ((pc >= pb) && ((comp_val = comp.fn(x[pc], partition_value)) >= 0)) { if (comp_val == 0) { swap(x, pc, pd); pd--; } pc--; } if (pb > pc) break; swap(x, pb, pc); pb++; pc--; } int pn = start + len; int s; s = Math.min(pa-start, pb-pa); swapfunc(x, start, pb-s, s); s = Math.min(pd-pc, pn-pd-1); swapfunc(x, pb, pn-s, s); if ((s = pb-pa) > 1) comp_sort(x, start, s, comp); if ((s = pd-pc) > 1) comp_sort(x, pn-s, s, comp); } /** * Take an array of indices and sort them by the values in an array. *

* @param indices An int[] of indices to be sorted. * @param start The first entry in indices to be sort. * @param end The first entry in indices to not be sorted. * @param vals An array of integer values against which to sort indices. * @param reverse A boolean which, if true, causes the indices to be * sorted into decreasing order. */ public static void sort(int[] indices, int start, int end, final int[] vals, boolean reverse) { if (reverse) { comp_sort(indices, start, end-start, new Comp() { public int fn(int i, int j) { return (vals[j]-vals[i]); } } ); } else { comp_sort(indices, start, end-start, new Comp() { public int fn(int i, int j) { return (vals[i]-vals[j]); } } ); } } public static void sort(int[] indices, int start, int end, final double[] vals, boolean reverse) { if (reverse) { comp_sort(indices, start, end-start, new Comp() { public int fn(int i, int j) { if (vals[i] > vals[j]) return -1; else if (vals[i] < vals[j]) return 1; else return 0; } } ); } else { comp_sort(indices, start, end-start, new Comp() { public int fn(int i, int j) { if (vals[i] < vals[j]) return -1; else if (vals[i] > vals[j]) return 1; else return 0; } } ); } } public static void sort(int[] indices, final int[] vals, boolean reverse) { sort(indices, 0, indices.length, vals, reverse); } public static void sort(int[] indices, final int[] vals) { sort(indices, 0, indices.length, vals, false); } public static void reverse_sort(int[] indices, final int[] vals) { sort(indices, 0, indices.length, vals, true); } public static void sort(int[] indices, final double[] vals, boolean reverse) { sort(indices, 0, indices.length, vals, reverse); } public static void sort(int[] indices, final double[] vals) { sort(indices, 0, indices.length, vals, false); } public static void reverse_sort(int[] indices, final double[] vals) { sort(indices, 0, indices.length, vals, true); } } ================================================ FILE: src/java/edu/stanford/math/plex/PointData.java ================================================ package edu.stanford.math.plex; import java.util.Arrays; import java.util.Iterator; import java.util.Random; /** * A PointData instance encodes distance information for a * data set. * * @version $Id$ */ public abstract class PointData { protected static Random rand = null; /** * Distance between 2 points. *

* * @param p1 index of the first point * @param p2 index of the second point * @return distance between the two points. */ abstract public double distance(int p1, int p2); /** * The number of points in this data set. * *

Indexing begins from 1, not 0, which means that the points go * from 1 to count(), inclusive. It is acceptable for an implementation * to allow points to be added. * *

* * @return The number of points in the data set. */ abstract public int count(); /** * Return true if the new point is good enough to be added to the current * set of points. Here, "good enough" means distinct from the other * points, but this can be overridden by subclasses. * * @param pt Point under consideration. * @param other_pts Points to compare with new points. * @param other_pts_count How many other points. * @return true if new pt is good enough, else false. */ boolean good_enough_point (int pt, int[] other_pts, int other_pts_count) { for (int i = 0; i < other_pts_count; i++) { if (other_pts[i] == pt) return false; } return true; } /** * Return a sorted array of distinct indices for "random points" in the * metric space.

* * @param number_of_points How many points we want. * @return An array of indices for the random points. */ public int[] random_points(int number_of_points) { if (rand == null) rand = new Random(); int max_pt = count(); int[] return_value = new int[number_of_points]; int i = 0; boolean all_good = true; while (true) { while (i < number_of_points) { int pt = 1 + rand.nextInt(max_pt); if (good_enough_point(pt, return_value, i)) return_value[i++] = pt; } Arrays.sort(return_value); all_good = true; for (i = 1; i < number_of_points; i++) { if (return_value[i-1] == return_value[i]) { return_value[i] = 1 + max_pt + i; all_good = false; } } if (all_good) return return_value; else Arrays.sort(return_value); i = number_of_points; while (return_value[i-1] > max_pt) { i--; assert (i > 0); } } } /** * NSpace instances also provide dimension information. */ public abstract static class NSpace extends PointData { /** * Dimension of the space. *

* * @return dimension of the space. */ abstract public int dimension(); abstract public double coordinate(int p, int i); public double xi(int p, int i) { return coordinate(p, i-1); } } public static class Discrete extends PointData { protected final int N; protected static class DSS extends SimplexStream { protected SimplexStream ss; protected int max_dimension; protected int num_pts; public boolean hasNext() { return ss.hasNext(); } public Simplex next() { return ss.next(); } public int size() { return ss.size(); } public int maxDimension() { return max_dimension; } /** * Make an iterator for the stream. *

* * @return Iterator instance for the stream. * * @see java.util.Iterator */ public Iterator iterator() { return ss.iterator(); } protected DSS() { ss = null; max_dimension = 0; } public DSS(SimplexStream s, int n, int max_d) { ss = s; num_pts = n; max_dimension = max_d; } } /** * Distance between 2 points. *

* * @param p1 index of the first point * @param p2 index of the second point * @return distance between the two points. */ public double distance(int p1, int p2) { if (p1 == p2) return 0.0; else return 1.0; } /** * The number of points in this data set. * *

Indexing begins from 1, not 0, which means that the points go * from 1 to count(), inclusive. It is acceptable for an implementation * to allow points to be added. * *

* * @return The number of points in the data set. */ public int count() { return N; } protected Discrete() { N = 0; } /** * Make a PointData.Discrete with N points. *

* * @param n The number of points in the discrete set. */ public Discrete(int n) { N = n; } /** * Make an instance of the boundary of the canonical (D+1)-Simplex. *

* * @param d The dimension of the "sphere-like" simplicial complex. */ public static SimplexStream DSphere(int d) { PointData p = new Discrete(d+2); RipsStream r = new RipsStream(2.0, d, 2.0, p); assert r.verify(); return (SimplexStream) new DSS(r, d+2, d+1); } public static SimplexStream DSphereKskeleton(int d, int k) { PointData p = new Discrete(d+2); RipsStream r = new RipsStream(2.0, k, 2.0, p); assert r.verify(); return (SimplexStream) new DSS(r, d+2, k+1); } } /** * Predicate instances are used weed out points that are * uninteresting in a given context (e.g., density too low or high). */ public static abstract class Predicate { /** * Underlying PointData for the predicate. *

* * @return A PointData instance. * */ abstract public PointData data(); /** * Is the point i interesting to this predicate? * *

* * @param i The index of the point being considered. * @return True if we care about the point here, else false. * */ abstract public boolean use(int i); } } ================================================ FILE: src/java/edu/stanford/math/plex/RDirectBufferData.java ================================================ package edu.stanford.math.plex; import java.nio.ByteBuffer; import java.nio.ByteOrder; import java.nio.DoubleBuffer; /** * The RDirectBufferData is a mechanism for transforming an R * distance matrix into a PointData. * * @version $Id$ */ public class RDirectBufferData extends PointData { /** * Max number of points. */ protected final int p_max; protected final DoubleBuffer distanceBuffer; /** * Use a pre-allocated buffer of doubles as the distance matrix. * The ByteBuffer passed to the constructor will be viewed as a * DoubleBuffer, which will let us use the capacity function to get the * max entry. * *

* * @param count The upper bound on i. i is 1-indexed * @param buf ByteBuffer instance to be used. * */ public RDirectBufferData(int count, ByteBuffer buf) { buf = buf.order(ByteOrder.nativeOrder()); distanceBuffer = buf.asDoubleBuffer(); p_max = count; if(count > Math.sqrt(distanceBuffer.capacity())) throw new IllegalArgumentException ("Specified count, " + count + ", exceeds capacity of data, " + (int)Math.sqrt(distanceBuffer.capacity()) + "."); } /** * Return the distance between the two points using the external * data, which is stored as 0-based columns. * *

* * @param p1 the first point * @param p2 the second point * @return the distance between p1 and p2 */ public double distance(int p1, int p2) { if(p1 == p2) return 0.0; return distanceBuffer.get(p_max*(p2-1) + (p1-1)); } public int count() { return p_max; } } ================================================ FILE: src/java/edu/stanford/math/plex/RipsStream.java ================================================ package edu.stanford.math.plex; import static edu.stanford.math.plex.WitnessStream.HUGE; import java.util.ArrayList; import java.util.Arrays; import java.util.Iterator; /** * A RipsStream instance is SimplexStream whose elements are * the simplices of the Rips complex of a PointData instance. The * implementation of this class is quite similar to that of * LazyWitnessStream. * * @see edu.stanford.math.plex.LazyWitnessStream * @see edu.stanford.math.plex.WitnessStream * * @version $Id$ */ public class RipsStream extends SimplexStream { /** * The PointData underlying this Rips complex. * */ public final PointData pdata; /** * The granularity used in assigning filtration indices to simplices. * *

A simplex in a Rips complex is regarded as coming into existence * when the "last" of its edges does some. Specifically, we assign a * persistence parameter to each Simplex which is the the * maximum of the persistence parameters assigned to each of the * component edges. The most obvious way to do that is to use the * length of an admissible edge as the persistence parameter of that * edge. (Actually, since the persistence parameters must be integers, * the appropriate index into a sorted array of edge lengths is * used. And recall that we allow there to be a maximum length of the * edges that we consider.) Since this can result in an set of * persistence indices that grows quadratically in the number of * points, we allow the user to control this growth by specifying a * positive granularity. In this case the filtration index of an edge * is the floor of the ratio of the edge length divided by the * granularity. This means that we know that the filtration indices * will never exceed the floor of the ratio of the max edge length * divided by the granularity. * */ public final double granularity; /** * The maximum dimension of a Simplex that will be admitted to the complex. */ public final int maxDimension; /** * The maximum length of an edge that will be admitted to the * complex. Currently protected. */ public final double edge_length_limit; protected double[] lengths_array; protected SimplexStream.Stack stack; /** * Is there a next Simplex in the stream? * *

* @return Return true if the stream is not yet empty. * */ public boolean hasNext() { return stack.hasNext(); } /** * Next Simplex in the stream. * *

* @return Return the smallest remaining Simplex instance. * */ public Simplex next() { return stack.next(); } /** * Constructor for RipsStream. * *

* Make a stream of the simplices in a Rips complex for data. *

* @param double delta Granularity to apply to the underlying metric. * @param int max_d Maximum dimension of Simplex instances we construct. * @param double max_length Maximum edge we will allow. * @param PointData data Metric data to use in constructing stream. * */ RipsStream(double delta, int max_d, double max_length, PointData data) { assert delta >= 0.0; granularity = delta; edge_length_limit = max_length; pdata = data; maxDimension = max_d; stack = find_simplices(max_length, max_d, data); } /** * How many simplices are in the stream? * *

* @return The number of simplices in the stream. * */ public int size() { return stack.size(); } /** * Max dimension of simplices in the stream. * *

* @return Max dimension of simplices in the stream. * */ public int maxDimension() { return stack.maxDimension(); } /** * Convert a filtration index into a persistence parameter (i.e., double) * -- gets overloaded by some subclasses. * *

* @param fi Filtration index to convert. * @return double persistence parameter. * */ public double convert_filtration_index(int fi) { if (granularity > 0.0) return granularity * fi; else return lengths_array[fi]; } /** * Make an iterator for the stream. *

* * @return Iterator instance for the stream. * * @see java.util.Iterator */ public Iterator iterator() { return stack.iterator(); } /** * Make an iterator for the stream elements of fixed dimension. *

* * @param d dimension of simplices of interest. * @return Iterator instance for the stream. * * @see java.util.Iterator */ public Iterator iterator(int d) { return stack.iterator(d); } /** * Return simplices of specified dimension that compare "favorably" with * a given findex.

* * @param dimension dimenion of interest. * @param test_index findex we are comparing against. * @param ct Type of comparison to use. * @return Simplex[] of matching simplices. */ public Simplex[] matchingSimplices(int dimension, int test_index, ComparisonType ct) { Iterator iter = iterator(dimension); ArrayList results = new ArrayList(); while(iter.hasNext()) { Simplex n = iter.next(); boolean push_it = false; switch(ct) { case LT: push_it = (n.findex() < test_index); break; case LE: push_it = (n.findex() <= test_index); break; case EQ: push_it = (n.findex() == test_index); break; case GE: push_it = (n.findex() >= test_index); break; case GT: push_it = (n.findex() > test_index); break; } if (push_it) results.add(n); } // extract results, put into Simplex[] { Simplex[] return_value = new Simplex[results.size()]; int counter = 0; for(Simplex s : results) return_value[counter++] = s; // I contend we don't need to sort -- Arrays.sort(return_value); return return_value; } } /** * Return simplices of specified dimension that compare "favorably" with * a given length.

* * @param dimension dimenion of interest. * @param test_len length we are comparing against. * @param ct Type of comparison to use. * @return Simplex[] of matching simplices. */ public Simplex[] matchingSimplices(int dimension, double test_len, ComparisonType ct) { int test_index = 0; if (lengths_array == null) // if we have no lengths_array, just make it into an findex in the // usual way test_index = (int)(Math.floor(test_len/granularity)); else { // translate into findex via the lengths_array test_index = Arrays.binarySearch(lengths_array, test_len); if (test_index < 0) { test_index = (-test_index) - 1; // not present -- test_index is now the insertion point for test_len, // so we have to examine the ct argument switch(ct) { case LT: case GE: break; case LE: ct = ComparisonType.LT; break; case GT: ct = ComparisonType.GE; break; case EQ: return new Simplex[0]; } } } return matchingSimplices(dimension, test_index, ct); } // don't use protected RipsStream() { edge_length_limit = 0.0; granularity = 0.0; maxDimension = 0; pdata = null; } // // The following package-protected static members are used by // LazyWitnessStream. // // Get from (i,j) to the index of the edge_info for the edge from i->j. static int edge_index(int i, int j, int n) { assert((i > 0) && (i < j) && (j <= n)); return (((n * (n - 1)) - ((n - i + 1) * (n - i))) / 2) + (j - (i + 1)); } // Test function. static boolean check_edge_index(int n) { int index_limit = (n * (n-1))/2; int prev_index = -1; // System.out.printf("\n\n"); for (int i = 1; i <= n; i++) { for (int j = i+1; j <= n; j++) { int current_index = edge_index(i, j, n); // System.out.printf(" %d = edge_index(%d, %d, %d)\n", // current_index, i, j, n); assert(current_index == (1 + prev_index)); assert(current_index < index_limit); assert(current_index >= 0); prev_index = current_index; } } assert(index_limit == (1 + prev_index)); //System.out.printf(" >>>>>> LIMIT = %d, last index = %d\n", // index_limit, prev_index); return true; } static int all_edges_present(int[] verts, int[] edge_info, int n) { int last_vert = verts[verts.length - 1]; int max_findex = 0; for (int i = 0; i < verts.length - 1; i++) { int f_ij = edge_info[edge_index(verts[i], last_vert, n)]; if (f_ij < 0) return -1; else if (f_ij > max_findex) max_findex = f_ij; } return max_findex; } // // The previous package-protected static members are used by // LazyWitnessStream. // // The algorithm here is quite simple. We build a SimplexStream.stack // and push all of the Points into it. We then make a queue for storing // Simplices as they are built, and note the beginning (via something // we call a Head). We then we make the edges that are short // enough, adding those to the queue. While adding the edges, we record // the distance information in an array (which we think of as the upper // half of a distance matrix). This "matrix" stores the findex for the // edge from i->j (i < j) or -1 if there is no edge. We then note the // "end of the 1-dimensional simplices" with another Head. Then, // at any point we have Head instances that mark the beginning and // end of the simplices of dimension k. We then iterate over each // Simplex s of dimension k, and for each p > max(s.vertices()), we // check to see if all the edges from p to each vertex exist. If they // do, then we create a new Simplex of dimension k+1 (and if k+1 isn't // the max dimension, we enqueue the new Simplex). This procedure means // that we examine only the possible combinations of vertices in each // dimension of interest, and we only examine a combination once // (because we look at sorted lists). protected SimplexStream.Stack find_simplices(double max_dist, int max_dimension, PointData data) { if (max_dimension < 0) return null; // Recall that "count" means that the points are indexed from 1 to N, inclusive. int N = data.count(); int[] edge_info = new int[(N * (N - 1)) / 2]; int max_findex; if (granularity > 0.0) { max_findex = (int)(Math.floor(max_dist/granularity)); } else { max_findex = ((N * (N - 1)) / 2); } // Construct the tail of the queue -- we add any simplices of less // than max dimension to this queue, so that we can go over go over // them again in a later pass SimplexStream.Tail q = new SimplexStream.Tail(); // Final repository for the elements of the Rips complex. SimplexStream.Stack stack = new SimplexStream.Stack(max_findex, max_dimension); // Fill in the edge_info array with -1's, which indicate "no edge". for (int i = 0; i < edge_info.length; i++) edge_info[i] = -1; // Add all of the points to the stack. for (int i = 1; i <= N; i++) stack.push(Simplex.makePoint(i, 0)); // If max_dimension is 0, we just want the points. if (max_dimension < 1) return stack; // Remember the start of dimension k, where in this case, k=1. SimplexStream.Head last_dim_start = new SimplexStream.Head(q); // Process the edges. We both enqueue them, and create the // edge_info[] which we use to bootstrap from dimension k to // dimension k+1. if (granularity == 0.0) { double[] edge_lens = new double[(N * (N - 1)) / 2]; int lengths_counter = 1; // for granularity == 0 we sort the lengths and use the index into // the sorted array of lengths as the filtration index for (int i = 1; i <= N; i++) { for (int j = i+1; j <= N; j++) { double dij = data.distance(i, j); if (dij <= max_dist) { edge_lens[edge_index(i, j, N)] = dij; lengths_counter++; } else edge_lens[edge_index(i, j, N)] = HUGE; } } // Copy the non-HUGE lengths into the lengths_array (leaving a 0 in // the first entry), and sort it -- we will use the index of dij in // lengths_array as the persistence index for the corresponding edge // simplex. We don't bother looking for duplicate lengths, because // these will occur with probability 0 in real data. lengths_array = new double[lengths_counter]; lengths_counter = 1; for (int i = 0; i < edge_lens.length; i++) { if (edge_lens[i] != HUGE) lengths_array[lengths_counter++] = edge_lens[i]; } Arrays.sort(lengths_array); // Use binary search to find the index to which the dij value // was moved during sorting. If the performance of this // matters, it would be possible to write a version of the sort // routine that keeps a map of the permutation performed by the // sort, but that seems unlikely to matter here. for (int i = 1; i <= N; i++) { for (int j = i+1; j <= N; j++) { int index = edge_index(i, j, N); double dij = edge_lens[index]; if (dij < HUGE) { int pindex = Arrays.binarySearch(lengths_array, dij); assert lengths_array[pindex] == dij; edge_info[index] = pindex; Simplex s = Simplex.makeEdge(i, j, pindex); stack.push(s); q = q.enqueue(s); } } } } else { for (int i = 1; i <= N; i++) { for (int j = i+1; j <= N; j++) { double dij = data.distance(i, j); if (dij <= max_dist) { int f_ij = (int)(Math.floor(dij/granularity)); edge_info[edge_index(i, j, N)] = f_ij; Simplex s = Simplex.makeEdge(i, j, f_ij); stack.push(s); q = q.enqueue(s); } } } } // We are ready to construct the higher dimensional data. Since we // already have the edges, we begin with 2-dimensional simplexes, // and continue until we have constructed those of max_dimension. int current_dimension = 2; while (current_dimension <= max_dimension) { // we start processing at last_dim_start SimplexStream.Head current = last_dim_start; // At this point all simplices of current_dimension-1 have been // added to the queue (and none of current_dimension), so we // stop processing for this dimension when current reaches end. SimplexStream.Head end = new SimplexStream.Head(q); // Remember end as last_dim_start, for the next iteration last_dim_start = end; // We construct a scratch array in which to store any potential // vertex sets for possible simplices of dimension // current_dimension. int[] verts = new int[current_dimension + 1]; while (current.lessThan(end)) { // Until current reaches end, extract simplices and copy // their vertices into the scratch array. Simplex face = current.nextEntry(); assert(face.dimension() == (current_dimension-1)); face.vertices(verts); // We know that any k dimensional simplex that we can admit // must have all of its faces in the list of k-1 simplices // (a simplex cannot belong to a complex unless all of its // faces belong, too). That means that any possible k // simplex [x1,...,x(k+1)] must have the face [x1,...,xk] // in the list. So we see that we can get to any possible k // simplex by adding a vertex "onto the end" (that is, the // new vertex is larger than any of the existing ones) of a // k-1 simplex. Further, it is easy to see that adding onto // the end of 2 distinct k-1 simplices can never yield the // same k simplex. So if we just add onto the end of the // simplices in the previous dimension, we will see all // potential k simplices precisely once. So if verts is // [v1,...,vk, ], then we are interested in any // possible simplex [v1,...,vk,x] with x > vk. In this case // we merely need to check if (v1, x),...,(v1, k) are // edges. If so, [v1,...,vk,x] is a simplex, and its // "diameter" is the max of diam([v1,...,vk]) and the // lengths of the edges (v1,x),...(vk,x). int largest_v = verts[current_dimension-1]; for (int new_last = largest_v + 1; new_last <= N; new_last++) { verts[current_dimension] = new_last; int f_new = all_edges_present(verts, edge_info, N); if (f_new >= 0) { Simplex newSimplex = Simplex.getSimplex(verts, Math.max(face.findex(), f_new)); stack.push(newSimplex); if (current_dimension < max_dimension) // if the dimension of newSimplex isn't maximal, // then we put it in the queue q = q.enqueue(newSimplex); } } } // Make sure that if we are exiting we have processed all // simplices in q. assert((current_dimension < max_dimension) || (last_dim_start.eql(new SimplexStream.Head(q)))); current_dimension++; } return stack; } } ================================================ FILE: src/java/edu/stanford/math/plex/Simplex.java ================================================ package edu.stanford.math.plex; /** * A Simplex is the basic unit for simplicial homology * calculations, literally. That is, the module in which simplicial * homology is defined is the free module over all simplices, so a simplex * is actually a basis element for this module. Formally, simplices are * elements of a set S of non-empty finite subsets of a set X which have * the property that if B is an element of S, and A is a non-empty subset * of B, then A is an element of S. Intuitively, if you imagine that the * points of X are in some n-dimensional Euclidean space, then a simplex is * that subset of Euclidean space that is given by the affine combinations * of its "corners". For instance, if B is the triangle given by corners * {a, b, c} is one of our simplices, then we require that the edge (line * segment) given by {a, c} is also a simplex. While we can describe this * relationship in a purely combinatorial fashion, the "meaning" is given * by the choice of simplices S, and this methodology used here always * makes some use of geometric techniques (e.g., metric spaces). * *

For reasons of efficiency, we use more than one encoding for * simplices, instead of using the obvious "array of vertices". The reason * for this is that these encodings of simplices can be much smaller, and * the code to manage them much faster, than if we use the obvious * implementation. We make Simplex an abstract class, instead * of an interface, both because code written to this class will be * slightly faster than if it were an interface, and because the root class * is a convenient repository for some utilities needed by the extension * classes, and for "global information" such as the characteristic of the * base field. * *

All but the most naive encoding must have, either implicitly or * explicitly, limits on the allowed dimension and number of landmarks that * can be used to construct simplices. By default all limits will either be * the explicit in the representation of the simplex or will be implicitly * the largest values that are feasible for that representation. See the * specific implementations for more details on this point. * *

The vertex set of any simplex depends on the context -- that is, for * a Simplex s, s.vertices() is an array of integers of limited size, and * the meaning of those integers will depend on the source of the Simplex * s. The data sets we operate on frequently have millions of points (and * we hope to push these even further in the future), but we only construct * simplices from much smaller sets, often representative subsets we call * "landmark sets". Since we are able to restrict landmarks to be in the * thousands, or even hundreds, we use a smaller number of bits to encode * the vertex sets for a simplex, often by "indirecting" through an array * of landmark indices to some much larger data set. Thus, a vertex of 10 * encoded within an instance of Simplex generally refers to * the point whose index is the 10th entry in some landmark set, not the * 10th point in the full data set. * * @author Harlan Sexton * @version 0.1 * */ abstract public class Simplex implements Comparable { /** * The filtration index of the Simplex.

Theoretically this could * be abstract, but in all of the implementations we use this value is * hard enough to find that it makes sense to cache it in the * instance. Also, doing it this way allows us to make it effectively * final without forcing the implementations to compute it during * instance creation. We also get rid of the table T[] in the algorithm * (see {@link edu.stanford.math.plex.Persistence} and references therein) by storing the * reduced boundary chain directly in the Simplex instance. This is * simpler, faster, and may even be smaller (it depends on what * percentage of slots in T[] actually got filled). */ protected int _findex = -1; protected Chain _chain; /** * Set the findex value, provided it hasn't already been done. *

* * * @return the findex value. * */ public int setfindex (int i) { assert(_findex < 0); if (_findex < 0) _findex = i; return _findex; } /** * Decrement the findex value -- this is a hack that should ONLY be used * if you know what you are doing. Changing the findex of a Simplex * already in a stream is a disaster.

* * * @return the findex value. * */ public int decrement_findex () { if (_findex < 0) _findex--; return _findex; } /** * Set the chain value, provided it hasn't already been set. *

* * * @return the chain value. * @exception IllegalStateException when setChain() has already been * called without an intervening clearChain() call. * */ public Chain setChain (Chain c) { if (_chain != null) throw new IllegalStateException("Simplex " + this.toString() + "already has chain entry: " + _chain.toString()); _chain = c; return _chain; } /** * Clear the chain value; used when we reuse the elementes in a stream. *

* */ public void clearChain () { _chain = null; } /** * Get the findex value. Should be as fast as if the slot were accessible. *

* * * @return the findex value. * */ public int findex () { return _findex; } /** * Get the chain value. Should be as fast as if the slot were accessible. *

* * * @return the chain value. * */ public Chain chain () { return _chain; } /** * Returns the dimension of self. *

* * * @return int, the dimension (i.e., 1 more than the number of vertices) of the simplex. * */ abstract public int dimension(); /** * Make a "blank" copy of the Simplex -- equivalent to getSimplex(this.vertices()). *

* * * @return the copied instance. * */ abstract public Simplex copy(); /** * Returns the indices of self as an array. *

* * * @return an int[] of indices into the LandmarkIndexArray. * */ abstract public int[] vertices(); /** * Returns the indices of self as an array. *

* * * @param verts An int[] in which to store the vertices -- it must be at * at least as long as the number of vertices. * @return an int[] of indices into the LandmarkIndexArray. * */ abstract public int[] vertices(int verts[]); /** * Is this a subset of s? *

* * * @param s The simplex to which to compare this. * @return True if this is a subset of s, else false. */ public boolean subset(Simplex s) { int stop = dimension(); int s_stop = s.dimension(); if (stop > s_stop) return false; return subset(s, new int[stop+1], new int[s_stop+1]); } /** * Is this a subset of s? *

* * * @param s The simplex to which to compare this. * @param v An int[] in which to put the vertices of this -- must be at * least as long as the number of vertices. * @param sv An int[] in which to put the vertices of s -- must be at * least as long as the number of vertices of s. * @return True if this is a subset of s, else false. */ public boolean subset(Simplex s, int[] v, int[] sv) { int stop = dimension(); int s_stop = s.dimension(); if (stop > s_stop) return false; vertices(v); s.vertices(sv); int current = 0; int s_current = 0; while (current <= stop) { int to_find = v[current++]; while(s_current <= s_stop) { if (sv[s_current++] == to_find) break; else if (s_current > s_stop) return false; } } assert(current == (stop+1)); return true; } /** * Overrides Object hashcode. * *

* @return CRC hash of the vertex set. * */ public int hashCode() { return CRC.hash32(this.vertices()); } /** * Overrides Object equals. * *

* This test is equivalent to an equality test on the vertices. *

* @param obj object to compare. * @return true or false, depending on whether or not the Simplex is = to obj. * */ public boolean equals(Object obj) { if (!(obj instanceof Simplex)) return false; Simplex s = (Simplex) obj; int this_dimension = this.dimension(); int s_dimension = s.dimension(); if (s_dimension == this_dimension) return (0 == Plex.comparePtArrays(this.vertices(), s.vertices())); else return false; } /** * Implements Comparable interface. * *

* This test is equivalent to lexicographic comparison of the vertex arrays. *

* @param s Simplex to compare. * @return negative, 0, or positive, if this <, =, resp. > than s. * */ public int compareTo(Simplex s) { int this_dimension = this.dimension(); int s_dimension = s.dimension(); if (s_dimension != this_dimension) return (this_dimension - s_dimension); else return Plex.comparePtArrays(this.vertices(), s.vertices()); } // The seq() and slt() methods are used to perform Chain and // Persistence operations. For instance, simplices in a Chain are // sorted so that arithmetic on Chains is linear in the size of the // instances. The findex() of a simplex is an essential part of the // ordering in the Persistence algorithm, but we don't regard it as // intrinsic to the Simplex otherwise. (The presence of an findex slot // in Simplex is for caching purposes, not because it is essential to // the definition of the type.) Therefore, compareTo(), hash() and // equals() ignore the value of the findex, and changing the findex // slot of a Simplex instance won't change its location in a // hashtable. In particular, it means that we can use a hashtable to // record the findex values of instances of Simplex, if we wish // (although I have no plans to do that at the moment except in initial // test code). To be explicit, the contract for slt() is that it sort // first on findex, second on dimension, and then after that, // lexicographically on vertices. The contract for a.seq(b) is that it // be functionally equivalent to !(a.slt(b) || b.slt(a)) in the places // that it is used, but as an optimization, in the places where slt() // and seq() are called, we can suppose that if the vertices for a and // b are the same, then their findex() values are the same, too. /** * Simplex Less Than. Used internally in Persistence and Chain * code. Not the same as compareTo. * *

* @param s Simplex to compare. * @return true if less than, else false. * */ abstract boolean slt(Simplex s); /** * Simplex EQuals. Used internally in Persistence and Chain code. * *

* @param s Simplex to compare. * @return true is equal, else false. * */ abstract boolean seq(Simplex s); /** * Get the simplex for a given set of vertices. * *

* @param vertices The vertex set. * @return A simplex for that set of vertices. */ public static Simplex getSimplex (int[] vertices) { if (vertices.length <= 2) return Packed2Simplex.makeSimplex(vertices); else if (vertices.length <= 4) return Packed4Simplex.makeSimplex(vertices); else if (vertices.length <= 6) return Packed6Simplex.makeSimplex(vertices); else if (vertices.length <= 8) return Packed8Simplex.makeSimplex(vertices); // we may make a Packed10Simplex, or larger, someday else throw new IllegalArgumentException("Simplices with more than 7 dimensions are not supported."); } /** * Get the simplex for a given set of vertices, including setting findex. * *

* @param vertices The vertex set. * @param findex The Filtration index. * @return A simplex for that set of vertices. */ public static Simplex getSimplex (int[] vertices, int findex) { Simplex s = getSimplex(vertices); s.setfindex(findex); return s; } /** * Get the simplex for an already verified array of vertices. * *

* @param vertices The vertex set. * @return A simplex for that set of vertices. */ public static Simplex getSimplexPresorted (int[] vertices) { if (vertices.length <= 2) return Packed2Simplex.makeSimplexPresorted(vertices); else if (vertices.length <= 4) return Packed4Simplex.makeSimplexPresorted(vertices); else if (vertices.length <= 6) return Packed6Simplex.makeSimplexPresorted(vertices); else if (vertices.length <= 8) return Packed8Simplex.makeSimplexPresorted(vertices); // we may make a Packed10Simplex, or larger, someday else throw new IllegalArgumentException("Simplices with more than 7 dimensions are not supported."); } /** * Get the simplex for an already verified array of vertices, including * setting findex. * *

* @param vertices The vertex set. * @param findex The Filtration index. * @return A simplex for that set of vertices. */ public static Simplex getSimplexPresorted(int[] vertices, int findex) { Simplex s = getSimplexPresorted(vertices); s.setfindex(findex); return s; } /** * Get the edge for a pair of vertices. * *

* @param v1 One vertex. * @param v2 Another vertex. * @return A 1-simplex, or edge. */ public static Simplex makeEdge (int v1, int v2, int findex) { Simplex s = Packed2Simplex.makeEdge(v1, v2); s.setfindex(findex); return s; } /** * Turn a vertex into a 0-simplex. * *

* @param v The vertex. * @return A 0-simplex, or point. */ public static Simplex makePoint (int v, int findex) { Simplex s = Packed2Simplex.makePoint(v); s.setfindex(findex); return s; } /** * Add a vertex to a simplex. * *

I can't recall why this method exists, so the implementation is * the easiest one I can think of. * @param v A vertex to adjoin. * @return The new simplex. */ public Simplex addVertex(int v) { int[] v_old = vertices(); int[] v_new = new int[v_old.length+1]; for (int i = 0; i < v_old.length; i++) v_new[i] = v_old[i]; v_new[v_old.length] = v; return Simplex.getSimplex(v_new); } /** * Add a vertex to a simplex, and set the findex. * *

* @param v A vertex to adjoin. * @param f The new findex. * @return The new simplex. */ public Simplex addVertex (int v, int f) { Simplex s = this.addVertex(v); s.setfindex(f); return s; } /** * Represent a Simplex as a String. * *

* @return A string that describes a Simplex. */ public String toString() { int[] vertices = this.vertices(); String base = "<"; if (_findex >= 0) base = String.format("<(%d)", _findex); if (vertices.length == 0) return base + ">"; else if (_findex >= 0) base = base + " "; for (int i = 0; i < vertices.length-1; i++) { base = base + String.format("%d, ", vertices[i]); } base = base + String.format("%d>", vertices[vertices.length-1]); return base; } /** * Sort a set of vertices into increasing order, as needed for some * Simplex operations. We use the bubblesort algorithm, since that is * fastest for very short arrays, which is what we have in practice. * *

* @param vertices The vertex set. * @return The sorted vertices. */ public static int[] vertex_sort (int[] vertices) { if ((vertices.length <= 1)) return vertices; for (int j = vertices.length - 1; j > 0; j--) { for (int i = 0; i < j; i++) { if (vertices[i+1] < vertices[i]) { int dummy = vertices[i]; vertices[i] = vertices[i+1]; vertices[i+1] = dummy; } } } return vertices; } /** * Sort an array of double into increasing order, as needed for some * Simplex operations. We use the bubblesort algorithm, since that is * fastest for very short arrays, which is what we have in practice. * *

* @param distances An array of double to be sorted.. * @return The sorted array. */ public static double[] dist_sort (double[] distances) { if ((distances.length <= 1)) return distances; for (int j = distances.length - 1; j > 0; j--) { for (int i = 0; i < j; i++) { if (distances[i+1] < distances[i]) { double dummy = distances[i]; distances[i] = distances[i+1]; distances[i+1] = dummy; } } } return distances; } /** * Sort a set of vertices into decreasing order, as needed for some * Simplex operations. We use the bubblesort algorithm, since that is * fastest for very short arrays, which is what we have in practice. * *

* @param vertices The vertex set. * @return The reverse sorted vertices. */ public static int[] simplex_reverse_sort (int[] vertices) { if (vertices.length <= 1) return vertices; for (int j = vertices.length - 1; j > 0; j--) { for (int i = 0; i < j; i++) { if (vertices[i+1] > vertices[i]) { int dummy = vertices[i]; vertices[i] = vertices[i+1]; vertices[i+1] = dummy; } } } return vertices; } /** * Sort, in place and using "persistence order", an array of * simplices. Null entries will be pushed to the end of the array -- that * is, null is considered to be larger than any non-null Simplex. */ public static void persistence_sort(Simplex[] sarray) { PlexSort.comp_sort((Object[])sarray, 0, sarray.length, new PlexSort.CompObj() { public int fn(Object o1, Object o2) { if (o1 == o2) return 0; if (o1 == null) return 1; if (o2 == null) return -1; Simplex s1 = (Simplex)o1; Simplex s2 = (Simplex)o2; if (s1.slt(s2)) return -1; else if (s2.slt(s1)) return 1; else return 0; } } ); } /** * Return an array of simplices that describes the boundary. The sign * associated with a face is -1 to the power of the index of that face in * the array. There is a static class method in Chain that will convert * an array of this type into a Chain for use in homology calculations. * *

* @return [face0, face1, ...] */ abstract public Simplex[] boundaryArray(); /** * Return the boundary of a simplex as a chain over a given characteristic. *

* @param p The characteristic * @return A chain representing the boundary. */ public Chain boundary(int p) { Simplex[] boundarySimplices = this.boundaryArray(); if(boundarySimplices == null) boundarySimplices = new Simplex[0]; int[] boundaryCoefficients = new int[boundarySimplices.length]; int sign = 1; for(int i=0; i0)?sign:p+sign; sign *= -1; } return new Chain(p,boundaryCoefficients,boundarySimplices); } // // Test code // // The code below this point is for testing purposes only. // /** * Return a random Simplex. A test function. * *

* @return A "random" Simplex. */ static Simplex random() { int length = (int) Math.floor((Math.random() * 9.0)); if (length > 8) length = 8; if (length < 1) length = 1; int[] vertices = new int[length]; for(int i = 0; i < length; i++) { int x = 1 + (int) Math.floor((Math.random() * 1000.0)); vertices[i] = x; } vertex_sort(vertices); for(int i = 0; i < length-1; i++) { if (vertices[i] == vertices[i+1]) { for(int j = i+1; j < length; j++) { vertices[j]++; } } } return getSimplexPresorted(vertices); } } ================================================ FILE: src/java/edu/stanford/math/plex/SimplexFaceIterator.java ================================================ package edu.stanford.math.plex; /** * The SimplexFaceIterator class. * *

A SimplexFaceIterator instance makes an iterator that * returns all of the faces of a Simplex (specified via a Simplex or a * SimplexHandle) in a given dimension range. It also keeps track of the * sign of the last one returned, so that this can be used to compute the * boundary of a simplex. * * @version $Id$ */ public class SimplexFaceIterator { protected int signOfLast; // The number of elements in the counter and current arrays -- the size // of the subsets that we are iterating over. protected final int k; // The number of elements in the vertices set -- the size of the // superset whose k-sets we are iterating over. protected final int N; // The actual vertex set that we are iterating over. protected final int[] vertices; // The k-length array of indices (that is , 0,...,N-1). protected final int[] counter; // The current "vertex subset". protected final int[] current; // Are there any more elements? public boolean hasNext() { return ((counter[k-1] < (N - 1)) || (counter[0] < (N - k))); } // This is a little tricky. We want a way to iterate over all of the // subsets of the vertex set, and return simplices for each of those // subsets. (These subsets are the lower dimensional faces of the // simplex.) If we consider the set with N elements to be {0,...,N-1}, // then the k subsets of N are given by all possible {x0<...k>0, // we set an array we use as a "counter" to the initial value of // [0,...,k-2,k-2] (that is, the last entry is one less than it should // be), that when we ask for the first time for the "next" set, we get // the first set. // // In practice our vertex sets are given as an array of indices // V[]=[v0,v1,...,v(N-1)], so the k-subsets are actually enumerated by // enumerating the indices -- that is we enumerate [x0,...,x(k-1)] in the // set [0,...N-1], and then the sets {V[x0],...,V[x(k-1)]} iterate over // all k-sets of V. This is the reason that the code here is using // 0-based counting. /** * Get the next face in an iteration of all faces of dimension k. * *

* * @return vertices for the next k-face. * */ public int[] next () { int i; if (counter[k-1] < (N-1)) counter[k-1]++; else { for (i = k-2; i >= 0; i--) { if (counter[i] < ((N-k)+i)) { int base = counter[i] + 1; for (int j = i; j < k; j++) counter[j] = base++; break; } } } for (i = 0; i < k; i++) current[i] = vertices[counter[i]]; signOfLast = -signOfLast; return current; } protected SimplexFaceIterator() { // do not use k = 0; N = 0; counter = null; current = null; vertices = null; signOfLast = 0; } /** * Construct a new iterator for faces of a simplex given by an array. * *

* * @param vertices An int[] specifying the vertices. * @param dimension Dimension of the faces we care about. * */ public SimplexFaceIterator(int[] vertices, int dimension) { if ((dimension >= 0) && (vertices.length > dimension)) { k = dimension + 1; N = vertices.length; if ((k+1) == N) signOfLast = -1; else signOfLast = 0; this.vertices = vertices; counter = new int[k]; for (int i = 0; i < k-1; i++) counter[i] = i; counter[k-1] = k-2; current = new int[k]; } else { k = 1; N = 1; counter = new int[1]; current = new int[1]; this.vertices = null; signOfLast = 0; } } /** * Construct a new iterator for the faces specified dimension. * *

* * @param s Simplex whose faces are of interest. * @param dimension Dimension of the faces we care about (often * dimension of the simplex - 1). * */ public SimplexFaceIterator(Simplex s, int dimension) { this(s.vertices(), dimension); } /** * Return the dimension of the faces generated by this iterator. */ public int getDimension() { return k - 1; } /** * Return the sign of the last face -- only useful when codimension is 1. */ public int getSignOfLast() { return signOfLast; } } ================================================ FILE: src/java/edu/stanford/math/plex/SimplexStream.java ================================================ package edu.stanford.math.plex; import java.util.Iterator; import java.util.NoSuchElementException; /** * An instance of the abstract class SimplexStream provides * the simplices of a filtered complex in lexicographic order on * persistence index and dimension. The ordering is unspecified beyond that * point, and may even vary from instance to instance. The reason that * SimplexStream has both hasNext() and next() * methods and implements the Iterable interface is * that the internal iteration methods are allowed to be destructive. That * is, it is possible (and in fact does happen) that * stream.next() will remove simplices from * stream, making it impossible to use this method to iterate * over stream a second time. Therefore, unless you are * prepared to consume the stream, use the Iterable * interface. * * @version $Id$ */ public abstract class SimplexStream implements Iterable, Iterator { /** * Is there a next Simplex in the stream? * *

* @return Return true if the stream is not yet empty. * */ public abstract boolean hasNext(); /** * Next Simplex in the stream. * *

* @return Return the smallest remaining Simplex instance. * */ public abstract Simplex next(); /** * Unsupported remove() operation. * * @exception UnsupportedOperationException */ public void remove() { throw new UnsupportedOperationException(); } /** * How many simplices are in the stream? * *

* @return The number of simplices in the stream. * */ public abstract int size(); /** * Max dimension of simplices in the stream. * *

* @return Max dimension of simplices in the stream. * */ public abstract int maxDimension(); /** * Convert a PersistenceInterval into Float format in a stream-specific manner. * *

* @param p PersistenceInterval to convert. * @return Converted PersistenceInterval.Float. * */ public PersistenceInterval.Float convertInterval(PersistenceInterval p) { if (p instanceof PersistenceInterval.Float) return (PersistenceInterval.Float) p; else { PersistenceInterval.Int pi = (PersistenceInterval.Int) p; double start = convert_filtration_index(pi.start); double end = p.infiniteExtent()? PersistenceInterval.Float.MAX_END: convert_filtration_index(pi.end); return new PersistenceInterval.Float(pi.dimension, start, end); } } /** * convert a PersistenceBasisInterval into Float format in a stream-specific manner. * *

* @param p PersistenceBasisInterval to convert. * @return Converted PersistenceBasisInterval.Float. */ public PersistenceBasisInterval.Float convertInterval(PersistenceBasisInterval p) { if(p instanceof PersistenceBasisInterval.Float) return (PersistenceBasisInterval.Float) p; else { PersistenceBasisInterval.Int pbi = (PersistenceBasisInterval.Int) p; PersistenceInterval.Int pii = new PersistenceInterval.Int(pbi.dimension, pbi.start, pbi.end); PersistenceInterval.Float pif = convertInterval(pii); return new PersistenceBasisInterval.Float(pbi.basisElement, pif.start, pif.end); } } /** * Convert a filtration index into a persistence parameter (i.e., double) * -- gets overloaded by some subclasses. * *

* @param fi Filtration index to convert. * @return double persistence parameter. * */ public double convert_filtration_index(int fi) { return (double) fi; } /** * Check the stream as much as possible. * *

* @return True if the stream is consistent, else false. * */ public boolean verify() { SimplexTable faces = new SimplexTable(size()); for(Simplex s : this) { Simplex[] bdy = s.boundaryArray(); if (bdy != null) { for(Simplex f : bdy) { Simplex tmp = faces.get(f); if ((tmp == null) || (tmp.findex() > s.findex())) return false; } } faces.put(s); } return true; } public enum ComparisonType { LT, LE, EQ, GE, GT }; // As we are constructing the stream contents, we need to temporarily // store simplices in a FIFO queue. Since we want to deal with the case // where we have a LOT of simplices in the stream, we make some // special-purpose classes with a very small amounts of overhead. NOTE: // The FIFO queue functionality requires using both the Tail, to // which objects are added, and the Head, from which they are // extracted. /** * An instance of Tail provides the FI part of a FIFO * queue. To retrieve the enqueued simplices in FO order, attach a * Head to this instance. */ public static class Tail { static final int ENTRIES_DEFAULT_LENGTH = 100; Simplex[] entries; int current; Tail next; // make an empty SimplexStream.Segment with the default length public Tail() { entries = new Simplex[ENTRIES_DEFAULT_LENGTH]; current = 0; next = null; } // make an empty SimplexStream.Segment with the given length public Tail(int len) { entries = new Simplex[len]; current = 0; next = null; } public String toString() { return String.format("[QT(%d:%d): {%d}%s]", current, entries.length, System.identityHashCode(entries), (next != null)?("->"+next.toString()):""); } public Tail enqueue(Simplex s) { if (current < entries.length) { assert(next == null); entries[current++] = s; return this; } else { next = new Tail(entries.length); next.entries[next.current++] = s; return next; } } } /** * A Head provides the FO part of a FIFO queue when * attached to a Tail to which simplices have been * enqueued. * */ public static class Head { Simplex[] entries; int current; Tail orig; // don't use protected Head() { } // make a head for a Tail public Head(Tail q) { entries = q.entries; current = q.current; orig = q; } // Duplicate a Head. Note that interating with a copy has no effect // on the original, and no effect on the underlying Tail. public Head copy() { Head tmp = new Head(); tmp.entries = entries; tmp.current = current; tmp.orig = orig; return tmp; } public String toString() { return String.format("[QH(%d:%d): {%d} (%s)]", current, entries.length, System.identityHashCode(entries), orig.toString()); } /** * Get the next entry from the underlying Queue. * *

* This only works is we don't outrun the underlying Tail. *

* @return next Simplex in the Queue. * */ public Simplex nextEntry() { if (current == entries.length) { // System.out.printf("nextEntry() for %s\n", toString()); Tail n = orig.next; entries = n.entries; current = 0; orig = n; } return entries[current++]; } /** * Compare one Head to another. * *

This is a very fast comparison that will only work if both * Head instances are heads for the same Tail. *

* @param q Head to compare * @return true if this is prior to q, else false. * */ public boolean lessThan (Head q) { return ((entries != q.entries) || (current < q.current)); } /** * Check equality of Head with another. * *

This is used only by assertions. *

* @param q Head to compare * @return true if this is equal to q, else false. * */ public boolean eql(Head q) { return ((entries == q.entries) || (current == q.current)); } } /** * Stack is a multiway segmented stack for sorted storage * of simplices. * *

The class SimplexStream.Stack provides a simple, * fast, scalable implementation of SimplexStream. Instances are arrays * of segmented stacks of simplices, simplices are less than, * equivalent, or greater than one another (for the purposes of the * Persistence computations) if and only if the corresponding indices * for their segmented stacks are <, ==, or >. In addition, the next() * method drops references to the segments as soon as possible, which * means that the stack consumes progressively less memory as its * contents are processed. */ public static class Stack extends SimplexStream { // Rather like the Queue code above, but this is even simpler -- // the building block of a segmented stack. protected static class Segment { protected final Simplex[] entries; protected int current; protected Segment next; // don't use protected Segment() { entries = null; current = 0; next = null; } // make an empty SimplexStream.Segment with a specified length protected Segment(int len) { entries = new Simplex[len]; current = 0; next = null; } public String toString() { return String.format("[Seg(%d:%d): {%d}%s]", current, entries.length, System.identityHashCode(entries), (next != null)?("->"+next.toString()):""); } protected Segment push(Simplex s) { if (current < entries.length) { entries[current++] = s; return this; } else { Segment tmp = new Segment(entries.length); tmp.next = this; tmp.entries[tmp.current++] = s; return tmp; } } } protected static int STACK_SEGMENT_LENGTH = 10; protected final Segment[] segments; protected final int findex_bound; protected final int dimension_bound; protected final int segment_length; protected int size; protected int segments_index; protected int simplex_index; // don't use protected Stack() { segment_length = 0; segments = null; dimension_bound = 0; findex_bound = 0; segments_index = 0; simplex_index = 0; size = 0; } /** * Constructor for Stack. * *

* Make a multi-way stack that automatically sorts simplices. *

* @param max_findex Maximum Filtration Index we'll use. * @param max_d Maximum dimension of a Simplex to be pushed. * */ public Stack(int max_findex, int max_d) { segment_length = STACK_SEGMENT_LENGTH; dimension_bound = (max_d + 1); findex_bound = (max_findex + 1); segments = new Segment[dimension_bound * findex_bound]; segments_index = 0; simplex_index = 0; size = 0; } public String toString() { return String.format("[STK(%d,%d): %d/%d, si=%d/%d]", dimension_bound, findex_bound, segments_index, segments.length, simplex_index, segment_length); } protected int simplexIndex(Simplex s) { assert((s.findex() < findex_bound) && (s.dimension() < dimension_bound)); return (s.findex() * dimension_bound) + s.dimension(); } /** * Push a Simplex into the stream. * *

Add the Simplex s to the stream so that it will be retrieved * in the proper order. *

* @param s Simplex instance to push. * @return s * */ public Simplex push(Simplex s) { int index = simplexIndex(s); size++; if (segments[index] == null) segments[index] = new Segment(segment_length); segments[index] = (segments[index]).push(s); return s; } /** * How many simplices are in the stream? * *

* @return The number of simplices in the stream. * */ public int size() { return size; } /** * Max dimension of simplices in the stream. * *

* @return Max dimension of simplices in the stream. * */ public int maxDimension() { return (dimension_bound - 1); } /** * Is there a next Simplex in the stream? * *

* @return Return true if the stream is not yet empty. * */ public boolean hasNext() { if (segments[segments_index] != null) { if (simplex_index < segments[segments_index].current) return true; else { simplex_index = 0; Segment next = segments[segments_index].next; segments[segments_index] = next; if (next != null) { assert(0 < next.current); return true; } } } assert(segments[segments_index] == null); assert(simplex_index == 0); while ((segments_index < segments.length) && (segments[segments_index] == null)) segments_index++; if (segments_index == segments.length) return false; assert(segments[segments_index] != null); assert(0 < segments[segments_index].current); return true; } /** * Return the next Simplex in the stream. This operations * removes the simplex returned from the stream, so * repeated iterations are impossible with the method. * *

* @return The smallest remaining Simplex instance. * */ public Simplex next() { Segment seg = segments[segments_index]; Simplex s; if (seg != null) { if (simplex_index < seg.current) { s = seg.entries[simplex_index]; seg.entries[simplex_index++] = null; assert(size > 0); size--; return s; } else { simplex_index = 0; seg = segments[segments_index] = segments[segments_index].next; if (seg != null) { assert(0 < seg.current); s = seg.entries[simplex_index]; seg.entries[simplex_index++] = null; assert(size > 0); size--; return s; } } } assert(segments[segments_index] == null); assert(simplex_index == 0); while ((segments_index < segments.length) && ((seg = segments[segments_index]) == null)) segments_index++; if (segments_index == segments.length) return null; assert(segments[segments_index] != null); assert(0 < seg.current); s = seg.entries[simplex_index]; seg.entries[simplex_index++] = null; assert(size > 0); size--; return s; } /** * Instances provide Iterator for non-destructive * iterating over Stack entries. That is, repeated iteration over a * Stack instance is possible with multiple instances of this * class. */ protected static class StackIterator implements Iterator { protected Segment[] segments; protected int segments_index; protected Segment current_seg; protected int simplex_index; protected int fixed_dimension; protected final int dimension_bound; protected StackIterator() { segments = null; segments_index = 0; current_seg = null; simplex_index = 0; fixed_dimension = -1; dimension_bound = 0; } public StackIterator(Stack stack) { segments = stack.segments; segments_index = 0; current_seg = null; simplex_index = 0; fixed_dimension = -1; dimension_bound = stack.dimension_bound; } public StackIterator(Stack stack, int dimension) { segments = stack.segments; segments_index = -1; current_seg = null; simplex_index = 0; if ((dimension < 0) || (dimension >= stack.dimension_bound)) throw new IllegalArgumentException(dimension + " must be >= 0 and <= " + stack.dimension_bound); fixed_dimension = dimension; dimension_bound = stack.dimension_bound; } /** * Returns true if the iterator has more simplices. * * @return true if the iterator has more simplices, else * false. */ public boolean hasNext() { while(true) { while (current_seg == null) { if (segments_index >= segments.length) return false; else { if (fixed_dimension >= 0) { if (segments_index < 0) segments_index = fixed_dimension; else segments_index += dimension_bound; if (segments_index >= segments.length) return false; else current_seg = segments[segments_index]; } else current_seg = segments[segments_index++]; } } while (current_seg != null) { while ((simplex_index < current_seg.current) && (current_seg.entries[simplex_index] == null)) simplex_index++; if (simplex_index < current_seg.current) return true; else { simplex_index = 0; current_seg = current_seg.next; } } } } /** * Returns the next Simplex in the iteration of the Stack. * Used in concert with the {@link #hasNext()} method returns * return each Simplex in the Stack exactly once. Does * not have any side effects on the stream. *

* @return the next Simplex in the Stack. * @exception NoSuchElementException Stack has no more elements. */ public Simplex next() { while(true) { while (current_seg == null) { if (segments_index >= segments.length) throw new NoSuchElementException(); else { if (fixed_dimension >= 0) { if (segments_index < 0) segments_index = fixed_dimension; else segments_index += dimension_bound; if (segments_index >= segments.length) throw new NoSuchElementException(); else current_seg = segments[segments_index]; } else current_seg = segments[segments_index++]; } } while (current_seg != null) { while ((simplex_index < current_seg.current) && (current_seg.entries[simplex_index] == null)) simplex_index++; if (simplex_index < current_seg.current) { return current_seg.entries[simplex_index++]; } else { simplex_index = 0; current_seg = current_seg.next; } } } } /** * Unsupported remove() operation. * * @exception UnsupportedOperationException */ public void remove() { throw new UnsupportedOperationException(); } } /** * Make a non-destructive iterator for the Stack. *

* * @return Iterator instance for the stack. * * @see java.util.Iterator */ public Iterator iterator() { return new StackIterator(this); } /** * Make a non-destructive iterator for fixed dimensional entries in the Stack. *

* * @param d dimension of entries we want to iterate over * @return Iterator instance for the stack. * * @see java.util.Iterator */ public Iterator iterator(int d) { return new StackIterator(this, d); } } } ================================================ FILE: src/java/edu/stanford/math/plex/SimplexTable.java ================================================ package edu.stanford.math.plex; import java.util.Iterator; import java.util.NoSuchElementException; /** * A SimplexTable is an interning table for instances of * Simplex. That is, the simplices in the table are both key and * value. There is no removal operation, and putting a simplex equivalent * to one already in the table throws an IllegalArgumentException. The * largest table we can make will hold around 976M simplices. Attempting to * add a simplex to table that is full throwns an IllegalStateException. * * @version $Id$ */ public class SimplexTable implements Iterable { // The simplest possible hashtable. We don't support removing things, // and an attempt to put a Simplex twice will throw an // IllegalArgumentException. protected int size = 0; protected int entry_limit = 0; protected int mask = 0; protected Simplex[] table; protected static final double LOAD_FACTOR = 1.4; protected int MAX_TABLE_SIZE = (1 << 30); protected int MAX_ENTRY_LIMIT = (int) Math.floor(MAX_TABLE_SIZE / LOAD_FACTOR); // don't use protected SimplexTable() {} /** * Make a new SimplexTable. * *

* * You must make sure that limit is as large as the number of simplices * you will be storing in the table, as the table will NOT * grow, and attempting to add simplices past the limit throws an * exception which isn't caught in the Persistence algorithm. * *

* * @param limit An upper bound on the number of simplices that * will be interned in the table -- must be less than or equal * to MAX_ENTRY_LIMIT (which is about 976M). * * @exception IllegalArgumentException * * @see java.lang.System#getProperty(java.lang.String) * @see SecurityManager#checkPermission */ public SimplexTable(int limit) { entry_limit = limit; int required_table_limit = (int)Math.floor((LOAD_FACTOR * limit) + 1.0); if (required_table_limit > MAX_TABLE_SIZE) throw new IllegalArgumentException("SimplexTable size too large: " + limit + " (max=" + MAX_ENTRY_LIMIT + ")"); int table_size = 1; while (table_size < required_table_limit) table_size <<= 1; if ((table_size - 1)/LOAD_FACTOR > entry_limit) entry_limit = (int)((table_size - 1)/LOAD_FACTOR); assert(table_size <= MAX_TABLE_SIZE); table = new Simplex[table_size]; mask = table_size - 1; } // The obvious way to grow a table -- it isn't clear that there is any // point in trying to be more clever here. protected void grow_table(int newLimit) { if (newLimit > entry_limit) { SimplexTable tmp_table = new SimplexTable(newLimit); // transfer the contents of the table to the tmp new one for (int i = 0; i < table.length; i++) { Simplex tmp = table[i]; if (tmp != null) tmp_table.put(tmp); } // clear the old array and copy the slots of the new table into the old one for (int i = 0; i < table.length; i++) table[i] = null; size = tmp_table.size; table = tmp_table.table; entry_limit = tmp_table.entry_limit; mask = tmp_table.mask; tmp_table.table = null; tmp_table.size = 0; tmp_table.entry_limit = 0; tmp_table.mask = 0; } } /** * The number of simplices that have been interned. *

* @return the number of simplices put in the table. */ public int size() { return size; } /** * The number of simplices that can be interned before growing the table. *

* @return the number of simplices that can be put in the table before growing it. */ public int limit() { return entry_limit; } /** * Get the interned version of the Simplex s. * *

Because the CRC hashing -- which we use for simplices -- is * good, we just mask the hash code for our initial index. We keep the * table sufficiently empty that we don't get a lot of false hits, so * we reprobe with increment 1 to improve locality of reference in * these (potentially) very large tables.

* * @param s The simplex for which we want an interned version. * @return An interned version of s, or null if there is none. */ public Simplex get(Simplex s) { int hash = s.hashCode(); int index = hash & mask; int reprobe_index = index; do { Simplex si = table[reprobe_index]; if (si == null) // it's a miss return null; if (si.seq(s)) // it's a hit return si; reprobe_index++; if (reprobe_index >= mask) reprobe_index = 0; } while (reprobe_index != index); // we checked everything return null; } /** * Intern a Simplex. * *

Intern s in the table. When used by the Persistence algorithm, s * should be a Simplex from the SimplexStream, which means that it will * the filtration index set. An attempt to intern the same simplex twice * throws an exception.

* * @param s the Simplex to intern * @return the interned Simplex. * * @exception IllegalStateException when attempting to grow too big. * @exception IllegalArgumentException when attempting to put a Simplex twice. * */ public Simplex put(Simplex s) { int hash = s.hashCode(); int index = hash & mask; int reprobe_index = index; if (size >= entry_limit) grow_table(2 * entry_limit); do { Simplex si = table[reprobe_index]; if (si == null) { // a blank space for our Simplex. size++; table[reprobe_index] = s; return s; } if (si.seq(s)) throw new IllegalArgumentException("SimplexTable duplicate put: " + s.toString()); reprobe_index++; if (reprobe_index >= mask) reprobe_index = 0; } while (reprobe_index != index); // this shouldn't happen throw new IllegalStateException("SimplexTable implementation error"); } /** * Return the interned version of a Simplex. * *

Like put(), except no error if something is already in the table.

* * @param s the Simplex key * @return the interned Simplex. * * @exception IllegalStateException when attempting to grow too big. * */ public Simplex getInterned(Simplex s) { int hash = s.hashCode(); int index = hash & mask; int reprobe_index = index; if (size >= entry_limit) grow_table(2 * entry_limit); do { Simplex si = table[reprobe_index]; if (si == null) { // a blank space for our Simplex. size++; table[reprobe_index] = s; return s; } if (si.seq(s)) return si; reprobe_index++; if (reprobe_index >= mask) reprobe_index = 0; } while (reprobe_index != index); // this shouldn't happen throw new IllegalStateException("SimplexTable implementation error"); } /** * Make an iterator for the table. *

* * @return Iterator instance for the table. * * @see java.util.Iterator */ public Iterator iterator() { return new SimpleTableIterator(this); } /** * Instances provide Iterator for non-destructive iterating * over entries. That is, repeated iteration over an SimplexTable * instance is possible with multiple instances of this class. */ protected static class SimpleTableIterator implements Iterator { protected int current_index; protected int current_count; protected final int start_size; protected final Simplex[] vec; protected final SimplexTable parent; protected SimpleTableIterator(SimplexTable tbl) { current_index = -1; current_count = 0; start_size = tbl.size; vec = tbl.table; parent = tbl; } // Are the parent stream and the iterator consistent? protected boolean parent_is_consistent() { return ((parent.table == vec) && (parent.size == start_size)); } /** * Returns true if the iterator has more simplices. * * @return true if the iterator has more simplices, else * false. */ public boolean hasNext() { if (!parent_is_consistent()) return false; else return (current_count < start_size); } /** * Returns the next Simplex in the iteration over the table. * Used in concert with the {@link #hasNext()} method returns * return each Simplex in the table exactly once. Does * not have any side effects on the table. *

* @return the next Simplex in the table. * @exception NoSuchElementException table has no more elements. */ public Simplex next() { if (!parent_is_consistent()) throw new IllegalStateException("The parent SimplexTable (" + parent.toString() + ") has changed since this iterator was created."); if (current_count >= start_size) throw new NoSuchElementException(); Simplex tmp = vec[++current_index]; while (tmp == null) tmp = vec[++current_index]; current_count++; return tmp; } /** * Unsupported remove() operation. * * @exception UnsupportedOperationException */ public void remove() { throw new UnsupportedOperationException(); } } } ================================================ FILE: src/java/edu/stanford/math/plex/TmpStream.java ================================================ package edu.stanford.math.plex; import java.util.Iterator; import java.util.NoSuchElementException; /** * The TmpStream class. Test code. The next() * methods for instances of this class do not remove simplices * from the stream. * * @version $Id$ */ public class TmpStream extends SimplexStream implements Iterable, Iterator { final Simplex[] simplices; private int current_index; private int end_index; private int max_dimension; // explicitly construct the example witness complex from the paper by // A. Zomorodian and G. Carlsson, "Computing persistent homology," // Discrete and Computational Geometry, 33 (2), pp. 247-274. static Simplex[] PaperComplex() { Simplex[] return_value = new Simplex[11]; int current = 0; return_value[current++] = Simplex.getSimplex(new int[] {1}, 0); return_value[current++] = Simplex.getSimplex(new int[] {2}, 0); return_value[current++] = Simplex.getSimplex(new int[] {3}, 1); return_value[current++] = Simplex.getSimplex(new int[] {4}, 1); return_value[current++] = Simplex.getSimplex(new int[] {1, 2}, 1); return_value[current++] = Simplex.getSimplex(new int[] {2, 3}, 1); return_value[current++] = Simplex.getSimplex(new int[] {3, 4}, 2); return_value[current++] = Simplex.getSimplex(new int[] {1, 4}, 2); return_value[current++] = Simplex.getSimplex(new int[] {1, 3}, 3); return_value[current++] = Simplex.getSimplex(new int[] {1, 2, 3}, 4); return_value[current++] = Simplex.getSimplex(new int[] {1, 3, 4}, 5); return return_value; } // explicitly make a 2-d Torus. private static Simplex[] TorusComplex() { Simplex[] return_value = new Simplex[54]; int current = 0; return_value[current++] = Simplex.getSimplex(new int[] {1}, 0); return_value[current++] = Simplex.getSimplex(new int[] {2}, 0); return_value[current++] = Simplex.getSimplex(new int[] {3}, 0); return_value[current++] = Simplex.getSimplex(new int[] {4}, 0); return_value[current++] = Simplex.getSimplex(new int[] {5}, 0); return_value[current++] = Simplex.getSimplex(new int[] {6}, 0); return_value[current++] = Simplex.getSimplex(new int[] {7}, 0); return_value[current++] = Simplex.getSimplex(new int[] {8}, 0); return_value[current++] = Simplex.getSimplex(new int[] {9}, 0); return_value[current++] = Simplex.getSimplex(new int[] {1, 2}, 0); return_value[current++] = Simplex.getSimplex(new int[] {1, 3}, 0); return_value[current++] = Simplex.getSimplex(new int[] {2, 3}, 0); return_value[current++] = Simplex.getSimplex(new int[] {1, 4}, 0); return_value[current++] = Simplex.getSimplex(new int[] {2, 5}, 0); return_value[current++] = Simplex.getSimplex(new int[] {3, 6}, 0); return_value[current++] = Simplex.getSimplex(new int[] {1, 6}, 0); return_value[current++] = Simplex.getSimplex(new int[] {2, 4}, 0); return_value[current++] = Simplex.getSimplex(new int[] {3, 5}, 0); return_value[current++] = Simplex.getSimplex(new int[] {4, 5}, 0); return_value[current++] = Simplex.getSimplex(new int[] {4, 6}, 0); return_value[current++] = Simplex.getSimplex(new int[] {5, 6}, 0); return_value[current++] = Simplex.getSimplex(new int[] {4, 7}, 0); return_value[current++] = Simplex.getSimplex(new int[] {4, 9}, 0); return_value[current++] = Simplex.getSimplex(new int[] {5, 7}, 0); return_value[current++] = Simplex.getSimplex(new int[] {5, 8}, 0); return_value[current++] = Simplex.getSimplex(new int[] {6, 8}, 0); return_value[current++] = Simplex.getSimplex(new int[] {6, 9}, 0); return_value[current++] = Simplex.getSimplex(new int[] {7, 9}, 0); return_value[current++] = Simplex.getSimplex(new int[] {8, 9}, 0); return_value[current++] = Simplex.getSimplex(new int[] {7, 1}, 0); return_value[current++] = Simplex.getSimplex(new int[] {7, 3}, 0); return_value[current++] = Simplex.getSimplex(new int[] {7, 8}, 0); return_value[current++] = Simplex.getSimplex(new int[] {8, 1}, 0); return_value[current++] = Simplex.getSimplex(new int[] {8, 2}, 0); return_value[current++] = Simplex.getSimplex(new int[] {9, 2}, 0); return_value[current++] = Simplex.getSimplex(new int[] {9, 3}, 0); return_value[current++] = Simplex.getSimplex(new int[] {1, 2, 4}, 0); return_value[current++] = Simplex.getSimplex(new int[] {2, 4, 5}, 0); return_value[current++] = Simplex.getSimplex(new int[] {2, 3, 5}, 0); return_value[current++] = Simplex.getSimplex(new int[] {3, 5, 6}, 0); return_value[current++] = Simplex.getSimplex(new int[] {1, 4, 6}, 0); return_value[current++] = Simplex.getSimplex(new int[] {1, 3, 6}, 0); return_value[current++] = Simplex.getSimplex(new int[] {4, 5, 7}, 0); return_value[current++] = Simplex.getSimplex(new int[] {5, 7, 8}, 0); return_value[current++] = Simplex.getSimplex(new int[] {5, 6, 8}, 0); return_value[current++] = Simplex.getSimplex(new int[] {6, 8, 9}, 0); return_value[current++] = Simplex.getSimplex(new int[] {4, 7, 9}, 0); return_value[current++] = Simplex.getSimplex(new int[] {4, 6, 9}, 0); return_value[current++] = Simplex.getSimplex(new int[] {7, 8, 1}, 0); return_value[current++] = Simplex.getSimplex(new int[] {8, 1, 2}, 0); return_value[current++] = Simplex.getSimplex(new int[] {8, 9, 2}, 0); return_value[current++] = Simplex.getSimplex(new int[] {9, 2, 3}, 0); return_value[current++] = Simplex.getSimplex(new int[] {7, 1, 3}, 0); return_value[current++] = Simplex.getSimplex(new int[] {7, 9, 3}, 0); assert current == return_value.length; return return_value; } // don't use //private TmpStream() { simplices = null; } public TmpStream(Simplex[] entries) { simplices = entries; current_index = 0; { int max_d = 0; int index = 0; Simplex s; while((index < simplices.length) && ((s = simplices[index++]) != null)) { if (max_d < s.dimension()) max_d = s.dimension(); max_dimension = max_d + 1; } end_index = index; } } /** * Returns true if the stream has more simplices. * * @return true if the stream has more simplices, else * false. */ public boolean hasNext() { return (current_index < end_index); } /** * Returns the next Simplex in the iteration of the Stack. * Used in concert with the {@link #hasNext()} method returns * return each Simplex in the Stack exactly once. *

* @return the next Simplex in the Stack. * @exception NoSuchElementException Stack has no more elements. */ public Simplex next() { if (current_index < end_index) return simplices[current_index++]; else throw new NoSuchElementException(); } /** * Unsupported remove() operation. * * @exception UnsupportedOperationException */ public void remove() { throw new UnsupportedOperationException(); } public int size() { return (end_index - current_index); } public int maxDimension() { return max_dimension; } public Iterator iterator() { return (Iterator) new TmpStream(simplices); } public static TmpStream PaperTestCase() { return new TmpStream(PaperComplex()); } public static TmpStream Torus() { return new TmpStream(TorusComplex()); } } ================================================ FILE: src/java/edu/stanford/math/plex/Torus.java ================================================ package edu.stanford.math.plex; import static java.lang.Math.PI; import static java.lang.Math.cos; import static java.lang.Math.sin; import static java.lang.Math.sqrt; /** * A Torus instance is discrete simulation of a d-dimensional torus. For testing. * *

Simplest implementation of a d-dimensional torus. Intended for testing. * * @version $Id$ */ public class Torus extends PointData.NSpace { static final double COORD_LIMIT = 2.0 * PI; final double[] points; final int dimensions; /** * The number of dimensions of the space. * *

* * @return the dimension of the data. */ public int dimension() { return dimensions; } /** * i-th coordinate of point p; * *

* @param p the point * @param i the coordinate index * @return i-th coordinate */ public double coordinate(int p, int i) { int p_base = dimensions * p; if ((i >= dimensions) || (i < 0)) throw new IllegalArgumentException("Coordinate index " + i + "must be in range [0, " + (dimensions-1) + "]."); if ((i % 1) == 1) return sin(points[p_base + i]); else return cos(points[p_base + i]); } /** * The number of data points. * *

* * @return the number of points */ public int count() { if (points != null) return (points.length/dimensions)-1; else return 0; } /** * Toroidal distance. * *

* * @param p1 the first point * @param p2 the second point * @return the distance between p1 and p2 on the torus. */ public double distance (int p1, int p2) { if (p1 == p2) return 0.0; else if ((p1 == 0) || (p2 == 0)) return Double.MAX_VALUE; else { int p1_base = dimensions * p1; int p2_base = dimensions * p2; double accum = 0.0; for (int i = 0; i < dimensions; i++) { double p1ix = cos(points[p1_base + i]); double p1iy = sin(points[p1_base + i]); double p2ix = cos(points[p2_base + i]); double p2iy = sin(points[p2_base + i]); accum += (((p1ix - p2ix) * (p1ix - p2ix)) + ((p1iy - p2iy) * (p1iy - p2iy))); } return sqrt(accum); } } // Make sure that the data and dimension arguments are not absurd. private boolean pointsAreConsistent(double[] data, int dimension) { if (dimension < 1) return false; if ((data.length % dimension) != 0) return false; if (data.length <= dimension) return false; for (int i = 0; i < dimension; i++) { if (data[i] != 0.0) return false; } return true; } /** * Make a Torus with a given data array. * *

* * @param data double[] of point data. */ public Torus(double[] data, int d) { points = data; dimensions = d; assert pointsAreConsistent(data, dimensions); } // exponentiation of integers private int expt(int n, int k) { assert (n >= 0) && (k >= 0); if (k == 0) { return 1; } else if (n == 0) { return 0; } else { int accum = 1; for (int i = 0; i < k; i++) { assert (accum > 0) && ((n * accum) > 0); accum = n * accum; } return accum; } } // Increment a d-dimensional array of points so that we systematically // go through all of the points in an incr-length grid. private boolean incr_pt(double[] pt, double incr) { for (int i = 0; i < pt.length; i++) { if ((incr + pt[i]) < COORD_LIMIT) { pt[i] += incr; // clear the previous indices while(i > 0) pt[--i] = 0.0; return true; } } return false; } /** * Make an n-way grid on the unit Torus. * *

* * @param n grid size parameter */ public Torus(int n, int d) { assert (n > 0) && (d > 0); int pt_counter = expt(n, d); double[] data = new double[d * (pt_counter + 1)]; double[] pt = new double[d]; double incr = COORD_LIMIT/((double) n); for (int i = 1; i <= pt_counter; i++) { for (int j = 0; j < d; j++) { data[(d * i) + j] = pt[j]; } boolean success = incr_pt(pt, incr); assert (i == pt_counter) || success; } assert(pointsAreConsistent(data, d)); points = data; dimensions = d; } // Argless constructor for this class Test use only. public Torus() { double[] data = new double[] {0, 0, 0, 0, .5, .5, 0, .5, .5, 0, .25, 0, 0, .25, .25, .25, .25, .5}; dimensions = 2; assert(pointsAreConsistent(data, dimensions)); points = data; } } ================================================ FILE: src/java/edu/stanford/math/plex/WitnessStream.java ================================================ package edu.stanford.math.plex; import java.util.Arrays; import java.util.HashSet; import java.util.Iterator; import java.util.Random; /** * A WitnessStream is an iterable Witness complex. * *

A WitnessStream is a SimplexStream whose elements are the simplices * of the Witness complex of a PointData instance. That is, a simplex is * added to the complex only each face is present and a witness is found * for the entire simplex. The details of this construction are described * in Topological estimation using witness complexes, Vin de Silva * and Gunnar Carlsson, Symposium on Point-Based Graphics, ETH, Zurich, * Switzerland, June 2-4, 2004. * * @see edu.stanford.math.plex.LazyWitnessStream * * @version $Id$ */ public class WitnessStream extends SimplexStream { /** * Randomly choose a subset of a given PointData for use as landmarks. * *

* @param data PointData from which to choose landmarks. * @param L number of landmarks to choose. * @return An int[] containing indices of the landmarks. * */ public static int[] makeRandomLandmarks(PointData data, int L) { assert(L <= data.count()); int N = data.count(); // landmarks[0] is always 0 int[] landmarks = new int[L+1]; HashSet used = new HashSet(L); Random rand = new Random(); for(int counter = 1; counter < landmarks.length; ){ int possible = rand.nextInt(N) + 1; Integer pInteger = new Integer(possible); if (!used.contains(pInteger)) { used.add(pInteger); landmarks[counter++] = possible; } } return landmarks; } /** * Estimate Rmax for a given PointData and landmark set. * *

* @param data The entire data set. * @param landmarks The landmark set. * @return The max/min of the landmarks to points distances. * */ public static double estimateRmax(PointData data, int[] landmarks) { int L = landmarks.length - 1; int N = data.count(); double Rmax = 0.0; for (int n = 1; n <= N; n++) { // for each point, find the closest landmark double m_n = HUGE; for (int l = 1; l <= L; l++) { m_n = min(m_n, data.distance(landmarks[l], n)); } // then take the max over all points of the closest landmark Rmax = max(m_n, Rmax); } return Rmax; } // the pdata, landmarks and granularity can't change, but we (may) // allow the limit to increase, which can result in more simplices // being added. protected final PointData pdata; protected final double granularity; protected final int maxDimension; protected final int[] landmarks; protected double maxR; protected SimplexStream.Stack stack; /** * Is there a next Simplex in the stream? * *

* @return Return true if the stream is not yet empty. * */ public boolean hasNext() { return stack.hasNext(); } /** * Next Simplex in the stream. * *

* @return Return the smallest remaining Simplex instance. * */ public Simplex next() { return stack.next(); } /** * Constructor for WitnessStream. * *

* Make a stream of the simplices in a Witness complex for data. *

* @param delta Granularity to apply to the underlying metric. * @param max_d Maximum dimension of Simplex instances we construct. * @param R Maximum R we will use. * @param landmarks Indices of points to use as landmarks. The * simplices constructed will use the landmark * indices, rather than the indices into data. * @param PointData data Metric data to use in constructing stream. * */ WitnessStream(double delta, int max_d, double R, int[] landmarks, PointData data) { assert delta > 0.0; granularity = delta; this.landmarks = landmarks; maxR = R; pdata = data; maxDimension = max_d; stack = find_simplices(delta, R, max_d, landmarks, data); } /** * How many simplices are in the stream? * *

* @return The number of simplices in the stream. * */ public int size() { return stack.size(); } /** * Max dimension of simplices in the stream. * *

* @return Max dimension of simplices in the stream. * */ public int maxDimension() { return stack.maxDimension(); } /** * Convert a filtration index into a persistence parameter (i.e., double) * -- gets overloaded by some subclasses. * *

* @param fi Filtration index to convert. * @return double persistence parameter. * */ public double convert_filtration_index(int fi) { return granularity * fi; } /** * Make an iterator for the stream. *

* * @return Iterator instance for the stream. * * @see java.util.Iterator */ public Iterator iterator() { return stack.iterator(); } // don't use protected WitnessStream() { granularity = 0.0; maxDimension = 0; landmarks = null; pdata = null; } // Implementation note: In the code below, L is the number of landmarks // and N is the number of data points. To make the code match the // papers a bit more, we have the indices go from 1 to L (or N), // instead of from 0 to L-1 (or N-1), which would be the normal way in // C (and hence C++ and Java). So the 0-th entry of things in nothing, // and when we make arrays that get indexed directly, they are 1 // longer. When we index matrices we create a 1-array and then have an // indexing function that adjusts the arguments (that is, we can make // the 1-array exactly the right length). Since Java should inline // these indexing functions, and the compiler can't deal with 2-arrays // of fixed size (as it would in C or C++), I chose to implement // matrices this way. // // When there is at most one of each, I use l as the index over // landmarks and n as the index over data. (I have found it hard to // tell l from 1 in the code a couple of times while writing it, so // don't feel bad if you make the same mistake reading it.) // Get from (n,k) to the index of m(n, k). See the paper referenced // above for meaning of m[]. The k index is an ordinal, not any of the // l/n/d values that we've mentioned up to now. protected static int m_index(int n, int k, int N) { assert((k > 0) && (1 <= n) && (n <= N)); return ((k-1) * N) + (n-1); } // // The following package-protected static members are used by // LazyWitnessStream. // // Compute distance matrix entry for given landmark/data_point. static double distance_ln(int l, int n, int[] landmarks, PointData data) { if (landmarks[l] == n) // exclude the landmark from consideration //return HUGE; return 0; else return data.distance(landmarks[l], n); } static final double HUGE = Double.MAX_VALUE/2; // D[] index for the distance from landmark l to data point n. static int D_index(int l, int n, int L, int N) { assert((l > 0) && (l <= L) && (n > 0) && (n <= N)); return ((l-1) * N) + (n-1); } static double min(double x, double y) { if (x < y) return x; else return y; } static double max(double x, double y) { if (x > y) return x; else return y; } static int max(int x, int y) { if (x > y) return x; else return y; } // // The preceding package-protected static methods are used by // LazyWitnessStream. // // The algorithm here is a bit different than the the one for Rips // complexes, but it is still an iterative process in increasing // dimension of the simplices being constructed. A (non-lazy) Witness // complex contains a simplex s iff the complex contains each of the // faces of s, and there is a witness for s itself. The idea is to // start off adding the landmarks, and building the distance matrix, as // we do in LazyWitnessStream. However, after that we construct an // array m[][] of double[max_dimension] of the 1st, 2nd, // ... max_dimension-th smallest distances for each of the 1<=n<=N pts // in data. Then, we construct the edge set just as for // LazyWitnessStream with nu=2. Now, at each step for dim = d, we have // the d-1 dimensional simplices, each with there filtration indices // set, stored in the queue. We then create an intering table for this // set of d-1 dimensional "faces", and iterate over the d-dimensional // simplices just as in RipsStream or LazyWitnessStream. However, the // first step in processing a d-dimensional simplex is to compute its // boundary, and confirm that each face is in the interning table. If // this succeeds we will return the maximum filtration index of all of // the faces. If it fails, we go onto the next d-dimensional simplex, // but if it succeeds, we must find the 1<=n<=N with the smallest // max(dist(i, p1), ... dist(i, pd)). We take this value, subtract from // it the entry in m[k-1][i] (the k-th smallest distance, indexed from // 0 to max_dimension-1). If this difference Rs is <= R_max, we accept // the simplex, and the filtration index is the maximum of the maximum // of the faces and floor(max(Rs, 0.0)/delta). Note that this // iteration is more expensive both because it is necessary to // construct m[][], but also because the last step of acceptance // requires O(k*N) operations. I see no way of avoiding this. protected SimplexStream.Stack find_simplices(double delta, double R_max, int max_dimension, int[] landmarks, PointData data) { // Recall that we never use 0 as a simplex index, so landmarks[0] // should be empty assert(landmarks[0] == 0); // there is no point doing this unless 1 < L <= N and max_dimension <= L. assert((1 < (landmarks.length-1)) && (max_dimension <= (landmarks.length-1)) && ((landmarks.length-1) < data.count())); if (max_dimension < 0) return null; // The landmarks are indexed from 1 to L, inclusive, and since 0 is excluded, // L = landmarks.length-1. int L = landmarks.length - 1; int max_findex = (int)(Math.floor(R_max/granularity)); // Construct the tail of the queue -- we add any simplices of // dimension d < max_dimension to this queue, so that we can // iterate over them them in constructing the simplices of // dimension d+1. SimplexStream.Tail q = new SimplexStream.Tail(); // Final repository for the elements of the Witness complex. SimplexStream.Stack stack = new SimplexStream.Stack(max_findex, max_dimension); // Recall that "count" means that the points are indexed from 1 to // N, inclusive. int N = data.count(); // we can think of this as 2-dimensional, but it's (supposed to me) // simpler and faster to convert the two indices to a single one // via an index function, so that's what we'll do double[] m = new double[N * (max_dimension+1)]; double[] D = new double[L * N]; // fill in the distance matrix for (int l = 1; l <= L; l++) for (int n = 1; n <= N; n++) D[D_index(l, n, L, N)] = distance_ln(l, n, landmarks, data); // Add all of the landmark Points (0-simplices) to the stack. for (int l = 1; l <= L; l++) stack.push(Simplex.makePoint(l, 0)); // If max_dimension is 0, we just want the Points. if (max_dimension < 1) return stack; // Remember the start of dimension k, where in this case, k=1. SimplexStream.Head last_dim_start = new SimplexStream.Head(q); // Remember how many d-1 dimensional simplices are being // made. These are the faces of the d dimensional simplices, and we // want to intern all possible faces to make checking faster. See // below for more details. int faces_to_intern = 0; // construct the metric info m[] and process the edges { // Now we make m[] -- we want the smallest max_dimension // entries from each column of D. { double[] m_tmp = new double[L+1]; for (int n = 1; n <= N; n++) { for (int l = 1; l <= L; l++) m_tmp[l] = D[D_index(l, n, L, N)]; // sort the initial contents of m_tmp -- it might be // faster to do this by hand, but it is a tiny amount // of the time spent in this function, and when I tried // once to do it by hand, I messed it up Arrays.sort(m_tmp); assert(m_tmp[0] == 0.0); // copy the contents of m_tmp into m for(int d = 1; d <= max_dimension+1; d++) { assert(m_tmp[d] < HUGE/2.0); m[m_index(n, d, N)] = m_tmp[d]; } } } // Process the edges. Unlike RipsStream and LazyWitnessStream, // there is no special preprocessing going on at this step. The // only special thing about this case is that we know that ALL // of the faces of the edges (that is, all the vertices) are in // the complex, so we can skip the "intern the k-1 dimensional // simplices and then see if they exist" step here. But other // than that, the process of admitting an edge is the same as // the higher dimensional cases. We keep it here because we // need to start the dimensional iteration someplace, and // because it emphasizes the similarities between building this // type of complex and the lazy version. Here i and j are the // landmark indices -- this seemed better than using l1 and l2. for (int i = 1; i <= L; i++) { for (int j = i+1; j <= L; j++) { // compute the R at which the edge comes into existence // without the m[] adjustment double e_ij = HUGE; assert(e_ij >= 0.0); for (int n = 1; n <= N; n++) { double tmp_ijn = max(D[D_index(i, n, L, N)], D[D_index(j, n, L, N)]) - m[m_index(n, 2, N)]; assert(tmp_ijn >= 0.0); e_ij = min(e_ij, tmp_ijn); } // if the edge appears early enough, create it, and // then push and enqueue it if (e_ij <= R_max) { int f_ij = (int)(Math.floor(e_ij/granularity)); Simplex s = Simplex.makeEdge(i, j, f_ij); stack.push(s); q = q.enqueue(s); // count the edges -- these will be all possible // faces for the triangles, and we will be able to // immediately exclude any triangle whose boundary // has an edge not in this set faces_to_intern++; } } } } // We are ready to construct the higher dimensional data. Since we // already have the edges, we begin with 2-dimensional simplexes, // and continue until we have constructed those of max_dimension. int current_dimension = 2; while (current_dimension <= max_dimension) { // we start processing at last_dim_start SimplexStream.Head current = last_dim_start; SimplexStream.Head interning_current = current.copy(); // At this point all simplices of current_dimension-1 have been // added to the queue (and none of current_dimension), so we // stop processing for this dimension when current reaches end. SimplexStream.Head end = new SimplexStream.Head(q); // Remember end as last_dim_start, for the next iteration last_dim_start = end; // We construct a scratch array in which to store any potential // vertex sets for possible simplices of dimension // current_dimension. int[] verts = new int[current_dimension + 1]; // Make a table of all of the current_dimension-1 faces -- for // any constructed current_dimension simplex, we can quickly // check that all of its faces are present by taking the // boundary and verifying that each face is in the table. SimplexTable faces = new SimplexTable(faces_to_intern); // to avoid repeatedly looking up distances for the faces vertices, // we make an array in which to cache these values double[] face_R = new double[N+1]; // indicate whether this has been initialize for this face boolean face_R_initialized = false; // reset the counter faces_to_intern = 0; while (interning_current.lessThan(end)) { // Until interning_current reaches end, extract simplices // and put them in the faces table. Simplex face = interning_current.nextEntry(); faces.put(face); } while (current.lessThan(end)) { // Until current reaches end, extract simplices and copy // their vertices into the scratch array. Simplex face = current.nextEntry(); assert(face.dimension() == (current_dimension-1)); face.vertices(verts); face_R_initialized = false; // We know that any d dimensional simplex that we can admit // must have all of its faces in the list of d-1 simplices // (a simplex cannot belong to a complex unless all of its // faces belong, too). That means that any possible d // simplex [x1,...,x(d+1)] must have the face [x1,...,xd] // in the list. So we see that we can get to any possible d // simplex by adding a vertex "onto the end" (that is, the // new vertex is larger than any of the existing ones) of a // d-1 simplex. Further, it is easy to see that adding onto // the end of 2 distinct d-1 simplices can never yield the // same d simplex. So if we just add onto the end of the // simplices in the previous dimension, we will see all // potential d simplices precisely once. So if verts is // [x1,...,xd, ], then we are interested in any // possible simplex [x1,...,xd,x] with x > xd. In this case // we must first take [x1,...,xd,x].boundary() and see if // all of the entries are in the faces table (although, of // course, we could ignore the first entry). Then if all // faces are present, we have to search for the smallest R // for which a witness exists for the the simplex. If that // R is less than R_max, then the simplex is added, and // it's filtration index is the min of the filtration // indices of the faces and floor(R/granularity). int largest_v = verts[current_dimension-1]; for (int new_last = largest_v + 1; new_last <= L; new_last++) { verts[current_dimension] = new_last; Simplex possible = Simplex.getSimplexPresorted(verts); Simplex[] bdy = possible.boundaryArray(); int max_face_fi = 0; for(int fi = 0; fi < bdy.length; fi++) { Simplex interned_face = faces.get(bdy[fi]); if (interned_face != null) max_face_fi = max(max_face_fi, interned_face.findex()); else { max_face_fi = -1; break; } } if (max_face_fi >= 0) { double possible_R = HUGE; // Look for a witness for "possible" -- this part // of the code is where a large majority of the time is // spent. Is there some better way to do this? if (!face_R_initialized) { // this hack seems to save about 30% of the time // initialize face_R for the new face for (int n = 1; n <= N; n++) { double R_n = 0.0; for(int vi = 0; vi < current_dimension; vi++) R_n = max(R_n, D[D_index(verts[vi], n, L, N)]); face_R[n] = R_n; } face_R_initialized = true; } for (int n = 1; n <= N; n++) { double R_n = max(face_R[n], D[D_index(verts[current_dimension], n, L, N)]); R_n -= m[m_index(n, current_dimension+1, N)]; assert(R_n >= 0.0); possible_R = min(possible_R, R_n); } if (possible_R <= R_max) { possible.setfindex(max(max_face_fi, (int)Math.floor(possible_R/delta))); stack.push(possible); if (current_dimension < max_dimension) { // if the dimension of possible isn't // maximal, then we put it in the queue and // count it for interning the next time q = q.enqueue(possible); faces_to_intern++; } } } } } // Make sure that if we are exiting we have processed all // simplices in q. assert((current_dimension < max_dimension) || (last_dim_start.eql(new SimplexStream.Head(q)))); current_dimension++; } return stack; } } ================================================ FILE: src/java/edu/stanford/math/plex4/api/FilteredStreamInterface.java ================================================ package edu.stanford.math.plex4.api; import edu.stanford.math.plex.EuclideanArrayData; import edu.stanford.math.plex.Plex; import edu.stanford.math.plex.RipsStream; import edu.stanford.math.plex4.homology.chain_basis.Simplex; import edu.stanford.math.plex4.interop.Plex3Stream; import edu.stanford.math.plex4.metric.impl.EuclideanMetricSpace; import edu.stanford.math.plex4.metric.interfaces.AbstractSearchableMetricSpace; import edu.stanford.math.plex4.metric.landmark.LandmarkSelector; import edu.stanford.math.plex4.streams.impl.ExplicitCellStream; import edu.stanford.math.plex4.streams.impl.ExplicitSimplexStream; import edu.stanford.math.plex4.streams.impl.LazyWitnessStream; import edu.stanford.math.plex4.streams.impl.VietorisRipsStream; import edu.stanford.math.plex4.streams.impl.WitnessStream; import edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream; public class FilteredStreamInterface { public static ExplicitSimplexStream createExplicitSimplexStream() { return new ExplicitSimplexStream(); } public static ExplicitSimplexStream createExplicitSimplexStream(double maxFiltrationValue) { return new ExplicitSimplexStream(maxFiltrationValue); } public static ExplicitCellStream createExplicitCellStream() { return new ExplicitCellStream(); } public static ExplicitCellStream createExplicitCellStream(double maxFiltrationValue) { return new ExplicitCellStream(maxFiltrationValue); } public static VietorisRipsStream createPlex4VietorisRipsStream(double[][] points, int maxDimension, double maxFiltrationValue, int numDivisions) { AbstractSearchableMetricSpace metricSpace = new EuclideanMetricSpace(points); VietorisRipsStream stream = new VietorisRipsStream(metricSpace, maxFiltrationValue, maxDimension, numDivisions); stream.finalizeStream(); return stream; } public static VietorisRipsStream createPlex4VietorisRipsStream(AbstractSearchableMetricSpace metricSpace, int maxDimension, double maxFiltrationValue, int numDivisions) { VietorisRipsStream stream = new VietorisRipsStream(metricSpace, maxFiltrationValue, maxDimension, numDivisions); stream.finalizeStream(); return stream; } public static VietorisRipsStream createPlex4VietorisRipsStream(double[][] points, int maxDimension, double[] filtrationValues) { AbstractSearchableMetricSpace metricSpace = new EuclideanMetricSpace(points); VietorisRipsStream stream = new VietorisRipsStream(metricSpace, filtrationValues, maxDimension); stream.finalizeStream(); return stream; } public static VietorisRipsStream createPlex4VietorisRipsStream(AbstractSearchableMetricSpace metricSpace, int maxDimension, double[] filtrationValues) { VietorisRipsStream stream = new VietorisRipsStream(metricSpace, filtrationValues, maxDimension); stream.finalizeStream(); return stream; } public static AbstractFilteredStream createPlex3VietorisRipsStream(double[][] points, int maxDimension, double maxFiltrationValue, int numDivisions) { EuclideanArrayData pData = Plex.EuclideanArrayData(points); RipsStream plex3RipsStream = Plex.RipsStream(maxFiltrationValue / numDivisions, maxDimension, maxFiltrationValue, pData); AbstractFilteredStream stream = new Plex3Stream(plex3RipsStream); stream.finalizeStream(); return stream; } public static LazyWitnessStream createPlex4LazyWitnessStream(LandmarkSelector selector, int maxDimension, double maxFiltrationValue, int numDivisions) { LazyWitnessStream stream = new LazyWitnessStream(selector.getUnderlyingMetricSpace(), selector, maxDimension, maxFiltrationValue, numDivisions); stream.finalizeStream(); return stream; } public static AbstractFilteredStream createPlex3LazyWitnessStream(LandmarkSelector selector, int maxDimension, double maxFiltrationValue, int numDivisions) { EuclideanArrayData pData = Plex.EuclideanArrayData(selector.getUnderlyingMetricSpace().getPoints()); edu.stanford.math.plex.LazyWitnessStream plex3WitnessStream = Plex.LazyWitnessStream(maxFiltrationValue / numDivisions, maxDimension, maxFiltrationValue, 2, convertTo1Based(selector.getLandmarkPoints()), pData); AbstractFilteredStream stream = new Plex3Stream(plex3WitnessStream, selector.getLandmarkPoints()); stream.finalizeStream(); return stream; } public static WitnessStream createPlex4WitnessStream(LandmarkSelector selector, int maxDimension, double maxFiltrationValue, int numDivisions) { WitnessStream stream = new WitnessStream(selector.getUnderlyingMetricSpace(), selector, maxDimension, maxFiltrationValue, numDivisions); stream.finalizeStream(); return stream; } public static AbstractFilteredStream createPlex3WitnessStream(LandmarkSelector selector, int maxDimension, double maxFiltrationValue, int numDivisions) { EuclideanArrayData pData = Plex.EuclideanArrayData(selector.getUnderlyingMetricSpace().getPoints()); edu.stanford.math.plex.WitnessStream plex3WitnessStream = Plex.WitnessStream(maxFiltrationValue / numDivisions, maxDimension, maxFiltrationValue, convertTo1Based(selector.getLandmarkPoints()), pData); AbstractFilteredStream stream = new Plex3Stream(plex3WitnessStream, selector.getLandmarkPoints()); stream.finalizeStream(); return stream; } private static int[] convertTo1Based(int[] array) { int[] result = new int[array.length + 1]; result[0] = 0; for (int i = 0; i < array.length; i++) { result[i + 1] = array[i] + 1; } return result; } } ================================================ FILE: src/java/edu/stanford/math/plex4/api/PersistenceAlgorithmInterface.java ================================================ package edu.stanford.math.plex4.api; import java.util.ArrayList; import java.util.List; import org.apache.commons.math.fraction.Fraction; import edu.stanford.math.plex4.autogen.homology.BooleanAbsoluteHomology; import edu.stanford.math.plex4.autogen.homology.BooleanClassicalHomology; import edu.stanford.math.plex4.autogen.homology.BooleanRelativeHomology; import edu.stanford.math.plex4.autogen.homology.IntAbsoluteHomology; import edu.stanford.math.plex4.autogen.homology.IntClassicalHomology; import edu.stanford.math.plex4.autogen.homology.IntRelativeHomology; import edu.stanford.math.plex4.autogen.homology.ObjectAbsoluteHomology; import edu.stanford.math.plex4.autogen.homology.ObjectClassicalHomology; import edu.stanford.math.plex4.autogen.homology.ObjectRelativeHomology; import edu.stanford.math.plex4.homology.chain_basis.Cell; import edu.stanford.math.plex4.homology.chain_basis.CellComparator; import edu.stanford.math.plex4.homology.chain_basis.Simplex; import edu.stanford.math.plex4.homology.chain_basis.SimplexComparator; import edu.stanford.math.plex4.homology.chain_basis.SimplexPair; import edu.stanford.math.plex4.homology.chain_basis.SimplexPairComparator; import edu.stanford.math.plex4.homology.interfaces.AbstractPersistenceAlgorithm; import edu.stanford.math.plex4.homology.interfaces.AbstractPersistenceBasisAlgorithm; import edu.stanford.math.plex4.interop.Plex3PersistenceAlgorithm; import edu.stanford.math.primitivelib.algebraic.impl.ModularIntField; import edu.stanford.math.primitivelib.algebraic.impl.RationalField; import edu.stanford.math.primitivelib.autogen.algebraic.IntAbstractField; import edu.stanford.math.primitivelib.autogen.algebraic.ObjectAbstractField; import edu.stanford.math.primitivelib.autogen.formal_sum.BooleanSparseFormalSum; import edu.stanford.math.primitivelib.autogen.formal_sum.IntSparseFormalSum; import edu.stanford.math.primitivelib.autogen.formal_sum.ObjectSparseFormalSum; public class PersistenceAlgorithmInterface { private static IntAbstractField intField = ModularIntField.getInstance(2); private static ObjectAbstractField fractionField = RationalField.getInstance(); /* * Simplicial Homology. */ public static AbstractPersistenceAlgorithm getPlex3SimplicialAbsoluteHomology(int maxDimension) { return new Plex3PersistenceAlgorithm(maxDimension); } public static AbstractPersistenceBasisAlgorithm> getBooleanSimplicialAbsoluteHomology(int maxDimension) { return new BooleanAbsoluteHomology(SimplexComparator.getInstance(), 0, maxDimension); } public static AbstractPersistenceBasisAlgorithm> getIntSimplicialAbsoluteHomology(int maxDimension) { return new IntAbsoluteHomology(intField, SimplexComparator.getInstance(), 0, maxDimension); } public static AbstractPersistenceBasisAlgorithm> getRationalSimplicialAbsoluteHomology(int maxDimension) { return new ObjectAbsoluteHomology(fractionField, SimplexComparator.getInstance(), 0, maxDimension); } public static AbstractPersistenceAlgorithm getBooleanSimplicialClassicalHomology(int maxDimension) { return new BooleanClassicalHomology(SimplexComparator.getInstance(), 0, maxDimension); } public static AbstractPersistenceAlgorithm getIntSimplicialClassicalHomology(int maxDimension) { return new IntClassicalHomology(intField, SimplexComparator.getInstance(), 0, maxDimension); } public static AbstractPersistenceAlgorithm getRationalSimplicialClassicalHomology(int maxDimension) { return new ObjectClassicalHomology(fractionField, SimplexComparator.getInstance(), 0, maxDimension); } public static AbstractPersistenceBasisAlgorithm> getBooleanSimplicialRelativeHomology(int maxDimension) { return new BooleanRelativeHomology(SimplexComparator.getInstance(), 0, maxDimension); } public static AbstractPersistenceBasisAlgorithm> getIntSimplicialRelativeHomology(int maxDimension) { return new IntRelativeHomology(intField, SimplexComparator.getInstance(), 0, maxDimension); } public static AbstractPersistenceBasisAlgorithm> getRationalSimplicialRelativeHomology(int maxDimension) { return new ObjectRelativeHomology(fractionField, SimplexComparator.getInstance(), 0, maxDimension); } public static List> getAllPlex4SimplicialAbsoluteHomologyAlgorithms(int maxDimension) { List> list = new ArrayList>(); list.add(getBooleanSimplicialAbsoluteHomology(maxDimension)); list.add(getIntSimplicialAbsoluteHomology(maxDimension)); list.add(getRationalSimplicialAbsoluteHomology(maxDimension)); list.add(getBooleanSimplicialClassicalHomology(maxDimension)); list.add(getIntSimplicialClassicalHomology(maxDimension)); return list; } public static List> getAllSimplicialAbsoluteHomologyAlgorithms(int maxDimension) { List> list = getAllPlex4SimplicialAbsoluteHomologyAlgorithms(maxDimension); list.add(getPlex3SimplicialAbsoluteHomology(maxDimension)); return list; } /* * Cellular Homology. */ public static AbstractPersistenceBasisAlgorithm> getBooleanCellularAbsoluteHomology(int maxDimension) { return new BooleanAbsoluteHomology(CellComparator.getInstance(), 0, maxDimension); } public static AbstractPersistenceBasisAlgorithm> getIntCellularAbsoluteHomology(int maxDimension) { return new IntAbsoluteHomology(intField, CellComparator.getInstance(), 0, maxDimension); } public static AbstractPersistenceBasisAlgorithm> getRationalCellularAbsoluteHomology(int maxDimension) { return new ObjectAbsoluteHomology(fractionField, CellComparator.getInstance(), 0, maxDimension); } public static AbstractPersistenceAlgorithm getBooleanCellularClassicalHomology(int maxDimension) { return new BooleanClassicalHomology(CellComparator.getInstance(), 0, maxDimension); } public static AbstractPersistenceAlgorithm getIntCellularClassicalHomology(int maxDimension) { return new IntClassicalHomology(intField, CellComparator.getInstance(), 0, maxDimension); } public static AbstractPersistenceAlgorithm getRationalCellularClassicalHomology(int maxDimension) { return new ObjectClassicalHomology(fractionField, CellComparator.getInstance(), 0, maxDimension); } public static AbstractPersistenceBasisAlgorithm> getBooleanCellularRelativeHomology(int maxDimension) { return new BooleanRelativeHomology(CellComparator.getInstance(), 0, maxDimension); } public static AbstractPersistenceBasisAlgorithm> getIntCellularRelativeHomology(int maxDimension) { return new IntRelativeHomology(intField, CellComparator.getInstance(), 0, maxDimension); } public static AbstractPersistenceBasisAlgorithm> getRationalCellularRelativeHomology(int maxDimension) { return new ObjectRelativeHomology(fractionField, CellComparator.getInstance(), 0, maxDimension); } public static List> getAllCellularAbsoluteHomologyAlgorithms(int maxDimension) { List> list = new ArrayList>(); list.add(getBooleanCellularAbsoluteHomology(maxDimension)); list.add(getIntCellularAbsoluteHomology(maxDimension)); list.add(getRationalCellularAbsoluteHomology(maxDimension)); list.add(getBooleanCellularClassicalHomology(maxDimension)); list.add(getIntCellularClassicalHomology(maxDimension)); return list; } /* * Simplex Pair Homology. */ public static AbstractPersistenceBasisAlgorithm> getBooleanSimplexPairAbsoluteHomology(int maxDimension) { return new BooleanAbsoluteHomology(SimplexPairComparator.getInstance(), 0, maxDimension); } public static AbstractPersistenceBasisAlgorithm> getIntSimplexPairAbsoluteHomology(int maxDimension) { return new IntAbsoluteHomology(intField, SimplexPairComparator.getInstance(), 0, maxDimension); } public static AbstractPersistenceBasisAlgorithm> getRationalSimplexPairAbsoluteHomology(int maxDimension) { return new ObjectAbsoluteHomology(fractionField, SimplexPairComparator.getInstance(), 0, maxDimension); } public static AbstractPersistenceAlgorithm getBooleanSimplexPairClassicalHomology(int maxDimension) { return new BooleanClassicalHomology(SimplexPairComparator.getInstance(), 0, maxDimension); } public static AbstractPersistenceAlgorithm getIntSimplexPairClassicalHomology(int maxDimension) { return new IntClassicalHomology(intField, SimplexPairComparator.getInstance(), 0, maxDimension); } public static AbstractPersistenceAlgorithm getRationalSimplexPairClassicalHomology(int maxDimension) { return new ObjectClassicalHomology(fractionField, SimplexPairComparator.getInstance(), 0, maxDimension); } public static AbstractPersistenceBasisAlgorithm> getBooleanSimplexPairRelativeHomology(int maxDimension) { return new BooleanRelativeHomology(SimplexPairComparator.getInstance(), 0, maxDimension); } public static AbstractPersistenceBasisAlgorithm> getIntSimplexPairRelativeHomology(int maxDimension) { return new IntRelativeHomology(intField, SimplexPairComparator.getInstance(), 0, maxDimension); } public static AbstractPersistenceBasisAlgorithm> getRationalSimplexPairRelativeHomology(int maxDimension) { return new ObjectRelativeHomology(fractionField, SimplexPairComparator.getInstance(), 0, maxDimension); } public static List> getAllSimplexPairAbsoluteHomologyAlgorithms(int maxDimension) { List> list = new ArrayList>(); list.add(getBooleanSimplexPairAbsoluteHomology(maxDimension)); list.add(getIntSimplexPairAbsoluteHomology(maxDimension)); list.add(getRationalSimplexPairAbsoluteHomology(maxDimension)); list.add(getBooleanSimplexPairClassicalHomology(maxDimension)); list.add(getIntSimplexPairClassicalHomology(maxDimension)); return list; } } ================================================ FILE: src/java/edu/stanford/math/plex4/api/Plex4.java ================================================ package edu.stanford.math.plex4.api; import java.io.IOException; import java.util.Comparator; import org.apache.commons.math.fraction.Fraction; import edu.stanford.math.plex4.autogen.homology.BooleanClassicalHomology; import edu.stanford.math.plex4.autogen.homology.IntAbsoluteHomology; import edu.stanford.math.plex4.autogen.homology.ObjectAbsoluteHomology; import edu.stanford.math.plex4.autogen.homology.ObjectPersistenceAlgorithm; import edu.stanford.math.plex4.homology.barcodes.Interval; import edu.stanford.math.plex4.homology.barcodes.PersistenceInvariantDescriptor; import edu.stanford.math.plex4.homology.chain_basis.Cell; import edu.stanford.math.plex4.homology.chain_basis.CellComparator; import edu.stanford.math.plex4.homology.chain_basis.Simplex; import edu.stanford.math.plex4.homology.chain_basis.SimplexComparator; import edu.stanford.math.plex4.homology.chain_basis.SimplexPair; import edu.stanford.math.plex4.homology.chain_basis.SimplexPairComparator; import edu.stanford.math.plex4.homology.interfaces.AbstractPersistenceAlgorithm; import edu.stanford.math.plex4.io.BarcodeWriter; import edu.stanford.math.plex4.metric.impl.EuclideanMetricSpace; import edu.stanford.math.plex4.metric.interfaces.AbstractIntMetricSpace; import edu.stanford.math.plex4.metric.interfaces.AbstractSearchableMetricSpace; import edu.stanford.math.plex4.metric.landmark.ExplicitLandmarkSelector; import edu.stanford.math.plex4.metric.landmark.LandmarkSelector; import edu.stanford.math.plex4.metric.landmark.MaxMinLandmarkSelector; import edu.stanford.math.plex4.metric.landmark.RandomLandmarkSelector; import edu.stanford.math.plex4.metric.utility.MetricUtility; import edu.stanford.math.plex4.streams.derived.HomStream; import edu.stanford.math.plex4.streams.impl.ExplicitCellStream; import edu.stanford.math.plex4.streams.impl.ExplicitSimplexStream; import edu.stanford.math.plex4.streams.impl.LazyWitnessStream; import edu.stanford.math.plex4.streams.impl.VietorisRipsStream; import edu.stanford.math.plex4.streams.impl.WitnessStream; import edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream; import edu.stanford.math.primitivelib.algebraic.impl.ModularIntField; import edu.stanford.math.primitivelib.algebraic.impl.RationalField; import edu.stanford.math.primitivelib.autogen.formal_sum.DoubleMatrixConverter; import edu.stanford.math.primitivelib.autogen.formal_sum.DoubleVectorConverter; import edu.stanford.math.primitivelib.autogen.pair.ObjectObjectPair; import edu.stanford.math.primitivelib.autogen.pair.ObjectObjectPairComparator; import edu.stanford.math.primitivelib.collections.utility.ReversedComparator; /** * This class contains static functions that are designed to be callable * from Matlab. * * @author Andrew Tausz * */ public class Plex4 { /** * The default number of divisions for the filtered complexes. */ private static int DEFAULT_NUM_DIVISIONS = 20; /** * Empty main function for convenience only. * @param args */ public static void main(String[] args) {} /** * This function creates a new EuclideanMetricSpace object. * * @param points the array of points to include in the metric space * @return a new EuclideanMetricSpace object containing the supplied points */ public static EuclideanMetricSpace createEuclideanMetricSpace(double[][] points) { return new EuclideanMetricSpace(points); } /** * This function estimates the diameter of a metric space. The diameter is defined * as the maximum pairwise distance within the space. * * @param metricSpace the metric space * @return the estimated diameter */ public static double estimateDiameter(AbstractIntMetricSpace metricSpace) { return MetricUtility.estimateDiameter(metricSpace); } /** * This function creates a new ExplicitSimplexStream object. * * @return a new ExplicitSimplexStream */ public static ExplicitSimplexStream createExplicitSimplexStream() { return new ExplicitSimplexStream(); } public static ExplicitSimplexStream createExplicitSimplexStream(double maxFiltrationValue) { return new ExplicitSimplexStream(maxFiltrationValue); } /** * This function creates a new ExplicitCellStream object. * * @return a new ExplicitCellStream */ public static ExplicitCellStream createExplicitCellStream() { return new ExplicitCellStream(); } public static ExplicitCellStream createExplicitCellStream(double maxFiltrationValue) { return new ExplicitCellStream(maxFiltrationValue); } /** * This function creates a Vietoris-Rips complex given a point cloud. * * @param points the points in the data set * @param maxDimension the maximum simplicial dimension in the complex * @param maxFiltrationValue the maximum filtration value * @param numDivisions the number of divisions to use in the filtration * @return a new VietorisRipsStream object */ public static VietorisRipsStream createVietorisRipsStream(double[][] points, int maxDimension, double maxFiltrationValue, int numDivisions) { return FilteredStreamInterface.createPlex4VietorisRipsStream(points, maxDimension, maxFiltrationValue, numDivisions); } /** * This function creates a Vietoris-Rips complex given a point cloud. It uses 20 * as the default number of divisions. * * @param points the points in the data set * @param maxDimension the maximum simplicial dimension in the complex * @param maxFiltrationValue the maximum filtration value * @return a new VietorisRipsStream object */ public static VietorisRipsStream createVietorisRipsStream(double[][] points, int maxDimension, double maxFiltrationValue) { return FilteredStreamInterface.createPlex4VietorisRipsStream(points, maxDimension, maxFiltrationValue, DEFAULT_NUM_DIVISIONS); } /** * This function creates a Vietoris-Rips complex from a metric space. * * @param * @param metricSpace the metric space * @param maxDimension the maximum simplicial dimension in the complex * @param maxFiltrationValue the maximum filtration value * @param numDivisions the number of divisions to use in the filtration * @return a new VietorisRipsStream object */ public static VietorisRipsStream createVietorisRipsStream(AbstractSearchableMetricSpace metricSpace, int maxDimension, double maxFiltrationValue, int numDivisions) { return FilteredStreamInterface.createPlex4VietorisRipsStream(metricSpace, maxDimension, maxFiltrationValue, numDivisions); } /** * This function creates a Vietoris-Rips complex given a metric space. It uses 20 * as the default number of divisions. * * @param metricSpace the metric space * @param maxDimension the maximum simplicial dimension in the complex * @param maxFiltrationValue the maximum filtration value * @return a new VietorisRipsStream object */ public static VietorisRipsStream createVietorisRipsStream(AbstractSearchableMetricSpace metricSpace, int maxDimension, double maxFiltrationValue) { return FilteredStreamInterface.createPlex4VietorisRipsStream(metricSpace, maxDimension, maxFiltrationValue, DEFAULT_NUM_DIVISIONS); } /** * This function creates a Vietoris-Rips complex given a point cloud. * * @param points the points in the data set * @param maxDimension the maximum simplicial dimension in the complex * @param filtrationValues the set of filtration values to use * @return a new VietorisRipsStream object */ public static VietorisRipsStream createVietorisRipsStream(double[][] points, int maxDimension, double[] filtrationValues) { return FilteredStreamInterface.createPlex4VietorisRipsStream(points, maxDimension, filtrationValues); } /** * This function creates a Vietoris-Rips complex from a metric space. * * @param * @param metricSpace the metric space * @param maxDimension the maximum simplicial dimension in the complex * @param filtrationValues the set of filtration values to use * @return a new VietorisRipsStream object */ public static VietorisRipsStream createVietorisRipsStream(AbstractSearchableMetricSpace metricSpace, int maxDimension, double[] filtrationValues) { return FilteredStreamInterface.createPlex4VietorisRipsStream(metricSpace, maxDimension, filtrationValues); } /** * This function create a new lazy-witness stream given a point cloud. * * @param selector the landmark selection * @param maxDimension the maximum simplicial dimension in the complex * @param maxFiltrationValue the maximum filtration value * @param numDivisions the number of divisions to use in the filtration * @return a new LazyWitnessStream object */ public static LazyWitnessStream createLazyWitnessStream(LandmarkSelector selector, int maxDimension, double maxFiltrationValue, int numDivisions) { return FilteredStreamInterface.createPlex4LazyWitnessStream(selector, maxDimension, maxFiltrationValue, numDivisions); } /** * This function create a new witness stream given a point cloud. It uses 20 * as the default number of divisions. * * @param selector the landmark selection * @param maxDimension the maximum simplicial dimension in the complex * @param maxFiltrationValue the maximum filtration value * @return a new LazyWitnessStream object */ public static WitnessStream createWitnessStream(LandmarkSelector selector, int maxDimension, double maxFiltrationValue) { return FilteredStreamInterface.createPlex4WitnessStream(selector, maxDimension, maxFiltrationValue, DEFAULT_NUM_DIVISIONS); } /** * This function create a new witness stream given a point cloud. * * @param selector the landmark selection * @param maxDimension the maximum simplicial dimension in the complex * @param maxFiltrationValue the maximum filtration value * @param numDivisions the number of divisions to use in the filtration * @return a new LazyWitnessStream object */ public static WitnessStream createWitnessStream(LandmarkSelector selector, int maxDimension, double maxFiltrationValue, int numDivisions) { return FilteredStreamInterface.createPlex4WitnessStream(selector, maxDimension, maxFiltrationValue, numDivisions); } /** * This function create a new lazy-witness stream given a point cloud. It uses 20 * as the default number of divisions. * * @param selector the landmark selection * @param maxDimension the maximum simplicial dimension in the complex * @param maxFiltrationValue the maximum filtration value * @return a new LazyWitnessStream object */ public static LazyWitnessStream createLazyWitnessStream(LandmarkSelector selector, int maxDimension, double maxFiltrationValue) { return FilteredStreamInterface.createPlex4LazyWitnessStream(selector, maxDimension, maxFiltrationValue, DEFAULT_NUM_DIVISIONS); } /** * This function creates a new max-min landmark selector on a point cloud. * * @param points the data set * @param numLandmarkPoints the number of points to include in the selection * @return a new MaxMinLandmarkSelector */ public static MaxMinLandmarkSelector createMaxMinSelector(double[][] points, int numLandmarkPoints) { return new MaxMinLandmarkSelector(new EuclideanMetricSpace(points), numLandmarkPoints); } /** * This function creates a new max-min landmark selector on a point cloud. * * @param points the data set * @param numLandmarkPoints the number of points to include in the selection * @param firstPoint the initial point in the landmark set * @return a new MaxMinLandmarkSelector */ public static MaxMinLandmarkSelector createMaxMinSelector(double[][] points, int numLandmarkPoints, int firstPoint) { return new MaxMinLandmarkSelector(new EuclideanMetricSpace(points), numLandmarkPoints, firstPoint); } /** * This function creates a new random landmark point selector on a point cloud. * * @param points the data set * @param numLandmarkPoints the number of points to include in the selection * @return a new RandomLandmarkSelector */ public static RandomLandmarkSelector createRandomSelector(double[][] points, int numLandmarkPoints) { return new RandomLandmarkSelector(new EuclideanMetricSpace(points), numLandmarkPoints); } /** * This function creates a new max-min landmark selector on an abstract metric space. * * @param the underlying type of the metric space * @param metricSpace the metric space to select from * @param numLandmarkPoints the number of points to include in the selection * @return a new MaxMinLandmarkSelector */ public static MaxMinLandmarkSelector createMaxMinSelector(AbstractSearchableMetricSpace metricSpace, int numLandmarkPoints) { return new MaxMinLandmarkSelector(metricSpace, numLandmarkPoints); } /** * This function creates a new max-min landmark selector on an abstract metric space. * * @param the underlying type of the metric space * @param metricSpace the metric space to select from * @param numLandmarkPoints the number of points to include in the selection * @param firstPoint the initial point in the landmark set * @return a new MaxMinLandmarkSelector */ public static MaxMinLandmarkSelector createMaxMinSelector(AbstractSearchableMetricSpace metricSpace, int numLandmarkPoints, int firstPoint) { return new MaxMinLandmarkSelector(metricSpace, numLandmarkPoints, firstPoint); } /** * This function creates a new randomized landmark selector on an abstract metric space. * * @param the underlying type of the metric space * @param metricSpace the metric space to select from * @param numLandmarkPoints the number of points to include in the selection * @return a new RandomLandmarkSelector */ public static RandomLandmarkSelector createRandomSelector(AbstractSearchableMetricSpace metricSpace, int numLandmarkPoints) { return new RandomLandmarkSelector(metricSpace, numLandmarkPoints); } /** * This function creates a new explicit landmark selector on a point cloud. * * @param points the data set * @param landmarkPoints the set of landmark points * @return a new ExplicitLandmarkSelector */ public static ExplicitLandmarkSelector createExplicitSelector(double[][] points, int[] landmarkPoints) { return new ExplicitLandmarkSelector(new EuclideanMetricSpace(points), landmarkPoints); } /** * This function creates a new explicit landmark selector on an abstract metric space. * * @param metricSpace the metric space to select from * @param landmarkPoints the set of landmark points * @return a new ExplicitLandmarkSelector */ public static ExplicitLandmarkSelector createExplicitSelector(AbstractSearchableMetricSpace metricSpace, int[] landmarkPoints) { return new ExplicitLandmarkSelector(metricSpace, landmarkPoints); } /** * This function returns the default (absolute) simplicial persistent homology algorithm. * * @param maxDimension the maximum dimension the algorithm should compute homology for * @return the default simplicial homology algorithm */ public static AbstractPersistenceAlgorithm getDefaultSimplicialAlgorithm(int maxDimension) { return new BooleanClassicalHomology(SimplexComparator.getInstance(), 0, maxDimension); } public static AbstractPersistenceAlgorithm getDefaultSimplicialPairAlgorithm(int maxDimension) { //return new IntAbsoluteHomology(ModularIntField.getInstance(2), SimplexPairComparator.getInstance(), 0, maxDimension); return new BooleanClassicalHomology(SimplexPairComparator.getInstance(), 0, maxDimension); } /** * This function returns the default (absolute) cellular persistent homology algorithm. * * @param maxDimension the maximum dimension the algorithm should compute homology for * @return the default cellular homology algorithm */ public static AbstractPersistenceAlgorithm getDefaultCellularAlgorithm(int maxDimension) { return new BooleanClassicalHomology(CellComparator.getInstance(), 0, maxDimension); } /** * This function returns a cellular persistence algorithm over the finite field Z/pZ. * * @param maxDimension the maximum dimension the algorithm should compute homology for * @param prime the order of the underlying finite field * @return a cellular homology algorithm over Z/pZ */ public static AbstractPersistenceAlgorithm getModularCellularAlgorithm(int maxDimension, int prime) { return new IntAbsoluteHomology(ModularIntField.getInstance(prime), CellComparator.getInstance(), 0, maxDimension); } /** * This function returns a simplicial persistence algorithm over the finite field Z/pZ. * * @param maxDimension the maximum dimension the algorithm should compute homology for * @param prime the order of the underlying finite field * @return a simpliciald homology algorithm over Z/pZ */ public static AbstractPersistenceAlgorithm getModularSimplicialAlgorithm(int maxDimension, int prime) { return new IntAbsoluteHomology(ModularIntField.getInstance(prime), SimplexComparator.getInstance(), 0, maxDimension); } /** * This function returns a simplicial persistence algorithm over the the rational numbers. * * @param maxDimension the maximum dimension the algorithm should compute homology for * @return a simplicial homology algorithm over the rational numbers */ public static ObjectAbsoluteHomology getRationalSimplicialAlgorithm(int maxDimension) { return new ObjectAbsoluteHomology(RationalField.getInstance(), SimplexComparator.getInstance(), 0, maxDimension); } /** * This function returns a cellular persistence algorithm over the the rational numbers. * * @param maxDimension the maximum dimension the algorithm should compute homology for * @return a cellular homology algorithm over the rational numbers */ public static AbstractPersistenceAlgorithm getRationalCellularAlgorithm(int maxDimension) { return new ObjectAbsoluteHomology(RationalField.getInstance(), CellComparator.getInstance(), 0, maxDimension); } /** * This function creates an images of a collection of barcodes and writes it to a file. * * @param collection the collection of barcodes * @param caption the caption for the image * @param endPoint the maximum endpoint * @throws IOException */ public static void createBarcodePlot(PersistenceInvariantDescriptor, G> collection, String caption, double endPoint) throws IOException { BarcodeWriter writer = BarcodeWriter.getInstance(); for (int dimension: collection.getDimensions()) { String imageFilename = caption + "_" + dimension; String path = imageFilename + "." + writer.getExtension(); writer.writeToFile(collection, dimension, endPoint, caption, path); } } /** * This function creates a new hom stream from two given filtered streams. * * @param basis type for the first complex * @param the basis type for the second complex * @param domainStream the domain complex * @param codomainStream the codomain complex * @return a new hom complex stream */ public static HomStream createHomStream(AbstractFilteredStream domainStream, AbstractFilteredStream codomainStream) { return new HomStream(domainStream, codomainStream); } /** * This function creates a persistent homology algorithm over the rationals for computing homology of simplicial hom complexes. * @return a persistent homology algorithm */ public static ObjectPersistenceAlgorithm> getRationalHomAlgorithm() { Comparator> comparator = new ObjectObjectPairComparator(new ReversedComparator(SimplexComparator.getInstance()), SimplexComparator.getInstance()); ObjectPersistenceAlgorithm> algorithm = new ObjectAbsoluteHomology>(RationalField.getInstance(), comparator, 0, 1); return algorithm; } /** * This function creates a matrix converter object for converting between formal sums, sparse and dense matrices. * * @param domainStream the stream which provides the basis elements for the domain * @param codomainStream the stream which provides the basis elements for the codomain * @return a DoubleMatrixConverter */ public static DoubleMatrixConverter createHomMatrixConverter(AbstractFilteredStream domainStream, AbstractFilteredStream codomainStream) { return new DoubleMatrixConverter(domainStream, codomainStream); } /** * This function creates a vector converter for converting between formal sums, and sparse and dense arrays. * @param stream the stream which provides the basis elements * @return a DoubleVectorConverter */ public static DoubleVectorConverter createMatrixConverter(AbstractFilteredStream stream) { return new DoubleVectorConverter(stream); } } ================================================ FILE: src/java/edu/stanford/math/plex4/autogen/homology/BooleanAbsoluteHomology.java ================================================ package edu.stanford.math.plex4.autogen.homology; import java.util.Comparator; import edu.stanford.math.plex4.homology.barcodes.AnnotatedBarcodeCollection; import edu.stanford.math.plex4.homology.barcodes.BarcodeCollection; import edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream; import edu.stanford.math.primitivelib.autogen.formal_sum.BooleanSparseFormalSum; import edu.stanford.math.primitivelib.autogen.pair.ObjectObjectPair; import gnu.trove.THashMap; public class BooleanAbsoluteHomology extends BooleanPersistentHomology { /** * This constructor initializes the object with a comparator on the basis type. * * @param basisComparator a comparator on the basis type U * @param minDimension the minimum dimension to compute * @param maxDimension the maximum dimension to compute */ public BooleanAbsoluteHomology(Comparator basisComparator, int minDimension, int maxDimension) { super(basisComparator, minDimension, maxDimension); } @Override protected AnnotatedBarcodeCollection> getAnnotatedIntervals( ObjectObjectPair>, THashMap>> RV_pair, AbstractFilteredStream stream) { return this.getAnnotatedIntervals(RV_pair, stream, true); } @Override protected BarcodeCollection getIntervals(ObjectObjectPair>, THashMap>> RV_pair, AbstractFilteredStream stream) { return this.getIntervals(RV_pair, stream, true); } } ================================================ FILE: src/java/edu/stanford/math/plex4/autogen/homology/BooleanClassicalHomology.java ================================================ package edu.stanford.math.plex4.autogen.homology; import java.util.Comparator; import java.util.Iterator; import edu.stanford.math.plex4.homology.barcodes.BarcodeCollection; import edu.stanford.math.plex4.homology.interfaces.AbstractPersistenceAlgorithm; import edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream; import edu.stanford.math.plex4.streams.utility.FilteredComparator; import edu.stanford.math.primitivelib.autogen.formal_sum.BooleanPrimitiveFreeModule; import edu.stanford.math.primitivelib.autogen.formal_sum.BooleanSparseFormalSum; import gnu.trove.THashMap; import gnu.trove.THashSet; /** *

This class performs the persistent homology algorithm as outlined in * the paper "Computing Persistent Homology" by Zomorodian and Carlsson.

* *

boolean the underlying type of the coefficient field

*

U the underlying basis type

* * @author autogen * * */ public class BooleanClassicalHomology extends AbstractPersistenceAlgorithm { private final BooleanPrimitiveFreeModule chainModule; private final Comparator basisComparator; private final int maxDimension; private final int minDimension; private THashSet markedSimplices = null; private THashMap> T = null; private Comparator filteredComparator = null; /** * This constructor initializes the object with a comparator on the basis type. * * @param basisComparator a comparator on the basis type U * @param minDimension the minimum dimension to compute * @param maxDimension the maximum dimension to compute */ public BooleanClassicalHomology(Comparator basisComparator, int minDimension, int maxDimension) { this.chainModule = new BooleanPrimitiveFreeModule(); this.basisComparator = basisComparator; this.minDimension = minDimension; this.maxDimension = maxDimension; } public BarcodeCollection computeIndexIntervals(AbstractFilteredStream stream) { BarcodeCollection barcodeCollection = new BarcodeCollection(); this.filteredComparator = new FilteredComparator(stream, this.basisComparator); this.markedSimplices = new THashSet(); this.T = new THashMap>(); for (U simplex : stream) { if (stream.getDimension(simplex) > maxDimension + 1) { continue; } if (stream.getDimension(simplex) < this.minDimension) { continue; } /* * Translation from paper: * * sigma_j = simplex * sigma_i = d.maxObject(); * */ this.T.remove(simplex); BooleanSparseFormalSum d = this.removePivotRows(simplex, stream); if (d.isEmpty()) { this.markedSimplices.add(simplex); } else { U sigma_j = simplex; U sigma_i = getMaximumObject(d); int k = stream.getDimension(sigma_i); // store j and d in U[i] this.T.put(sigma_i, d); // store interval int index_i = stream.getFiltrationIndex(sigma_i); int index_j = stream.getFiltrationIndex(sigma_j); assert (index_i <= index_j); // don't store intervals that are simultaneously created and destroyed if ((index_j - index_i > 0) && k < maxDimension) { barcodeCollection.addInterval(k, index_i, index_j); } } } for (U simplex : this.markedSimplices) { if (!this.T.containsKey(simplex) || this.T.get(simplex).isEmpty()) { int k = stream.getDimension(simplex); if (k < maxDimension) { barcodeCollection.addRightInfiniteInterval(k, stream.getFiltrationIndex(simplex)); } } } this.T = null; this.markedSimplices = null; this.filteredComparator = null; return barcodeCollection; } private BooleanSparseFormalSum removePivotRows(U simplex, AbstractFilteredStream stream) { BooleanSparseFormalSum d = chainModule.createNewSum(stream.getBoundaryCoefficients(simplex), stream.getBoundary(simplex)); U current = null; for (Iterator iterator = d.iterator(); iterator.hasNext(); ) { current = iterator.next(); if (!this.markedSimplices.contains(current)) { iterator.remove(); } } U sigma_i = null; boolean q = false; while (!d.isEmpty()) { sigma_i = getMaximumObject(d); if (!this.T.containsKey(sigma_i) || this.T.get(sigma_i).isEmpty()) { break; } q = T.get(sigma_i).getCoefficient(sigma_i); if (q == false) { break; } chainModule.accumulate(d, T.get(sigma_i), q); } return d; } private U getMaximumObject(BooleanSparseFormalSum chain) { U maxObject = null; U current = null; for (Iterator iterator = chain.iterator(); iterator.hasNext(); ) { current = iterator.next(); if (maxObject == null || this.filteredComparator.compare(current, maxObject) > 0) { maxObject = current; } } return maxObject; } } ================================================ FILE: src/java/edu/stanford/math/plex4/autogen/homology/BooleanPersistenceAlgorithm.java ================================================ package edu.stanford.math.plex4.autogen.homology; import java.util.Comparator; import java.util.Iterator; import edu.stanford.math.plex4.homology.barcodes.AnnotatedBarcodeCollection; import edu.stanford.math.plex4.homology.barcodes.BarcodeCollection; import edu.stanford.math.plex4.homology.interfaces.AbstractPersistenceBasisAlgorithm; import edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream; import edu.stanford.math.plex4.streams.utility.FilteredComparator; import edu.stanford.math.primitivelib.autogen.formal_sum.BooleanPrimitiveFreeModule; import edu.stanford.math.primitivelib.autogen.formal_sum.BooleanSparseFormalSum; /** * This class defines the functionality for a persistence algorithm with underlying * field type being boolean and underlying basis element type being U. * It acts as an intermediate layer between the interface AbstractPersistenceBasisAlgorithm * and the actual implementations of the persistent homology/cohomology algorithms. * *

boolean the underlying type of the coefficient field

*

U the underlying basis type

* * @author autogen * */ public abstract class BooleanPersistenceAlgorithm extends AbstractPersistenceBasisAlgorithm> { /** * This objects performs the chain computations. */ protected final BooleanPrimitiveFreeModule chainModule; /** * This comparator defines the ordering on the basis elements. */ protected final Comparator basisComparator; /** * This comparator provides the dictionary ordering on filtration value - basis element * pairs. */ protected Comparator filteredComparator = null; /** * This stores the minimum dimension for which to compute (co)homology. */ protected int minDimension = 0; /** * This stores the maximum dimension for which to compute (co)homology. */ protected int maxDimension = 2; /** * This constructor initializes the object with a comparator on the basis type. * * @param basisComparator a comparator on the basis type U * @param minDimension the minimum dimension to compute * @param maxDimension the maximum dimension to compute */ public BooleanPersistenceAlgorithm(Comparator basisComparator, int minDimension, int maxDimension) { this.chainModule = new BooleanPrimitiveFreeModule(); this.basisComparator = basisComparator; this.minDimension = minDimension; this.maxDimension = maxDimension; } /** * This function simply updates the filtered comparator to the one induced by the given filtered stream. * * @param stream the AbstractFilteredStream that provides the filtration index information */ protected void initializeFilteredComparator(AbstractFilteredStream stream) { this.filteredComparator = new FilteredComparator(stream, this.basisComparator); } /** * This function returns the free module used for the arithmetic computations. * * @return the free module over chains in U */ public BooleanPrimitiveFreeModule getChainModule() { return this.chainModule; } public BarcodeCollection computeIndexIntervals(AbstractFilteredStream stream) { this.initializeFilteredComparator(stream); return this.computeIntervalsImpl(stream); } public AnnotatedBarcodeCollection> computeAnnotatedIndexIntervals(AbstractFilteredStream stream) { this.initializeFilteredComparator(stream); return this.computeAnnotatedIntervalsImpl(stream); } /** * This function provides the implementation of computeIntervals. * * @param stream the filtered chain complex * @return the persistence intervals of the given complex */ protected abstract BarcodeCollection computeIntervalsImpl(AbstractFilteredStream stream); /** * This function provides the implementation of computeAnnotatedIntervals. * * @param stream the filtered chain complex * @return the augmented persistence intervals */ protected abstract AnnotatedBarcodeCollection> computeAnnotatedIntervalsImpl(AbstractFilteredStream stream); /** * This function computes the operation low_A(j) as described in the paper. Note that if * the chain is empty (for example the column contains only zeros), then this function * returns null. * * @param chain the chain to search * @return the lowest element of the chain */ protected U low(BooleanSparseFormalSum chain) { U maxObject = null; U current = null; for (Iterator iterator = chain.iterator(); iterator.hasNext(); ) { current = iterator.next(); if (maxObject == null || this.filteredComparator.compare(current, maxObject) > 0) { maxObject = current; } } return maxObject; } } ================================================ FILE: src/java/edu/stanford/math/plex4/autogen/homology/BooleanPersistentHomology.java ================================================ package edu.stanford.math.plex4.autogen.homology; import java.util.Comparator; import java.util.Iterator; import java.util.Set; import edu.stanford.math.plex4.homology.barcodes.AnnotatedBarcodeCollection; import edu.stanford.math.plex4.homology.barcodes.BarcodeCollection; import edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream; import edu.stanford.math.primitivelib.autogen.formal_sum.BooleanSparseFormalSum; import edu.stanford.math.primitivelib.autogen.pair.ObjectObjectPair; import gnu.trove.THashMap; import gnu.trove.THashSet; /** * This class defines the functionality for a persistence algorithm with underlying * field type being boolean and underlying basis element type being U. * It acts as an intermediate layer between the interface AbstractPersistenceBasisAlgorithm * and the actual implementations of the persistent homology/cohomology algorithms. * *

boolean the underlying type of the coefficient field

*

U the underlying basis type

* * @author autogen * */ public abstract class BooleanPersistentHomology extends BooleanPersistenceAlgorithm { /** * This constructor initializes the object with a comparator on the basis type. * * @param basisComparator a comparator on the basis type U * @param minDimension the minimum dimension to compute * @param maxDimension the maximum dimension to compute */ public BooleanPersistentHomology(Comparator basisComparator, int minDimension, int maxDimension) { super(basisComparator, minDimension, maxDimension); } @Override protected AnnotatedBarcodeCollection> computeAnnotatedIntervalsImpl(AbstractFilteredStream stream) { return this.getAnnotatedIntervals(this.pHcol(stream), stream); } @Override protected BarcodeCollection computeIntervalsImpl(AbstractFilteredStream stream) { return this.getIntervals(this.pHcol(stream), stream); } /** * This function implements the pHcol algorithm described in the paper. It computes the decomposition * R = D * V, where D is the boundary matrix, R is reduced, and is invertible and upper triangular. * This function returns the pair (R, V). Note that in our implementation, we represent a matrix by * a hash map which maps a generating object to a formal sum which corresponds to a column in the matrix. * Note that this is simply a sparse representation of a linear transformation on a vector space with * free basis consisting of elements of type U. * * @param stream the filtered chain complex which provides elements in increasing filtration order * @return a ObjectObjectPair containing the matrices R and V */ private ObjectObjectPair>, THashMap>> pHcol(AbstractFilteredStream stream) { THashMap> R = new THashMap>(); THashMap> V = new THashMap>(); /** * This maps a simplex to the set of columns containing the key as its low value. */ THashMap> lowMap = new THashMap>(); for (U i : stream) { /* * Do not process simplices of higher dimension than maxDimension. */ if (stream.getDimension(i) < this.minDimension) { continue; } if (stream.getDimension(i) > this.maxDimension + 1) { continue; } // initialize V to be the identity matrix V.put(i, this.chainModule.createNewSum(i)); // form the column R[i] which equals the boundary of the current simplex. // store the column as a column in R R.put(i, chainModule.createNewSum(stream.getBoundaryCoefficients(i), stream.getBoundary(i))); // compute low_R(i) U low_R_i = this.low(R.get(i)); // if the boundary of i is empty, then continue to next iteration since there // is nothing to process if (low_R_i == null) { continue; } THashSet matchingLowSimplices = lowMap.get(low_R_i); while (matchingLowSimplices != null && !matchingLowSimplices.isEmpty()) { Iterator iterator = matchingLowSimplices.iterator(); /** * TODO: Is this the right thing to do??? * Ie. should the iterator.next go at the end of the loop? */ U j = iterator.next(); assert (R.get(j).getCoefficient(low_R_i) == true); boolean negative_c = R.get(i).getCoefficient(low_R_i); //R.put(i, chainModule.subtract(R.get(i), chainModule.multiply(c, R.get(j)))); //V.put(i, chainModule.subtract(V.get(i), chainModule.multiply(c, V.get(j)))); this.chainModule.accumulate(R.get(i), R.get(j), negative_c); this.chainModule.accumulate(V.get(i), V.get(j), negative_c); // remove old low_R(i) entry //lowMap.get(low_R_i).remove(i); // recompute low_R(i) low_R_i = this.low(R.get(i)); matchingLowSimplices = lowMap.get(low_R_i); } // store the low value in the map if (low_R_i != null) { if (!lowMap.containsKey(low_R_i)) { lowMap.put(low_R_i, new THashSet()); } lowMap.get(low_R_i).add(i); } } // at this point we have computed the decomposition R = D * V // we return the pair (R, V) return new ObjectObjectPair>, THashMap>>(R, V); } protected abstract AnnotatedBarcodeCollection> getAnnotatedIntervals(ObjectObjectPair>, THashMap>> RV_pair, AbstractFilteredStream stream); protected abstract BarcodeCollection getIntervals(ObjectObjectPair>, THashMap>> RV_pair, AbstractFilteredStream stream); protected AnnotatedBarcodeCollection> getAnnotatedIntervals( ObjectObjectPair>, THashMap>> RV_pair, AbstractFilteredStream stream, boolean absolute) { AnnotatedBarcodeCollection> barcodeCollection = new AnnotatedBarcodeCollection>(); THashMap> R = RV_pair.getFirst(); THashMap> V = RV_pair.getSecond(); Set births = new THashSet(); for (U i: stream) { if (!R.containsKey(i)) { continue; } U low_R_i = this.low(R.get(i)); int dimension = stream.getDimension(i); if (low_R_i == null) { if (dimension <= this.maxDimension && dimension >= this.minDimension) { births.add(i); } } else { // simplex i kills low_R_i births.remove(low_R_i); births.remove(i); int start = stream.getFiltrationIndex(low_R_i); int end = stream.getFiltrationIndex(i); if (end > start) { if (absolute) { dimension = stream.getDimension(low_R_i); if (dimension < this.maxDimension && dimension >= this.minDimension) barcodeCollection.addInterval(stream.getDimension(low_R_i), start, end, R.get(i)); } else { dimension = stream.getDimension(i); if (dimension < this.maxDimension && dimension >= this.minDimension) barcodeCollection.addInterval(dimension, start, end, V.get(i)); } } } } // the elements in birth are the ones that are never killed // these correspond to semi-infinite intervals for (U i: births) { int dimension = stream.getDimension(i); if (dimension < this.maxDimension && dimension >= this.minDimension) { if (absolute) { barcodeCollection.addRightInfiniteInterval(stream.getDimension(i), stream.getFiltrationIndex(i), V.get(i)); } else { barcodeCollection.addLeftInfiniteInterval(stream.getDimension(i), stream.getFiltrationIndex(i), V.get(i)); } } } return barcodeCollection; } protected BarcodeCollection getIntervals( ObjectObjectPair>, THashMap>> RV_pair, AbstractFilteredStream stream, boolean absolute) { BarcodeCollection barcodeCollection = new BarcodeCollection(); THashMap> R = RV_pair.getFirst(); Set births = new THashSet(); for (U i: stream) { if (!R.containsKey(i)) { continue; } U low_R_i = this.low(R.get(i)); int dimension = stream.getDimension(i); if (low_R_i == null) { if (dimension <= this.maxDimension && dimension >= this.minDimension) { births.add(i); } } else { // simplex i kills low_R_i births.remove(low_R_i); births.remove(i); int start = stream.getFiltrationIndex(low_R_i); int end = stream.getFiltrationIndex(i); if (end > start) { if (absolute) { dimension = stream.getDimension(low_R_i); if (dimension < this.maxDimension && dimension >= this.minDimension) barcodeCollection.addInterval(stream.getDimension(low_R_i), start, end); } else { dimension = stream.getDimension(i); if (dimension < this.maxDimension && dimension >= this.minDimension) barcodeCollection.addInterval(dimension, start, end); } } } } // the elements in birth are the ones that are never killed // these correspond to semi-infinite intervals for (U i: births) { int dimension = stream.getDimension(i); if (dimension < this.maxDimension && dimension >= this.minDimension) { if (absolute) { barcodeCollection.addRightInfiniteInterval(stream.getDimension(i), stream.getFiltrationIndex(i)); } else { barcodeCollection.addLeftInfiniteInterval(stream.getDimension(i), stream.getFiltrationIndex(i)); } } } return barcodeCollection; } } ================================================ FILE: src/java/edu/stanford/math/plex4/autogen/homology/BooleanRelativeHomology.java ================================================ package edu.stanford.math.plex4.autogen.homology; import java.util.Comparator; import edu.stanford.math.plex4.homology.barcodes.AnnotatedBarcodeCollection; import edu.stanford.math.plex4.homology.barcodes.BarcodeCollection; import edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream; import edu.stanford.math.primitivelib.autogen.formal_sum.BooleanSparseFormalSum; import edu.stanford.math.primitivelib.autogen.pair.ObjectObjectPair; import gnu.trove.THashMap; public class BooleanRelativeHomology extends BooleanPersistentHomology { /** * This constructor initializes the object with a comparator on the basis type. * * @param basisComparator a comparator on the basis type U * @param minDimension the minimum dimension to compute * @param maxDimension the maximum dimension to compute */ public BooleanRelativeHomology(Comparator basisComparator, int minDimension, int maxDimension) { super(basisComparator, minDimension, maxDimension); } @Override protected AnnotatedBarcodeCollection> getAnnotatedIntervals( ObjectObjectPair>, THashMap>> RV_pair, AbstractFilteredStream stream) { return this.getAnnotatedIntervals(RV_pair, stream, false); } @Override protected BarcodeCollection getIntervals(ObjectObjectPair>, THashMap>> RV_pair, AbstractFilteredStream stream) { return this.getIntervals(RV_pair, stream, false); } } ================================================ FILE: src/java/edu/stanford/math/plex4/autogen/homology/IntAbsoluteHomology.java ================================================ package edu.stanford.math.plex4.autogen.homology; import java.util.Comparator; import edu.stanford.math.plex4.homology.barcodes.AnnotatedBarcodeCollection; import edu.stanford.math.plex4.homology.barcodes.BarcodeCollection; import edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream; import edu.stanford.math.primitivelib.autogen.algebraic.IntAbstractField; import edu.stanford.math.primitivelib.autogen.formal_sum.IntSparseFormalSum; import edu.stanford.math.primitivelib.autogen.pair.ObjectObjectPair; import gnu.trove.THashMap; public class IntAbsoluteHomology extends IntPersistentHomology { /** * This constructor initializes the object with a field and a comparator on the basis type. * * @param field a field structure on the type int * @param basisComparator a comparator on the basis type U * @param minDimension the minimum dimension to compute * @param maxDimension the maximum dimension to compute */ public IntAbsoluteHomology(IntAbstractField field, Comparator basisComparator, int minDimension, int maxDimension) { super(field, basisComparator, minDimension, maxDimension); } @Override protected AnnotatedBarcodeCollection> getAnnotatedIntervals( ObjectObjectPair>, THashMap>> RV_pair, AbstractFilteredStream stream) { return this.getAnnotatedIntervals(RV_pair, stream, true); } @Override protected BarcodeCollection getIntervals(ObjectObjectPair>, THashMap>> RV_pair, AbstractFilteredStream stream) { return this.getIntervals(RV_pair, stream, true); } } ================================================ FILE: src/java/edu/stanford/math/plex4/autogen/homology/IntClassicalHomology.java ================================================ package edu.stanford.math.plex4.autogen.homology; import java.util.Comparator; import edu.stanford.math.plex4.homology.barcodes.BarcodeCollection; import edu.stanford.math.plex4.homology.interfaces.AbstractPersistenceAlgorithm; import edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream; import edu.stanford.math.plex4.streams.utility.FilteredComparator; import edu.stanford.math.primitivelib.autogen.algebraic.IntAbstractField; import edu.stanford.math.primitivelib.autogen.formal_sum.IntAlgebraicFreeModule; import edu.stanford.math.primitivelib.autogen.formal_sum.IntSparseFormalSum; import gnu.trove.THashMap; import gnu.trove.THashSet; import gnu.trove.TObjectIntIterator; /** *

This class performs the persistent homology algorithm as outlined in * the paper "Computing Persistent Homology" by Zomorodian and Carlsson.

* *

int the underlying type of the coefficient field

*

U the underlying basis type

* * @author autogen * * */ public class IntClassicalHomology extends AbstractPersistenceAlgorithm { protected final IntAbstractField field; private final IntAlgebraicFreeModule chainModule; private final Comparator basisComparator; private final int maxDimension; private final int minDimension; private THashSet markedSimplices = null; private THashMap> T = null; private Comparator filteredComparator = null; /** * This constructor initializes the object with a field and a comparator on the basis type. * * @param field a field structure on the type int * @param basisComparator a comparator on the basis type U * @param minDimension the minimum dimension to compute * @param maxDimension the maximum dimension to compute */ public IntClassicalHomology(IntAbstractField field, Comparator basisComparator, int minDimension, int maxDimension) { this.field = field; this.chainModule = new IntAlgebraicFreeModule(this.field); this.basisComparator = basisComparator; this.minDimension = minDimension; this.maxDimension = maxDimension; } public BarcodeCollection computeIndexIntervals(AbstractFilteredStream stream) { BarcodeCollection barcodeCollection = new BarcodeCollection(); this.filteredComparator = new FilteredComparator(stream, this.basisComparator); this.markedSimplices = new THashSet(); this.T = new THashMap>(); for (U simplex : stream) { if (stream.getDimension(simplex) > maxDimension + 1) { continue; } if (stream.getDimension(simplex) < this.minDimension) { continue; } /* * Translation from paper: * * sigma_j = simplex * sigma_i = d.maxObject(); * */ this.T.remove(simplex); IntSparseFormalSum d = this.removePivotRows(simplex, stream); if (d.isEmpty()) { this.markedSimplices.add(simplex); } else { U sigma_j = simplex; U sigma_i = getMaximumObject(d); int k = stream.getDimension(sigma_i); // store j and d in U[i] this.T.put(sigma_i, d); // store interval int index_i = stream.getFiltrationIndex(sigma_i); int index_j = stream.getFiltrationIndex(sigma_j); assert (index_i <= index_j); // don't store intervals that are simultaneously created and destroyed if ((index_j - index_i > 0) && k < maxDimension) { barcodeCollection.addInterval(k, index_i, index_j); } } } for (U simplex : this.markedSimplices) { if (!this.T.containsKey(simplex) || this.T.get(simplex).isEmpty()) { int k = stream.getDimension(simplex); if (k < maxDimension) { barcodeCollection.addRightInfiniteInterval(k, stream.getFiltrationIndex(simplex)); } } } this.T = null; this.markedSimplices = null; this.filteredComparator = null; return barcodeCollection; } private IntSparseFormalSum removePivotRows(U simplex, AbstractFilteredStream stream) { IntSparseFormalSum d = chainModule.createNewSum(stream.getBoundaryCoefficients(simplex), stream.getBoundary(simplex)); // remove unmarked terms from d for (TObjectIntIterator iterator = d.iterator(); iterator.hasNext(); ) { iterator.advance(); if (!this.markedSimplices.contains(iterator.key())) { iterator.remove(); } } U sigma_i = null; int q = this.field.getZero(); while (!d.isEmpty()) { sigma_i = getMaximumObject(d); if (!this.T.containsKey(sigma_i) || this.T.get(sigma_i).isEmpty()) { break; } q = T.get(sigma_i).getCoefficient(sigma_i); if (field.isZero(q)) { break; } chainModule.accumulate(d, T.get(sigma_i), field.invert(q)); } return d; } private U getMaximumObject(IntSparseFormalSum chain) { U maxObject = null; for (TObjectIntIterator iterator = chain.iterator(); iterator.hasNext(); ) { iterator.advance(); if (maxObject == null || this.filteredComparator.compare(iterator.key(), maxObject) > 0) { maxObject = iterator.key(); } } return maxObject; } } ================================================ FILE: src/java/edu/stanford/math/plex4/autogen/homology/IntPersistenceAlgorithm.java ================================================ package edu.stanford.math.plex4.autogen.homology; import java.util.Comparator; import edu.stanford.math.plex4.homology.barcodes.AnnotatedBarcodeCollection; import edu.stanford.math.plex4.homology.barcodes.BarcodeCollection; import edu.stanford.math.plex4.homology.interfaces.AbstractPersistenceBasisAlgorithm; import edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream; import edu.stanford.math.plex4.streams.utility.FilteredComparator; import edu.stanford.math.primitivelib.autogen.algebraic.IntAbstractField; import edu.stanford.math.primitivelib.autogen.formal_sum.IntAlgebraicFreeModule; import edu.stanford.math.primitivelib.autogen.formal_sum.IntSparseFormalSum; import gnu.trove.TObjectIntIterator; /** * This class defines the functionality for a persistence algorithm with underlying * field type being int and underlying basis element type being U. * It acts as an intermediate layer between the interface AbstractPersistenceBasisAlgorithm * and the actual implementations of the persistent homology/cohomology algorithms. * *

int the underlying type of the coefficient field

*

U the underlying basis type

* * @author autogen * */ public abstract class IntPersistenceAlgorithm extends AbstractPersistenceBasisAlgorithm> { /** * This is the field over which we perform the arithmetic computations. */ protected final IntAbstractField field; /** * This objects performs the chain computations. */ protected final IntAlgebraicFreeModule chainModule; /** * This comparator defines the ordering on the basis elements. */ protected final Comparator basisComparator; /** * This comparator provides the dictionary ordering on filtration value - basis element * pairs. */ protected Comparator filteredComparator = null; /** * This stores the minimum dimension for which to compute (co)homology. */ protected int minDimension = 0; /** * This stores the maximum dimension for which to compute (co)homology. */ protected int maxDimension = 2; /** * This constructor initializes the object with a field and a comparator on the basis type. * * @param field a field structure on the type int * @param basisComparator a comparator on the basis type U * @param minDimension the minimum dimension to compute * @param maxDimension the maximum dimension to compute */ public IntPersistenceAlgorithm(IntAbstractField field, Comparator basisComparator, int minDimension, int maxDimension) { this.field = field; this.chainModule = new IntAlgebraicFreeModule(this.field); this.basisComparator = basisComparator; this.minDimension = minDimension; this.maxDimension = maxDimension; } /** * This function simply updates the filtered comparator to the one induced by the given filtered stream. * * @param stream the AbstractFilteredStream that provides the filtration index information */ protected void initializeFilteredComparator(AbstractFilteredStream stream) { this.filteredComparator = new FilteredComparator(stream, this.basisComparator); } /** * This function returns the free module used for the arithmetic computations. * * @return the free module over chains in U */ public IntAlgebraicFreeModule getChainModule() { return this.chainModule; } /** * This function returns the field over which the homology is computed. * * @return the field over type int */ public IntAbstractField getField() { return this.field; } public BarcodeCollection computeIndexIntervals(AbstractFilteredStream stream) { this.initializeFilteredComparator(stream); return this.computeIntervalsImpl(stream); } public AnnotatedBarcodeCollection> computeAnnotatedIndexIntervals(AbstractFilteredStream stream) { this.initializeFilteredComparator(stream); return this.computeAnnotatedIntervalsImpl(stream); } /** * This function provides the implementation of computeIntervals. * * @param stream the filtered chain complex * @return the persistence intervals of the given complex */ protected abstract BarcodeCollection computeIntervalsImpl(AbstractFilteredStream stream); /** * This function provides the implementation of computeAnnotatedIntervals. * * @param stream the filtered chain complex * @return the augmented persistence intervals */ protected abstract AnnotatedBarcodeCollection> computeAnnotatedIntervalsImpl(AbstractFilteredStream stream); /** * This function computes the operation low_A(j) as described in the paper. Note that if * the chain is empty (for example the column contains only zeros), then this function * returns null. * * @param chain the chain to search * @return the lowest element of the chain */ protected U low(IntSparseFormalSum chain) { U maxObject = null; for (TObjectIntIterator iterator = chain.iterator(); iterator.hasNext(); ) { iterator.advance(); if (maxObject == null || this.filteredComparator.compare(iterator.key(), maxObject) > 0) { maxObject = iterator.key(); } } return maxObject; } } ================================================ FILE: src/java/edu/stanford/math/plex4/autogen/homology/IntPersistentHomology.java ================================================ package edu.stanford.math.plex4.autogen.homology; import java.util.Comparator; import java.util.Iterator; import java.util.Set; import edu.stanford.math.plex4.homology.barcodes.AnnotatedBarcodeCollection; import edu.stanford.math.plex4.homology.barcodes.BarcodeCollection; import edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream; import edu.stanford.math.primitivelib.autogen.algebraic.IntAbstractField; import edu.stanford.math.primitivelib.autogen.formal_sum.IntSparseFormalSum; import edu.stanford.math.primitivelib.autogen.pair.ObjectObjectPair; import gnu.trove.THashMap; import gnu.trove.THashSet; /** * This class defines the functionality for a persistence algorithm with underlying * field type being int and underlying basis element type being U. * It acts as an intermediate layer between the interface AbstractPersistenceBasisAlgorithm * and the actual implementations of the persistent homology/cohomology algorithms. * *

int the underlying type of the coefficient field

*

U the underlying basis type

* * @author autogen * */ public abstract class IntPersistentHomology extends IntPersistenceAlgorithm { /** * This constructor initializes the object with a field and a comparator on the basis type. * * @param field a field structure on the type int * @param basisComparator a comparator on the basis type U * @param minDimension the minimum dimension to compute * @param maxDimension the maximum dimension to compute */ public IntPersistentHomology(IntAbstractField field, Comparator basisComparator, int minDimension, int maxDimension) { super(field, basisComparator, minDimension, maxDimension); } @Override protected AnnotatedBarcodeCollection> computeAnnotatedIntervalsImpl(AbstractFilteredStream stream) { return this.getAnnotatedIntervals(this.pHcol(stream), stream); } @Override protected BarcodeCollection computeIntervalsImpl(AbstractFilteredStream stream) { return this.getIntervals(this.pHcol(stream), stream); } /** * This function implements the pHcol algorithm described in the paper. It computes the decomposition * R = D * V, where D is the boundary matrix, R is reduced, and is invertible and upper triangular. * This function returns the pair (R, V). Note that in our implementation, we represent a matrix by * a hash map which maps a generating object to a formal sum which corresponds to a column in the matrix. * Note that this is simply a sparse representation of a linear transformation on a vector space with * free basis consisting of elements of type U. * * @param stream the filtered chain complex which provides elements in increasing filtration order * @return a ObjectObjectPair containing the matrices R and V */ private ObjectObjectPair>, THashMap>> pHcol(AbstractFilteredStream stream) { THashMap> R = new THashMap>(); THashMap> V = new THashMap>(); /** * This maps a simplex to the set of columns containing the key as its low value. */ THashMap> lowMap = new THashMap>(); for (U i : stream) { /* * Do not process simplices of higher dimension than maxDimension. */ if (stream.getDimension(i) < this.minDimension) { continue; } if (stream.getDimension(i) > this.maxDimension + 1) { continue; } // initialize V to be the identity matrix V.put(i, this.chainModule.createNewSum(this.field.valueOf(1), i)); // form the column R[i] which equals the boundary of the current simplex. // store the column as a column in R R.put(i, chainModule.createNewSum(stream.getBoundaryCoefficients(i), stream.getBoundary(i))); // compute low_R(i) U low_R_i = this.low(R.get(i)); // if the boundary of i is empty, then continue to next iteration since there // is nothing to process if (low_R_i == null) { continue; } THashSet matchingLowSimplices = lowMap.get(low_R_i); while (matchingLowSimplices != null && !matchingLowSimplices.isEmpty()) { Iterator iterator = matchingLowSimplices.iterator(); /** * TODO: Is this the right thing to do??? * Ie. should the iterator.next go at the end of the loop? */ U j = iterator.next(); int c = field.divide(R.get(i).getCoefficient(low_R_i), R.get(j).getCoefficient(low_R_i)); int negative_c = field.negate(c); //R.put(i, chainModule.subtract(R.get(i), chainModule.multiply(c, R.get(j)))); //V.put(i, chainModule.subtract(V.get(i), chainModule.multiply(c, V.get(j)))); this.chainModule.accumulate(R.get(i), R.get(j), negative_c); this.chainModule.accumulate(V.get(i), V.get(j), negative_c); // remove old low_R(i) entry //lowMap.get(low_R_i).remove(i); // recompute low_R(i) low_R_i = this.low(R.get(i)); matchingLowSimplices = lowMap.get(low_R_i); } // store the low value in the map if (low_R_i != null) { if (!lowMap.containsKey(low_R_i)) { lowMap.put(low_R_i, new THashSet()); } lowMap.get(low_R_i).add(i); } } // at this point we have computed the decomposition R = D * V // we return the pair (R, V) return new ObjectObjectPair>, THashMap>>(R, V); } protected abstract AnnotatedBarcodeCollection> getAnnotatedIntervals(ObjectObjectPair>, THashMap>> RV_pair, AbstractFilteredStream stream); protected abstract BarcodeCollection getIntervals(ObjectObjectPair>, THashMap>> RV_pair, AbstractFilteredStream stream); protected AnnotatedBarcodeCollection> getAnnotatedIntervals( ObjectObjectPair>, THashMap>> RV_pair, AbstractFilteredStream stream, boolean absolute) { AnnotatedBarcodeCollection> barcodeCollection = new AnnotatedBarcodeCollection>(); THashMap> R = RV_pair.getFirst(); THashMap> V = RV_pair.getSecond(); Set births = new THashSet(); for (U i: stream) { if (!R.containsKey(i)) { continue; } U low_R_i = this.low(R.get(i)); int dimension = stream.getDimension(i); if (low_R_i == null) { if (dimension <= this.maxDimension && dimension >= this.minDimension) { births.add(i); } } else { // simplex i kills low_R_i births.remove(low_R_i); births.remove(i); int start = stream.getFiltrationIndex(low_R_i); int end = stream.getFiltrationIndex(i); if (end > start) { if (absolute) { dimension = stream.getDimension(low_R_i); if (dimension < this.maxDimension && dimension >= this.minDimension) barcodeCollection.addInterval(stream.getDimension(low_R_i), start, end, R.get(i)); } else { dimension = stream.getDimension(i); if (dimension < this.maxDimension && dimension >= this.minDimension) barcodeCollection.addInterval(dimension, start, end, V.get(i)); } } } } // the elements in birth are the ones that are never killed // these correspond to semi-infinite intervals for (U i: births) { int dimension = stream.getDimension(i); if (dimension < this.maxDimension && dimension >= this.minDimension) { if (absolute) { barcodeCollection.addRightInfiniteInterval(stream.getDimension(i), stream.getFiltrationIndex(i), V.get(i)); } else { barcodeCollection.addLeftInfiniteInterval(stream.getDimension(i), stream.getFiltrationIndex(i), V.get(i)); } } } return barcodeCollection; } protected BarcodeCollection getIntervals( ObjectObjectPair>, THashMap>> RV_pair, AbstractFilteredStream stream, boolean absolute) { BarcodeCollection barcodeCollection = new BarcodeCollection(); THashMap> R = RV_pair.getFirst(); Set births = new THashSet(); for (U i: stream) { if (!R.containsKey(i)) { continue; } U low_R_i = this.low(R.get(i)); int dimension = stream.getDimension(i); if (low_R_i == null) { if (dimension <= this.maxDimension && dimension >= this.minDimension) { births.add(i); } } else { // simplex i kills low_R_i births.remove(low_R_i); births.remove(i); int start = stream.getFiltrationIndex(low_R_i); int end = stream.getFiltrationIndex(i); if (end > start) { if (absolute) { dimension = stream.getDimension(low_R_i); if (dimension < this.maxDimension && dimension >= this.minDimension) barcodeCollection.addInterval(stream.getDimension(low_R_i), start, end); } else { dimension = stream.getDimension(i); if (dimension < this.maxDimension && dimension >= this.minDimension) barcodeCollection.addInterval(dimension, start, end); } } } } // the elements in birth are the ones that are never killed // these correspond to semi-infinite intervals for (U i: births) { int dimension = stream.getDimension(i); if (dimension < this.maxDimension && dimension >= this.minDimension) { if (absolute) { barcodeCollection.addRightInfiniteInterval(stream.getDimension(i), stream.getFiltrationIndex(i)); } else { barcodeCollection.addLeftInfiniteInterval(stream.getDimension(i), stream.getFiltrationIndex(i)); } } } return barcodeCollection; } } ================================================ FILE: src/java/edu/stanford/math/plex4/autogen/homology/IntRelativeHomology.java ================================================ package edu.stanford.math.plex4.autogen.homology; import java.util.Comparator; import edu.stanford.math.plex4.homology.barcodes.AnnotatedBarcodeCollection; import edu.stanford.math.plex4.homology.barcodes.BarcodeCollection; import edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream; import edu.stanford.math.primitivelib.autogen.algebraic.IntAbstractField; import edu.stanford.math.primitivelib.autogen.formal_sum.IntSparseFormalSum; import edu.stanford.math.primitivelib.autogen.pair.ObjectObjectPair; import gnu.trove.THashMap; public class IntRelativeHomology extends IntPersistentHomology { /** * This constructor initializes the object with a field and a comparator on the basis type. * * @param field a field structure on the type int * @param basisComparator a comparator on the basis type U * @param minDimension the minimum dimension to compute * @param maxDimension the maximum dimension to compute */ public IntRelativeHomology(IntAbstractField field, Comparator basisComparator, int minDimension, int maxDimension) { super(field, basisComparator, minDimension, maxDimension); } @Override protected AnnotatedBarcodeCollection> getAnnotatedIntervals( ObjectObjectPair>, THashMap>> RV_pair, AbstractFilteredStream stream) { return this.getAnnotatedIntervals(RV_pair, stream, false); } @Override protected BarcodeCollection getIntervals(ObjectObjectPair>, THashMap>> RV_pair, AbstractFilteredStream stream) { return this.getIntervals(RV_pair, stream, false); } } ================================================ FILE: src/java/edu/stanford/math/plex4/autogen/homology/ObjectAbsoluteHomology.java ================================================ package edu.stanford.math.plex4.autogen.homology; import java.util.Comparator; import edu.stanford.math.plex4.homology.barcodes.AnnotatedBarcodeCollection; import edu.stanford.math.plex4.homology.barcodes.BarcodeCollection; import edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream; import edu.stanford.math.primitivelib.autogen.algebraic.ObjectAbstractField; import edu.stanford.math.primitivelib.autogen.formal_sum.ObjectSparseFormalSum; import edu.stanford.math.primitivelib.autogen.pair.ObjectObjectPair; import gnu.trove.THashMap; public class ObjectAbsoluteHomology extends ObjectPersistentHomology { /** * This constructor initializes the object with a field and a comparator on the basis type. * * @param field a field structure on the type F * @param basisComparator a comparator on the basis type U * @param minDimension the minimum dimension to compute * @param maxDimension the maximum dimension to compute */ public ObjectAbsoluteHomology(ObjectAbstractField field, Comparator basisComparator, int minDimension, int maxDimension) { super(field, basisComparator, minDimension, maxDimension); } @Override protected AnnotatedBarcodeCollection> getAnnotatedIntervals( ObjectObjectPair>, THashMap>> RV_pair, AbstractFilteredStream stream) { return this.getAnnotatedIntervals(RV_pair, stream, true); } @Override protected BarcodeCollection getIntervals(ObjectObjectPair>, THashMap>> RV_pair, AbstractFilteredStream stream) { return this.getIntervals(RV_pair, stream, true); } } ================================================ FILE: src/java/edu/stanford/math/plex4/autogen/homology/ObjectClassicalHomology.java ================================================ package edu.stanford.math.plex4.autogen.homology; import java.util.Comparator; import java.util.Iterator; import java.util.Map; import edu.stanford.math.plex4.homology.barcodes.BarcodeCollection; import edu.stanford.math.plex4.homology.interfaces.AbstractPersistenceAlgorithm; import edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream; import edu.stanford.math.plex4.streams.utility.FilteredComparator; import edu.stanford.math.primitivelib.autogen.algebraic.ObjectAbstractField; import edu.stanford.math.primitivelib.autogen.formal_sum.ObjectAlgebraicFreeModule; import edu.stanford.math.primitivelib.autogen.formal_sum.ObjectSparseFormalSum; import gnu.trove.THashMap; import gnu.trove.THashSet; /** *

This class performs the persistent homology algorithm as outlined in * the paper "Computing Persistent Homology" by Zomorodian and Carlsson.

* *

F the underlying type of the coefficient field

*

U the underlying basis type

* * @author autogen * * */ public class ObjectClassicalHomology extends AbstractPersistenceAlgorithm { protected final ObjectAbstractField field; private final ObjectAlgebraicFreeModule chainModule; private final Comparator basisComparator; private final int maxDimension; private final int minDimension; private THashSet markedSimplices = null; private THashMap> T = null; private Comparator filteredComparator = null; /** * This constructor initializes the object with a field and a comparator on the basis type. * * @param field a field structure on the type F * @param basisComparator a comparator on the basis type U * @param minDimension the minimum dimension to compute * @param maxDimension the maximum dimension to compute */ public ObjectClassicalHomology(ObjectAbstractField field, Comparator basisComparator, int minDimension, int maxDimension) { this.field = field; this.chainModule = new ObjectAlgebraicFreeModule(this.field); this.basisComparator = basisComparator; this.minDimension = minDimension; this.maxDimension = maxDimension; } public BarcodeCollection computeIndexIntervals(AbstractFilteredStream stream) { BarcodeCollection barcodeCollection = new BarcodeCollection(); this.filteredComparator = new FilteredComparator(stream, this.basisComparator); this.markedSimplices = new THashSet(); this.T = new THashMap>(); for (U simplex : stream) { if (stream.getDimension(simplex) > maxDimension + 1) { continue; } if (stream.getDimension(simplex) < this.minDimension) { continue; } /* * Translation from paper: * * sigma_j = simplex * sigma_i = d.maxObject(); * */ this.T.remove(simplex); ObjectSparseFormalSum d = this.removePivotRows(simplex, stream); if (d.isEmpty()) { this.markedSimplices.add(simplex); } else { U sigma_j = simplex; U sigma_i = getMaximumObject(d); int k = stream.getDimension(sigma_i); // store j and d in U[i] this.T.put(sigma_i, d); // store interval int index_i = stream.getFiltrationIndex(sigma_i); int index_j = stream.getFiltrationIndex(sigma_j); assert (index_i <= index_j); // don't store intervals that are simultaneously created and destroyed if ((index_j - index_i > 0) && k < maxDimension) { barcodeCollection.addInterval(k, index_i, index_j); } } } for (U simplex : this.markedSimplices) { if (!this.T.containsKey(simplex) || this.T.get(simplex).isEmpty()) { int k = stream.getDimension(simplex); if (k < maxDimension) { barcodeCollection.addRightInfiniteInterval(k, stream.getFiltrationIndex(simplex)); } } } this.T = null; this.markedSimplices = null; this.filteredComparator = null; return barcodeCollection; } private ObjectSparseFormalSum removePivotRows(U simplex, AbstractFilteredStream stream) { ObjectSparseFormalSum d = chainModule.createNewSum(stream.getBoundaryCoefficients(simplex), stream.getBoundary(simplex)); for (Iterator> iterator = d.iterator(); iterator.hasNext(); ) { Map.Entry entry = iterator.next(); if (!this.markedSimplices.contains(entry.getKey())) { iterator.remove(); } } U sigma_i = null; F q = this.field.getZero(); while (!d.isEmpty()) { sigma_i = getMaximumObject(d); if (!this.T.containsKey(sigma_i) || this.T.get(sigma_i).isEmpty()) { break; } q = T.get(sigma_i).getCoefficient(sigma_i); if (field.isZero(q)) { break; } chainModule.accumulate(d, T.get(sigma_i), field.invert(q)); } return d; } private U getMaximumObject(ObjectSparseFormalSum chain) { U maxObject = null; for (Iterator> iterator = chain.iterator(); iterator.hasNext(); ) { Map.Entry entry = iterator.next(); if (maxObject == null || this.filteredComparator.compare(entry.getKey(), maxObject) > 0) { maxObject = entry.getKey(); } } return maxObject; } } ================================================ FILE: src/java/edu/stanford/math/plex4/autogen/homology/ObjectPersistenceAlgorithm.java ================================================ package edu.stanford.math.plex4.autogen.homology; import java.util.Comparator; import java.util.Iterator; import java.util.Map; import edu.stanford.math.plex4.homology.barcodes.AnnotatedBarcodeCollection; import edu.stanford.math.plex4.homology.barcodes.BarcodeCollection; import edu.stanford.math.plex4.homology.interfaces.AbstractPersistenceBasisAlgorithm; import edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream; import edu.stanford.math.plex4.streams.utility.FilteredComparator; import edu.stanford.math.primitivelib.autogen.algebraic.ObjectAbstractField; import edu.stanford.math.primitivelib.autogen.formal_sum.ObjectAlgebraicFreeModule; import edu.stanford.math.primitivelib.autogen.formal_sum.ObjectSparseFormalSum; /** * This class defines the functionality for a persistence algorithm with underlying * field type being F and underlying basis element type being U. * It acts as an intermediate layer between the interface AbstractPersistenceBasisAlgorithm * and the actual implementations of the persistent homology/cohomology algorithms. * *

F the underlying type of the coefficient field

*

U the underlying basis type

* * @author autogen * */ public abstract class ObjectPersistenceAlgorithm extends AbstractPersistenceBasisAlgorithm> { /** * This is the field over which we perform the arithmetic computations. */ protected final ObjectAbstractField field; /** * This objects performs the chain computations. */ protected final ObjectAlgebraicFreeModule chainModule; /** * This comparator defines the ordering on the basis elements. */ protected final Comparator basisComparator; /** * This comparator provides the dictionary ordering on filtration value - basis element * pairs. */ protected Comparator filteredComparator = null; /** * This stores the minimum dimension for which to compute (co)homology. */ protected int minDimension = 0; /** * This stores the maximum dimension for which to compute (co)homology. */ protected int maxDimension = 2; /** * This constructor initializes the object with a field and a comparator on the basis type. * * @param field a field structure on the type F * @param basisComparator a comparator on the basis type U * @param minDimension the minimum dimension to compute * @param maxDimension the maximum dimension to compute */ public ObjectPersistenceAlgorithm(ObjectAbstractField field, Comparator basisComparator, int minDimension, int maxDimension) { this.field = field; this.chainModule = new ObjectAlgebraicFreeModule(this.field); this.basisComparator = basisComparator; this.minDimension = minDimension; this.maxDimension = maxDimension; } /** * This function simply updates the filtered comparator to the one induced by the given filtered stream. * * @param stream the AbstractFilteredStream that provides the filtration index information */ protected void initializeFilteredComparator(AbstractFilteredStream stream) { this.filteredComparator = new FilteredComparator(stream, this.basisComparator); } /** * This function returns the free module used for the arithmetic computations. * * @return the free module over chains in U */ public ObjectAlgebraicFreeModule getChainModule() { return this.chainModule; } /** * This function returns the field over which the homology is computed. * * @return the field over type F */ public ObjectAbstractField getField() { return this.field; } public BarcodeCollection computeIndexIntervals(AbstractFilteredStream stream) { this.initializeFilteredComparator(stream); return this.computeIntervalsImpl(stream); } public AnnotatedBarcodeCollection> computeAnnotatedIndexIntervals(AbstractFilteredStream stream) { this.initializeFilteredComparator(stream); return this.computeAnnotatedIntervalsImpl(stream); } /** * This function provides the implementation of computeIntervals. * * @param stream the filtered chain complex * @return the persistence intervals of the given complex */ protected abstract BarcodeCollection computeIntervalsImpl(AbstractFilteredStream stream); /** * This function provides the implementation of computeAnnotatedIntervals. * * @param stream the filtered chain complex * @return the augmented persistence intervals */ protected abstract AnnotatedBarcodeCollection> computeAnnotatedIntervalsImpl(AbstractFilteredStream stream); /** * This function computes the operation low_A(j) as described in the paper. Note that if * the chain is empty (for example the column contains only zeros), then this function * returns null. * * @param chain the chain to search * @return the lowest element of the chain */ protected U low(ObjectSparseFormalSum chain) { U maxObject = null; for (Iterator> iterator = chain.iterator(); iterator.hasNext(); ) { Map.Entry entry = iterator.next(); if (maxObject == null || this.filteredComparator.compare(entry.getKey(), maxObject) > 0) { maxObject = entry.getKey(); } } return maxObject; } } ================================================ FILE: src/java/edu/stanford/math/plex4/autogen/homology/ObjectPersistentHomology.java ================================================ package edu.stanford.math.plex4.autogen.homology; import java.util.Comparator; import java.util.Iterator; import java.util.Set; import edu.stanford.math.plex4.homology.barcodes.AnnotatedBarcodeCollection; import edu.stanford.math.plex4.homology.barcodes.BarcodeCollection; import edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream; import edu.stanford.math.primitivelib.autogen.algebraic.ObjectAbstractField; import edu.stanford.math.primitivelib.autogen.formal_sum.ObjectSparseFormalSum; import edu.stanford.math.primitivelib.autogen.pair.ObjectObjectPair; import gnu.trove.THashMap; import gnu.trove.THashSet; /** * This class defines the functionality for a persistence algorithm with underlying * field type being F and underlying basis element type being U. * It acts as an intermediate layer between the interface AbstractPersistenceBasisAlgorithm * and the actual implementations of the persistent homology/cohomology algorithms. * *

F the underlying type of the coefficient field

*

U the underlying basis type

* * @author autogen * */ public abstract class ObjectPersistentHomology extends ObjectPersistenceAlgorithm { /** * This constructor initializes the object with a field and a comparator on the basis type. * * @param field a field structure on the type F * @param basisComparator a comparator on the basis type U * @param minDimension the minimum dimension to compute * @param maxDimension the maximum dimension to compute */ public ObjectPersistentHomology(ObjectAbstractField field, Comparator basisComparator, int minDimension, int maxDimension) { super(field, basisComparator, minDimension, maxDimension); } @Override protected AnnotatedBarcodeCollection> computeAnnotatedIntervalsImpl(AbstractFilteredStream stream) { return this.getAnnotatedIntervals(this.pHcol(stream), stream); } @Override protected BarcodeCollection computeIntervalsImpl(AbstractFilteredStream stream) { return this.getIntervals(this.pHcol(stream), stream); } /** * This function implements the pHcol algorithm described in the paper. It computes the decomposition * R = D * V, where D is the boundary matrix, R is reduced, and is invertible and upper triangular. * This function returns the pair (R, V). Note that in our implementation, we represent a matrix by * a hash map which maps a generating object to a formal sum which corresponds to a column in the matrix. * Note that this is simply a sparse representation of a linear transformation on a vector space with * free basis consisting of elements of type U. * * @param stream the filtered chain complex which provides elements in increasing filtration order * @return a ObjectObjectPair containing the matrices R and V */ private ObjectObjectPair>, THashMap>> pHcol(AbstractFilteredStream stream) { THashMap> R = new THashMap>(); THashMap> V = new THashMap>(); /** * This maps a simplex to the set of columns containing the key as its low value. */ THashMap> lowMap = new THashMap>(); for (U i : stream) { /* * Do not process simplices of higher dimension than maxDimension. */ if (stream.getDimension(i) < this.minDimension) { continue; } if (stream.getDimension(i) > this.maxDimension + 1) { continue; } // initialize V to be the identity matrix V.put(i, this.chainModule.createNewSum(this.field.valueOf(1), i)); // form the column R[i] which equals the boundary of the current simplex. // store the column as a column in R R.put(i, chainModule.createNewSum(stream.getBoundaryCoefficients(i), stream.getBoundary(i))); // compute low_R(i) U low_R_i = this.low(R.get(i)); // if the boundary of i is empty, then continue to next iteration since there // is nothing to process if (low_R_i == null) { continue; } THashSet matchingLowSimplices = lowMap.get(low_R_i); while (matchingLowSimplices != null && !matchingLowSimplices.isEmpty()) { Iterator iterator = matchingLowSimplices.iterator(); /** * TODO: Is this the right thing to do??? * Ie. should the iterator.next go at the end of the loop? */ U j = iterator.next(); F c = field.divide(R.get(i).getCoefficient(low_R_i), R.get(j).getCoefficient(low_R_i)); F negative_c = field.negate(c); //R.put(i, chainModule.subtract(R.get(i), chainModule.multiply(c, R.get(j)))); //V.put(i, chainModule.subtract(V.get(i), chainModule.multiply(c, V.get(j)))); this.chainModule.accumulate(R.get(i), R.get(j), negative_c); this.chainModule.accumulate(V.get(i), V.get(j), negative_c); // remove old low_R(i) entry //lowMap.get(low_R_i).remove(i); // recompute low_R(i) low_R_i = this.low(R.get(i)); matchingLowSimplices = lowMap.get(low_R_i); } // store the low value in the map if (low_R_i != null) { if (!lowMap.containsKey(low_R_i)) { lowMap.put(low_R_i, new THashSet()); } lowMap.get(low_R_i).add(i); } } // at this point we have computed the decomposition R = D * V // we return the pair (R, V) return new ObjectObjectPair>, THashMap>>(R, V); } protected abstract AnnotatedBarcodeCollection> getAnnotatedIntervals(ObjectObjectPair>, THashMap>> RV_pair, AbstractFilteredStream stream); protected abstract BarcodeCollection getIntervals(ObjectObjectPair>, THashMap>> RV_pair, AbstractFilteredStream stream); protected AnnotatedBarcodeCollection> getAnnotatedIntervals( ObjectObjectPair>, THashMap>> RV_pair, AbstractFilteredStream stream, boolean absolute) { AnnotatedBarcodeCollection> barcodeCollection = new AnnotatedBarcodeCollection>(); THashMap> R = RV_pair.getFirst(); THashMap> V = RV_pair.getSecond(); Set births = new THashSet(); for (U i: stream) { if (!R.containsKey(i)) { continue; } U low_R_i = this.low(R.get(i)); int dimension = stream.getDimension(i); if (low_R_i == null) { if (dimension <= this.maxDimension && dimension >= this.minDimension) { births.add(i); } } else { // simplex i kills low_R_i births.remove(low_R_i); births.remove(i); int start = stream.getFiltrationIndex(low_R_i); int end = stream.getFiltrationIndex(i); if (end > start) { if (absolute) { dimension = stream.getDimension(low_R_i); if (dimension < this.maxDimension && dimension >= this.minDimension) barcodeCollection.addInterval(stream.getDimension(low_R_i), start, end, R.get(i)); } else { dimension = stream.getDimension(i); if (dimension < this.maxDimension && dimension >= this.minDimension) barcodeCollection.addInterval(dimension, start, end, V.get(i)); } } } } // the elements in birth are the ones that are never killed // these correspond to semi-infinite intervals for (U i: births) { int dimension = stream.getDimension(i); if (dimension < this.maxDimension && dimension >= this.minDimension) { if (absolute) { barcodeCollection.addRightInfiniteInterval(stream.getDimension(i), stream.getFiltrationIndex(i), V.get(i)); } else { barcodeCollection.addLeftInfiniteInterval(stream.getDimension(i), stream.getFiltrationIndex(i), V.get(i)); } } } return barcodeCollection; } protected BarcodeCollection getIntervals( ObjectObjectPair>, THashMap>> RV_pair, AbstractFilteredStream stream, boolean absolute) { BarcodeCollection barcodeCollection = new BarcodeCollection(); THashMap> R = RV_pair.getFirst(); Set births = new THashSet(); for (U i: stream) { if (!R.containsKey(i)) { continue; } U low_R_i = this.low(R.get(i)); int dimension = stream.getDimension(i); if (low_R_i == null) { if (dimension <= this.maxDimension && dimension >= this.minDimension) { births.add(i); } } else { // simplex i kills low_R_i births.remove(low_R_i); births.remove(i); int start = stream.getFiltrationIndex(low_R_i); int end = stream.getFiltrationIndex(i); if (end > start) { if (absolute) { dimension = stream.getDimension(low_R_i); if (dimension < this.maxDimension && dimension >= this.minDimension) barcodeCollection.addInterval(stream.getDimension(low_R_i), start, end); } else { dimension = stream.getDimension(i); if (dimension < this.maxDimension && dimension >= this.minDimension) barcodeCollection.addInterval(dimension, start, end); } } } } // the elements in birth are the ones that are never killed // these correspond to semi-infinite intervals for (U i: births) { int dimension = stream.getDimension(i); if (dimension < this.maxDimension && dimension >= this.minDimension) { if (absolute) { barcodeCollection.addRightInfiniteInterval(stream.getDimension(i), stream.getFiltrationIndex(i)); } else { barcodeCollection.addLeftInfiniteInterval(stream.getDimension(i), stream.getFiltrationIndex(i)); } } } return barcodeCollection; } } ================================================ FILE: src/java/edu/stanford/math/plex4/autogen/homology/ObjectRelativeHomology.java ================================================ package edu.stanford.math.plex4.autogen.homology; import java.util.Comparator; import edu.stanford.math.plex4.homology.barcodes.AnnotatedBarcodeCollection; import edu.stanford.math.plex4.homology.barcodes.BarcodeCollection; import edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream; import edu.stanford.math.primitivelib.autogen.algebraic.ObjectAbstractField; import edu.stanford.math.primitivelib.autogen.formal_sum.ObjectSparseFormalSum; import edu.stanford.math.primitivelib.autogen.pair.ObjectObjectPair; import gnu.trove.THashMap; public class ObjectRelativeHomology extends ObjectPersistentHomology { /** * This constructor initializes the object with a field and a comparator on the basis type. * * @param field a field structure on the type F * @param basisComparator a comparator on the basis type U * @param minDimension the minimum dimension to compute * @param maxDimension the maximum dimension to compute */ public ObjectRelativeHomology(ObjectAbstractField field, Comparator basisComparator, int minDimension, int maxDimension) { super(field, basisComparator, minDimension, maxDimension); } @Override protected AnnotatedBarcodeCollection> getAnnotatedIntervals( ObjectObjectPair>, THashMap>> RV_pair, AbstractFilteredStream stream) { return this.getAnnotatedIntervals(RV_pair, stream, false); } @Override protected BarcodeCollection getIntervals(ObjectObjectPair>, THashMap>> RV_pair, AbstractFilteredStream stream) { return this.getIntervals(RV_pair, stream, false); } } ================================================ FILE: src/java/edu/stanford/math/plex4/bottleneck/BottleneckDistance.java ================================================ package edu.stanford.math.plex4.bottleneck; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import edu.stanford.math.plex4.homology.barcodes.Interval; import edu.stanford.math.primitivelib.utility.Infinity; public class BottleneckDistance { public static List> truncate(List> A, double minimumValue, double maximumValue) { List> result = new ArrayList>(); double start, end; for (Interval interval: A) { if (interval.isLeftInfinite()) { start = minimumValue; } else { start = Math.max(minimumValue, interval.getStart()); } if (interval.isRightInfinite()) { end = maximumValue; } else { end = Math.min(maximumValue, interval.getEnd()); } result.add(Interval.makeFiniteRightOpenInterval(start, end)); } return result; } public static List> filterLargest(List> A, int N) { if (A.size() <= N) { return A; } double[] diagonalDistances = new double[A.size()]; for (int i = 0; i < A.size(); i++) { Interval interval = A.get(i); diagonalDistances[i] = BottleneckDistance.distanceToDiagonal(interval); } Arrays.sort(diagonalDistances); double minimumDiagonalDistance = diagonalDistances[diagonalDistances.length - N]; List> result = new ArrayList>(); for (int i = 0; i < A.size(); i++) { Interval interval = A.get(i); double distance = BottleneckDistance.distanceToDiagonal(interval); if (distance >= minimumDiagonalDistance) { result.add(interval); } } return result; } public static double computeBottleneckDistance(double[][] A, double[][] B) { List> intA = new ArrayList>(); List> intB = new ArrayList>(); for(double[] element : A) { intA.add(Interval.makeFiniteClosedInterval(element[0], element[1])); } for(double[] element : B) { intB.add(Interval.makeFiniteClosedInterval(element[0], element[1])); } return computeBottleneckDistance(intA, intB); } public static double computeBottleneckDistance(List> A, List> B) { int a = A.size(); int b = B.size(); int n = a + b; WeightedBipartiteGraph graph = new WeightedBipartiteGraph(n); double distance = 0; for (int i = 0; i < a; i++) { for (int j = 0; j < b; j++) { distance = BottleneckDistance.distance(A.get(i), B.get(j)); graph.addEdge(i, j, distance); } } for (int i = 0; i < a; i++) { distance = BottleneckDistance.distanceToDiagonal(A.get(i)); graph.addEdge(i, b + i, distance); } for (int j = 0; j < b; j++) { distance = BottleneckDistance.distanceToDiagonal(B.get(j)); graph.addEdge(a + j, j, distance); } for (int i = 0; i < a; i++) { for (int j = 0; j < b; j++) { graph.addEdge(a + j, b + i, 0); } } double bottleneckDistance = graph.computePerfectMatchingThreshold(); return bottleneckDistance; } static double distanceToDiagonal(Interval A) { if (!A.isLeftInfinite() && !A.isRightInfinite()) { return 0.5 * Math.abs(A.getEnd() - A.getStart()); } return Infinity.Double.getPositiveInfinity(); } static double distance(Interval A, Interval B) { if (!A.isLeftInfinite() && !B.isRightInfinite() && !A.isRightInfinite() && !B.isRightInfinite()) { double startDifference = Math.abs(A.getStart() - B.getStart()); double endDifference = Math.abs(A.getEnd() - B.getEnd()); return Math.max(startDifference, endDifference); } if (A.isLeftInfinite() && B.isLeftInfinite() && !A.isRightInfinite() && !B.isRightInfinite()) { return Math.abs(A.getEnd() - B.getEnd()); } if (!A.isLeftInfinite() && !B.isLeftInfinite() && A.isRightInfinite() && B.isRightInfinite()) { return Math.abs(A.getStart() - B.getStart()); } return Infinity.Double.getPositiveInfinity(); } } ================================================ FILE: src/java/edu/stanford/math/plex4/bottleneck/FlowEdge.java ================================================ package edu.stanford.math.plex4.bottleneck; public class FlowEdge { private final int source; private final int dest; private int capacity; private FlowEdge reverseEdge = null; public FlowEdge(int source, int dest, int capacity) { this.source = source; this.dest = dest; this.capacity = capacity; } public int getCapacity() { return capacity; } public void setCapacity(int capacity) { this.capacity = capacity; } public int getSource() { return source; } public int getDest() { return dest; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + dest; result = prime * result + source; return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; FlowEdge other = (FlowEdge) obj; if (dest != other.dest) return false; if (source != other.source) return false; return true; } public FlowEdge getReverseEdge() { return reverseEdge; } public void setReverseEdge(FlowEdge reverseEdge) { this.reverseEdge = reverseEdge; } @Override public String toString() { StringBuilder builder = new StringBuilder(); builder.append("["); builder.append(source); builder.append(","); builder.append(dest); builder.append(" ("); builder.append(capacity); builder.append(")"); builder.append("]"); return builder.toString(); } } ================================================ FILE: src/java/edu/stanford/math/plex4/bottleneck/FlowNetwork.java ================================================ package edu.stanford.math.plex4.bottleneck; import edu.stanford.math.primitivelib.autogen.pair.ObjectIntPair; import gnu.trove.THashSet; import gnu.trove.TIntObjectHashMap; import gnu.trove.TObjectIntHashMap; import java.util.ArrayList; import java.util.List; import java.util.Set; public class FlowNetwork { TIntObjectHashMap> eminatingEdges = new TIntObjectHashMap>(); TObjectIntHashMap flowValues = new TObjectIntHashMap(); public void addEdge(int source, int destination, int weight) { FlowEdge forwardEdge = new FlowEdge(source, destination, weight); if (!this.eminatingEdges.containsKey(source)) { this.eminatingEdges.put(source, new THashSet()); } this.eminatingEdges.get(source).add(forwardEdge); FlowEdge backwardEdge = new FlowEdge(destination, source, 0); if (!this.eminatingEdges.containsKey(destination)) { this.eminatingEdges.put(destination, new THashSet()); } this.eminatingEdges.get(destination).add(backwardEdge); this.flowValues.put(forwardEdge, 0); this.flowValues.put(backwardEdge, 0); forwardEdge.setReverseEdge(backwardEdge); backwardEdge.setReverseEdge(forwardEdge); } protected Set getEdges(int source) { return this.eminatingEdges.get(source); } protected int getFlow(FlowEdge edge) { return this.flowValues.get(edge); } protected void incrementFlow(FlowEdge edge, int increment) { if (!this.flowValues.containsKey(edge)) { this.flowValues.put(edge, increment); return; } this.flowValues.put(edge, this.flowValues.get(edge) + increment); } public int maxFlow(int source, int sink) { List> path = this.findPath(source, sink, new ArrayList>()); while (path != null && !path.isEmpty()) { int flow = this.minValue(path); for (ObjectIntPair pair: path) { this.incrementFlow(pair.getFirst(), flow); this.incrementFlow(pair.getFirst().getReverseEdge(), -flow); } path = this.findPath(source, sink, new ArrayList>()); } int sum = 0; for (FlowEdge edge: this.getEdges(source)) { sum += this.getFlow(edge); } return sum; } protected List> findPath(int source, int sink, List> path) { if (source == sink) { return path; } for (FlowEdge edge: this.getEdges(source)) { int residual = edge.getCapacity() - this.getFlow(edge); ObjectIntPair pair = new ObjectIntPair(edge, residual); if (residual > 0 && !this.contains(path, pair)) { path.add(pair); List> result = this.findPath(edge.getDest(), sink, path); if (result != null && !result.isEmpty()) { return result; } path.remove(path.size() - 1); } } return null; } protected int minValue(List> list) { int index = 0; int minValue = 0; for (ObjectIntPair element: list) { if (index == 0 || element.getSecond() < minValue) { minValue = element.getSecond(); } index++; } return minValue; } protected boolean contains(Iterable collection, T edge) { for (T t: collection) { if (t.equals(edge)) { return true; } } return false; } } ================================================ FILE: src/java/edu/stanford/math/plex4/bottleneck/FordFulkerson.java ================================================ package edu.stanford.math.plex4.bottleneck; /** * * The Ford-Fulkerson Algorithm * * * @author Tim Harrington * @date Mar 12, 2009 * * * NOTICE: This is from * http://www-b2.is.tokushima-u.ac.jp/~ikeda/suuri/maxflow/Maxflow.java * File: Maxflow.java based on Ford-Fulkerson Method Copyright (C) 1997, * 1998 K. Ikeda */ public class FordFulkerson { int n, m; int snode, tnode; /* start node, terminate node */ int step; FordFulkersonNode[] v; FordFulkersonEdge[] e; /** * Inputs a graph to compute max flow/min cut for. The source node must be * v[0] and the sink must be v[v.length-1]. * * @param v * @param e */ public int maxFlow(FordFulkersonNode[] v, FordFulkersonEdge[] e, int snode, int tnode) { this.v = v; this.e = e; this.m = e.length; this.n = v.length; this.snode = snode; this.tnode = tnode; rdb(); solve(); int flow = 0; for (int i = 0; i < e.length; i++) { if (e[i].rndd_minus == tnode) { flow += e[i].flow; } } return flow; } protected void solve() { // initialize for (int i = 0; i < m; i++) e[i].flow = 0; stpath(); step = 1; // find the max flow/min cut while (step != 0) { if (step == 1) { /* mark an s-t path */ if (v[tnode].dist < 0) return; for (int i = tnode; v[i].prev >= 0; i = v[i].prev) { e[v[i].p_edge].st++; } /* check the outcome */ if (v[tnode].dist < 0) { step = 0; } else { step = 2; } } else if (step == 2) { /* augment the flow */ int i, j, a, f; f = v[tnode].l; for (i = tnode; (j = v[i].prev) >= 0; i = j) { a = v[i].p_edge; if (e[a].rndd_minus == i) e[a].flow += f; else if (e[a].rndd_plus == i) e[a].flow -= f; } /* find an s-t path */ stpath(); /* set the next step */ step = 1; } } } protected void rdb() { int i, k; for (i = 0; i < n; i++) v[i].delta_plus = v[i].delta_minus = -1; for (i = 0; i < m; i++) e[i].delta_plus = e[i].delta_minus = -1; for (i = 0; i < m; i++) { k = e[i].rndd_plus; if (v[k].delta_plus == -1) v[k].delta_plus = i; else { k = v[k].delta_plus; while (e[k].delta_plus >= 0) k = e[k].delta_plus; e[k].delta_plus = i; } k = e[i].rndd_minus; if (v[k].delta_minus == -1) v[k].delta_minus = i; else { k = v[k].delta_minus; while (e[k].delta_minus >= 0) k = e[k].delta_minus; e[k].delta_minus = i; } } } protected void stpath() { int u[] = new int[1000], ni, no; int i, j, d; for (i = 0; i < n; i++) { v[i].prev = v[i].dist = -1; v[i].l = 0; } for (i = 0; i < m; i++) e[i].st = -1; ni = no = 0; d = 0; u[ni] = snode; v[snode].dist = 0; j = v[snode].delta_plus; i = 0; while (j >= 0) { if (i < e[j].capacity) i = e[j].capacity; j = e[j].delta_plus; } v[snode].l = i; for (; no <= ni; no++) { d = v[u[no]].dist; for (j = v[u[no]].delta_plus; j >= 0; j = e[j].delta_plus) { if (e[j].capacity - e[j].flow == 0) continue; i = e[j].rndd_minus; if (v[i].dist < 0) { v[i].dist = d + 1; v[i].prev = u[no]; v[i].p_edge = j; v[i].l = Math.min(v[u[no]].l, e[j].capacity - e[j].flow); e[j].st++; u[++ni] = i; } } for (j = v[u[no]].delta_minus; j >= 0; j = e[j].delta_minus) { if (e[j].flow == 0) continue; i = e[j].rndd_plus; if (v[i].dist < 0) { v[i].dist = d + 1; v[i].prev = u[no]; v[i].p_edge = j; v[i].l = Math.min(v[u[no]].l, e[j].flow); e[j].st++; u[++ni] = i; } } } } } ================================================ FILE: src/java/edu/stanford/math/plex4/bottleneck/FordFulkersonEdge.java ================================================ package edu.stanford.math.plex4.bottleneck; /** * @author Tim Harrington * @date Mar 12, 2009 * * This is from * http://www-b2.is.tokushima-u.ac.jp/~ikeda/suuri/maxflow/Maxflow.java File: * Maxflow.java based on Ford-Fulkerson Method Copyright (C) 1997, 1998 K. Ikeda */ public class FordFulkersonEdge { public int rndd_plus; /* initial vertex of this edge */ public int rndd_minus; /* terminal vertex of this edge */ public int delta_plus; /* edge starts from rndd_plus */ public int delta_minus; /* edge terminates at rndd_minus */ public int capacity; /* capacity */ public int flow; /* flow */ public int st; /* * This field is used to store extra information about the edge and is not * used by the max flow algorithm */ public double bottleneck = 0; /** * @param rndd_plus * @param rndd_minus * @param capacity */ public FordFulkersonEdge(int rndd_plus, int rndd_minus, int capacity) { this.rndd_plus = rndd_plus; this.rndd_minus = rndd_minus; this.capacity = capacity; } public FordFulkersonEdge(int rndd_plus, int rndd_minus, int capacity, double bottleneck) { this.rndd_plus = rndd_plus; this.rndd_minus = rndd_minus; this.capacity = capacity; this.bottleneck = bottleneck; } /* * (non-Javadoc) * * @see java.lang.Object#toString() */ @Override public String toString() { // return "from="+this.rndd_plus + " to="+this.rndd_plus+ // " cap="+this.capacity + " bn="+this.bottleneck; return Double.toString(this.bottleneck); } } ================================================ FILE: src/java/edu/stanford/math/plex4/bottleneck/FordFulkersonNode.java ================================================ package edu.stanford.math.plex4.bottleneck; /** * @author Tim Harrington * @date Mar 12, 2009 * * This is from * http://www-b2.is.tokushima-u.ac.jp/~ikeda/suuri/maxflow/Maxflow.java File: * Maxflow.java based on Ford-Fulkerson Method Copyright (C) 1997, 1998 K. Ikeda */ public class FordFulkersonNode { public int delta_plus; /* edge starts from this node */ public int delta_minus; /* edge terminates at this node */ public int dist; /* distance from the start node */ public int prev; /* previous node of the shortest path */ public int p_edge; public int l; public String name; public FordFulkersonNode(String name) { this.name = name; } /* (non-Javadoc) * @see java.lang.Object#toString() */ @Override public String toString() { return "FordFulkersonNode [delta_minus=" + delta_minus + ", delta_plus=" + delta_plus + ", dist=" + dist + ", l=" + l + ", " + (name != null ? "name=" + name + ", " : "") + "p_edge=" + p_edge + ", prev=" + prev + "]"; } } ================================================ FILE: src/java/edu/stanford/math/plex4/bottleneck/WeightedBipartiteGraph.java ================================================ package edu.stanford.math.plex4.bottleneck; import gnu.trove.THashSet; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Set; public class WeightedBipartiteGraph { class WeightedEdge { public int source; public int destination; public double weight; } private final Set edges = new THashSet(); private final List weights = new ArrayList(); private final int partitionSize; public WeightedBipartiteGraph(int partitionSize) { this.partitionSize = partitionSize; } public void addEdge(int source, int destination, double weight) { WeightedEdge edge = new WeightedEdge(); edge.source = source; edge.destination = destination; edge.weight = weight; this.edges.add(edge); this.weights.add(weight); } public WeightedBipartiteGraph filterByMaximum(double maximumWeight) { WeightedBipartiteGraph graph = new WeightedBipartiteGraph(this.partitionSize); for (WeightedEdge edge : this.edges) { if (edge.weight <= maximumWeight) { graph.edges.add(edge); graph.weights.add(edge.weight); } } return graph; } /* * public int computeMaximumCardinalityMatching() { FlowNetwork network = * new FlowNetwork(); * * for (WeightedEdge edge : this.edges) { int normalizedSourceIndex = * edge.source; int normalizedDestinationIndex = this.partitionSize + * edge.destination; network.addEdge(normalizedSourceIndex, * normalizedDestinationIndex, 1); } * * int masterSourceIndex = -1; int masterSinkIndex = -2; * * for (int i = 0; i < this.partitionSize; i++) { * network.addEdge(masterSourceIndex, i, 1); * network.addEdge(this.partitionSize + i, masterSinkIndex, 1); } * * return network.maxFlow(masterSourceIndex, masterSinkIndex); } */ public int computeMaximumCardinalityMatching() { int n = 2 * this.partitionSize + 2; int size1 = this.partitionSize; int size2 = this.partitionSize; // the source and sink index int source = 0; int sink = size1 + size2 + 1; // nodes FordFulkersonNode v[] = new FordFulkersonNode[n]; // edges List e = new ArrayList(); // create the nodes for (int i = 0; i < n; i++) { if (i == 0) { // source node v[i] = new FordFulkersonNode("source"); } else if (i <= this.partitionSize) { v[i] = new FordFulkersonNode("b1." + i); } else if (i <= this.partitionSize + this.partitionSize) { v[i] = new FordFulkersonNode("b2." + i); } else { v[i] = new FordFulkersonNode("sink"); } } // create edges to the source node for (int i = 1; i <= size1; i++) { e.add(new FordFulkersonEdge(source, i, 1)); } // create edges to the sink node for (int i = size1 + 1; i <= size1 + size2; i++) { e.add(new FordFulkersonEdge(i, sink, 1)); } for (WeightedEdge edge : this.edges) { int i = edge.source + 1; int j = edge.destination + size1 + 1; e.add(new FordFulkersonEdge(i, j, 1, edge.weight)); // int normalizedSourceIndex = edge.source; // int normalizedDestinationIndex = this.partitionSize + // edge.destination; // network.addEdge(normalizedSourceIndex, // normalizedDestinationIndex, 1); } /* Collections.sort(e, new Comparator() { // this sorts the FlowEdges in descending order with respect // to the bottleneck field public int compare(FordFulkersonEdge a, FordFulkersonEdge b) { return -Double.compare(a.bottleneck, b.bottleneck); } });*/ FordFulkerson ff = new FordFulkerson(); FordFulkersonEdge[] edges; edges = e.toArray(new FordFulkersonEdge[e.size()]); // compute the max flow int maxflow = ff.maxFlow(v, edges, source, sink); return maxflow; } public boolean hasPerfectMatching() { int maximumMatchingCardinality = this.computeMaximumCardinalityMatching(); return (maximumMatchingCardinality == this.partitionSize); } /** * This function computes the smallest value, v, that when the current * bipartite graph is filtered by v, a perfect matching exists. * * If no perfect matching exists for all filtration values, it returns -1. * * @return */ public double computePerfectMatchingThreshold() { Collections.sort(this.weights); if (!this.hasPerfectMatching()) { return -1; } // minimumValidIndex stores the index for which there is a known perfect // matching int minimumValidIndex = this.weights.size() - 1; // check to see if there is a perfect matching with the minimum weight if (this.filterByMaximum(this.weights.get(0)).hasPerfectMatching()) { return this.weights.get(0); } int maximumInvalidIndex = 0; int currentIndex = 0; double currentWeight = 0; while (minimumValidIndex > maximumInvalidIndex + 1) { currentIndex = (maximumInvalidIndex + minimumValidIndex) / 2; currentWeight = this.weights.get(currentIndex); if (this.filterByMaximum(currentWeight).hasPerfectMatching()) { minimumValidIndex = currentIndex; } else { maximumInvalidIndex = currentIndex; } } return this.weights.get(minimumValidIndex); } } ================================================ FILE: src/java/edu/stanford/math/plex4/examples/CellComplexOperations.java ================================================ package edu.stanford.math.plex4.examples; import java.util.ArrayList; import java.util.List; import edu.stanford.math.plex4.homology.chain_basis.Cell; import edu.stanford.math.plex4.streams.impl.ExplicitCellStream; import edu.stanford.math.primitivelib.autogen.array.IntArrayMath; import edu.stanford.math.primitivelib.autogen.array.IntArrayQuery; /** * This class contains utility functions for working with cell complexes. * * @author Andrew Tausz * */ public class CellComplexOperations { /** * This function produces a cell complex that is the disjoint union of two cell complexes. * * @param stream1 the first cell complex * @param stream2 the second cell complex * @return the disjoint union of the supplied complexes */ public static ExplicitCellStream disjointUnion(ExplicitCellStream stream1, ExplicitCellStream stream2) { ExplicitCellStream union = new ExplicitCellStream(); for (Cell cell: stream1) { union.addElement(cell, stream1.getFiltrationIndex(cell)); } for (Cell cell: stream2) { union.addElement(cell, stream2.getFiltrationIndex(cell)); } return union; } /** * This function collapses the points in the supplied array to a single point. * * @param stream the cell complex * @param vertices the vertices to identify */ public static void identifyPoints(ExplicitCellStream stream, int[] vertices) { int new_vertex_index = IntArrayMath.min(vertices); List removalList = new ArrayList(); for (Cell cell: stream) { int cellId = cell.getCellId(); if (cell.getDimension() == 0) { // make sure to not add points that collapse if ((cellId != new_vertex_index) && (IntArrayQuery.contains(vertices, cellId))) { // remove cell removalList.add(cell); } } else { // the dimension is greater than 0 - we need to make sure that the boundary is also "collapsed" int[] boundary = cell.getBoundaryIds(); for (int i = 0; i < boundary.length; i++) { if (boundary[i] != new_vertex_index && IntArrayQuery.contains(vertices, boundary[i])) { cell.getBoundaryIds()[i] = new_vertex_index; } } } } for (Cell cell: removalList) { stream.removeElementIfPresent(cell); } } } ================================================ FILE: src/java/edu/stanford/math/plex4/examples/CellStreamExamples.java ================================================ package edu.stanford.math.plex4.examples; import edu.stanford.math.plex4.homology.chain_basis.Cell; import edu.stanford.math.plex4.streams.impl.ExplicitCellStream; /** * This class contains various static functions for producing cell complexes. * * @author Andrew Tausz * */ public class CellStreamExamples { /** * This function returns the filtered cell complex which is the running example in the * paper "Dualities in Persistent (Co)homology" by de Silva, Morozov and Johansson. * * @return a filtered cell stream */ public static ExplicitCellStream getMorozovJohanssonExample() { ExplicitCellStream stream = new ExplicitCellStream(); Cell vertex_1 = new Cell(); Cell vertex_2 = new Cell(); Cell edge_3 = new Cell(1, new Cell[]{vertex_1, vertex_2}); Cell edge_4 = new Cell(1, new Cell[]{vertex_1, vertex_2}); Cell face_5 = new Cell(2, new Cell[]{edge_3, edge_4}); Cell face_6 = new Cell(2, new Cell[]{edge_3, edge_4}); stream.addElement(vertex_1, 1); stream.addElement(vertex_2, 2); stream.addElement(edge_3, 3); stream.addElement(edge_4, 4); stream.addElement(face_5, 5); stream.addElement(face_6, 6); stream.finalizeStream(); return stream; } /** * This function returns a cell decomposition of the n-sphere. The decomposition contains * 1 n-cell with its boundary glued to a single point. * * @param dimension the dimension of the sphere to produce * @return a cellular sphere of the specified dimension */ public static ExplicitCellStream getCellularSphere(int dimension) { ExplicitCellStream stream = new ExplicitCellStream(); int v = stream.addNewVertex(); stream.attachNewCellToPoint(dimension, v); stream.finalizeStream(); return stream; } /** * This function returns a static cell complex containing a torus. * * @return a cellular torus */ public static ExplicitCellStream getCellularTorus() { ExplicitCellStream stream = new ExplicitCellStream(); int v = stream.addNewVertex(); int e_1 = stream.attachNewCellToPoint(1, v); int e_2 = stream.attachNewCellToPoint(1, v); stream.attachNewCell(2, new int[]{e_1, e_2, e_1, e_2}, new int[]{1, 1, -1, -1}); stream.finalizeStream(); return stream; } /** * This function returns a cellular Klein bottle. * * @return a cellular Klein bottle */ public static ExplicitCellStream getCellularKleinBottle() { ExplicitCellStream stream = new ExplicitCellStream(); int v = stream.addNewVertex(); int e_1 = stream.attachNewCellToPoint(1, v); int e_2 = stream.attachNewCellToPoint(1, v); stream.attachNewCell(2, new int[]{e_1, e_2, e_1, e_2}, new int[]{1, -1, -1, -1}); stream.finalizeStream(); return stream; } /** * This function returns a cell decomposition of RP^2 (the real projective plane). * * @return a cellular RP^2 */ public static ExplicitCellStream getCellularRP2() { ExplicitCellStream stream = new ExplicitCellStream(); int v = stream.addNewVertex(); int e_1 = stream.attachNewCellToPoint(1, v); int e_2 = stream.attachNewCellToPoint(1, v); stream.attachNewCell(2, new int[]{e_1, e_2, e_1, e_2}, new int[]{1, 1, 1, 1}); stream.finalizeStream(); return stream; } /** * This function returns a cell decomposition of the Mobius band. * * @return a cellular mobius band */ public static ExplicitCellStream getCellularMobiusBand() { ExplicitCellStream stream = new ExplicitCellStream(); int v_1 = stream.addNewVertex(); int v_2 = stream.addNewVertex(); int e_1 = stream.attachNewCell(1, new int[]{v_2, v_1}); int e_2 = stream.attachNewCell(1, new int[]{v_2, v_1}); int e_3 = stream.attachNewCell(1, new int[]{v_1, v_2}); stream.attachNewCell(2, new int[]{e_1, e_3, e_1, e_2}, new int[]{1, 1, 1, -1}); stream.finalizeStream(); return stream; } } ================================================ FILE: src/java/edu/stanford/math/plex4/examples/DeSilvaMorozovJohanssonExample.java ================================================ package edu.stanford.math.plex4.examples; import edu.stanford.math.plex4.homology.barcodes.AnnotatedBarcodeCollection; import edu.stanford.math.plex4.homology.chain_basis.Cell; import edu.stanford.math.plex4.streams.impl.ExplicitCellStream; import edu.stanford.math.primitivelib.autogen.algebraic.ObjectAbstractField; import edu.stanford.math.primitivelib.autogen.formal_sum.ObjectAlgebraicFreeModule; import edu.stanford.math.primitivelib.autogen.formal_sum.ObjectSparseFormalSum; /** * This class contains the cell complex example contained in the paper * "Dualities in persistent (co)homology" by Vin de Silva, Dmitriy Morozov and Mikael * Vejdemo-Johansson. * * @author Andrew Tausz * * @param */ public class DeSilvaMorozovJohanssonExample { private final ObjectAbstractField field; private final ObjectAlgebraicFreeModule module; private final ExplicitCellStream cellComplex; private final AnnotatedBarcodeCollection> absoluteHomologyBarcodes = new AnnotatedBarcodeCollection>(); private final AnnotatedBarcodeCollection> relativeHomologyBarcodes = new AnnotatedBarcodeCollection>(); private final AnnotatedBarcodeCollection> absoluteCohomologyBarcodes = new AnnotatedBarcodeCollection>(); private final AnnotatedBarcodeCollection> relativeCohomologyBarcodes = new AnnotatedBarcodeCollection>(); /** * This constructor initializes the class with the specified field. * * @param field the field over which to perform the algebraic operations */ public DeSilvaMorozovJohanssonExample(ObjectAbstractField field) { this.field = field; this.module = new ObjectAlgebraicFreeModule(this.field); this.cellComplex = this.initialize(); } private ExplicitCellStream initialize() { ExplicitCellStream stream = new ExplicitCellStream(); Cell vertex_1 = new Cell(); Cell vertex_2 = new Cell(); Cell edge_3 = new Cell(1, new Cell[]{vertex_1, vertex_2}); Cell edge_4 = new Cell(1, new Cell[]{vertex_1, vertex_2}); Cell face_5 = new Cell(2, new Cell[]{edge_3, edge_4}); Cell face_6 = new Cell(2, new Cell[]{edge_3, edge_4}); stream.addElement(vertex_1, 1); stream.addElement(vertex_2, 2); stream.addElement(edge_3, 3); stream.addElement(edge_4, 4); stream.addElement(face_5, 5); stream.addElement(face_6, 6); stream.finalizeStream(); this.absoluteHomologyBarcodes.addRightInfiniteInterval(0, 1, module.createNewSum(field.getOne(), vertex_1)); this.absoluteHomologyBarcodes.addInterval(0, 2, 3, module.subtract(vertex_1, vertex_2)); this.absoluteHomologyBarcodes.addInterval(1, 4, 5, module.subtract(edge_3, edge_4)); this.absoluteHomologyBarcodes.addRightInfiniteInterval(2, 6, module.subtract(face_6, face_5)); this.relativeHomologyBarcodes.addLeftInfiniteInterval(0, 1, module.createNewSum(field.getOne(), vertex_1)); this.relativeHomologyBarcodes.addInterval(1, 2, 3, module.createNewSum(field.getOne(), edge_3)); this.relativeHomologyBarcodes.addInterval(2, 4, 5, module.createNewSum(field.getOne(), face_5)); this.relativeHomologyBarcodes.addLeftInfiniteInterval(2, 6, module.subtract(face_6, face_5)); this.absoluteCohomologyBarcodes.addRightInfiniteInterval(0, 1, module.add(vertex_1, vertex_2)); this.absoluteCohomologyBarcodes.addInterval(0, 2, 3, module.createNewSum(field.getOne(), vertex_2)); this.absoluteCohomologyBarcodes.addInterval(1, 4, 5, module.createNewSum(field.getOne(), edge_4)); this.absoluteCohomologyBarcodes.addRightInfiniteInterval(2, 6, module.createNewSum(field.getOne(), face_6)); this.relativeCohomologyBarcodes.addLeftInfiniteInterval(0, 1, module.add(vertex_1, vertex_2)); this.relativeCohomologyBarcodes.addInterval(1, 2, 3, module.multiply(-1, module.add(edge_3, vertex_2))); this.relativeCohomologyBarcodes.addInterval(2, 4, 5, module.multiply(-1, module.add(face_6, face_5))); this.relativeCohomologyBarcodes.addLeftInfiniteInterval(2, 6, module.createNewSum(field.getOne(), face_6)); return stream; } /** * This function returns the cell complex. * * @return the cell complex of the example */ public ExplicitCellStream getCellComplex() { return this.cellComplex; } /** * This function returns the correct absolute homology barcodes along with the generators. * * @return the barcodes and generators for absolute homology */ public AnnotatedBarcodeCollection> getAbsoluteHomologyBarcodes() { return this.absoluteHomologyBarcodes; } /** * This function returns the correct relative homology barcodes along with the generators. * * @return the barcodes and generators for relative homology */ public AnnotatedBarcodeCollection> getRelativeHomologyBarcodes() { return this.relativeHomologyBarcodes; } /** * This function returns the correct absolute cohomology barcodes along with the generators. * * @return the barcodes and generators for absolute cohomology */ public AnnotatedBarcodeCollection> getAbsoluteCohomologyBarcodes() { return this.absoluteCohomologyBarcodes; } /** * This function returns the correct relative cohomology barcodes along with the generators. * * @return the barcodes and generators for relative cohomology */ public AnnotatedBarcodeCollection> getRelativeCohomologyBarcodes() { return this.relativeCohomologyBarcodes; } } ================================================ FILE: src/java/edu/stanford/math/plex4/examples/PointCloudExamples.java ================================================ package edu.stanford.math.plex4.examples; import java.util.Arrays; import edu.stanford.math.plex4.utility.RandomUtility; import edu.stanford.math.primitivelib.autogen.array.DoubleArrayMath; /** * This static class contains various functions which produce * examples of point cloud data sets. * * @author Andrew Tausz * */ public class PointCloudExamples { /** * This produces the house example in the tutorial by Henry Adams. * * @return the requested point cloud */ public static double[][] getHouseExample() { double[][] points = new double[][]{new double[]{-1, 0}, new double[]{1, 0}, new double[]{1, 2}, new double[]{-1, 2}, new double[]{0, 3}}; return points; } /** * This function produces a square in the plane. * * @return the requested point cloud */ public static double[][] getSquare() { double[][] points = new double[][]{new double[]{0, 0}, new double[]{0, 1}, new double[]{1, 0}, new double[]{1, 1}}; return points; } /** * This function returns a point set containing n equally spaced points on a * circle. * * @param n * @return the requested point cloud */ public static double[][] getEquispacedCirclePoints(int n) { double[][] points = new double[n][2]; for (int i = 0; i < n; i++) { points[i][0] = Math.cos(2 * Math.PI * ((double) i / (double) n)); points[i][1] = Math.sin(2 * Math.PI * ((double) i / (double) n)); } return points; } /** * This function returns a point set containing n randomly selected points, * ordered clockwise on a circle. * * @param n * @return the requested point cloud */ public static double[][] getRandomCirclePoints(int n) { double[][] points = new double[n][2]; double[] random = RandomUtility.uniformArray(n); Arrays.sort(random); for (int i = 0; i < n; i++) { double phi = 2 * Math.PI * random[i]; points[i][0] = Math.cos(phi); points[i][1] = Math.sin(phi); } return points; } /** * This function returns the vertices of an octahedron. * * @return the requested point cloud */ public static double[][] getOctahedronVertices() { double[][] points = new double[6][3]; points[0] = new double[]{1, 0, 0}; points[1] = new double[]{0, -1, 0}; points[2] = new double[]{-1, 0, 0}; points[3] = new double[]{0, 1, 0}; points[4] = new double[]{0, 0, 1}; points[5] = new double[]{0, 0, -1}; return points; } /** * This function returns the vertices of an tetrahedron. * * @return the requested point cloud */ public static double[][] getTetrahedronVertices() { double[][] points = new double[4][3]; points[0] = new double[]{0, 0, 1}; points[1] = new double[]{0.943, 0, -0.333}; points[2] = new double[]{-0.471, 0.816, -0.333}; points[3] = new double[]{-0.471, -0.816, -0.333}; return points; } public static double[][] getAnnulusVertices(int width, int length) { double[][] points = new double[width * length][2]; double radius; double angle; int index = 0; for (int radialIndex = 0; radialIndex < width; radialIndex++) { if (width == 1) { radius = 1; } else { radius = 1 + ((double) radialIndex) / ((double) width - 1); } for (int angularIndex = 0; angularIndex < length; angularIndex++) { angle = 2 * Math.PI * ((double) angularIndex) / ((double) length); points[index][0] = radius * Math.cos(angle); points[index][1] = radius * Math.sin(angle); index++; } } return points; } public static double[][] getIcosahedronVertices() { double[][] points = new double[12][3]; points[0] = new double[]{ 0.000, 0.000, 1.000 }; points[1] = new double[]{ 0.894, 0.000, 0.447 }; points[2] = new double[]{ 0.276, 0.851, 0.447 }; points[3] = new double[]{-0.724, 0.526, 0.447 }; points[4] = new double[]{-0.724, -0.526, 0.447 }; points[5] = new double[]{ 0.276, -0.851, 0.447 }; points[6] = new double[]{ 0.724, 0.526, -0.447 }; points[7] = new double[]{-0.276, 0.851, -0.447 }; points[8] = new double[]{-0.894, 0.000, -0.447 }; points[9] = new double[]{-0.276, -0.851, -0.447 }; points[10] = new double[]{ 0.724, -0.526, -0.447 }; points[11] = new double[]{ 0.000, 0.000, -1.000 }; return points; } /** * This function returns n uniformly random point on the d-dimensional sphere as a subset * of R^{d+1}. * * @param n the number of points to generate * @param d the dimension of the sphere to generate on * @return n points in (d+1)-dimensional Euclidean space uniformly distributed on the d-sphere */ public static double[][] getRandomSpherePoints(int n, int d) { double[][] points = new double[n][]; for (int i = 0; i < n; i++) { points[i] = RandomUtility.normalArray(d + 1); points[i] = DoubleArrayMath.scalarMultiply(points[i], 1.0 / DoubleArrayMath.norm(points[i], 2)); } return points; } /** * This function returns n points distributed to a standard Gaussian distribution in d-dimensional * Euclidean space. * * @param n the number of points to generate * @param d the dimension of the space to generate in * @return n Gaussian points in R^d */ public static double[][] getGaussianPoints(int n, int d) { double[][] points = new double[n][]; for (int i = 0; i < n; i++) { points[i] = RandomUtility.normalArray(d); } return points; } /** * This function returns non-uniformly generated points on the torus in R^3. * * @param n the number of points to generate * @param r the inner radius * @param R the outer radius * @return randomly generated points on the torus in R^3 */ public static double[][] getRandomTorusPoints(int n, double r, double R) { double[][] points = new double[n][3]; for (int i = 0; i < n; i++) { double u = RandomUtility.nextUniform() * 2 * Math.PI; double v = RandomUtility.nextUniform() * 2 * Math.PI; points[i][0] = (R + r * Math.cos(v)) * Math.cos(u); points[i][1] = (R + r * Math.cos(v)) * Math.sin(u); points[i][2] = r * Math.sin(v); } return points; } public static double[][] getRandomTrefoilKnotPoints(int n) { double[][] points = new double[n][3]; for (int i = 0; i < n; i++) { double t = RandomUtility.nextUniform() * 2 * Math.PI; points[i][0] = (2 + Math.cos(3 * t)) * Math.cos(2 * t); points[i][1] = (2 + Math.cos(3 * t)) * Math.sin(2 * t); points[i][2] = Math.sin(3 * t); } return points; } /** * This function returns uniformly distributed points on the space S^k x ... x S^k. * Special cases of this include the 2-torus S^1 x S^1 in R^4, as well as the sphere S^k. * * @param numPoints the number of points to generate * @param sphereDimension the sphere dimension (ie. the k in S^k x ... x S^k) * @param numFactors the number of factors in the product S^k x ... x S^k * @return uniformly generated points on the set S^k x ... x S^k */ public static double[][] getRandomSphereProductPoints(int numPoints, int sphereDimension, int numFactors) { int dimension = (sphereDimension + 1) * numFactors; double[][] points = new double[numPoints][]; for (int i = 0; i < numPoints; i++) { points[i] = RandomUtility.normalArray(dimension); for (int N = 0; N < numFactors; N++) { double sum = 0; for (int j = 0; j < sphereDimension + 1; j++) { sum += points[i][N * (sphereDimension + 1) + j] * points[i][N * (sphereDimension + 1) + j]; } sum = Math.sqrt(sum); for (int j = 0; j < sphereDimension + 1; j++) { points[i][N * (sphereDimension + 1) + j] /= sum; } } } return points; } /** * This function returns randomly generated points on a figure-8 in the plane. This consists * of two circles - one translated up by 1 unit, and the other translated down by 1 unit. * * @param n the number of points to generate * @return randomly generated points on a figure-8. */ public static double[][] getRandomFigure8Points(int n) { int m = n / 2; double[][] points = new double[n][2]; for (int i = 0; i < m; i++) { points[i] = RandomUtility.normalArray(2); points[i] = DoubleArrayMath.scalarMultiply(points[i], 1.0 / DoubleArrayMath.norm(points[i], 2)); // translate by +1 vertically points[i][1] += 1; } for (int i = m; i < n; i++) { points[i] = RandomUtility.normalArray(2); points[i] = DoubleArrayMath.scalarMultiply(points[i], 1.0 / DoubleArrayMath.norm(points[i], 2)); // translate by -1 vertically points[i][1] -= 1; } return points; } public static double[][] getDisjointPatches(int n) { double[][] points = new double[n][2]; double shift = 0; for (int i = 0; i < n; i++) { shift = (i % 2 == 0 ? 0 : 2); points[i] = RandomUtility.normalArray(2); points[i][1] += shift; } return points; } } ================================================ FILE: src/java/edu/stanford/math/plex4/examples/SimplexStreamExamples.java ================================================ package edu.stanford.math.plex4.examples; import edu.stanford.math.plex4.graph.AbstractUndirectedGraph; import edu.stanford.math.plex4.homology.chain_basis.Simplex; import edu.stanford.math.plex4.homology.chain_basis.SimplexComparator; import edu.stanford.math.plex4.streams.impl.ExplicitSimplexStream; import edu.stanford.math.plex4.streams.impl.ExplicitStream; import edu.stanford.math.plex4.utility.ExceptionUtility; import edu.stanford.math.primitivelib.autogen.array.IntArrayGeneration; import edu.stanford.math.primitivelib.autogen.pair.IntIntPair; /** * This class contains various functions for producing examples of * filtered and static simplicial complexes. Note that we use the term * static complex to refer to the fact that all filtration values are zero. * * @author Andrew Tausz * */ public class SimplexStreamExamples { /** * This function returns a filtered simplicial complex which is shown in * Figure 1 of the paper "Computing Persistent Homology" by Zomorodian and Carlsson. * * @return a filtered simplex stream */ public static ExplicitStream getZomorodianCarlssonExample() { ExplicitStream stream = new ExplicitStream(SimplexComparator.getInstance()); stream.addElement(new Simplex(new int[]{0}), 0); stream.addElement(new Simplex(new int[]{1}), 0); stream.addElement(new Simplex(new int[]{2}), 1); stream.addElement(new Simplex(new int[]{3}), 1); stream.addElement(new Simplex(new int[]{0, 1}), 1); stream.addElement(new Simplex(new int[]{1, 2}), 1); stream.addElement(new Simplex(new int[]{2, 3}), 2); stream.addElement(new Simplex(new int[]{3, 0}), 2); stream.addElement(new Simplex(new int[]{0, 2}), 3); stream.addElement(new Simplex(new int[]{0, 1, 2}), 4); stream.addElement(new Simplex(new int[]{0, 2, 3}), 5); stream.finalizeStream(); return stream; } /** * This function returns a filtered triangle where each simplex enters at a new filtration index. * * @return a filtered triangle */ public static ExplicitStream getFilteredTriangle() { ExplicitStream stream = new ExplicitStream(SimplexComparator.getInstance()); stream.addElement(new Simplex(new int[]{0}), 1); stream.addElement(new Simplex(new int[]{1}), 2); stream.addElement(new Simplex(new int[]{2}), 3); stream.addElement(new Simplex(new int[]{0, 1}), 4); stream.addElement(new Simplex(new int[]{1, 2}), 5); stream.addElement(new Simplex(new int[]{0, 2}), 6); stream.addElement(new Simplex(new int[]{0, 1, 2}), 7); stream.finalizeStream(); return stream; } /** * This function returns a simplicial triangle (which happens * to be equal to a simplicial 1-sphere). * * @return a simplicial triangle */ public static ExplicitStream getTriangle() { return getSimplicialSphere(1); } /** * This function returns a simplicial tetrahedron (which happens * to be equal to a simplicial 2-sphere). * * @return a simplicial tetrahedron */ public static ExplicitStream getTetrahedron() { return getSimplicialSphere(2); } /** * This function returns a static simplicial complex containing an n-sphere. * * @param dimension the dimension of the sphere to produce * @return a simplicial sphere */ public static ExplicitStream getSimplicialSphere(int dimension) { ExplicitStream stream = new ExplicitStream(SimplexComparator.getInstance()); stream.addElement(new Simplex(IntArrayGeneration.range(0, dimension + 2)), 0); stream.ensureAllFaces(); stream.removeElementIfPresent(new Simplex(IntArrayGeneration.range(0, dimension + 2))); stream.finalizeStream(); return stream; } /** * This function returns a simplicial 2-torus. This construction was taken from the * original version of Javaplex. Note that the complex returned is static meaning that * all filtration values are zero. * * @return a simplicial complex containing a 2-torus. */ public static ExplicitStream getTorus() { ExplicitStream stream = new ExplicitStream(SimplexComparator.getInstance()); stream.addElement(new Simplex(new int[] {1}), 0); stream.addElement(new Simplex(new int[] {2}), 0); stream.addElement(new Simplex(new int[] {3}), 0); stream.addElement(new Simplex(new int[] {4}), 0); stream.addElement(new Simplex(new int[] {5}), 0); stream.addElement(new Simplex(new int[] {6}), 0); stream.addElement(new Simplex(new int[] {7}), 0); stream.addElement(new Simplex(new int[] {8}), 0); stream.addElement(new Simplex(new int[] {9}), 0); stream.addElement(new Simplex(new int[] {1, 2}), 0); stream.addElement(new Simplex(new int[] {1, 3}), 0); stream.addElement(new Simplex(new int[] {2, 3}), 0); stream.addElement(new Simplex(new int[] {1, 4}), 0); stream.addElement(new Simplex(new int[] {2, 5}), 0); stream.addElement(new Simplex(new int[] {3, 6}), 0); stream.addElement(new Simplex(new int[] {1, 6}), 0); stream.addElement(new Simplex(new int[] {2, 4}), 0); stream.addElement(new Simplex(new int[] {3, 5}), 0); stream.addElement(new Simplex(new int[] {4, 5}), 0); stream.addElement(new Simplex(new int[] {4, 6}), 0); stream.addElement(new Simplex(new int[] {5, 6}), 0); stream.addElement(new Simplex(new int[] {4, 7}), 0); stream.addElement(new Simplex(new int[] {4, 9}), 0); stream.addElement(new Simplex(new int[] {5, 7}), 0); stream.addElement(new Simplex(new int[] {5, 8}), 0); stream.addElement(new Simplex(new int[] {6, 8}), 0); stream.addElement(new Simplex(new int[] {6, 9}), 0); stream.addElement(new Simplex(new int[] {7, 9}), 0); stream.addElement(new Simplex(new int[] {8, 9}), 0); stream.addElement(new Simplex(new int[] {7, 1}), 0); stream.addElement(new Simplex(new int[] {7, 3}), 0); stream.addElement(new Simplex(new int[] {7, 8}), 0); stream.addElement(new Simplex(new int[] {8, 1}), 0); stream.addElement(new Simplex(new int[] {8, 2}), 0); stream.addElement(new Simplex(new int[] {9, 2}), 0); stream.addElement(new Simplex(new int[] {9, 3}), 0); stream.addElement(new Simplex(new int[] {1, 2, 4}), 0); stream.addElement(new Simplex(new int[] {2, 4, 5}), 0); stream.addElement(new Simplex(new int[] {2, 3, 5}), 0); stream.addElement(new Simplex(new int[] {3, 5, 6}), 0); stream.addElement(new Simplex(new int[] {1, 4, 6}), 0); stream.addElement(new Simplex(new int[] {1, 3, 6}), 0); stream.addElement(new Simplex(new int[] {4, 5, 7}), 0); stream.addElement(new Simplex(new int[] {5, 7, 8}), 0); stream.addElement(new Simplex(new int[] {5, 6, 8}), 0); stream.addElement(new Simplex(new int[] {6, 8, 9}), 0); stream.addElement(new Simplex(new int[] {4, 7, 9}), 0); stream.addElement(new Simplex(new int[] {4, 6, 9}), 0); stream.addElement(new Simplex(new int[] {7, 8, 1}), 0); stream.addElement(new Simplex(new int[] {8, 1, 2}), 0); stream.addElement(new Simplex(new int[] {8, 9, 2}), 0); stream.addElement(new Simplex(new int[] {9, 2, 3}), 0); stream.addElement(new Simplex(new int[] {7, 1, 3}), 0); stream.addElement(new Simplex(new int[] {7, 9, 3}), 0); stream.finalizeStream(); return stream; } /** * This function returns a simplicial circle with m vertices in it. * It requires that m >= 3. * * @param m the number of vertices in the circle * @return a simplicial circle with m vertices */ public static ExplicitStream getCircle(int m) { ExceptionUtility.verifyGreaterThanOrEqual(m, 3); ExplicitStream stream = new ExplicitStream(SimplexComparator.getInstance()); for (int i = 0; i < m; i++) { stream.addElement(new Simplex(new int[]{i}), 0); stream.addElement(new Simplex(new int[]{i, (i + 1) % m}), 0); } stream.finalizeStream(); return stream; } /** * This function returns a simplicial octahedron. * * @return a simplicial octahedron. */ public static ExplicitStream getOctahedron() { ExplicitStream stream = new ExplicitStream(SimplexComparator.getInstance()); stream.addElement(new Simplex(new int[] {0}), 0); stream.addElement(new Simplex(new int[] {1}), 0); stream.addElement(new Simplex(new int[] {2}), 0); stream.addElement(new Simplex(new int[] {3}), 0); stream.addElement(new Simplex(new int[] {4}), 0); stream.addElement(new Simplex(new int[] {5}), 0); stream.addElement(new Simplex(new int[] {0, 1}), 0); stream.addElement(new Simplex(new int[] {0, 3}), 0); stream.addElement(new Simplex(new int[] {0, 4}), 0); stream.addElement(new Simplex(new int[] {0, 5}), 0); stream.addElement(new Simplex(new int[] {1, 2}), 0); stream.addElement(new Simplex(new int[] {1, 4}), 0); stream.addElement(new Simplex(new int[] {1, 5}), 0); stream.addElement(new Simplex(new int[] {2, 3}), 0); stream.addElement(new Simplex(new int[] {2, 4}), 0); stream.addElement(new Simplex(new int[] {2, 5}), 0); stream.addElement(new Simplex(new int[] {3, 4}), 0); stream.addElement(new Simplex(new int[] {3, 5}), 0); stream.addElement(new Simplex(new int[] {0, 1, 4}), 0); stream.addElement(new Simplex(new int[] {1, 2, 4}), 0); stream.addElement(new Simplex(new int[] {2, 3, 4}), 0); stream.addElement(new Simplex(new int[] {0, 3, 4}), 0); stream.addElement(new Simplex(new int[] {0, 1, 5}), 0); stream.addElement(new Simplex(new int[] {1, 2, 5}), 0); stream.addElement(new Simplex(new int[] {2, 3, 5}), 0); stream.addElement(new Simplex(new int[] {0, 3, 5}), 0); stream.finalizeStream(); return stream; } public static ExplicitSimplexStream getIcosahedron() { ExplicitSimplexStream stream = new ExplicitSimplexStream(); // add vertices for (int i = 0; i < 12; i++) { stream.addVertex(i); } // add faces stream.addElement(new int[]{0, 1, 2}); stream.addElement(new int[]{0, 2, 3}); stream.addElement(new int[]{0, 3, 4}); stream.addElement(new int[]{0, 4, 5}); stream.addElement(new int[]{0, 5, 1}); stream.addElement(new int[]{11, 6, 7}); stream.addElement(new int[]{11, 7, 8}); stream.addElement(new int[]{11, 8, 9}); stream.addElement(new int[]{11, 9, 10}); stream.addElement(new int[]{11, 10, 6}); stream.addElement(new int[]{1, 2, 6}); stream.addElement(new int[]{2, 3, 7}); stream.addElement(new int[]{3, 4, 8}); stream.addElement(new int[]{4, 5, 9}); stream.addElement(new int[]{5, 1, 10}); stream.addElement(new int[]{6, 7, 2}); stream.addElement(new int[]{7, 8, 3}); stream.addElement(new int[]{8, 9, 4}); stream.addElement(new int[]{9, 10, 5}); stream.addElement(new int[]{10, 6, 1}); // add edges stream.ensureAllFaces(); stream.finalizeStream(); return stream; } public static ExplicitSimplexStream getAnnulus(int width, int length) { ExplicitSimplexStream stream = new ExplicitSimplexStream(); int vertexIndex = 0; int neighborIndex0 = 0; int neighborIndex1 = 0; int neighborIndex2 = 0; for (int radialIndex = 0; radialIndex < width; radialIndex++) { for (int angularIndex = 0; angularIndex < length; angularIndex++) { stream.addVertex(vertexIndex); if (angularIndex == length - 1) { neighborIndex0 = vertexIndex - length + 1; } else { neighborIndex0 = vertexIndex + 1; } stream.addElement(new int[]{vertexIndex, neighborIndex0}); if (radialIndex < width - 1) { neighborIndex1 = vertexIndex + length; stream.addElement(new int[]{vertexIndex, neighborIndex1}); if (angularIndex == length - 1) { neighborIndex2 = vertexIndex + 1; } else { neighborIndex2 = vertexIndex + length + 1; } stream.addElement(new int[]{vertexIndex, neighborIndex2}); stream.addElement(new int[]{vertexIndex, neighborIndex1, neighborIndex2}); stream.addElement(new int[]{vertexIndex, neighborIndex0, neighborIndex2}); } vertexIndex++; } } stream.finalizeStream(); return stream; } /** * This function produces a simplicial complex from a given undirected graph. The resulting * complex contains the same vertices and edges as the given graph. * * @param graph the graph to convert to a simplicial complex * @return a simplicial complex containing the same vertices and edges as the given graph */ public static ExplicitSimplexStream createGraphComplex(AbstractUndirectedGraph graph) { ExplicitSimplexStream stream = new ExplicitSimplexStream(); int n = graph.getNumVertices(); // add vertices for (int i = 0; i < n; i++) { stream.addVertex(i); } // add edges for (IntIntPair pair: graph) { stream.addElement(new int[]{pair.getFirst(), pair.getSecond()}); } stream.finalizeStream(); return stream; } /** * This function produces a simplicial complex from the adjacency matrix of a given graph. * The resulting complex contains the same vertices and edges as the given graph. * * @param adjacencyMatrix the adjacency matrix of the graph to convert to a simplicial complex * @return a simplicial complex containing the same vertices and edges as the given graph */ public static ExplicitSimplexStream createGraphComplex(int[][] adjacencyMatrix) { ExplicitSimplexStream stream = new ExplicitSimplexStream(); int n = adjacencyMatrix.length; // add vertices for (int i = 0; i < n; i++) { stream.addVertex(i); } // add edges for (int i = 0; i < n; i++) { for (int j = 0; j < i; j++) { if (adjacencyMatrix[i][j] != 0) { stream.addElement(new int[]{i, j}); } } } stream.finalizeStream(); return stream; } } ================================================ FILE: src/java/edu/stanford/math/plex4/examples/SimplicialComplexOperations.java ================================================ package edu.stanford.math.plex4.examples; import edu.stanford.math.plex4.homology.chain_basis.Simplex; import edu.stanford.math.plex4.homology.utility.HomologyUtility; import edu.stanford.math.plex4.streams.impl.ExplicitSimplexStream; import edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream; import edu.stanford.math.primitivelib.autogen.array.IntArrayMath; /** * This class contains various functions for creating new simplicial complexes out of old ones. * * @author Andrew Tausz * */ public class SimplicialComplexOperations { /** * This function computes the cone of a given filtered simplicial complex. * * @param simplexStream the simplicial complex to compute the cone of * @param vertexFiltrationIndex the filtration index of the vertex point of the cone * @return the cone of the simplicial complex */ public static AbstractFilteredStream computeCone(AbstractFilteredStream simplexStream, int vertexFiltrationIndex) { ExplicitSimplexStream coneStream = new ExplicitSimplexStream(); int maxFiltrationIndex = Integer.MIN_VALUE; int maxVertexIndex = Integer.MIN_VALUE; // add the existing simplices for (Simplex simplex: simplexStream) { int filtrationIndex = simplexStream.getFiltrationIndex(simplex); coneStream.addElement(simplex, filtrationIndex); if (simplex.getDimension() == 0 && (simplex.getVertices()[0] > maxVertexIndex)) { maxVertexIndex = simplex.getVertices()[0]; } if (filtrationIndex > maxFiltrationIndex) { maxFiltrationIndex = filtrationIndex; } } // add the new cone vertex int coneVertexIndex = maxVertexIndex + 1; coneStream.addVertex(coneVertexIndex, vertexFiltrationIndex); // add the coned simplices for (Simplex simplex: simplexStream) { int filtrationIndex = simplexStream.getFiltrationIndex(simplex); int[] vertices = simplex.getVertices(); int[] newVertices = HomologyUtility.appendToArray(vertices, coneVertexIndex); coneStream.addElement(newVertices, Math.max(filtrationIndex, vertexFiltrationIndex)); } return coneStream; } /** * This function computes the suspension of a given filtered simplicial complex. * * @param simplexStream the simplicial complex to compute the suspension of * @param vertexFiltrationIndex the filtration index of the two newly added vertices * @return the suspension of the given simplicial complex */ public static AbstractFilteredStream computeSuspension(AbstractFilteredStream simplexStream, int vertexFiltrationIndex) { ExplicitSimplexStream suspensionStream = new ExplicitSimplexStream(); int maxFiltrationIndex = Integer.MIN_VALUE; int maxVertexIndex = Integer.MIN_VALUE; // add the existing simplices for (Simplex simplex: simplexStream) { int filtrationIndex = simplexStream.getFiltrationIndex(simplex); suspensionStream.addElement(simplex, filtrationIndex); if (simplex.getDimension() == 0 && (simplex.getVertices()[0] > maxVertexIndex)) { maxVertexIndex = simplex.getVertices()[0]; } if (filtrationIndex > maxFiltrationIndex) { maxFiltrationIndex = filtrationIndex; } } // add the new 2 new vertices int coneVertexIndex1 = maxVertexIndex + 1; int coneVertexIndex2 = coneVertexIndex1 + 1; suspensionStream.addVertex(coneVertexIndex1, vertexFiltrationIndex); suspensionStream.addVertex(coneVertexIndex2, vertexFiltrationIndex); // add the coned simplices on both sides for (Simplex simplex: simplexStream) { int filtrationIndex = simplexStream.getFiltrationIndex(simplex); int[] vertices = simplex.getVertices(); int[] newVertices1 = HomologyUtility.appendToArray(vertices, coneVertexIndex1); suspensionStream.addElement(newVertices1, Math.max(filtrationIndex, vertexFiltrationIndex)); int[] newVertices2 = HomologyUtility.appendToArray(vertices, coneVertexIndex2); suspensionStream.addElement(newVertices2, Math.max(filtrationIndex, vertexFiltrationIndex)); } return suspensionStream; } /** * This function computes the disjoint union of two filtered simplicial complex. * * @param stream1 the first simplicial complex * @param stream2 the second simplicial complex * @return the disjoint union of the two simplicial complexes */ public static AbstractFilteredStream computeDisjointUnion(AbstractFilteredStream stream1, AbstractFilteredStream stream2) { ExplicitSimplexStream unionStream = new ExplicitSimplexStream(); int maxFiltrationIndex = Integer.MIN_VALUE; int maxVertexIndex = Integer.MIN_VALUE; // add the simplices from the first streams for (Simplex simplex: stream1) { int filtrationIndex = stream1.getFiltrationIndex(simplex); unionStream.addElement(simplex, filtrationIndex); if (simplex.getDimension() == 0 && (simplex.getVertices()[0] > maxVertexIndex)) { maxVertexIndex = simplex.getVertices()[0]; } if (filtrationIndex > maxFiltrationIndex) { maxFiltrationIndex = filtrationIndex; } } int translation = maxVertexIndex + 1; // add the simplices from the second stream - make sure to translated indices for (Simplex simplex: stream2) { int filtrationIndex = stream2.getFiltrationIndex(simplex); int[] vertices = simplex.getVertices(); unionStream.addElement(IntArrayMath.scalarAdd(vertices, translation), filtrationIndex); } return unionStream; } } ================================================ FILE: src/java/edu/stanford/math/plex4/generation/GeneratorDriver.java ================================================ package edu.stanford.math.plex4.generation; import java.util.List; import java.util.Vector; import edu.stanford.math.primitivelib.generation.ClassSpecifier; import edu.stanford.math.primitivelib.generation.JavaCodeGenerator; /** * This class contains functions for creating auto-generated code. In particular it generates the homology algorithms * for different underlying types (int, boolean, object) from template files in the templates folder. * * @author Andrew Tausz * */ public class GeneratorDriver { private static List classSpecifiers = new Vector(); private static String basePackageName = "edu.stanford.math.plex4.autogen"; private static String baseSourceDirectory = "src/java"; private static String templateDirectory = "templates/"; public static void main(String[] args) { addHomologyClasses(); generateClasses(); } private static void addHomologyClasses() { Vector types = new Vector(); types.add("int"); types.add("boolean"); types.add("F"); String[] classes = new String[]{"PersistenceAlgorithm", "PersistentHomology", "AbsoluteHomology", "RelativeHomology", "ClassicalHomology"}; String packageId = "homology"; for (String type: types) { Vector templateTypes = new Vector(); templateTypes.add(type); for (String classTag: classes) { ClassSpecifier specifier = new ClassSpecifier(packageId, classTag, templateTypes); specifier.addGenericType("U"); classSpecifiers.add(specifier); } } } private static void generateClasses() { JavaCodeGenerator generator = new JavaCodeGenerator(basePackageName, templateDirectory, baseSourceDirectory); generator.generateClasses(classSpecifiers); } } ================================================ FILE: src/java/edu/stanford/math/plex4/graph/AbstractUndirectedGraph.java ================================================ package edu.stanford.math.plex4.graph; import java.io.Serializable; import java.util.Iterator; import edu.stanford.math.primitivelib.autogen.pair.IntIntPair; import gnu.trove.TIntHashSet; /** * This interface abstracts the functionality of an unweighted graph. * The graph must be undirected. The vertices of the graph * are labeled {0, ..., n - 1}, where n is the number of vertices. * * @author Andrew Tausz * */ public interface AbstractUndirectedGraph extends Iterable, Serializable { /** * Gets the number of vertices in the graph. * * @return the number of vertices in the graph */ public int getNumVertices(); /** * Gets the number of edges in the graph. * * @return the number of edges in the graph */ public int getNumEdges(); /** * This function returns true if the edge (i, j) is in the graph, * and false otherwise. * * @param i the first vertex of the edge * @param j the second vertex of the edge * @return true if (i, j) is an edge in the graph and false otherwise */ public boolean containsEdge(int i, int j); /** * This function adds the edge (i, j) to the graph. * * @param i the first vertex of the edge to add * @param j the second vertex of the edge to add */ public void addEdge(int i, int j); /** * This function removes the edge (i, j) from the graph. * * @param i the first vertex of the edge to add * @param j the second vertex of the edge to add */ public void removeEdge(int i, int j); /** * This function returns the set of neighbors of vertex i in the graph * which have indices less than i. * * @param i the vertex to query * @return the set of j such that j < i and i ~ j */ public TIntHashSet getLowerNeighbors(int i); /** * This function returns an edge iterator that allows the user to * iterate over the set of edges in the graph. * * @return an Iterator */ public Iterator iterator(); public int getDegree(int v); public int[] getNeighbors(int v); public int[] getDegreeSequence(); } ================================================ FILE: src/java/edu/stanford/math/plex4/graph/AbstractWeightedUndirectedGraph.java ================================================ package edu.stanford.math.plex4.graph; /** * This interface defines functionality for a weighted graph. * The graph may be directed or undirected. * * @author Andrew Tausz * */ public interface AbstractWeightedUndirectedGraph extends AbstractUndirectedGraph { /** * This function returns the weight of the edge (i, j). * * @param i the index of the first vertex of the edge * @param j the index of the second vertex of the edge * @return the weight of the edge (i, j) */ public double getWeight(int i, int j); /** * This function adds an edge with specified weight. * * @param i the index of the first vertex of the edge * @param j the index of the second vertex of the edge * @param weight the weight of the edge */ public void addEdge(int i, int j, double weight); } ================================================ FILE: src/java/edu/stanford/math/plex4/graph/UndirectedListEdgeIterator.java ================================================ /** * */ package edu.stanford.math.plex4.graph; import java.util.Iterator; import edu.stanford.math.primitivelib.autogen.pair.IntIntPair; import gnu.trove.TIntDoubleHashMap; import gnu.trove.TIntHashSet; import gnu.trove.TIntIterator; import gnu.trove.TIntObjectHashMap; import gnu.trove.TIntObjectIterator; /** * @author Andrew Tausz * */ public class UndirectedListEdgeIterator implements Iterator { private final TIntObjectHashMap adjacencySets; /** * This iterates through the different adjacency lists. */ private TIntObjectIterator listIterator; /** * This iterates through a particular adjacency list. Ie. given a vertex, * this iterates through the lower-neighbors of the vertex. */ private TIntIterator elementIterator; public UndirectedListEdgeIterator(TIntObjectHashMap adjacencySets) { this.adjacencySets = adjacencySets; this.listIterator = this.adjacencySets.iterator(); this.listIterator.advance(); this.elementIterator = this.listIterator.value().iterator(); } /* * (non-Javadoc) * * @see java.util.Iterator#hasNext() */ public boolean hasNext() { if (this.listIterator.hasNext()) { return true; } return this.elementIterator.hasNext(); } /* * (non-Javadoc) * * @see java.util.Iterator#next() */ public IntIntPair next() { if (!this.elementIterator.hasNext()) { this.listIterator.advance(); this.elementIterator = this.listIterator.value().iterator(); } int j = this.listIterator.key(); int i = this.elementIterator.next(); return new IntIntPair(i, j); } /* * (non-Javadoc) * * @see java.util.Iterator#remove() */ public void remove() { throw new UnsupportedOperationException(); } } ================================================ FILE: src/java/edu/stanford/math/plex4/graph/UndirectedListGraph.java ================================================ /** * */ package edu.stanford.math.plex4.graph; import edu.stanford.math.primitivelib.autogen.pair.IntIntPair; import gnu.trove.TIntHashSet; import gnu.trove.TIntIntHashMap; import gnu.trove.TIntIntIterator; import gnu.trove.TIntObjectHashMap; import java.util.Iterator; /** * This class implements the functionality of an undirected graph. It uses an * adjacency list data structure. That is, for each vertex u, it stores the set * of vertices {v_1, .., v_k} such that u is connected to v_i and v_i < u. * * For example consider the following graph: * 0 -- 1 * | | * 2 -- 3 -- 4 * * * The following storage scheme is used: 1: {0} 2: {0} 3: {1, 2} 4: {3} * * * @author Andrew Tausz * */ public class UndirectedListGraph implements AbstractUndirectedGraph { private static final long serialVersionUID = -6877203803491057242L; /** * This is the adjacency set structure */ private final TIntObjectHashMap adjacencySets; private final TIntIntHashMap degrees = new TIntIntHashMap(); /** * Stores the number of vertices in the graph - must be prespecified */ private final int numVertices; /** * Constructor which initializes the graph to consist of disconnected * vertices. The number of vertices is initialized to numVertices. * * @param numVertices * the number of vertices to initialize the graph with */ public UndirectedListGraph(int numVertices) { this.numVertices = numVertices; this.adjacencySets = new TIntObjectHashMap(); } public UndirectedListGraph(final int numVertices, final TIntObjectHashMap adjacencySets) { this.numVertices = numVertices; this.adjacencySets = adjacencySets; } /** * This constructor initializes the graph with the contents of another * graph. * * @param graph * the graph to initialize with */ public UndirectedListGraph(AbstractUndirectedGraph graph) { this.numVertices = graph.getNumVertices(); this.adjacencySets = new TIntObjectHashMap(); for (IntIntPair edge : graph) { this.addEdge(edge.getFirst(), edge.getSecond()); } } /** * Constructor which initializes the graph to contain the edges given in the * specified adjacency matrix. * * @param adjacencyMatrix * the adjacency matrix to initialize with */ public UndirectedListGraph(int[][] adjacencyMatrix) { int n = adjacencyMatrix.length; this.numVertices = n; this.adjacencySets = new TIntObjectHashMap(); for (int i = 0; i < n; i++) { for (int j = 0; j < i; j++) { if (adjacencyMatrix[i][j] != 0) { this.addEdge(i, j); } } } } /* * (non-Javadoc) * * @see edu.stanford.math.plex_plus.graph.AbstractGraph#addEdge(int, int) */ public void addEdge(int i, int j) { if (this.containsEdge(i, j)) { return; } int x = (i < j ? i : j); int y = (i < j ? j : i); if (!this.adjacencySets.containsKey(y)) { this.adjacencySets.put(y, new TIntHashSet()); } this.adjacencySets.get(y).add(x); if (!this.degrees.containsKey(x)) { this.degrees.put(x, 0); } if (!this.degrees.containsKey(y)) { this.degrees.put(y, 0); } this.degrees.put(x, this.degrees.get(x) + 1); this.degrees.put(y, this.degrees.get(y) + 1); } /* * (non-Javadoc) * * @see edu.stanford.math.plex_plus.graph.AbstractGraph#containsEdge(int, * int) */ public boolean containsEdge(int i, int j) { int x = (i < j ? i : j); int y = (i < j ? j : i); if (!this.adjacencySets.containsKey(y)) { return false; } return this.adjacencySets.get(y).contains(x); } /* * (non-Javadoc) * * @see edu.stanford.math.plex_plus.graph.AbstractGraph#getNumEdges() */ public int getNumEdges() { // use the fact that: sum deg_j = 2 * |E| int degreeSum = 0; TIntIntIterator iter = this.degrees.iterator(); while(iter.hasNext()) { iter.advance(); degreeSum += iter.value(); } return (degreeSum / 2); } /* * (non-Javadoc) * * @see edu.stanford.math.plex_plus.graph.AbstractGraph#getNumVertices() */ public int getNumVertices() { return this.numVertices; } /* * (non-Javadoc) * * @see edu.stanford.math.plex_plus.graph.AbstractGraph#removeEdge(int, int) */ public void removeEdge(int i, int j) { int x = (i < j ? i : j); int y = (i < j ? j : i); if (!this.adjacencySets.containsKey(y)) { return; } this.adjacencySets.get(y).remove(x); if (this.adjacencySets.get(y).isEmpty()) { this.adjacencySets.remove(y); } this.degrees.put(x, this.degrees.get(x) - 1); this.degrees.put(y, this.degrees.get(y) - 1); } /** * This function returns the set of neighbors of vertex i in the graph which * have indices less than i. * * @param i * the vertex to query * @return the set of j such that j < i and i ~ j */ public TIntHashSet getLowerNeighbors(int i) { if (this.adjacencySets.contains(i)) { return this.adjacencySets.get(i); } else { return new TIntHashSet(); } } public Iterator iterator() { return new UndirectedListEdgeIterator(this.adjacencySets); } public int getDegree(int v) { return this.degrees.get(v); } public int[] getDegreeSequence() { int[] sequence = new int[this.numVertices]; for (int i = 0; i < this.numVertices; i++) { sequence[i] = this.degrees.get(i); } return sequence; } public int[] getNeighbors(int v) { TIntHashSet set = new TIntHashSet(); set.addAll(this.getLowerNeighbors(v).toArray()); for (int i = v + 1; i < this.numVertices; i++) { if (this.adjacencySets.containsKey(i)) { if (this.adjacencySets.get(i).contains(v)) { set.add(i); } } } return set.toArray(); } } ================================================ FILE: src/java/edu/stanford/math/plex4/graph/UndirectedWeightedListGraph.java ================================================ /** * */ package edu.stanford.math.plex4.graph; import edu.stanford.math.plex4.utility.ExceptionUtility; import edu.stanford.math.primitivelib.autogen.pair.IntIntPair; import gnu.trove.TIntDoubleHashMap; import gnu.trove.TIntDoubleIterator; import gnu.trove.TIntHashSet; import gnu.trove.TIntIntHashMap; import gnu.trove.TIntObjectHashMap; import gnu.trove.TIntObjectIterator; import java.util.HashSet; import java.util.Iterator; import java.util.Set; /** * This class implements the functionality of an undirected weighted graph. * It uses an adjacency list representation. See the class * UndirectedListGraph for more information about the internal representation. * * @author Andrew Tausz * */ public class UndirectedWeightedListGraph implements AbstractWeightedUndirectedGraph { private static final long serialVersionUID = -4885036152039543245L; private final TIntObjectHashMap adjacencySets = new TIntObjectHashMap(); private final int numVertices; private final TIntIntHashMap degrees = new TIntIntHashMap(); /** * Constructor which initializes the graph to consist of disconnected * vertices. The number of vertices is initialized to numVertices. * * @param numVertices the number of vertices to initialize the graph with */ public UndirectedWeightedListGraph(int numVertices) { this.numVertices = numVertices; } /* (non-Javadoc) * @see edu.stanford.math.plex_plus.graph.AbstractWeightedGraph#addEdge(int, int, double) */ public void addEdge(int i, int j, double weight) { ExceptionUtility.verifyIndex(this.numVertices, i); ExceptionUtility.verifyIndex(this.numVertices, j); int x = (i < j ? i : j); int y = (i < j ? j : i); if (!this.adjacencySets.containsKey(y)) { this.adjacencySets.put(y, new TIntDoubleHashMap()); } this.adjacencySets.get(y).put(x, weight); if (!this.degrees.containsKey(x)) { this.degrees.put(x, 0); } if (!this.degrees.containsKey(y)) { this.degrees.put(y, 0); } this.degrees.put(x, this.degrees.get(x) + 1); this.degrees.put(y, this.degrees.get(y) + 1); } /* (non-Javadoc) * @see edu.stanford.math.plex_plus.graph.AbstractWeightedGraph#getWeight(int, int) */ public double getWeight(int i, int j) { ExceptionUtility.verifyIndex(this.numVertices, i); ExceptionUtility.verifyIndex(this.numVertices, j); int x = (i < j ? i : j); int y = (i < j ? j : i); if (!this.adjacencySets.containsKey(y)) { return 0; } return this.adjacencySets.get(y).get(x); } /* (non-Javadoc) * @see edu.stanford.math.plex_plus.graph.AbstractGraph#addEdge(int, int) */ public void addEdge(int i, int j) { this.addEdge(i, j, 1); } /* (non-Javadoc) * @see edu.stanford.math.plex_plus.graph.AbstractGraph#containsEdge(int, int) */ public boolean containsEdge(int i, int j) { return (this.getWeight(i, j) != 0); } /* (non-Javadoc) * @see edu.stanford.math.plex_plus.graph.AbstractGraph#getNumEdges() */ public int getNumEdges() { int sum = 0; for(int k : degrees.getValues()) sum += k; return(sum/2); } /* (non-Javadoc) * @see edu.stanford.math.plex_plus.graph.AbstractGraph#getNumVertices() */ public int getNumVertices() { return this.numVertices; } /* (non-Javadoc) * @see edu.stanford.math.plex_plus.graph.AbstractGraph#removeEdge(int, int) */ public void removeEdge(int i, int j) { ExceptionUtility.verifyIndex(this.numVertices, i); ExceptionUtility.verifyIndex(this.numVertices, j); int x = (i < j ? i : j); int y = (i < j ? j : i); if (!this.adjacencySets.containsKey(y)) { return; } this.adjacencySets.get(y).remove(x); } /** * This function returns the set of neighbors of vertex i in the graph * which have indices less than i. * * @param i the vertex to query * @return the set of j such that j < i and i ~ j */ public TIntHashSet getLowerNeighbors(int i) { ExceptionUtility.verifyIndex(this.numVertices, i); if (this.adjacencySets.contains(i)) { int [] array = this.adjacencySets.get(i).keys(); return new TIntHashSet(array); } else { return new TIntHashSet(); } } public TIntObjectHashMap getUnweightedAdjacencySets() { TIntObjectHashMap result = new TIntObjectHashMap(); TIntObjectIterator iterator = adjacencySets.iterator(); while(iterator.hasNext()) { iterator.advance(); int i = iterator.key(); TIntDoubleHashMap value = iterator.value(); TIntDoubleIterator iterator2 = value.iterator(); TIntHashSet neighbors = new TIntHashSet(); while(iterator2.hasNext()) { iterator2.advance(); int j = iterator2.key(); neighbors.add(j); } result.put(i, neighbors); } return result; } public UndirectedListGraph toUnweightedGraph() { return new UndirectedListGraph(this.numVertices, this.getUnweightedAdjacencySets()); } public Iterator iterator() { return new UndirectedListEdgeIterator(this.getUnweightedAdjacencySets()); } public int getDegree(int v) { return this.degrees.get(v); } public int[] getDegreeSequence() { int[] sequence = new int[this.numVertices]; for (int i = 0; i < this.numVertices; i++) { sequence[i] = this.degrees.get(i); } return sequence; } public int[] getNeighbors(int v) { TIntHashSet set = new TIntHashSet(); set.addAll(this.getLowerNeighbors(v).toArray()); for (int i = v + 1; i < this.numVertices; i++) { if (this.adjacencySets.containsKey(i)) { if (this.adjacencySets.get(i).containsKey(v)) { set.add(i); } } } return set.toArray(); } public Set getWeights() { Set weights = new HashSet(); for (Object x : adjacencySets.getValues()) for (Double weight : ((TIntDoubleHashMap) x).getValues()) weights.add(weight); return weights; } } ================================================ FILE: src/java/edu/stanford/math/plex4/graph/io/GraphDotWriter.java ================================================ package edu.stanford.math.plex4.graph.io; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; import edu.stanford.math.plex4.graph.AbstractUndirectedGraph; import edu.stanford.math.plex4.io.ObjectWriter; import edu.stanford.math.primitivelib.autogen.pair.IntIntPair; public class GraphDotWriter implements ObjectWriter { public void writeToFile(AbstractUndirectedGraph object, String path) throws IOException { BufferedWriter writer = null; try { writer = new BufferedWriter(new FileWriter(path, false)); writer.write("graph {"); writer.newLine(); for (IntIntPair edge : object) { writer.write(edge.getFirst() + " -- " + edge.getSecond() + ";"); writer.newLine(); } writer.write("}"); writer.newLine(); } catch (IOException e) { e.printStackTrace(); } finally { if (writer != null) { writer.close(); } } } public String getExtension() { return ".dot"; } } ================================================ FILE: src/java/edu/stanford/math/plex4/graph/metric/GraphMetricFactory.java ================================================ package edu.stanford.math.plex4.graph.metric; import edu.stanford.math.plex4.graph.AbstractUndirectedGraph; import edu.stanford.math.plex4.metric.interfaces.AbstractIntMetricSpace; /** * This interface defines the functionality of a factory which creates a metric space on a * given graph. * * @author Andrew Tausz * */ public interface GraphMetricFactory { /** * This function produces a finite metric space on the vertex set of a given graph. * * @param graph the graph whose vertex set forms the point set of the metric space * @return a metric space created from the graph */ public AbstractIntMetricSpace createMetricSpace(AbstractUndirectedGraph graph); } ================================================ FILE: src/java/edu/stanford/math/plex4/graph/metric/ShortestPathMetric.java ================================================ /** * */ package edu.stanford.math.plex4.graph.metric; import edu.stanford.math.plex4.graph.AbstractUndirectedGraph; import edu.stanford.math.plex4.graph.utility.GraphUtility; import edu.stanford.math.plex4.metric.impl.ExplicitMetricSpace; import edu.stanford.math.plex4.metric.interfaces.AbstractIntMetricSpace; /** * This class produces a metric space that is defined by the shortest-path distance * between vertices in a graph. It implements the GraphMetricFactory interface, meaning * that it produces a metric space, but is not a metric space. * * @author Andrew Tausz * */ public class ShortestPathMetric implements GraphMetricFactory { private static final ShortestPathMetric instance = new ShortestPathMetric(); private ShortestPathMetric(){} public static ShortestPathMetric getInstance() { return instance; } public AbstractIntMetricSpace createMetricSpace(AbstractUndirectedGraph graph) { return new ExplicitMetricSpace(GraphUtility.computeShortestPaths(graph)); } } ================================================ FILE: src/java/edu/stanford/math/plex4/graph/random/BAGraph.java ================================================ package edu.stanford.math.plex4.graph.random; import edu.stanford.math.plex4.graph.AbstractUndirectedGraph; import edu.stanford.math.plex4.utility.RandomUtility; import edu.stanford.math.primitivelib.autogen.array.IntArrayMath; /** * Implements a Barabasi-Albert (BA) random graph model. * * From Wikipedia: The Barabasi-Albert (BA) model is an algorithm for generating * random scale-free networks using a preferential attachment mechanism. * Scale-free networks are widely observed in natural and man-made systems, * including the Internet, the world wide web, citation networks, and some * social networks. * * @author Tim Harrington * @date Feb 7, 2009 * */ public class BAGraph extends GraphInstanceGenerator { private static final long serialVersionUID = -2891811948996610346L; protected int nParam; protected int mParam; public BAGraph(int n, int m) { this.nParam = n; this.mParam = m; } /** * This algorithm makes a power law graph with n nodes. First it makes a * connected starter graph with m nodes. Then it adds new nodes with up to m * edges to existing nodes. An edge to node i is added with probability * * p_i = \frac{k_i}{\displaystyle\sum_j k_j}, * * where k_j is the degree of node j. * * @param dataDimension * the size of the graph * @param numDataPoints * the number of potential edges to add at each step where m<0) * such that there are at least n leaves. That is, we need to find k that * satisfies 2^k <= n < 2^{k+1} To do this we solve for k and let d=ceil(k). * * @return the value of k that satisfies [2^k <= n < 2^{k+1}]. */ protected int getTreeDepth(int n) { // solve for n = 2^{k+1} - 2^k double k = Math.log(n) / Math.log(2); int depth = (int) Math.ceil(k); debug("Tree depth is " + depth + "."); return depth; } /* * (non-Javadoc) * * @see java.lang.Object#toString() */ @Override public String toString() { return "Hierarchical(" + this.numNodes + ")"; } protected void debug(String msg) { if (debugFlag) { System.out.println(msg); } } } ================================================ FILE: src/java/edu/stanford/math/plex4/graph/random/BinaryTree.java ================================================ package edu.stanford.math.plex4.graph.random; /** * Implements a binary tree of nodes labeled 1,2,...,n. * * @author Tim Harrington * @date Feb 8, 2009 */ public class BinaryTree { /* * In binary there is a structure to the labels: * * 1 * / \ * / \ * 11 10 * / \ / \ * 111 110 101 100 * * I utilize this structure heavily in the following methods. * */ protected int n; public BinaryTree(int n) { this.n = n; } /** * @return the depth of the deepest node in the tree */ public int getMaxDepth() { int level = 0; while (n >> level != 0) { level++; } return level; } /** * Returns the depth of a node in a breadth-first labeled binary tree rooted * at 1. The depth of node 1 is 0. * * @param i * node label * @return the depth of node i in the tree */ public int getDepth(int i) { int level = 0; while (i >> level != 0) { level++; } return level - 1; } /** * @param i * node label * @param j * node label * @return the label of the first common ancestor in the tree */ public int getCommonAncestor(int i, int j) { /* Case 1: i==j */ if (i == j) return i; int x = Math.min(i, j); int y = Math.max(i, j); int xD = this.getDepth(x); int yD = this.getDepth(y); /* Case 2: i!=j */ /* Case 2.1: depth(i)==depth(j) */ if (xD == yD) { int level = 0; while (i >> level != j >> level) { level++; } return i >> level; } /* Case 2.2: depth(i)!=depth(j) */ /* Case 2.2.1: x is an ancestor of y */ int temp = y >> yD - xD; if (x == temp) return x; /* Case 2.2.2: x is not an ancestor of y */ int level = 0; while (x >> level != y >> (yD - xD + level)) { level++; } return x >> level; } /** * @param i * node label * @param j * node label * @return tree depth of the first common ancestor of i and j */ public int commonAncestorDepth(int i, int j) { int k = this.getCommonAncestor(i, j); return this.getDepth(k); } } ================================================ FILE: src/java/edu/stanford/math/plex4/graph/random/BinaryTreeGraph.java ================================================ package edu.stanford.math.plex4.graph.random; import edu.stanford.math.plex4.graph.AbstractUndirectedGraph; /** * @author Tim Harrington * @date Apr 1, 2009 * */ public class BinaryTreeGraph extends GraphInstanceGenerator { private static final long serialVersionUID = 379015239255681800L; protected int n; public BinaryTreeGraph(int n) { this.n = n; } @Override public AbstractUndirectedGraph generate() { AbstractUndirectedGraph graph = this.initializeGraph(n); int maxDepth = 0; while (n >> maxDepth != 0) { maxDepth++; } /* * Construct a binary tree by walking the left edge 1,2,4,8,... * At the i-th level, iterate k from 2^i to 2^(i+1) and add an * edge to the two children of k for each k. For example, at * level 1 iterate from k=2 to k=3 and: * for k=2 add (2,4) and (2,5) to the graph * for k=3 add (3,6) and (3,7) to the graph * Alternatively, * for k=2 add (2,2<<1) and (2,2<<1|1) to the graph * for k=3 add (3,3<<1) and (3,3<<1|1) to the graph * * 1 * / \ * 3 2 * / \ / \ * 7 6 5 4 * ... */ outer: for (int i = 0; i < maxDepth; i++) { for (int j = (1 << i); j < (1 << (i + 1)); j++) { int k = j << 1; if (k > n) break outer; graph.addEdge(j - 1, k - 1); int l = (j << 1) | 1; if (l > n) break outer; graph.addEdge(j - 1, l - 1); } } return graph; } /* * (non-Javadoc) * * @see java.lang.Object#toString() */ @Override public String toString() { return "BinaryTreeGraph(" + this.n + ")"; } } ================================================ FILE: src/java/edu/stanford/math/plex4/graph/random/CircleGraph.java ================================================ package edu.stanford.math.plex4.graph.random; import edu.stanford.math.plex4.graph.AbstractUndirectedGraph; import edu.stanford.math.plex4.utility.RandomUtility; /** * Class that represents a graph with a circle "shape" * * @author Tim Harrington * @date Dec 20, 2008 */ public class CircleGraph extends GraphInstanceGenerator { private static final long serialVersionUID = -3618903660728579100L; protected int numNodes; // each node is connected to k neighbours protected int numNeighbors; // probability of rewiring each edge protected double rewiringProbability; protected int numRewired; public CircleGraph(int numNodes, int numNeighbors, double rewiringProbability) { this.numNodes = numNodes; this.numNeighbors = numNeighbors - numNeighbors % 2; this.rewiringProbability = rewiringProbability; } @Override public AbstractUndirectedGraph generate() { AbstractUndirectedGraph graph = this.initializeGraph(numNodes); return this.generateWithRewiring(graph); } /** * @param dataDimension * @param p * @param k */ protected AbstractUndirectedGraph generateWithRewiring(AbstractUndirectedGraph graph) { int n = this.numNodes; for (int i = 0; i < this.numNodes; i++) { for (int j = 0; j < this.numNeighbors / 2; j++) { if (RandomUtility.nextBernoulli(this.rewiringProbability) == 1) { // rewire // the // connection this.numRewired += 1; int randNode = RandomUtility.nextUniformInt(0, n - 1); while (randNode == i) { // don't allow randNode to equal i randNode = RandomUtility.nextUniformInt(0, n - 1); } graph.addEdge(i, randNode); } else { // don't rewire the connection // check if we need to wrap the indices around if (i + j + 1 > n - 1) { // we need to graph.addEdge(i, i + j + 1 - n); } else { // we don't need to graph.addEdge(i, i + j + 1); } } } } return graph; } @Override public String toString() { return new String("CircleGraph(" + this.numNodes + ", " + this.numNeighbors + ", " + this.rewiringProbability + ")"); } /** * @param dataDimension * @param k */ /* * protected void generateWithoutRewiring(int n, int k) { for (int i=0; in-1) { // we need to graph.addEdge(i,i+j+1-n); } * else { // we don't need to graph.addEdge(i,i+j+1); } } } } */ /* * (non-Javadoc) * * @see edu.stanford.cme.smallworld.ArtificialNetwork#generateNeighbors() */ /* * @Override public void generateNeighbors() { int n = this.getNodeCount(); * double p = this.getRewireProb(); int k = this.getNeighborCount(); if * (Math.min(p,1-p) != 0) { this.generateWithRewiring(n, p, k); } else { * this.generateWithoutRewiring(n, k); } } */ public String correctBettiSequence() { return "BN{1, 1}"; } } ================================================ FILE: src/java/edu/stanford/math/plex4/graph/random/ClusteredERGraph.java ================================================ /** * */ package edu.stanford.math.plex4.graph.random; import java.util.ArrayList; import java.util.Formatter; import java.util.List; import java.util.Locale; import edu.stanford.math.plex4.graph.AbstractUndirectedGraph; import edu.stanford.math.plex4.utility.RandomUtility; /** * Makes a clustered graph by connecting a specified number of clusters (i.e. * ErdosRenyi graphs) in a specified way. * * @author Tim Harrington * @date Oct 15, 2009 */ public class ClusteredERGraph extends GraphInstanceGenerator { private static final long serialVersionUID = -1685211333671788823L; // variables for defining the clusters int[] clusterSizes; // how many nodes in each cluster double[] clusterParams; // the ER-parameter for each cluster // variables for specifiying how the clusters should be connected List srcClusters = new ArrayList(); List destClusters = new ArrayList(); List edgeCounts = new ArrayList(); // as a % of nodes in source cluster // node count int n = 0; public ClusteredERGraph(int clusterCount) { this.clusterSizes = new int[clusterCount]; this.clusterParams = new double[clusterCount]; } /** * Warning: No input validation is performed. * * @param index * @param size * @param param */ public void defineCluster(int index, int size, double param) { n += size; clusterSizes[index] = size; clusterParams[index] = param; } /** * Warning: No input validation is performed. * * @param srcIndex * @param destIndex * @param param */ public void linkClusters(int srcIndex, int destIndex, int edgeCount) { srcClusters.add(Integer.valueOf(srcIndex)); destClusters.add(Integer.valueOf(destIndex)); edgeCounts.add(Integer.valueOf(edgeCount)); } @Override public AbstractUndirectedGraph generate() { AbstractUndirectedGraph graph = this.initializeGraph(n); // store the cluster starting points int[] startingPoints = new int[clusterSizes.length]; // make the clusters int start = 0; // stores the next cluster starting point for (int i=0; i= x) break; } return graph; } /* * (non-Javadoc) * * @see java.lang.Object#toString() */ @Override public String toString() { return "ForestFire(" + this.nodeCount + "," + this.forwardBurningProbability + "," + this.backwardBurningProbability + ")"; } } ================================================ FILE: src/java/edu/stanford/math/plex4/graph/random/GraphInstanceGenerator.java ================================================ package edu.stanford.math.plex4.graph.random; import java.io.Serializable; import edu.stanford.math.plex4.graph.AbstractUndirectedGraph; import edu.stanford.math.plex4.graph.UndirectedListGraph; /** * This class abstracts the construction of graphs. * * @author Andrew Tausz * */ public abstract class GraphInstanceGenerator implements Serializable { private static final long serialVersionUID = 6049123403450474191L; public enum ImplementationType { adjacencyList, matrix, compact } protected ImplementationType implementationType; protected AbstractUndirectedGraph graphImplementation; public GraphInstanceGenerator() { this.implementationType = ImplementationType.adjacencyList; } public GraphInstanceGenerator(ImplementationType implementationType) { this.implementationType = implementationType; } public void setImplementationType(ImplementationType implementationType) { this.implementationType = implementationType; } protected AbstractUndirectedGraph initializeGraph(int numNodes) { if (this.implementationType == ImplementationType.adjacencyList) { return new UndirectedListGraph(numNodes); } else { return null; } } public abstract AbstractUndirectedGraph generate(); } ================================================ FILE: src/java/edu/stanford/math/plex4/graph/random/HierarchicalERGraph.java ================================================ /** * */ package edu.stanford.math.plex4.graph.random; /** * @author Tim Harrington * @date May 6, 2009 * */ public class HierarchicalERGraph extends BinaryHierarchicalGraph { private static final long serialVersionUID = 3491552989916440763L; protected int rootedGraphSize; protected int hgLeafCount; protected double erParameter; /** * Note: n and m should each be a power of 2 * * @param n * - the number of hierarchical graph leaves (this parameter is * rounded up to the nearest power of 2) * @param m * - the size of the ER graph rooted at each hierarchical graph * leaf (this parameter is rounded up to the nearest power of 2) * @param maxProbability * @param erParameter */ public HierarchicalERGraph(int n, int m, double maxProbability, double erParameter) { super(roundUpToPowerOf2(n) * roundUpToPowerOf2(m), true); this.rootedGraphSize = roundUpToPowerOf2(m); this.hgLeafCount = roundUpToPowerOf2(n); this.erParameter = erParameter; this.maxProbability = maxProbability; } protected static int roundUpToPowerOf2(int m) { double p = Math.ceil(Math.log(m) / Math.log(2)); return (int) Math.pow(2, p); } /** * We need one probability for each potential common ancestor depth * d=1..k-1. They are constructed here. * * The ER graphs that are rooted at a leaf in the hierarchical graph are * treated as additional j levels of hierarchy. Therefore, the probability * annotations for the last j levels is set to a constant to simulate the ER * construction. * * @param k * a value such that (2^k <= n <= (2^{k+1})-1) * @param dampingFactor * a scaling factor in the open set (0,1) * @return */ protected double[] getProbabilities(int k, double dampingFactor) { double[] probs = new double[k]; // Get the number of levels that correspond to each rooted HR graph int rLevels = k - getTreeDepth(this.hgLeafCount); int hLevels = k - rLevels; /* * The first hLevels positions in the array probs are used to store the * probability annotations corresponding to the hierarchical graph * leaves. The last rLevels (rooted levels) are used to store the * Erdos-Renyi parameter. */ // The size is k since the possible depths are d=0,1,..,k-1 double denom = 0; for (int i = 0; i < hLevels; i++) { denom = Math.exp(hLevels - i) / Math.exp(1); probs[i] = (1 / denom) * dampingFactor; } for (int j = 0; j < rLevels; j++) { probs[hLevels + j] = this.erParameter; } return probs; } protected int getERHierarchyLevelCount(int totalLevels) { return totalLevels - getTreeDepth(this.hgLeafCount); } /* * (non-Javadoc) * * @see java.lang.Object#toString() */ @Override public String toString() { return "HierarchicalER(" + this.hgLeafCount + "," + this.rootedGraphSize + "," + this.maxProbability + "," + this.erParameter + ")"; } public double getErParameter() { return erParameter; } public int getHgLeafCount() { return hgLeafCount; } public int getRootedGraphSize() { return rootedGraphSize; } } ================================================ FILE: src/java/edu/stanford/math/plex4/graph/random/KNearestNeighborsGraph.java ================================================ /** * */ package edu.stanford.math.plex4.graph.random; import edu.stanford.math.primitivelib.autogen.array.DoubleArrayMath; /** * Generates n random points in [0,1]^d and connects each point to its k-nearest * neighbors * * @author Andrew Tausz */ public class KNearestNeighborsGraph extends ManifoldGraph { private static final long serialVersionUID = 8103387342329387307L; public KNearestNeighborsGraph(int size, int dimension, int k) { super(size, dimension, k); } @Override protected double distance(double[] x, double[] y) { return DoubleArrayMath.distance(x, y); } @Override protected void generatePoints() { this.generateUniformPoints(); } @Override public String toString() { return "CubeKNN(" + this.size + "," + this.dimension + "," + this.k + ")"; } } ================================================ FILE: src/java/edu/stanford/math/plex4/graph/random/ManifoldGraph.java ================================================ package edu.stanford.math.plex4.graph.random; import edu.stanford.math.plex4.graph.AbstractUndirectedGraph; import edu.stanford.math.plex4.utility.RandomUtility; import edu.stanford.math.primitivelib.autogen.array.DoubleArrayQuery; import edu.stanford.math.primitivelib.autogen.array.IntArrayQuery; /** * This class is used to create a k-nearest neighbors graph on a manifold. * It is abstract, and subclasses are required to implement the metric * on the manifold. * * @author Andrew Tausz * */ public abstract class ManifoldGraph extends GraphInstanceGenerator { private static final long serialVersionUID = -5873098569927731498L; protected double points[][]; int size; int dimension; int k; /** * Constructor for the ManifoldGraph class. * * @param size the number of points in the graph * @param dimension the dimension of the manifold * @param k the number of points to connect to */ protected ManifoldGraph(int size, int dimension, int k) { this.size = size; this.dimension = dimension; this.k = k; } @Override public AbstractUndirectedGraph generate() { // generate random points the manifold this.generatePoints(); // construct graph AbstractUndirectedGraph graph = this.initializeGraph(this.size); // connect each point to its k closest neighbors for (int i = 0; i < this.size; i++) { int[] nearestNeighbors = this.getNearestNeighbors(i); for (int j = 0; j < k; j++) { graph.addEdge(i, nearestNeighbors[j]); } } return graph; } /** * This function generates points on the d-dimensional cube [0, 1]^d. * It is intended for manifolds represented by squares (or cubes) with * their edges identified some way. */ protected void generateUniformPoints() { this.points = RandomUtility.uniformMatrix(this.size, this.dimension); } /** * This function must generate the set of random points on the manifold. */ protected abstract void generatePoints(); /** * This function must implement the distance function on the manifold. * * @param x the first point * @param y the second point * @return the distance between x and y in the manifold */ protected abstract double distance(double[] x, double[] y); /** * This function gets the indices of the k nearest neighbors * to the point at the specified index. * * @param index the index of the point * @return the indices of the k nearest neighbors */ protected int[] getNearestNeighbors(int index) { double[] x = this.points[index]; double[] distances = new double[this.size]; int[] nearestNeighbors = new int[this.k]; for (int i = 0; i < this.size; i++) { distances[i] = this.distance(x, this.points[i]); } nearestNeighbors = DoubleArrayQuery.getMinimumIndices(distances, k + 1); nearestNeighbors = IntArrayQuery.removeElement(nearestNeighbors, index); return nearestNeighbors; } } ================================================ FILE: src/java/edu/stanford/math/plex4/graph/random/PrescribedDegrees.java ================================================ package edu.stanford.math.plex4.graph.random; import edu.stanford.math.plex4.graph.AbstractUndirectedGraph; import edu.stanford.math.plex4.utility.RandomUtility; import edu.stanford.math.primitivelib.autogen.array.IntArrayManipulation; import edu.stanford.math.primitivelib.autogen.array.IntArrayMath; /** * Implements a random prescribed degree graph by the algorithm presented in * J.Blitstein and P.Diaconis * * @author Santiago Akle * @author Tim Harrington * */ public class PrescribedDegrees extends GraphInstanceGenerator { private static final long serialVersionUID = -5243083558152110213L; protected int[] degreeSequence; protected int numNodes; public PrescribedDegrees(int[] degreeSequence) { // sort the degree sequence int[] ds = IntArrayManipulation.sortDescending(degreeSequence); // check if the degree sequence is graphical if (!isGraphical(ds)) { throw new IllegalArgumentException("Infeasible degree sequence"); } this.degreeSequence = ds; this.numNodes = this.degreeSequence.length; } /** * Implements "Sequential Algorithm For Random Graph with Given Degrees" * from "A SEQUENTIAL IMPORTANCE SAMPLING ALGORITHM FOR GENERATING RANDOM * GRAPHS WITH PRESCRIBED DEGREES" By Joseph Blitzstein and Persi Diaconis * * @param argd */ @Override public AbstractUndirectedGraph generate() { AbstractUndirectedGraph graph = this.initializeGraph(this.numNodes); // copy the array so we can change it int[] d = java.util.Arrays.copyOf(this.degreeSequence, this.degreeSequence.length); // Initialize variables double[] p; double x; int[] candidateList; int node0 = 0, node1 = 0, i = 0; // STEP 2 while (IntArrayMath.max(d) > 0) { // while there are still edges to add // STEP 3 node0 = minPositivePosition(d); //System.out.println("NEW OUTER LOOP ITERATION (node0=" + node0 + ")"); while (d[node0] > 0) { // while node0 needs a higher degree in the // graph // STEP 4 candidateList = getCandidateList(d, node0, graph); //System.out.println("candidate list: " + ArrayUtility.toMatlabString(candidateList)); // STEP 5 p = getProbabilityPartition(candidateList); x = RandomUtility.nextUniform(); i = whichSegmentHasX(p, x); node1 = candidateList[i]; // STEP 6 //System.out.println("adding edge: (" + node0 + "," + node1 + ")"); graph.addEdge(node0, node1); d = multiMinus(d, node0, node1); //System.out.println("updated degree sequence: " + ArrayUtility.toMatlabString(d)); } } return graph; } /** * Checks the Erdos-Gallai criteria for a particular value of k. * * @param d * @param k * @return */ protected static boolean erdosGallaiCriteria(int[] d, int k) { int n = d.length; int leftSum = 0; for (int i = 1; i <= k; i++) { leftSum += d[i - 1]; } int rightSum = k * (k - 1); for (int i = k + 1; i <= n; i++) { rightSum += Math.min(k, d[i - 1]); } return (leftSum <= rightSum); } /** * Determines if a degree sequence is realizable using the Erdos-Gallai * Criteria * * @param degreeSequence * @return True if there exists at least one graph with this degree * sequence. */ public static boolean isGraphical(int[] d) { // check that all entries are nonnegative for (int j = 0; j < d.length; j++) { if (d[j] < 0) return false; } // check that sum_{i} d[i] = 0 mod 2 int sum = 0; for (int j = 0; j < d.length; j++) { sum += d[j]; } if (sum % 2 != 0) { return false; } // check the Erdos-Gallai criteria for (int k = 1; k <= d.length; k++) { if (!erdosGallaiCriteria(d, k)) return false; } return true; } /** * Returns the segment i such that x is in [p[i],p[i+1]]. The partition p * has n+1 values representing n segments. Therefore the returned value will * always be between 0 and n-1. * * @param p * @param x * @return */ protected int whichSegmentHasX(double[] p, double x) { for (int i = 0; i < p.length - 1; i++) { if (x <= p[i + 1]) { return i; } } // if the code ever reaches this point then there is a bug throw new IllegalStateException(); } /** * Computes the set of j!=i such that multiminus(d,i,j) is graphical and * (i,j) is not already an edge. * * @param d * @param i * @return */ protected int[] getCandidateList(int[] d, int i, AbstractUndirectedGraph graph) { int m = -1; int[] list = new int[d.length]; for (int k = 0; k < d.length; k++) { if (k == i) continue; if (isGraphical(IntArrayManipulation.sortDescending(multiMinus(d, i, k)))) { if (!graph.containsEdge(i, k)) { m++; list[m] = k; } } } int[] retval = java.util.Arrays.copyOfRange(list, 0, m + 1); return retval; } /** * Constructs a partition p of [0,1] such that p[i+1]-p[i] is proportional * to the degree of node i in the list d. The return value p satisfies p[i] * <= p[i+1], p[0]==0, and p[end] = 1. * * @param d * degree sequence * @return */ protected double[] getProbabilityPartition(int[] d) { double[] p = new double[d.length + 1]; p[0] = 0d; /* * Add 1 to each element of d so that nodes with degree zero have a * chance at being used for an edge */ int[] dplus1 = IntArrayMath.scalarAdd(d, 1); double sum = IntArrayMath.sum(dplus1); /* * Construct the partition with each segment proportional to the degree * of the corresponding node. */ for (int i = 1; i <= d.length; i++) { double deg = d[i - 1]; p[i] = p[i - 1] + deg / sum; } // correct rounding errors p[p.length - 1] = 1; return p; } /** * Returns the array ds with 1 subtracted from the i-th element and 1 * subtracted from the j-th element. * * @param ds * @param i * @param j * @return */ protected int[] multiMinus(int[] ds, int i, int j) { int[] retval = java.util.Arrays.copyOfRange(ds, 0, ds.length); retval[i] -= 1; retval[j] -= 1; return retval; } /** * Returns the first index of the smallest positive element or -1 if there * are no positive entries * * @param arr * @return */ public static int minPositivePosition(int[] arr) { int i = -1; for (int j = 1; j < arr.length; j++) { if (((arr[j] > 0) && i == -1) || (i >= 0 && ((arr[j] < arr[i])) && arr[j] > 0)) { i = j; } } return i; } @Override public String toString() { return "PrescribedDegreeGraph"; } } ================================================ FILE: src/java/edu/stanford/math/plex4/graph/random/RandomGeometricGraph.java ================================================ /** * */ package edu.stanford.math.plex4.graph.random; import edu.stanford.math.plex4.graph.AbstractUndirectedGraph; import edu.stanford.math.plex4.utility.RandomUtility; /** * Generates n random points in [0,1]^d and connects an edge between points x * and y if d(x,y) 0) { builder.append(";"); } for (int j = i; j < c; j++) { if (j > i) { builder.append(","); } builder.append(df.format(this.probabilityMatrix[i][j])); } } return "StochasticBlock(" + this.n + ",[" + builder.toString() + "])"; } } ================================================ FILE: src/java/edu/stanford/math/plex4/graph/random/TorusGraph.java ================================================ package edu.stanford.math.plex4.graph.random; import edu.stanford.math.primitivelib.autogen.array.DoubleArrayMath; public class TorusGraph extends ManifoldGraph { private static final long serialVersionUID = 101044478862814881L; public TorusGraph(int size, int dimension, int k) { super(size, dimension, k); } public TorusGraph(int size, int k) { super(size, 2, k); } @Override protected double distance(double[] x, double[] y) { double distance = DoubleArrayMath.distance(x, y); for (int d = 0; d < this.dimension; d++) { // shift up by 1 in dimension y[d] += 1; distance = Math.min(distance, DoubleArrayMath.distance(x, y, 2)); y[d] -= 1; // shift down by 1 in dimension y[d] -= 1; distance = Math.min(distance, DoubleArrayMath.distance(x, y, 2)); y[d] += 1; } return distance; } @Override protected void generatePoints() { this.generateUniformPoints(); } @Override public String toString() { return "TorusKNN(" + this.size + "," + this.dimension + "," + this.k + ")"; } } ================================================ FILE: src/java/edu/stanford/math/plex4/graph/utility/GraphUtility.java ================================================ package edu.stanford.math.plex4.graph.utility; import edu.stanford.math.plex4.graph.AbstractUndirectedGraph; import edu.stanford.math.plex4.graph.AbstractWeightedUndirectedGraph; import edu.stanford.math.plex4.streams.impl.ExplicitSimplexStream; import edu.stanford.math.plex4.streams.impl.GeometricSimplexStream; import edu.stanford.math.primitivelib.autogen.array.DoubleArrayUtility; import edu.stanford.math.primitivelib.autogen.matrix.DoubleSparseMatrix; import edu.stanford.math.primitivelib.autogen.matrix.IntSparseMatrix; import edu.stanford.math.primitivelib.autogen.pair.IntIntPair; import edu.stanford.math.primitivelib.utility.Infinity; /** * This class contains various static functions for manipulating graphs. * * @author Andrew Tausz * */ public class GraphUtility { public static GeometricSimplexStream toGeometricSimplexStream(AbstractUndirectedGraph graph, double[][] points) { ExplicitSimplexStream stream = new ExplicitSimplexStream(); int n = graph.getNumVertices(); for (int i = 0; i < n; i++) { stream.addVertex(i); } for (IntIntPair edge: graph) { int i = edge.getFirst(); int j = edge.getSecond(); stream.addElement(new int[]{i, j}, 0); } return new GeometricSimplexStream(stream, points); } public static ExplicitSimplexStream toSimplexStream(AbstractUndirectedGraph graph) { ExplicitSimplexStream stream = new ExplicitSimplexStream(); int n = graph.getNumVertices(); for (int i = 0; i < n; i++) { stream.addVertex(i); } for (IntIntPair edge: graph) { int i = edge.getFirst(); int j = edge.getSecond(); stream.addElement(new int[]{i, j}, 0); } return stream; } /** * This function computes all of the distances between pairs of vertices using * the Floyd-Warshall algorithm. * * @param graph the graph * @return the matrix of path lengths between each pair of vertices */ public static double[][] computeShortestPaths(AbstractUndirectedGraph graph) { int n = graph.getNumVertices(); double[][] pathLengths = DoubleArrayUtility.createMatrix(n, n); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (graph.containsEdge(i, j)) { pathLengths[i][j] = 1; } else { pathLengths[i][j] = Infinity.Double.getPositiveInfinity(); } } } for (int k = 0; k < n; k++) { for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { pathLengths[i][j] = Math.min(pathLengths[i][j], pathLengths[i][k] + pathLengths[k][j]); } } } for (int i = 0; i < n; i++) { pathLengths[i][i] = 0; } return pathLengths; } /** * This function computes the adjacency matrix of the given graph. * * @param graph the graph to compute the adjacency matrix of * @return the adjacency matrix of the graph */ public static int[][] getAdjacencyMatrix(AbstractUndirectedGraph graph) { int n = graph.getNumVertices(); int[][] matrix = new int[n][n]; for (IntIntPair edge: graph) { int i = edge.getFirst(); int j = edge.getSecond(); matrix[i][j] = 1; matrix[j][i] = 1; } return matrix; } /** * This function computes the adjacency matrix of the given graph. * It returns the result as a sparse matrix. * * @param graph the graph to compute the adjacency matrix of * @return the adjacency matrix of the graph */ public static IntSparseMatrix getSparseAdjacencyMatrix(AbstractUndirectedGraph graph) { int n = graph.getNumVertices(); IntSparseMatrix matrix = new IntSparseMatrix(n, n); for (IntIntPair edge: graph) { int i = edge.getFirst(); int j = edge.getSecond(); matrix.set(i, j, 1); matrix.set(j, i, 1); } return matrix; } /** * This function computes the adjacency matrix of the given graph. * * @param graph the graph to compute the adjacency matrix of * @return the adjacency matrix of the graph */ public static double[][] getAdjacencyMatrix(AbstractWeightedUndirectedGraph graph) { int n = graph.getNumVertices(); double[][] matrix = new double[n][n]; for (IntIntPair edge: graph) { int i = edge.getFirst(); int j = edge.getSecond(); double w = graph.getWeight(i, j); matrix[i][j] = w; matrix[j][i] = w; } return matrix; } /** * This function computes the adjacency matrix of the given graph. * * @param graph the graph to compute the adjacency matrix of * @return the adjacency matrix of the graph */ public static DoubleSparseMatrix getSparseAdjacencyMatrix(AbstractWeightedUndirectedGraph graph) { int n = graph.getNumVertices(); DoubleSparseMatrix matrix = new DoubleSparseMatrix(n, n); for (IntIntPair edge: graph) { int i = edge.getFirst(); int j = edge.getSecond(); double w = graph.getWeight(i, j); matrix.set(i, j, w); matrix.set(j, i, w); } return matrix; } /** * This function computes the Laplacian matrix of a graph. * * @param graph the graph * @return the Laplacian matrix of the graph */ public static int[][] getLaplacianMatrix(AbstractUndirectedGraph graph) { int n = graph.getNumVertices(); int[][] matrix = new int[n][n]; int[] degrees = new int[n]; for (IntIntPair edge: graph) { int i = edge.getFirst(); int j = edge.getSecond(); matrix[i][j] = -1; matrix[j][i] = -1; degrees[i]++; degrees[j]++; } for (int k = 0; k < n; k++) { matrix[k][k] = degrees[k]; } return matrix; } /** * This function computes the Laplacian matrix of a graph. * * @param graph the graph * @return the Laplacian matrix of the graph */ public static IntSparseMatrix getSparseLaplacianMatrix(AbstractUndirectedGraph graph) { int n = graph.getNumVertices(); IntSparseMatrix matrix = new IntSparseMatrix(n, n); int[] degrees = new int[n]; for (IntIntPair edge: graph) { int i = edge.getFirst(); int j = edge.getSecond(); matrix.set(i, j, -1); matrix.set(j, i, -1); degrees[i]++; degrees[j]++; } for (int k = 0; k < n; k++) { matrix.set(k, k, degrees[k]); } return matrix; } /** * This function computes the Laplacian matrix of a graph. * * @param graph the graph * @return the Laplacian matrix of the graph */ public static double[][] getLaplacianMatrix(AbstractWeightedUndirectedGraph graph) { int n = graph.getNumVertices(); double[][] matrix = new double[n][n]; double[] degrees = new double[n]; for (IntIntPair edge: graph) { int i = edge.getFirst(); int j = edge.getSecond(); double w = graph.getWeight(i, j); matrix[i][j] = -w; matrix[j][i] = -w; degrees[i] += w; degrees[j] += w; } for (int k = 0; k < n; k++) { matrix[k][k] = degrees[k]; } return matrix; } /** * This function computes the Laplacian matrix of a graph. * * @param graph the graph * @return the Laplacian matrix of the graph */ public static DoubleSparseMatrix getSparseLaplacianMatrix(AbstractWeightedUndirectedGraph graph) { int n = graph.getNumVertices(); DoubleSparseMatrix matrix = new DoubleSparseMatrix(n, n); double[] degrees = new double[n]; for (IntIntPair edge: graph) { int i = edge.getFirst(); int j = edge.getSecond(); double w = graph.getWeight(i, j); matrix.set(i, j, -w); matrix.set(j, i, -w); degrees[i] += w; degrees[j] += w; } for (int k = 0; k < n; k++) { matrix.set(k, k, degrees[k]); } return matrix; } } ================================================ FILE: src/java/edu/stanford/math/plex4/homology/barcodes/AnnotatedBarcodeCollection.java ================================================ package edu.stanford.math.plex4.homology.barcodes; import java.util.HashMap; import java.util.List; import java.util.Map; public class AnnotatedBarcodeCollection, G> extends PersistenceInvariantDescriptor, G> { protected boolean useLeftClosedDefault = true; protected boolean useRightClosedDefault = false; /** * This function sets the property that determines whether the left endpoint * of created intervals is closed or not. * * @param value */ public void setLeftClosedDefault(boolean value) { this.useLeftClosedDefault = value; } /** * This function sets the property that determines whether the right endpoint * of created intervals is closed or not. * * @param value */ public void setRightClosedDefault(boolean value) { this.useRightClosedDefault = value; } /** * This function adds the specified finite interval (start, end} at the * supplied dimension. The curly braces are meant to indicate that the * closedness of the end points depends on the default state of the class. * * @param dimension the dimension to add to * @param start the starting point of the interval * @param end the ending point of the interval * @param generatingCycle the generating cycle */ public void addInterval(int dimension, T start, T end, G generatingCycle) { this.addInterval(dimension, Interval.makeInterval(start, end, useLeftClosedDefault, useRightClosedDefault, false, false), generatingCycle); } /** * This function adds the specified semi-infinite interval {start, infinity} * at the supplied dimension. The curly braces are meant to indicate that the * closedness of the end points depends on the default state of the class. * * @param dimension the dimension to add to * @param start the starting point of the interval * @param generatingCycle the generating cycle */ public void addRightInfiniteInterval(int dimension, T start, G generatingCycle) { this.addInterval(dimension, Interval.makeInterval(start, null, useLeftClosedDefault, useRightClosedDefault, false, true), generatingCycle); } /** * This function adds the specified semi-infinite interval {-infinity, end} * at the supplied dimension. The curly braces are meant to indicate that the * closedness of the end points depends on the default state of the class. * * @param dimension the dimension to add to * @param end the ending point of the interval * @param generatingCycle the generating cycle */ public void addLeftInfiniteInterval(int dimension, T end, G generatingCycle) { this.addInterval(dimension, Interval.makeInterval(null, end, useLeftClosedDefault, useRightClosedDefault, true, false), generatingCycle); } public AnnotatedBarcodeCollection getInfiniteIntervals() { AnnotatedBarcodeCollection result = new AnnotatedBarcodeCollection(); for (Integer dimension: this.intervals.keySet()) { List> intervalList = this.intervals.get(dimension); List generatorList = this.generators.get(dimension); for (int i = 0; i < intervalList.size(); i++) { Interval interval = intervalList.get(i); G generator = generatorList.get(i); if (interval.isInfinite()) { result.addInterval(dimension, interval, generator); } } } return result; } public Map getBettiNumbersMap(T point) { Map result = new HashMap(); for (Integer dimension: this.intervals.keySet()) { List> intervalList = this.intervals.get(dimension); int count = 0; for (Interval interval: intervalList) { if (interval.containsPoint(point)) { count++; } } if (count > 0) { result.put(dimension, count); } } return result; } public AnnotatedBarcodeCollection filterByMaxDimension(int maxDimension) { AnnotatedBarcodeCollection result = new AnnotatedBarcodeCollection(); result.useLeftClosedDefault = this.useLeftClosedDefault; result.useRightClosedDefault = this.useRightClosedDefault; for (Integer dimension: this.intervals.keySet()) { if (dimension > maxDimension) { continue; } List> intervalList = this.intervals.get(dimension); List generatorList = this.generators.get(dimension); for (int i = 0; i < intervalList.size(); i++) { Interval interval = intervalList.get(i); G generator = generatorList.get(i); result.addInterval(dimension, interval, generator); } } return result; } public AnnotatedBarcodeCollection filterPositiveMeasureIntervals() { AnnotatedBarcodeCollection result = new AnnotatedBarcodeCollection(); result.useLeftClosedDefault = this.useLeftClosedDefault; result.useRightClosedDefault = this.useRightClosedDefault; for (Integer dimension: this.intervals.keySet()) { List> intervalList = this.intervals.get(dimension); List generatorList = this.generators.get(dimension); for (int i = 0; i < intervalList.size(); i++) { Interval interval = intervalList.get(i); G generator = generatorList.get(i); if (interval.isInfinite()) { result.addInterval(dimension, interval, generator); } else { if (interval.getStart().compareTo(interval.getEnd()) < 0) { result.addInterval(dimension, interval, generator); } } } } return result; } public static AnnotatedBarcodeCollection filterEvenIntervals(AnnotatedBarcodeCollection collection) { AnnotatedBarcodeCollection result = new AnnotatedBarcodeCollection(); result.useLeftClosedDefault = collection.useLeftClosedDefault; result.useRightClosedDefault = collection.useRightClosedDefault; for (Integer dimension: collection.intervals.keySet()) { List> intervalList = collection.intervals.get(dimension); List generatorList = collection.generators.get(dimension); for (int i = 0; i < intervalList.size(); i++) { Interval interval = intervalList.get(i); G generator = generatorList.get(i); if (interval.isLeftInfinite() && interval.isRightInfinite()) { result.addInterval(dimension, interval, generator); } else if (interval.isLeftInfinite()) { result.addInterval(dimension, Interval.makeInterval(null, interval.getEnd() / 2, interval.isLeftClosed(), interval.isRightClosed(), interval.isLeftInfinite(), interval.isRightInfinite()), generator); } else if (interval.isRightInfinite()) { result.addInterval(dimension, Interval.makeInterval(interval.getStart() / 2, null, interval.isLeftClosed(), interval.isRightClosed(), interval.isLeftInfinite(), interval.isRightInfinite()), generator); } else { if (interval.getStart().equals(interval.getEnd())) { // of form [x, x] Integer x = interval.getStart(); if (x % 2 == 0) { result.addInterval(dimension, Interval.makeInterval(interval.getStart() / 2, interval.getEnd() / 2, interval.isLeftClosed(), interval.isRightClosed(), interval.isLeftInfinite(), interval.isRightInfinite()), generator); } } else { // of form [x, y] Integer x = interval.getStart(); Integer y = interval.getEnd(); if (x % 2 == 0) { // starts at even if (y % 2 == 1) { y = ((y - 1) / 2); } else { y = y / 2; } result.addInterval(dimension, Interval.makeInterval(x, y, interval.isLeftClosed(), interval.isRightClosed(), interval.isLeftInfinite(), interval.isRightInfinite()), generator); } else { // starts at odd if (y == x + 1) { // don't do anything } else { if (y % 2 == 1) { y = ((y - 1) / 2); } else { y = y / 2; } result.addInterval(dimension, Interval.makeInterval(x, y, interval.isLeftClosed(), interval.isRightClosed(), interval.isLeftInfinite(), interval.isRightInfinite()), generator); } } } } } } return result; } } ================================================ FILE: src/java/edu/stanford/math/plex4/homology/barcodes/BarcodeCollection.java ================================================ package edu.stanford.math.plex4.homology.barcodes; import java.util.List; public class BarcodeCollection> extends AnnotatedBarcodeCollection { /** * This function adds the specified finite interval (start, end} at the * supplied dimension. The curly braces are meant to indicate that the * closedness of the end points depends on the default state of the class. * * @param dimension the dimension to add to * @param start the starting point of the interval * @param end the ending point of the interval */ public void addInterval(int dimension, T start, T end) { this.addInterval(dimension, Interval.makeInterval(start, end, useLeftClosedDefault, useRightClosedDefault, false, false), null); } /** * This function adds the specified semi-infinite interval {start, infinity} * at the supplied dimension. The curly braces are meant to indicate that the * closedness of the end points depends on the default state of the class. * * @param dimension the dimension to add to * @param start the starting point of the interval */ public void addRightInfiniteInterval(int dimension, T start) { this.addInterval(dimension, Interval.makeInterval(start, null, useLeftClosedDefault, useRightClosedDefault, false, true), null); } /** * This function adds the specified semi-infinite interval {-infinity, end} * at the supplied dimension. The curly braces are meant to indicate that the * closedness of the end points depends on the default state of the class. * * @param dimension the dimension to add to * @param end the ending point of the interval */ public void addLeftInfiniteInterval(int dimension, T end) { this.addInterval(dimension, Interval.makeInterval(null, end, useLeftClosedDefault, useRightClosedDefault, true, false), null); } public void addInterval(int dimension, Interval interval) { this.addInterval(dimension, interval, null); } public static , G> BarcodeCollection forgetGeneratorType(AnnotatedBarcodeCollection annotatedBarcodeCollection) { BarcodeCollection barcodeCollection = new BarcodeCollection(); barcodeCollection.setLeftClosedDefault(annotatedBarcodeCollection.useLeftClosedDefault); barcodeCollection.setRightClosedDefault(annotatedBarcodeCollection.useRightClosedDefault); for (Integer dimension: annotatedBarcodeCollection.intervals.keySet()) { List> intervalList = annotatedBarcodeCollection.intervals.get(dimension); for (Interval interval: intervalList) { barcodeCollection.addInterval(dimension, interval); } } return barcodeCollection; } } ================================================ FILE: src/java/edu/stanford/math/plex4/homology/barcodes/BarcodeUtility.java ================================================ package edu.stanford.math.plex4.homology.barcodes; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; import edu.stanford.math.primitivelib.autogen.pair.ObjectObjectPair; import edu.stanford.math.primitivelib.utility.Infinity; public class BarcodeUtility { /** * This function returns an array containing the set of endpoint of the * intervals. * * @param * @param collection * the barcode collection * @param dimension * the dimension at which to get the endpoints * @param skipInfiniteIntervals * boolean flag indicating whether to skip infinite intervals * @return an n x 2 array of doubles containing the endpoints of the * intervals */ public static double[][] getEndpoints(AnnotatedBarcodeCollection collection, int dimension, boolean skipInfiniteIntervals) { List> list = collection.getIntervalsAtDimension(dimension); Collections.sort(list); Collections.reverse(list); return getEndpoints(list, dimension, skipInfiniteIntervals); } /** * This function returns an array containing the set of endpoint of the * intervals. * * @param * @param intervals * the list of intervals * @param dimension * the dimension at which to get the endpoints * @param skipInfiniteIntervals * boolean flag indicating whether to skip infinite intervals * @return an n x 2 array of doubles containing the endpoints of the * intervals */ public static double[][] getEndpoints(List> intervals, int dimension, boolean skipInfiniteIntervals) { List endpointList = new ArrayList(); for (Interval interval : intervals) { if (interval.isInfinite() && skipInfiniteIntervals) { continue; } double start, end; if (interval.isLeftInfinite() && interval.isRightInfinite()) { start = Double.NEGATIVE_INFINITY; end = Double.POSITIVE_INFINITY; } else if (interval.isLeftInfinite()) { start = Double.NEGATIVE_INFINITY; end = interval.getEnd(); } else if (interval.isRightInfinite()) { start = interval.getStart(); end = Double.POSITIVE_INFINITY; } else { start = interval.getStart(); end = interval.getEnd(); } endpointList.add(new double[] { start, end }); } double[][] endpointArray = new double[endpointList.size()][]; for (int i = 0; i < endpointList.size(); i++) { endpointArray[i] = endpointList.get(i); } return endpointArray; } public static List> getLongestBarcodes(List> intervals, int k) { if (k >= intervals.size()) { return intervals; } ArrayList> intervalsCopy = new ArrayList>(intervals); Collections.sort(intervalsCopy, IntervalLengthComparator.getInstance()); Collections.reverse(intervalsCopy); ArrayList> result = new ArrayList>(); for (int i = 0; i < k; i++) { result.add(intervalsCopy.get(i)); } intervalsCopy = null; return result; } public static List, G>> getLongestAnnotatedBarcodes(List, G>> intervals, int k) { if (k >= intervals.size()) { return intervals; } final IntervalLengthComparator intervalComparator = IntervalLengthComparator.getInstance(); Comparator, G>> comparator = new Comparator, G>>() { public int compare(ObjectObjectPair, G> o1, ObjectObjectPair, G> o2) { return intervalComparator.compare(o1.getFirst(), o2.getFirst()); } }; ArrayList, G>> intervalsCopy = new ArrayList, G>>(intervals); Collections.sort(intervalsCopy, comparator); Collections.reverse(intervalsCopy); ArrayList, G>> result = new ArrayList, G>>(); for (int i = 0; i < k; i++) { result.add(intervalsCopy.get(i)); } intervalsCopy = null; return result; } public static double getLength(Interval interval) { if (interval.isInfinite()) { return Infinity.Double.getPositiveInfinity(); } return (interval.getEnd() - interval.getStart()); } /** * Given a collection of intervals, this function returns those intervals with length greater than or equal to the minimum specified. * * @param intervals the set of intervals * @param minimumLength the minimum length * @return those intervals longer than minimumLength */ public static List> filterIntervalsByMinimumLength(Iterable> intervals, double minimumLength) { ArrayList> filteredIntervals = new ArrayList>(); for (Interval interval: intervals) { if (getLength(interval) >= minimumLength) { filteredIntervals.add(interval); } } return filteredIntervals; } /** * Given a collection of intervals object pairs, this function returns those intervals with length greater than or equal to the minimum specified. * * @param intervals the set of intervals * @param minimumLength the minimum length * @return those intervals longer than minimumLength */ public static List, G>> filterIntervalPairsByMinimumLength(Iterable, G>> intervals, double minimumLength) { ArrayList, G>> result = new ArrayList, G>>(); for (ObjectObjectPair, G> pair: intervals) { Interval interval = pair.getFirst(); if (getLength(interval) >= minimumLength) { result.add(pair); } } return result; } } ================================================ FILE: src/java/edu/stanford/math/plex4/homology/barcodes/Interval.java ================================================ package edu.stanford.math.plex4.homology.barcodes; import java.io.Serializable; //import edu.stanford.math.primitivelib.utility.Infinity; /** * This class implements the functionality of an interval of values of any comparable type. It supports * finite, semi-infinite, and infinite intervals with open or closed end points. * * @author Andrew Tausz * * @param the underlying type - e.g. most likely Integer, Double, or Float */ public class Interval> implements Comparable>, Serializable { /** * */ private static final long serialVersionUID = -3434702188482864510L; private final T start, end; private final boolean isLeftClosed, isRightClosed; private final boolean isLeftInfinite, isRightInfinite; /** * This function returns a finite closed interval. * * @param * @param start * @param end * @return a finite closed interval */ public static > Interval makeFiniteClosedInterval(T start, T end) { return new Interval(start, end, true, true, false, false); } /** * This function returns a finite right-open interval. * * @param * @param start * @param end * @return a finite right-open interval */ public static > Interval makeFiniteRightOpenInterval(T start, T end) { return new Interval(start, end, true, false, false, false); } /** * This function returns a finite left-open interval. * * @param * @param start * @param end * @return a finite left-open interval */ public static > Interval makeFiniteLeftOpenInterval(T start, T end) { return new Interval(start, end, false, true, false, false); } /** * This function returns a finite open interval. * * @param * @param start * @param end * @return a finite open interval */ public static > Interval makeFiniteOpenInterval(T start, T end) { return new Interval(start, end, false, false, false, false); } /** * This function returns a right-infinite closed interval. * * @param * @param start * @return a right-infinite closed interval */ public static > Interval makeRightInfiniteClosedInterval(T start) { return new Interval(start, null, true, true, false, true); } /** * This function returns a right-infinite right-open interval. * * @param * @param start * @return a right-infinite right-open interval */ public static > Interval makeRightInfiniteRightOpenInterval(T start) { return new Interval(start, null, true, false, false, true); } /** * This function returns a right-infinite left-open interval. * * @param * @param start * @return a right-infinite left-open interval */ public static > Interval makeRightInfiniteLeftOpenInterval(T start) { return new Interval(start, null, false, true, false, true); } /** * This function returns a right-infinite open interval. * * @param * @param start * @return a right-infinite open interval */ public static > Interval makeRightInfiniteOpenInterval(T start) { return new Interval(start, null, false, false, false, true); } /** * This function returns a left-infinite closed interval. * * @param * @param end * @return a left-infinite closed interval */ public static > Interval makeLeftInfiniteClosedInterval(T end) { return new Interval(null, end, true, true, true, false); } /** * This function returns a left-infinite right-open interval. * * @param * @param end * @return a left-infinite right-open interval */ public static > Interval makeLeftInfiniteRightOpenInterval(T end) { return new Interval(null, end, true, false, true, false); } /** * This function returns a left-infinite left-open interval. * * @param * @param end * @return a left-infinite left-open interval */ public static > Interval makeLeftInfiniteLeftOpenInterval(T end) { return new Interval(null, end, false, true, true, false); } /** * This function returns a left-infinite open interval. * * @param * @param end * @return a left-infinite open interval */ public static > Interval makeLeftInfiniteOpenInterval(T end) { return new Interval(null, end, false, false, true, false); } /** * This function returns an interval with the desired parameters. * * @param * @param start * @param end * @param isLeftClosed * @param isRightClosed * @param isLeftInfinite * @param isRightInfinite * @return an interval specified by the given parameters */ public static > Interval makeInterval(T start, T end, boolean isLeftClosed, boolean isRightClosed, boolean isLeftInfinite, boolean isRightInfinite) { return new Interval(start, end, isLeftClosed, isRightClosed, isLeftInfinite, isRightInfinite); } /** * This private constructor initializes the interval with all of its parameters. * * @param start * @param end * @param isLeftClosed * @param isRightClosed * @param isLeftInfinite * @param isRightInfinite */ private Interval(T start, T end, boolean isLeftClosed, boolean isRightClosed, boolean isLeftInfinite, boolean isRightInfinite) { this.start = start; this.end = end; this.isLeftClosed = isLeftClosed; this.isRightClosed = isRightClosed; this.isLeftInfinite = isLeftInfinite; this.isRightInfinite = isRightInfinite; } /** * This function returns the start of the interval. * * @return the starting point */ public T getStart() { return start; } /** * This function returns the end of the interval. * * @return the end point */ public T getEnd() { return end; } /** * This function indicates whether the interval is closed on the left. * * @return true if the interval is closed on the left, and false otherwise */ public boolean isLeftClosed() { return isLeftClosed; } /** * This function indicates whether the interval is closed on the right. * * @return true if the interval is closed on the right, and false otherwise */ public boolean isRightClosed() { return isRightClosed; } /** * This function indicates whether the interval is left-infinite. * * @return true if the interval is left-infinite and false otherwise */ public boolean isLeftInfinite() { return isLeftInfinite; } /** * This function indicates whether the interval is right-infinite. * * @return true if the interval is right-infinite and false otherwise */ public boolean isRightInfinite() { return isRightInfinite; } /** * This function indicates whether the interval is infinite (either left or * right infinite, or both). * * @return true if the interval is infinite, and false otherwise */ public boolean isInfinite() { return isLeftInfinite || isRightInfinite; } /** * This function determines whether the given point is a member of * the interval. * * @param point the point to test * @return true if the point is in the interval and false otherwise */ public boolean containsPoint(T point) { if (!this.isLeftInfinite) { if (this.isLeftClosed && (point.compareTo(this.start) < 0)) { return false; } if (!this.isLeftClosed && (point.compareTo(this.start) <= 0)) { return false; } } if (!this.isRightInfinite) { if (this.isRightClosed && (point.compareTo(this.end) > 0)) { return false; } if (!this.isRightClosed && (point.compareTo(this.end) >= 0)) { return false; } } return true; } @Override public String toString() { StringBuilder builder = new StringBuilder(); if (this.isLeftClosed) { builder.append("["); } else { builder.append("("); } if (this.isLeftInfinite) { builder.append("-infinity"); } else { builder.append(start.toString()); } builder.append(", "); if (this.isRightInfinite) { builder.append("infinity"); } else { builder.append(end.toString()); } if (this.isRightClosed) { builder.append("]"); } else { builder.append(")"); } return builder.toString(); } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((end == null) ? 0 : end.hashCode()); result = prime * result + (isLeftClosed ? 1231 : 1237); result = prime * result + (isLeftInfinite ? 1231 : 1237); result = prime * result + (isRightClosed ? 1231 : 1237); result = prime * result + (isRightInfinite ? 1231 : 1237); result = prime * result + ((start == null) ? 0 : start.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; Interval other = (Interval) obj; if (end == null) { if (other.end != null) return false; } else if (!end.equals(other.end)) return false; if (isLeftClosed != other.isLeftClosed) return false; if (isLeftInfinite != other.isLeftInfinite) return false; if (isRightClosed != other.isRightClosed) return false; if (isRightInfinite != other.isRightInfinite) return false; if (start == null) { if (other.start != null) return false; } else if (!start.equals(other.start)) return false; return true; } public int compareTo(Interval arg0) { // First try to compare ends - the interval that ends later is "bigger" // If the ends cannot be compared, compare the starts int endComparison = 0; if (this.isRightInfinite && arg0.isRightInfinite) { endComparison = 0; } else if (this.isRightInfinite && !arg0.isRightInfinite) { endComparison = 1; } else if (!this.isRightInfinite && arg0.isRightInfinite) { endComparison = -1; } else { // both right-finite endComparison = this.end.compareTo(arg0.end); } if (endComparison != 0) { return endComparison; } int startComparison = 0; if (this.isLeftInfinite && arg0.isLeftInfinite) { startComparison = 0; } else if (this.isLeftInfinite && !arg0.isLeftInfinite) { startComparison = -1; } else if (!this.isLeftInfinite && arg0.isLeftInfinite) { startComparison = 1; } else { startComparison = this.start.compareTo(arg0.start); } return startComparison; } public int compareTo2(Interval arg0) { int type = getTypeCode(this); int otherType = getTypeCode(arg0); if (type > otherType) { return 1; } else if (type < otherType) { return -1; } if (type == 4) { return 0; } if (type == 3) { return this.end.compareTo(arg0.end); } if (type == 2) { return this.start.compareTo(arg0.start); } int comparison = this.start.compareTo(arg0.start); if (comparison != 0) { return comparison; } return this.end.compareTo(arg0.end); } private static > int getTypeCode(Interval interval) { if (interval.isLeftInfinite && interval.isRightInfinite) { return 4; } if (interval.isLeftInfinite) { return 3; } if (interval.isRightInfinite) { return 2; } return 1; } } ================================================ FILE: src/java/edu/stanford/math/plex4/homology/barcodes/IntervalLengthComparator.java ================================================ package edu.stanford.math.plex4.homology.barcodes; import java.util.Comparator; public class IntervalLengthComparator implements Comparator> { private static IntervalLengthComparator instance = new IntervalLengthComparator(); private IntervalLengthComparator() {} public static IntervalLengthComparator getInstance() { return instance; } public int compare(Interval arg0, Interval arg1) { if (arg0.isInfinite() && arg1.isInfinite()) { return 0; } if (arg0.isInfinite()) { return 1; } if (arg1.isInfinite()) { return -1; } // both finite Double length0 = arg0.getEnd() - arg0.getStart(); Double length1 = arg1.getEnd() - arg1.getStart(); if (length0 < length1) { return -1; } else if (length0 > length1) { return 1; } else { return 0; } } } ================================================ FILE: src/java/edu/stanford/math/plex4/homology/barcodes/PersistenceInvariantDescriptor.java ================================================ package edu.stanford.math.plex4.homology.barcodes; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Set; import edu.stanford.math.plex4.utility.ComparisonUtility; import edu.stanford.math.primitivelib.autogen.pair.ObjectObjectPair; /** * This class is designed to store persistence algorithm invariants for each dimension, with additional information * about the generators. It is primarily designed to be used in the case where the persistence invariant type (I) * is an interval type, and the generator type (G) is the type of cycles. * * @author Andrew Tausz * * @param the persistence invariant type - ie. the interval type * @param the generator type */ public class PersistenceInvariantDescriptor implements Iterable>>> { protected final Map> intervals = new HashMap>(); protected final Map> generators = new HashMap>(); protected final Map>> intervalGeneratorPairs = new HashMap>>(); public PersistenceInvariantDescriptor() {} /** * This function adds an interval and generator at the specified dimension to the * collection. * * @param dimension the dimension at which to add * @param interval the interval * @param generator the generator */ public void addInterval(int dimension, I interval, G generator) { if (!this.intervals.containsKey(dimension)) { this.intervals.put(dimension, new ArrayList()); } if (!this.generators.containsKey(dimension)) { this.generators.put(dimension, new ArrayList()); } if (!this.intervalGeneratorPairs.containsKey(dimension)) { this.intervalGeneratorPairs.put(dimension, new ArrayList>()); } this.intervals.get(dimension).add(interval); this.generators.get(dimension).add(generator); this.intervalGeneratorPairs.get(dimension).add(new ObjectObjectPair(interval, generator)); } /** * This function returns an array of integers indicating the cardinality of the barcodes at each dimension. * * @return an array indicating the cardinality of each barcode at each dimension */ public int[] getBettiSequence() { int[] result = null; int maxDimension = 0; for (Integer dimension: this.intervals.keySet()) { if (dimension > maxDimension) { maxDimension = dimension; } } result = new int[maxDimension + 1]; for (Integer dimension: this.intervals.keySet()) { result[dimension] = this.intervals.get(dimension).size(); } return result; } /** * This function returns a string representation of the set of betti numbers. * * @return a string showing a pretty version of the betti numbers */ public String getBettiNumbers() { StringBuilder builder = new StringBuilder(); builder.append("{"); int i = 0; for (Integer dimension: this.intervals.keySet()) { int b = this.intervals.get(dimension).size(); if (i > 0) { builder.append(", "); } builder.append(String.format("%d: %d", dimension, b)); i++; } builder.append("}"); return builder.toString(); } @Override public String toString() { StringBuilder builder = new StringBuilder(); for (Integer dimension: this.intervals.keySet()) { List intervalList = this.intervals.get(dimension); List generatorList = this.generators.get(dimension); builder.append(String.format("Dimension: %d\n", dimension)); assert (intervalList.size() == generatorList.size()); for (int i = 0; i < intervalList.size(); i++) { I interval = intervalList.get(i); G generator = generatorList.get(i); if (generator != null) { builder.append(interval.toString()); builder.append(": "); builder.append(generator.toString()); builder.append("\n"); } else { builder.append(interval.toString()); builder.append("\n"); } } } return builder.toString(); } /** * This function returns an iterator for traversing the intervals. Each element returned * by the iterator is a pair consisting of the dimension, and the list of intervals at * that dimension. * * @return an iterator for the intervals */ public Iterator>> getIntervalIterator() { return this.intervals.entrySet().iterator(); } /** * This function returns an iterator for traversing the generators. Each element returned * by the iterator is a pair consisting of the dimension, and the list of generators at * that dimension. * * @return an iterator for the generators */ public Iterator>> getGeneratorIterator() { return this.generators.entrySet().iterator(); } /** * This function returns an iterator for traversing the interval-generator pairs. Each * element returned by the iterator is a pair consisting of the dimension, and the list of * interval-generator pairs at that dimension. * * @return an iterator for the generators */ public Iterator>>> getIntervalGeneratorPairIterator() { return this.intervalGeneratorPairs.entrySet().iterator(); } /** * This function returns the set of dimensions at which there are intervals. * * @return the set of dimensions. */ public Set getDimensions() { return this.intervals.keySet(); } /** * This function returns the set of intervals at a specified dimension. * * @param dimension the dimension to get the intervals at * @return the intervals at the given dimension */ public List getIntervalsAtDimension(int dimension) { if (this.intervals.containsKey(dimension)) { return this.intervals.get(dimension); } else { return new ArrayList(); } } /** * This function returns the set of generators at a specified dimension. * * @param dimension the dimension to get the generators at * @return the generators at the given dimension */ public List getGeneratorsAtDimension(int dimension) { if (this.generators.containsKey(dimension)) { return this.generators.get(dimension); } else { return new ArrayList(); } } /** * This function returns the set of interval-generator pairs at a specified dimension. * * @param dimension the dimension to get the interval-generator pairs at * @return the interval-generator pairs at the given dimension */ public List> getIntervalGeneratorPairsAtDimension(int dimension) { if (this.intervalGeneratorPairs.containsKey(dimension)) { return this.intervalGeneratorPairs.get(dimension); } else { return new ArrayList>(); } } /* (non-Javadoc) * @see java.lang.Object#hashCode() */ @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((generators == null) ? 0 : generators.hashCode()); result = prime * result + ((intervalGeneratorPairs == null) ? 0 : intervalGeneratorPairs.hashCode()); result = prime * result + ((intervals == null) ? 0 : intervals.hashCode()); return result; } /* (non-Javadoc) * @see java.lang.Object#equals(java.lang.Object) */ @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; PersistenceInvariantDescriptor other = (PersistenceInvariantDescriptor) obj; if (generators == null) { if (other.generators != null) return false; } else if (!mapSetEquals(this.generators, other.generators)) return false; if (intervalGeneratorPairs == null) { if (other.intervalGeneratorPairs != null) return false; } else if (!mapSetEquals(this.intervalGeneratorPairs, other.intervalGeneratorPairs)) return false; if (intervals == null) { if (other.intervals != null) return false; } else if (!mapSetEquals(this.intervals, other.intervals)) return false; return true; } public Iterator>>> iterator() { return this.getIntervalGeneratorPairIterator(); } /** * This function computes the union of two collections of persistence invariants. * * @param the persistence invariant type - ie. the interval type * @param the generator type * @param a the first collection * @param b the second collection * @return the union of the two collections */ @SuppressWarnings("unchecked") public static PersistenceInvariantDescriptor union(final PersistenceInvariantDescriptor a, final PersistenceInvariantDescriptor b) { // attempt to instantiate as low as possible PersistenceInvariantDescriptor c = null; try { c = a.getClass().newInstance(); } catch (InstantiationException e) { e.printStackTrace(); return null; } catch (IllegalAccessException e) { e.printStackTrace(); return null; } for (Iterator>>> iterator = a.getIntervalGeneratorPairIterator(); iterator.hasNext(); ) { Entry>> entry = iterator.next(); Integer dimension = entry.getKey(); List> values = entry.getValue(); for (ObjectObjectPair pair: values) { c.addInterval(dimension, pair.getFirst(), pair.getSecond()); } } for (Iterator>>> iterator = b.getIntervalGeneratorPairIterator(); iterator.hasNext(); ) { Entry>> entry = iterator.next(); Integer dimension = entry.getKey(); List> values = entry.getValue(); for (ObjectObjectPair pair: values) { c.addInterval(dimension, pair.getFirst(), pair.getSecond()); } } return c; } /** * This function tests for equality of two maps where the value types are lists. It * tests whether the values are equal as sets. In other words, it ignores the order * of the elements. * * @param * @param a the first map * @param b the second map * @return true if the maps have equal keys and values (up to re-ordering) */ private static boolean mapSetEquals(Map> a, Map b) { Set a_keys = a.keySet(); Set b_keys = b.keySet(); if (!ComparisonUtility.setEquals(a_keys, b_keys)) { return false; } for (Object key: a_keys) { Collection a_collection = a.get(key); Object b_object = b.get(key); if (!(b_object instanceof List)) { return false; } List b_collection = (List) b_object; if (!ComparisonUtility.setEquals(a_collection, b_collection)) { return false; } } return true; } } ================================================ FILE: src/java/edu/stanford/math/plex4/homology/chain_basis/Cell.java ================================================ /** * */ package edu.stanford.math.plex4.homology.chain_basis; import java.util.Arrays; import java.util.Collection; import edu.stanford.math.plex4.homology.utility.HomologyUtility; import edu.stanford.math.plex4.utility.ExceptionUtility; import edu.stanford.math.primitivelib.utility.CRC; /** * This class implements the functionality of a cell within a CW complex. * A CW complex can be described as follows: *
    *
  1. Start with a discrete set X_0 consisting of the 0-cells
  2. *
  3. Inductively form the n-skeleton by attaching n-cells e_a via the * maps phi_a: S^(n-1) -> X_{n-1} which map the boundary of e_a into the * n-1 skeleton of X.
  4. *
* *

To define a cell within the CW complex, we require its dimensionality, * its boundary, and the degrees of the map attaching map followed by a * quotient map. The user of this class is advised to be familiar with * cellular homology, as described in (for example) section 2.2 of the * book "Algebraic Topology" by Allen Hatcher.

* *

The required input degrees are the degrees of the composite map * S_a^{n-1}

* *

For example, we will construct a torus using a cell complex. *

    *
  • Start with 1 0-cell, called v.
  • *
  • Add 2 1-cells, a and b, each with boundary glued to the 0-cell. The degree * of such a mapping is zero.
  • *
  • Add a 2-cell with boundary elements (a, b, a, b), and degrees (1, -1, 1, -1)
  • *
* This corresponds to the familiar construction of a square with opposite edges * identified.

* * @author Andrew Tausz * */ public class Cell implements PrimitiveBasisElement { /** * This holds the class-wide cell counter. */ private static int cellIdCounter; /** * This array holds the contents of the boundary elements of the cell. */ private final PrimitiveBasisElement[] boundaryArray; /** * This holds the cell ids of the boundary elements. */ private final int[] boundaryIds; /** * This array holds the coefficients of the boundary. These are equal * to the degrees of the composite attaching maps. */ private final int[] boundaryCoefficients; /** * This holds the cached hash code to prevent recomputing. */ private final int cachedHashCode; /** * Stores the dimension of the cell. */ private final int dimension; /** * Stores the unique identifier of the cell. */ private final int cellId; /** * This constructor initializes the cell to be a 0-cell (a vertex), * with the default cellId as the vertex index. * */ public Cell() { this.boundaryArray = new PrimitiveBasisElement[0]; this.boundaryCoefficients = new int[0]; this.boundaryIds = new int[0]; this.dimension = 0; this.cellId = cellIdCounter++; // precompute hashcode this.cachedHashCode = CRC.hash32(new int[]{this.cellId}); } /** * This constructor initializes a cell to be an n-cell with n > 0. Such a cell * is specified by its boundary elements. The degrees of the attaching maps * for this constructor are taken to be the default [1, -1, 1, -1, ...]. * * @param dimension the geometric dimension of the cell * @param boundaryElements an array containing the objects in the boundary */ public Cell(int dimension, Collection boundaryElements) { this(dimension, boundaryElements.toArray(new PrimitiveBasisElement[0]), HomologyUtility.getDefaultBoundaryCoefficients(boundaryElements.size()), getCellIds(boundaryElements)); } /** * This constructor initializes the cell to be an n-cell with n > 0. It allows the specification * of the boundary elements as well as the attaching degrees. * * @param dimension the geometric dimension of the cell * @param boundaryElements an array containing the objects in the boundary * @param attachingDegrees the degrees of the attaching maps to the boundary objects */ public Cell(int dimension, Collection boundaryElements, int[] attachingDegrees) { this(dimension, boundaryElements.toArray(new PrimitiveBasisElement[0]), attachingDegrees, getCellIds(boundaryElements)); } /** * This constructor initializes a cell to be an n-cell with n > 0. Such a cell * is specified by its boundary elements. The degrees of the attaching maps * for this constructor are taken to be the default [1, -1, 1, -1, ...]. * * @param dimension the geometric dimension of the cell * @param boundaryElements an array containing the objects in the boundary */ public Cell(int dimension, Cell[] boundaryElements) { this(dimension, boundaryElements, HomologyUtility.getDefaultBoundaryCoefficients(boundaryElements.length), getCellIds(boundaryElements)); } /** * This constructor initializes the cell to be a n-cell with n > 0. Such a * cell is specified by its boundary elements, the degrees of the attaching * maps to those elements and its dimension. * * @param dimension the geometric dimension of the cell * @param boundaryElements an array containing the objects in the boundary * @param attachingDegrees the degrees of the attaching maps to the boundary objects * @param boundaryIds the cell ids of the boundary elements */ private Cell(int dimension, PrimitiveBasisElement[] boundaryElements, int[] attachingDegrees, int[] boundaryIds) { ExceptionUtility.verifyNonNull(boundaryElements); ExceptionUtility.verifyEqual(boundaryElements.length, attachingDegrees.length); this.boundaryArray = boundaryElements; this.boundaryCoefficients = attachingDegrees; this.boundaryIds = boundaryIds; this.cellId = cellIdCounter++; this.dimension = dimension; this.cachedHashCode = this.precomputeHashCode(); } /** * This function produces an array containing the cell id's of the supplied * collection of cells. * * @param boundaryElements the collection of cells * @return an array holding the cell id's */ private static int[] getCellIds(Collection boundaryElements) { int[] id_array = new int[boundaryElements.size()]; int i = 0; for (Cell cell: boundaryElements) { id_array[i] = cell.getCellId(); i++; } return id_array; } /** * This function produces an array containing the cell id's of the supplied * array of cells * * @param boundaryElements * @return an array holding the cell id's */ private static int[] getCellIds(Cell[] boundaryElements) { int[] id_array = new int[boundaryElements.length]; int i = 0; for (Cell cell: boundaryElements) { id_array[i] = cell.getCellId(); i++; } return id_array; } /** * This function returns the cell ids of the boundary elements. * * @return an array containing the cell ids of the boundary elements. */ public int[] getBoundaryIds() { return this.boundaryIds; } /** * This function returns the unique identifier of the cell. * * @return the cellId of the cell */ public int getCellId() { return this.cellId; } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.chain_basis.PrimitiveBasisElement#getBoundaryArray() */ public PrimitiveBasisElement[] getBoundaryArray() { return this.boundaryArray; } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.chain_basis.PrimitiveBasisElement#getDimension() */ public int getDimension() { return this.dimension; } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.chain_basis.PrimitiveBasisElement#getBoundaryCoefficients() */ public int[] getBoundaryCoefficients() { return this.boundaryCoefficients; } /* (non-Javadoc) * @see java.lang.Object#toString() */ public String toString() { return ("[" + Integer.toString(this.cellId) + "]"); } /* (non-Javadoc) * @see java.lang.Object#hashCode() */ public int hashCode() { return this.cachedHashCode; } /* (non-Javadoc) * @see java.lang.Object#equals(java.lang.Object) */ public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (!(obj instanceof Cell)) return false; Cell other = (Cell) obj; if (!Arrays.equals(boundaryArray, other.boundaryArray)) return false; if (cachedHashCode != other.cachedHashCode) return false; if (cellId != other.cellId) return false; if (dimension != other.dimension) return false; return true; } /** * This function checks to see if the cell has been glued to boundary * elements all of the same dimension. */ public void verifyDimension() { if (this.boundaryArray.length == 0) { return; } int boundaryDimension = this.boundaryArray[0].getDimension(); for(int i = 1; i < this.boundaryArray.length; i++) { if (this.boundaryArray[i].getDimension() != boundaryDimension) { throw new IllegalArgumentException("Cell boundary elements are of unequal dimension."); } } } /** * This function precomputes the hash code of the object. Note that this * is acceptable to do since the object is completely immutable - all fields * are final. * * @return the hashcode of the cell */ private int precomputeHashCode() { int[] boundaryHashCodes = new int[this.boundaryArray.length + 1]; for (int i = 0; i < this.boundaryArray.length; i++) { boundaryHashCodes[i] = this.boundaryArray[i].hashCode(); } boundaryHashCodes[this.boundaryArray.length] = this.cellId; return CRC.hash32(boundaryHashCodes); } } ================================================ FILE: src/java/edu/stanford/math/plex4/homology/chain_basis/CellComparator.java ================================================ /** * */ package edu.stanford.math.plex4.homology.chain_basis; import java.util.Comparator; /** * This class provides functionality for comparing two cells within a CW complex. * The comparison mechanism first compares the dimensions of the cells. If the * dimensions are equal then it looks at the cellId values. This class * implements the Comparator interface, and follows a singleton design pattern. * * @author Andrew Tausz * */ public class CellComparator implements Comparator { /** * This is the single instantiation of the class. */ private static CellComparator instance = new CellComparator(); /** * Private constructor to prevent instantiation. */ private CellComparator() {} /** * This static function returns the one instance of the class. * * @return the instance of the class */ public static CellComparator getInstance() { return instance; } /* (non-Javadoc) * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object) */ public int compare(Cell arg0, Cell arg1) { int cell0dimension = arg0.getDimension(); int cell1dimension = arg1.getDimension(); /* * Compare dimension. */ if (cell0dimension != cell1dimension) { return (cell0dimension - cell1dimension); } /* * At this point, they have the same dimension, * so compare the cellId's. */ return (arg0.getCellId() - arg1.getCellId()); } } ================================================ FILE: src/java/edu/stanford/math/plex4/homology/chain_basis/PrimitiveBasisElement.java ================================================ package edu.stanford.math.plex4.homology.chain_basis; /** * This interface defines the functionality of a primitive basis element type * for a chain complex. The two main implementing classes are designed to be * the Simplex and Cell classes. We refer to these as "primitive" basis types * since they are not built from other any other types. Whereas, we may also * construct a chain complex on a basis consisting of objects derived from other * basis types. An example of this is when we construct the tensor product of * two chain complexes - the basis type consists of tensors of elements. * * We require that the implementing class provide the hashCode and equals functions. * * @author Andrew Tausz * */ public interface PrimitiveBasisElement { /** * This function returns the dimension of the basis element. Note that this * is the actual geometric dimension of the simplex or cell. For example, for * a simplex this would be one less than the number of indices in it. * * @return the geometric dimension of this object */ public int getDimension(); /** * This function returns the boundary of the current basis element. As with * the dimension, this actually obtains the geometric boundary of this object. * Note that this function only returns the the objects in the boundary, but * not their coefficients. * * @return the boundary of the current object */ public PrimitiveBasisElement[] getBoundaryArray(); /** * This function returns the coefficients of the elements of the boundary array. * It is implemented as a separate function, since this interface is designed * to be agnostic to its algebraic environment. * * In the case of the Simplex class this will return the array consisting of * alternating signs [1, -1, 1, ...]. However, in the case of the Cell class * it will return the degrees of the composite attaching maps used to compute * cellular homology. * * @return the coefficients of the boundary elements */ public int[] getBoundaryCoefficients(); } ================================================ FILE: src/java/edu/stanford/math/plex4/homology/chain_basis/Simplex.java ================================================ package edu.stanford.math.plex4.homology.chain_basis; import java.util.Arrays; import edu.stanford.math.plex4.homology.utility.HomologyUtility; import edu.stanford.math.primitivelib.utility.CRC; /** *

This class implements the functionality of a simplex. A simplex * is an n-dimensional polytope which is the convex hull of its * vertices. For our purposes, we simply represent a simplex by its * vertices which are labeled by integers. For example, a 2-simplex * could be [0, 5, 9].

* *

The vertices of a simplex are specified by non-negative integers. It uses * an array implementation to store the indices of the vertices of the * simplex.

* *

This class is designed to be a standard implementation of the * PrimitiveBasisElement interface. It is also immutable and implements * value semantics.

* * @author Andrew Tausz * */ public class Simplex implements PrimitiveBasisElement { /** * This stores the actual vertices of the simplex. */ private final int[] vertices; /** * Stored cache of the hash code to prevent recomputing it. */ private final int cachedHashCode; /** * This constructor initializes the simplex from a supplied array * of integers. * * @param vertices the vertices to */ public Simplex(final int[] vertices) { // store the vertices this.vertices = vertices.clone(); // make sure that the vertices are sorted Arrays.sort(this.vertices); // compute the hash code via CRC hashing this.cachedHashCode = CRC.hash32(this.getVertices()); } public static Simplex makeSimplex(int... args) { return new Simplex(args); } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.chain_basis.PrimitiveBasisElement#getDimension() */ public int getDimension() { return (this.vertices.length - 1); } /** * This function returns an array containing the vertices of the simplex. * * @return an array containing the vertices of the simplex */ public int[] getVertices() { return this.vertices; } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.chain_basis.PrimitiveBasisElement#getBoundaryArray() */ public Simplex[] getBoundaryArray() { // if this a point, return an empty array if (this.getDimension() == 0) { return new Simplex[0]; } Simplex[] boundaryArray = new Simplex[this.vertices.length]; for (int i = 0; i < this.vertices.length; i++) { boundaryArray[i] = new Simplex(HomologyUtility.removeIndex(this.vertices, i)); } return boundaryArray; } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.chain_basis.PrimitiveBasisElement#getBoundaryCoefficients() */ public int[] getBoundaryCoefficients() { if (this.vertices.length == 1) { return HomologyUtility.getDefaultBoundaryCoefficients(0); } return HomologyUtility.getDefaultBoundaryCoefficients(this.vertices.length); } /* (non-Javadoc) * @see java.lang.Object#equals(java.lang.Object) */ public boolean equals(Object obj) { if (obj == this) { return true; } if (!(obj instanceof Simplex)) { return false; } Simplex o = (Simplex) obj; if (this.cachedHashCode != o.cachedHashCode) { return false; } return (HomologyUtility.compareIntArrays(this.getVertices(), o.getVertices()) == 0); } /* (non-Javadoc) * @see java.lang.Object#hashCode() */ public int hashCode() { return this.cachedHashCode; } /* (non-Javadoc) * @see java.lang.Object#toString() */ public String toString() { StringBuilder builder = new StringBuilder(); builder.append('['); int[] vertices = this.getVertices(); for (int i = 0; i < vertices.length; i++) { if (i > 0) { builder.append(','); } builder.append(vertices[i]); } builder.append(']'); return builder.toString(); } } ================================================ FILE: src/java/edu/stanford/math/plex4/homology/chain_basis/SimplexComparator.java ================================================ /** * */ package edu.stanford.math.plex4.homology.chain_basis; import java.util.Comparator; import edu.stanford.math.plex4.homology.utility.HomologyUtility; /** * This class defines the standard ordering on the Simplex class and * implements the Comparator interface. The ordering of the * simplices is done first by dimension. If two simplices have the * same dimension, their vertices are then compared in lexicographical * order. * * This class implements the singleton design pattern. Thus it cannot * be instantiated. Instead the user must call the static getInstance() * function in order to get the actual instance for use. * * Examples: * [4, 5, 7] > [9, 10]; * [1, 2, 3] > [1, 2, 2]; * [1, 2, 3] < [1, 3, 2]; * * * @author Andrew Tausz * */ public class SimplexComparator implements Comparator { /** * This is the single instantiation of the class. */ private static final SimplexComparator instance = new SimplexComparator(); /** * Private constructor to prevent instantiation. */ private SimplexComparator() {} /** * This static function returns the one instance of the class. * * @return the instance of the class */ public static SimplexComparator getInstance() { return instance; } /* (non-Javadoc) * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object) */ public int compare(Simplex o1, Simplex o2) { // call the compareIntArrays function which actually performs the comparison return HomologyUtility.compareIntArrays(o1.getVertices(), o2.getVertices()); } } ================================================ FILE: src/java/edu/stanford/math/plex4/homology/chain_basis/SimplexPair.java ================================================ package edu.stanford.math.plex4.homology.chain_basis; import edu.stanford.math.primitivelib.autogen.pair.ObjectObjectPair; public class SimplexPair extends ObjectObjectPair implements PrimitiveBasisElement { public SimplexPair(Simplex first, Simplex second) { super(first, second); } public SimplexPair(int[] first, int[] second) { super(new Simplex(first), new Simplex(second)); } public SimplexPair(ObjectObjectPair pair) { super(pair); } public static SimplexPair createPair(Simplex first, Simplex second) { return new SimplexPair(first, second); } public static SimplexPair createPair(int first, int second) { return new SimplexPair(Simplex.makeSimplex(first), Simplex.makeSimplex(second)); } public static SimplexPair createPair(int[] first, int[] second) { return new SimplexPair(Simplex.makeSimplex(first), Simplex.makeSimplex(second)); } public PrimitiveBasisElement[] getBoundaryArray() { Simplex[] firstBoundary = this.first.getBoundaryArray(); Simplex[] secondBoundary = this.second.getBoundaryArray(); SimplexPair[] boundary = new SimplexPair[firstBoundary.length + secondBoundary.length]; int i = 0; for (Simplex d_sigma: firstBoundary) { boundary[i] = new SimplexPair(d_sigma, this.second); i++; } for (Simplex d_tau: secondBoundary) { boundary[i] = new SimplexPair(this.first, d_tau); i++; } return boundary; } public int[] getBoundaryCoefficients() { int[] firstBoundary = this.first.getBoundaryCoefficients(); int[] secondBoundary = this.second.getBoundaryCoefficients(); int[] boundary = new int[firstBoundary.length + secondBoundary.length]; for (int i = 0; i < firstBoundary.length; i++) { boundary[i] = firstBoundary[i]; } int multiplier = (this.first.getDimension() % 2 == 0 ? 1 : -1); for (int i = 0; i < secondBoundary.length; i++) { boundary[i + firstBoundary.length] = multiplier * secondBoundary[i]; } return boundary; } public int getDimension() { return first.getDimension() + second.getDimension(); } } ================================================ FILE: src/java/edu/stanford/math/plex4/homology/chain_basis/SimplexPairComparator.java ================================================ package edu.stanford.math.plex4.homology.chain_basis; import java.util.Comparator; public class SimplexPairComparator implements Comparator { private static final SimplexComparator simplexComparator = SimplexComparator.getInstance(); /** * This is the single instantiation of the class. */ private static final SimplexPairComparator instance = new SimplexPairComparator(); /** * Private constructor to prevent instantiation. */ private SimplexPairComparator() {} /** * This static function returns the one instance of the class. * * @return the instance of the class */ public static SimplexPairComparator getInstance() { return instance; } public int compare(SimplexPair arg0, SimplexPair arg1) { int dim0 = arg0.getDimension(); int dim1 = arg1.getDimension(); if (dim0 > dim1) { return 1; } else if (dim0 < dim1) { return -1; } int comparison = simplexComparator.compare(arg0.getFirst(), arg1.getFirst()); if (comparison != 0) { return comparison; } return simplexComparator.compare(arg0.getSecond(), arg1.getSecond()); } } ================================================ FILE: src/java/edu/stanford/math/plex4/homology/filtration/ExternalConverter.java ================================================ package edu.stanford.math.plex4.homology.filtration; import java.util.Arrays; /** *

* This class implements a conversion between filtration values and filtration * indices that is given as an argument at instantiation of the converter. The * given filtration values array will be sorted. *

* * @author Mikael Vejdemo-Johansson * */ public class ExternalConverter extends FiltrationConverter { private final double[] fvalues; private int n; private double maxfv; private double minfv; public ExternalConverter(double[] fvalues) { this.fvalues = fvalues.clone(); Arrays.sort(this.fvalues); this.n = this.fvalues.length; this.maxfv = this.fvalues[this.n - 1]; this.minfv = this.fvalues[0]; } /** * This function computes the index based on a filtration value. * * @param filtrationValue * the value to convert * @return the filtration index of the given value */ public int getFiltrationIndex(double filtrationValue) { if (filtrationValue <= this.minfv) { return 0; } if (filtrationValue >= this.maxfv) return this.n - 1; int index = Arrays.binarySearch(this.fvalues, filtrationValue); if (index < 0) { index = (-index) - 2; } return index; } /** * This function computes the filtration value from a filtration index. * * @param filtrationIndex * the index to convert * @return the filtration value for the particular index */ public double getFiltrationValue(int filtrationIndex) { if (filtrationIndex < 0) { return this.fvalues[0]; } if (filtrationIndex >= this.fvalues.length) { return this.fvalues[this.fvalues.length - 1]; } return this.fvalues[filtrationIndex]; } /* * (non-Javadoc) * * @see edu.stanford.math.plex4.homology.filtration.FiltrationConverter# * computeInducedFiltrationValue(double, double) */ public double computeInducedFiltrationValue(double filtrationValue1, double filtrationValue2) { return Math.max(filtrationValue1, filtrationValue2); } /** * This function returns the filtration at index 0. * * @return the filtration at index 0 */ public double getInitialFiltrationValue() { return this.fvalues[0]; } } ================================================ FILE: src/java/edu/stanford/math/plex4/homology/filtration/FiltrationConverter.java ================================================ package edu.stanford.math.plex4.homology.filtration; import edu.stanford.math.plex4.homology.barcodes.Interval; import edu.stanford.math.plex4.homology.barcodes.PersistenceInvariantDescriptor; import edu.stanford.math.primitivelib.autogen.functional.ObjectObjectFunction; /** * This interface defines a mapping between filtration values and filtration indices. * * @author Andrew Tausz * */ public abstract class FiltrationConverter implements ObjectObjectFunction, Interval> { /** * This function computes the index based on a filtration value. * * @param filtrationValue the value to convert * @return the filtration index of the given value */ public abstract int getFiltrationIndex(double filtrationValue); /** * This function computes the filtration value from a filtration index. * * @param filtrationIndex the index to convert * @return the filtration value for the particular index */ public abstract double getFiltrationValue(int filtrationIndex); /** * This function computes the filtration value that is consistent with the * ordering of filtration indices. For example, for filtration values that are * increasing with filtration indices, this should be the max function. * * @param filtrationValue1 * @param filtrationValue2 * @return the filtration value that is induced by two filtration values */ public abstract double computeInducedFiltrationValue(double filtrationValue1, double filtrationValue2); /** * This function returns the filtration at index 0. * * @return the filtration at index 0 */ public abstract double getInitialFiltrationValue(); public PersistenceInvariantDescriptor, G> transform(PersistenceInvariantDescriptor, G> invariantDescriptor) { return FiltrationUtility.transform(invariantDescriptor, this); } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.filtration.FiltrationConverter#transformInterval(edu.stanford.math.plex4.homology.barcodes.IntHalfOpenInterval) */ public Interval evaluate(Interval interval) { if (interval.isLeftInfinite() && interval.isRightInfinite()) { return Interval.makeInterval(null, null, interval.isLeftClosed(), interval.isRightClosed(), interval.isLeftInfinite(), interval.isRightInfinite()); } if (interval.isLeftInfinite()) { return Interval.makeInterval(null, this.getFiltrationValue(interval.getEnd()), interval.isLeftClosed(), interval.isRightClosed(), interval.isLeftInfinite(), interval.isRightInfinite()); } if (interval.isRightInfinite()) { return Interval.makeInterval(this.getFiltrationValue(interval.getStart()), null, interval.isLeftClosed(), interval.isRightClosed(), interval.isLeftInfinite(), interval.isRightInfinite()); } return Interval.makeInterval(this.getFiltrationValue(interval.getStart()), this.getFiltrationValue(interval.getEnd()), interval.isLeftClosed(), interval.isRightClosed(), interval.isLeftInfinite(), interval.isRightInfinite()); } } ================================================ FILE: src/java/edu/stanford/math/plex4/homology/filtration/FiltrationUtility.java ================================================ package edu.stanford.math.plex4.homology.filtration; import java.util.Iterator; import java.util.List; import java.util.Map.Entry; import edu.stanford.math.plex4.homology.barcodes.Interval; import edu.stanford.math.plex4.homology.barcodes.PersistenceInvariantDescriptor; import edu.stanford.math.primitivelib.autogen.functional.ObjectObjectFunction; import edu.stanford.math.primitivelib.autogen.pair.ObjectObjectPair; /** * This class contains various static functions that aid in the transformation between objects * defined in terms of filtration indices to objects defined in terms of filtration values. * * @author Andrew Tausz * */ public class FiltrationUtility { @SuppressWarnings("unchecked") public static PersistenceInvariantDescriptor transform(PersistenceInvariantDescriptor invariantDescriptor, ObjectObjectFunction converter) { PersistenceInvariantDescriptor result = null; try { result = invariantDescriptor.getClass().newInstance(); } catch (InstantiationException e) { e.printStackTrace(); return null; } catch (IllegalAccessException e) { e.printStackTrace(); return null; } for (Iterator>>> iterator = invariantDescriptor.getIntervalGeneratorPairIterator(); iterator.hasNext(); ) { Entry>> entry = iterator.next(); Integer dimension = entry.getKey(); for (ObjectObjectPair pair: entry.getValue()) { Y transformedObject = converter.evaluate(pair.getFirst()); G generator = pair.getSecond(); result.addInterval(dimension, transformedObject, generator); } } return result; } public static PersistenceInvariantDescriptor, G> transformByIdentity(PersistenceInvariantDescriptor, G> invariantDescriptor) { IdentityConverter converter = IdentityConverter.getInstance(); return transform(invariantDescriptor, converter); } } ================================================ FILE: src/java/edu/stanford/math/plex4/homology/filtration/IdentityConverter.java ================================================ package edu.stanford.math.plex4.homology.filtration; /** * This class defines a filtration value conversion which simply defines the filtration * value to be equal to the filtration index. (i.e. f_i = i) * * @author Andrew Tausz * */ public class IdentityConverter extends FiltrationConverter { /** * This is the single instance of the class */ private static IdentityConverter instance = new IdentityConverter(); /** * Private constructor to prevent instantiation. */ private IdentityConverter(){} /** * This returns the single instance of the class. * * @return the single instance of the class */ public static IdentityConverter getInstance() { return instance; } @Override public int getFiltrationIndex(double filtrationValue) { return (int) filtrationValue; } @Override public double getFiltrationValue(int filtrationIndex) { return filtrationIndex; } @Override public double computeInducedFiltrationValue(double filtrationValue1, double filtrationValue2) { return Math.max(filtrationValue1, filtrationValue2); } @Override public double getInitialFiltrationValue() { return 0; } } ================================================ FILE: src/java/edu/stanford/math/plex4/homology/filtration/IncreasingLinearConverter.java ================================================ package edu.stanford.math.plex4.homology.filtration; /** *

This class implements a conversion between filtration values and filtration * indices that is linear and increasing. If we let f_k be the filtration value * at index k and N is the number of divisions, then this mapping satisfies: *

    *
  • f_k = min + k * delta
  • *
  • f_0 = min
  • *
  • f_{N-1} = max
  • *
*

* * @author Andrew Tausz * */ public class IncreasingLinearConverter extends FiltrationConverter { /* * f_k = min + delta * k * f_0 = min * f_{N-1} = max * Therefore: * delta = (max - min) / (delta - 1) * k = (f_k - min) / delta * */ /** * The number of divisions of the range [min, max) */ private final int numDivisions; /** * The minimum filtration value, aka. min. */ private final double minFiltrationValue; /** * The maximum filtration value, aka. max. */ private final double maxFiltrationValue; /** * The granularity, or spacing between filtration values. */ private final double delta; /** * This constructor initializes the object with the number of divisions in the range, and the * minimum and maximum values. * * @param numDivisions the number of divisions to use in the range * @param minFiltrationValue the minimum filtration value * @param maxFiltrationValue the maximum filtration value */ public IncreasingLinearConverter(int numDivisions, double minFiltrationValue, double maxFiltrationValue) { this.numDivisions = numDivisions; this.minFiltrationValue = minFiltrationValue; this.maxFiltrationValue = maxFiltrationValue; this.delta = (this.maxFiltrationValue - this.minFiltrationValue) / (double) (this.numDivisions); } /** * This initializes the object with a default minimum filtration value of zero. * * @param numDivisions the number of divisions in the range * @param maxFiltrationValue the maximum filtration value */ public IncreasingLinearConverter(int numDivisions, double maxFiltrationValue) { this(numDivisions, 0, maxFiltrationValue); } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.filtration.FiltrationConverter#getFiltrationIndex(double) */ public int getFiltrationIndex(double filtrationValue) { if (this.delta == 0) { return 0; } return (int) ((filtrationValue - this.minFiltrationValue) / this.delta); } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.filtration.FiltrationConverter#getFiltrationValue(int) */ public double getFiltrationValue(int filtrationIndex) { return (this.minFiltrationValue + this.delta * filtrationIndex); } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.filtration.FiltrationConverter#computeInducedFiltrationValue(double, double) */ public double computeInducedFiltrationValue(double filtrationValue1, double filtrationValue2) { return Math.max(filtrationValue1, filtrationValue2); } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.filtration.FiltrationConverter#getInitialFiltrationValue() */ public double getInitialFiltrationValue(){ return this.minFiltrationValue; } /** * @return the number of divisions */ public int getNumDivisions() { return numDivisions; } /** * @return the minimum filtration value */ public double getMinFiltrationValue() { return minFiltrationValue; } /** * @return the maximum filtration value */ public double getMaxFiltrationValue() { return maxFiltrationValue; } /** * @return the spacing between the points */ public double getDelta() { return delta; } } ================================================ FILE: src/java/edu/stanford/math/plex4/homology/filtration/StaticConverter.java ================================================ /** * */ package edu.stanford.math.plex4.homology.filtration; /** * This class implements the FiltrationConverter interface for static complexes. * It simply sets all of the filtration values and indices to 0. * * @author Andrew Tausz * */ public class StaticConverter extends FiltrationConverter { /** * This is the single instance of the class */ private static StaticConverter instance = new StaticConverter(); /** * Private constructor to prevent instantiation. */ private StaticConverter(){} /** * This returns the single instance of the class. * * @return the single instance of the class */ public static StaticConverter getInstance() { return instance; } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.filtration.FiltrationConverter#getFiltrationIndex(double) */ public int getFiltrationIndex(double filtrationValue) { return 0; } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.filtration.FiltrationConverter#getFiltrationValue(int) */ public double getFiltrationValue(int filtrationIndex) { return 0; } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.filtration.FiltrationConverter#computeInducedFiltrationValue(double, double) */ public double computeInducedFiltrationValue(double filtrationValue1, double filtrationValue2) { return 0; } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.filtration.FiltrationConverter#getInitialFiltrationValue() */ public double getInitialFiltrationValue() { return 0; } } ================================================ FILE: src/java/edu/stanford/math/plex4/homology/interfaces/AbstractPersistenceAlgorithm.java ================================================ package edu.stanford.math.plex4.homology.interfaces; import edu.stanford.math.plex4.homology.barcodes.BarcodeCollection; import edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream; /** * This interface defines the functionality of a persistence algorithm. Namely it is a mapping * which takes a filtered chain complex to a barcode collection. * * @author Andrew Tausz * * @param the underlying basis type of the filtered chain complex */ public abstract class AbstractPersistenceAlgorithm { /** * This function computes the persistence index intervals of a filtered chain complex. * In other words, it returns intervals corresponding to the internal filtration * indices of the basis elements. * * @param stream the filtered chain complex * @return the persistence intervals of the given complex */ public abstract BarcodeCollection computeIndexIntervals(AbstractFilteredStream stream); /** * This function computes the persistence intervals of a filtered chain complex. * * @param stream the filtered chain complex * @return the persistence intervals of the given complex */ public BarcodeCollection computeIntervals(AbstractFilteredStream stream) { BarcodeCollection integerIntervals = this.computeIndexIntervals(stream); return (BarcodeCollection) stream.transform(integerIntervals); } } ================================================ FILE: src/java/edu/stanford/math/plex4/homology/interfaces/AbstractPersistenceBasisAlgorithm.java ================================================ package edu.stanford.math.plex4.homology.interfaces; import edu.stanford.math.plex4.homology.barcodes.AnnotatedBarcodeCollection; import edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream; /** * This interface defines the functionality of a persistence algorithm that also produces generators * for each calculated interval. * * @author Andrew Tausz * * @param the underlying basis type of the filtered chain complex * @param the type of the generators of the persistence intervals */ public abstract class AbstractPersistenceBasisAlgorithm extends AbstractPersistenceAlgorithm { /** * This function computes the augmented persistence index intervals for a supplied filtered chain complex. * The augmented persistence intervals are the same as the regular persistence intervals, except that * each interval is annotated with a generator of type B. Note that it returns intervals corresponding * to the internal filtration indices of the basis elements. * * @param stream the filtered chain complex * @return the augmented persistence intervals */ public abstract AnnotatedBarcodeCollection computeAnnotatedIndexIntervals(AbstractFilteredStream stream); /** * This function computes the augmented persistence intervals for a supplied filtered chain complex. * The augmented persistence intervals are the same as the regular persistence intervals, except that * each interval is annotated with a generator of type B. * * @param stream the filtered chain complex * @return the augmented persistence intervals */ public AnnotatedBarcodeCollection computeAnnotatedIntervals(AbstractFilteredStream stream) { AnnotatedBarcodeCollection integerIntervals = this.computeAnnotatedIndexIntervals(stream); return (AnnotatedBarcodeCollection) stream.transform(integerIntervals); } } ================================================ FILE: src/java/edu/stanford/math/plex4/homology/nonautogen/DisjointSetSystem.java ================================================ package edu.stanford.math.plex4.homology.nonautogen; @Deprecated public class DisjointSetSystem { int capacity = 16; int size = 0; int[] parents = null; int[] ranks = null; public DisjointSetSystem(int size) { while (capacity < size) { capacity *= 2; } this.size = size; this.parents = new int[capacity]; this.ranks = new int[capacity]; for (int i = 0; i < this.size; i++) { this.parents[i] = i; } } public DisjointSetSystem(DisjointSetSystem set) { this.capacity = set.capacity; this.size = set.size; this.parents = new int[capacity]; this.ranks = new int[capacity]; for (int i = 0; i < this.size; i++) { this.parents[i] = set.parents[i]; this.ranks[i] = set.ranks[i]; } } public void grow(int newSize) { int newCapacity = capacity; while (newCapacity < newSize) { newCapacity *= 2; } if (newCapacity != this.capacity) { int[] newParents = new int[newCapacity]; int[] newRanks = new int[newCapacity]; for (int i = 0; i < this.size; i++) { newParents[i] = this.parents[i]; newRanks[i] = this.ranks[i]; } this.parents = newParents; this.ranks = newRanks; this.capacity = newCapacity; } this.size = newSize; } /** * Returns the index of the representative * @param index * @return the index of the representative */ public int find(int index) { if (parents[index] == index) { return index; } else { parents[index] = find(parents[index]); return parents[index]; } } public void union(int x, int y) { int xRoot = this.find(x); int yRoot = this.find(y); if (ranks[xRoot] > ranks[yRoot]) { parents[yRoot] = xRoot; } else if (ranks[xRoot] < ranks[yRoot]) { parents[xRoot] = yRoot; } else if (xRoot != yRoot) { parents[yRoot] = xRoot; ranks[xRoot]++; } } } ================================================ FILE: src/java/edu/stanford/math/plex4/homology/nonautogen/PersistentCohomologyPrototype.java ================================================ package edu.stanford.math.plex4.homology.nonautogen; import java.util.Comparator; import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Set; import edu.stanford.math.plex4.homology.barcodes.BarcodeCollection; import edu.stanford.math.plex4.homology.interfaces.AbstractPersistenceAlgorithm; import edu.stanford.math.plex4.streams.derived.DualStream; import edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream; import edu.stanford.math.plex4.streams.utility.FilteredComparator; import edu.stanford.math.primitivelib.autogen.algebraic.IntAbstractField; import edu.stanford.math.primitivelib.autogen.formal_sum.IntAlgebraicFreeModule; import edu.stanford.math.primitivelib.autogen.formal_sum.IntSparseFormalSum; import edu.stanford.math.primitivelib.autogen.formal_sum.IntVectorConverter; import edu.stanford.math.primitivelib.autogen.matrix.IntSparseVector; import edu.stanford.math.primitivelib.autogen.matrix.IntVectorEntry; import gnu.trove.TIntHashSet; import gnu.trove.TIntIntHashMap; import gnu.trove.TIntIntIterator; import gnu.trove.TIntObjectHashMap; import gnu.trove.TIntObjectIterator; import gnu.trove.TObjectIntHashMap; import gnu.trove.TObjectIntIterator; public class PersistentCohomologyPrototype extends AbstractPersistenceAlgorithm { /** * This is the field over which we perform the arithmetic computations. */ protected final IntAbstractField field; /** * This objects performs the chain computations. */ protected final IntAlgebraicFreeModule chainModule; /** * This comparator defines the ordering on the basis elements. */ protected final Comparator basisComparator; /** * This comparator provides the dictionary ordering on filtration value - basis element * pairs. */ protected Comparator filteredComparator = null; /** * This stores the minimum dimension for which to compute (co)homology. */ protected int minDimension = 0; /** * This stores the maximum dimension for which to compute (co)homology. */ protected int maxDimension = 2; /** * This constructor initializes the object with a field and a comparator on the basis type. * * @param field a field structure on the type int * @param basisComparator a comparator on the basis type U * @param minDimension the minimum dimension to compute * @param maxDimension the maximum dimension to compute */ public PersistentCohomologyPrototype(IntAbstractField field, Comparator basisComparator, int minDimension, int maxDimension) { this.field = field; this.chainModule = new IntAlgebraicFreeModule(this.field); this.basisComparator = basisComparator; this.minDimension = minDimension; this.maxDimension = maxDimension; } /** * This function simply updates the filtered comparator to the one induced by the given filtered stream. * * @param stream the AbstractFilteredStream that provides the filtration index information */ protected void initializeFilteredComparator(AbstractFilteredStream stream) { this.filteredComparator = new FilteredComparator(stream, this.basisComparator); } /** * This function returns the free module used for the arithmetic computations. * * @return the free module over chains in U */ public IntAlgebraicFreeModule getChainModule() { return this.chainModule; } /** * This function returns the field over which the homology is computed. * * @return the field over type int */ public IntAbstractField getField() { return this.field; } public BarcodeCollection computeIndexIntervals(AbstractFilteredStream stream) { this.initializeFilteredComparator(stream); return this.pCohMatrix(stream); } private BarcodeCollection pCohMatrix(AbstractFilteredStream stream) { AbstractFilteredStream dualStream = new DualStream(stream); IntVectorConverter vectorConverter = new IntVectorConverter(stream); dualStream.finalizeStream(); BarcodeCollection collection = new BarcodeCollection(); collection.setLeftClosedDefault(true); collection.setRightClosedDefault(false); //List> Z = new ArrayList>(); //List birth = new ArrayList(); //Set live_cocycle_indices = new HashSet(); //Map> cocycles = new HashMap>(); //Map> cocycleCoboundaries = new HashMap>(); TIntHashSet live_cocycle_indices = new TIntHashSet(); TIntObjectHashMap cocycles = new TIntObjectHashMap(); TIntObjectHashMap cocycleCoboundaries = new TIntObjectHashMap(); TIntIntHashMap coefficients = new TIntIntHashMap(); for (U sigma_k : stream) { int dim_sigma_k = stream.getDimension(sigma_k); /* * Do not process simplices of higher dimension than maxDimension. */ if (dim_sigma_k < this.minDimension) { continue; } if (dim_sigma_k > this.maxDimension + 1) { break; } int j = -1; int c_j = 0; int k = vectorConverter.getIndex(sigma_k); coefficients.clear(); for (TIntObjectIterator iterator = cocycleCoboundaries.iterator(); iterator.hasNext(); ) { iterator.advance(); IntSparseVector d_alpha_i = iterator.value(); int i = iterator.key(); int c_i = d_alpha_i.get(k); if (!field.isZero(c_i)) { coefficients.put(i, c_i); if (i > j) { j = i; c_j = c_i; } } } if (j < 0) { live_cocycle_indices.add(k); cocycles.put(k, vectorConverter.toSparseVector(chainModule.createNewSum(sigma_k))); cocycleCoboundaries.put(k, vectorConverter.toSparseVector(chainModule.createNewSum(dualStream.getBoundaryCoefficients(sigma_k), dualStream.getBoundary(sigma_k)))); } else { IntSparseVector alpha_j = cocycles.get(j); IntSparseVector d_alpha_j = cocycleCoboundaries.get(j); live_cocycle_indices.remove(j); cocycles.remove(j); cocycleCoboundaries.remove(j); for (TIntIntIterator cIterator = coefficients.iterator(); cIterator.hasNext(); ) { cIterator.advance(); int i = cIterator.key(); if (i == j) { continue; } int c_i = cIterator.value(); int q = field.negate(field.divide(c_i, c_j)); accumulate(cocycles.get(i), alpha_j, q, this.field); accumulate(cocycleCoboundaries.get(i), d_alpha_j, q, this.field); if (cocycles.get(i).isEmpty()) { cocycles.remove(i); cocycleCoboundaries.remove(i); } } U sigma_j = vectorConverter.getBasisElement(j); int index_j = stream.getFiltrationIndex(sigma_j); int index_k = stream.getFiltrationIndex(sigma_k); int dimension = stream.getDimension(sigma_j); if (index_k > index_j && dimension < maxDimension) { collection.addInterval(dimension, index_j, index_k); } } } for (TIntObjectIterator iterator = cocycleCoboundaries.iterator(); iterator.hasNext(); ) { iterator.advance(); int i = iterator.key(); U sigma_i = vectorConverter.getBasisElement(i); int dimension = stream.getDimension(sigma_i); if (dimension < maxDimension) { collection.addRightInfiniteInterval(dimension, stream.getFiltrationIndex(sigma_i)); } } return collection; } @SuppressWarnings("unused") private BarcodeCollection pCoh(AbstractFilteredStream stream) { AbstractFilteredStream dualStream = new DualStream(stream); dualStream.finalizeStream(); //Timing.stopAndDisplay("Constructed dual stream"); //Timing.restart(); BarcodeCollection collection = new BarcodeCollection(); collection.setLeftClosedDefault(true); collection.setRightClosedDefault(false); //List> Z = new ArrayList>(); //List birth = new ArrayList(); Set live_cocycle_indices = new HashSet(); Map> cocycles = new HashMap>(); Map> cocycleCoboundaries = new HashMap>(); for (U sigma_k : stream) { /* * Do not process simplices of higher dimension than maxDimension. */ if (stream.getDimension(sigma_k) < this.minDimension) { continue; } if (stream.getDimension(sigma_k) > this.maxDimension + 1) { continue; } TObjectIntHashMap coefficients = new TObjectIntHashMap(); U j = null; int c_j = 0; int dim_sigma_k = stream.getDimension(sigma_k); for (U i: live_cocycle_indices) { IntSparseFormalSum d_alpha_i = cocycleCoboundaries.get(i); int dim_i = stream.getDimension(i); if ((dim_i + 1 == dim_sigma_k) && d_alpha_i.containsObject(sigma_k)) { int c_i = d_alpha_i.getCoefficient(sigma_k); coefficients.put(i, c_i); if (j == null || (this.filteredComparator.compare(i, j) > 0)) { j = i; c_j = c_i; } } } if (j == null) { live_cocycle_indices.add(sigma_k); cocycles.put(sigma_k, chainModule.createNewSum(sigma_k)); cocycleCoboundaries.put(sigma_k, chainModule.createNewSum(dualStream.getBoundaryCoefficients(sigma_k), dualStream.getBoundary(sigma_k))); } else { IntSparseFormalSum alpha_j = cocycles.get(j); IntSparseFormalSum d_alpha_j = cocycleCoboundaries.get(j); live_cocycle_indices.remove(j); cocycles.remove(j); cocycleCoboundaries.remove(j); for (TObjectIntIterator cIterator = coefficients.iterator(); cIterator.hasNext(); ) { cIterator.advance(); U i = cIterator.key(); if (i.equals(j)) { continue; } int c_i = cIterator.value(); int q = field.negate(field.divide(c_i, c_j)); chainModule.accumulate(cocycles.get(i), alpha_j, q); chainModule.accumulate(cocycleCoboundaries.get(i), d_alpha_j, q); if (cocycles.get(i).isEmpty()) { cocycles.remove(i); cocycleCoboundaries.remove(i); } } int index_j = stream.getFiltrationIndex(j); int index_k = stream.getFiltrationIndex(sigma_k); int dimension = stream.getDimension(j); if (index_k > index_j && dimension < maxDimension) { collection.addInterval(stream.getDimension(j), index_j, index_k); } } } for (U i: live_cocycle_indices) { int dimension = stream.getDimension(i); if (dimension < maxDimension) { collection.addRightInfiniteInterval(stream.getDimension(i), stream.getFiltrationIndex(i)); } } return collection; } private void accumulate(IntSparseVector a, IntSparseVector b, int c, IntAbstractField field) { for (IntVectorEntry pair: b) { int index = pair.getIndex(); int value = pair.getValue(); a.set(index, field.add(a.get(index), field.multiply(value, c))); } } } ================================================ FILE: src/java/edu/stanford/math/plex4/homology/utility/HomologyUtility.java ================================================ package edu.stanford.math.plex4.homology.utility; import edu.stanford.math.plex4.homology.chain_basis.Simplex; import gnu.trove.TIntHashSet; import gnu.trove.TIntIterator; /** * This class contains static utility functions to aid * the homology computations. * * @author Andrew Tausz * */ public class HomologyUtility { /** * This array caches the standard sequence of boundary coefficients. We * construct a cache since we do not want to keep re-creating arrays with * coefficients [1, -1, 1, -1, ...], therefore we construct them once. */ private static int[][] defaultBoundaryCoefficients = null; /** * This stores the maximum coefficient array size stored in the cache. */ private static int defaultCoefficientCacheSize = 10; /** * This function initializes the set of default boundary coefficients. It * constructs an array of the form * [[], * [1], * [1, -1], * [1, -1, 1] * [1, -1, 1, -1], * ... ] */ private static void initializeDefaultBoundaryCoefficients() { defaultBoundaryCoefficients = new int[defaultCoefficientCacheSize][]; for (int i = 0; i < defaultCoefficientCacheSize; i++) { defaultBoundaryCoefficients[i] = new int[i]; for (int j = 0; j < i; j++) { defaultBoundaryCoefficients[i][j] = (j % 2 == 0 ? 1 : -1); } } } /** * This function returns the standard sequence of boundary coefficients * used in simplicial homology, defined by c_i = (-1)^i. For small values * of the desired length, it returns a precomputed array. This optimization * is performed because this operation is done very often during homology * and cohomology calculations. Also, almost all calls to this function will * involve small values of the argument length, since most of the homological * features of interest are in low dimensions. Nevertheless, this function * will return the desired sequence even if the cache is not populated with * the desired array. * * @param length the length of the array to get * @return an array of with specified length containing the numbers (-1)^i */ public static int[] getDefaultBoundaryCoefficients(int length) { // initialize cache if necessary if (defaultBoundaryCoefficients == null) { initializeDefaultBoundaryCoefficients(); } // return coefficients from cache if they exist if (length < defaultCoefficientCacheSize) { return defaultBoundaryCoefficients[length]; } // the desired length exceeds that of those stored // in the cache - in this case just construct it int[] boundaryCoefficients = new int[length]; for (int i = 0; i < length; i++) { boundaryCoefficients[i] = (i % 2 == 0 ? 1 : -1); } return boundaryCoefficients; } /** * This function performs a comparison of two arrays of ints. It * returns a positive value if the first array is greater than the * second, a negative value if the first array is less than the * second, and zero if they are equal. The comparison is done as * follows. First the lengths are compared. If they are unequal, then * it returns the comparison of the lengths. If the array lengths * are equal, it performs a dictionary comparison starting from the * 0-th entry in the arrays. * * @param array1 the first array parameter * @param array2 the second array parameter * @return 1 if array1 > array2, 0 if array1 == array2, -1 if array1 < array2 */ public static int compareIntArrays (int[] array1, int[] array2) { int length1 = array1.length; int length2 = array2.length; if (length1 > length2) { return 1; } else if (length1 < length2) { return -1; } for (int i = 0; i < length1; i++) { if (array1[i] != array2[i]) return (array1[i] - array2[i]); } return 0; } /** * This function returns a new array which contains the same entries as the * supplied array except that the element at the specified index has been * removed and the proceeding elements have been shifted down by one. * * @param array * @param index * @return the array with the element at the specified index removed */ public static int[] removeIndex(final int[] array, int index) { int[] result = new int[array.length - 1]; int newIndex = 0; int oldIndex = 0; while (oldIndex < array.length) { if (oldIndex == index) { oldIndex++; } else { result[newIndex] = array[oldIndex]; newIndex++; oldIndex++; } } return result; } /** * This function appends the argument newValue to the end of the * supplied array. It does not modify the passed in array. * * @param array the array to append to * @param newValue the value to append * @return the supplied array with newValue appended */ public static int[] appendToArray(int[] array, int newValue) { int[] result = new int[array.length + 1]; for (int i = 0; i < array.length; i++) { result[i] = array[i]; } result[array.length] = newValue; return result; } /** * This function returns the first k entries of the supplied array. * * @param array * @param k * @return the subarray array[0, ..., k] */ public static int[] lowerEntries(int[] array, int k) { int[] result = new int[k + 1]; for (int i = 0; i <= k; i++) { result[i] = array[i]; } return result; } /** * This function returns the last entries of the supplied array * starting from the index k. * * @param array * @param k * @return the subarray array[k, ..., array.length - 1] */ public static int[] upperEntries(int[] array, int k) { int n = array.length; int[] result = new int[n - k]; for (int i = k; i < n; i++) { result[i - k] = array[i]; } return result; } /** * This function computes the intersection between two sets of * integers. * * @param set1 the first set * @param set2 the second set * @return a TIntSet containing elements common to both input sets */ public static TIntHashSet computeIntersection(TIntHashSet set1, TIntHashSet set2) { TIntHashSet smallerSet = null; TIntHashSet largerSet = null; /* * Let's identify the smaller and larger sets, * so that we only need to iterate through the smaller one. */ if (set1.size() < set2.size()) { smallerSet = set1; largerSet = set2; } else { smallerSet = set2; largerSet = set1; } TIntHashSet intersection = new TIntHashSet(); TIntIterator iterator = smallerSet.iterator(); while (iterator.hasNext()) { int element = iterator.next(); if (largerSet.contains(element)) { intersection.add(element); } } return intersection; } public static Simplex convertIndices(Simplex simplex, int[] conversionArray) { return Simplex.makeSimplex(HomologyUtility.convertIndices(simplex.getVertices(), conversionArray)); } public static int[] convertIndices(int[] vertices, int[] conversionArray) { int[] newVertices = new int[vertices.length]; for (int i = 0; i < vertices.length; i++) { newVertices[i] = conversionArray[vertices[i]]; } return newVertices; } public static int[] deconvertIndices(int[] vertices, int[] conversionArray) { int[] newVertices = new int[vertices.length]; for (int i = 0; i < vertices.length; i++) { for (int j = 0; j < conversionArray.length; j++) { if (conversionArray[j] == vertices[i]) { newVertices[i] = j; continue; } } } return newVertices; } } ================================================ FILE: src/java/edu/stanford/math/plex4/homology/zigzag/AbstractHomologyTracker.java ================================================ package edu.stanford.math.plex4.homology.zigzag; public interface AbstractHomologyTracker, U, G> { public void add(U sigma, K index); public void remove(U sigma, K index); public AbstractPersistenceTracker getState(); public boolean isBoundary(G generator); } ================================================ FILE: src/java/edu/stanford/math/plex4/homology/zigzag/AbstractPersistenceTracker.java ================================================ package edu.stanford.math.plex4.homology.zigzag; import java.util.Map; import edu.stanford.math.plex4.homology.barcodes.AnnotatedBarcodeCollection; public interface AbstractPersistenceTracker, G> { public AnnotatedBarcodeCollection getInactiveGenerators(); public Map> getActiveGenerators(); } ================================================ FILE: src/java/edu/stanford/math/plex4/homology/zigzag/BasisTrackingUtility.java ================================================ package edu.stanford.math.plex4.homology.zigzag; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.Map; import java.util.Set; import edu.stanford.math.plex4.homology.chain_basis.PrimitiveBasisElement; import edu.stanford.math.primitivelib.autogen.algebraic.IntAbstractField; import edu.stanford.math.primitivelib.autogen.formal_sum.IntAlgebraicFreeModule; import edu.stanford.math.primitivelib.autogen.formal_sum.IntSparseFormalSum; import edu.stanford.math.primitivelib.autogen.pair.ObjectObjectPair; import gnu.trove.THashMap; import gnu.trove.THashSet; import gnu.trove.TObjectIntIterator; /** * This class contains various static functions for assisting with zigzag homology computations. * * @author Andrew Tausz * */ public class BasisTrackingUtility { /** * This function creates a new formal sum from the given set of coefficients and objects. * * @param * @param coefficients the array of coefficients * @param objects the array of basis elements - they must be of type X * @return a formal sum containing the given coefficients and basis elements */ @SuppressWarnings("unchecked") public static IntSparseFormalSum createNewSum(int[] coefficients, PrimitiveBasisElement[] objects) { IntSparseFormalSum result = new IntSparseFormalSum(); for (int i = 0; i < coefficients.length; i++) { result.put(coefficients[i], (X) objects[i]); } return result; } /** * This function computes the operation low_A(j) as described in the paper. Note that if * the chain is empty (for example the column contains only zeros), then this function * returns null. * * @param the underlying type of the basis elements in the chain * @param chain the chain * @param comparator the comparator to use * @return the lowest element in the chain */ public static X low(IntSparseFormalSum chain, Comparator comparator) { X maxObject = null; if (chain == null) { //System.out.println("stop"); return null; } for (TObjectIntIterator iterator = chain.iterator(); iterator.hasNext(); ) { iterator.advance(); if (maxObject == null || comparator.compare(iterator.key(), maxObject) > 0) { maxObject = iterator.key(); } } return maxObject; } /** * This function performs matrix multiplication. The matrix is represented by a sparse set of sparse columns. In other * words, this function computes the linear combination of the columns in the specified map with coefficients given by the * vector v. In the matrix m, the keys represent the column labels, and the values are the columns at that particular index. * * @param * @param * @param m the matrix as a list of columns * @param v the vector * @param field the field over which to perform the computations * @return the matrix vector product */ public static IntSparseFormalSum multiply(Map> m, IntSparseFormalSum v, IntAbstractField field) { IntSparseFormalSum result = new IntSparseFormalSum(); IntAlgebraicFreeModule YChainModule = new IntAlgebraicFreeModule(field); for (TObjectIntIterator iterator = v.iterator(); iterator.hasNext(); ) { iterator.advance(); int coefficient = iterator.value(); X object = iterator.key(); IntSparseFormalSum column = m.get(object); if (column != null) { YChainModule.accumulate(result, column, coefficient); } } return result; } /** * This function performs matrix-matrix multiplication. The matrices are represented by a sparse set of sparse columns. * * @param * @param * @param * @param a the first matrix * @param b the second matrix * @param field the field over which to perform the computations * @return the matrix-matrix product a*b */ public static Map> multiply(Map> a, Map> b, IntAbstractField field) { Map> result = new THashMap>(); for (Z col: b.keySet()) { result.put(col, multiply(a, b.get(col), field)); } return result; } /** * This function finds the index of the first column such that the column's low value is the value specified. If no * such column exists, it returns -1. * * @param * @param m the set of columns to search * @param low the low value to search for * @param comparator the comparator which performs the comparison within type Y * @return the index of the first column with the given low, and -1 if no such column exists */ public static int findColumnWithGivenLow(List> m, Y low, Comparator comparator) { for (int i = 0; i < m.size(); i++) { IntSparseFormalSum column = m.get(i); Y columnLow = low(column, comparator); if (columnLow != null && low.equals(columnLow)) { return i; } } return -1; } /** * This function finds the index of the first column such that the column's low value is the value specified. If no * such column exists, it returns null. * * @param * @param * @param m the set of columns to search * @param low the low value to search for * @param comparator the comparator which performs the comparison within type Y * @return the index of the first column with the given low, and null if no such column exists */ public static X findColumnWithGivenLow(Map> m, Y low, Comparator comparator) { for (X columnIndex: m.keySet()) { IntSparseFormalSum column = m.get(columnIndex); Y columnLow = low(column, comparator); if (columnLow != null && low.equals(columnLow)) { return columnIndex; } } return null; } /** * This function computes the boundary of a given chain, by linear extension. * * @param * @param chain the chain to compute the boundary of * @param chainModule the module that performs the computations * @return the boundary of the given chain */ public static IntSparseFormalSum computeBoundary(IntSparseFormalSum chain, IntAlgebraicFreeModule chainModule) { IntSparseFormalSum result = new IntSparseFormalSum(); if (chain == null) { System.out.println("null chain"); } for (TObjectIntIterator iterator = chain.iterator(); iterator.hasNext(); ) { iterator.advance(); IntSparseFormalSum boundary = createNewSum(iterator.key().getBoundaryCoefficients(), iterator.key().getBoundaryArray()); chainModule.accumulate(result, boundary, iterator.value()); } return result; } /** * This function returns the lowest index such that the given element is found in the chain at that index. If no such * index is found, it returns null. * * @param * @param * @param m the set of chains * @param element the element to search for * @param comparator provides comparison for the indices of m * @return the lowest index of the chains containing the given element */ public static X findFirstIndexContainingElement(Map> m, Y element, Comparator comparator) { X index = null; Set candidates = new THashSet(); for (X key: m.keySet()) { if (m.get(key).containsObject(element)) { candidates.add(key); } } for (X candidate: candidates) { if (index == null || comparator.compare(candidate, index) < 0) { index = candidate; } } return index; } /** * This function returns the greatest index such that the given element is found in the chain at that index. If no such * index is found, it returns null. * * @param * @param * @param m the set of chains * @param element the element to search for * @param comparator provides comparison for the indices of m * @return the greatest index of the chains containing the given element */ public static X findLastIndexContainingElement(Map> m, Y element, Comparator comparator) { X index = null; Set candidates = new THashSet(); for (X key: m.keySet()) { if (m.get(key).containsObject(element)) { candidates.add(key); } } for (X candidate: candidates) { if (index == null || comparator.compare(candidate, index) > 0) { index = candidate; } } return index; } /** * This function returns the set of indices such that the chains at the indices contain the given element. The indices * are returned in sorted order. In the event that no indices are found, it returns the empty list. * * @param * @param * @param m the set of chains * @param element the element to search for * @param comparator provides comparison for the indices of m * @return the ascending set of indices containing the element */ public static List getAscendingIndicesContainingElement(Map> m, Y element, Comparator comparator) { List list = new ArrayList(); for (X key: m.keySet()) { if (m.get(key).containsObject(element)) { list.add(key); } } Collections.sort(list, comparator); return list; } public static List getAscendingIndicesWithGivenLow(Map> m, Y element, Comparator comparator, Comparator comparatorY) { List list = new ArrayList(); for (X key: m.keySet()) { Y low = low(m.get(key), comparatorY); if (low != null && low.equals(element)) { list.add(key); } } Collections.sort(list, comparator); return list; } public static List getAscendingIndices(Map m, Comparator comparator) { List list = new ArrayList(); list.addAll(m.keySet()); Collections.sort(list, comparator); return list; } public static int getPrependIndex(Map m) { if(m.keySet().isEmpty()) { return 0; } int minimumIndex = Integer.MAX_VALUE; for (int index: m.keySet()) { if (index < minimumIndex) { minimumIndex = index; } } return minimumIndex - 1; } public static int getAppendIndex(Map m) { if(m.keySet().isEmpty()) { return 0; } int maximumIndex = Integer.MIN_VALUE; for (int index: m.keySet()) { if (index > maximumIndex) { maximumIndex = index; } } return maximumIndex + 1; } public static int prependColumn(Map m, X col) { int index = getPrependIndex(m); m.put(index, col); return index; } public static int appendColumn(Map m, X col) { int index = getAppendIndex(m); m.put(index, col); return index; } public static void writeRow(Map> m, IntSparseFormalSum row, int rowIndex) { for (TObjectIntIterator iterator = row.iterator(); iterator.hasNext(); ) { iterator.advance(); X key = iterator.key(); if (!m.containsKey(key)) { m.put(key, new IntSparseFormalSum()); } m.get(key).put(iterator.value(), rowIndex); } } public static IntSparseFormalSum getRow(Map> m, Y row) { IntSparseFormalSum result = new IntSparseFormalSum(); for (X colIndex: m.keySet()) { IntSparseFormalSum col = m.get(colIndex); if (col.containsObject(row)) { result.put(col.getCoefficient(row), colIndex); } } return result; } public static ObjectObjectPair, IntSparseFormalSum> reduce(Map> M, IntSparseFormalSum column, Comparator comparator, IntAlgebraicFreeModule chainModule) { Map lowMap = new THashMap(); for (X key: M.keySet()) { IntSparseFormalSum chain = M.get(key); Y low = low(chain, comparator); if (low != null) { lowMap.put(low, key); } } IntSparseFormalSum reduction = new IntSparseFormalSum(); IntSparseFormalSum coefficients = new IntSparseFormalSum(); IntAbstractField field = (IntAbstractField) chainModule.getRing(); for (TObjectIntIterator iterator = column.iterator(); iterator.hasNext(); ) { iterator.advance(); reduction.put(iterator.value(), iterator.key()); } while (true) { Y low = low(reduction, comparator); if (low == null) { break; } X columnWithLow = lowMap.get(low); if (columnWithLow == null) { break; //List columns = BasisTrackingUtility.getAscendingIndicesContainingElement(Z, lowElement, this.integerComparator); //int randomIndex = RandomUtility.nextUniformInt(0, columns.size() - 1); //columnWithLow = columns.get(randomIndex); //columnWithLow = BasisTrackingUtility.findLastIndexContainingElement(Z, lowElement, this.integerComparator); //IntSparseFormalSum boundaryOfColumn = BasisTrackingUtility.computeBoundary(Z.get(columnWithLow), chainModule); //break; } int a = M.get(columnWithLow).getCoefficient(low); int b = reduction.getCoefficient(low); int multiplier = field.negate(field.divide(b, a)); chainModule.accumulate(reduction, M.get(columnWithLow), multiplier); coefficients.put(field.negate(multiplier), columnWithLow); } return new ObjectObjectPair, IntSparseFormalSum>(coefficients, reduction); } } ================================================ FILE: src/java/edu/stanford/math/plex4/homology/zigzag/HomologyBasisTracker.java ================================================ package edu.stanford.math.plex4.homology.zigzag; import java.util.Comparator; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Set; import edu.stanford.math.plex4.homology.barcodes.AnnotatedBarcodeCollection; import edu.stanford.math.plex4.homology.barcodes.BarcodeCollection; import edu.stanford.math.plex4.homology.barcodes.Interval; import edu.stanford.math.plex4.homology.chain_basis.PrimitiveBasisElement; import edu.stanford.math.primitivelib.autogen.algebraic.IntAbstractField; import edu.stanford.math.primitivelib.autogen.formal_sum.IntAlgebraicFreeModule; import edu.stanford.math.primitivelib.autogen.formal_sum.IntSparseFormalSum; import edu.stanford.math.primitivelib.autogen.pair.ObjectObjectPair; import gnu.trove.THashMap; import gnu.trove.THashSet; import gnu.trove.TIntIntHashMap; import gnu.trove.TObjectIntHashMap; /** * This class maintains the right-filtration for performing zig-zag homology. * It implements the algorithm described in the paper "Zigzag Persistent Homology * and Real-valued Functions" by Gunnar Carlsson, Vin de Silva, and Dmitriy Morozov. * * TODO List: * - cache low values for the columns to prevent re-computing * * @author Andrew Tausz * * @param */ public class HomologyBasisTracker implements AbstractHomologyTracker>{ /** * This is the field over which we perform the arithmetic computations. */ protected final IntAbstractField field; /** * These objects performs the chain computations. */ protected final IntAlgebraicFreeModule chainModule; protected final IntAlgebraicFreeModule integerChainModule; protected final Comparator basisComparator; protected final Comparator integerComparator = new Comparator() { public int compare(Integer o1, Integer o2) { return o1.compareTo(o2); } }; protected final Comparator indexedComparator = new Comparator() { public int compare(U arg0, U arg1) { int i0 = objectIndexMap.get(arg0); int i1 = objectIndexMap.get(arg1); if (i0 > i1) { return 1; } if (i0 < i1) { return -1; } return basisComparator.compare(arg0, arg1); } }; protected final Map> Z = new THashMap>(); protected final Map> B = new THashMap>(); protected final Map> C = new THashMap>(); protected final TIntIntHashMap internalExternalIndexMap = new TIntIntHashMap(); protected final TObjectIntHashMap objectIndexMap = new TObjectIntHashMap(); protected final Set basisElements = new THashSet(); protected int internalIndex = 0; protected final IntervalTracker> intervalTracker = new IntervalTracker>(); public static boolean checkConsistency = false; /** * This constructor initializes the object with a field and a comparator on the basis type. * * @param field a field structure on the type int * @param basisComparator a comparator on the basis type U */ public HomologyBasisTracker(IntAbstractField field, Comparator basisComparator) { this.field = field; this.chainModule = new IntAlgebraicFreeModule(this.field); this.integerChainModule = new IntAlgebraicFreeModule(this.field); this.basisComparator = basisComparator; } public static void log(String... args) { if (!checkConsistency) { return; } for (String arg: args) { System.out.println(arg); } } public IntervalTracker> getIntervalTracker() { return this.intervalTracker; } public AnnotatedBarcodeCollection> getFiniteAnnotatedBarcodes() { return this.intervalTracker.getFiniteAnnotatedBarcodes(); } public AnnotatedBarcodeCollection> getInfiniteAnnotatedBarcodes() { return this.intervalTracker.getInfiniteAnnotatedBarcodes(); } public AnnotatedBarcodeCollection> getAnnotatedBarcodes() { return this.intervalTracker.getAnnotatedBarcodes(); } public BarcodeCollection getFiniteBarcodes() { return this.intervalTracker.getFiniteBarcodes(); } public BarcodeCollection getInfiniteBarcodes() { return this.intervalTracker.getInfiniteBarcodes(); } public BarcodeCollection getBarcodes() { return this.intervalTracker.getBarcodes(); } public void add(U sigma) { this.add(sigma, this.internalIndex); } @SuppressWarnings("unchecked") public void add(U sigma, int externalIndex) { if (checkConsistency) { if (this.basisElements.contains(sigma)) { log("Invalid add!"); } U[] faces = (U[]) sigma.getBoundaryArray(); for (U face: faces) { if (!this.basisElements.contains(face)) { log("Invalid add!"); } } } this.objectIndexMap.put(sigma, internalIndex); this.internalExternalIndexMap.put(internalIndex, externalIndex); this.basisElements.add(sigma); IntSparseFormalSum boundary = BasisTrackingUtility.createNewSum(sigma.getBoundaryCoefficients(), sigma.getBoundaryArray()); // compute representation of boundary of sigma in terms of cycles Z_i // reduce boundary among the cycles ObjectObjectPair, IntSparseFormalSum> Zpair = BasisTrackingUtility.reduce(Z, boundary, this.indexedComparator, chainModule); IntSparseFormalSum v = Zpair.getFirst(); IntSparseFormalSum reduction = Zpair.getSecond(); // verification if (!reduction.isEmpty()) { log("Invalid Reduction!!!"); } ObjectObjectPair, IntSparseFormalSum> Bpair = BasisTrackingUtility.reduce(B, v, this.integerComparator, integerChainModule); IntSparseFormalSum u = Bpair.getFirst(); IntSparseFormalSum v_prime = Bpair.getSecond(); if (v_prime.isEmpty()) { // Birth // d sigma is already a boundary IntSparseFormalSum newCycle = chainModule.subtract(BasisTrackingUtility.multiply(C, u, this.field), chainModule.createNewSum(sigma)); int insertionPoint = BasisTrackingUtility.appendColumn(Z, newCycle); this.intervalTracker.startInterval(insertionPoint, externalIndex, sigma.getDimension(), newCycle); log(internalIndex + ": Birth (" + externalIndex + ", _) @ " + sigma.getDimension() + " - addition of " + sigma); } else { // Death IntSparseFormalSum newChain = chainModule.subtract(BasisTrackingUtility.multiply(C, u, this.field), chainModule.createNewSum(sigma)); BasisTrackingUtility.appendColumn(C, newChain); BasisTrackingUtility.appendColumn(B, integerChainModule.negate(v_prime)); //BasisTrackingUtility.appendColumn(B, v_prime); // update birth vector Integer j = BasisTrackingUtility.low(v_prime, this.integerComparator); this.intervalTracker.endInterval(j, externalIndex); log(internalIndex + ": Death (" + this.internalExternalIndexMap.get(j) + ", " + externalIndex + ") @ " + (sigma.getDimension() - 1) + " - addition of " + sigma); } internalIndex++; if (checkConsistency) { this.checkInvariant(); } } public void remove(U sigma) { this.remove(sigma, this.internalIndex); } public void remove(U sigma, int externalIndex) { if (!this.basisElements.contains(sigma)) { log("Invalid removal!"); } this.basisElements.remove(sigma); this.objectIndexMap.remove(sigma); this.internalExternalIndexMap.put(internalIndex, externalIndex); // try to set j to be the first cycle that contains sigma List indices = BasisTrackingUtility.getAscendingIndicesContainingElement(Z, sigma, this.integerComparator); Integer j = null; if (indices.size() > 0) { j = indices.get(0); } if (j == null) { // Birth - there is no cycle in matrix Z that contains sigma // Let j be the index of the first column in C that contains sigma j = BasisTrackingUtility.findFirstIndexContainingElement(C, sigma, this.integerComparator); // Let l be the index of the row of the lowest nonzero element in B[j] Integer l = BasisTrackingUtility.low(B.get(j), this.integerComparator); // 1. Prepend D C[j] to Z_i to get Z_i'. Prepend i+1 to the birth vector b_i to get // b_{i + 1} IntSparseFormalSum DC_j = BasisTrackingUtility.computeBoundary(C.get(j), chainModule); int prependLocation = BasisTrackingUtility.prependColumn(Z, DC_j); this.intervalTracker.startInterval(prependLocation, externalIndex, sigma.getDimension() - 1, DC_j); log(internalIndex + ": Birth (" + externalIndex + ", _) @ " + (sigma.getDimension() - 1) + " - removal of " + sigma); // 2. Let c = C[j][sigma]. Let r_sigma be the row of sigma in matrix C. We // prepend the row -r_sigma/c to the matrix B_i to get B_i'. IntSparseFormalSum C_j = C.get(j); int c = C_j.getCoefficient(sigma); IntSparseFormalSum r_sigma = BasisTrackingUtility.getRow(C, sigma); IntSparseFormalSum n_r_sigma_c = integerChainModule.multiply(field.negate(field.invert(c)), r_sigma); BasisTrackingUtility.writeRow(B, n_r_sigma_c, prependLocation); // 3. Subtract (r_sigma[k]/c) * C[j] from every column C[k] to get C'. for (Integer k: C.keySet()) { // TODO: Do we need this guard? if (k.equals(j)) { continue; } int coefficient = n_r_sigma_c.getCoefficient(k); chainModule.accumulate(C.get(k), C_j, coefficient); } // 4. Subtract (B'[k][l]/B'[j][l]) * B'[j] from every other column B'[k]. IntSparseFormalSum B_j = B.get(j); for (Integer k: B.keySet()) { if (k.equals(j)) { continue; } int coefficient = field.negate(field.divide(B.get(k).getCoefficient(l), B_j.getCoefficient(l))); integerChainModule.accumulate(B.get(k), B_j, coefficient); } // 5. Drop row l and column j from B' to get B_{i+1}. B.remove(j); for (Integer k: B.keySet()) { B.get(k).remove(l); } // 5. Drop column l from Z' Z.remove(l); // 5. Drop column j from C to get C_{i+1} C.remove(j); // 6. Reduce Z_{i+1} initially set to Z_i while (true) { U s = BasisTrackingUtility.low(Z.get(j), this.indexedComparator); if (s == null) { break; } //Integer k = this.findColumnWithGivenLow(Z, s, this.filteredComparator); Integer k = null; List k_candidates = BasisTrackingUtility.getAscendingIndicesWithGivenLow(Z, s, this.integerComparator, this.indexedComparator); for (Integer k_candidate: k_candidates) { if (!k_candidate.equals(j)) { k = k_candidate; break; } } if (k == null) { break; } int s_jk = field.divide(Z.get(j).getCoefficient(s), Z.get(k).getCoefficient(s)); int negative_s_jk = field.negate(s_jk); if (k.equals(j)) { log("Concurrent Modification!"); } chainModule.accumulate(Z.get(j), Z.get(k), negative_s_jk); // in B, add row j multiplied by s_jk to row k for (Integer columnIndex: B.keySet()) { integerChainModule.accumulate(B.get(columnIndex), k, field.multiply(B.get(columnIndex).getCoefficient(j), s_jk)); } } while (true) { U s = BasisTrackingUtility.low(Z.get(prependLocation), this.indexedComparator); if (s == null) { break; } //Integer k = this.findColumnWithGivenLow(Z, s, this.filteredComparator); Integer k = null; List k_candidates = BasisTrackingUtility.getAscendingIndicesWithGivenLow(Z, s, this.integerComparator, this.indexedComparator); for (Integer k_candidate: k_candidates) { if (!k_candidate.equals(prependLocation)) { k = k_candidate; break; } } if (k == null) { break; } int s_jk = field.divide(Z.get(prependLocation).getCoefficient(s), Z.get(k).getCoefficient(s)); int negative_s_jk = field.negate(s_jk); chainModule.accumulate(Z.get(prependLocation), Z.get(k), negative_s_jk); // in B, add row j multiplied by s_jk to row k for (Integer columnIndex: B.keySet()) { integerChainModule.accumulate(B.get(columnIndex), k, field.multiply(B.get(columnIndex).getCoefficient(prependLocation), s_jk)); } } } else { if (internalIndex == 1051) { log("stop"); } // Death // Z_j is the first cycle that contains simplex sigma // update birth vector this.intervalTracker.endInterval(j, externalIndex); log(internalIndex + ": Death (" + this.internalExternalIndexMap.get(j) + ", " + externalIndex + ") @ " + (sigma.getDimension()) + " - removal of " + sigma); //Map> Z_i1 = new THashMap>(); // TODO: ************** CHECK // 1. Change basis to remove sigma from matrix Z // In other words, we make sure that column j is the only one containing sigma for (int k_index = 0; k_index < indices.size(); k_index++) { int k = indices.get(k_index); if (k != j && Z.get(k).containsObject(sigma)) { U low_Zi_k = BasisTrackingUtility.low(Z.get(k), this.indexedComparator); int sigma_jk = field.divide(Z.get(k).getCoefficient(sigma), Z.get(j).getCoefficient(sigma)); int negative_sigma_jk = field.negate(sigma_jk); //Z_i1.put(k, chainModule.add(Z.get(k), chainModule.multiply(negative_sigma_jk, Z.get(j)))); chainModule.accumulate(Z.get(k), Z.get(j), negative_sigma_jk); // in B, add row k multiplied by sigma_jk to row j for (Integer BIndex: B.keySet()) { IntSparseFormalSum column = B.get(BIndex); integerChainModule.accumulate(column, j, field.multiply(column.getCoefficient(k), sigma_jk)); } //U low_Zi1_k = BasisTrackingUtility.low(Z_i1.get(k), this.comparator); U low_Zi1_k = BasisTrackingUtility.low(Z.get(k), this.indexedComparator); if (low_Zi1_k != null && low_Zi1_k != null && this.indexedComparator.compare(low_Zi1_k, low_Zi_k) < 0) { // TODO: Do we need this???????? //j = k; } } } // 2. Subtract cycle (C[k][sigma]/Z[j][sigma]) * Z[j] from every chain C[k] for (Integer CIndex: C.keySet()) { IntSparseFormalSum Ck = C.get(CIndex); int coefficient = field.negate(field.divide(Ck.getCoefficient(sigma), Z.get(j).getCoefficient(sigma))); chainModule.accumulate(C.get(CIndex), Z.get(j), coefficient); } /* for (Integer k: Z_i1.keySet()) { if (Z.containsKey(k)) { Z.remove(k); } Z.put(k, Z_i1.get(k)); } Z_i1 = null; */ // 3. Drop Z_{i+1}[j], the corresponding entry in vectors b_i and idx_i, row j // from B_i, row sigma from C_i and Z (as well as row and column of sigma from D_i) Z.remove(j); if (!BasisTrackingUtility.getAscendingIndicesContainingElement(Z, sigma, this.integerComparator).isEmpty()) { @SuppressWarnings("unused") List list = BasisTrackingUtility.getAscendingIndicesContainingElement(Z, sigma, this.integerComparator); log("Invalid removal!"); } // remove row j from B_i for (Integer BIndex: B.keySet()) { if (B.get(BIndex).containsObject(j)) { log("B is not in correct form!"); } B.get(BIndex).remove(j); } // remove row sigma from C_i for (Integer CIndex: C.keySet()) { if (C.get(CIndex).containsObject(sigma)) { log("C is not in correct form!"); } C.get(CIndex).remove(sigma); } // remove row sigma from Z_i for (Integer ZIndex: Z.keySet()) { if (Z.get(ZIndex).containsObject(sigma)) { log("Z is not in correct form!"); } Z.get(ZIndex).remove(sigma); } } internalIndex++; if (checkConsistency) { this.checkInvariant(); } } public void checkInvariant() { // Check that DZ = 0 for (Integer ZIndex: Z.keySet()) { IntSparseFormalSum Zk = Z.get(ZIndex); IntSparseFormalSum DCk = BasisTrackingUtility.computeBoundary(Zk, chainModule); if (!DCk.isEmpty()) { log("Invariant Violated!"); } } // check that DC = ZB for (Integer CIndex: C.keySet()) { IntSparseFormalSum Ck = C.get(CIndex); IntSparseFormalSum DCk = BasisTrackingUtility.computeBoundary(Ck, chainModule); IntSparseFormalSum ZBk = BasisTrackingUtility.multiply(this.Z, this.B.get(CIndex), this.field); if (!DCk.equals(ZBk)) { log("Invariant Violated!"); } } checkReduced(Z, this.indexedComparator); checkReduced(B, this.integerComparator); } protected void checkReduced(Map> map, Comparator comparator) { Map lowMap = new THashMap(); for (X index: map.keySet()) { Y lowElement = BasisTrackingUtility.low(map.get(index), comparator); if (lowMap.containsKey(lowElement)) { log("Matrix is not reduced!"); } lowMap.put(lowElement, index); } } protected boolean isCycle(IntSparseFormalSum chain) { ObjectObjectPair, IntSparseFormalSum> Zpair = BasisTrackingUtility.reduce(Z, chain, this.indexedComparator, chainModule); IntSparseFormalSum reduction = Zpair.getSecond(); return reduction.isEmpty(); } public boolean isBoundary(IntSparseFormalSum cycle) { ObjectObjectPair, IntSparseFormalSum> Zpair = BasisTrackingUtility.reduce(Z, cycle, this.indexedComparator, chainModule); IntSparseFormalSum v = Zpair.getFirst(); IntSparseFormalSum reduction = Zpair.getSecond(); // if it is not a cycle, it can't be a boundary if (!reduction.isEmpty()) { return false; } ObjectObjectPair, IntSparseFormalSum> Bpair = BasisTrackingUtility.reduce(B, v, this.integerComparator, integerChainModule); IntSparseFormalSum v_prime = Bpair.getSecond(); return v_prime.isEmpty(); } public void add(U sigma, Integer index) { this.add(sigma, index.intValue()); } public AbstractPersistenceTracker> getStateWithoutFiniteBarcodes() { IntervalTracker> result = new IntervalTracker>(); for (Entry, IntSparseFormalSum>>> entry: this.intervalTracker.annotatedBarcodes) { Integer dimension = entry.getKey(); for (ObjectObjectPair, IntSparseFormalSum> pair: entry.getValue()) { if (pair.getFirst().isInfinite()) { result.annotatedBarcodes.addInterval(dimension, pair.getFirst(), pair.getSecond()); } } } for (Integer key: this.intervalTracker.openIntervals.keySet()) { IntervalDescriptor> value = this.intervalTracker.openIntervals.get(key); result.openIntervals.put(key, value); } return result; } public AbstractPersistenceTracker> getState() { return this.intervalTracker; } public void remove(U sigma, Integer index) { this.remove(sigma, index.intValue()); } } ================================================ FILE: src/java/edu/stanford/math/plex4/homology/zigzag/IntervalDescriptor.java ================================================ /** * */ package edu.stanford.math.plex4.homology.zigzag; public class IntervalDescriptor { protected final T start; protected final G generator; protected final int dimension; public IntervalDescriptor(T start, int dimension, G generator) { super(); this.start = start; this.dimension = dimension; this.generator = generator; } /** * @return the start */ public T getStart() { return start; } /** * @return the dimension */ public int getDimension() { return dimension; } /** * @return the generator */ public G getGenerator() { return generator; } /* (non-Javadoc) * @see java.lang.Object#toString() */ @Override public String toString() { return "[dim=" + dimension + ", " + (start != null ? "start=" + start : "") + ", " + (generator != null ? "" + generator : "") + "]"; } /* (non-Javadoc) * @see java.lang.Object#hashCode() */ @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + dimension; result = prime * result + ((generator == null) ? 0 : generator.hashCode()); result = prime * result + ((start == null) ? 0 : start.hashCode()); return result; } /* (non-Javadoc) * @see java.lang.Object#equals(java.lang.Object) */ @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; IntervalDescriptor other = (IntervalDescriptor) obj; if (dimension != other.dimension) return false; if (generator == null) { if (other.generator != null) return false; } else if (!generator.equals(other.generator)) return false; if (start == null) { if (other.start != null) return false; } else if (!start.equals(other.start)) return false; return true; } } ================================================ FILE: src/java/edu/stanford/math/plex4/homology/zigzag/IntervalTracker.java ================================================ package edu.stanford.math.plex4.homology.zigzag; import java.util.HashMap; import java.util.Map; import edu.stanford.math.plex4.homology.barcodes.AnnotatedBarcodeCollection; import edu.stanford.math.plex4.homology.barcodes.BarcodeCollection; import edu.stanford.math.plex4.homology.barcodes.Interval; import edu.stanford.math.plex4.homology.barcodes.PersistenceInvariantDescriptor; import edu.stanford.math.primitivelib.utility.Infinity; public class IntervalTracker, G> implements AbstractPersistenceTracker { protected final Map> openIntervals = new HashMap>(); protected final AnnotatedBarcodeCollection annotatedBarcodes = new AnnotatedBarcodeCollection(); protected boolean useLeftClosedIntervals = true; protected boolean useRightClosedIntervals = true; protected int maxDimension = Infinity.Int.getPositiveInfinity(); public Map> getActiveGenerators() { return this.openIntervals; } public AnnotatedBarcodeCollection getInactiveGenerators() { return this.annotatedBarcodes; } public void setMaxDimension(int maxDimension) { this.maxDimension = maxDimension; } public void setUseLeftClosedIntervals(boolean value) { this.useLeftClosedIntervals = value; } public void setUseRightClosedIntervals(boolean value) { this.useRightClosedIntervals = value; } public boolean containsActiveInterval(K key) { return this.openIntervals.containsKey(key); } public void startInterval(K key, I startIndex, int dimension, G generator) { if (dimension > this.maxDimension) { return; } IntervalDescriptor descriptor = new IntervalDescriptor(startIndex, dimension, generator); this.openIntervals.put(key, descriptor); } public void endInterval(K key, I endIndex) { if (!this.openIntervals.containsKey(key)) { return; } IntervalDescriptor descriptor = this.openIntervals.get(key); if (this.useLeftClosedIntervals && this.useRightClosedIntervals) { if (endIndex.compareTo(descriptor.start) >= 0) { this.annotatedBarcodes.addInterval(descriptor.dimension, Interval.makeInterval(descriptor.start, endIndex, this.useLeftClosedIntervals, this.useRightClosedIntervals, false, false), descriptor.generator); } } else { if (endIndex.compareTo(descriptor.start) > 0) { this.annotatedBarcodes.addInterval(descriptor.dimension, Interval.makeInterval(descriptor.start, endIndex, this.useLeftClosedIntervals, this.useRightClosedIntervals, false, false), descriptor.generator); } } this.openIntervals.remove(key); } public void endAllIntervals(I endIndex) { for (K key: this.openIntervals.keySet()) { if (!this.openIntervals.containsKey(key)) { continue; } IntervalDescriptor descriptor = this.openIntervals.get(key); if (this.useLeftClosedIntervals && this.useRightClosedIntervals) { if (endIndex.compareTo(descriptor.start) >= 0) { this.annotatedBarcodes.addInterval(descriptor.dimension, Interval.makeInterval(descriptor.start, endIndex, this.useLeftClosedIntervals, this.useRightClosedIntervals, false, false), descriptor.generator); } } else { if (endIndex.compareTo(descriptor.start) > 0) { this.annotatedBarcodes.addInterval(descriptor.dimension, Interval.makeInterval(descriptor.start, endIndex, this.useLeftClosedIntervals, this.useRightClosedIntervals, false, false), descriptor.generator); } } } this.openIntervals.clear(); } public AnnotatedBarcodeCollection getAnnotatedBarcodes() { return (AnnotatedBarcodeCollection) PersistenceInvariantDescriptor.union(this.getFiniteAnnotatedBarcodes(), this.getInfiniteAnnotatedBarcodes()); } public AnnotatedBarcodeCollection getInfiniteAnnotatedBarcodes() { AnnotatedBarcodeCollection collection = new AnnotatedBarcodeCollection(); for (K key: this.openIntervals.keySet()) { IntervalDescriptor descriptor = this.openIntervals.get(key); collection.addInterval(descriptor.dimension, Interval.makeInterval(descriptor.start, null, this.useLeftClosedIntervals, this.useRightClosedIntervals, false, true), descriptor.generator); } return collection; } public AnnotatedBarcodeCollection getFiniteAnnotatedBarcodes() { return this.annotatedBarcodes; } public BarcodeCollection getBarcodes() { return BarcodeCollection.forgetGeneratorType(this.getAnnotatedBarcodes()); } public BarcodeCollection getInfiniteBarcodes() { return BarcodeCollection.forgetGeneratorType(this.getInfiniteAnnotatedBarcodes()); } public BarcodeCollection getFiniteBarcodes() { return BarcodeCollection.forgetGeneratorType(this.getFiniteAnnotatedBarcodes()); } @Override public String toString() { StringBuilder builder = new StringBuilder(); for (K key: this.openIntervals.keySet()) { IntervalDescriptor descriptor = this.openIntervals.get(key); builder.append(key.toString() + ": " + descriptor.toString()); builder.append("\n"); } builder.append(this.annotatedBarcodes.toString()); return builder.toString(); } /* public static AnnotatedIntervalTracker join(AnnotatedIntervalTracker X, AnnotatedIntervalTracker Z, Map map, int ZIndex) { AnnotatedIntervalTracker result = new AnnotatedIntervalTracker(); result.setUseRightClosedIntervals(true); Set processedZIndices = new HashSet(); for (L X_key: X.openIntervals.keySet()) { IntervalDescriptor X_descriptor = X.openIntervals.get(X_key); if (map.containsKey(X_key)) { L Z_key = map.get(X_key); IntervalDescriptor Z_descriptor = Z.openIntervals.get(Z_key); result.startInterval(Z_key, X_descriptor.start, Z_descriptor.dimension, Z_descriptor.generator); processedZIndices.add(map.get(X_key)); } else { result.startInterval(X_key, X_descriptor.start, X_descriptor.dimension, null); result.endInterval(X_key, ZIndex - 1); } } for (L Z_key: Z.openIntervals.keySet()) { if (processedZIndices.contains(Z_key)) { continue; } IntervalDescriptor Z_descriptor = Z.openIntervals.get(Z_key); result.startInterval(Z_key, Z_descriptor.start, Z_descriptor.dimension, Z_descriptor.generator); } for (Entry, U>>> barcode: X.annotatedBarcodes) { int dimension = barcode.getKey(); for (ObjectObjectPair, U> intervalPair: barcode.getValue()) { result.annotatedBarcodes.addInterval(dimension, intervalPair.getFirst(), null); } } return result; } */ } ================================================ FILE: src/java/edu/stanford/math/plex4/homology/zigzag/SimpleHomologyBasisTracker.java ================================================ package edu.stanford.math.plex4.homology.zigzag; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.Iterator; import java.util.List; import java.util.Set; import edu.stanford.math.plex4.homology.barcodes.AnnotatedBarcodeCollection; import edu.stanford.math.plex4.homology.barcodes.BarcodeCollection; import edu.stanford.math.plex4.homology.chain_basis.PrimitiveBasisElement; import edu.stanford.math.primitivelib.autogen.algebraic.IntAbstractField; import edu.stanford.math.primitivelib.autogen.formal_sum.IntAlgebraicFreeModule; import edu.stanford.math.primitivelib.autogen.formal_sum.IntSparseFormalSum; import edu.stanford.math.primitivelib.autogen.pair.ObjectObjectPair; import gnu.trove.THashMap; import gnu.trove.THashSet; import gnu.trove.TObjectIntHashMap; public class SimpleHomologyBasisTracker implements AbstractHomologyTracker> { /** * This is the field over which we perform the arithmetic computations. */ protected final IntAbstractField field; /** * This objects performs the chain computations. */ protected final IntAlgebraicFreeModule chainModule; /** * This comparator defines the ordering on the basis elements. */ protected final Comparator basisComparator; /** * This comparator provides the dictionary ordering on filtration value - basis element * pairs. */ protected final Comparator indexedComparator = new Comparator() { public int compare(U arg0, U arg1) { int i0 = objectIndexMap.get(arg0); int i1 = objectIndexMap.get(arg1); if (i0 > i1) { return 1; } if (i0 < i1) { return -1; } return basisComparator.compare(arg0, arg1); } }; THashMap> R = new THashMap>(); THashMap> V = new THashMap>(); /** * This maps a simplex to the set of columns containing the key as its low value. */ THashMap> lowMap = new THashMap>(); protected IntervalTracker> cachedTracker = null; protected final TObjectIntHashMap objectIndexMap = new TObjectIntHashMap(); protected final int minDimension, maxDimension; public SimpleHomologyBasisTracker(IntAbstractField field, Comparator basisComparator, int minDimension, int maxDimension) { this.field = field; this.chainModule = new IntAlgebraicFreeModule(this.field); this.basisComparator = basisComparator; this.minDimension = minDimension; this.maxDimension = maxDimension; } public void add(U sigma, Integer index) { U i = sigma; this.objectIndexMap.put(sigma, index); this.cachedTracker = null; // initialize V to be the identity matrix V.put(i, this.chainModule.createNewSum(this.field.valueOf(1), sigma)); IntSparseFormalSum boundary = BasisTrackingUtility.createNewSum(sigma.getBoundaryCoefficients(), sigma.getBoundaryArray()); // form the column R[i] which equals the boundary of the current simplex. // store the column as a column in R R.put(sigma, boundary); // compute low_R(i) U low_R_i = this.low(R.get(i)); // if the boundary of i is empty, then continue to next iteration since there // is nothing to process if (low_R_i == null) { return; } THashSet matchingLowSimplices = lowMap.get(low_R_i); while (matchingLowSimplices != null && !matchingLowSimplices.isEmpty()) { Iterator iterator = matchingLowSimplices.iterator(); U j = iterator.next(); int c = field.divide(R.get(i).getCoefficient(low_R_i), R.get(j).getCoefficient(low_R_i)); int negative_c = field.negate(c); //R.put(i, chainModule.subtract(R.get(i), chainModule.multiply(c, R.get(j)))); //V.put(i, chainModule.subtract(V.get(i), chainModule.multiply(c, V.get(j)))); this.chainModule.accumulate(R.get(i), R.get(j), negative_c); this.chainModule.accumulate(V.get(i), V.get(j), negative_c); // remove old low_R(i) entry //lowMap.get(low_R_i).remove(i); // recompute low_R(i) low_R_i = this.low(R.get(i)); matchingLowSimplices = lowMap.get(low_R_i); } // store the low value in the map if (low_R_i != null) { if (!lowMap.containsKey(low_R_i)) { lowMap.put(low_R_i, new THashSet()); } lowMap.get(low_R_i).add(i); } } private U low(IntSparseFormalSum intSparseFormalSum) { return BasisTrackingUtility.low(intSparseFormalSum, this.indexedComparator); } public IntervalTracker> getState() { if (this.cachedTracker != null) { return this.cachedTracker; } IntervalTracker> tracker = new IntervalTracker>(); tracker.setUseLeftClosedIntervals(true); tracker.setUseRightClosedIntervals(false); Set births = new THashSet(); List keySet = new ArrayList(R.keySet()); Collections.sort(keySet, this.indexedComparator); int key = 0; for (U i: keySet) { U low_R_i = this.low(R.get(i)); int dimension = i.getDimension(); if (low_R_i == null) { if (dimension <= this.maxDimension && dimension >= this.minDimension) { births.add(i); } } else { // simplex i kills low_R_i births.remove(low_R_i); births.remove(i); int start = this.objectIndexMap.get(low_R_i); int end = this.objectIndexMap.get(i); if (end > start) { dimension = low_R_i.getDimension(); if (dimension <= this.maxDimension && dimension >= this.minDimension) { //barcodeCollection.addInterval(stream.getDimension(low_R_i), start, end, R.get(i)); tracker.startInterval(key, start, dimension, R.get(i)); tracker.endInterval(key, end); } } } key++; } // the elements in birth are the ones that are never killed // these correspond to semi-infinite intervals for (U i: births) { int dimension = i.getDimension(); if (dimension <= this.maxDimension && dimension >= this.minDimension) { //barcodeCollection.addRightInfiniteInterval(stream.getDimension(i), stream.getFiltrationIndex(i), V.get(i)); int start = this.objectIndexMap.get(i); tracker.startInterval(key, start, dimension, V.get(i)); } key++; } this.cachedTracker = tracker; return tracker; } public IntervalTracker> getStateWithoutFiniteBarcodes(int startOverride) { IntervalTracker> tracker = new IntervalTracker>(); tracker.setUseLeftClosedIntervals(true); tracker.setUseRightClosedIntervals(false); Set births = new THashSet(); List keySet = new ArrayList(R.keySet()); Collections.sort(keySet, this.indexedComparator); int key = 0; for (U i: keySet) { U low_R_i = this.low(R.get(i)); int dimension = i.getDimension(); if (low_R_i == null) { if (dimension <= this.maxDimension && dimension >= this.minDimension) { births.add(i); } } else { // simplex i kills low_R_i births.remove(low_R_i); births.remove(i); } key++; } // the elements in birth are the ones that are never killed // these correspond to semi-infinite intervals for (U i: births) { int dimension = i.getDimension(); if (dimension <= this.maxDimension && dimension >= this.minDimension) { //int start = this.objectIndexMap.get(i); tracker.startInterval(key, startOverride, dimension, V.get(i)); } key++; } return tracker; } public boolean isBoundary(IntSparseFormalSum generator) { ObjectObjectPair, IntSparseFormalSum> reduction = BasisTrackingUtility.reduce(this.R, generator, this.indexedComparator, this.chainModule); IntSparseFormalSum remainder = reduction.getSecond(); return remainder.isEmpty(); } public void remove(U sigma, Integer index) { throw new UnsupportedOperationException(); } public IntervalTracker> getIntervalTracker() { return this.getState(); } public AnnotatedBarcodeCollection> getFiniteAnnotatedBarcodes() { IntervalTracker> intervalTracker = this.getState(); return intervalTracker.getFiniteAnnotatedBarcodes(); } public AnnotatedBarcodeCollection> getInfiniteAnnotatedBarcodes() { IntervalTracker> intervalTracker = this.getState(); return intervalTracker.getInfiniteAnnotatedBarcodes(); } public AnnotatedBarcodeCollection> getAnnotatedBarcodes() { IntervalTracker> intervalTracker = this.getState(); return intervalTracker.getAnnotatedBarcodes(); } public BarcodeCollection getFiniteBarcodes() { IntervalTracker> intervalTracker = this.getState(); return intervalTracker.getFiniteBarcodes(); } public BarcodeCollection getInfiniteBarcodes() { IntervalTracker> intervalTracker = this.getState(); return intervalTracker.getInfiniteBarcodes(); } public BarcodeCollection getBarcodes() { IntervalTracker> intervalTracker = this.getState(); return intervalTracker.getBarcodes(); } } ================================================ FILE: src/java/edu/stanford/math/plex4/homology/zigzag/ZigZagHomology.java ================================================ package edu.stanford.math.plex4.homology.zigzag; import java.util.Comparator; import edu.stanford.math.plex4.homology.barcodes.BarcodeCollection; import edu.stanford.math.plex4.homology.chain_basis.PrimitiveBasisElement; import edu.stanford.math.plex4.homology.interfaces.AbstractPersistenceAlgorithm; import edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream; import edu.stanford.math.plex4.streams.utility.FilteredComparator; import edu.stanford.math.primitivelib.autogen.algebraic.IntAbstractField; import edu.stanford.math.primitivelib.autogen.formal_sum.IntAlgebraicFreeModule; public class ZigZagHomology extends AbstractPersistenceAlgorithm { /** * This is the field over which we perform the arithmetic computations. */ protected final IntAbstractField field; /** * This objects performs the chain computations. */ protected final IntAlgebraicFreeModule chainModule; /** * This comparator defines the ordering on the basis elements. */ protected final Comparator basisComparator; /** * This comparator provides the dictionary ordering on filtration value - basis element * pairs. */ protected Comparator filteredComparator = null; /** * This stores the minimum dimension for which to compute (co)homology. */ protected int minDimension = 0; /** * This stores the maximum dimension for which to compute (co)homology. */ protected int maxDimension = 2; /** * This constructor initializes the object with a field and a comparator on the basis type. * * @param field a field structure on the type int * @param basisComparator a comparator on the basis type U * @param minDimension the minimum dimension to compute * @param maxDimension the maximum dimension to compute */ public ZigZagHomology(IntAbstractField field, Comparator basisComparator, int minDimension, int maxDimension) { this.field = field; this.chainModule = new IntAlgebraicFreeModule(this.field); this.basisComparator = basisComparator; this.minDimension = minDimension; this.maxDimension = maxDimension; } /** * This function simply updates the filtered comparator to the one induced by the given filtered stream. * * @param stream the AbstractFilteredStream that provides the filtration index information */ protected void initializeFilteredComparator(AbstractFilteredStream stream) { this.filteredComparator = new FilteredComparator(stream, this.basisComparator); } public BarcodeCollection computeIndexIntervals(AbstractFilteredStream stream) { this.initializeFilteredComparator(stream); SimpleHomologyBasisTracker basisTracker = new SimpleHomologyBasisTracker(this.field, this.basisComparator, this.minDimension, this.maxDimension); for (U sigma : stream) { /* * Do not process simplices of higher dimension than maxDimension. */ if (stream.getDimension(sigma) < this.minDimension) { continue; } if (stream.getDimension(sigma) > this.maxDimension + 1) { continue; } basisTracker.add(sigma, stream.getFiltrationIndex(sigma)); } return BarcodeCollection.forgetGeneratorType(basisTracker.getAnnotatedBarcodes().filterByMaxDimension(maxDimension)); } } ================================================ FILE: src/java/edu/stanford/math/plex4/homology/zigzag/bootstrap/InducedHomologyMappingUtility.java ================================================ package edu.stanford.math.plex4.homology.zigzag.bootstrap; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Set; import edu.stanford.math.plex4.homology.barcodes.Interval; import edu.stanford.math.plex4.homology.chain_basis.PrimitiveBasisElement; import edu.stanford.math.plex4.homology.zigzag.AbstractHomologyTracker; import edu.stanford.math.plex4.homology.zigzag.AbstractPersistenceTracker; import edu.stanford.math.plex4.homology.zigzag.IntervalDescriptor; import edu.stanford.math.plex4.homology.zigzag.IntervalTracker; import edu.stanford.math.primitivelib.autogen.algebraic.IntAbstractModule; import edu.stanford.math.primitivelib.autogen.formal_sum.IntAlgebraicFreeModule; import edu.stanford.math.primitivelib.autogen.formal_sum.IntSparseFormalSum; import edu.stanford.math.primitivelib.autogen.functional.ObjectObjectFunction; import edu.stanford.math.primitivelib.autogen.pair.ObjectObjectPair; import gnu.trove.TObjectIntIterator; public class InducedHomologyMappingUtility { public static , U extends PrimitiveBasisElement> IntervalTracker> include(AbstractHomologyTracker> X, AbstractHomologyTracker> Z, AbstractHomologyTracker> Y, final IntervalTracker> accumulator, IntAlgebraicFreeModule chainModule, I X_index, I Y_index) { IntervalTracker> result = new IntervalTracker>(); result.setUseLeftClosedIntervals(true); result.setUseRightClosedIntervals(true); ObjectObjectFunction, IntSparseFormalSum> inclusionMap = InducedHomologyMappingUtility.getInclusionMap(); Map XZ_map = InducedHomologyMappingUtility.computeInducedMap(X.getState(), Z, chainModule, inclusionMap); Map YZ_map = InducedHomologyMappingUtility.computeInducedMap(Y.getState(), Z, chainModule, inclusionMap); Map> XY_map = new HashMap>(); Map> ZY_map = reverse(YZ_map); for (Integer X_key: XZ_map.keySet()) { Integer Z_key = XZ_map.get(X_key); if (ZY_map.containsKey(Z_key)) { for (Integer Y_key: ZY_map.get(Z_key)) { if (!XY_map.containsKey(X_key)) { XY_map.put(X_key, new ArrayList()); } XY_map.get(X_key).add(Y_key); } } } Set X_processedIndices = new HashSet(); Set Y_processedIndices = new HashSet(); List X_keys = new ArrayList(XY_map.keySet()); Collections.sort(X_keys); for (Integer X_key: X_keys) { List Y_keys = XY_map.get(X_key); if (X_processedIndices.contains(X_key)) { continue; } if (Y_keys.size() > 0) { Integer Y_key = Y_keys.get(0); if (Y_processedIndices.contains(Y_key)) { continue; } X_processedIndices.add(X_key); Y_processedIndices.add(Y_key); IntervalDescriptor> X_descriptor = accumulator.getActiveGenerators().get(X_key); result.startInterval(Y_key, X_descriptor.getStart(), X_descriptor.getDimension(), X_descriptor.getGenerator()); } } X_keys = new ArrayList(accumulator.getActiveGenerators().keySet()); Collections.sort(X_keys); for (Integer X_key: X_keys) { IntervalDescriptor> X_descriptor = accumulator.getActiveGenerators().get(X_key); if (X_processedIndices.contains(X_key)) { continue; } Integer tempKey = 0; while (result.containsActiveInterval(tempKey)) { tempKey++; } result.startInterval(tempKey, X_descriptor.getStart(), X_descriptor.getDimension(), X_descriptor.getGenerator()); result.endInterval(tempKey, X_index); } List Y_keys = new ArrayList(Y.getState().getActiveGenerators().keySet()); for (Integer Y_key: Y_keys) { if (Y_processedIndices.contains(Y_key)) { continue; } IntervalDescriptor> Y_descriptor = Y.getState().getActiveGenerators().get(Y_key); result.startInterval(Y_key, Y_index, Y_descriptor.getDimension(), Y_descriptor.getGenerator()); } for (Entry, IntSparseFormalSum>>> entry: accumulator.getInactiveGenerators()) { int dimension = entry.getKey(); for (ObjectObjectPair, IntSparseFormalSum> pair: entry.getValue()) { result.getFiniteAnnotatedBarcodes().addInterval(dimension, pair.getFirst(), pair.getSecond()); } } return result; } public static , U extends PrimitiveBasisElement, V extends ObjectObjectPair> IntervalTracker> project(AbstractHomologyTracker> X, AbstractHomologyTracker> Z, AbstractHomologyTracker> Y, AbstractPersistenceTracker> accumulator, IntAlgebraicFreeModule chainModule, IntAlgebraicFreeModule Z_chainModule, I X_index, I Y_index) { IntervalTracker> result = new IntervalTracker>(); ObjectObjectFunction, IntSparseFormalSum> firstProjection = InducedHomologyMappingUtility.getFirstGradedProjectionMap(chainModule, Z_chainModule); ObjectObjectFunction, IntSparseFormalSum> secondProjection = InducedHomologyMappingUtility.getSecondGradedProjectionMap(chainModule, Z_chainModule); Map ZX_map = computeInducedMap(Z.getState(), X, chainModule, firstProjection); Map ZY_map = computeInducedMap(Z.getState(), Y, chainModule, secondProjection); Map> XZ_map = reverse(ZX_map); Map XY_map = new HashMap(); for (Integer X_key: XZ_map.keySet()) { for (Integer Z_key: XZ_map.get(X_key)) { if (ZY_map.containsKey(Z_key)) { XY_map.put(X_key, ZY_map.get(Z_key)); } } } Set X_processedIndices = new HashSet(); Set Y_processedIndices = new HashSet(); for (Integer X_key: accumulator.getActiveGenerators().keySet()) { IntervalDescriptor> X_descriptor = accumulator.getActiveGenerators().get(X_key); if (XY_map.containsKey(X_key)) { Integer Y_key = XY_map.get(X_key); result.startInterval(Y_key, X_descriptor.getStart(), X_descriptor.getDimension(), X_descriptor.getGenerator()); X_processedIndices.add(X_key); Y_processedIndices.add(Y_key); } else { Integer tempKey = 0; while (result.containsActiveInterval(tempKey)) { tempKey++; } result.startInterval(X_key, X_descriptor.getStart(), X_descriptor.getDimension(), X_descriptor.getGenerator()); result.endInterval(X_key, X_index); } } for (Integer Y_key: Y.getState().getActiveGenerators().keySet()) { if (Y_processedIndices.contains(Y_key)) { continue; } IntervalDescriptor> Y_descriptor = Y.getState().getActiveGenerators().get(Y_key); result.startInterval(Y_key, Y_index, Y_descriptor.getDimension(), Y_descriptor.getGenerator()); } for (Entry, IntSparseFormalSum>>> entry: accumulator.getInactiveGenerators()) { int dimension = entry.getKey(); for (ObjectObjectPair, IntSparseFormalSum> pair: entry.getValue()) { result.getFiniteAnnotatedBarcodes().addInterval(dimension, pair.getFirst(), pair.getSecond()); } } return result; } public static , I2 extends Comparable, G1, G2> Map computeInducedMap(AbstractPersistenceTracker A_state, AbstractHomologyTracker B, IntAbstractModule chainModule, ObjectObjectFunction chainMap) { AbstractPersistenceTracker B_state = B.getState(); Map> A_generators = A_state.getActiveGenerators(); Map> B_generators = B_state.getActiveGenerators(); Map joinMap = new HashMap(); for (K1 A_key: A_generators.keySet()) { int A_dimension = A_generators.get(A_key).getDimension(); G1 A_chain = A_generators.get(A_key).getGenerator(); G2 image = chainMap.evaluate(A_chain); for (K2 B_key: B_generators.keySet()) { int B_dimension = B_generators.get(B_key).getDimension(); if (B_dimension != A_dimension) { continue; } G2 B_chain = B_generators.get(B_key).getGenerator(); G2 difference = chainModule.subtract(B_chain, image); if (B.isBoundary(difference)) { joinMap.put(A_key, B_key); } } } return joinMap; } public static , G1, G2> IntervalTracker join(AbstractPersistenceTracker A_state, AbstractPersistenceTracker B_state, Map joinMap, I joinIndex, boolean reversed) { Map> A_generators = A_state.getActiveGenerators(); Map> B_generators = B_state.getActiveGenerators(); Set processedAIndices = new HashSet(); Set processedBIndices = new HashSet(); IntervalTracker result = new IntervalTracker(); for (Entry entry: joinMap.entrySet()) { K B_key, A_key; if (!reversed) { A_key = entry.getKey(); B_key = entry.getValue(); } else { B_key = entry.getKey(); A_key = entry.getValue(); } IntervalDescriptor A_descriptor = A_generators.get(A_key); IntervalDescriptor B_descriptor = B_generators.get(B_key); result.startInterval(B_key, A_descriptor.getStart(), B_descriptor.getDimension(), B_descriptor.getGenerator()); processedBIndices.add(B_key); processedAIndices.add(A_key); } for (K A_key: A_generators.keySet()) { if (processedAIndices.contains(A_key)) { continue; } IntervalDescriptor A_descriptor = A_generators.get(A_key); result.startInterval(A_key, A_descriptor.getStart(), A_descriptor.getDimension(), null); result.endInterval(A_key, joinIndex); } for (K B_key: B_generators.keySet()) { if (processedBIndices.contains(B_key)) { continue; } IntervalDescriptor B_descriptor = B_generators.get(B_key); result.startInterval(B_key, B_descriptor.getStart(), B_descriptor.getDimension(), B_descriptor.getGenerator()); } for (Entry, G1>>> entry: A_state.getInactiveGenerators()) { int dimension = entry.getKey(); for (ObjectObjectPair, G1> pair: entry.getValue()) { result.getFiniteAnnotatedBarcodes().addInterval(dimension, pair.getFirst(), null); } } return result; } public static , Y> Map> reverse(Map map) { Map> result = new HashMap>(); for (X key: map.keySet()) { Y value = map.get(key); if (!result.containsKey(value)) { result.put(value, new ArrayList()); } result.get(value).add(key); } for (Y key: result.keySet()) { Collections.sort(result.get(key)); } return result; } public static ObjectObjectFunction, IntSparseFormalSum> getInclusionMap() { return new ObjectObjectFunction, IntSparseFormalSum>() { public IntSparseFormalSum evaluate(IntSparseFormalSum arg0) { return arg0; } }; } public static > ObjectObjectFunction, IntSparseFormalSum> getFirstGradedProjectionMap(final IntAlgebraicFreeModule chainModule, final IntAlgebraicFreeModule dummy) { return new ObjectObjectFunction, IntSparseFormalSum>() { public IntSparseFormalSum evaluate(IntSparseFormalSum chain) { if (chain.isEmpty()) { return chainModule.createNewSum(); } int dimension = 0; { TObjectIntIterator iterator = chain.iterator(); if (iterator.hasNext()) { iterator.advance(); dimension = iterator.key().getFirst().getDimension() + iterator.key().getSecond().getDimension(); } } return SimplexStreamUtility.filterByDimension(SimplexStreamUtility.projectFirst(chain, chainModule), dimension); } }; } public static > ObjectObjectFunction, IntSparseFormalSum> getSecondGradedProjectionMap(final IntAlgebraicFreeModule chainModule, final IntAlgebraicFreeModule dummy) { return new ObjectObjectFunction, IntSparseFormalSum>() { public IntSparseFormalSum evaluate(IntSparseFormalSum chain) { if (chain.isEmpty()) { return chainModule.createNewSum(); } int dimension = 0; { TObjectIntIterator iterator = chain.iterator(); if (iterator.hasNext()) { iterator.advance(); dimension = iterator.key().getFirst().getDimension() + iterator.key().getSecond().getDimension(); } } return SimplexStreamUtility.filterByDimension(SimplexStreamUtility.projectSecond(chain, chainModule), dimension); } }; } } ================================================ FILE: src/java/edu/stanford/math/plex4/homology/zigzag/bootstrap/SimplexStreamUtility.java ================================================ package edu.stanford.math.plex4.homology.zigzag.bootstrap; import edu.stanford.math.plex4.homology.chain_basis.PrimitiveBasisElement; import edu.stanford.math.primitivelib.autogen.formal_sum.IntAlgebraicFreeModule; import edu.stanford.math.primitivelib.autogen.formal_sum.IntSparseFormalSum; import edu.stanford.math.primitivelib.autogen.pair.ObjectObjectPair; import gnu.trove.TObjectIntIterator; public class SimplexStreamUtility { public static IntSparseFormalSum projectFirst(IntSparseFormalSum> chain, IntAlgebraicFreeModule chainModule) { IntSparseFormalSum result = new IntSparseFormalSum(); for (TObjectIntIterator> iterator = chain.iterator(); iterator.hasNext(); ) { iterator.advance(); chainModule.accumulate(result, iterator.key().getFirst(), iterator.value()); } return result; } public static IntSparseFormalSum projectSecond(IntSparseFormalSum> chain, IntAlgebraicFreeModule chainModule) { IntSparseFormalSum result = new IntSparseFormalSum(); for (TObjectIntIterator> iterator = chain.iterator(); iterator.hasNext(); ) { iterator.advance(); chainModule.accumulate(result, iterator.key().getSecond(), iterator.value()); } return result; } public static IntSparseFormalSum filterByDimension(IntSparseFormalSum chain, int dimension) { IntSparseFormalSum result = new IntSparseFormalSum(); for (TObjectIntIterator iterator = chain.iterator(); iterator.hasNext(); ) { iterator.advance(); if (iterator.key().getDimension() == dimension) { result.put(iterator.value(), iterator.key()); } } return result; } } ================================================ FILE: src/java/edu/stanford/math/plex4/homology/zigzag/bootstrap/VietorisRipsBootstrapper.java ================================================ package edu.stanford.math.plex4.homology.zigzag.bootstrap; import java.util.ArrayList; import java.util.List; import edu.stanford.math.plex4.homology.barcodes.AnnotatedBarcodeCollection; import edu.stanford.math.plex4.homology.barcodes.BarcodeCollection; import edu.stanford.math.plex4.homology.chain_basis.Simplex; import edu.stanford.math.plex4.homology.chain_basis.SimplexComparator; import edu.stanford.math.plex4.homology.zigzag.IntervalTracker; import edu.stanford.math.plex4.homology.zigzag.SimpleHomologyBasisTracker; import edu.stanford.math.plex4.metric.impl.EuclideanMetricSpace; import edu.stanford.math.plex4.streams.impl.VietorisRipsStream; import edu.stanford.math.plex4.utility.ArrayUtility; import edu.stanford.math.plex4.utility.RandomUtility; import edu.stanford.math.primitivelib.algebraic.impl.ModularIntField; import edu.stanford.math.primitivelib.autogen.algebraic.IntAbstractField; import edu.stanford.math.primitivelib.autogen.formal_sum.IntAlgebraicFreeModule; import edu.stanford.math.primitivelib.autogen.formal_sum.IntSparseFormalSum; public class VietorisRipsBootstrapper { private final double[][] points; private final List indexSelections; IntAbstractField intField = ModularIntField.getInstance(2); protected final IntAlgebraicFreeModule chainModule = new IntAlgebraicFreeModule(this.intField); private final double maxDistance; private final int maxDimension; public VietorisRipsBootstrapper(double[][] points, double maxDistance, int maxDimension, List indexSelections) { this.points = points; this.maxDimension = maxDimension; this.maxDistance = maxDistance; this.indexSelections = new ArrayList(); for (int i = 0; i < indexSelections.size(); i++) { int[] selection = indexSelections.get(i); this.indexSelections.add(ArrayUtility.makeMonotone(selection)); } } public VietorisRipsBootstrapper(double[][] points, double maxDistance, int maxDimension, int numSelections, int selectionSize) { this.points = points; this.indexSelections = new ArrayList(); this.maxDimension = maxDimension; this.maxDistance = maxDistance; selectionSize = Math.min(points.length, selectionSize); for (int selection = 0; selection < numSelections; selection++) { int[] set = RandomUtility.randomSubset(selectionSize, points.length).toArray(); set = ArrayUtility.makeMonotone(set); this.indexSelections.add(set); } } public int[] getSubset(int index) { return this.indexSelections.get(index); } public BarcodeCollection performBootstrap() { int[] i_indices = this.indexSelections.get(0); VietorisRipsStream X_stream = new VietorisRipsStream(new EuclideanMetricSpace(ArrayUtility.getSubset(points, i_indices)), maxDistance, maxDimension + 1, i_indices); X_stream.finalizeStream(); VietorisRipsStream Y_stream; IntervalTracker> result = null; SimpleHomologyBasisTracker ZTracker = null; SimpleHomologyBasisTracker XTracker = null; SimpleHomologyBasisTracker YTracker = null; for (int j = 1; j < this.indexSelections.size(); j++) { if (XTracker == null) { XTracker = new SimpleHomologyBasisTracker(intField, SimplexComparator.getInstance(), 0, this.maxDimension); for (Simplex x: X_stream) { XTracker.add(x, X_stream.getFiltrationIndex(x)); } System.out.println("Barcodes for X_" + (j - 1)); AnnotatedBarcodeCollection> XBarcodes = XTracker.getAnnotatedBarcodes(); System.out.println(XBarcodes.toString()); } int[] j_indices = this.indexSelections.get(j); Y_stream = new VietorisRipsStream(new EuclideanMetricSpace(ArrayUtility.getSubset(points, j_indices)), maxDistance, maxDimension + 1, j_indices); Y_stream.finalizeStream(); YTracker = new SimpleHomologyBasisTracker(intField, SimplexComparator.getInstance(), 0, this.maxDimension); for (Simplex y: Y_stream) { YTracker.add(y, Y_stream.getFiltrationIndex(y)); } int[] ij_indices = ArrayUtility.union(i_indices, j_indices); VietorisRipsStream Z_stream = new VietorisRipsStream(new EuclideanMetricSpace(ArrayUtility.getSubset(points, ij_indices)), maxDistance, maxDimension + 1, ij_indices); Z_stream.finalizeStream(); ZTracker = new SimpleHomologyBasisTracker(intField, SimplexComparator.getInstance(), 0, this.maxDimension); for (Simplex z: Z_stream) { ZTracker.add(z, Z_stream.getFiltrationIndex(z)); } System.out.println("Barcodes for X_" + (j-1) + "," + (j)); AnnotatedBarcodeCollection> ZBarcodes = ZTracker.getAnnotatedBarcodes(); System.out.println(ZBarcodes.toString()); System.out.println("Barcodes for X_" + (j)); AnnotatedBarcodeCollection> YBarcodes = YTracker.getAnnotatedBarcodes(); System.out.println(YBarcodes.toString()); if (result == null) { result = XTracker.getStateWithoutFiniteBarcodes(j - 1); result.setUseLeftClosedIntervals(true); result.setUseRightClosedIntervals(true); } result = InducedHomologyMappingUtility.include(XTracker, ZTracker, YTracker, result, chainModule, (j - 1), j); X_stream = Y_stream; XTracker = YTracker; i_indices = j_indices; } result.endAllIntervals(this.indexSelections.size() - 1); return BarcodeCollection.forgetGeneratorType(result.getAnnotatedBarcodes().filterByMaxDimension(maxDimension)); } } ================================================ FILE: src/java/edu/stanford/math/plex4/homology/zigzag/bootstrap/WitnessBootstrapper.java ================================================ package edu.stanford.math.plex4.homology.zigzag.bootstrap; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import edu.stanford.math.plex4.homology.barcodes.AnnotatedBarcodeCollection; import edu.stanford.math.plex4.homology.barcodes.BarcodeCollection; import edu.stanford.math.plex4.homology.chain_basis.Simplex; import edu.stanford.math.plex4.homology.chain_basis.SimplexComparator; import edu.stanford.math.plex4.homology.chain_basis.SimplexPair; import edu.stanford.math.plex4.homology.chain_basis.SimplexPairComparator; import edu.stanford.math.plex4.homology.zigzag.IntervalTracker; import edu.stanford.math.plex4.homology.zigzag.SimpleHomologyBasisTracker; import edu.stanford.math.plex4.metric.interfaces.AbstractSearchableMetricSpace; import edu.stanford.math.plex4.metric.landmark.LandmarkSelector; import edu.stanford.math.plex4.metric.landmark.RandomLandmarkSelector; import edu.stanford.math.plex4.streams.impl.WitnessBicomplex; import edu.stanford.math.plex4.streams.impl.WitnessStream; import edu.stanford.math.primitivelib.algebraic.impl.ModularIntField; import edu.stanford.math.primitivelib.autogen.algebraic.IntAbstractField; import edu.stanford.math.primitivelib.autogen.formal_sum.IntAlgebraicFreeModule; import edu.stanford.math.primitivelib.autogen.formal_sum.IntSparseFormalSum; public class WitnessBootstrapper { protected final AbstractSearchableMetricSpace metricSpace; protected final List> indexSelections; protected final IntAbstractField intField = ModularIntField.getInstance(2); protected final IntAlgebraicFreeModule chainModule = new IntAlgebraicFreeModule(this.intField); protected final IntAlgebraicFreeModule Z_chainModule = new IntAlgebraicFreeModule(this.intField); protected final int maxDimension; protected final double maxDistance; public WitnessBootstrapper(AbstractSearchableMetricSpace metricSpace, List> indexSelections, int maxDimension, double maxDistance) { this.metricSpace = metricSpace; this.indexSelections = indexSelections; this.maxDimension = maxDimension; this.maxDistance = maxDistance; } public LandmarkSelector getLandmarkSelector(int index) { return this.indexSelections.get(index); } public WitnessBootstrapper(AbstractSearchableMetricSpace metricSpace, double maxDistance, int maxDimension, int numSelections, int selectionSize) { this.metricSpace = metricSpace; this.indexSelections = new ArrayList>(); this.maxDimension = maxDimension; this.maxDistance = maxDistance; selectionSize = Math.min(metricSpace.size(), selectionSize); for (int selection = 0; selection < numSelections; selection++) { LandmarkSelector selector = new RandomLandmarkSelector(metricSpace, selectionSize); this.indexSelections.add(selector); } } public BarcodeCollection performProjectionBootstrap() { return performProjectionBootstrap(null); } public BarcodeCollection performProjectionBootstrap(int[] expectedBettiNumbers) { WitnessStream X_stream = new WitnessStream(this.metricSpace, indexSelections.get(0), maxDimension + 1, maxDistance, indexSelections.get(0).getLandmarkPoints()); X_stream.setPlex3Compatbility(false); X_stream.finalizeStream(); WitnessStream Y_stream = null; IntervalTracker> result = null; SimpleHomologyBasisTracker ZTracker = null; SimpleHomologyBasisTracker XTracker = null; SimpleHomologyBasisTracker YTracker = null; for (int j = 1; j < this.indexSelections.size(); j++) { if (XTracker == null) { XTracker = new SimpleHomologyBasisTracker(intField, SimplexComparator.getInstance(), 0, maxDimension); XTracker.getIntervalTracker().setUseRightClosedIntervals(false); XTracker.getIntervalTracker().setMaxDimension(maxDimension); for (Simplex x: X_stream) { XTracker.add(x, X_stream.getFiltrationIndex(x)); } System.out.println("Barcodes for X_" + (j - 1)); AnnotatedBarcodeCollection> XBarcodes = XTracker.getAnnotatedBarcodes(); if (expectedBettiNumbers != null && !Arrays.equals(XBarcodes.getBettiSequence(), expectedBettiNumbers)) { this.indexSelections.set(0, new RandomLandmarkSelector(metricSpace, this.indexSelections.get(0).getLandmarkPoints().length)); X_stream = new WitnessStream(this.metricSpace, indexSelections.get(0), maxDimension + 1, maxDistance, indexSelections.get(0).getLandmarkPoints()); j--; continue; } System.out.println(XBarcodes.toString()); } AnnotatedBarcodeCollection> YBarcodes = null; if (expectedBettiNumbers != null) { boolean found = false; while (!found) { Y_stream = new WitnessStream(this.metricSpace, indexSelections.get(j), maxDimension + 1, maxDistance, indexSelections.get(j).getLandmarkPoints()); Y_stream.setPlex3Compatbility(false); Y_stream.finalizeStream(); YTracker = new SimpleHomologyBasisTracker(intField, SimplexComparator.getInstance(), 0, maxDimension); YTracker.getIntervalTracker().setUseRightClosedIntervals(false); YTracker.getIntervalTracker().setMaxDimension(maxDimension); for (Simplex y: Y_stream) { YTracker.add(y, Y_stream.getFiltrationIndex(y)); } YBarcodes = YTracker.getAnnotatedBarcodes(); if (Arrays.equals(YBarcodes.getInfiniteIntervals().getBettiSequence(), expectedBettiNumbers)) { found = true; } else { System.out.println("Barcodes " + Arrays.toString(YBarcodes.getInfiniteIntervals().getBettiSequence()) + " do not match the expected ones: " + Arrays.toString(expectedBettiNumbers)); LandmarkSelector selector = new RandomLandmarkSelector(metricSpace, this.indexSelections.get(j).size()); this.indexSelections.set(j, selector); } } } else { Y_stream = new WitnessStream(this.metricSpace, indexSelections.get(j), maxDimension + 1, maxDistance, indexSelections.get(j).getLandmarkPoints()); Y_stream.setPlex3Compatbility(false); Y_stream.finalizeStream(); YTracker = new SimpleHomologyBasisTracker(intField, SimplexComparator.getInstance(), 0, maxDimension); YTracker.getIntervalTracker().setUseRightClosedIntervals(false); YTracker.getIntervalTracker().setMaxDimension(maxDimension); for (Simplex y: Y_stream) { YTracker.add(y, Y_stream.getFiltrationIndex(y)); } YBarcodes = YTracker.getAnnotatedBarcodes(); } WitnessBicomplex Z_stream = new WitnessBicomplex(X_stream, Y_stream, maxDimension); Z_stream.finalizeStream(); Z_stream.ensureAllFaces(); ZTracker = new SimpleHomologyBasisTracker(intField, SimplexPairComparator.getInstance(), 0, maxDimension); ZTracker.getIntervalTracker().setUseRightClosedIntervals(false); ZTracker.getIntervalTracker().setMaxDimension(maxDimension); for (SimplexPair z: Z_stream) { ZTracker.add(z, Z_stream.getFiltrationIndex(z)); } //System.out.println("Barcodes for X_" + (j-1) + "," + (j)); //AnnotatedBarcodeCollection> ZBarcodes = ZTracker.getAnnotatedBarcodes(); //System.out.println(ZBarcodes.toString()); System.out.println("Barcodes for X_" + (j)); System.out.println(YBarcodes.toString()); if (result == null) { result = XTracker.getStateWithoutFiniteBarcodes(j - 1); result.setUseLeftClosedIntervals(true); result.setUseRightClosedIntervals(true); } result = InducedHomologyMappingUtility.project(XTracker, ZTracker, YTracker, result, chainModule, Z_chainModule, (j - 1), j); X_stream = Y_stream; XTracker = YTracker; } result.endAllIntervals(this.indexSelections.size() - 1); return BarcodeCollection.forgetGeneratorType(result.getAnnotatedBarcodes().filterByMaxDimension(maxDimension)); } } ================================================ FILE: src/java/edu/stanford/math/plex4/interop/Plex3PersistenceAlgorithm.java ================================================ package edu.stanford.math.plex4.interop; import edu.stanford.math.plex.Persistence; import edu.stanford.math.plex.PersistenceInterval; import edu.stanford.math.plex.SimplexStream; import edu.stanford.math.plex4.homology.barcodes.BarcodeCollection; import edu.stanford.math.plex4.homology.interfaces.AbstractPersistenceAlgorithm; import edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream; import edu.stanford.math.primitivelib.autogen.array.IntArrayMath; /** * This class encapsulates the functionality of the original version of javaPlex. It implements the * AbstractPersistenceAlgorithm interface for easy interoperability and testing. * Essentially, it computes the persistent homology of a plex 4 stream using the plex 3 algorithm. * * @author Andrew Tausz * */ public class Plex3PersistenceAlgorithm extends AbstractPersistenceAlgorithm { private final int maxDimension; /** * This constructor initializes the class with the maximum dimension to compute persistence for. * * @param maxDimension the maximum dimension */ public Plex3PersistenceAlgorithm(int maxDimension) { this.maxDimension = maxDimension; } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.new_version.AbstractPersistenceAlgorithm#computeIntervals(edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream) */ public BarcodeCollection computeIndexIntervals(AbstractFilteredStream plex4Stream) { SimplexStream.Stack stack = new SimplexStream.Stack(plex4Stream.getMaximumFiltrationIndex() + 1, this.maxDimension); for (edu.stanford.math.plex4.homology.chain_basis.Simplex plex4Simplex: plex4Stream) { stack.push(edu.stanford.math.plex.Simplex.getSimplex(IntArrayMath.scalarAdd(plex4Simplex.getVertices(), 1), plex4Stream.getFiltrationIndex(plex4Simplex))); } Persistence persistenceInstance = new Persistence(); PersistenceInterval[] rawIntervals = persistenceInstance.computeRawIntervals(stack, false, Persistence.baseModulus()); return Plex3ToPlex4BarcodeAdapter.getInstance().evaluate(rawIntervals); } } ================================================ FILE: src/java/edu/stanford/math/plex4/interop/Plex3Stream.java ================================================ package edu.stanford.math.plex4.interop; import java.util.Comparator; import java.util.Iterator; import edu.stanford.math.plex.SimplexStream; import edu.stanford.math.plex4.homology.barcodes.Interval; import edu.stanford.math.plex4.homology.barcodes.PersistenceInvariantDescriptor; import edu.stanford.math.plex4.homology.chain_basis.Simplex; import edu.stanford.math.plex4.homology.filtration.FiltrationConverter; import edu.stanford.math.plex4.homology.filtration.FiltrationUtility; import edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream; import edu.stanford.math.primitivelib.collections.utility.AdaptedIterator; import gnu.trove.TObjectIntHashMap; /** * This class is a wrapper around a plex 3 SimplexStream that implements the AbstractFilteredStream interface * of plex 4. * * @author Andrew Tausz * */ public class Plex3Stream implements AbstractFilteredStream { private final SimplexStream plex3Stream; private final TObjectIntHashMap filtrationIndexMap = new TObjectIntHashMap(); private final Plex3ToPlex4SimplexAdapter simplexAdapter; private final int maxFiltrationIndex, minFiltrationIndex; public Plex3Stream(SimplexStream plex3Stream) { this.simplexAdapter = Plex3ToPlex4SimplexAdapter.getInstance(); this.plex3Stream = plex3Stream; int tempMaxFiltrationIndex = Integer.MIN_VALUE; int tempMinFiltrationIndex = Integer.MAX_VALUE; for (Iterator iterator = plex3Stream.iterator(); iterator.hasNext(); ) { edu.stanford.math.plex.Simplex plex3Simplex = iterator.next(); this.filtrationIndexMap.put(this.simplexAdapter.evaluate(plex3Simplex), plex3Simplex.findex()); tempMaxFiltrationIndex = Math.max(tempMaxFiltrationIndex, plex3Simplex.findex()); tempMinFiltrationIndex = Math.min(tempMinFiltrationIndex, plex3Simplex.findex()); } this.maxFiltrationIndex = tempMaxFiltrationIndex; this.minFiltrationIndex = tempMinFiltrationIndex; } public Plex3Stream(SimplexStream plex3Stream, int[] vertexMapping) { this.simplexAdapter = Plex3ToPlex4SimplexAdapter.getInstance(vertexMapping); this.plex3Stream = plex3Stream; int tempMaxFiltrationIndex = Integer.MIN_VALUE; int tempMinFiltrationIndex = Integer.MAX_VALUE; for (Iterator iterator = plex3Stream.iterator(); iterator.hasNext(); ) { edu.stanford.math.plex.Simplex plex3Simplex = iterator.next(); this.filtrationIndexMap.put(this.simplexAdapter.evaluate(plex3Simplex), plex3Simplex.findex()); tempMaxFiltrationIndex = Math.max(tempMaxFiltrationIndex, plex3Simplex.findex()); tempMinFiltrationIndex = Math.min(tempMinFiltrationIndex, plex3Simplex.findex()); } this.maxFiltrationIndex = tempMaxFiltrationIndex; this.minFiltrationIndex = tempMinFiltrationIndex; } public void finalizeStream() { } public Simplex[] getBoundary(Simplex basisElement) { return basisElement.getBoundaryArray(); } public int[] getBoundaryCoefficients(Simplex basisElement) { return basisElement.getBoundaryCoefficients(); } public int getDimension(Simplex basisElement) { return basisElement.getDimension(); } public int getFiltrationIndex(Simplex basisElement) { return this.filtrationIndexMap.get(basisElement); } public double getFiltrationValue(Simplex basisElement) { return this.plex3Stream.convert_filtration_index(this.getFiltrationIndex(basisElement)); } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#containsElement(java.lang.Object) */ public boolean containsElement(Simplex basisElement) { // TODO Implement this if you need it. throw new UnsupportedOperationException(); } public int getMaximumFiltrationIndex() { return this.maxFiltrationIndex; } public int getMinimumFiltrationIndex() { return this.minFiltrationIndex; } public int getSize() { return this.plex3Stream.size(); } public boolean isFinalized() { return true; } public Iterator iterator() { return new AdaptedIterator(this.plex3Stream.iterator(), simplexAdapter); } public Comparator getBasisComparator() { throw new UnsupportedOperationException(); } public PersistenceInvariantDescriptor, G> transform(PersistenceInvariantDescriptor, G> barcodeCollection) { FiltrationConverter converter = new FiltrationConverter() { @Override public double computeInducedFiltrationValue(double filtrationValue1, double filtrationValue2) { return Math.max(filtrationValue1, filtrationValue2); } @Override public int getFiltrationIndex(double filtrationValue) { return 0; } @Override public double getFiltrationValue(int filtrationIndex) { return plex3Stream.convert_filtration_index(filtrationIndex); } @Override public double getInitialFiltrationValue() { return 0; } }; return FiltrationUtility.transform(barcodeCollection, converter); } } ================================================ FILE: src/java/edu/stanford/math/plex4/interop/Plex3ToPlex4BarcodeAdapter.java ================================================ package edu.stanford.math.plex4.interop; import edu.stanford.math.plex.PersistenceInterval; import edu.stanford.math.plex4.homology.barcodes.BarcodeCollection; import edu.stanford.math.primitivelib.autogen.functional.ObjectObjectFunction; /** * This class implements a function object which converts plex 3 barcodes to plex 4 barcodes. * It is designed to convert the result of the computeRawIntervals function in plex 3 to the type BarcodeCollection\ * so that it can be compared with the results of the plex 4 homology algorithms. Note that even though * this function object accepts arguments of type PersistenceInterval[], it is required that the elements in the * array are of type PersistenceInterval.Int. The reason for this is that the internal plex 3 homology algorithm * computes the integral filtration intervals, but then converts the results to the PersistenceInterval class. Thus, * this requirement is mainly for legacy reasons. * * @author Andrew Tausz * */ public class Plex3ToPlex4BarcodeAdapter implements ObjectObjectFunction> { private static Plex3ToPlex4BarcodeAdapter instance = new Plex3ToPlex4BarcodeAdapter(); public static Plex3ToPlex4BarcodeAdapter getInstance() { return instance; } private Plex3ToPlex4BarcodeAdapter(){} public BarcodeCollection evaluate(PersistenceInterval[] argument) { BarcodeCollection barcodeCollection = new BarcodeCollection(); barcodeCollection.setLeftClosedDefault(true); barcodeCollection.setRightClosedDefault(false); for (PersistenceInterval interval: argument) { assert (interval instanceof PersistenceInterval.Int); PersistenceInterval.Int intInterval = (PersistenceInterval.Int) interval; if (interval.infiniteExtent()) { barcodeCollection.addRightInfiniteInterval(interval.dimension, intInterval.start); } else { barcodeCollection.addInterval(interval.dimension, intInterval.start, intInterval.end); } } return barcodeCollection; } } ================================================ FILE: src/java/edu/stanford/math/plex4/interop/Plex3ToPlex4SimplexAdapter.java ================================================ package edu.stanford.math.plex4.interop; import edu.stanford.math.plex.Simplex; import edu.stanford.math.plex4.homology.utility.HomologyUtility; import edu.stanford.math.primitivelib.autogen.array.IntArrayMath; import edu.stanford.math.primitivelib.autogen.functional.ObjectObjectFunction; /** * This class implements a function object which converts plex 3 simplices to plex 4 simplices. Since plex 4 * operates in a 0-based way, it also shifts the indices down by 1. * * @author Andrew Tausz * */ public class Plex3ToPlex4SimplexAdapter implements ObjectObjectFunction { private static Plex3ToPlex4SimplexAdapter instance = new Plex3ToPlex4SimplexAdapter(); private final int[] vertexMapping; public static Plex3ToPlex4SimplexAdapter getInstance() { return instance; } public static Plex3ToPlex4SimplexAdapter getInstance(int[] vertexMapping) { return new Plex3ToPlex4SimplexAdapter(vertexMapping); } private Plex3ToPlex4SimplexAdapter() { this.vertexMapping = null; } private Plex3ToPlex4SimplexAdapter(int[] vertexMapping) { this.vertexMapping = vertexMapping; } public edu.stanford.math.plex4.homology.chain_basis.Simplex evaluate(Simplex argument) { if (this.vertexMapping == null) { return new edu.stanford.math.plex4.homology.chain_basis.Simplex(IntArrayMath.scalarAdd(argument.vertices(), -1)); } else { return new edu.stanford.math.plex4.homology.chain_basis.Simplex(HomologyUtility.convertIndices(IntArrayMath.scalarAdd(argument.vertices(), -1), this.vertexMapping)); } } } ================================================ FILE: src/java/edu/stanford/math/plex4/io/BarcodeWriter.java ================================================ package edu.stanford.math.plex4.io; import java.awt.image.BufferedImage; import java.io.IOException; import edu.stanford.math.plex4.homology.barcodes.Interval; import edu.stanford.math.plex4.homology.barcodes.PersistenceInvariantDescriptor; import edu.stanford.math.plex4.visualization.BarcodeVisualizer; public class BarcodeWriter { private static final BarcodeWriter instance = new BarcodeWriter(); private BarcodeWriter() {} public static BarcodeWriter getInstance() { return instance; } public void writeToFile(PersistenceInvariantDescriptor, G> object, int dimension, double endPoint, String caption, String path) throws IOException { String label = String.format("%s (Dimension: %d)", caption, dimension); BufferedImage image = BarcodeVisualizer.drawBarcode(object.getIntervalsAtDimension(dimension), label, endPoint); BufferedImageWriter.getInstance(BufferedImageWriter.getDefaultEncoderFormat()).writeToFile(image, path); } public String getExtension() { return BufferedImageWriter.getDefaultEncoderFormat(); } } ================================================ FILE: src/java/edu/stanford/math/plex4/io/BufferedImageWriter.java ================================================ package edu.stanford.math.plex4.io; import gnu.trove.THashMap; import java.awt.image.BufferedImage; import java.io.BufferedOutputStream; import java.io.FileOutputStream; import java.io.IOException; import com.sun.media.jai.codec.ImageCodec; import com.sun.media.jai.codec.ImageEncoder; public class BufferedImageWriter implements ObjectWriter { private final String encoderFormat; private static final THashMap instanceHash = new THashMap(); public static BufferedImageWriter getInstance(String parameter) { if (!instanceHash.containsKey(parameter)) { initializeInstance(parameter); } return instanceHash.get(parameter); } private static void initializeInstance(String parameter) { instanceHash.put(parameter, new BufferedImageWriter(parameter)); } private BufferedImageWriter(String encoderFormat) { this.encoderFormat = encoderFormat; } public static String getDefaultEncoderFormat() { return "PNG"; } public void writeToFile(BufferedImage object, String path) throws IOException { BufferedOutputStream out = null; ImageEncoder encoder; try { out = new BufferedOutputStream(new FileOutputStream(path)); encoder = ImageCodec.createImageEncoder(encoderFormat, out, null); encoder.encode(object); } catch (IOException e) { throw e; } finally { if (out != null) { out.close(); } } } public String getExtension() { return this.encoderFormat; } } ================================================ FILE: src/java/edu/stanford/math/plex4/io/DoubleArrayReaderWriter.java ================================================ package edu.stanford.math.plex4.io; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; import java.util.List; public class DoubleArrayReaderWriter implements ObjectReader, ObjectWriter { private static final DoubleArrayReaderWriter instance = new DoubleArrayReaderWriter(); private DoubleArrayReaderWriter() {} public static DoubleArrayReaderWriter getInstance() { return instance; } public double[][] importFromFile(String path) throws IOException { double[][] matrix = null; try { List rows = FileIOUtility.readNumericCSVFile(path, ","); int n = rows.size(); matrix = new double[n][]; for (int i = 0; i < n; i++) { matrix[i] = rows.get(i); } return matrix; } catch (IOException e) { e.printStackTrace(); } return null; } public String getExtension() { return "csv"; } public void writeToFile(double[][] object, String path) throws IOException { BufferedWriter writer = null; try { writer = new BufferedWriter(new FileWriter(path, false)); for (double[] row: object) { for (int i = 0; i < row.length; i++) { if (i > 0) { writer.write(","); } writer.write(Double.toString(row[i])); } writer.newLine(); } } catch (IOException e) { e.printStackTrace(); } finally { if (writer != null) { writer.close(); } } } } ================================================ FILE: src/java/edu/stanford/math/plex4/io/FileIOUtility.java ================================================ package edu.stanford.math.plex4.io; import java.awt.image.BufferedImage; import java.io.BufferedOutputStream; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.util.ArrayList; import java.util.List; import com.sun.media.jai.codec.ImageCodec; import com.sun.media.jai.codec.ImageEncoder; /** * This class contains various static functions for reading and writing files of * different types. * * @author Tim Harrington * @author Andrew Tausz * */ public class FileIOUtility { /** * Saves a BufferedImage stream in PNG format. * * @param image the buffered image to save to disk * @param filePath the file to save the image file in * @throws IOException */ public static void saveImage(BufferedImage image, String filePath) throws IOException { BufferedOutputStream out = null; ImageEncoder encoder; try { out = new BufferedOutputStream(new FileOutputStream(filePath)); encoder = ImageCodec.createImageEncoder("PNG", out, null); encoder.encode(image); } catch (IOException e) { throw e; } finally { if (out != null) { out.close(); } } } /** * This function saves a string to a text file. * * @param filePath the path of the file to write to * @param contents a string holding the contents to write * @param append if true, then the file will be appended to * @throws IOException */ public static void writeTextFile(String filePath, String contents, boolean append) throws IOException { BufferedWriter writer = null; try { writer = new BufferedWriter(new FileWriter(filePath, append)); writer.write(contents); } catch (IOException e) { e.printStackTrace(); } finally { if (writer != null) { writer.close(); } } } /** * This function reads a CSV file and outputs the values into a Table * object. The format of the file is as follows: [] [<Heading1, ..., * HeadingN>] <Entry11, ..., Entry1N> <EntryM1, ..., EntryMN> * * The input argument readTitle should be true if and only if the file * contains a title on its first line. The input argument readHeadings * should be true if and only if the file contains the column headings on * the file just before the first data row. * * Columns are assumed to be separated by the specified separator, and rows * are assumed to be separated by a newline. * * @param filename * the filename of the file to read from * @param separator * the separator between columns * @param readTitle * should be true iff the file contains a title * @param readHeadings * should be true iff the file contains the column headings * @return a Table object containing the contents of the file * @throws IOException */ public static Table readCSVFile(String filename, String separator, boolean readTitle, boolean readHeadings) throws IOException { BufferedReader reader = null; String line = null; String[] entries = null; Table table = null; try { reader = new BufferedReader(new FileReader(filename)); table = new Table(); // read the title if necessary if (readTitle) { line = reader.readLine(); table.setTitle(line); } // read the column headings if necessary if (readHeadings) { // get the line containing the column headings line = reader.readLine(); // split the line into the individual headings String[] headings = line.split(separator); // add the headings to the table for (String heading : headings) { table.addColumn(heading.trim()); } } else { // read the first data line line = reader.readLine(); // split the line into the individual tokens entries = line.split(separator); // add generic headings to the table for (int headingIndex = 0; headingIndex < entries.length; headingIndex++) { table.addColumn("Column_" + headingIndex); } // add the data to the table table.addRow(entries, true); } // continue reading the data while ((line = reader.readLine()) != null) { // split the line into the individual tokens entries = line.split(separator); // add the data to the table table.addRow(entries, true); } } catch (IOException e) { e.printStackTrace(); } finally { // close the reader if necessary if (reader != null) { reader.close(); } } // return the created table return table; } public static List<double[]> readNumericCSVFile(String filename, String separator) throws IOException { BufferedReader reader = null; String line = null; String[] entries = null; List<double[]> contents = null; try { reader = new BufferedReader(new FileReader(filename)); contents = new ArrayList<double[]>(); // continue reading the data while ((line = reader.readLine()) != null) { // split the line into the individual tokens entries = line.split(separator); double[] row = new double[entries.length]; for (int j = 0; j < entries.length; j++) { row[j] = Double.parseDouble(entries[j]); } contents.add(row); } } catch (IOException e) { e.printStackTrace(); } finally { // close the reader if necessary if (reader != null) { reader.close(); } } return contents; } /** * Try to save an object for quick reloading later. * * @throws Exception */ public static void serializeObject(Object obj, String destPath) throws IOException { if (obj == null) { throw new IllegalArgumentException("Cannot serialize a null object."); } FileOutputStream f; ObjectOutputStream s = null; try { f = new FileOutputStream(destPath, false); s = new ObjectOutputStream(f); s.writeObject(obj); s.close(); } catch (IOException e) { if (s != null) { s.close(); } e.printStackTrace(); throw e; } } /** * @param inputPath * @return a deserialized object loaded from inputPath * @throws Exception */ public static Object loadObject(String inputPath) throws IOException { Object retval = null; if (!(new File(inputPath)).exists()) { throw new IllegalStateException("Input file (" + inputPath + ") does not exist"); } FileInputStream f; ObjectInputStream o = null; try { f = new FileInputStream(inputPath); o = new ObjectInputStream(f); retval = o.readObject(); o.close(); return retval; } catch (IOException e) { throw e; } catch (ClassNotFoundException e) { throw new IOException(); } finally { if (o != null) { try { o.close(); } catch (IOException e1) { } } } } } ================================================ FILE: src/java/edu/stanford/math/plex4/io/FileManager.java ================================================ package edu.stanford.math.plex4.io; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util.Map; /** * This class returns canonical paths so that they are in the appropriate format * for the OS in use (e.g. / in linux vs. \ in windows). * * We use the following terminology: * * Base output path: "./data/runs" * Daily output path: "./data/runs/yyMMdd" * Unique output path: "./data/runs/yyMMdd/HHmmssSSS" * Category output path: "./data/runs/yyMMdd/<category>" * Unique Category output path: ".data/runs/yyMMdd/<category>/HHmmssSSS" * * With regard to filenames we use the following terminology: * * Suppose we have the file "output.txt", the basename is "output", * the extention is "txt" and the filename is "output.txt". We call the * filepath its path along with the filename, e.g. * "./data/runs/yyMMdd/cat1/output.txt". * * @author Andrew Tausz * @author Tim Harrington */ public class FileManager { // the base output path as defined above: ".data/runs" private static String baseOutputPath = "data/runs"; // the daily output path as defined above: ".data/runs/yyMMdd/" private static String dailyOutputPath = ""; // this hashtable maps categories to their "Category output path" // e.g. key = "sampledata", value = ".data/runs/yyMMdd/sampledata/" private static Map<String, String> categoryOutputPaths = new HashMap<String, String>(); // the wait time to prevent duplicate unique category output paths from // being created private static final long waitTime = 100; private FileManager() { // do not allow this to be constructed } public static String getUniqueFilePath(String basename, String extention) throws IOException { return FileManager.getDailyOutputPath() + System.getProperty("file.separator") + basename + "." + extention; } /** * This function returns the base output path. * * @return the base output path */ public static String getBaseOutputPath() { return FileManager.baseOutputPath + System.getProperty("file.separator"); } /** * This function returns the daily output path. It is of the form * "<base output path>/yyMMdd/". * * @return the daily output path * @throws IOException */ public static String getDailyOutputPath() throws IOException { if (FileManager.dailyOutputPath == "") { FileManager.initializeDailyOutputPath(); } return FileManager.dailyOutputPath + System.getProperty("file.separator"); } /** * This function returns a unique output path. It is of the form * "<base output path>/yyMMdd/HHmmssSSS/". * * @return a unique output path * @throws IOException */ public static String getUniqueOutputPath() throws IOException { String timeStamp = FileManager.getTimeStamp(); String uniqueCategoryOutputPath = FileManager.createDirectory(getDailyOutputPath() + timeStamp); FileManager.pause(); return uniqueCategoryOutputPath + System.getProperty("file.separator"); } /** * This function returns the category output path. It is of the form * "<base output path>/yyMMdd/<category>/". * * @param category * the name of the category * @return the canonical path of the category output path * @throws IOException */ public static String getCategoryOutputPath(String category) throws IOException { if (!FileManager.categoryOutputPaths.containsKey(category)) { FileManager.initializeCategoryOutputPath(category); } return FileManager.categoryOutputPaths.get(category) + System.getProperty("file.separator"); } /** * This function returns a unique category output path for the specified * category. It is of the form * "<base output path>/yyMMdd/<category>/HHmmssSSS" * * @param category * the name of the category * @return the canonical path of the unique category output path * @throws IOException */ public static String getUniqueCategoryOutputPath(String category) throws IOException { String categoryOutputPath = FileManager.getCategoryOutputPath(category); String timeStamp = FileManager.getTimeStamp(); String uniqueCategoryOutputPath = FileManager.createDirectory(categoryOutputPath + timeStamp); FileManager.pause(); return uniqueCategoryOutputPath + System.getProperty("file.separator"); } /** * This method creates a directory with path directoryPath. * * This method is fail safe (i.e. it sets the path fields only if the * directory is successfully created or if it already exists). * * @param directoryPath * the path of the directory to create * @return the canonical path of the directory created * @throws IOException */ private static String createDirectory(String directoryPath) throws IOException { boolean directoryCreated = false; File directory = new File(directoryPath); directoryCreated = directory.isDirectory() || directory.mkdirs(); if (!directoryCreated) { throw new IOException("Could not create directory: " + directoryPath); } return directory.getCanonicalPath() + System.getProperty("file.separator"); } /** * This function initializes the daily output path as defined above. * * @throws IOException */ private static void initializeDailyOutputPath() throws IOException { SimpleDateFormat formatter = new SimpleDateFormat("yy-MM-dd"); String dateString = formatter.format(new Date()); FileManager.dailyOutputPath = FileManager.createDirectory(getBaseOutputPath() + dateString); } /** * This function initializes the category output path as defined above. * * @param category * the name of the category * @throws IOException */ private static void initializeCategoryOutputPath(String category) throws IOException { String outputPath = FileManager.createDirectory(getDailyOutputPath() + category); FileManager.categoryOutputPaths.put(category, outputPath); } /** * This function returns a string containing the current time in HHmmssSSS * format. * * @return a timestamp in HHmmssSSS format */ private static String getTimeStamp() { SimpleDateFormat formatter = new SimpleDateFormat("HH-mm-ss-SSS"); return formatter.format(new Date()); } /** * This function pauses the current thread. It is used to ensure that * directories created in rapid succession do not have the same names. */ private static void pause() { try { Thread.sleep(waitTime); } catch (InterruptedException exception) { exception.printStackTrace(); } } /** * This function creates a unique filename. It is actually of the form * yyMMddHHmmssSSS. The filename does not have any extension. * * @return a filename of the form yyMMddHHmmssSSS */ public static String generateUniqueFileName() { SimpleDateFormat formatter = new SimpleDateFormat("yy-MM-dd-HH-mm-ss-SSS"); String name = formatter.format(new Date()); FileManager.pause(); return name; } } ================================================ FILE: src/java/edu/stanford/math/plex4/io/MatlabInterface.java ================================================ package edu.stanford.math.plex4.io; import java.io.IOException; import cern.colt.matrix.DoubleMatrix2D; import edu.stanford.math.plex4.utility.ExceptionUtility; import edu.stanford.math.primitivelib.autogen.array.IntArrayMath; /** * This class has static methods for creating Matlab files to visualize data. * * @author Andrew Tausz */ public class MatlabInterface{ protected static String getDefaultExtension() { return "m"; } /** * This function creates and returns a new MatlabWriter. * * @param label * a keyword for the filename * @return a new MatlabWriter ready to use * @throws IOException */ public static MatlabWriter makeNewMatlabWriter(String label) throws IOException { String filename = FileManager.getUniqueFilePath(label, getDefaultExtension()); MatlabWriter writer = new MatlabWriter(filename); return writer; } /** * This function cleans up a MatlabWriter when it is no longer in use. * * @param writer * the MatlabWriter to clean up * @throws IOException */ public static void finalizeMatlabWriter(MatlabWriter writer) throws IOException { writer.close(); } /** * This function writes the commands to create a scatter plot of the data in * the supplied matrix. The matrix is assumed to have two columns, so that * each row represents an (x, y) pair. * * @param writer * the MatlabWriter to write to * @param values * an n x 2 matrix containing the data to plot * @param name * the variable name to write to * @throws IOException */ public static void exportScatterPlot2D(MatlabWriter writer, DoubleMatrix2D values, String name) throws IOException { ExceptionUtility.verifyGreaterThanOrEqual(values.columns(), 2); writer.writeMatrix(values, name); writer.newLine(); writer.write("plot(" + name + "(:, 1), " + name + "(:, 2), '" + writer.getNextColor() + writer.getNextMarker() + "');"); writer.newLine(); } /** * This function writes the commands to create a 3-D scatter plot of the * data in the supplied matrix. The data is assumed to have three columns, * so that each row represents an (x, y, z) triple. * * @param writer * the MatlabWriter to write to * @param values * an n x 3 matrix containing the data to plot * @param name * the variable name to write to * @throws IOException */ public static void exportScatterPlot3D(MatlabWriter writer, DoubleMatrix2D values, String name) throws IOException { ExceptionUtility.verifyGreaterThanOrEqual(values.columns(), 3); writer.writeMatrix(values, name); writer.newLine(); writer.write("plot3(" + name + "(:, 1), " + name + "(:, 2), " + name + "(:, 3), '" + writer.getNextColor() + writer.getNextMarker() + "');"); writer.newLine(); } /** * This function writes the commands to create a scatter plot of the data in * the supplied matrix. The matrix is assumed to have two columns, so that * each row represents an (x, y) pair. Additionally the points are plotted * with different markers and colors for each class. * * @param writer * the MatlabWriter to write to * @param values * an n x 3 matrix containing the data to plot * @param name * the variable name to write to * @param labels * the classes for each data point * @throws IOException */ public static void exportScatterPlot2D(MatlabWriter writer, DoubleMatrix2D values, String name, int[] labels) throws IOException { ExceptionUtility.verifyGreaterThanOrEqual(values.columns(), 2); int maxLabel = IntArrayMath.max(labels); int minLabel = IntArrayMath.min(labels); writer.writeMatrix(values, name); writer.newLine(); writer.writeRowVector(labels, "labels"); writer.newLine(); writer.newPlotWindow(); writer.holdOn(); for (int label = minLabel; label <= maxLabel; label++) { writer.write("[r, c, v] = find(labels == " + label + ");"); writer.newLine(); writer.write("plot(" + name + "(c, 1), " + name + "(c, 2), '" + writer.getColorCode(label) + writer.getMarkerStyle(label) + "');"); writer.newLine(); } writer.holdOff(); } /** * This function writes the commands to create a 3-D scatter plot of the * data in the supplied matrix. The data is assumed to have three columns, * so that each row represents an (x, y, z) triple. Additionally the points * are plotted with different markers and colors for each class. * * @param writer * the MatlabWriter to write to * @param values * an n x 3 matrix containing the data to plot * @param name * the variable name to write to * @param labels * the classes for each data point * @throws IOException */ public static void exportScatterPlot3D(MatlabWriter writer, DoubleMatrix2D values, String name, int[] labels) throws IOException { ExceptionUtility.verifyGreaterThanOrEqual(values.columns(), 3); int maxLabel = IntArrayMath.max(labels); int minLabel = IntArrayMath.min(labels); writer.writeMatrix(values, name); writer.newLine(); writer.writeRowVector(labels, "labels"); writer.newLine(); writer.newPlotWindow(); writer.holdOn(); for (int label = minLabel; label <= maxLabel; label++) { writer.write("[r, c, v] = find(labels == " + label + ");"); writer.newLine(); writer.write("plot3(" + name + "(c, 1), " + name + "(c, 2), " + name + "(c, 3), '" + writer.getColorCode(label) + writer.getMarkerStyle(label) + "');"); writer.newLine(); } writer.holdOff(); } } ================================================ FILE: src/java/edu/stanford/math/plex4/io/MatlabWriter.java ================================================ package edu.stanford.math.plex4.io; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; import java.util.List; import cern.colt.matrix.DoubleMatrix1D; import cern.colt.matrix.DoubleMatrix2D; /** * This class encapsulates writing to Matlab files. It contains functions for * basic output (e.g. comments), as well as the output of numerous mathematical * objects. * * Important Note: The user must call close in order to flush the output to the * file. * * @author Andrew Tausz * */ public class MatlabWriter { // BufferedWriter object does the actual writing private BufferedWriter out = null; // the boolean commentMode indicates whether comments are being written private boolean commentMode = false; // maps for plot styles, color and markers private String[] markerMap = new String[] { "+", "o", "*", ".", "x", "s", "d", "^", "v", ">", "<", "p", "h" }; private String[] colorMap = new String[] { "r", "g", "b", "c", "m", "y", "k" }; private String[] styleMap = new String[] { "-", "--", ":", "-." }; private int markerIndex = 0; private int colorIndex = 0; private int styleIndex = 0; /** * This constructor initializes the class to be ready to write to the file * with the filename provided. * * @param filename * the file to write to * @throws IOException */ public MatlabWriter(String filename) throws IOException { this.out = new BufferedWriter(new FileWriter(filename)); } /** * This function flushes the output stream and closes it. * * @throws IOException */ public void close() throws IOException { this.out.close(); } /** * This function turns on the comment mode, meaning that any output will be * written as a comment and not Matlab code. */ public void turnOnCommentMode() { this.commentMode = true; } /** * This function turns off the comment mode. Thus any output will be written * as actual Matlab code. */ public void turnOffCommentMode() { this.commentMode = false; } /** * This function modifies the input string so that it will be properly * printed as a comment in Matlab. * * @param input * @throws IOException */ protected String insertComments(String input) throws IOException { if (this.commentMode) { String result = input; result = "% " + result.replaceAll("\n", "\n% "); return result; } else { return input; } } public void writeClearAll() throws IOException { this.out.write("clc; clear; close all;\n"); } public void assignValue(String varName, double value) throws IOException { this.out.write(varName + " = " + value + ";"); } public void assignValue(String varName, int value) throws IOException { this.out.write(varName + " = " + value + ";"); } /** * This function writes a string to the file. If comment mode is turned on, * then the string is written as a comment. * * @param string * the string to output * @throws IOException */ public void write(String string) throws IOException { this.out.write(insertComments(string)); } public void writeLine(String string) throws IOException { this.out.write(insertComments(string)); this.newLine(); } /** * This function outputs a new line to the file. * * @throws IOException */ public void newLine() throws IOException { this.out.newLine(); } /** * This function begins a new cell in the Matlab file. * * @param label * the label of the cell * @throws IOException */ public void startNewCell(String label) throws IOException { this.out.write("%% " + label); } public void newPlotWindow() throws IOException { this.write("figure;"); this.newLine(); } public void holdOn() throws IOException { this.write("hold on;"); this.newLine(); } public void holdOff() throws IOException { this.write("hold off;"); this.newLine(); } public void gridOn() throws IOException { this.write("grid on;"); this.newLine(); } public void gridOff() throws IOException { this.write("grid off;"); this.newLine(); } public String getMarkerStyle(int index) { return markerMap[index % markerMap.length]; } public String getColorCode(int index) { return colorMap[index % colorMap.length]; } public String getLineStyle(int index) { return styleMap[index % styleMap.length]; } public String getNextMarker() { return this.getMarkerStyle(this.markerIndex++); } public String getNextColor() { return this.getColorCode(this.colorIndex++); } public String getNextLineStyle() { return this.getLineStyle(this.styleIndex++); } /* * Vector to Stream */ public void writeRowVector(DoubleMatrix1D array, String name) throws IOException { this.write(toRowVector(array, name)); } public void writeColumnVector(DoubleMatrix1D array, String name) throws IOException { this.write(toColumnVector(array, name)); } public void writeRowVector(DoubleMatrix1D array) throws IOException { this.write(toRowVector(array)); } public void writeColumnVector(DoubleMatrix1D array) throws IOException { this.write(toColumnVector(array)); } public void writeRowVector(double[] array, String name) throws IOException { this.write(toRowVector(array, name)); } public void writeColumnVector(double[] array, String name) throws IOException { this.write(toColumnVector(array, name)); } public void writeRowVector(double[] array) throws IOException { this.write(toRowVector(array)); } public void writeColumnVector(double[] array) throws IOException { this.write(toColumnVector(array)); } public void writeRowVector(int[] array, String name) throws IOException { this.write(toRowVector(array, name)); } public void writeColumnVector(int[] array, String name) throws IOException { this.write(toColumnVector(array, name)); } public void writeRowVector(int[] array) throws IOException { this.write(toRowVector(array)); } public void writeColumnVector(int[] array) throws IOException { this.write(toColumnVector(array)); } public <T> void writeRowVector(Iterable<T> collection) throws IOException { this.write(toRowVector(collection)); } public <T> void writeColumnVector(Iterable<T> collection) throws IOException { this.write(toColumnVector(collection)); } public <T> void writeRowVector(Iterable<T> collection, String name) throws IOException { this.write(toRowVector(collection, name)); } public <T> void writeColumnVector(Iterable<T> collection, String name) throws IOException { this.write(toColumnVector(collection, name)); } /* * Matrix to Stream */ public void writeMatrix(DoubleMatrix2D matrix, String name) throws IOException { this.out.write(name + " = "); this.out.write("["); for (int i = 0; i < matrix.rows(); i++) { if (i > 0) { this.out.write(";\n"); } for (int j = 0; j < matrix.columns(); j++) { if (j > 0) { this.out.write(", "); } this.out.write(Double.toString(matrix.getQuick(i, j))); } } this.out.write("];"); } public void writeMatrix(DoubleMatrix2D matrix) throws IOException { this.out.write("["); for (int i = 0; i < matrix.rows(); i++) { if (i > 0) { this.out.write(";\n"); } for (int j = 0; j < matrix.columns(); j++) { if (j > 0) { this.out.write(", "); } this.out.write(Double.toString(matrix.getQuick(i, j))); } } this.out.write("];"); } public void writeSparseMatrix(double[][] matrix, String name) throws IOException { this.out.write("tmp_m = " + matrix.length + ";\n"); this.out.write("tmp_n = " + matrix[0].length + ";\n"); List<Integer> _tmp_i = new ArrayList<Integer>(); List<Integer> _tmp_j = new ArrayList<Integer>(); List<Double> _tmp_s = new ArrayList<Double>(); for (int i = 0; i < matrix.length; i++) { for (int j = 0; j < matrix[i].length; j++) { if (matrix[i][j] != 0) { _tmp_i.add(i + 1); _tmp_j.add(j + 1); _tmp_s.add(matrix[i][j]); } } } this.writeRowVector(_tmp_i, "tmp_i"); this.newLine(); this.writeRowVector(_tmp_j, "tmp_j"); this.newLine(); this.writeRowVector(_tmp_s, "tmp_s"); this.newLine(); this.out.write(name + " = sparse(tmp_i, tmp_j, tmp_s, tmp_m, tmp_n);"); this.newLine(); } public void writeSparseVector(double[] matrix, String name) throws IOException { this.out.write("tmp_m = " + matrix.length + ";\n"); this.out.write("tmp_n = " + 1 + ";\n"); List<Integer> _tmp_i = new ArrayList<Integer>(); List<Integer> _tmp_j = new ArrayList<Integer>(); List<Double> _tmp_s = new ArrayList<Double>(); for (int i = 0; i < matrix.length; i++) { if (matrix[i] != 0) { _tmp_i.add(i + 1); _tmp_j.add(1); _tmp_s.add(matrix[i]); } } this.writeRowVector(_tmp_i, "tmp_i"); this.newLine(); this.writeRowVector(_tmp_j, "tmp_j"); this.newLine(); this.writeRowVector(_tmp_s, "tmp_s"); this.newLine(); this.out.write(name + " = sparse(tmp_i, tmp_j, tmp_s, tmp_m, tmp_n);"); this.newLine(); } public void writeMatrix(double[][] matrix, String name) throws IOException { this.write(toMatrix(matrix, name)); } public void writeMatrix(double[][] matrix) throws IOException { this.write(toMatrix(matrix)); } public void writeMatrix(int[][] matrix, String name) throws IOException { this.write(toMatrix(matrix, name)); } public void writeMatrix(int[][] matrix) throws IOException { this.write(toMatrix(matrix)); } /* * Vector to String */ public static String toRowVector(DoubleMatrix1D array, String name) { return (name + " = " + toVector(array, ", ") + ";"); } public static String toColumnVector(DoubleMatrix1D array, String name) { return (name + " = " + toVector(array, "; ") + ";"); } public static String toRowVector(DoubleMatrix1D array) { return toVector(array, ", "); } public static String toColumnVector(DoubleMatrix1D array) { return toVector(array, "; "); } public static String toRowVector(int[] array, String name) { return (name + " = " + toVector(array, ", ") + ";"); } public static String toColumnVector(int[] array, String name) { return (name + " = " + toVector(array, "; ") + ";"); } public static String toRowVector(int[] array) { return toVector(array, ", "); } public static String toColumnVector(int[] array) { return toVector(array, "; "); } public static String toRowVector(double[] array, String name) { return (name + " = " + toVector(array, ", ") + ";"); } public static String toColumnVector(double[] array, String name) { return (name + " = " + toVector(array, "; ") + ";"); } public static String toRowVector(double[] array) { return toVector(array, ", "); } public static String toColumnVector(double[] array) { return toVector(array, "; "); } public static <T> String toRowVector(Iterable<T> collection, String name) { return (name + " = " + toVector(collection, ", ") + ";"); } public static <T> String toColumnVector(Iterable<T> collection, String name) { return (name + " = " + toVector(collection, "; ") + ";"); } public static <T> String toRowVector(Iterable<T> collection) { return toVector(collection, ", "); } public static <T> String toColumnVector(Iterable<T> collection) { return toVector(collection, "; "); } /* * Matrix to String */ public static String toMatrix(DoubleMatrix2D matrix, String name) { return (name + " = " + toMatrix(matrix) + ";"); } public static String toMatrix(double[][] matrix, String name) { return (name + " = " + toMatrix(matrix) + ";"); } public static String toMatrix(int[][] matrix, String name) { return (name + " = " + toMatrix(matrix) + ";"); } /* * Helper functions */ private static <T> String toVector(Iterable<T> collection, String separator) { StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append("["); int i = 0; for (T element : collection) { if (i > 0) { stringBuilder.append(separator); } stringBuilder.append(element.toString()); i++; } stringBuilder.append("]"); return stringBuilder.toString(); } private static String toVector(int[] array, String separator) { StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append("["); for (int i = 0; i < array.length; i++) { if (i > 0) { stringBuilder.append(separator + array[i]); } else { stringBuilder.append(array[i]); } } stringBuilder.append("]"); return stringBuilder.toString(); } private static String toVector(double[] array, String separator) { StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append("["); for (int i = 0; i < array.length; i++) { if (i > 0) { stringBuilder.append(separator + array[i]); } else { stringBuilder.append(array[i]); } } stringBuilder.append("]"); return stringBuilder.toString(); } private static String toVector(DoubleMatrix1D array, String separator) { StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append("["); for (int i = 0; i < array.size(); i++) { if (i > 0) { stringBuilder.append(separator + array.getQuick(i)); } else { stringBuilder.append(array.getQuick(i)); } } stringBuilder.append("]"); return stringBuilder.toString(); } public static String toMatrix(DoubleMatrix2D matrix) { StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append("["); for (int i = 0; i < matrix.rows(); i++) { if (i > 0) { stringBuilder.append(";\n"); } for (int j = 0; j < matrix.columns(); j++) { if (j > 0) { stringBuilder.append(", "); } stringBuilder.append(matrix.getQuick(i, j)); } } stringBuilder.append("]"); return stringBuilder.toString(); } public static String toMatrix(double[][] matrix) { int m = matrix.length; if (m == 0) { return "[]"; } int n = matrix[0].length; StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append("["); for (int i = 0; i < m; i++) { if (i > 0) { stringBuilder.append(";\n"); } for (int j = 0; j < n; j++) { if (j > 0) { stringBuilder.append(", "); } stringBuilder.append(matrix[i][j]); } } stringBuilder.append("]"); return stringBuilder.toString(); } public static String toMatrix(int[][] matrix) { int m = matrix.length; if (m == 0) { return "[]"; } int n = matrix[0].length; StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append("["); for (int i = 0; i < m; i++) { if (i > 0) { stringBuilder.append(";\n"); } for (int j = 0; j < n; j++) { if (j > 0) { stringBuilder.append(", "); } stringBuilder.append(matrix[i][j]); } } stringBuilder.append("]"); return stringBuilder.toString(); } /* * String output */ public static String toStringList(List<String> array) { StringBuilder stringBuilder = new StringBuilder(); for (int i = 0; i < array.size(); i++) { if (i > 0) { stringBuilder.append(", "); } stringBuilder.append("\'"); stringBuilder.append(array.get(i)); stringBuilder.append("\'"); } return stringBuilder.toString(); } } ================================================ FILE: src/java/edu/stanford/math/plex4/io/ObjReader.java ================================================ package edu.stanford.math.plex4.io; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; import java.util.List; import edu.stanford.math.plex4.homology.chain_basis.SimplexComparator; import edu.stanford.math.plex4.metric.impl.EuclideanMetricSpace; import edu.stanford.math.plex4.streams.impl.ExplicitSimplexStream; import edu.stanford.math.plex4.streams.impl.GeometricSimplexStream; import edu.stanford.math.primitivelib.autogen.array.DoubleArrayUtility; public class ObjReader implements ObjectReader<GeometricSimplexStream> { public GeometricSimplexStream importFromFile(String path) { BufferedReader reader = null; String line = null; String[] entries = null; List<double[]> vertices = new ArrayList<double[]>(); List<int[]> faces = new ArrayList<int[]>(); try { reader = new BufferedReader(new FileReader(path)); // continue reading the data while ((line = reader.readLine()) != null) { // split the line into the individual tokens entries = line.split(" "); if (entries.length == 0) { continue; } String prefix = entries[0]; if (prefix.equals("#")) { // comment continue; } else if (prefix.equals("v")) { // vertex double[] vertex = new double[entries.length - 1]; for (int i = 1; i < entries.length; i++) { vertex[i - 1] = Double.parseDouble(entries[i]); } vertices.add(vertex); } else if (prefix.equals("f")) { // face int[] face = new int[entries.length - 1]; for (int i = 1; i < entries.length; i++) { face[i - 1] = Integer.parseInt(entries[i]) - 1; } faces.add(face); } else { // unsupported prefix - just continue continue; } } // close the reader if necessary if (reader != null) { reader.close(); } } catch (IOException e) { e.printStackTrace(); } EuclideanMetricSpace metricSpace = new EuclideanMetricSpace(DoubleArrayUtility.toMatrix(vertices)); ExplicitSimplexStream stream = new ExplicitSimplexStream(SimplexComparator.getInstance()); for (int i = 0; i < vertices.size(); i++) { stream.addVertex(i); } for (int[] face: faces) { stream.addElement(new int[]{face[0], face[1]}); stream.addElement(new int[]{face[0], face[2]}); stream.addElement(new int[]{face[1], face[2]}); stream.addElement(face); } return new GeometricSimplexStream(stream, metricSpace); } } ================================================ FILE: src/java/edu/stanford/math/plex4/io/ObjectReader.java ================================================ package edu.stanford.math.plex4.io; import java.io.IOException; public interface ObjectReader<T> { T importFromFile(String path) throws IOException; } ================================================ FILE: src/java/edu/stanford/math/plex4/io/ObjectWriter.java ================================================ package edu.stanford.math.plex4.io; import java.io.IOException; public interface ObjectWriter<T> { void writeToFile(T object, String path) throws IOException; String getExtension(); } ================================================ FILE: src/java/edu/stanford/math/plex4/io/SimplexStreamReaderWriter.java ================================================ package edu.stanford.math.plex4.io; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import edu.stanford.math.plex4.homology.chain_basis.Simplex; import edu.stanford.math.plex4.streams.impl.ExplicitSimplexStream; import edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream; public class SimplexStreamReaderWriter implements ObjectReader<AbstractFilteredStream<Simplex>>, ObjectWriter<AbstractFilteredStream<Simplex>> { private static final SimplexStreamReaderWriter instance = new SimplexStreamReaderWriter(); private SimplexStreamReaderWriter() {} public static SimplexStreamReaderWriter getInstance() { return instance; } public String getExtension() { return "txt"; } public AbstractFilteredStream<Simplex> importFromFile(String path) throws IOException { ExplicitSimplexStream stream = new ExplicitSimplexStream(); BufferedReader reader = null; String line = null; String[] entries = null; String separator = ","; try { reader = new BufferedReader(new FileReader(path)); // format: // <filtrationIndex>,<vertex0>, ... <vertexN> // continue reading the data while ((line = reader.readLine()) != null) { // split the line into the individual tokens entries = line.split(separator); int filtrationIndex = Integer.parseInt(entries[0]); int[] vertices = new int[entries.length - 1]; for (int i = 0; i < vertices.length; i++) { vertices[i] = Integer.parseInt(entries[i + 1]); } stream.addElement(vertices, filtrationIndex); } } catch (IOException e) { e.printStackTrace(); } finally { // close the reader if necessary if (reader != null) { reader.close(); } } return stream; } public void writeToFile(AbstractFilteredStream<Simplex> object, String path) throws IOException { BufferedWriter writer = null; try { writer = new BufferedWriter(new FileWriter(path, false)); for (Simplex simplex: object) { Integer filtrationIndex = object.getFiltrationIndex(simplex); writer.write(filtrationIndex.toString() + ","); int[] vertices = simplex.getVertices(); for (int i = 0; i < vertices.length; i++) { Integer vertex = vertices[i]; writer.write(vertex.toString()); if (i < vertices.length - 1) { writer.write(","); } } writer.newLine(); } } catch (IOException e) { e.printStackTrace(); } finally { if (writer != null) { writer.close(); } } } } ================================================ FILE: src/java/edu/stanford/math/plex4/io/Table.java ================================================ package edu.stanford.math.plex4.io; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.List; import edu.stanford.math.plex4.utility.ExceptionUtility; import edu.stanford.math.primitivelib.autogen.array.IntArrayMath; /** * This class holds a table of string values. It contains functionality for * outputting in comma separated and pretty printed formats. * * @author Andrew Tausz * */ public class Table { // the title of the table protected String title = ""; // the number of columns protected int numColumns = 0; // the number of rows protected int numRows = 0; // this array holds the name of each column protected ArrayList<String> columnHeadings = new ArrayList<String>(); // this array holds the contents of the table, by row protected ArrayList<ArrayList<String>> rows = new ArrayList<ArrayList<String>>(); public Table() { } /** * This function sets the title of the table. * * @param title * the title to set to */ public void setTitle(String title) { ExceptionUtility.verifyNonNull(title); this.title = title; } /** * This function returns the title of the table. * * @return the table's title */ public String getTitle() { return this.title; } /** * This function adds a new column to the table. * * @param columnHeading * the name of the column to add */ public void addColumn(String columnHeading) { this.columnHeadings.add(columnHeading); this.numColumns++; } /** * This function sets the heading of the specified column. * * @param column * the index of the column * @param columnHeading * the new heading of the column */ public void setColumnHeading(int column, String columnHeading) { ExceptionUtility.verifyLessThan(column, this.numColumns); this.columnHeadings.set(column, columnHeading); } /** * This function returns the heading of the specified column. * * @param column * the index of the column * @return the heading of the specified column */ public String getColumnHeading(int column) { ExceptionUtility.verifyLessThan(column, this.numColumns); return this.columnHeadings.get(column); } /** * This function adds a data row to the table. It converts each object in * the input to a string, by calling the toString function. * * @param row * a collection containing the data to add */ public void addRow(Collection<Object> row) { // make sure that the row contains the right number of entries ExceptionUtility.verifyEqual(row.size(), this.columnHeadings.size()); // create a new string array ArrayList<String> stringRow = new ArrayList<String>(); // convert each object to a string for (Object element : row) { stringRow.add(element.toString()); } this.rows.add(stringRow); this.numRows++; } /** * This function adds a data row to the table. * * @param row * a collection containing the data to add */ public void addRow(List<String> row) { // make sure that the row contains the right number of entries ExceptionUtility.verifyEqual(row.size(), this.columnHeadings.size()); // create a new string array ArrayList<String> stringRow = new ArrayList<String>(); // convert collection to a list stringRow.addAll(row); this.rows.add(stringRow); this.numRows++; } /** * This function adds a data row to the table. * * @param row * a collection containing the data to add */ public void addRow(String[] row, boolean trimElements) { // make sure that the row contains the right number of entries ExceptionUtility.verifyEqual(row.length, this.columnHeadings.size()); // create a new string array ArrayList<String> stringRow = new ArrayList<String>(); // add the elements to the array for (String rowElement : row) { if (trimElements) { stringRow.add(rowElement.trim()); } else { stringRow.add(rowElement); } } this.rows.add(stringRow); this.numRows++; } /** * This function returns the entry in the table located at (row, column). * * @param row * the row of the entry * @param column * the column of the entry * @return the element at the specified location */ public String getEntry(int row, int column) { ExceptionUtility.verifyLessThan(row, this.numRows); ExceptionUtility.verifyLessThan(column, this.numColumns); ExceptionUtility.verifyNonNegative(row); ExceptionUtility.verifyNonNegative(column); return this.rows.get(row).get(column); } /** * This function returns the string representation of the table. For now it * uses the pretty print version. */ @Override public String toString() { return this.toPrettyString(" | "); } /** * This function creates a string holding the contents of the table in comma * separated format. * * @param separator * the separator between each column * @param includeTitle * if true, then the title is also printed * @param includeHeadings * if true, then the headings are printed * @return a string containing the contents of the table */ public String toCSVString(String separator, boolean includeTitle, boolean includeHeadings) { StringBuilder builder = new StringBuilder(); // print the title if required if (includeTitle) { builder.append(this.title + "\n"); } // print the column headings for (int j = 0; j < this.columnHeadings.size(); j++) { if (j > 0) { builder.append(separator); } builder.append(this.columnHeadings.get(j)); } builder.append('\n'); // print the table contents for (int i = 0; i < this.rows.size(); i++) { ArrayList<String> row = this.rows.get(i); for (int j = 0; j < row.size(); j++) { if (j > 0) { builder.append(separator); } builder.append(row.get(j)); } builder.append("\n"); } return builder.toString(); } /** * This function returns a string holding the contents of the table. It pads * the columns with spaces so that the columns have uniform width. * * @return a visually appealing textual representation of the table */ public String toPrettyString(String separator) { StringBuilder builder = new StringBuilder(); int[] columnWidths = new int[this.numColumns]; // print the title builder.append(this.title + "\n"); // compute the width of each column for (int j = 0; j < this.numColumns; j++) { int columnWidth = this.columnHeadings.get(j).length(); for (int i = 0; i < this.numRows; i++) { columnWidth = Math.max(columnWidth, this.getEntry(i, j).length()); } columnWidths[j] = columnWidth; } // print the column names for (int j = 0; j < this.numColumns; j++) { String label = this.columnHeadings.get(j); if (j > 0) { builder.append(separator); } builder.append(this.padString(label, columnWidths[j], ' ')); } builder.append('\n'); // print a separator between Headings and data int totalWidth = IntArrayMath.sum(columnWidths) + (this.numColumns - 1) * separator.length(); builder.append(this.repeatCharacter('-', totalWidth)); builder.append('\n'); // print the table contents for (int i = 0; i < this.numRows; i++) { for (int j = 0; j < this.numColumns; j++) { String label = this.getEntry(i, j); if (j > 0) { builder.append(separator); } builder.append(this.padString(label, columnWidths[j], ' ')); } builder.append('\n'); } return builder.toString(); } /** * This function pads the input string with padCharacter so that the * resulting length is equal to the parameter length. * * @param input * the string to pad * @param length * the total length of the resulting string * @param padCharacter * the character to pad with * @return the padded string */ private String padString(String input, int length, char padCharacter) { ExceptionUtility.verifyNonNull(input); int padLength = length - input.length(); ExceptionUtility.verifyNonNegative(padLength); if (padLength == 0) { return input; } else { return (input + repeatCharacter(padCharacter, padLength)); } } /** * This function returns a string containing the input character repeated. * * @param character * the character to repeat * @param length * the number of times to repeat * @return a string containing the character repeated length times */ private String repeatCharacter(char character, int length) { ExceptionUtility.verifyPositive(length); char[] charArray = new char[length]; Arrays.fill(charArray, character); return new String(charArray); } } ================================================ FILE: src/java/edu/stanford/math/plex4/kd/KDEuclideanMetricSpace.java ================================================ package edu.stanford.math.plex4.kd; import edu.stanford.math.plex4.metric.impl.ObjectSearchableFiniteMetricSpace; import edu.stanford.math.primitivelib.autogen.array.DoubleArrayMath; import edu.stanford.math.primitivelib.utility.Infinity; import gnu.trove.TIntHashSet; /** * This class implements the AbstractSearchableMetricSpace interface for providing query functions * for a Euclidean metric space. The underlying search operations are performed with the help of a KD-tree. * * @author Andrew Tausz * */ public class KDEuclideanMetricSpace extends ObjectSearchableFiniteMetricSpace<double[]> { private final KDTree tree; private final int dimension; public KDEuclideanMetricSpace(double[][] dataPoints) { super(dataPoints); this.tree = new KDTree(dataPoints); this.dimension = dataPoints[0].length; } public double[][] getPoints() { return this.elements; } public int getNearestPointIndex(double[] queryPoint) { return this.tree.nearestNeighborSearch(queryPoint); } public TIntHashSet getOpenNeighborhood(double[] queryPoint, double epsilon) { return this.tree.epsilonNeighborhoodSearch(queryPoint, epsilon, true); } public TIntHashSet getClosedNeighborhood(double[] queryPoint, double epsilon) { return this.tree.epsilonNeighborhoodSearch(queryPoint, epsilon, false); } public int size() { return elements.length; } public double distance(double[] a, double[] b) { return Math.sqrt(DoubleArrayMath.squaredDistance(a, b)); } public double[] getPoint(int index) { return this.elements[index]; } public double distance(int i, int j) { return this.distance(this.getPoint(i), this.getPoint(j)); } public double[] getMaximumCoordinates() { double[] maxima = new double[this.dimension]; for (int j = 0; j < this.dimension; j++) { maxima[j] = Infinity.Double.getNegativeInfinity(); } for (int i = 0; i < this.elements.length; i++) { for (int j = 0; j < this.dimension; j++) { maxima[j] = Math.max(maxima[j], this.elements[i][j]); } } return maxima; } public double[] getMinimumCoordinates() { double[] minima = new double[this.dimension]; for (int j = 0; j < this.dimension; j++) { minima[j] = Infinity.Double.getPositiveInfinity(); } for (int i = 0; i < this.elements.length; i++) { for (int j = 0; j < this.dimension; j++) { minima[j] = Math.min(minima[j], this.elements[i][j]); } } return minima; } } ================================================ FILE: src/java/edu/stanford/math/plex4/kd/KDNode.java ================================================ package edu.stanford.math.plex4.kd; /** * This class contains the functionality of a node * within a KD-tree. * * @author Andrew Tausz * */ public class KDNode { private final int index; private KDNode left; private KDNode right; private final int splitAxis; public KDNode(int index, int splitAxis) { this.left = null; this.right = null; this.index = index; this.splitAxis = splitAxis; } public int getIndex() { return this.index; } public KDNode getLeft() { return this.left; } public KDNode getRight() { return this.right; } public int getSplitAxis() { return this.splitAxis; } public void setLeft(KDNode node) { this.left = node; } public void setRight(KDNode node) { this.right = node; } } ================================================ FILE: src/java/edu/stanford/math/plex4/kd/KDTree.java ================================================ package edu.stanford.math.plex4.kd; import java.util.ArrayList; import java.util.Comparator; import java.util.List; import java.util.Random; import edu.stanford.math.plex4.utility.ExceptionUtility; import edu.stanford.math.primitivelib.autogen.array.DoubleArrayMath; import edu.stanford.math.primitivelib.autogen.array.IntArrayGeneration; import edu.stanford.math.primitivelib.autogen.array.IntArrayUtility; import edu.stanford.math.primitivelib.autogen.pair.ObjectObjectPair; import gnu.trove.TIntHashSet; /** * This class implements the functionality of a KD-tree. It is * designed for the efficient searching of Euclidean spaces. * * @author Andrew Tausz * */ public class KDTree { private final int size; private final int dimension; private KDNode root; private static Random random = new Random(); /** * There are two options for constructing the KD-tree. One is * to partition by medians, and the other is to partition randomly. * Partitioning by medians produces a more balanced tree, but is * more expensive to construct. */ private boolean useMedian = true; /** * Points are stored as rows in the dataPoints array */ private final double[][] dataPoints; /** * Constructor for initializing the KD-tree with a set of points. * @param dataPoints */ public KDTree(double[][] dataPoints) { ExceptionUtility.verifyNonNull(dataPoints); ExceptionUtility.verifyPositive(dataPoints.length); this.dataPoints = dataPoints; this.size = dataPoints.length; this.dimension = dataPoints[0].length; // construct KD tree this.root = this.construct(IntArrayUtility.toList(IntArrayGeneration.range(0, this.size)), 0); } /** * This function recursively constructs the tree by partitioning the * Euclidean space axis-by-axis. * * @param points the list of points to partition * @param depth the current depth of the iteration * @return a KDNode for the current subtree */ private KDNode construct(List<Integer> points, int depth) { int axis = depth % this.dimension; if (points.isEmpty()) { return null; } if (points.size() == 1) { return new KDNode(points.get(0), axis); } int splitIndex = 0; if (this.useMedian) { splitIndex = this.getMedianSplitIndex(points, axis); } else { splitIndex = this.getRandomSplitIndex(points); } ObjectObjectPair<List<Integer>, List<Integer>> pointListPair = this.splitPoints(points, axis, splitIndex); points = null; KDNode kdNode = new KDNode(splitIndex, axis); kdNode.setLeft(this.construct(pointListPair.getFirst(), depth + 1)); kdNode.setRight(this.construct(pointListPair.getSecond(), depth + 1)); return kdNode; } /** * This function simply returns a random element within the list of indices. * * @param pointIndices the list to select from * @return a random element from the list */ private int getRandomSplitIndex(List<Integer> pointIndices) { return pointIndices.get(random.nextInt(pointIndices.size())); } /** * This function selects the index that is the median of the values when sorted * by the specified axis. * * @param pointIndices * @param axis the axis to find the median along * @return the index of the median */ private int getMedianSplitIndex(List<Integer> pointIndices, final int axis) { Comparator<Integer> comparator = getAxisComparator(axis); java.util.Collections.sort(pointIndices, comparator); return pointIndices.get((pointIndices.size() + 1) / 2); } /** * This function splits the points into two groups - those that are less than the one at the split index, * and those that are greater than or equal. * * @param pointIndices the list of points to divide * @param axis the axis to compare along * @param splitIndex the index to split on * @return a GenericPair containing the two lists described above */ private ObjectObjectPair<List<Integer>, List<Integer>> splitPoints(List<Integer> pointIndices, final int axis, int splitIndex) { Comparator<Integer> comparator = getAxisComparator(axis); List<Integer> lessThan = new ArrayList<Integer>(); List<Integer> greaterThanOrEqual = new ArrayList<Integer>(); for (Integer index: pointIndices) { if (comparator.compare(index, splitIndex) < 0) { lessThan.add(index); } else { greaterThanOrEqual.add(index); } } return new ObjectObjectPair<List<Integer>, List<Integer>>(lessThan, greaterThanOrEqual); } /** * This function returns a comparator used for ordering the points by their locations along * a particular axis. * * @param axis the axis to order by * @return a comparator which compares points by a particular coordinate */ private Comparator<Integer> getAxisComparator(final int axis) { return new Comparator<Integer>() { public int compare(Integer o1, Integer o2) { if (dataPoints[o1][axis] < dataPoints[o2][axis]) { return -1; } else if (dataPoints[o1][axis] > dataPoints[o2][axis]) { return 1; } else { return 0; } } }; } /** * This function returns the index of the nearest neighbor to the query point. * * @param queryPoint the point to find the closest point to * @return the index of the nearest point to the query point */ public int nearestNeighborSearch(double[] queryPoint) { return nearestNeighborSearch(this.root, queryPoint, this.root.getIndex(), 0); } /** * This function performs the nearest neighborhood search recursively. * It is an internal helper function. * * @param node the node to search in * @param queryPoint the reference point * @param bestIndex the best point so far * @param depth the recursion depth * @return the index of the nearest point to the query point */ private int nearestNeighborSearch(KDNode node, double[] queryPoint, int bestIndex, int depth) { if (node == null) { return bestIndex; } double[] bestPoint = this.dataPoints[bestIndex]; // get the current axis int axis = node.getSplitAxis(); // get the current point int currentIndex = node.getIndex(); double[] currentPoint = this.dataPoints[currentIndex]; // Calculate whether current node is the best so far double currentSquaredDistance = DoubleArrayMath.squaredDistance(queryPoint, currentPoint); double bestSquaredDistance = DoubleArrayMath.squaredDistance(queryPoint, bestPoint); if (currentSquaredDistance < bestSquaredDistance) { bestPoint = currentPoint; bestIndex = currentIndex; } // determine which side of the hyperplane the query point is in // if side > 0 then the query point is on the "right" side of the hyperplane double axisDifference = queryPoint[axis] - currentPoint[axis]; // the near child is the node for the half space containing the query point KDNode nearChild = null; // the far child is the node for the half space not containing the query point KDNode farChild = null; if (axisDifference > 0) { nearChild = node.getRight(); farChild = node.getLeft(); } else { nearChild = node.getLeft(); farChild = node.getRight(); } // search the current half-space (the half-space containing the query point) bestIndex = nearestNeighborSearch(nearChild, queryPoint, bestIndex, depth + 1); // test to see if we need to search other half-space double separatingPlaneDistance = DoubleArrayMath.squaredDistance(queryPoint[axis], currentPoint[axis]); if (bestSquaredDistance > separatingPlaneDistance) { bestIndex = nearestNeighborSearch(farChild, queryPoint, bestIndex, depth + 1); } return bestIndex; } /** * This function finds all points within an open or closed neighborhood of the query point. * * @param queryPoint the center of the ball to query * @param epsilon the radius of the ball * @param openNeighborhood true if the neighborhood is open and false otherwise * @return the indices of those points that fall within the ball centered at the query point */ public TIntHashSet epsilonNeighborhoodSearch(double[] queryPoint, double epsilon, boolean openNeighborhood) { TIntHashSet neighborhood = new TIntHashSet(); epsilonNeighborhoodSearch(this.root, queryPoint, neighborhood, 0, epsilon * epsilon, openNeighborhood); return neighborhood; } /** * This is a helper function which performs the recursive search for the neighborhood search. * * @param node the current KD-tree node * @param queryPoint the reference point * @param neighborhood the current set of points found * @param depth the recursion depth * @param epsilonSquared the square of the radius of the ball * @param openNeighborhood true if the neighborhood is open and false otherwise */ private void epsilonNeighborhoodSearch(KDNode node, double[] queryPoint, TIntHashSet neighborhood, int depth, double epsilonSquared, boolean openNeighborhood) { if (node == null) { return; } // get the current axis int axis = node.getSplitAxis(); // get the current point int currentIndex = node.getIndex(); double[] currentPoint = this.dataPoints[currentIndex]; // calculate whether the current node belongs in the epsilon-neighborhood // of the query point double currentSquaredDistance = DoubleArrayMath.squaredDistance(queryPoint, currentPoint); if (currentSquaredDistance < epsilonSquared) { neighborhood.add(currentIndex); } // determine which side of the hyperplane the query point is in // if side > 0 then the query point is on the "right" side of the hyperplane double axisDifference = queryPoint[axis] - currentPoint[axis]; double squaredAxisDistance = axisDifference * axisDifference; // the near child is the node for the half space containing the query point KDNode nearChild = null; // the far child is the node for the half space not containing the query point KDNode farChild = null; if (axisDifference > 0) { nearChild = node.getRight(); farChild = node.getLeft(); } else { nearChild = node.getLeft(); farChild = node.getRight(); } // determine whether the epsilon-neighborhood intersects the far half-space if (openNeighborhood) { if (epsilonSquared > squaredAxisDistance) { // yes there is overlap - so search far half-space epsilonNeighborhoodSearch(farChild, queryPoint, neighborhood, depth + 1, epsilonSquared, openNeighborhood); } } else { if (epsilonSquared >= squaredAxisDistance) { // yes there is overlap - so search far half-space epsilonNeighborhoodSearch(farChild, queryPoint, neighborhood, depth + 1, epsilonSquared, openNeighborhood); } } // search the near half-space for more neighborhood members epsilonNeighborhoodSearch(nearChild, queryPoint, neighborhood, depth + 1, epsilonSquared, openNeighborhood); } } ================================================ FILE: src/java/edu/stanford/math/plex4/metric/impl/EuclideanMetricSpace.java ================================================ package edu.stanford.math.plex4.metric.impl; import edu.stanford.math.primitivelib.autogen.array.DoubleArrayMath; /** * This class implements the standard metric space structure on R^n given by the * Euclidean metric. * * @author Andrew Tausz * */ public class EuclideanMetricSpace extends ObjectSearchableFiniteMetricSpace<double[]> { /** * This constructor initializes the class with an array of elements. * * @param array the array of elements that will be the points in the metric space */ public EuclideanMetricSpace(double[][] array) { super(array); } @Override public double distance(double[] a, double[] b) { return DoubleArrayMath.distance(a, b); } } ================================================ FILE: src/java/edu/stanford/math/plex4/metric/impl/ExplicitMetricSpace.java ================================================ package edu.stanford.math.plex4.metric.impl; import java.util.List; import edu.stanford.math.plex4.metric.interfaces.AbstractSearchableMetricSpace; import edu.stanford.math.primitivelib.utility.Infinity; import gnu.trove.TIntHashSet; /** * This class implements the AbstractIntMetricSpace interface. The distances between points * is given by a distance matrix. * * @author Andrew Tausz * */ public class ExplicitMetricSpace implements AbstractSearchableMetricSpace<Integer> { private final double[][] distanceMatrix; /** * This constructor initializes the class with the given distance matrix. * The supplied distance matrix must be square, and must define a valid metric. * Ie. it must be symmetric, have zeros exactly on the diagonal, and satisfy * the triangle inequality. Due to reasons of efficiency, these properties * are not checked, and the user is required make sure that they hold. * If the properties do not hold, no guarantees can be made about the * behaviour of the algorithms. * * @see edu.stanford.math.plex4.metric.interfaces.AbstractSearchableMetricSpace * * @param distanceMatrix the distance matrix to initialize with */ public ExplicitMetricSpace(double[][] distanceMatrix) { this.distanceMatrix = distanceMatrix; } public double distance(int i, int j) { return distanceMatrix[i][j]; } public int size() { return distanceMatrix.length; } public TIntHashSet getClosedNeighborhood(Integer queryPoint, double epsilon) { TIntHashSet result = new TIntHashSet(); for (int i = 0; i < distanceMatrix[queryPoint].length; i++) { double distance = distanceMatrix[queryPoint][i]; if (distance <= epsilon) { result.add(i); } } return result; } public TIntHashSet getKNearestNeighbors(Integer queryPoint, int k) { TruncatedPriorityQueue<Integer> tpq = new TruncatedPriorityQueue<Integer>(k); for (int i = 0; i < distanceMatrix[queryPoint].length; i++) { if (queryPoint.equals(i)) { continue; } double distance = distanceMatrix[queryPoint][i]; tpq.insert(i, distance); } TIntHashSet result = new TIntHashSet(); List<Integer> indices = tpq.getIndices(); for (Integer index: indices) { result.add(index); } return result; } public int getNearestPointIndex(Integer queryPoint) { double minDistance = Infinity.Double.getPositiveInfinity(); int minIndex = -1; for (int i = 0; i < distanceMatrix[queryPoint].length; i++) { if (queryPoint.equals(i)) { continue; } double distance = distanceMatrix[queryPoint][i]; if (distance < minDistance) { minDistance = distance; minIndex = i; } } return minIndex; } public TIntHashSet getOpenNeighborhood(Integer queryPoint, double epsilon) { TIntHashSet result = new TIntHashSet(); for (int i = 0; i < distanceMatrix[queryPoint].length; i++) { double distance = distanceMatrix[queryPoint][i]; if (distance < epsilon) { result.add(i); } } return result; } public Integer getPoint(int index) { return index; } public Integer[] getPoints() { Integer[] result = new Integer[distanceMatrix.length]; for (int i = 0; i < distanceMatrix.length; i++) { result[i] = i; } return result; } public double distance(Integer a, Integer b) { return distanceMatrix[a][b]; } } ================================================ FILE: src/java/edu/stanford/math/plex4/metric/impl/ObjectSearchableFiniteMetricSpace.java ================================================ package edu.stanford.math.plex4.metric.impl; import java.util.List; import edu.stanford.math.plex4.metric.interfaces.AbstractSearchableMetricSpace; import gnu.trove.TIntHashSet; /** * This class implements the AbstractSearchableMetricSpace interface over type T. It stores the * elements of the metric space as an array. * * @author Andrew Tausz * * @param <T> */ public abstract class ObjectSearchableFiniteMetricSpace<T> implements AbstractSearchableMetricSpace<T> { /** * This array stores the elements in the metric space */ protected final T[] elements; /** * This constructor initializes the class with an array of elements. * * @param array the array of elements that will be the points in the metric space */ public ObjectSearchableFiniteMetricSpace(T[] array) { this.elements = array; } public TIntHashSet getKNearestNeighbors(T queryPoint, int k) { TruncatedPriorityQueue<Integer> tpq = new TruncatedPriorityQueue<Integer>(k); for (int i = 0; i < elements.length; i++) { T element = elements[i]; if (element.equals(queryPoint)) { continue; } double distance = this.distance(queryPoint, element); tpq.insert(i, distance); } TIntHashSet result = new TIntHashSet(); List<Integer> indices = tpq.getIndices(); for (Integer index: indices) { result.add(index); } return result; } public int getNearestPointIndex(T queryPoint) { double minimumDistance = Double.MAX_VALUE; double currentDistance = 0; int nearestIndex = 0; int n = this.elements.length; for (int i = 0; i < n; i++) { currentDistance = this.distance(queryPoint, this.elements[i]); if (currentDistance < minimumDistance) { minimumDistance = currentDistance; nearestIndex = i; } } return nearestIndex; } public TIntHashSet getOpenNeighborhood(T queryPoint, double epsilon) { TIntHashSet neighborhood = new TIntHashSet(); if (epsilon == 0) { return neighborhood; } int n = this.elements.length; for (int i = 0; i < n; i++) { if (this.distance(queryPoint, this.elements[i]) < epsilon) { neighborhood.add(i); } } return neighborhood; } public TIntHashSet getClosedNeighborhood(T queryPoint, double epsilon) { TIntHashSet neighborhood = new TIntHashSet(); int n = this.elements.length; for (int i = 0; i < n; i++) { if (this.distance(queryPoint, this.elements[i]) <= epsilon) { neighborhood.add(i); } } return neighborhood; } public abstract double distance(T a, T b); public T getPoint(int index) { return this.elements[index]; } public T[] getPoints() { return this.elements; } public double distance(int i, int j) { return this.distance(this.elements[i], this.elements[j]); } public int size() { return this.elements.length; } } ================================================ FILE: src/java/edu/stanford/math/plex4/metric/impl/TruncatedPriorityQueue.java ================================================ package edu.stanford.math.plex4.metric.impl; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; import edu.stanford.math.primitivelib.autogen.pair.ObjectDoublePair; /** * <p>This class is used for holding the set of k-indices with the lowest ranks or values. * It is used by adding elements along with their ranks. It stores a maximum of k values, * and discards all values that are not in the lowest k.</p> * * <p>An example of a use of this class is for maintaining a list of k-nearest neighbors.</p> * * @author Andrew Tausz * * @param <T> the index type */ public class TruncatedPriorityQueue<T> { private final LinkedList<ObjectDoublePair<T>> list = new LinkedList<ObjectDoublePair<T>>(); private final int k; public TruncatedPriorityQueue(int k) { this.k = k; } /** * This function returns the list of object-value pairs currently in the queue. * * @return a list of object-value pairs */ public List<ObjectDoublePair<T>> getListOfPairs() { return this.list; } /** * This function returns the list of indices currently in the queue. * * @return a list of indices */ public List<T> getIndices() { List<T> indices = new ArrayList<T>(); for (ObjectDoublePair<T> pair: this.list) { indices.add(pair.getFirst()); } return indices; } /** * <p>This function inserts the given object (or index), with a specified value into the queue. * It holds the elements in sorted order. Note, however, if the queue is already full and the * value of the inserted object is higher than all of the elements in the queue, it is not * actually inserted.</p> * * <p>Examples:</p> * <p>list = {(a, 1), (b, 4)}. Inserting (c, 2) produces {(a, 1), (c, 2), (b, 4)}, when k >= 3. * If k == 2, then the result is {(a, 1), (c, 2)}. Inserting (d, 8), with k == 2 does not * modify the list.</p> * * @param index the object to insert * @param value the value of the object */ public void insert(T index, double value) { if (this.list.isEmpty()) { this.list.add(new ObjectDoublePair<T>(index, value)); return; } if (value < this.list.getFirst().getSecond()) { this.list.addFirst(new ObjectDoublePair<T>(index, value)); this.truncate(); return; } if (this.list.getLast().getSecond() <= value) { this.list.addLast(new ObjectDoublePair<T>(index, value)); this.truncate(); return; } // at this point we know list[0] <= value < list[k - 1] int i = 0; int insertionPoint = 0; for (ObjectDoublePair<T> pair: this.list) { if (value < pair.getSecond()) { insertionPoint = i; break; } i++; } this.list.add(insertionPoint, new ObjectDoublePair<T>(index, value)); this.truncate(); } /** * This function truncates the queue so that it contains a maximum of k elements. */ private void truncate() { while (this.list.size() > k) { this.list.removeLast(); } } } ================================================ FILE: src/java/edu/stanford/math/plex4/metric/interfaces/AbstractIntMetricSpace.java ================================================ package edu.stanford.math.plex4.metric.interfaces; /** * This interface defines the functionality of a finite metric space where * the objects are indexed by integers. Note that the indices are designed * to be in the range {0, ..., size - 1}. * * @author Andrew Tausz * */ public interface AbstractIntMetricSpace { /** * This function returns the distance between the object at index i and the * object at index j. * * @param i the index of the first object * @param j the index of the second object * @return the distance between the objects at the two given indices */ public double distance(int i, int j); /** * This function returns the number of points in the metric space. * * @return the number of points in the metric space. */ public int size(); } ================================================ FILE: src/java/edu/stanford/math/plex4/metric/interfaces/AbstractObjectMetric.java ================================================ package edu.stanford.math.plex4.metric.interfaces; /** * This interface defines a metric on the type T. Note that * an implementing class should obey the axioms of a metric space - * namely symmetry, positivity and the triangle inequality. * * @author Andrew Tausz * * @param <T> the underlying type of the metric */ public interface AbstractObjectMetric<T> { /** * This function returns the distance between two points. * * @param a the first point * @param b the second point * @return the distance between the two points */ public double distance(T a, T b); } ================================================ FILE: src/java/edu/stanford/math/plex4/metric/interfaces/AbstractObjectMetricSpace.java ================================================ package edu.stanford.math.plex4.metric.interfaces; /** * This interface defines the functionality of a finite metric space whose points are * of type T. The points in the metric space are indexed by the values {0, ..., size - 1} * * @author Andrew Tausz * * @param <T> the type of the points in the metric space */ public interface AbstractObjectMetricSpace<T> extends AbstractIntMetricSpace, AbstractObjectMetric<T> { /** * This function returns the point at the specified index. * * @param index the index of the point to retrieve * @return the point at the given index */ public T getPoint(int index); /** * This function returns the set of points in the metric space as an array. The returned * array satisfies the requirement that the indices of the points in the array are equal to the * indices of the points within the metric space. * * @return an array containing the points of the metric space */ public T[] getPoints(); } ================================================ FILE: src/java/edu/stanford/math/plex4/metric/interfaces/AbstractSearchableMetricSpace.java ================================================ package edu.stanford.math.plex4.metric.interfaces; import gnu.trove.TIntHashSet; /** * This interface defines the functionality of a metric space with various querying * capabilities. * * @author Andrew Tausz * * @param <T> the type of the points in the metric space */ public interface AbstractSearchableMetricSpace<T> extends AbstractObjectMetricSpace<T> { /** * This function returns the index of the point within the metric space nearest to * the given query point. * * @param queryPoint the query point * @return the index of the nearest point in the metric space */ public int getNearestPointIndex(T queryPoint); /** * This function returns the set of indices of points that are contained in the open ball * of radius epsilon, centered at the specified query point. That is it returns all points * satisfying d(p_i, q) < epsilon, where q is the query point. * * @param queryPoint the center of the open ball * @param epsilon the radius of the open ball * @return the set of indices of points contained in the open ball */ public TIntHashSet getOpenNeighborhood(T queryPoint, double epsilon); /** * This function returns the set of indices of points that are contained in the closed ball * of radius epsilon, centered at the specified query point. That is it returns all points * satisfying d(p_i, q) <= epsilon, where q is the query point. * * @param queryPoint the center of the closed ball * @param epsilon the radius of the closed ball * @return the set of indices of points contained in the closed ball */ public TIntHashSet getClosedNeighborhood(T queryPoint, double epsilon); /** * This function returns the indices of the k points that are closest to the given query point. * * @param queryPoint the reference point * @param k the number of nearest neighbors to get * @return the k-nearest neighbors of the query point */ public TIntHashSet getKNearestNeighbors(T queryPoint, int k); } ================================================ FILE: src/java/edu/stanford/math/plex4/metric/landmark/ExplicitLandmarkSelector.java ================================================ package edu.stanford.math.plex4.metric.landmark; import edu.stanford.math.plex4.metric.interfaces.AbstractSearchableMetricSpace; public class ExplicitLandmarkSelector<T> extends LandmarkSelector<T> { public ExplicitLandmarkSelector(AbstractSearchableMetricSpace<T> metricSpace, int[] indices) { super(metricSpace, indices); } @Override protected int[] computeLandmarkSet() { return null; } } ================================================ FILE: src/java/edu/stanford/math/plex4/metric/landmark/LandmarkSelector.java ================================================ package edu.stanford.math.plex4.metric.landmark; import java.util.List; import edu.stanford.math.plex4.metric.impl.TruncatedPriorityQueue; import edu.stanford.math.plex4.metric.interfaces.AbstractSearchableMetricSpace; import edu.stanford.math.plex4.utility.ExceptionUtility; import edu.stanford.math.primitivelib.utility.Infinity; import gnu.trove.TIntHashSet; /** * <p> * This abstract class defines the functionality of a landmark set within an * arbitrary finite metric space. A landmark set is used as an approximation to * the whole metric space for efficiency purposes. It also tends to denoise the * dataset under investigation. For further information about landmark sets, * please consult the paper "Topological estimation using witness complexes", by * Vin de Silva and Gunnar Carlsson. * </p> * * <p> * A class that derives from LandmarkSelector must implement the * computeLandmarkSet function which implements the computation of the landmark * set. * </p> * * @author Andrew Tausz * * @param <T> * the underlying type of the metric space */ public abstract class LandmarkSelector<T> implements AbstractSearchableMetricSpace<T> { /** * This is the underlying metric space upon which the landmark set is build. */ protected final AbstractSearchableMetricSpace<T> metricSpace; /** * This is the size of the landmark set */ protected final int landmarkSetSize; /** * This array holds the mapping between the indices of the landmark points, * and the indices within the metric space. */ protected int[] indexMapping; /** * This constructor initializes the landmark selector with a finite metric * space, and a size parameter. * * @param metricSpace * the metric space to build the landmarks set in * @param landmarkSetSize * the size of the landmark set * @param computeIndexMapping * whether or not to compute the index mapping or not */ public LandmarkSelector(AbstractSearchableMetricSpace<T> metricSpace, int landmarkSetSize, boolean computeIndexMapping) { ExceptionUtility.verifyNonNull(metricSpace); ExceptionUtility.verifyLessThanOrEqual(landmarkSetSize, metricSpace.size()); this.metricSpace = metricSpace; this.landmarkSetSize = landmarkSetSize; if (computeIndexMapping) { this.indexMapping = this.computeLandmarkSet(); } } /** * This constructor initializes the landmark selector with a finite metric * space, and a size parameter. * * @param metricSpace * the metric space to build the landmarks set in * @param landmarkSetSize * the size of the landmark set */ public LandmarkSelector(AbstractSearchableMetricSpace<T> metricSpace, int landmarkSetSize) { this(metricSpace, landmarkSetSize, true); } public LandmarkSelector(AbstractSearchableMetricSpace<T> metricSpace, int[] indices) { ExceptionUtility.verifyNonNull(metricSpace); ExceptionUtility.verifyLessThanOrEqual(indices.length, metricSpace.size()); this.metricSpace = metricSpace; this.landmarkSetSize = indices.length; this.indexMapping = indices; } /** * This function returns the index of the i-th landmark point. * * @param i * the index within the set of landmark points * @return the index of the i-th landmark point */ public int getLandmarkIndex(int i) { return this.indexMapping[i]; } public int[] getLandmarkPoints() { return this.indexMapping; } public int size() { return this.landmarkSetSize; } public double distance(int i, int j) { return this.metricSpace.distance(this.indexMapping[i], this.indexMapping[j]); } public double distance(T a, T b) { return this.metricSpace.distance(a, b); } public T getPoint(int index) { return this.metricSpace.getPoint(this.getLandmarkIndex(index)); } public AbstractSearchableMetricSpace<T> getUnderlyingMetricSpace() { return this.metricSpace; } public T[] getPoints() { throw new UnsupportedOperationException(); } /** * This function constructs the set of landmark points. It must return an * array of size landmarkSetSize, which contains the indices of the landmark * points within the metric space. * * @return an array of indices corresponding to the landmark points in the * metric space */ protected abstract int[] computeLandmarkSet(); /** * This function returns the maximum distance between points in the landmark * selection and points not in the selection. In other words, it returns R = * max_{x in X} d(x, L), where d(x, L) = min_{l in L} d(x, l). * * @return the maximum distance between points in the landmark selection and * points not in it */ public double getMaxDistanceFromPointsToLandmarks() { int[] landmarkArray = this.getLandmarkPoints(); TIntHashSet landmarkSet = toSet(this.getLandmarkPoints()); double maxMinDistance = 0; for (int x = 0; x < this.getUnderlyingMetricSpace().size(); x++) { if (landmarkSet.contains(x)) { continue; } double minDistance = Infinity.Double.getPositiveInfinity(); for (int l : landmarkArray) { double distance = this.getUnderlyingMetricSpace().distance(x, l); if (distance < minDistance) { minDistance = distance; } } if (minDistance > maxMinDistance) { maxMinDistance = minDistance; } } return maxMinDistance; } private static TIntHashSet toSet(int[] values) { TIntHashSet result = new TIntHashSet(); for (int value : values) { result.add(value); } return result; } public TIntHashSet getClosedNeighborhood(T queryPoint, double epsilon) { TIntHashSet result = new TIntHashSet(); for (int i = 0; i < this.landmarkSetSize; i++) { if (this.distance(this.getPoint(i), queryPoint) <= epsilon) { result.add(i); } } return result; } public TIntHashSet getOpenNeighborhood(T queryPoint, double epsilon) { TIntHashSet result = new TIntHashSet(); for (int i = 0; i < this.landmarkSetSize; i++) { if (this.distance(this.getPoint(i), queryPoint) <= epsilon) { result.add(i); } } return result; } public TIntHashSet getKNearestNeighbors(T queryPoint, int k) { TruncatedPriorityQueue<Integer> tpq = new TruncatedPriorityQueue<Integer>(k); for (int i = 0; i < this.landmarkSetSize; i++) { T element = this.getPoint(i); if (element.equals(queryPoint)) { continue; } double distance = this.distance(queryPoint, element); tpq.insert(i, distance); } TIntHashSet result = new TIntHashSet(); List<Integer> indices = tpq.getIndices(); for (Integer index : indices) { result.add(index); } return result; } public int getNearestPointIndex(T queryPoint) { int minIndex = 0; double distance = 0, minDistance = 0; for (int i = 0; i < this.landmarkSetSize; i++) { distance = this.distance(this.getPoint(i), queryPoint); if (i == 0 || distance < minDistance) { minDistance = distance; minIndex = i; } } return minIndex; } } ================================================ FILE: src/java/edu/stanford/math/plex4/metric/landmark/MaxMinLandmarkSelector.java ================================================ package edu.stanford.math.plex4.metric.landmark; import edu.stanford.math.plex4.metric.interfaces.AbstractSearchableMetricSpace; import edu.stanford.math.plex4.utility.RandomUtility; import edu.stanford.math.primitivelib.utility.Infinity; import gnu.trove.TIntHashSet; import gnu.trove.TIntIterator; /** * This class implements sequential max-min landmark selection of points from a * metric space. This method of landmark selection chooses points that are as * far spread out as possible, using the following inductive procedure: * Suppose that {l_0, ..., l_{i-1}} have been chosen as landmark points. * Define the function f(z) = min{d(z, l_0), ...., d(z, l_{i-1}} and define * l_i to be l_i = arg max f(z). We start with l_0 being chosen randomly. * * @author Andrew Tausz * * @param <T> the type of the underlying metric space */ public class MaxMinLandmarkSelector<T> extends LandmarkSelector<T> { private int firstPoint; /** * This constructor initializes the landmark selector with a finite metric space, * and a size parameter. * * @param metricSpace the metric space to build the landmarks set in * @param landmarkSetSize the size of the landmark set */ public MaxMinLandmarkSelector(AbstractSearchableMetricSpace<T> metricSpace, int landmarkSetSize) { super(metricSpace, landmarkSetSize, false); this.firstPoint = RandomUtility.nextUniformInt(0, this.metricSpace.size() - 1); this.indexMapping = this.computeLandmarkSet(); } /** * This constructor initializes the landmark selector with a finite metric space, * and a size parameter. * * @param metricSpace the metric space to build the landmarks set in * @param landmarkSetSize the size of the landmark set * @param firstPoint the initial point to use */ public MaxMinLandmarkSelector(AbstractSearchableMetricSpace<T> metricSpace, int landmarkSetSize, int firstPoint) { super(metricSpace, landmarkSetSize, false); this.firstPoint = firstPoint; this.indexMapping = this.computeLandmarkSet(); } @Override protected int[] computeLandmarkSet() { int[] landmarkIndices = new int[this.landmarkSetSize]; int metricSpaceSize = this.metricSpace.size(); TIntHashSet landmarkSet = new TIntHashSet(); landmarkSet.add(this.firstPoint); landmarkIndices[0] = this.firstPoint; /* * Construct the landmark set inductively. Suppose that * {l_0, ..., l_{i-1}} have been chosen as landmark points. * Define the function * f(z) = min{d(z, l_0), ...., d(z, l_{i-1}} * and define l_i to be l_i = arg max f(z) * */ for (int i = 1; i < this.landmarkSetSize; i++) { double max_f_value = Infinity.Double.getNegativeInfinity(); int arg_max_f = 0; for (int z_index = 0; z_index < metricSpaceSize; z_index++) { if (!landmarkSet.contains(z_index)) { double f_value = this.computeMinDistance(z_index, landmarkSet); if (f_value > max_f_value) { max_f_value = f_value; arg_max_f = z_index; } } } landmarkSet.add(arg_max_f); landmarkIndices[i] = arg_max_f; } return landmarkIndices; } /** * This function computes the function f(z) = min{d(z, l_0), ...., d(z, l_{i-1}}. * * @param queryPointIndex the index of the argument z in the above expression * @param existingLandmarkPoints the set {l_0, ..., l_{i-1}} * @return the value min{d(z, l_0), ...., d(z, l_{i-1}} */ private double computeMinDistance(int queryPointIndex, TIntHashSet existingLandmarkPoints) { double minDistance = Infinity.Double.getPositiveInfinity(); for (TIntIterator iterator = existingLandmarkPoints.iterator(); iterator.hasNext(); ) { minDistance = Math.min(minDistance, this.metricSpace.distance(queryPointIndex, iterator.next())); } return minDistance; } } ================================================ FILE: src/java/edu/stanford/math/plex4/metric/landmark/RandomLandmarkSelector.java ================================================ /** * */ package edu.stanford.math.plex4.metric.landmark; import edu.stanford.math.plex4.metric.interfaces.AbstractSearchableMetricSpace; import edu.stanford.math.plex4.utility.RandomUtility; import gnu.trove.TIntHashSet; import gnu.trove.TIntIterator; /** * This class defines a landmark set in a finite metric space by random selection. * * @author Andrew Tausz * * @param <T> the type of the underlying metric space */ public class RandomLandmarkSelector<T> extends LandmarkSelector<T> { /** * This constructor initializes the landmark selector with a finite metric space, * and a size parameter. * * @param metricSpace the metric space to build the landmarks set in * @param landmarkSetSize the size of the landmark set */ public RandomLandmarkSelector(AbstractSearchableMetricSpace<T> metricSpace, int landmarkSetSize) { super(metricSpace, landmarkSetSize); } @Override protected int[] computeLandmarkSet() { TIntHashSet landmarkSet = RandomUtility.randomSubset(this.landmarkSetSize, this.metricSpace.size()); int[] indices = new int[this.landmarkSetSize]; int index = 0; for (TIntIterator iterator = landmarkSet.iterator(); iterator.hasNext(); ) { indices[index] = iterator.next(); index++; } return indices; } } ================================================ FILE: src/java/edu/stanford/math/plex4/metric/utility/DensityEstimation.java ================================================ package edu.stanford.math.plex4.metric.utility; import edu.stanford.math.plex4.metric.interfaces.AbstractIntMetricSpace; public class DensityEstimation { public static double[] performGaussianKernelDensityEstimation(AbstractIntMetricSpace metricSpace, double sigma) { int n = metricSpace.size(); double[] densities = new double[n]; double distance = 0; double sigmaSquared = sigma * sigma; double factor = 1.0d / (Math.sqrt(2 * Math.PI) * sigma * n); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { distance = metricSpace.distance(i, j); densities[i] += Math.exp(- (distance * distance / sigmaSquared)); } densities[i] *= factor; } return densities; } } ================================================ FILE: src/java/edu/stanford/math/plex4/metric/utility/MetricUtility.java ================================================ package edu.stanford.math.plex4.metric.utility; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import edu.stanford.math.plex4.metric.interfaces.AbstractIntMetricSpace; import edu.stanford.math.plex4.metric.interfaces.AbstractObjectMetricSpace; import edu.stanford.math.plex4.metric.interfaces.AbstractSearchableMetricSpace; import edu.stanford.math.plex4.utility.ArrayUtility; import edu.stanford.math.plex4.utility.RandomUtility; import edu.stanford.math.primitivelib.utility.Infinity; /** * This class contains various functions for dealing with metric spaces. * * @author Andrew Tausz * */ public class MetricUtility { /** * This function estimates the diameter of the supplied metric space. The * diameter is defined as the smallest number r such that d(x, y) <= r for all * x, y in the space. The estimate is obtained by randomly choosing pairs * (i, j), and taking the maximum distance over all pairs. * * @param metricSpace the metric space to estimate the diameter of * @param trials the number of random pairs to choose * @return an estimate of the diameter of the metric space */ public static double estimateDiameter(AbstractIntMetricSpace metricSpace, int trials) { double diameterEstimate = 0; int n = metricSpace.size(); for (int trial = 0; trial < trials; trial++) { int i = RandomUtility.nextUniformInt(0, n - 1); int j = RandomUtility.nextUniformIntExcluded(0, n - 1, i); double distance = metricSpace.distance(i, j); diameterEstimate = Math.max(distance, diameterEstimate); } return diameterEstimate * (((double) trials + 1) / ((double) trials)); } /** * This function performs randomized sampling to find the estimated diameter of the given * metric space. It uses a default number of samples equal to 100. * * @param metricSpace the metric space to estimate the diameter of * @return an estimate of the diameter of the metric space */ public static double estimateDiameter(AbstractIntMetricSpace metricSpace) { return estimateDiameter(metricSpace, Math.min(metricSpace.size(), 100)); } /** * This function computes the coordinate-wise maxima of a given Euclidean metric space. * * @param metricSpace the metric space to compute the maxima for * @return the componentwise minima of the elements of the metric space */ public static double[] computeMaxima(AbstractObjectMetricSpace<double[]> metricSpace) { int dimension = metricSpace.getPoint(0).length; int numPoints = metricSpace.size(); double[] maxima = new double[dimension]; for (int j = 0; j < dimension; j++) { maxima[j] = Infinity.Double.getNegativeInfinity(); } for (int i = 0; i < numPoints; i++) { for (int j = 0; j < dimension; j++) { maxima[j] = Math.max(maxima[j], metricSpace.getPoint(i)[j]); } } return maxima; } /** * This function computes the coordinate-wise minima of a given Euclidean metric space. * * @param metricSpace the metric space to compute the minima for * @return the componentwise minima of the elements of the metric space */ public static double[] computeMinima(AbstractObjectMetricSpace<double[]> metricSpace) { int dimension = metricSpace.getPoint(0).length; int numPoints = metricSpace.size(); double[] minima = new double[dimension]; for (int j = 0; j < dimension; j++) { minima[j] = Infinity.Double.getPositiveInfinity(); } for (int i = 0; i < numPoints; i++) { for (int j = 0; j < dimension; j++) { minima[j] = Math.min(minima[j], metricSpace.getPoint(i)[j]); } } return minima; } /** * This function computes the centroid of the set of points within the metric space. * * @param metricSpace the metric space to compute the centroid of * @return the centroid of the given metric space */ public static double[] computeCentroid(AbstractObjectMetricSpace<double[]> metricSpace) { int dimension = metricSpace.getPoint(0).length; int numPoints = metricSpace.size(); double[] means = new double[dimension]; for (int i = 0; i < numPoints; i++) { for (int j = 0; j < dimension; j++) { means[j] += metricSpace.getPoint(i)[j]; } } for (int j = 0; j < dimension; j++) { means[j] /= numPoints; } return means; } public static double[] getAllDistances(AbstractIntMetricSpace metricSpace, int index) { int n = metricSpace.size(); double[] distances = new double[n]; for (int i = 0; i < n; i++) { distances[i] = metricSpace.distance(i, index); } return distances; } public static <T> double[] getKthNearestNeighborDistances(AbstractSearchableMetricSpace<T> metricSpace, int k) { int n = metricSpace.size(); double[] neighborDistances = new double[n]; for (int i = 0; i < n; i++) { double[] distances = getAllDistances(metricSpace, i); Arrays.sort(distances); neighborDistances[i] = distances[k]; } return neighborDistances; } public static <T> int[] filterByNeighborDistance(AbstractSearchableMetricSpace<T> metricSpace, int k, double proportion) { int n = metricSpace.size(); double[] neighborDistances = getKthNearestNeighborDistances(metricSpace, k); double[] sortedDistances = ArrayUtility.copyOf(neighborDistances, neighborDistances.length); Arrays.sort(sortedDistances); int cutoffIndex = (int) proportion * neighborDistances.length; if (cutoffIndex >= neighborDistances.length) { cutoffIndex = neighborDistances.length - 1; } if (cutoffIndex < 0) { cutoffIndex = 0; } double cutoffDistance = sortedDistances[cutoffIndex]; List<Integer> filteredList = new ArrayList<Integer>(); for (int i = 0; i < n; i++) { if (neighborDistances[i] <= cutoffDistance) { filteredList.add(i); } } int[] indices = new int[filteredList.size()]; int j = 0; for (Integer index: filteredList) { indices[j] = index; j++; } return indices; } } ================================================ FILE: src/java/edu/stanford/math/plex4/streams/derived/DualStream.java ================================================ /** * */ package edu.stanford.math.plex4.streams.derived; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.Iterator; import java.util.List; import java.util.Set; import edu.stanford.math.plex4.homology.barcodes.Interval; import edu.stanford.math.plex4.homology.barcodes.PersistenceInvariantDescriptor; import edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream; import edu.stanford.math.primitivelib.array.ObjectArrayUtility; import edu.stanford.math.primitivelib.autogen.pair.IntObjectPair; import edu.stanford.math.primitivelib.collections.utility.ReversedComparator; import gnu.trove.THashMap; /** * This class implements the dual cochain complex from a given chain complex. It * transforms the boundary operators into coboundary operators. * * @author Andrew Tausz * * @param <T> */ public class DualStream<T> implements AbstractFilteredStream<T> { /** * This is the chain complex. */ private final AbstractFilteredStream<T> forwardStream; /** * This map contains the coboundaries of the elements in the stream. Unfortunately, * there is no general way of getting around this. */ private final THashMap<T, T[]> coboundaryMap = new THashMap<T, T[]>(); /** * This map contains the coefficients of the coboundaries of the elements in the stream. */ private final THashMap<T, int[]> coboundaryCoefficientMap = new THashMap<T, int[]>(); /** * This stores the elements in the stream in reversed order. */ private final List<T> reversedElements = new ArrayList<T>(); /** * This constructor initializes the dualized stream from the regular (forward stream). * * @param forwardStream the forward stream */ public DualStream(AbstractFilteredStream<T> forwardStream) { this.forwardStream = forwardStream; this.constructCoboundaries(); } /* (non-Javadoc) * @see java.lang.Iterable#iterator() */ public Iterator<T> iterator() { return this.reversedElements.iterator(); } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#getFiltrationIndex(java.lang.Object) */ public int getFiltrationIndex(T basisElement) { return this.forwardStream.getFiltrationIndex(basisElement); } public double getFiltrationValue(T basisElement) { return this.forwardStream.getFiltrationValue(basisElement); } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#containsElement(java.lang.Object) */ public boolean containsElement(T basisElement) { // TODO Implement this if you need it. throw new UnsupportedOperationException(); } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#getBoundary(java.lang.Object) */ public T[] getBoundary(T basisElement) { if (this.coboundaryMap.containsKey(basisElement)) { return this.coboundaryMap.get(basisElement); } else { return ObjectArrayUtility.createArray(0, basisElement); } } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#getBoundaryCoefficients(java.lang.Object) */ public int[] getBoundaryCoefficients(T basisElement) { if (this.coboundaryCoefficientMap.containsKey(basisElement)) { return this.coboundaryCoefficientMap.get(basisElement); } else { return new int[0]; } } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#getDimension(java.lang.Object) */ public int getDimension(T basisElement) { return this.forwardStream.getDimension(basisElement); } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#finalizeStream() */ public void finalizeStream() { if (!this.forwardStream.isFinalized()) { this.forwardStream.finalizeStream(); } } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#isFinalized() */ public boolean isFinalized() { return this.forwardStream.isFinalized(); } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#getSize() */ public int getSize() { return this.forwardStream.getSize(); } /** * This function constructs the coboundary maps. */ private void constructCoboundaries() { THashMap<T, ArrayList<IntObjectPair<T>>> coboundaryListMap = new THashMap<T, ArrayList<IntObjectPair<T>>>(); for (T element: this.forwardStream) { this.reversedElements.add(element); T[] boundary = this.forwardStream.getBoundary(element); int[] boundaryCoefficients = this.forwardStream.getBoundaryCoefficients(element); for (int i = 0; i < boundary.length; i++) { T boundaryElement = boundary[i]; if (!coboundaryListMap.containsKey(boundaryElement)) { coboundaryListMap.put(boundaryElement, new ArrayList<IntObjectPair<T>>()); } coboundaryListMap.get(boundaryElement).add(new IntObjectPair<T>(boundaryCoefficients[i], element)); } } Set<T> coboundaryKeys = coboundaryListMap.keySet(); for (T element: coboundaryKeys) { ArrayList<IntObjectPair<T>> coboundary = coboundaryListMap.get(element); T[] coboundaryArray = ObjectArrayUtility.createArray(coboundary.size(), element); int[] coboundaryCoefficients = new int[coboundary.size()]; int i = 0; for (IntObjectPair<T> pair: coboundary) { coboundaryArray[i] = pair.getSecond(); coboundaryCoefficients[i] = pair.getFirst(); i++; } this.coboundaryMap.put(element, coboundaryArray); this.coboundaryCoefficientMap.put(element, coboundaryCoefficients); } Collections.reverse(this.reversedElements); } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#getMaximumFiltrationIndex() */ public int getMaximumFiltrationIndex() { return this.forwardStream.getMaximumFiltrationIndex(); } public int getMinimumFiltrationIndex() { return this.forwardStream.getMinimumFiltrationIndex(); } /* (non-Javadoc) * @see edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream#getBasisComparator() */ public Comparator<T> getBasisComparator() { return new ReversedComparator<T>(this.forwardStream.getBasisComparator()); } public <G> PersistenceInvariantDescriptor<Interval<Double>, G> transform(PersistenceInvariantDescriptor<Interval<Integer>, G> barcodeCollection) { return this.forwardStream.transform(barcodeCollection); } } ================================================ FILE: src/java/edu/stanford/math/plex4/streams/derived/HomStream.java ================================================ package edu.stanford.math.plex4.streams.derived; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Map; import edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream; import edu.stanford.math.plex4.streams.utility.StreamUtility; import edu.stanford.math.primitivelib.autogen.formal_sum.DoubleSparseFormalSum; import edu.stanford.math.primitivelib.autogen.formal_sum.IntSparseFormalSum; import edu.stanford.math.primitivelib.autogen.formal_sum.ObjectAlgebraicFreeModule; import edu.stanford.math.primitivelib.autogen.formal_sum.ObjectSparseFormalSum; import edu.stanford.math.primitivelib.autogen.pair.ObjectObjectPair; /** * This implements the hom-complex from two filtered chain complexes. For the definition * of the hom-complex, one is invited to look at the book "Homology" by Saunders Maclane. * For the case of vector-space components, one can express the hom-complex in terms of the * tensor product of the dualized first complex with the second. Elements of the hom-complex * are of the form a* tensor b, for a in the first chain complex and b in the second chain * complex. Thus in practice, we represent these as elements of type ObjectObjectPair<T, U>. * * @see edu.stanford.math.plex4.streams.derived.TensorStream * * @author Andrew Tausz * * @param <T> the underlying basis type of the first complex * @param <U> the underlying basis type of the second complex */ public class HomStream<T, U> extends TensorStream<T, U> { /** * This constructor initializes the hom-complexes from two existing chain complexes. * * @param domainStream the domain complex * @param codomainStream the codomain complex */ public HomStream(AbstractFilteredStream<T> domainStream, AbstractFilteredStream<U> codomainStream) { super(new DualStream<T>(domainStream), codomainStream); } @Override public int getDimension(ObjectObjectPair<T, U> element) { return (this.stream2.getDimension(element.getSecond()) - this.stream1.getDimension(element.getFirst())); } public <R> List<IntSparseFormalSum<ObjectObjectPair<T, U>>> getHomotopies() { return StreamUtility.getBoundaryMatrixColumns(this, 1); } /** * This function returns the set of chain homotopies of between the domain and codomain chain complexes. * * @param <R> the underlying type of the ring in which to compute in * @param chainModule the free module over pairs of type (T, U) with coefficients in R * @return a list containing the set of chain homotopies */ public <R> List<ObjectSparseFormalSum<R, ObjectObjectPair<T, U>>> getHomotopies(ObjectAlgebraicFreeModule<R, ObjectObjectPair<T, U>> chainModule) { return StreamUtility.getBoundaryMatrixColumns(this, 1, chainModule); } /** * This function returns the set of chain homotopies between the domain and codomain chain complexes as formal * sums over pairs with double coefficients. * * @param <R> the underlying type of the ring in which to compute in * @param chainModule the free module over pairs of type (T, U) with coefficients in R * @return a list containing the set of chain homotopies */ public <R extends Number> List<DoubleSparseFormalSum<ObjectObjectPair<T, U>>> getHomotopiesAsDouble(ObjectAlgebraicFreeModule<R, ObjectObjectPair<T, U>> chainModule) { return toDoubleFormalSum(StreamUtility.getBoundaryMatrixColumns(this, 1, chainModule)); } /** * This function converts an ObjectSparseFormalSum to a DoubleSparseFormalSum object. * * @param <R> the underlying type of the original coefficient field (must extend Number) * @param <M> the type of the basis elements in the formal sumssum * @param objectFormalSum the ObjectSparseFormalSum to convert * @return a DoubleSparseFormalSum with the same objects as the one passed in, but with double coefficients */ public static <R extends Number, M> DoubleSparseFormalSum<M> toDoubleFormalSum(ObjectSparseFormalSum<R, M> objectFormalSum) { DoubleSparseFormalSum<M> sum = new DoubleSparseFormalSum<M>(); for (Iterator<Map.Entry<M, R>> iterator = objectFormalSum.iterator(); iterator.hasNext(); ) { Map.Entry<M, R> entry = iterator.next(); sum.put(entry.getValue().doubleValue(), entry.getKey()); } return sum; } /** * This function converts a list of ObjectSparseFormalSum objects to DoubleSparseFormalSum objects. * * @param <R> the underlying type of the original coefficient field (must extend Number) * @param <M> the type of the basis elements in the formal sums * @param objectFormalSumList the list of ObjectSparseFormalSum objects to convert * @return the list of converted sums */ public static <R extends Number, M> List<DoubleSparseFormalSum<M>> toDoubleFormalSum(List<ObjectSparseFormalSum<R, M>> objectFormalSumList) { List<DoubleSparseFormalSum<M>> doubleFormalSumList = new ArrayList<DoubleSparseFormalSum<M>>(); for (ObjectSparseFormalSum<R, M> objectSum: objectFormalSumList) { doubleFormalSumList.add(toDoubleFormalSum(objectSum)); } return doubleFormalSumList; } } ================================================ FILE: src/java/edu/stanford/math/plex4/streams/derived/TensorStream.java ================================================ /** * */ package edu.stanford.math.plex4.streams.derived; import java.util.Comparator; import java.util.Iterator; import edu.stanford.math.plex4.homology.barcodes.Interval; import edu.stanford.math.plex4.homology.barcodes.PersistenceInvariantDescriptor; import edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream; import edu.stanford.math.primitivelib.array.ObjectArrayUtility; import edu.stanford.math.primitivelib.autogen.pair.ObjectObjectPair; import edu.stanford.math.primitivelib.autogen.pair.ObjectObjectPairComparator; import edu.stanford.math.primitivelib.collections.utility.PairwiseIterator; /** * This implements the tensor product of two filtered chain complexes. For the definition * of the tensor product of complexes, one is invited to consult any standard textbook on * algebraic topology or homological algebra. Note that we define the filtration index for * a tensor product pair to be the maximum of the filtration indices of its components. This * definition was chosen since it was the only definition that makes sense - a pair comes * into existence exactly when both components have come into existence. * * @author Andrew Tausz * * @param <T> the underlying basis type of the first chain complex * @param <U> the underlying basis type of the second chain complex */ public class TensorStream<T, U> implements AbstractFilteredStream<ObjectObjectPair<T, U>> { /** * The first factor in the tensor product. */ protected final AbstractFilteredStream<T> stream1; /** * The second factor in the tensor product. */ protected final AbstractFilteredStream<U> stream2; /** * This constructor initializes the stream from two underlying filtered chain complexes. * * @param stream1 the first chain complex * @param stream2 the second chain complex */ public TensorStream(AbstractFilteredStream<T> stream1, AbstractFilteredStream<U> stream2) { this.stream1 = stream1; this.stream2 = stream2; } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#getBoundary(java.lang.Object) */ public ObjectObjectPair<T, U>[] getBoundary(ObjectObjectPair<T, U> basisElement) { /* * p = degree of a * * d(a x b) = da x b + (-1)^{n+1} a x db */ T a = basisElement.getFirst(); U b = basisElement.getSecond(); T[] d_a = this.stream1.getBoundary(a); U[] d_b = this.stream2.getBoundary(b); ObjectObjectPair<T, U>[] boundary = ObjectArrayUtility.createArray(d_a.length + d_b.length, basisElement); for (int i = 0; i < d_a.length; i++) { boundary[i] = new ObjectObjectPair<T, U>(d_a[i], b); } for (int i = 0; i < d_b.length; i++) { boundary[i + d_a.length] = new ObjectObjectPair<T, U>(a, d_b[i]); } return boundary; } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#getBoundaryCoefficients(java.lang.Object) */ public int[] getBoundaryCoefficients(ObjectObjectPair<T, U> basisElement) { T a = basisElement.getFirst(); U b = basisElement.getSecond(); int[] a_coefficients = this.stream1.getBoundaryCoefficients(a); int[] b_coefficients = this.stream2.getBoundaryCoefficients(b); int[] coefficients = new int[a_coefficients.length + b_coefficients.length]; int n = this.getDimension(basisElement); /* * Compute (-1)^{n+1} */ int multiplier = ((n + 1) % 2 == 0 ? 1 : -1); for (int i = 0; i < a_coefficients.length; i++) { coefficients[i] = a_coefficients[i]; } for (int i = 0; i < b_coefficients.length; i++) { coefficients[i + a_coefficients.length] = multiplier * b_coefficients[i]; } return coefficients; } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#getDimension(java.lang.Object) */ public int getDimension(ObjectObjectPair<T, U> basisElement) { return (this.stream1.getDimension(basisElement.getFirst()) + this.stream2.getDimension(basisElement.getSecond())); } /* (non-Javadoc) * @see java.lang.Iterable#iterator() */ public Iterator<ObjectObjectPair<T, U>> iterator() { return new PairwiseIterator<T, U>(this.stream1, this.stream2); } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#getFiltrationIndex(java.lang.Object) */ public int getFiltrationIndex(ObjectObjectPair<T, U> basisElement) { return Math.max(this.stream1.getFiltrationIndex(basisElement.getFirst()), this.stream2.getFiltrationIndex(basisElement.getSecond())); } public double getFiltrationValue(ObjectObjectPair<T, U> basisElement) { return Math.max(this.stream1.getFiltrationValue(basisElement.getFirst()), this.stream2.getFiltrationValue(basisElement.getSecond())); } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#containsElement(java.lang.Object) */ public boolean containsElement(ObjectObjectPair<T, U> basisElement) { // TODO Implement this if you need it. throw new UnsupportedOperationException(); } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#finalizeStream() */ public void finalizeStream() { if (!this.stream1.isFinalized()) { this.stream1.finalizeStream(); } if (!this.stream2.isFinalized()) { this.stream2.finalizeStream(); } } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#isFinalized() */ public boolean isFinalized() { return this.stream1.isFinalized() && this.stream2.isFinalized(); } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#getSize() */ public int getSize() { return this.stream1.getSize() * this.stream2.getSize(); } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#getMaximumFiltrationIndex() */ public int getMaximumFiltrationIndex() { return Math.max(this.stream1.getMaximumFiltrationIndex(), this.stream2.getMaximumFiltrationIndex()); } public int getMinimumFiltrationIndex() { return Math.max(this.stream1.getMinimumFiltrationIndex(), this.stream2.getMinimumFiltrationIndex()); } public Comparator<ObjectObjectPair<T, U>> getBasisComparator() { return new ObjectObjectPairComparator<T, U>(this.stream1.getBasisComparator(), this.stream2.getBasisComparator()); } public <G> PersistenceInvariantDescriptor<Interval<Double>, G> transform(PersistenceInvariantDescriptor<Interval<Integer>, G> barcodeCollection) { return this.stream1.transform(barcodeCollection); } } ================================================ FILE: src/java/edu/stanford/math/plex4/streams/derived/TruncatedStream.java ================================================ package edu.stanford.math.plex4.streams.derived; import java.util.Comparator; import java.util.Iterator; import edu.stanford.math.plex4.homology.barcodes.Interval; import edu.stanford.math.plex4.homology.barcodes.PersistenceInvariantDescriptor; import edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream; //import edu.stanford.math.primitivelib.autogen.pair.ObjectObjectPair; import edu.stanford.math.primitivelib.utility.Infinity; public class TruncatedStream<T> implements AbstractFilteredStream<T> { private final AbstractFilteredStream<T> underlyingStream; private final double maxFiltrationValue; private final int maxFiltrationIndex; private final int size; public TruncatedStream(AbstractFilteredStream<T> stream, double maxFiltrationValue) { this.underlyingStream = stream; this.maxFiltrationValue = maxFiltrationValue; int tempMaxFiltrationIndex = Infinity.Int.getNegativeInfinity(); int tempSize = 0; for (T element : this.underlyingStream) { if (this.underlyingStream.getFiltrationValue(element) > this.maxFiltrationValue) { break; } tempMaxFiltrationIndex = Math.max(tempMaxFiltrationIndex, this.underlyingStream.getFiltrationIndex(element)); tempSize++; } this.size = tempSize; this.maxFiltrationIndex = tempMaxFiltrationIndex; } public void finalizeStream() { if (!this.underlyingStream.isFinalized()) { this.underlyingStream.finalizeStream(); } } public Comparator<T> getBasisComparator() { return this.underlyingStream.getBasisComparator(); } public T[] getBoundary(T basisElement) { return this.underlyingStream.getBoundary(basisElement); } public int[] getBoundaryCoefficients(T basisElement) { return this.underlyingStream.getBoundaryCoefficients(basisElement); } public int getDimension(T basisElement) { return this.underlyingStream.getDimension(basisElement); } public int getFiltrationIndex(T basisElement) { return this.getFiltrationIndex(basisElement); } public double getFiltrationValue(T basisElement) { return this.getFiltrationValue(basisElement); } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#containsElement(java.lang.Object) */ public boolean containsElement(T basisElement) { // TODO Implement this if you need it. throw new UnsupportedOperationException(); } public int getMaximumFiltrationIndex() { return this.maxFiltrationIndex; } public int getMinimumFiltrationIndex() { return this.underlyingStream.getMinimumFiltrationIndex(); } public int getSize() { return this.size; } public boolean isFinalized() { return this.underlyingStream.isFinalized(); } public <G> PersistenceInvariantDescriptor<Interval<Double>, G> transform(PersistenceInvariantDescriptor<Interval<Integer>, G> barcodeCollection) { return this.underlyingStream.transform(barcodeCollection); } public Iterator<T> iterator() { return new Iterator<T>() { Iterator<T> internalIterator = underlyingStream.iterator(); T next = null; { this.next = this.internalIterator.next(); } public boolean hasNext() { if (next == null) { return false; } return (underlyingStream.getFiltrationValue(next) <= maxFiltrationValue); } public T next() { T returnValue = this.next; this.next = this.internalIterator.next(); return returnValue; } public void remove() { throw new UnsupportedOperationException(); } }; } } ================================================ FILE: src/java/edu/stanford/math/plex4/streams/filter/EccentricityFilterFunction.java ================================================ package edu.stanford.math.plex4.streams.filter; import edu.stanford.math.plex4.metric.interfaces.AbstractIntMetricSpace; public class EccentricityFilterFunction implements IntFilterFunction { private final double[] eccentricities; private double maxValue; private double minValue; public EccentricityFilterFunction(AbstractIntMetricSpace metricSpace) { int n = metricSpace.size(); this.eccentricities = new double[n]; double maximumDistance = 0; double distance = 0; this.maxValue = 0; this.minValue = 0; for (int i = 0; i < n; i++) { maximumDistance = metricSpace.distance(i, 0); for (int j = 1; j < n; j++) { distance = metricSpace.distance(i, j); if (distance > maximumDistance) { maximumDistance = distance; } } this.eccentricities[i] = maximumDistance; if (i == 0 || this.eccentricities[i] > this.maxValue) { this.maxValue = this.eccentricities[i]; } if (i == 0 || this.eccentricities[i] < this.minValue) { this.minValue = this.eccentricities[i]; } } } public double evaluate(int point) { return this.eccentricities[point]; } public double getMaxValue() { return this.maxValue; } public double getMinValue() { return this.minValue; } public double[] getValues() { return this.eccentricities; } } ================================================ FILE: src/java/edu/stanford/math/plex4/streams/filter/ExplicitIntFilterFunction.java ================================================ package edu.stanford.math.plex4.streams.filter; public class ExplicitIntFilterFunction implements IntFilterFunction { private final double[] values; private double maxValue; private double minValue; public ExplicitIntFilterFunction(double[] values) { this.values = values; for (int i = 0; i < this.values.length; i++) { if (i == 0 || this.values[i] > this.maxValue) { this.maxValue = this.values[i]; } if (i == 0 || this.values[i] < this.minValue) { this.minValue = this.values[i]; } } } public double evaluate(int point) { return this.values[point]; } public double getMaxValue() { return this.maxValue; } public double getMinValue() { return this.minValue; } public double[] getValues() { return this.values; } } ================================================ FILE: src/java/edu/stanford/math/plex4/streams/filter/FilterFunction.java ================================================ package edu.stanford.math.plex4.streams.filter; public interface FilterFunction<T> { double evaluate(T point); } ================================================ FILE: src/java/edu/stanford/math/plex4/streams/filter/IntFilterFunction.java ================================================ package edu.stanford.math.plex4.streams.filter; public interface IntFilterFunction { double evaluate(int point); double getMaxValue(); double getMinValue(); double[] getValues(); } ================================================ FILE: src/java/edu/stanford/math/plex4/streams/filter/KernelDensityFilterFunction.java ================================================ package edu.stanford.math.plex4.streams.filter; import edu.stanford.math.plex4.metric.interfaces.AbstractIntMetricSpace; import edu.stanford.math.plex4.metric.utility.DensityEstimation; public class KernelDensityFilterFunction implements IntFilterFunction { private final double[] densities; private boolean maxMinComputed = false; private double maxValue = 0; private double minValue = 0; public KernelDensityFilterFunction(AbstractIntMetricSpace metricSpace, double sigma) { this.densities = DensityEstimation.performGaussianKernelDensityEstimation(metricSpace, sigma); } public double evaluate(int point) { return this.densities[point]; } public double getMaxValue() { if (!this.maxMinComputed) { this.computeMaxMinValues(); } return this.maxValue; } public double getMinValue() { if (!this.maxMinComputed) { this.computeMaxMinValues(); } return this.minValue; } private void computeMaxMinValues() { for (int i = 0; i < this.densities.length; i++) { if (i == 0 || this.densities[i] > maxValue) { this.maxValue = this.densities[i]; } if (i == 0 || this.densities[i] < minValue) { this.minValue = this.densities[i]; } } this.maxMinComputed = true; } public double[] getValues() { return this.densities; } } ================================================ FILE: src/java/edu/stanford/math/plex4/streams/filter/MaxSimplicialFilterFunction.java ================================================ package edu.stanford.math.plex4.streams.filter; import edu.stanford.math.plex4.homology.chain_basis.Simplex; public class MaxSimplicialFilterFunction implements FilterFunction<Simplex> { private final IntFilterFunction intFilterFunction; public MaxSimplicialFilterFunction(IntFilterFunction intFilterFunction) { this.intFilterFunction = intFilterFunction; } public double evaluate(Simplex simplex) { int[] vertices = simplex.getVertices(); double maxValue = 0; double vertexValue = 0; for (int i = 0; i < vertices.length; i++) { vertexValue = this.intFilterFunction.evaluate(vertices[i]); if (i == 0 || vertexValue > maxValue) { maxValue = vertexValue; } } return maxValue; } } ================================================ FILE: src/java/edu/stanford/math/plex4/streams/filter/MinSimplicialFilterFunction.java ================================================ package edu.stanford.math.plex4.streams.filter; import edu.stanford.math.plex4.homology.chain_basis.Simplex; public class MinSimplicialFilterFunction implements FilterFunction<Simplex> { private final IntFilterFunction intFilterFunction; public MinSimplicialFilterFunction(IntFilterFunction intFilterFunction) { this.intFilterFunction = intFilterFunction; } public double evaluate(Simplex simplex) { int[] vertices = simplex.getVertices(); double minValue = 0; double vertexValue = 0; for (int i = 0; i < vertices.length; i++) { vertexValue = this.intFilterFunction.evaluate(vertices[i]); if (i == 0 || vertexValue < minValue) { minValue = vertexValue; } } return minValue; } } ================================================ FILE: src/java/edu/stanford/math/plex4/streams/filter/RandomProjectionFilterFunction.java ================================================ package edu.stanford.math.plex4.streams.filter; import edu.stanford.math.plex4.metric.impl.EuclideanMetricSpace; import edu.stanford.math.plex4.utility.MathUtility; import edu.stanford.math.plex4.utility.RandomUtility; public class RandomProjectionFilterFunction implements IntFilterFunction { private final double[] direction; private final double[] values; private final double maxValue; private final double minValue; public RandomProjectionFilterFunction(EuclideanMetricSpace metricSpace) { this(metricSpace.getPoints()); } public RandomProjectionFilterFunction(double[][] points) { this.direction = RandomUtility.normalArray(points[0].length, true); this.values = new double[points.length]; double maxValue = Double.NEGATIVE_INFINITY; double minValue = Double.POSITIVE_INFINITY; double value; for (int i = 0; i < this.values.length; i++) { value = this.values[i] = MathUtility.dotProduct(this.direction, points[i]); maxValue = (value > maxValue ? value : maxValue); minValue = (value < minValue ? value : minValue); } this.maxValue = maxValue; this.minValue = minValue; } public double evaluate(int point) { return this.values[point]; } public double getMaxValue() { return this.maxValue; } public double getMinValue() { return this.minValue; } public int getRangeMax() { return this.values.length; } public double[] getValues() { return this.values; } } ================================================ FILE: src/java/edu/stanford/math/plex4/streams/impl/ExplicitCellStream.java ================================================ package edu.stanford.math.plex4.streams.impl; import java.util.ArrayList; import java.util.Collection; import java.util.List; import edu.stanford.math.plex4.homology.chain_basis.Cell; import edu.stanford.math.plex4.homology.chain_basis.CellComparator; import gnu.trove.TIntObjectHashMap; /** * This class is a wrapper for the ExplicitStream class and provides * convenience functions when the base elements are cells. * * @author Andrew Tausz * */ public class ExplicitCellStream extends ExplicitStream<Cell> { /** * This maps cell ids to cell objects. */ private TIntObjectHashMap<Cell> indexCellMap = new TIntObjectHashMap<Cell>(); /** * Default constructor. */ public ExplicitCellStream() { super(CellComparator.getInstance()); } public ExplicitCellStream(double maxFiltrationValue) { super(CellComparator.getInstance(), maxFiltrationValue); } /** * This adds a new vertex to the cell complex. * * @return the cell id of the newly added vertex */ public int addNewVertex() { Cell cell = new Cell(); this.indexCellMap.put(cell.getCellId(), cell); this.storageStructure.addElement(cell, 0); return cell.getCellId(); } /** * This attaches a n-cell to an existing point in the complex. * * @param dimension the dimension of the cell to add * @param pointIndex the point to attach the boundary to * @return the cell id of the newly added cell */ public int attachNewCellToPoint(int dimension, int pointIndex) { Cell cell = new Cell(dimension, this.getCellsByIds(new int[]{pointIndex}), new int[]{0}); this.indexCellMap.put(cell.getCellId(), cell); this.storageStructure.addElement(cell, 0); return cell.getCellId(); } /** * This adds a new cell to the complex with boundary specified by the supplied * array of cell ids. It uses the standard attaching coefficients. * * @param dimension the dimension of the cell to add * @param boundaryIndices an array of cell ids to attach to * @return the cell id of the newly added cell */ public int attachNewCell(int dimension, int[] boundaryIndices) { Cell cell = new Cell(dimension, this.getCellsByIds(boundaryIndices)); this.indexCellMap.put(cell.getCellId(), cell); this.storageStructure.addElement(cell, 0); return cell.getCellId(); } /** * This adds a new cell to the complex with boundary and boundary coefficients given. * * @param dimension the dimension fo the cell to add * @param boundaryIndices an array of cell ids to attach to * @param boundaryCoefficients the array of attaching map degrees * @return the cell id of the newly added cell */ public int attachNewCell(int dimension, int[] boundaryIndices, int[] boundaryCoefficients) { Cell cell = new Cell(dimension, this.getCellsByIds(boundaryIndices), boundaryCoefficients); this.indexCellMap.put(cell.getCellId(), cell); this.storageStructure.addElement(cell, 0); return cell.getCellId(); } @Override public void addElement(Cell basisElement, double filtrationValue) { super.addElement(basisElement, filtrationValue); this.indexCellMap.put(basisElement.getCellId(), basisElement); } /** * This obtains a collection of cell objects from an array of cell ids * @param cellIds * @return a collection of cells with the given cell ids */ private Collection<Cell> getCellsByIds(int[] cellIds) { List<Cell> cells = new ArrayList<Cell>(); for (int index: cellIds) { cells.add(this.indexCellMap.get(index)); } return cells; } } ================================================ FILE: src/java/edu/stanford/math/plex4/streams/impl/ExplicitSimplexStream.java ================================================ package edu.stanford.math.plex4.streams.impl; import java.util.Comparator; import edu.stanford.math.plex4.homology.chain_basis.Simplex; import edu.stanford.math.plex4.homology.chain_basis.SimplexComparator; /** * This class is a wrapper for the ExplicitStream class and provides * convenience functions when the base elements are simplices. * * @author Andrew Tausz * */ public class ExplicitSimplexStream extends ExplicitStream<Simplex> { /** * This constructor initializes the class with the given simplex * comparator. * * @param comparator the Comparator to initialize with */ public ExplicitSimplexStream(Comparator<Simplex> comparator) { super(comparator); } public ExplicitSimplexStream(Comparator<Simplex> comparator, double maxFiltrationValue) { super(comparator, maxFiltrationValue); } /** * This constructor initializes the class with the default simplex comparator. */ public ExplicitSimplexStream() { super(SimplexComparator.getInstance()); } public ExplicitSimplexStream(double maxFiltrationValue) { super(SimplexComparator.getInstance(), maxFiltrationValue); } /** * This function adds a new vertex to the complex with a filtration index * of 0. * * @param index the index of the vertex */ public void addVertex(int index) { this.addElement(new Simplex(new int[]{index}), 0); } /** * This function adds a new vertex to the complex with specified * filtration index. * * @param index the index of the vertex to add * @param filtrationIndex the filtration index */ public void addVertex(int index, double filtrationValue) { this.addElement(new Simplex(new int[]{index}), filtrationValue); } /** * This function adds a simplex with the provided vertices. * * @param vertices the vertices of the simplex to add */ public void addElement(int[] vertices) { this.addElement(new Simplex(vertices), 0); } /** * This function adds a simplex with the provided vertices and * given filtration index. * * @param vertices the vertices of the simplex to add * @param filtrationIndex the filtration index */ public void addElement(int[] vertices, double filtrationValue) { this.addElement(new Simplex(vertices), filtrationValue); } public boolean removeElementIfPresent(int[] vertices) { return this.removeElementIfPresent(new Simplex(vertices)); } } ================================================ FILE: src/java/edu/stanford/math/plex4/streams/impl/ExplicitStream.java ================================================ /** * */ package edu.stanford.math.plex4.streams.impl; import java.util.ArrayList; import java.util.Comparator; import java.util.List; import edu.stanford.math.plex4.homology.barcodes.Interval; import edu.stanford.math.plex4.homology.barcodes.PersistenceInvariantDescriptor; import edu.stanford.math.plex4.homology.chain_basis.PrimitiveBasisElement; import edu.stanford.math.plex4.homology.filtration.FiltrationConverter; import edu.stanford.math.plex4.homology.filtration.FiltrationUtility; import edu.stanford.math.plex4.homology.filtration.IncreasingLinearConverter; import edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream; import edu.stanford.math.plex4.streams.interfaces.PrimitiveStream; import gnu.trove.TObjectDoubleHashMap; import gnu.trove.TObjectDoubleIterator; /** * This class implements the functionality of a user-defined filtered chain complex. * It derives from the PrimitiveStream class, meaning that it underlying basis type * must be a geometric primitive. * * @author Andrew Tausz * */ public class ExplicitStream<T extends PrimitiveBasisElement> extends PrimitiveStream<T> { private FiltrationConverter converter = null; private static int NUM_DIVISIONS = 1000000; /** * Constructor which accepts a comparator for comparing the type T. * This comparator defines the ordering on the type T. Thus the overall * filtered objects are sorted first in order of filtration, and then by * the ordering provided by the comparator. * * @param comparator a Comparator which provides an ordering of the objects */ public ExplicitStream(Comparator<T> comparator) { super(comparator); } public ExplicitStream(Comparator<T> comparator, double maxFiltrationValue) { super(comparator); this.converter = new IncreasingLinearConverter(NUM_DIVISIONS, 0, maxFiltrationValue); } /** * This constructor initializes the stream from an existing stream. It copies all * of the elements of the supplied stream to the current one. * * @param stream the stream to copy from * @param comparator a Comparator which provides an ordering on the basis elements */ public ExplicitStream(AbstractFilteredStream<T> stream, Comparator<T> comparator) { super(comparator); this.addAllElements(stream); } /** * This function copies all of the elements in the supplied stream to the current one. * * @param stream the stream to copy from */ public void addAllElements(AbstractFilteredStream<T> stream) { for (T element: stream) { this.addElement(element, stream.getFiltrationIndex(element)); } } /** * This function adds a basis element the stream with specified filtration index. * * @param basisElement the basis element to add * @param filtrationIndex the filtration index of the basis element */ public void addElement(T basisElement, double filtrationValue) { int filtrationIndex = 0; if (this.converter != null) { filtrationIndex = this.converter.getFiltrationIndex(filtrationValue); } else { filtrationIndex = (int) filtrationValue; } this.removeElementIfPresent(basisElement); this.storageStructure.addElement(basisElement, filtrationIndex); } /** * This function removes the specified element from the stream. * In the case that the element is not present, this function does not do * anything. * * @param basisElement the element to remove. * @return true if the element was found and removed, and false otherwise */ public boolean removeElementIfPresent(T basisElement) { if (this.storageStructure.containsElement(basisElement)) { // remove the element if present this.storageStructure.removeElement(basisElement); return true; } return false; } /** * This function returns true if the stream contains the query element. * * @param basisElement the element to find * @return true if the element is in the stream and false otherwise */ public boolean containsElement(T basisElement) { return this.storageStructure.containsElement(basisElement); } @Override protected void constructComplex() { } /** * This function ensures that all of the faces of the all of the elements are * present in the stream. It adds the missing faces with filtration indices that * are consistent. In other words, it ensures that the filtration indices of an * element equals the minimum filtration index of its cofaces. */ public void ensureAllFaces() { List<T> elementQueue = new ArrayList<T>(); TObjectDoubleHashMap<T> newElements = new TObjectDoubleHashMap<T>(); for (T basisElement: this.storageStructure) { // add element to the queue elementQueue.add(basisElement); } while (!elementQueue.isEmpty()) { T basisElement = elementQueue.remove(elementQueue.size() - 1); double elementFiltrationValue = 0; if (newElements.containsKey(basisElement)) { elementFiltrationValue = newElements.get(basisElement); } else if (this.storageStructure.containsElement(basisElement)) { elementFiltrationValue = this.getFiltrationValue(basisElement); } T[] boundary = this.getBoundary(basisElement); for (T face: boundary) { if (this.storageStructure.containsElement(face)) { // do nothing } else { if (newElements.containsKey(face)) { newElements.put(face, Math.min(elementFiltrationValue, newElements.get(face))); } else { newElements.put(face, elementFiltrationValue); if (!elementQueue.contains(face)) { elementQueue.add(face); } } } } } for (TObjectDoubleIterator<T> iterator = newElements.iterator(); iterator.hasNext(); ) { iterator.advance(); this.addElement(iterator.key(), iterator.value()); } } public <G> PersistenceInvariantDescriptor<Interval<Double>, G> transform(PersistenceInvariantDescriptor<Interval<Integer>, G> barcodeCollection) { if (this.converter == null) { return FiltrationUtility.transformByIdentity(barcodeCollection); } return FiltrationUtility.transform(barcodeCollection, this.converter); } public double getFiltrationValue(T basisElement) { if (this.converter == null) { return this.getFiltrationIndex(basisElement); } return this.converter.getFiltrationValue(this.getFiltrationIndex(basisElement)); } } ================================================ FILE: src/java/edu/stanford/math/plex4/streams/impl/FlagComplexStream.java ================================================ /** * */ package edu.stanford.math.plex4.streams.impl; import edu.stanford.math.plex4.graph.UndirectedWeightedListGraph; import edu.stanford.math.plex4.homology.barcodes.Interval; import edu.stanford.math.plex4.homology.barcodes.PersistenceInvariantDescriptor; import edu.stanford.math.plex4.homology.chain_basis.Simplex; import edu.stanford.math.plex4.homology.chain_basis.SimplexComparator; import edu.stanford.math.plex4.homology.filtration.FiltrationConverter; import edu.stanford.math.plex4.homology.filtration.FiltrationUtility; import edu.stanford.math.plex4.homology.utility.HomologyUtility; import edu.stanford.math.plex4.streams.interfaces.PrimitiveStream; import edu.stanford.math.plex4.streams.storage_structures.StreamStorageStructure; import gnu.trove.TIntHashSet; import gnu.trove.TIntIterator; /** * <p> * This class implements a simplex stream with the property that given its * 1-skeleton, its higher skeletons are maximal in the following sense. A * k-simplex [v_0, ..., v_k] is a member of the complex iff all of its edges * [v_i, v_j] are in the complex. * </p> * * <p> * This class is abstract in that it does not provide a mechanism for * constructing the 1-skeleton, and only constructs the higher order skeletons * inductively. The reason is that there are different choices for definitions * of the 1-skeletons, the main ones being the lazy witness complex, the * Vietoris-Rips complex, and the clique complex. Thus a child class must * provide the implementation of the 1-skeleton. * </p> * * <p> * Also note that the FlagComplexStream construction can be used with any finite * metric space. For information on the implementation, consult the paper * "Fast Construction of the Vietoris-Rips Complex", by Afra Zomorodian. This * implementation uses the incremental algorithm described in the above paper. * </p> * * @author Andrew Tausz * */ public abstract class FlagComplexStream extends PrimitiveStream<Simplex> { /** * The maximum allowable dimension of the complex. */ protected final int maxAllowableDimension; /** * Stores the neighborhood graph. */ protected UndirectedWeightedListGraph neighborhoodGraph = null; /** * This converts between filtration indices and values */ protected FiltrationConverter converter; protected int[] indices = null; /** * This constructor initializes the class. * * @param maxAllowableDimension * the maximum dimension of the simplicial complex * @param converter * a FiltrationConverter for translating between filtration * indices and values */ public FlagComplexStream(int maxAllowableDimension, FiltrationConverter converter) { super(SimplexComparator.getInstance()); this.maxAllowableDimension = maxAllowableDimension; this.converter = converter; } public FlagComplexStream(int maxAllowableDimension, FiltrationConverter converter, int[] indices) { super(SimplexComparator.getInstance()); this.maxAllowableDimension = maxAllowableDimension; this.converter = converter; this.indices = indices; } /** * Constructor. * * @param maxAllowableDimension * the maximum dimension of the simplicial complex * @param converter * a FiltrationConverter for translating between filtration * indices and values * @param storageStructure * the StreamStorageStructure to use */ public FlagComplexStream(int maxAllowableDimension, FiltrationConverter converter, StreamStorageStructure<Simplex> storageStructure) { super(storageStructure); this.maxAllowableDimension = maxAllowableDimension; this.converter = converter; } /** * This function implements the construction of the 1-skeleton. It must * output a list containing pairs of filtration values and 1-simplices. The * filtration value of an edge is the threshold value at which the edge * appears in the filtered sequence of simplicial complexes. * * @return the 1-skeleton of the complex along with its filtration values */ protected abstract UndirectedWeightedListGraph constructEdges(); /** * This returns the neighborhood graph (equivalent to the 1-skeleton) of the * complex. * * @return the neighborhood graph */ public UndirectedWeightedListGraph getNeighborhoodGraph() { return this.neighborhoodGraph; } public double getFiltrationValue(Simplex simplex) { return this.converter.getFiltrationValue(this.getFiltrationIndex(simplex)); } /** * This function returns the FiltrationConverter object used by the complex. * * @return the FiltrationConverter used by the complex */ public FiltrationConverter getConverter() { return this.converter; } /** * This function transforms the given collection of filtration index * barcodes into filtration value barcodes. * * @param <G> * @param barcodeCollection * the set of filtration index barcodes * @return the barcodes transformed into filtration value form */ public <G> PersistenceInvariantDescriptor<Interval<Double>, G> transform(PersistenceInvariantDescriptor<Interval<Integer>, G> barcodeCollection) { return FiltrationUtility.transform(barcodeCollection, this.converter); } @Override protected void constructComplex() { // construct the neighborhood graph this.neighborhoodGraph = this.constructEdges(); // expand higher order simplices this.incrementalExpansion(neighborhoodGraph, this.maxAllowableDimension); } /** * This function performs the incremental expansion of the complex. * * @param G * the neighborhood graph * @param k * the maximum dimension */ protected void incrementalExpansion(UndirectedWeightedListGraph G, int k) { int n = G.getNumVertices(); // inductively add all of the singletons as well as their cofaces for (int u = 0; u < n; u++) { this.addCofaces(G, k, new Simplex(new int[] { u }), G.getLowerNeighbors(u), this.converter.getInitialFiltrationValue()); } } /** * This function inductively adds all of the cofaces of the simplex tau to * the complex. For more information about this algorithm, consult the paper * "Fast Construction of the Vietoris-Rips Complex" by Afra Zomorodian. * * @param G * the neighborhood graph * @param k * the maximum allowable dimension * @param tau * the current simplex to add * @param N * the lower neighbors to investigate * @param filtrationValue * the filtration value of the current simplex, tau */ protected void addCofaces(UndirectedWeightedListGraph G, int k, Simplex tau, TIntHashSet N, double filtrationValue) { Simplex newSimplex = null; if (this.indices != null) { newSimplex = HomologyUtility.convertIndices(tau, this.indices); } else { newSimplex = tau; } // add the current simplex to the complex this.storageStructure.addElement(newSimplex, this.converter.getFiltrationIndex(filtrationValue)); // exit if the dimension is the maximum allowed if (tau.getDimension() >= k) { return; } double weight = 0; TIntIterator iterator = N.iterator(); TIntHashSet M; // iterate through the lower neighborhood while (iterator.hasNext()) { int v = iterator.next(); // create a new simplex by appending // ie. sigma = tau U {v} Simplex sigma = new Simplex(HomologyUtility.appendToArray(tau.getVertices(), v)); // compute the intersection between N and the lower neighbors of v M = HomologyUtility.computeIntersection(N, G.getLowerNeighbors(v)); // compute the weight of the simplex sigma // the weight is defined to be the maximum weight of all of the // simplex's // faces if (sigma.getDimension() == 1) { int i = sigma.getVertices()[0]; int j = sigma.getVertices()[1]; weight = G.getWeight(i, j); } else if (sigma.getDimension() > 1) { weight = filtrationValue; int[] tauVertices = tau.getVertices(); for (int tauVertex : tauVertices) { weight = this.converter.computeInducedFiltrationValue(weight, G.getWeight(tauVertex, v)); } } // recurse: add the cofaces of sigma this.addCofaces(G, k, sigma, M, weight); } } } ================================================ FILE: src/java/edu/stanford/math/plex4/streams/impl/FlexibleVietorisRipsStream.java ================================================ /** * */ package edu.stanford.math.plex4.streams.impl; import edu.stanford.math.plex4.graph.UndirectedWeightedListGraph; import edu.stanford.math.plex4.homology.chain_basis.Simplex; import edu.stanford.math.plex4.homology.filtration.FiltrationConverter; import edu.stanford.math.plex4.metric.interfaces.AbstractSearchableMetricSpace; import edu.stanford.math.plex4.streams.storage_structures.StreamStorageStructure; import edu.stanford.math.plex4.utility.ExceptionUtility; import gnu.trove.TIntHashSet; import gnu.trove.TIntIterator; /** * <p> * This class implements the Vietoris-Rips filtered simplicial complex. A * simplex [v_0, ..., v_k] is in VR(r) if and only if the pairwise distances * d(v_i, v_j) are less than r for all 0 <= i, j <= k. Thus a Vietoris-Rips * complex is fully defined by its 1-skeleton, in that it is the maximal * simplicial complex given such a 1-skeleton. For this reason, we simply derive * from the FlagComplexStream abstract class, and implement the pairwise * thresholding in order to generate the 1-skeleton. * </p> * * @author Andrew Tausz * @author Mikael Vejdemo-Johansson * * @param <T> * the base type of the underlying metric space */ public class FlexibleVietorisRipsStream<T> extends FlagComplexStream { /** * This is the metric space upon which the stream is built from. */ protected final AbstractSearchableMetricSpace<T> metricSpace; /** * The maximum distance allowed between two connected vertices. */ protected final double maxDistance; /** * Constructor which initializes the complex with a metric space. * * @param metricSpace * the metric space to use in the construction of the complex * @param maxDistance * the maximum allowable distance * @param maxDimension * the maximum dimension of the complex * @param converter * the Filtration Converter to be used */ public FlexibleVietorisRipsStream(AbstractSearchableMetricSpace<T> metricSpace, double maxDistance, int maxDimension, FiltrationConverter converter) { super(maxDimension, converter); ExceptionUtility.verifyNonNull(metricSpace); this.metricSpace = metricSpace; this.maxDistance = maxDistance; } public FlexibleVietorisRipsStream(AbstractSearchableMetricSpace<T> metricSpace, double maxDistance, int maxDimension, FiltrationConverter converter, StreamStorageStructure<Simplex> storageStructure) { super(maxDimension, converter, storageStructure); ExceptionUtility.verifyNonNull(metricSpace); this.metricSpace = metricSpace; this.maxDistance = maxDistance; } public FlexibleVietorisRipsStream(AbstractSearchableMetricSpace<T> metricSpace, double maxDistance, int maxDimension, FiltrationConverter converter, int[] indices) { super(maxDimension, converter, indices); ExceptionUtility.verifyNonNull(metricSpace); this.metricSpace = metricSpace; this.maxDistance = maxDistance; } @Override protected UndirectedWeightedListGraph constructEdges() { int n = this.metricSpace.size(); TIntHashSet neighborhood = null; UndirectedWeightedListGraph graph = new UndirectedWeightedListGraph(n); for (int i = 0; i < n; i++) { // obtain the neighborhood of the i-th point neighborhood = this.metricSpace.getClosedNeighborhood(metricSpace.getPoint(i), this.maxDistance); // get the pairwise distances of the points and store them TIntIterator iterator = neighborhood.iterator(); while (iterator.hasNext()) { int j = iterator.next(); if (i == j) { continue; } double distance = this.metricSpace.distance(i, j); graph.addEdge(i, j, distance); } } return graph; } } ================================================ FILE: src/java/edu/stanford/math/plex4/streams/impl/GeometricSimplexStream.java ================================================ /** * */ package edu.stanford.math.plex4.streams.impl; import java.util.Comparator; import java.util.Iterator; import edu.stanford.math.plex4.homology.barcodes.Interval; import edu.stanford.math.plex4.homology.barcodes.PersistenceInvariantDescriptor; import edu.stanford.math.plex4.homology.chain_basis.Simplex; import edu.stanford.math.plex4.metric.impl.EuclideanMetricSpace; import edu.stanford.math.plex4.metric.interfaces.AbstractObjectMetricSpace; import edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream; import edu.stanford.math.plex4.utility.ExceptionUtility; /** * This class defines a geometric realization of a filtered simplicial * complex, ie. one in which the vertices are elements of Euclidean space. * A geometric simplex stream is defined to be a simplex stream along * with a mapping of the set of vertices to Euclidean space, which in this * case is an object of type AbstractObjectMetricSpace<double[]>. * * @author Andrew Tausz * */ public class GeometricSimplexStream implements AbstractFilteredStream<Simplex>, AbstractObjectMetricSpace<double[]> { /** * The underlying filtered simplicial complex. */ private final AbstractFilteredStream<Simplex> stream; /** * The Euclidean metric consisting of the vertices of the complex. */ private final AbstractObjectMetricSpace<double[]> metricSpace; /** * This constructor initializes the geometric complex from an abstract filtered complex and a metric space. * * @param stream the abstract simplicial complex * @param metricSpace the Euclidean metric space of vertices */ public GeometricSimplexStream(AbstractFilteredStream<Simplex> stream, AbstractObjectMetricSpace<double[]> metricSpace) { ExceptionUtility.verifyNonNull(stream); ExceptionUtility.verifyNonNull(metricSpace); this.stream = stream; this.metricSpace = metricSpace; } /** * This constructor initializes the geometric complex from an abstract simplicial complex and double array * whose rows consist of the Euclidean coordinates of the vertices. * * @param stream the abstract simplicial complex * @param points the array of points */ public GeometricSimplexStream(AbstractFilteredStream<Simplex> stream, double[][] points) { ExceptionUtility.verifyNonNull(stream); ExceptionUtility.verifyNonNull(points); this.stream = stream; this.metricSpace = new EuclideanMetricSpace(points); } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#finalizeStream() */ public void finalizeStream() { this.stream.finalizeStream(); } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#getFiltrationIndex(java.lang.Object) */ public int getFiltrationIndex(Simplex basisElement) { return this.stream.getFiltrationIndex(basisElement); } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#containsElement(java.lang.Object) */ public boolean containsElement(Simplex basisElement) { // TODO Implement this if you need it. throw new UnsupportedOperationException(); } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#isFinalized() */ public boolean isFinalized() { return this.stream.isFinalized(); } /* (non-Javadoc) * @see java.lang.Iterable#iterator() */ public Iterator<Simplex> iterator() { return this.stream.iterator(); } /* (non-Javadoc) * @see edu.stanford.math.primitivelib.metric.interfaces.AbstractObjectMetricSpace#getPoint(int) */ public double[] getPoint(int index) { return this.metricSpace.getPoint(index); } /* (non-Javadoc) * @see edu.stanford.math.primitivelib.metric.interfaces.AbstractIntMetricSpace#size() */ public int size() { return this.metricSpace.size(); } /* (non-Javadoc) * @see edu.stanford.math.primitivelib.metric.interfaces.AbstractIntMetricSpace#distance(int, int) */ public double distance(int i, int j) { return this.metricSpace.distance(i, j); } /* (non-Javadoc) * @see edu.stanford.math.primitivelib.metric.interfaces.AbstractObjectMetricSpace#distance(java.lang.Object, java.lang.Object) */ public double distance(double[] a, double[] b) { return this.metricSpace.distance(a, b); } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#getBoundary(java.lang.Object) */ public Simplex[] getBoundary(Simplex simplex) { return simplex.getBoundaryArray(); } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#getBoundaryCoefficients(java.lang.Object) */ public int[] getBoundaryCoefficients(Simplex simplex) { return simplex.getBoundaryCoefficients(); } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#getDimension(java.lang.Object) */ public int getDimension(Simplex element) { return this.stream.getDimension(element); } /* (non-Javadoc) * @see edu.stanford.math.primitivelib.metric.interfaces.AbstractObjectMetricSpace#getPoints() */ public double[][] getPoints() { return this.metricSpace.getPoints(); } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#getSize() */ public int getSize() { return this.stream.getSize(); } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#getMaximumFiltrationIndex() */ public int getMaximumFiltrationIndex() { return this.stream.getMaximumFiltrationIndex(); } public int getMinimumFiltrationIndex() { return this.stream.getMinimumFiltrationIndex(); } /* (non-Javadoc) * @see edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream#getBasisComparator() */ public Comparator<Simplex> getBasisComparator() { return this.stream.getBasisComparator(); } public <G> PersistenceInvariantDescriptor<Interval<Double>, G> transform(PersistenceInvariantDescriptor<Interval<Integer>, G> barcodeCollection) { return this.stream.transform(barcodeCollection); } public double getFiltrationValue(Simplex basisElement) { return this.stream.getFiltrationValue(basisElement); } } ================================================ FILE: src/java/edu/stanford/math/plex4/streams/impl/LazyWitnessStream.java ================================================ package edu.stanford.math.plex4.streams.impl; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import edu.stanford.math.plex4.graph.UndirectedWeightedListGraph; import edu.stanford.math.plex4.homology.chain_basis.Simplex; import edu.stanford.math.plex4.homology.filtration.ExternalConverter; import edu.stanford.math.plex4.homology.filtration.IncreasingLinearConverter; import edu.stanford.math.plex4.homology.utility.HomologyUtility; import edu.stanford.math.plex4.metric.interfaces.AbstractSearchableMetricSpace; import edu.stanford.math.plex4.metric.landmark.LandmarkSelector; import edu.stanford.math.plex4.utility.ExceptionUtility; import edu.stanford.math.primitivelib.autogen.array.DoubleArrayMath; import edu.stanford.math.primitivelib.autogen.array.DoubleArrayUtility; import edu.stanford.math.primitivelib.autogen.pair.IntDoublePair; import edu.stanford.math.primitivelib.utility.Infinity; import gnu.trove.TIntHashSet; import gnu.trove.TIntIterator; import gnu.trove.TIntObjectHashMap; /** * This class implements the lazy witness complex described in the paper * "Topological estimation using witness complexes", by Vin de Silva and Gunnar * Carlsson. The details of the construction are described in this paper. Note * that a lazy witness complex is fully described by its 1-skeleton, therefore * we simply derive from the FlagComplexStream class. * * @author Andrew Tausz * * @param <T> * the type of the underlying metric space */ public class LazyWitnessStream<T> extends FlagComplexStream { /** * This is the metric space upon which the stream is built from. */ protected final AbstractSearchableMetricSpace<T> metricSpace; /** * This is the selection of landmark points */ protected final LandmarkSelector<T> landmarkSelector; /** * This is the nu value described in the paper. Note that we use the default * value of 2. */ protected final int nu; /** * The maximum distance allowed between two connected vertices. */ protected final double maxDistance; protected double[][] D = null; protected double[] m = null; /** * If (i, sigma) is in witnessSimplexMap, then it means that point i is a a * witness for sigma */ private final TIntObjectHashMap<List<Simplex>> witnessSimplexMap = new TIntObjectHashMap<List<Simplex>>(); protected final int N; protected final int L; protected final double epsilon = 1e-8; protected boolean plex3Compatible = true; /** * Constructor which initializes the complex with a metric space. * * @param metricSpace * the metric space to use in the construction of the complex * @param maxDistance * the maximum allowable distance * @param maxDimension * the maximum dimension of the complex */ public LazyWitnessStream(AbstractSearchableMetricSpace<T> metricSpace, LandmarkSelector<T> landmarkSelector, int maxDimension, double maxDistance, int nu, int numDivisions) { super(maxDimension, new IncreasingLinearConverter(numDivisions, maxDistance)); ExceptionUtility.verifyNonNull(metricSpace); ExceptionUtility.verifyNonNegative(nu); ExceptionUtility.verifyLessThan(nu, 3); this.metricSpace = metricSpace; this.landmarkSelector = landmarkSelector; this.nu = nu; this.maxDistance = maxDistance; this.N = this.metricSpace.size(); this.L = this.landmarkSelector.size(); } public LazyWitnessStream(AbstractSearchableMetricSpace<T> metricSpace, LandmarkSelector<T> landmarkSelector, int maxDimension, double maxDistance, int numDivisions) { this(metricSpace, landmarkSelector, maxDimension, maxDistance, getDefaultNuValue(), numDivisions); } public LazyWitnessStream(AbstractSearchableMetricSpace<T> metricSpace, LandmarkSelector<T> landmarkSelector, int maxDimension, double maxDistance, int nu, int[] indices) { super(maxDimension, new IncreasingLinearConverter(20, maxDistance), indices); ExceptionUtility.verifyNonNull(metricSpace); ExceptionUtility.verifyNonNegative(nu); ExceptionUtility.verifyLessThan(nu, 3); this.metricSpace = metricSpace; this.landmarkSelector = landmarkSelector; this.nu = nu; this.maxDistance = maxDistance; this.N = this.metricSpace.size(); this.L = this.landmarkSelector.size(); } public LazyWitnessStream(AbstractSearchableMetricSpace<T> metricSpace, LandmarkSelector<T> landmarkSelector, int maxDimension, double maxDistance, int[] indices) { this(metricSpace, landmarkSelector, maxDimension, maxDistance, getDefaultNuValue(), indices); } public LazyWitnessStream(AbstractSearchableMetricSpace<T> metricSpace, LandmarkSelector<T> landmarkSelector, int maxDimension, double[] filtrationValues, int nu) { super(maxDimension, new ExternalConverter(filtrationValues)); ExceptionUtility.verifyNonNull(metricSpace); ExceptionUtility.verifyNonNegative(nu); ExceptionUtility.verifyLessThan(nu, 3); this.metricSpace = metricSpace; this.landmarkSelector = landmarkSelector; this.nu = nu; this.maxDistance = DoubleArrayMath.max(filtrationValues); this.N = this.metricSpace.size(); this.L = this.landmarkSelector.size(); } public LazyWitnessStream(AbstractSearchableMetricSpace<T> metricSpace, LandmarkSelector<T> landmarkSelector, int maxDimension, double[] filtrationValues) { this(metricSpace, landmarkSelector, maxDimension, filtrationValues, getDefaultNuValue()); } public LazyWitnessStream(AbstractSearchableMetricSpace<T> metricSpace, LandmarkSelector<T> landmarkSelector, int maxDimension, double[] filtrationValues, int nu, int[] indices) { super(maxDimension, new ExternalConverter(filtrationValues), indices); ExceptionUtility.verifyNonNull(metricSpace); ExceptionUtility.verifyNonNegative(nu); ExceptionUtility.verifyLessThan(nu, 3); this.metricSpace = metricSpace; this.landmarkSelector = landmarkSelector; this.nu = nu; this.maxDistance = DoubleArrayMath.max(filtrationValues); this.N = this.metricSpace.size(); this.L = this.landmarkSelector.size(); } public LazyWitnessStream(AbstractSearchableMetricSpace<T> metricSpace, LandmarkSelector<T> landmarkSelector, int maxDimension, double[] filtrationValues, int[] indices) { this(metricSpace, landmarkSelector, maxDimension, filtrationValues, getDefaultNuValue(), indices); } public void setPlex3Compatbility(boolean value) { this.plex3Compatible = value; } public static int getDefaultNuValue() { return 2; } /** * This function returns the list of simplices such that they have the given * point as their witness. If there are no such points, this function * returns null; * * @param witness * the witness point * @return a list of simplices with the given point as their witness */ public List<Simplex> getAssociatedSimplices(int witness) { List<Simplex> temp = this.witnessSimplexMap.get(witness); if (temp == null) { return null; } List<Simplex> result = new ArrayList<Simplex>(); result.addAll(temp); return result; } @Override protected UndirectedWeightedListGraph constructEdges() { this.indices = this.landmarkSelector.getLandmarkPoints(); UndirectedWeightedListGraph graph = new UndirectedWeightedListGraph(L); /* * Let N be the number of points in the metric space, and n the number * of landmark points. Let D be the L x N matrix of distances between * the set of landmark points, and the set of all points in the metric * space. * * The definition of the 1-skeleton of the lazy witness complex is as * follows: * * - If nu = 0, then define m_i = 0, otherwise define m_i to be the * nu-th smallest entry in the i-th column of D. - The edge [ab] belongs * to W(D, R, nu) iff there exists as witness i in {1, ..., N} such that * max(D(a, i), D(b, i)) <= R + m_i */ /** * Key difference between Plex3 and Plex4: - if landmarks[l] == n, Plex3 * sets the distance to infinity - in Plex4, the distance is just set to * 0 * * !not true anymore! */ D = null; m = DoubleArrayUtility.createArray(N); try { D = DoubleArrayUtility.createMatrix(L, N); for (int l = 0; l < L; l++) { for (int n = 0; n < N; n++) { // if (n == this.indices[l]) { // D[l][n] = Infinity.Double.getPositiveInfinity(); // } else { D[l][n] = this.metricSpace.distance(this.landmarkSelector.getLandmarkIndex(l), n); // } } } } catch (OutOfMemoryError error) { D = null; } finally { } double[] m_temp = new double[L + 1]; for (int n = 0; n < N; n++) { for (int l = 0; l < L; l++) { if (D == null) { m_temp[l + 1] = this.metricSpace.distance(this.landmarkSelector.getLandmarkIndex(l), n); } else { m_temp[l + 1] = D[l][n]; } } Arrays.sort(m_temp); assert (m_temp[0] == 0.0); m[n] = m_temp[this.nu]; assert (m[n] > 0.0); } // int edge_count = 0; { double e_ij; int n_star = 0; for (int i = 0; i < L; i++) { for (int j = i + 1; j < L; j++) { IntDoublePair witnessAndDistance = this.getWitnessAndDistance(i, j); n_star = witnessAndDistance.getFirst(); e_ij = witnessAndDistance.getSecond(); if (e_ij <= this.maxDistance) { this.updateWitnessInformationInternalIndices(n_star, e_ij, i, j); graph.addEdge(i, j, e_ij); // edge_count++; } } } } return graph; } protected IntDoublePair getWitnessAndDistance(int... landmarkIndices) { double e_ij; double d; e_ij = Infinity.Double.getPositiveInfinity(); int n_star = -1; int[] externalIndices = HomologyUtility.convertIndices(landmarkIndices, this.landmarkSelector.getLandmarkPoints()); int l = landmarkIndices.length - 1; // An empty simplex has no witnesses. if (l < 0) { return new IntDoublePair(n_star, e_ij); } for (int n = 0; n < N; n++) { if (contains(this.indices, n) && !this.plex3Compatible) { continue; } double d_max = Infinity.Double.getNegativeInfinity(); if (D == null) { for (int k = 0; k < landmarkIndices.length; k++) { d = this.metricSpace.distance(externalIndices[k], n); if (k == 0 || d > d_max) { d_max = d; } } } else { for (int k = 0; k < landmarkIndices.length; k++) { d = D[landmarkIndices[k]][n]; if (k == 0 || d > d_max) { d_max = d; } } } if (d_max < m[n]) { d_max = 0.0; } else { d_max -= m[n]; } if (d_max < e_ij) { e_ij = d_max; n_star = n; } } return new IntDoublePair(n_star, e_ij); } protected static boolean contains(int[] array, int value) { for (int i = 0; i < array.length; i++) { if (array[i] == value) { return true; } } return false; } protected void updateWitnessInformationInternalIndices(int n_star, double e_ij, int... internalIndices) { updateWitnessInformation(n_star, e_ij, HomologyUtility.convertIndices(internalIndices, this.indices)); } protected void updateWitnessInformation(int n_star, double e_ij, int... externalIndices) { TIntHashSet witnesses = this.getAllWitnesses(e_ij, externalIndices); for (TIntIterator iterator = witnesses.iterator(); iterator.hasNext();) { int witnessIndex = iterator.next(); if (!this.witnessSimplexMap.contains(witnessIndex)) { this.witnessSimplexMap.put(witnessIndex, new ArrayList<Simplex>()); } this.witnessSimplexMap.get(witnessIndex).add(Simplex.makeSimplex(externalIndices)); } } protected boolean isWitness(int x, Simplex simplex) { return this.isWitness(x, simplex.getVertices()); } protected boolean isWitness(int x, int[] externalIndices) { if (!this.witnessSimplexMap.contains(x)) { return false; } return this.witnessSimplexMap.get(x).contains(Simplex.makeSimplex(externalIndices)); } protected TIntHashSet getAllWitnesses(final double e_ij, final int... externalIndices) { double d[] = new double[externalIndices.length]; TIntHashSet witnesses = new TIntHashSet(); int[] landmarkIndices = HomologyUtility.deconvertIndices(externalIndices, this.indices); // landmarkIndices = externalIndices; for (int n = 0; n < N; n++) { if (contains(this.indices, n) && !this.plex3Compatible) { continue; } double d_max = Infinity.Double.getNegativeInfinity(); if (D == null) { for (int k = 0; k < landmarkIndices.length; k++) { d[k] = this.metricSpace.distance(externalIndices[k], n); if (k == 0 || d[k] > d_max) { d_max = d[k]; } } } else { for (int k = 0; k < landmarkIndices.length; k++) { d[k] = D[landmarkIndices[k]][n]; if (k == 0 || d[k] > d_max) { d_max = d[k]; } } } if (d_max < m[n]) { d_max = 0.0; } else { d_max -= m[n]; } if (Math.abs(d_max - e_ij) <= this.epsilon) { witnesses.add(n); } } if (externalIndices.length == 1 && contains(this.indices, externalIndices[0])) { witnesses.add(externalIndices[0]); } return witnesses; } } ================================================ FILE: src/java/edu/stanford/math/plex4/streams/impl/VietorisRipsStream.java ================================================ /** * */ package edu.stanford.math.plex4.streams.impl; import edu.stanford.math.plex4.homology.chain_basis.Simplex; import edu.stanford.math.plex4.homology.filtration.ExternalConverter; import edu.stanford.math.plex4.homology.filtration.IncreasingLinearConverter; import edu.stanford.math.plex4.metric.interfaces.AbstractSearchableMetricSpace; import edu.stanford.math.plex4.streams.storage_structures.StreamStorageStructure; import edu.stanford.math.primitivelib.autogen.array.DoubleArrayMath; /** * <p>This class implements the Vietoris-Rips filtered simplicial complex. * A simplex [v_0, ..., v_k] is in VR(r) if and only if the pairwise distances * d(v_i, v_j) are less than r for all 0 <= i, j <= k. Thus a Vietoris-Rips * complex is fully defined by its 1-skeleton, in that it is the maximal * simplicial complex given such a 1-skeleton. For this reason, we simply * derive from the FlagComplexStream abstract class, and implement the pairwise * thresholding in order to generate the 1-skeleton.</p> * * @author Andrew Tausz * @author Mikael Vejdemo-Johansson * * @param <T> the base type of the underlying metric space */ public class VietorisRipsStream<T> extends FlexibleVietorisRipsStream<T> { /** * Constructor which initializes the complex with a metric space. * * @param metricSpace the metric space to use in the construction of the complex * @param maxDistance the maximum allowable distance * @param maxDimension the maximum dimension of the complex */ public VietorisRipsStream(AbstractSearchableMetricSpace<T> metricSpace, double maxDistance, int maxDimension) { this(metricSpace, maxDistance, maxDimension, 20); } public VietorisRipsStream(AbstractSearchableMetricSpace<T> metricSpace, double maxDistance, int maxDimension, int numDivisions) { super(metricSpace, maxDistance, maxDimension, new IncreasingLinearConverter(numDivisions, maxDistance)); } public VietorisRipsStream(AbstractSearchableMetricSpace<T> metricSpace, double maxDistance, int maxDimension, int numDivisions, StreamStorageStructure<Simplex> storageStructure) { super(metricSpace, maxDistance, maxDimension, new IncreasingLinearConverter(numDivisions, maxDistance), storageStructure); } public VietorisRipsStream(AbstractSearchableMetricSpace<T> metricSpace, double maxDistance, int maxDimension, int[] indices) { super(metricSpace, maxDistance, maxDimension, new IncreasingLinearConverter(20, maxDistance), indices); } public VietorisRipsStream(AbstractSearchableMetricSpace<T> metricSpace, double[] filtrationValues, int maxDimension) { super(metricSpace, DoubleArrayMath.max(filtrationValues), maxDimension, new ExternalConverter(filtrationValues)); } } ================================================ FILE: src/java/edu/stanford/math/plex4/streams/impl/WitnessBicomplex.java ================================================ package edu.stanford.math.plex4.streams.impl; import java.util.List; import edu.stanford.math.plex4.homology.chain_basis.Simplex; import edu.stanford.math.plex4.homology.chain_basis.SimplexPair; import edu.stanford.math.plex4.homology.chain_basis.SimplexPairComparator; public class WitnessBicomplex<T> extends ExplicitStream<SimplexPair> { protected final WitnessStream<T> L1; protected final WitnessStream<T> L2; protected final int maxDimension; public WitnessBicomplex(WitnessStream<T> L1, WitnessStream<T> L2, int maxDimension) { super(SimplexPairComparator.getInstance()); this.L1 = L1; this.L2 = L2; this.maxDimension = maxDimension; } @Override protected void constructComplex() { // L1 and L2 should have the same vertex set if (L1.N != L2.N){ return; } SimplexPair pair = null; for (int n = 0; n < L1.N; n++) { List<Simplex> L1Simplices = L1.getAssociatedSimplices(n); List<Simplex> L2Simplices = L2.getAssociatedSimplices(n); if (L1Simplices == null || L2Simplices == null || L1Simplices.isEmpty() || L2Simplices.isEmpty()) { continue; } for (Simplex sigma: L1Simplices) { int sigma_index = L1.getFiltrationIndex(sigma); for (Simplex tau: L2Simplices) { int tau_index = L2.getFiltrationIndex(tau); pair = SimplexPair.createPair(sigma, tau); if (pair.getDimension() <= maxDimension && (!this.storageStructure.containsElement(pair))) { this.storageStructure.addElement(pair, Math.max(sigma_index, tau_index)); } } } } } } ================================================ FILE: src/java/edu/stanford/math/plex4/streams/impl/WitnessStream.java ================================================ package edu.stanford.math.plex4.streams.impl; import java.util.ArrayList; import java.util.ArrayDeque; import java.util.Arrays; import java.util.Deque; import java.util.List; //import java.util.Collections; //import org.apache.commons.lang.ArrayUtils; import edu.stanford.math.plex4.homology.barcodes.Interval; import edu.stanford.math.plex4.homology.barcodes.PersistenceInvariantDescriptor; //import edu.stanford.math.plex4.graph.UndirectedWeightedListGraph; import edu.stanford.math.plex4.homology.chain_basis.Simplex; import edu.stanford.math.plex4.homology.chain_basis.SimplexComparator; import edu.stanford.math.plex4.homology.filtration.FiltrationConverter; import edu.stanford.math.plex4.homology.filtration.FiltrationUtility; import edu.stanford.math.plex4.homology.filtration.IncreasingLinearConverter; //import edu.stanford.math.plex4.homology.utility.HomologyUtility; import edu.stanford.math.plex4.metric.interfaces.AbstractSearchableMetricSpace; import edu.stanford.math.plex4.metric.landmark.LandmarkSelector; import edu.stanford.math.plex4.streams.interfaces.PrimitiveStream; import edu.stanford.math.plex4.utility.ExceptionUtility; import edu.stanford.math.primitivelib.autogen.array.DoubleArrayUtility; //import edu.stanford.math.primitivelib.autogen.pair.IntDoublePair; //import edu.stanford.math.primitivelib.utility.Infinity; //import gnu.trove.TIntHashSet; //import gnu.trove.TIntIterator; //import gnu.trove.TIntObjectHashMap; public class WitnessStream<T> extends PrimitiveStream<Simplex> { /** * The maximum allowable dimension of the complex. */ protected final int maxAllowableDimension; /** * This converts between filtration indices and values */ protected FiltrationConverter converter; protected int[] indices = null; /** * This is the metric space upon which the stream is built from. */ protected final AbstractSearchableMetricSpace<T> metricSpace; /** * This is the selection of landmark points */ protected final LandmarkSelector<T> landmarkSelector; /** * The maximum distance allowed between two connected vertices. */ protected final double maxDistance; protected double[][] D = null; protected double[][] m = null; protected final int N; protected final int L; protected final int maxLen; protected boolean plex3Compatible = true; /* * Storage of all associated simplices for a witness is costly, so we do not * save this information by default. It is only needed for witness * bicomplexes. */ protected boolean saveAssociatedSimplices = false; List<List<Simplex>> associatedSimplices; /** * Constructor which initializes the complex with a metric space. * * @param metricSpace * the metric space to use in the construction of the complex * @param maxDistance * the maximum allowable distance * @param maxDimension * the maximum dimension of the complex */ public WitnessStream(AbstractSearchableMetricSpace<T> metricSpace, LandmarkSelector<T> landmarkSelector, int maxDimension, double maxDistance, int numDivisions) { super(SimplexComparator.getInstance()); this.maxAllowableDimension = maxDimension; this.converter = new IncreasingLinearConverter(numDivisions, maxDistance); ExceptionUtility.verifyNonNull(metricSpace); this.metricSpace = metricSpace; this.landmarkSelector = landmarkSelector; this.maxDistance = maxDistance; this.N = this.metricSpace.size(); this.L = this.landmarkSelector.size(); this.maxLen = (maxDimension < 0 || maxDimension >= L) ? L : maxDimension + 1; } public WitnessStream(AbstractSearchableMetricSpace<T> metricSpace, LandmarkSelector<T> landmarkSelector, int maxDimension, double maxDistance, int[] indices) { super(SimplexComparator.getInstance()); this.maxAllowableDimension = maxDimension; this.converter = new IncreasingLinearConverter(20, maxDistance); this.indices = indices; this.metricSpace = metricSpace; this.landmarkSelector = landmarkSelector; this.maxDistance = maxDistance; this.N = this.metricSpace.size(); this.L = this.landmarkSelector.size(); this.maxLen = (maxDimension < 0 || maxDimension >= L) ? L : maxDimension + 1; } public double getFiltrationValue(Simplex simplex) { return this.converter.getFiltrationValue(this.getFiltrationIndex(simplex)); } /** * This function transforms the given collection of filtration index * barcodes into filtration value barcodes. * * @param <G> * @param barcodeCollection * the set of filtration index barcodes * @return the barcodes transformed into filtration value form */ public <G> PersistenceInvariantDescriptor<Interval<Double>, G> transform(PersistenceInvariantDescriptor<Interval<Integer>, G> barcodeCollection) { return FiltrationUtility.transform(barcodeCollection, this.converter); } public void setPlex3Compatbility(boolean value) { /* * Daniel: I don't know what would make this implementation not * compatible to Plex3. Hence, if someone requests * setPlex3Compatbility(false), we raise an error. */ if (!value) { throw new UnsupportedOperationException(); } } /** * This function returns the list of simplices such that they have the given * point as their witness. If there are no such points, this function * returns null; * * @param witness * the witness point * @return a list of simplices with the given point as their witness */ public List<Simplex> getAssociatedSimplices(int witness) { if (!this.saveAssociatedSimplices) { throw new UnsupportedOperationException(); // TODO: use a better // exception } return this.associatedSimplices.get(witness); } @Override protected void constructComplex() { this.indices = this.landmarkSelector.getLandmarkPoints(); // TODO Is // this // correct? // Get all distances between landmark points and data points. D = DoubleArrayUtility.createMatrix(L, N); for (int ll = 0; ll < L; ll++) { for (int nn = 0; nn < N; nn++) { D[ll][nn] = this.metricSpace.distance(this.landmarkSelector.getLandmarkIndex(ll), nn); } } // Find the max_len nearest landmarks for every data point. double tmp[] = new double[L]; m = DoubleArrayUtility.createMatrix(maxLen, N); for (int nn = 0; nn < N; ++nn) { for (int ll = 0; ll < L; ++ll) { tmp[ll] = D[ll][nn]; } // Daniel: I want partial sort (the smallest maxLen elements in // sorted order) // but I don't know what function to use. Arrays.sort(tmp); for (int ll = 0; ll < maxLen; ++ll) { m[ll][nn] = tmp[ll]; } } if (this.saveAssociatedSimplices) { this.associatedSimplices = new ArrayList<List<Simplex>>(); for (int ll = 0; ll < L; ++ll) { this.associatedSimplices.add(new ArrayList<Simplex>()); } } Deque<Integer> lower_vertices = new ArrayDeque<Integer>(); // Recursively add vertices and all their cofaces. for (int ll = 0; ll < L; ++ll) { if (this.addCofaces_(ll, new int[] {}, null, lower_vertices)) { lower_vertices.add(ll); } } } /* * Add the simplex (index[i0], s1[0], ...) if all conditions are met. */ boolean addCofaces_(int i0, int[] s1, double[] Dm1, Deque<Integer> lower_vertices) { int dim = s1.length; int filtrationIndex; double[] Dm = new double[N]; int[] snew; switch (dim) { case 0: { for (int nn = 0; nn < N; ++nn) { Dm[nn] = D[i0][nn]; } filtrationIndex = this.converter.getFiltrationIndex(0.0); snew = new int[] { this.indices[i0] }; break; } case 1: { for (int nn = 0; nn < N; ++nn) { Dm[nn] = Math.max(Dm1[nn], D[i0][nn]); } snew = new int[] { this.indices[i0], s1[0] }; double filtrationValue = Double.POSITIVE_INFINITY; for (int nn = 0; nn < N; ++nn) { filtrationValue = Math.min(filtrationValue, Dm[nn] - m[dim][nn]); } if (filtrationValue > this.maxDistance) { return false; } filtrationIndex = this.converter.getFiltrationIndex(filtrationValue); break; } default: { snew = new int[dim + 1]; snew[0] = this.indices[i0]; System.arraycopy(s1, 0, snew, 1, dim); filtrationIndex = 0; for (Simplex face : new Simplex(snew).getBoundaryArray()) { if (!this.containsElement(face)) { return false; } filtrationIndex = Math.max(filtrationIndex, this.getFiltrationIndex(face)); } for (int nn = 0; nn < N; ++nn) { Dm[nn] = Math.max(Dm1[nn], D[i0][nn]); } double filtrationValue = Double.POSITIVE_INFINITY; for (int nn = 0; nn < N; ++nn) { filtrationValue = Math.min(filtrationValue, Dm[nn] - m[dim][nn]); } if (filtrationValue > this.maxDistance) { return false; } filtrationIndex = Math.max(filtrationIndex, this.converter.getFiltrationIndex(filtrationValue)); } } // Add the simplex to the complex. Simplex Snew = new Simplex(snew); this.storageStructure.addElement(Snew, filtrationIndex); if (this.saveAssociatedSimplices) { for (int nn = 0; nn < N; ++nn) { if (Dm[nn] <= m[dim][nn]) { this.associatedSimplices.get(nn).add(Snew); } } } // Recursively add cofaces. if (dim < this.maxAllowableDimension) { Deque<Integer> new_lower_vertices = new ArrayDeque<Integer>(); for (int ll : lower_vertices) { if (this.addCofaces_(ll, snew, Dm, new_lower_vertices)) { new_lower_vertices.add(ll); } } } return true; } } ================================================ FILE: src/java/edu/stanford/math/plex4/streams/interfaces/AbstractFilteredStream.java ================================================ package edu.stanford.math.plex4.streams.interfaces; import java.util.Comparator; import edu.stanford.math.plex4.homology.barcodes.Interval; import edu.stanford.math.plex4.homology.barcodes.PersistenceInvariantDescriptor; /** * <p>This interface defines the functionality of a streamed filtered * chain complex. An implementing class must provide functionality * for iterating through the chain complex, as well as providing * information about the basis elements (such as their filtration * indices and dimension).</p> * * <p>Note that there are two types of grading on our notion of a * filtered chain complex. The first is that of the filtration index. * In other words we have the decomposition * <code>... -> C_{i-1} -> C_{i} -> C_{i+1} -> ...</code> * with elements in C_i having the filtration index given by a_i. However, * we also have the more standard homological grading given by the "dimension" * of a basis element. Since we are not restricting ourselves to basis * elements consisting of simplices, the dimension may or may not carry * geometric meaning. Nevertheless it plays an important role.</p> * * <p>An implementing class must iterate through the basis elements in * non-decreasing order of filtration index. This defines a partial * order on the set of basis elements within the entire chain complex. * The completion of this partial order to a total order can depend * on the implementer, but must be such that the boundary of a basis * element must always precede the element itself. In practice, the * completion of the partial order will be based on dimension.</p> * * <p>The underlying type of the stream, T, will vary depending on the * context. Below are some examples: * <ul> * <li>T = Simplex: a standard filtered simplicial complex</li> * <li>T = Cell: a standard filtered CW complex</li> * <li>T = ObjectObjectPair<T, U>: a pair may represent a tensor product</li> * </ul> * </p> * * <p>This interface is the highest level in the filtered stream classes * and interfaces, and defines the basic functionality that all such * streams must implement.</p> * * <p>It is important to note that functions such as getBoundary, * getFiltrationIndex and getDimension do not only depend on the * queried basis element (ie. the simplex in question), but also * the properties of the chain complex. For example, the getBoundary * function may return the coboundary of a simplex rather than a * boundary in the case that we are working in the context of a cochain * complex. Or, the getDimension may return a shifted version of * the actual geometric dimension of a simplex.</p> * * <p>Another important point is that this class is agnostic towards the * actual filtration value of a basis element, and only stores filtration * indices. Filtration indices are integers that are somehow calculated from * the actual filtration values. The reason that we have chosen not to store * the actual filtration values is that we do not want to enforce a particular * ordering on them. For example, we may define a filtered complex based on * the sublevel or superlevel sets of a function. However, we always maintain * the constraint that the filtration index must be non-decreasing.</p> * * <p>A note on language: We call the underlying parameterized type T as the * basis type. This is justified by the fact that the modules in the chain * complex are free modules, and are generated by objects with type T.</p> * * @author Andrew Tausz * * @param <T> the underlying type of the generators in the free modules of the complex */ public interface AbstractFilteredStream<T> extends Iterable<T> { /** * This function returns the filtration index of the requested basis element. * * @param basisElement the basis element to get the filtration index for * @return the filtration index of the specified basis element */ public int getFiltrationIndex(T basisElement); public double getFiltrationValue(T basisElement); /** * This function returns whether an element is contained in the stream. * * @param basisElement the basis element to be tested */ public boolean containsElement(T basisElement); /** * This function returns the elements in the boundary of the supplied * basisElement, without the coefficients. We do not integrate the * elements of the boundary array with their respective coefficients * since this interface is designed to be independent of the algebraic * environment. * * @param basisElement the element to get the boundary of * @return an array containing the boundary elements of the queried element */ public T[] getBoundary(T basisElement); /** * This function returns the coefficients of the boundary of the supplied * basis element. Note that in many cases, this will be the standard array * consisting of alternating signs: [1, -1, 1, -1, ...]. However, this * will not always be the case. Thus this must be left abstract. Also note * that the coefficients will always be integers. * * @param basisElement the element to get the boundary coefficients of * @return an array containing the boundary coefficients of the queried element */ public int[] getBoundaryCoefficients(T basisElement); /** * This function returns the dimension of a basis element within * the chain complex. * * @param basisElement the element to get the dimension of * @return the dimension of the basis element within the chain complex */ public int getDimension(T basisElement); /** * This function prepares the stream for use by a consumer, such as the * PersistentHomology class. After finalization, the stream cannot not be * modified by adding or removing elements. In practice, the finalize * procedure will probably do some sorting and construction of data * structures necessary for iterating through the stream. */ public void finalizeStream(); /** * This function checks whether the finalize() function has been called. * * @return true if the stream has been finalized, and false otherwise */ public boolean isFinalized(); /** * This function returns the total number of elements in the stream. * * @return the size of the stream */ public int getSize(); /** * This function gets the maximum filtration index in the complex. * * @return the maximum filtration index */ public int getMaximumFiltrationIndex(); /** * This function gets the minimum filtration index in the complex. * * @return the minimum filtration index */ public int getMinimumFiltrationIndex(); /** * This function returns a comparator on the underlying basis type. * * @return a comparator on the underlying basis type */ public Comparator<T> getBasisComparator(); /** * This function transforms the given collection of filtration index barcodes into filtration value barcodes. * * @param <G> * @param barcodeCollection the set of filtration index barcodes * @return the barcodes transformed into filtration value form */ public <G> PersistenceInvariantDescriptor<Interval<Double>, G> transform(PersistenceInvariantDescriptor<Interval<Integer>, G> barcodeCollection); } ================================================ FILE: src/java/edu/stanford/math/plex4/streams/interfaces/PrimitiveStream.java ================================================ package edu.stanford.math.plex4.streams.interfaces; import java.util.Comparator; import java.util.Iterator; import edu.stanford.math.plex4.homology.chain_basis.PrimitiveBasisElement; import edu.stanford.math.plex4.streams.storage_structures.StreamStorageStructure; import edu.stanford.math.plex4.streams.storage_structures.StreamStorageStructureFactory; /** * <p>This class implements a filtered chain complex where the underlying type * is a geometric primitive (a Simplex or a Cell). Thus the appropriate * homological functions are defined by the geometric properties of the * underlying type. For example, the homological dimension is given by * the actual geometric dimension, and the boundary is the geometric boundary * of the cell or simplex in question.</p> * * <p>Note that this class does not actually implement a storage mechanism, but * allows a user to define one via a supplied StreamStorageStructure object. * In the event that the user does not supply one, it reverts to the default * one.</p> * * @author Andrew Tausz * * @param <T> the underlying basis type of the stream */ public abstract class PrimitiveStream<T extends PrimitiveBasisElement> implements AbstractFilteredStream<T> { /** * This object implements the actual storage structure for the stream. */ protected final StreamStorageStructure<T> storageStructure; /** * This constructor constructs the stream with the supplied StreamStorageStructure. * * @param storageStructure the StreamStorageStructure to use */ protected PrimitiveStream(StreamStorageStructure<T> storageStructure) { this.storageStructure = storageStructure; } /** * This constructor construct the stream with the default storage scheme. * * @param comparator a Comparator which defines an ordering for the storage scheme */ protected PrimitiveStream(Comparator<T> comparator) { this.storageStructure = StreamStorageStructureFactory.getDefaultStorageStructure(comparator); } /** * This abstract function performs the construction of the filtered chain complex. For * example, this might construct the complex from a metric space via a Vietoris-Rips * or witness construction. */ protected abstract void constructComplex(); /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#getBoundary(java.lang.Object) */ @SuppressWarnings("unchecked") public final T[] getBoundary(T basisElement) { return (T[]) basisElement.getBoundaryArray(); } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#getBoundaryCoefficients(java.lang.Object) */ public final int[] getBoundaryCoefficients(T basisElement) { return basisElement.getBoundaryCoefficients(); } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#getDimension(java.lang.Object) */ public final int getDimension(T basisElement) { return basisElement.getDimension(); } /* (non-Javadoc) * @see java.lang.Iterable#iterator() */ public final Iterator<T> iterator() { return this.storageStructure.iterator(); } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#finalizeStream() */ public final void finalizeStream() { if (this.isFinalized()) { return; } this.constructComplex(); this.storageStructure.finalizeStructure(); } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#getFiltrationIndex(java.lang.Object) */ public final int getFiltrationIndex(T basisElement) { return this.storageStructure.getFiltrationIndex(basisElement); } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#containsElement(java.lang.Object) */ public boolean containsElement(T basisElement) { return this.storageStructure.containsElement(basisElement); } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#isFinalized() */ public final boolean isFinalized() { return this.storageStructure.isFinalized(); } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#getSize() */ public final int getSize() { return this.storageStructure.getSize(); } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#getMaximumFiltrationIndex() */ public int getMaximumFiltrationIndex() { return this.storageStructure.getMaximumFiltrationIndex(); } public int getMinimumFiltrationIndex() { return this.storageStructure.getMinimumFiltrationIndex(); } /* (non-Javadoc) * @see edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream#getBasisComparator() */ public Comparator<T> getBasisComparator() { return this.storageStructure.getBasisComparator(); } /** * This function validates the stream to make sure that it * contains a valid filtered simplicial or cell complex. It checks the * two following conditions: * 1. For each element in the complex, all of the faces of the simplex * also belong to the complex. * 2. The faces of each simplex have filtration values that are * less than or equal to those of its cofaces. * * @return true if the stream is consistent, false otherwise */ public boolean validate() { for (T basisElement: this.storageStructure) { int filtrationIndex = this.getFiltrationIndex(basisElement); // get the boundary T[] boundary = this.getBoundary(basisElement); // make sure that each boundary element is also inside the // complex with a filtration value less than or equal to the // current simplex for (T face: boundary) { if (!this.storageStructure.containsElement(face)) { return false; } // if the face's filtration value is greater than that of the // current simplex, the stream is also inconsistent if (this.storageStructure.getFiltrationIndex(face) > filtrationIndex) { return false; } } } // all simplices in the complex have been checked - good, return true return true; } /** * This function validates the stream to make sure that it * contains a valid filtered simplicial or cell complex. It checks the * two following conditions: * 1. For each element in the complex, all of the faces of the simplex * also belong to the complex. * 2. The faces of each simplex have filtration values that are * less than or equal to those of its cofaces. * * @return true if the stream is consistent, false otherwise */ public boolean validateVerbose() { boolean valid = true; for (T basisElement: this.storageStructure) { int filtrationIndex = this.getFiltrationIndex(basisElement); // get the boundary T[] boundary = this.getBoundary(basisElement); // make sure that each boundary element is also inside the // complex with a filtration value less than or equal to the // current simplex for (T face: boundary) { if (!this.storageStructure.containsElement(face)) { System.out.println("Stream does not contain face " + face + " of element " + basisElement); valid = false; } // if the face's filtration value is greater than that of the // current simplex, the stream is also inconsistent if (this.storageStructure.getFiltrationIndex(face) > filtrationIndex) { System.out.println("Filtration index of face " + face + " exceeds that of element " + basisElement + " (" + this.storageStructure.getFiltrationIndex(face) + " > " + filtrationIndex + ")"); valid = false; } } } return valid; } } ================================================ FILE: src/java/edu/stanford/math/plex4/streams/multi/AbstractMultifilteredStream.java ================================================ package edu.stanford.math.plex4.streams.multi; import java.util.Comparator; import edu.stanford.math.plex4.homology.barcodes.Interval; import edu.stanford.math.plex4.homology.barcodes.PersistenceInvariantDescriptor; public interface AbstractMultifilteredStream<T> extends Iterable<T> { /** * This function returns the filtration multi-index of the requested basis element. * * @param basisElement the basis element to get the filtration multi-index for * @return the filtration multi-index of the specified basis element */ public double[] getFiltrationValue(T basisElement); /** * This function returns the elements in the boundary of the supplied * basisElement, without the coefficients. We do not integrate the * elements of the boundary array with their respective coefficients * since this interface is designed to be independent of the algebraic * environment. * * @param basisElement the element to get the boundary of * @return an array containing the boundary elements of the queried element */ public T[] getBoundary(T basisElement); /** * This function returns the coefficients of the boundary of the supplied * basis element. Note that in many cases, this will be the standard array * consisting of alternating signs: [1, -1, 1, -1, ...]. However, this * will not always be the case. Thus this must be left abstract. Also note * that the coefficients will always be integers. * * @param basisElement the element to get the boundary coefficients of * @return an array containing the boundary coefficients of the queried element */ public int[] getBoundaryCoefficients(T basisElement); /** * This function returns the dimension of a basis element within * the chain complex. * * @param basisElement the element to get the dimension of * @return the dimension of the basis element within the chain complex */ public int getDimension(T basisElement); /** * This function prepares the stream for use by a consumer, such as the * PersistentHomology class. After finalization, the stream cannot not be * modified by adding or removing elements. In practice, the finalize * procedure will probably do some sorting and construction of data * structures necessary for iterating through the stream. */ public void finalizeStream(); /** * This function checks whether the finalize() function has been called. * * @return true if the stream has been finalized, and false otherwise */ public boolean isFinalized(); /** * This function returns the total number of elements in the stream. * * @return the size of the stream */ public int getSize(); /** * This function returns a comparator on the underlying basis type. * * @return a comparator on the underlying basis type */ public Comparator<T> getBasisComparator(); /** * This function transforms the given collection of filtration index barcodes into filtration value barcodes. * * @param <G> * @param barcodeCollection the set of filtration index barcodes * @return the barcodes transformed into filtration value form */ public <G> PersistenceInvariantDescriptor<Interval<Double>, G> transform(PersistenceInvariantDescriptor<Interval<Integer>, G> barcodeCollection); } ================================================ FILE: src/java/edu/stanford/math/plex4/streams/multi/AbstractStreamFlattener.java ================================================ package edu.stanford.math.plex4.streams.multi; import edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream; public interface AbstractStreamFlattener<T> { AbstractFilteredStream<T> collapse(AbstractMultifilteredStream<T> multifilteredStream); } ================================================ FILE: src/java/edu/stanford/math/plex4/streams/multi/BifilteredMetricStream.java ================================================ package edu.stanford.math.plex4.streams.multi; import java.util.Comparator; import edu.stanford.math.plex4.homology.chain_basis.PrimitiveBasisElement; import edu.stanford.math.plex4.streams.filter.FilterFunction; import edu.stanford.math.plex4.streams.interfaces.PrimitiveStream; public class BifilteredMetricStream<T extends PrimitiveBasisElement> extends PrimitiveMultifilteredStream<T> { private final PrimitiveStream<T> stream; private final FilterFunction<T> filterFunction; public BifilteredMetricStream(PrimitiveStream<T> stream, FilterFunction<T> filterFunction) { this.stream = stream; this.filterFunction = filterFunction; this.construct(); } private void construct() { for (T element: stream) { double filtrationValue = stream.getFiltrationValue(element); double filterFunctionValue = this.filterFunction.evaluate(element); this.addElement(element, filtrationValue, filterFunctionValue); } } private void addElement(T element, double filtrationValue, double filterFunctionValue) { this.addElement(element, new double[]{filtrationValue, filterFunctionValue}); } public Comparator<T> getBasisComparator() { return this.stream.getBasisComparator(); } } ================================================ FILE: src/java/edu/stanford/math/plex4/streams/multi/HalfplaneFlattener.java ================================================ package edu.stanford.math.plex4.streams.multi; import edu.stanford.math.plex4.homology.chain_basis.PrimitiveBasisElement; import edu.stanford.math.plex4.streams.impl.ExplicitStream; import edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream; import edu.stanford.math.primitivelib.autogen.array.DoubleArrayMath; /** * This flattener maps a filtration value vector, x, to the smallest integer k such that <p, x> <= k * where p is the specified principal direction. * * @author Andrew Tausz * * @param <T> */ public class HalfplaneFlattener<T extends PrimitiveBasisElement> implements AbstractStreamFlattener<T> { private final double[] principalDirection; public HalfplaneFlattener(double[] prinicpalDirection) { this.principalDirection = prinicpalDirection; } public AbstractFilteredStream<T> collapse(AbstractMultifilteredStream<T> multifilteredStream) { ExplicitStream<T> stream = new ExplicitStream<T>(multifilteredStream.getBasisComparator()); for (T element : multifilteredStream) { double[] filtrationValue = multifilteredStream.getFiltrationValue(element); int collapsedIndex = this.getCollapsedIndex(filtrationValue); stream.addElement(element, collapsedIndex); } stream.finalizeStream(); return stream; } private int getCollapsedIndex(double[] filtrationValue) { // we want to find minimum integer k such that <p, f> <= k // where p is the principal direction, and f is the filtration value double innerProduct = DoubleArrayMath.innerProduct(filtrationValue, this.principalDirection); return (int) Math.ceil(innerProduct); } } ================================================ FILE: src/java/edu/stanford/math/plex4/streams/multi/IncreasingOrthantFlattener.java ================================================ package edu.stanford.math.plex4.streams.multi; import edu.stanford.math.plex4.homology.chain_basis.PrimitiveBasisElement; import edu.stanford.math.plex4.streams.impl.ExplicitStream; import edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream; import edu.stanford.math.primitivelib.utility.Infinity; public class IncreasingOrthantFlattener<T extends PrimitiveBasisElement> implements AbstractStreamFlattener<T> { private final double[] principalDirection; public IncreasingOrthantFlattener(double[] prinicpalDirection) { this.principalDirection = prinicpalDirection; } public AbstractFilteredStream<T> collapse(AbstractMultifilteredStream<T> multifilteredStream) { ExplicitStream<T> stream = new ExplicitStream<T>(multifilteredStream.getBasisComparator()); for (T element : multifilteredStream) { double[] filtrationValue = multifilteredStream.getFiltrationValue(element); int collapsedIndex = this.getCollapsedIndex(filtrationValue); stream.addElement(element, collapsedIndex); } stream.finalizeStream(); return stream; } private int getCollapsedIndex(double[] filtrationValue) { int maxMultiple = Infinity.Int.getNegativeInfinity(); for (int i = 0; i < filtrationValue.length; i++) { if (this.principalDirection[i] == 0) { continue; } int multiple = (int) Math.ceil(filtrationValue[i] / this.principalDirection[i]); if (multiple > maxMultiple) { maxMultiple = multiple; } } return maxMultiple; } } ================================================ FILE: src/java/edu/stanford/math/plex4/streams/multi/PrimitiveMultifilteredStream.java ================================================ package edu.stanford.math.plex4.streams.multi; import java.util.Iterator; import edu.stanford.math.plex4.homology.barcodes.Interval; import edu.stanford.math.plex4.homology.barcodes.PersistenceInvariantDescriptor; import edu.stanford.math.plex4.homology.chain_basis.PrimitiveBasisElement; import gnu.trove.THashMap; public abstract class PrimitiveMultifilteredStream<T extends PrimitiveBasisElement> implements AbstractMultifilteredStream<T> { /** * This hash map contains the filtration indices of the basis elements in the complex. */ private final THashMap<T, double[]> filtrationIndices = new THashMap<T, double[]>(); public void addElement(T basisElement, double[] filtrationValue) { this.filtrationIndices.put(basisElement, filtrationValue); } public Iterator<T> iterator() { return this.filtrationIndices.keySet().iterator(); } public double[] getFiltrationValue(T basisElement) { return this.filtrationIndices.get(basisElement); } @SuppressWarnings("unchecked") public final T[] getBoundary(T basisElement) { return (T[]) basisElement.getBoundaryArray(); } public int[] getBoundaryCoefficients(T basisElement) { return basisElement.getBoundaryCoefficients(); } public int getDimension(T basisElement) { return basisElement.getDimension(); } public void finalizeStream() { } public boolean isFinalized() { return true; } public int getSize() { return this.filtrationIndices.size(); } public <G> PersistenceInvariantDescriptor<Interval<Double>, G> transform(PersistenceInvariantDescriptor<Interval<Integer>, G> barcodeCollection) { return null; } } ================================================ FILE: src/java/edu/stanford/math/plex4/streams/storage_structures/HashedStorageStructure.java ================================================ /** * */ package edu.stanford.math.plex4.streams.storage_structures; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.Iterator; import java.util.List; import edu.stanford.math.plex4.homology.chain_basis.PrimitiveBasisElement; import gnu.trove.TIntObjectHashMap; import gnu.trove.TIntObjectIterator; import gnu.trove.TObjectIntHashMap; /** * This class provides a stream storage mechanism that is based on a multi-layer map. The motivation * behind the design of this class is that the ordering of chain basis elements (e.g. simplices) is * first determined by filtration index, then by dimension, and then by some other ordering (e.g. * lexicographical ordering on the vertices). This storage structure uses a sequence of maps to store * a basis element. One can think of it as a tree, where the first node is split on the filtration index, * the second layer is split on dimension. This class was inspired by the original version of java plex. * * @author Andrew Tausz * * @param <T> */ public class HashedStorageStructure<T extends PrimitiveBasisElement> implements StreamStorageStructure<T> { /** * This multilayered map maps filtration index -> dimension -> basis element list. Thus, an element is stored first by * its filtration value, and then by its dimension. */ private final TIntObjectHashMap<TIntObjectHashMap<List<T>>> indexDimensionObjectMap = new TIntObjectHashMap<TIntObjectHashMap<List<T>>>(); /** * This stores the filtration indices of the basis elements. */ private final TObjectIntHashMap<T> filtrationIndices = new TObjectIntHashMap<T>(); /** * Indicates whether the storage structure is finalized or not. */ private boolean isFinalized = false; /** * Comparator which provides ordering of elements of the stream. */ private final Comparator<T> basisComparator; /** * This construction initializes the class with a comparator for comparing the basis elements. * * @param basisComparator the comparator */ public HashedStorageStructure(Comparator<T> basisComparator) { this.basisComparator = basisComparator; } /* (non-Javadoc) * @see java.lang.Iterable#iterator() */ public Iterator<T> iterator() { return new HashedStorageStructureIterator<T>(this.indexDimensionObjectMap); } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.streams.storage_structures.StreamStorageStructure#addElement(java.lang.Object, int) */ public void addElement(T basisElement, int filtrationIndex) { TIntObjectHashMap<List<T>> dimensionMap = null; if (!this.indexDimensionObjectMap.containsKey(filtrationIndex)) { dimensionMap = new TIntObjectHashMap<List<T>>(); this.indexDimensionObjectMap.put(filtrationIndex, dimensionMap); } else { dimensionMap = this.indexDimensionObjectMap.get(filtrationIndex); } int dimension = basisElement.getDimension(); List<T> elementList = null; if (!dimensionMap.containsKey(dimension)) { elementList = new ArrayList<T>(); dimensionMap.put(dimension, elementList); } else { elementList = dimensionMap.get(dimension); } elementList.add(basisElement); this.filtrationIndices.put(basisElement, filtrationIndex); } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.streams.storage_structures.StreamStorageStructure#removeElement(java.lang.Object) */ public void removeElement(T basisElement) { if (!this.filtrationIndices.containsKey(basisElement)) { return; } int filtrationIndex = this.filtrationIndices.get(basisElement); int dimension = basisElement.getDimension(); this.indexDimensionObjectMap.get(filtrationIndex).get(dimension).remove(basisElement); // make sure that we do not store empty lists in the storage structure if (this.indexDimensionObjectMap.get(filtrationIndex).get(dimension).isEmpty()) { this.indexDimensionObjectMap.get(filtrationIndex).remove(dimension); } // remove empty filtration-index map if (this.indexDimensionObjectMap.get(filtrationIndex).isEmpty()) { this.indexDimensionObjectMap.remove(filtrationIndex); } this.filtrationIndices.remove(basisElement); } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.streams.storage_structures.StreamStorageStructure#containsElement(java.lang.Object) */ public boolean containsElement(T basisElement) { return this.filtrationIndices.containsKey(basisElement); } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.streams.storage_structures.StreamStorageStructure#getFiltrationIndex(java.lang.Object) */ public int getFiltrationIndex(T basisElement) { return this.filtrationIndices.get(basisElement); } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.streams.storage_structures.StreamStorageStructure#isFinalized() */ public boolean isFinalized() { return this.isFinalized; } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.streams.storage_structures.StreamStorageStructure#getBasisComparator() */ public Comparator<T> getBasisComparator() { // TODO Auto-generated method stub return null; } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.streams.storage_structures.StreamStorageStructure#getSize() */ public int getSize() { return this.filtrationIndices.size(); } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.streams.storage_structures.StreamStorageStructure#finalizeStructure() */ public void finalizeStructure() { // we must go through the map and sort the list segments for (TIntObjectIterator<TIntObjectHashMap<List<T>>> filtrationIndexIterator = this.indexDimensionObjectMap.iterator(); filtrationIndexIterator.hasNext(); ) { filtrationIndexIterator.advance(); TIntObjectHashMap<List<T>> dimensionMap = filtrationIndexIterator.value(); for (TIntObjectIterator<List<T>> dimensionIterator = dimensionMap.iterator(); dimensionIterator.hasNext(); ) { dimensionIterator.advance(); Collections.sort(dimensionIterator.value(), this.basisComparator); } } this.isFinalized = true; } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.streams.storage_structures.StreamStorageStructure#getMaximumFiltrationIndex() */ public int getMaximumFiltrationIndex() { int maxIndex = Integer.MIN_VALUE; for (TIntObjectIterator<TIntObjectHashMap<List<T>>> filtrationIndexIterator = this.indexDimensionObjectMap.iterator(); filtrationIndexIterator.hasNext(); ) { filtrationIndexIterator.advance(); if (filtrationIndexIterator.key() > maxIndex) { maxIndex = filtrationIndexIterator.key(); } } return maxIndex; } public int getMinimumFiltrationIndex() { int minIndex = Integer.MAX_VALUE; for (TIntObjectIterator<TIntObjectHashMap<List<T>>> filtrationIndexIterator = this.indexDimensionObjectMap.iterator(); filtrationIndexIterator.hasNext(); ) { filtrationIndexIterator.advance(); if (filtrationIndexIterator.key() < minIndex) { minIndex = filtrationIndexIterator.key(); } } return minIndex; } } ================================================ FILE: src/java/edu/stanford/math/plex4/streams/storage_structures/HashedStorageStructureIterator.java ================================================ package edu.stanford.math.plex4.streams.storage_structures; import gnu.trove.TIntObjectHashMap; import java.util.Arrays; import java.util.Iterator; import java.util.List; /** * This class implements the Iterator interface for a HashedStorageStructure. It allows * the user to traverse the structure in increasing order of filtration index and dimension. * * @author Andrew Tausz * * @param <E> */ public class HashedStorageStructureIterator<E> implements Iterator<E> { private final TIntObjectHashMap<TIntObjectHashMap<List<E>>> indexDimensionObjectMap; private Iterator<E> listIterator = null; private int[] filtrationIndices = null; private int[] dimensions = null; private int filtrationIndexIndex = 0; private int dimensionIndex = 0; private int currentFiltrationIndex; private int currentDimension; /** * This constructor accepts a filtration index -> dimension -> list mapping. * * @param indexDimensionObjectMap */ public HashedStorageStructureIterator(TIntObjectHashMap<TIntObjectHashMap<List<E>>> indexDimensionObjectMap) { this.indexDimensionObjectMap = indexDimensionObjectMap; this.filtrationIndices = this.indexDimensionObjectMap.keys(); Arrays.sort(this.filtrationIndices); this.filtrationIndexIndex = 0; this.currentFiltrationIndex = this.filtrationIndices[this.filtrationIndexIndex]; this.dimensions = this.indexDimensionObjectMap.get(this.currentFiltrationIndex).keys(); Arrays.sort(this.dimensions); this.dimensionIndex = 0; this.currentDimension = this.dimensions[this.dimensionIndex]; this.listIterator = this.indexDimensionObjectMap.get(currentFiltrationIndex).get(currentDimension).iterator(); } /* (non-Javadoc) * @see java.util.Iterator#hasNext() */ public boolean hasNext() { if (this.listIterator.hasNext()) { return true; } if (this.dimensionIndex < this.dimensions.length - 1) { return true; } if (this.filtrationIndexIndex < this.filtrationIndices.length - 1) { return true; } return false; } /* (non-Javadoc) * @see java.util.Iterator#next() */ public E next() { if (this.advanceToNextIterator()) { return this.listIterator.next(); } return null; } /** * Currently we do not support removal from a hashed storage structure via an iterator. * * @throws UnsupportedOperationException */ public void remove() { throw new UnsupportedOperationException(); } /** * This function advances the filtration and dimension indices until it can find a list * segment that has a next element. If the current list segment has a next element, then * it does nothing. In the even that this method cannot find a non-empty list segment, it * returns false, otherwise it returns true. * * @return true if the listIterator has a next element and false otherwise */ private boolean advanceToNextIterator() { if (this.listIterator.hasNext()) { return true; } // move forward in dimension if possible if (this.dimensionIndex < this.dimensions.length - 1) { this.dimensionIndex++; this.currentDimension = this.dimensions[this.dimensionIndex]; Arrays.sort(this.dimensions); this.listIterator = this.indexDimensionObjectMap.get(currentFiltrationIndex).get(currentDimension).iterator(); return true; } // if we can't move forward in dimension, advance the filtration index if possible if (this.filtrationIndexIndex < this.filtrationIndices.length - 1) { this.filtrationIndexIndex++; this.currentFiltrationIndex = this.filtrationIndices[this.filtrationIndexIndex]; this.dimensions = this.indexDimensionObjectMap.get(this.currentFiltrationIndex).keys(); Arrays.sort(this.dimensions); this.dimensionIndex = 0; this.currentDimension = this.dimensions[this.dimensionIndex]; this.listIterator = this.indexDimensionObjectMap.get(currentFiltrationIndex).get(currentDimension).iterator(); return true; } return false; } } ================================================ FILE: src/java/edu/stanford/math/plex4/streams/storage_structures/IntOrderedIterator.java ================================================ package edu.stanford.math.plex4.streams.storage_structures; import java.util.Iterator; import edu.stanford.math.primitivelib.autogen.pair.IntObjectPair; /** * This class provides iteration over the second component of each element * in an Iterable collection of type IntObjectPair<E>. It essentially * ignores the first component, and only returns the second. * * @author Andrew Tausz * * @param <E> */ public class IntOrderedIterator<E> implements Iterator<E> { /** * The iterator over the pair collection. */ private final Iterator<IntObjectPair<E>> internalIterator; /** * This constructor initializes the iterator with an iterable collection * over the type IntObjectPair<E>. * * @param collection the Iterable collection to initialize with */ public IntOrderedIterator(Iterable<IntObjectPair<E>> collection) { this.internalIterator = collection.iterator(); } /* (non-Javadoc) * @see java.util.Iterator#hasNext() */ public boolean hasNext() { return this.internalIterator.hasNext(); } /* (non-Javadoc) * @see java.util.Iterator#next() */ public E next() { return this.internalIterator.next().getSecond(); } /* (non-Javadoc) * @see java.util.Iterator#remove() */ public void remove() { throw new UnsupportedOperationException(); } } ================================================ FILE: src/java/edu/stanford/math/plex4/streams/storage_structures/SortedStorageStructure.java ================================================ /** * */ package edu.stanford.math.plex4.streams.storage_structures; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.Iterator; import java.util.List; import edu.stanford.math.primitivelib.autogen.pair.IntObjectPair; import edu.stanford.math.primitivelib.autogen.pair.IntObjectPairComparator; import gnu.trove.TObjectIntHashMap; /** * This class implements an in-memory stream storage mechanism where all of the * elements are held in an in-memory collection in fully sorted order. It implements * the StreamStorageStructure interface. * * @author Andrew Tausz * * @param <T> the underlying basis type */ public class SortedStorageStructure<T> implements StreamStorageStructure<T> { /** * This contains the pairs of filtration index and basis elements. */ private final List<IntObjectPair<T>> elementFiltrationPairs = new ArrayList<IntObjectPair<T>>(); /** * This hash map contains the filtration indices of the basis elements in the complex. */ private final TObjectIntHashMap<T> filtrationIndices = new TObjectIntHashMap<T>(); /** * Comparator which provides ordering of elements of the stream. */ private final Comparator<T> basisComparator; /** * This comparator defines the filtration ordering on filtration-object pairs. */ private final IntObjectPairComparator<T> filteredComparator; /** * Boolean which indicates whether stream has been finalized or not */ private boolean isFinalized = false; /** * This construction initializes the class with a comparator for comparing the basis elements. * * @param basisComparator the comparator */ public SortedStorageStructure(Comparator<T> basisComparator) { this.basisComparator = basisComparator; this.filteredComparator = new IntObjectPairComparator<T>(this.basisComparator); } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.streams.storage_structures.StreamStorageStructure#addElement(java.lang.Object, int) */ public void addElement(T basisElement, int filtrationIndex) { this.elementFiltrationPairs.add(new IntObjectPair<T>(filtrationIndex, basisElement)); this.filtrationIndices.put(basisElement, filtrationIndex); } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.streams.storage_structures.StreamStorageStructure#updateOrAddElement(java.lang.Object, int) */ public void updateOrAddElement(T basisElement, int newFiltrationValue) { if (this.isFinalized) { throw new IllegalStateException("Cannot update objects in finalized storage structure."); } if (this.filtrationIndices.containsKey(basisElement)) { // remove the old (filtration value, basis element) pair IntObjectPair<T> pair = new IntObjectPair<T>(this.filtrationIndices.get(basisElement), basisElement); this.elementFiltrationPairs.remove(pair); // add the new pair this.elementFiltrationPairs.add(new IntObjectPair<T>(newFiltrationValue, basisElement)); } else { this.elementFiltrationPairs.add(new IntObjectPair<T>(newFiltrationValue, basisElement)); } this.filtrationIndices.adjustOrPutValue(basisElement, newFiltrationValue, newFiltrationValue); } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.streams.storage_structures.StreamStorageStructure#removeElement(java.lang.Object) */ public void removeElement(T basisElement) { if (!this.filtrationIndices.containsKey(basisElement)) { throw new IllegalArgumentException("Element: " + basisElement + " is not present in the stream."); } // remove the old (filtration value, basis element) pair IntObjectPair<T> pair = new IntObjectPair<T>(this.filtrationIndices.get(basisElement), basisElement); this.elementFiltrationPairs.remove(pair); // remove the element from the filtration values map this.filtrationIndices.remove(basisElement); } /* (non-Javadoc) * @see edu.stanford.math.plex_plus.homology.stream_structure.StreamStorageStructure#isFinalized() */ public boolean isFinalized() { return this.isFinalized; } /* (non-Javadoc) * @see java.lang.Object#finalize() */ public void finalizeStructure() { Collections.sort(this.elementFiltrationPairs, this.filteredComparator); this.isFinalized = true; } /* (non-Javadoc) * @see java.lang.Iterable#iterator() */ public Iterator<T> iterator() { return new IntOrderedIterator<T>(this.elementFiltrationPairs); } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.streams.storage_structures.StreamStorageStructure#getFiltrationIndex(java.lang.Object) */ public int getFiltrationIndex(T basisElement) { return this.filtrationIndices.get(basisElement); } /* (non-Javadoc) * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder builder = new StringBuilder(); for (IntObjectPair<T> pair : this.elementFiltrationPairs) { builder.append(pair.toString()); builder.append('\n'); } return builder.toString(); } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.streams.storage_structures.StreamStorageStructure#getBasisComparator() */ public Comparator<T> getBasisComparator() { return this.basisComparator; } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.streams.storage_structures.StreamStorageStructure#containsElement(java.lang.Object) */ public boolean containsElement(T basisElement) { return this.filtrationIndices.containsKey(basisElement); } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.streams.storage_structures.StreamStorageStructure#getSize() */ public int getSize() { return this.filtrationIndices.size(); } /* (non-Javadoc) * @see edu.stanford.math.plex4.homology.streams.storage_structures.StreamStorageStructure#getMaximumFiltrationIndex() */ public int getMaximumFiltrationIndex() { int maxIndex = Integer.MIN_VALUE; for (IntObjectPair<T> pair : this.elementFiltrationPairs) { if (pair.getFirst() > maxIndex) { maxIndex = pair.getFirst(); } } return maxIndex; } public int getMinimumFiltrationIndex() { int minIndex = Integer.MAX_VALUE; for (IntObjectPair<T> pair : this.elementFiltrationPairs) { if (pair.getFirst() < minIndex) { minIndex = pair.getFirst(); } } return minIndex; } } ================================================ FILE: src/java/edu/stanford/math/plex4/streams/storage_structures/StreamStorageStructure.java ================================================ package edu.stanford.math.plex4.streams.storage_structures; import java.util.Comparator; /** * This interface defines the functionality of a stream storage structure. Such * a structure is designed to be the backing of a streamed filtered chain complex. * * Note that this interface extends the Iterable<T> interface. An implementing * class must ensure that the elements are provided in increasing order of * filtration index. * * @author Andrew Tausz * * @param <T> */ public interface StreamStorageStructure<T> extends Iterable<T> { /** * This function adds the given basis element to the storage structure, with * the supplied filtration index. * * @param basisElement the basis element to add * @param filtrationIndex the filtration index of the basis element */ void addElement(T basisElement, int filtrationIndex); /** * This function removes the specified element form the storage structure. * In the case that the element is not present in the stream, this function * throws an IllegalArgumentException. * * @param basisElement the basisElement to remove */ void removeElement(T basisElement); /** * This function returns true if the stream contains the given basis element, * and false otherwise. * * @param basisElement the basis element to query * @return true if the stream contains the basis element and false otherwise */ boolean containsElement(T basisElement); /** * This function returns the filtration index of the given basis element. * * @param basisElement the element to query * @return the filtration index of the given basis element */ int getFiltrationIndex(T basisElement); /** * This function sets the stream as being finalized. A finalized storage structure * cannot accept any more elements, and should be ready for consumption. */ void finalizeStructure(); /** * This function returns true if the stream has been finalized. * * @return true if the stream is finalized and false otherwise */ boolean isFinalized(); /** * This function returns a Comparator<T> object used to define the ordering * on the basis type. * * @return a Comparator on the basis type */ Comparator<T> getBasisComparator(); /** * This function returns the number of elements in the storage structure. * * @return the number of elements in the storage structure */ int getSize(); /** * This function gets the maximum filtration index in the complex. * * @return the maximum filtration index */ public int getMaximumFiltrationIndex(); /** * This function gets the minimum filtration index in the complex. * * @return the minimum filtration index */ public int getMinimumFiltrationIndex(); } ================================================ FILE: src/java/edu/stanford/math/plex4/streams/storage_structures/StreamStorageStructureFactory.java ================================================ package edu.stanford.math.plex4.streams.storage_structures; import java.util.Comparator; import edu.stanford.math.plex4.homology.chain_basis.PrimitiveBasisElement; /** * This class contains various convenience functions for constructing stream storage structures. It also * defines the default stream storage structure used by most filtered chain complexes. * * @author Andrew Tausz * */ public class StreamStorageStructureFactory { /** * This function returns the default stream storage structure for the type T. * * @param <T> the underlying basis type * @param comparator a comparator for comparing basis elements * @return the default stream storage structure */ public static <T extends PrimitiveBasisElement> StreamStorageStructure<T> getDefaultStorageStructure(Comparator<T> comparator) { return new SortedStorageStructure<T>(comparator); } /** * This function creates a new sorted storage structure. * * @param <T> the underlying basis type * @param comparator a comparator for comparing basis elements * @return a new stream storage structure */ public static <T> StreamStorageStructure<T> getSortedStorageStructure(Comparator<T> comparator) { return new SortedStorageStructure<T>(comparator); } /** * This function creates a new hashed storage structure. * * @param <T> the underlying basis type * @param comparator a comparator for comparing basis elements * @return a new hashed stream storage structure */ public static <T extends PrimitiveBasisElement> StreamStorageStructure<T> getHashedStorageStructure(Comparator<T> comparator) { return new HashedStorageStructure<T>(comparator); } } ================================================ FILE: src/java/edu/stanford/math/plex4/streams/utility/FilteredComparator.java ================================================ package edu.stanford.math.plex4.streams.utility; import java.util.Comparator; import edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream; /** * This class provides filtration based comparison of basis elements. It implements * a dictionary ordering where first the filtration indices are compared, and then * the actual basis elements are compared using the supplied comparator. * * @author Andrew Tausz * * @param <M> the underlying type of the basis elements */ public class FilteredComparator<M> implements Comparator<M> { /** * The filtered complex which provides the filtration index information. */ private final AbstractFilteredStream<M> stream; /** * The comparator for the basis type. */ private final Comparator<M> basisComparator; /** * This constructor initializes the class with a filtered chain complex, and a comparator * on the basis elements. * * @param stream the filtered chain complex * @param basisComparator a comparator on the basis elements */ public FilteredComparator(AbstractFilteredStream<M> stream, Comparator<M> basisComparator) { this.stream = stream; this.basisComparator = basisComparator; } /* (non-Javadoc) * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object) */ public int compare(M arg0, M arg1) { int filtration0 = stream.getFiltrationIndex(arg0); int filtration1 = stream.getFiltrationIndex(arg1); if (filtration0 < filtration1) { return -1; } else if (filtration0 > filtration1) { return 1; } else { return this.basisComparator.compare(arg0, arg1); } } } ================================================ FILE: src/java/edu/stanford/math/plex4/streams/utility/SkeletalMetric.java ================================================ package edu.stanford.math.plex4.streams.utility; import java.util.ArrayList; import java.util.List; import edu.stanford.math.plex4.homology.chain_basis.Simplex; import edu.stanford.math.plex4.metric.interfaces.AbstractObjectMetricSpace; import edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream; import edu.stanford.math.primitivelib.autogen.array.DoubleArrayUtility; import edu.stanford.math.primitivelib.autogen.formal_sum.DoubleSparseFormalSum; import edu.stanford.math.primitivelib.utility.Infinity; import gnu.trove.TIntIntHashMap; import gnu.trove.TIntObjectHashMap; import gnu.trove.TObjectDoubleIterator; import gnu.trove.TObjectIntHashMap; /** * This class implements a metric on a simplicial complex. The distance between two simplices * is defined to be the maximum of the distances between the any two pairs of vertices where one * vertex is in the first simplex and the other is in the second simplex. * * @author Andrew Tausz * */ public class SkeletalMetric implements AbstractObjectMetricSpace<Simplex> { /** * This maps a basis element to an index. The index is the appropriate * index of the standard basis vector the generating element is mapped to. */ private final TObjectIntHashMap<Simplex> indexMapping = new TObjectIntHashMap<Simplex>(); /** * This maps an index (ie. the index of a standard basis vector) to a generating * element of the free module. */ private final TIntObjectHashMap<Simplex> basisMapping = new TIntObjectHashMap<Simplex>(); private final TIntIntHashMap vertexIndexMap = new TIntIntHashMap(); private final TIntIntHashMap indexVertexMap = new TIntIntHashMap(); private int numVertices = 0; private List<Simplex> edgeSet = new ArrayList<Simplex>(); private final double[][] distances; public SkeletalMetric(AbstractFilteredStream<Simplex> stream) { this.initializeMappings(stream); this.distances = this.computeShortestPaths(); } public double getDiameter(DoubleSparseFormalSum<Simplex> chain) { double diameter = 0; for (TObjectDoubleIterator<Simplex> iterator_1 = chain.iterator(); iterator_1.hasNext(); ) { iterator_1.advance(); Simplex simplex_1 = iterator_1.key(); for (TObjectDoubleIterator<Simplex> iterator_2 = chain.iterator(); iterator_2.hasNext(); ) { iterator_2.advance(); Simplex simplex_2 = iterator_2.key(); double distance = this.distance(simplex_1, simplex_2); diameter = Math.max(diameter, distance * iterator_1.value() * iterator_2.value()); } } return diameter; } public Simplex getPoint(int index) { return this.basisMapping.get(index); } public int size() { return this.basisMapping.size(); } public double distance(int i, int j) { return this.distances[i][j]; } public double distance(Simplex simplex_i, Simplex simplex_j) { return this.distances[this.indexMapping.get(simplex_i)][this.indexMapping.get(simplex_j)]; } /** * This function initializes the basis-index mappings. */ private void initializeMappings(AbstractFilteredStream<Simplex> stream) { int index = 0; for (Simplex basisElement: stream) { int dimension = basisElement.getDimension(); if (dimension == 0) { this.numVertices++; this.vertexIndexMap.put(basisElement.getVertices()[0], index); this.indexVertexMap.put(index, basisElement.getVertices()[0]); } else if (dimension == 1){ this.edgeSet.add(basisElement); } this.indexMapping.put(basisElement, index); this.basisMapping.put(index, basisElement); index++; } } /** * This function computes the shortest paths distances between all pairs within * the 1-skeleton of the complex using the Floyd-Warshall algorithm. * * @return */ private double[][] computeShortestPaths() { int N = this.size(); int n = this.numVertices; double[][] pathLengths = DoubleArrayUtility.createMatrix(N, N); // initialize distances to +infinity for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { pathLengths[i][j] = Infinity.Double.getPositiveInfinity(); } } // compute immediate distances between points for (Simplex edge: this.edgeSet) { int[] vertices = edge.getVertices(); int i = this.vertexIndexMap.get(vertices[0]); int j = this.vertexIndexMap.get(vertices[1]); pathLengths[i][j] = 1; pathLengths[j][i] = 1; } // fill in distances between all vertices using the Floyd-Warshall algorithm for (int k_index = 0; k_index < n; k_index++) { int k = this.indexVertexMap.get(k_index); for (int i_index = 0; i_index < n; i_index++) { int i = this.indexVertexMap.get(i_index); for (int j_index = 0; j_index < n; j_index++) { int j = this.indexVertexMap.get(j_index); pathLengths[i][j] = Math.min(pathLengths[i][j], pathLengths[i][k] + pathLengths[k][j]); } } } // compute the distances between other simplices for (int i_index = 0; i_index < N; i_index++) { Simplex sigma_i = this.basisMapping.get(i_index); int dimension_i = sigma_i.getDimension(); int[] vertices_i = sigma_i.getVertices(); pathLengths[i_index][i_index] = 0; for (int j_index = 0; j_index < i_index; j_index++) { Simplex sigma_j = this.basisMapping.get(j_index); int dimension_j = sigma_j.getDimension(); if (dimension_i == 0 && dimension_j == 0) { continue; } int[] vertices_j = sigma_j.getVertices(); double distance = Infinity.Double.getPositiveInfinity(); for (int i_vertex_index = 0; i_vertex_index < vertices_i.length; i_vertex_index++) { for (int j_vertex_index = 0; j_vertex_index < vertices_j.length; j_vertex_index++) { if (i_vertex_index != j_vertex_index) { distance = Math.min(distance, pathLengths[this.vertexIndexMap.get(i_vertex_index)][this.vertexIndexMap.get(j_vertex_index)]); } } } pathLengths[i_index][j_index] = distance; pathLengths[j_index][i_index] = distance; } } return pathLengths; } public Simplex[] getPoints() { throw new UnsupportedOperationException(); } } ================================================ FILE: src/java/edu/stanford/math/plex4/streams/utility/StreamUtility.java ================================================ package edu.stanford.math.plex4.streams.utility; import java.util.ArrayList; import java.util.List; import edu.stanford.math.plex4.graph.AbstractUndirectedGraph; import edu.stanford.math.plex4.graph.UndirectedListGraph; import edu.stanford.math.plex4.homology.chain_basis.Simplex; import edu.stanford.math.plex4.homology.utility.HomologyUtility; import edu.stanford.math.plex4.streams.derived.TensorStream; import edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream; import edu.stanford.math.primitivelib.autogen.formal_sum.DoublePrimitiveFreeModule; import edu.stanford.math.primitivelib.autogen.formal_sum.DoubleSparseFormalSum; import edu.stanford.math.primitivelib.autogen.formal_sum.IntMatrixConverter; import edu.stanford.math.primitivelib.autogen.formal_sum.IntPrimitiveFreeModule; import edu.stanford.math.primitivelib.autogen.formal_sum.IntSparseFormalSum; import edu.stanford.math.primitivelib.autogen.formal_sum.ObjectAlgebraicFreeModule; import edu.stanford.math.primitivelib.autogen.formal_sum.ObjectSparseFormalSum; import edu.stanford.math.primitivelib.autogen.matrix.IntSparseMatrix; import edu.stanford.math.primitivelib.autogen.pair.ObjectObjectPair; /** * This class contains various static functions for querying and manipulating filtered chain complexes. * * @author Andrew Tausz * */ public class StreamUtility { /** * This function dumps the k-skeleton of a chain complex into a list. * * @param <T> the type of the basis elements * @param stream the stream to search * @param k the dimension of the objects to retrieve * @return the objects with the requested dimension */ public static <T> List<T> getSkeleton(AbstractFilteredStream<T> stream, int k) { List<T> skeleton = new ArrayList<T>(); for (T basisElement: stream) { int elementDimension = stream.getDimension(basisElement); if (elementDimension == k) { skeleton.add(basisElement); } } return skeleton; } /** * This function computes the size of the k-skeleton of a chain complex. * * @param <T> the type of the basis elements * @param stream the stream to search * @param k the dimension of the objects to retrieve * @return the size of the k-seleton of the complex */ public static <T> int getSkeletonSize(AbstractFilteredStream<T> stream, int k) { int size = 0; for (T basisElement: stream) { if (stream.getDimension(basisElement) == k) { size++; } } return size; } /** * This function returns the boundary matrix for the entire complex. * * @param <T> the underlying basis type * @param stream the complex * @return the boundary matrix as an IntSparseFormalSum */ public static <T> IntSparseFormalSum<ObjectObjectPair<T, T>> createBoundaryMatrixAsIntSum(AbstractFilteredStream<T> stream) { IntPrimitiveFreeModule<ObjectObjectPair<T, T>> chainModule = new IntPrimitiveFreeModule<ObjectObjectPair<T, T>>(); IntSparseFormalSum<ObjectObjectPair<T, T>> sum = new IntSparseFormalSum<ObjectObjectPair<T, T>>(); for (T basisElement: stream) { int[] boundaryCoefficients = stream.getBoundaryCoefficients(basisElement); T[] boundaryElements = stream.getBoundary(basisElement); for (int i = 0; i < boundaryElements.length; i++) { chainModule.accumulate(sum, new ObjectObjectPair<T, T>(boundaryElements[i], basisElement), boundaryCoefficients[i]); } } return sum; } /** * This function returns the boundary matrix for the entire complex. * * @param <T> the underlying basis type * @param stream the complex * @return the boundary matrix as a DoubleSparseFormalSum */ public static <T> DoubleSparseFormalSum<ObjectObjectPair<T, T>> createBoundaryMatrixAsDoubleSum(AbstractFilteredStream<T> stream) { DoublePrimitiveFreeModule<ObjectObjectPair<T, T>> chainModule = new DoublePrimitiveFreeModule<ObjectObjectPair<T, T>>(); DoubleSparseFormalSum<ObjectObjectPair<T, T>> sum = new DoubleSparseFormalSum<ObjectObjectPair<T, T>>(); for (T basisElement: stream) { int[] boundaryCoefficients = stream.getBoundaryCoefficients(basisElement); T[] boundaryElements = stream.getBoundary(basisElement); for (int i = 0; i < boundaryElements.length; i++) { chainModule.accumulate(sum, new ObjectObjectPair<T, T>(boundaryElements[i], basisElement), boundaryCoefficients[i]); } } return sum; } /** * This function returns the boundary matrix for the entire complex. * * @param <T> the underlying basis type * @param stream the complex * @param dimension the dimension to get the boundary for * @return the boundary matrix as an IntSparseFormalSum */ public static <T> IntSparseFormalSum<ObjectObjectPair<T, T>> createBoundaryMatrixAsIntSum(AbstractFilteredStream<T> stream, int dimension) { IntPrimitiveFreeModule<ObjectObjectPair<T, T>> chainModule = new IntPrimitiveFreeModule<ObjectObjectPair<T, T>>(); IntSparseFormalSum<ObjectObjectPair<T, T>> sum = new IntSparseFormalSum<ObjectObjectPair<T, T>>(); for (T basisElement: stream) { int elementDimension = stream.getDimension(basisElement); if (elementDimension != dimension) { continue; } int[] boundaryCoefficients = stream.getBoundaryCoefficients(basisElement); T[] boundaryElements = stream.getBoundary(basisElement); for (int i = 0; i < boundaryElements.length; i++) { chainModule.accumulate(sum, new ObjectObjectPair<T, T>(boundaryElements[i], basisElement), boundaryCoefficients[i]); } } return sum; } /** * This function returns the boundary matrix for the entire complex. * * @param <T> the underlying basis type * @param stream the complex * @param dimension the dimension to get the boundary for * @return the boundary matrix as a DoubleSparseFormalSum */ public static <T> DoubleSparseFormalSum<ObjectObjectPair<T, T>> createBoundaryMatrixAsDoubleSum(AbstractFilteredStream<T> stream, int dimension) { DoublePrimitiveFreeModule<ObjectObjectPair<T, T>> chainModule = new DoublePrimitiveFreeModule<ObjectObjectPair<T, T>>(); DoubleSparseFormalSum<ObjectObjectPair<T, T>> sum = new DoubleSparseFormalSum<ObjectObjectPair<T, T>>(); for (T basisElement: stream) { int elementDimension = stream.getDimension(basisElement); if (elementDimension != dimension) { continue; } int[] boundaryCoefficients = stream.getBoundaryCoefficients(basisElement); T[] boundaryElements = stream.getBoundary(basisElement); for (int i = 0; i < boundaryElements.length; i++) { chainModule.accumulate(sum, new ObjectObjectPair<T, T>(boundaryElements[i], basisElement), boundaryCoefficients[i]); } } return sum; } /** * This function returns the boundary matrix at the specified dimension as a list of columns * * @param <T> the underlying basis type * @param stream the complex * @param dimension the dimension to get the boundary for * @return the boundary matrix as a list of formal sums */ public static <T> List<IntSparseFormalSum<T>> getBoundaryMatrixColumns(AbstractFilteredStream<T> stream, int dimension) { List<IntSparseFormalSum<T>> boundaryMatrixColumns = new ArrayList<IntSparseFormalSum<T>>(); IntPrimitiveFreeModule<T> chainModule = new IntPrimitiveFreeModule<T>(); for (T basisElement: stream) { int elementDimension = stream.getDimension(basisElement); if (elementDimension == dimension) { boundaryMatrixColumns.add(chainModule.createNewSum(stream.getBoundaryCoefficients(basisElement), stream.getBoundary(basisElement))); } } return boundaryMatrixColumns; } /** * This function produces a list of formal sums which are the columns of the boundary * matrix at the requested dimension. * * @param <R> the type of the ring in which to compute * @param <T> the type of the basis elements * @param stream the stream to perform the operation on * @param dimension the dimension * @param chainModule the module which performs the algebraic operations (forming the sums) * @return the columns of the boundary matrix at the request dimension */ public static <R, T> List<ObjectSparseFormalSum<R, T>> getBoundaryMatrixColumns(AbstractFilteredStream<T> stream, int dimension, ObjectAlgebraicFreeModule<R, T> chainModule) { List<ObjectSparseFormalSum<R, T>> boundaryMatrixColumns = new ArrayList<ObjectSparseFormalSum<R, T>>(); for (T basisElement: stream) { int elementDimension = stream.getDimension(basisElement); if (elementDimension == dimension) { boundaryMatrixColumns.add(chainModule.createNewSum(stream.getBoundaryCoefficients(basisElement), stream.getBoundary(basisElement))); } } return boundaryMatrixColumns; } /** * This function returns a graph containing the 1-skeleton of a given filtered simplicial complex. It only adds * edges whose filtration index is greater than the specified value. * * @param stream the stream to perform the operation on * @param minFiltrationIndex the minimum filtration index * @return the 1-skeleton of the complex in the form of an undirected graph */ public static UndirectedListGraph getNeighborhoodGraph(AbstractFilteredStream<Simplex> stream, int minFiltrationIndex) { int maxVertexIndex = Integer.MIN_VALUE; for (Simplex basisElement: stream) { int elementDimension = stream.getDimension(basisElement); if (elementDimension == 0 && (maxVertexIndex < basisElement.getVertices()[0])) { maxVertexIndex = basisElement.getVertices()[0]; } } UndirectedListGraph graph = new UndirectedListGraph(maxVertexIndex + 1); for (Simplex basisElement: stream) { int elementDimension = stream.getDimension(basisElement); if (elementDimension == 1 && (stream.getFiltrationIndex(basisElement) >= minFiltrationIndex)) { int[] vertices = basisElement.getVertices(); int i = vertices[0]; int j = vertices[1]; graph.addEdge(i, j); } } return graph; } /** * This function returns the 1-skeleton of a filtered simplicial complex in the form of an undirected graph. * * @param stream the stream to perform the operation on * @return the 1-skeleton of the complex */ public static AbstractUndirectedGraph getNeighborhoodGraph(AbstractFilteredStream<Simplex> stream) { return getNeighborhoodGraph(stream, 0); } public static IntSparseMatrix createAlexanderWhitneyMatrix(AbstractFilteredStream<Simplex> stream) { TensorStream<Simplex, Simplex> tensorStream = new TensorStream<Simplex, Simplex>(stream, stream); IntMatrixConverter<Simplex, ObjectObjectPair<Simplex, Simplex>> matrixConverter = new IntMatrixConverter<Simplex, ObjectObjectPair<Simplex, Simplex>>(stream, tensorStream); IntSparseMatrix matrix = new IntSparseMatrix(tensorStream.getSize(), stream.getSize()); for (Simplex simplex: stream) { List<ObjectObjectPair<Simplex, Simplex>> awMap = alexanderWhitneyDiagonal(simplex); int col = matrixConverter.getDomainRepresentation().getIndex(simplex); for (ObjectObjectPair<Simplex, Simplex> codomainElement : awMap) { int row = matrixConverter.getCodomainRepresentation().getIndex(codomainElement); matrix.set(row, col, 1); } } return matrix; } /** * This function computes the Alexander-Whitney diagonal map of a given simplex defined by * Delta([v_0, ... v_n]) = sum_i [v_0, ... v_i] tensor [v_i, ... v_n] * * @param simplex the simplex argument * @return the Alexander-Whitney diagonal map of the given simplex */ public static List<ObjectObjectPair<Simplex, Simplex>> alexanderWhitneyDiagonal(Simplex simplex) { List<ObjectObjectPair<Simplex, Simplex>> result = new ArrayList<ObjectObjectPair<Simplex, Simplex>>(); int[] vertices = simplex.getVertices(); for (int i = 0; i < vertices.length; i++) { result.add(new ObjectObjectPair<Simplex, Simplex>(new Simplex(HomologyUtility.lowerEntries(vertices, i)), new Simplex(HomologyUtility.upperEntries(vertices, i)))); } return result; } } ================================================ FILE: src/java/edu/stanford/math/plex4/utility/ArrayUtility.java ================================================ package edu.stanford.math.plex4.utility; import java.util.Arrays; public class ArrayUtility { public static double[][] getSubset(double[][] points, int[] indices) { double[][] result = new double[indices.length][]; for (int i = 0; i < indices.length; i++) { result[i] = points[indices[i]]; } return result; } public static boolean isMonotoneIncreasing(int[] a) { for (int i = 1; i < a.length; i++) { if (a[i] <= a[i - 1]) { return false; } } return true; } public static int[] makeMonotone(int[] a) { int[] temp = ArrayUtility.copyOf(a, a.length); Arrays.sort(temp); int k = 0, i = 0; int[] result = new int[temp.length]; while (i < temp.length && k < result.length) { if (k > 0 && result[k - 1] == temp[i]) { i++; continue; } result[k] = temp[i]; i++; k++; } return ArrayUtility.copyOf(result, k); } public static int[] union(int[] a, int[] b) { int i = 0, j = 0, k = 0; int[] temp = new int[a.length + b.length]; while (i < a.length && j < b.length) { if (a[i] < b[j]) { temp[k] = a[i]; k++; i++; } else if (a[i] > b[j]) { temp[k] = b[j]; k++; j++; } else { temp[k] = a[i]; i++; j++; k++; } } while (i < a.length) { temp[k] = a[i]; i++; k++; } while (j < b.length) { temp[k] = b[j]; j++; k++; } return ArrayUtility.copyOf(temp, k); } public static double[] copyOf(double[] array, int length) { double[] result = new double[length]; int n = Math.min(length, array.length); for (int i = 0; i < n; i++) { result[i] = array[i]; } return result; } public static int[] copyOf(int[] array, int length) { int[] result = new int[length]; int n = Math.min(length, array.length); for (int i = 0; i < n; i++) { result[i] = array[i]; } return result; } public static float[] copyOf(float[] array, int length) { float[] result = new float[length]; int n = Math.min(length, array.length); for (int i = 0; i < n; i++) { result[i] = array[i]; } return result; } public static short[] copyOf(short[] array, int length) { short[] result = new short[length]; int n = Math.min(length, array.length); for (int i = 0; i < n; i++) { result[i] = array[i]; } return result; } public static long[] copyOf(long[] array, int length) { long[] result = new long[length]; int n = Math.min(length, array.length); for (int i = 0; i < n; i++) { result[i] = array[i]; } return result; } public static boolean[] copyOf(boolean[] array, int length) { boolean[] result = new boolean[length]; int n = Math.min(length, array.length); for (int i = 0; i < n; i++) { result[i] = array[i]; } return result; } public static byte[] copyOf(byte[] array, int length) { byte[] result = new byte[length]; int n = Math.min(length, array.length); for (int i = 0; i < n; i++) { result[i] = array[i]; } return result; } public static char[] copyOf(char[] array, int length) { char[] result = new char[length]; int n = Math.min(length, array.length); for (int i = 0; i < n; i++) { result[i] = array[i]; } return result; } public static Object[] copyOf(Object[] array, int length) { Object[] result = new Object[length]; int n = Math.min(length, array.length); for (int i = 0; i < n; i++) { result[i] = array[i]; } return result; } } ================================================ FILE: src/java/edu/stanford/math/plex4/utility/CollectionUtility.java ================================================ package edu.stanford.math.plex4.utility; import java.util.ArrayList; import java.util.List; public class CollectionUtility { public static <U> List<U> dump(Iterable<U> X) { List<U> list = new ArrayList<U>(); for (U x: X) { list.add(x); } return list; } public static <U> List<U> getDifference(Iterable<U> X, Iterable<U> A) { List<U> list = new ArrayList<U>(); for (U x: X) { list.add(x); } for (U a: A) { list.remove(a); } return list; } } ================================================ FILE: src/java/edu/stanford/math/plex4/utility/ComparisonUtility.java ================================================ package edu.stanford.math.plex4.utility; import gnu.trove.TIntHashSet; import gnu.trove.TIntIterator; import java.util.Collection; /** * This class contains static methods for comparing various objects. * * @author Andrew Tausz * */ public class ComparisonUtility { // default precision values public static final double LOW_PRECISION = 1e-3; public static final double MED_PRECISION = 1e-6; public static final double HIGH_PRECISION = 1e-9; /** * This function returns true if two Collections define the same set; * that is they contain the same elements. * * @param a the first Collection * @param b the second Collection * @return true if the two Collections contain the same set of elements. */ public static boolean setEquals(Collection<?> a, Collection<?> b) { if (a.size() != b.size()) { return false; } return (a.containsAll(b) && b.containsAll(a)); } /** * This function returns true if the two sets of integers contain the * same elements. * * @param a * @param b * @return true if the two sets are the same */ public static boolean setEquals(TIntHashSet a, TIntHashSet b) { return a.containsAll(b.toArray()) && b.containsAll(a.toArray()); } /** * This function computes the intersection of two sets. * * @param a * @param b * @return the set of elements contained in both sets */ public static TIntHashSet intersect(TIntHashSet a, TIntHashSet b) { TIntHashSet result = new TIntHashSet(); for (TIntIterator iterator = a.iterator(); iterator.hasNext(); ) { int x = iterator.next(); if (b.contains(x)) { result.add(x); } } return result; } /** * This function compares two doubles to see if they are within the specified * tolerance of each other. * * @param a the first value * @param b the second value * @param tolerance the tolerance * @return true iff |a - b| <= tolerance */ public static boolean compareDoublesAbsolute(double a, double b, double tolerance) { return (Math.abs(a - b) <= tolerance); } /** * This function compares two doubles to see if their relative distance is within the * specified tolerance. * * @param a the first value * @param b the second value * @param tolerance the tolerance * @return true iff |a - b| / (0.5 (|a| + |b|)) <= tolerance */ public static boolean compareDoublesRelative(double a, double b, double tolerance) { if (a == 0 && b == 0) { return true; } return (Math.abs((a - b) / (0.5 * (Math.abs(a) + Math.abs(b)))) <= tolerance); } /** * This function compares two doubles to see if their (relative/absolute) distance * is within the specified tolerance. If 0.5 (|a| + |b|) < 1 it uses an absolute comparison, * and otherwise it uses a relative comparison. * * @param a the first value * @param b the second value * @param tolerance the tolerance * @return true if the (relative/absolute) distance of a and b is within the given tolerance */ public static boolean compareDoublesGuardedRelative(double a, double b, double tolerance) { double denom = 0.5 * (Math.abs(a) + Math.abs(b)); if (denom < 1) { return (Math.abs(a - b) <= tolerance); } else { return (Math.abs(a - b) / denom <= tolerance); } } } ================================================ FILE: src/java/edu/stanford/math/plex4/utility/ExceptionUtility.java ================================================ package edu.stanford.math.plex4.utility; import java.util.Collection; /** * This class contains static functions for aiding in * creating exceptions, and verifying exceptions. * * The methods starting with verify check a condition * on the arguments. If the condition is not satisfied, * and appropriate exception is thrown. * * @author Andrew Tausz * */ public class ExceptionUtility { /* * Indices */ /** * This function checks to see if index is in the set {lowerBound, ..., upperBound - 1}. * * @param lowerBound the minimum allowable value of index * @param upperBound one past the maximum allowable value of index * @param index the index to check */ public static void verifyIndex(int lowerBound, int upperBound, int index) { if (index < lowerBound || index >= upperBound) { throw new IndexOutOfBoundsException("Lower bound: " + lowerBound + ", Upper bound: " + upperBound + ", Index: " + index); } } /** * This function checks to see if index is in the set {0, ..., upperBound - 1}. * * @param upperBound one past the maximum allowable value of index * @param index the index to check */ public static void verifyIndex(int upperBound, int index) { verifyIndex(0, upperBound, index); } /* * Generic Objects */ public static void verifyNonNull(Object value) { if (value == null) { throw new NullPointerException("Argument must be non-null."); } } public static <T> void verifyAllNonNull(Collection<T> collection) { for (T object : collection) { if (object == null) { throw new NullPointerException("Container must contain only non-null entries."); } } } public static <T> void verifyNonEmpty(Collection<T> collection) { if (collection.isEmpty()) { throw new IllegalArgumentException("Container must not be empty."); } } public static <T> void verifyNonEmpty(int[] collection) { if (collection.length == 0) { throw new IllegalArgumentException("Container must not be empty."); } } public static <T> void verifyNonEmpty(double[] collection) { if (collection.length == 0) { throw new IllegalArgumentException("Container must not be empty."); } } /* * Int comparison */ public static void verifyEqual(int value1, int value2) { if (value1 != value2) { throw new IllegalArgumentException("Arguments must be equal. Argument 1: " + value1 + " Argument 2: " + value2); } } public static void verifyNonEqual(int value1, int value2) { if (value1 == value2) { throw new IllegalArgumentException("Arguments must be non-equal. Argument 1: " + value1 + " Argument 2: " + value2); } } public static void verifyLessThan(int value1, int value2) { if (value1 >= value2) { throw new IllegalArgumentException("Argument 1 must be less than Argument 2. Argument 1: " + value1 + " Argument 2: " + value2); } } public static void verifyGreaterThan(int value1, int value2) { if (value1 <= value2) { throw new IllegalArgumentException("Argument 1 must be greater than Argument 2. Argument 1: " + value1 + " Argument 2: " + value2); } } public static void verifyLessThanOrEqual(int value1, int value2) { if (value1 > value2) { throw new IllegalArgumentException("Argument 1 must be less than or equal to Argument 2. Argument 1: " + value1 + " Argument 2: " + value2); } } public static void verifyGreaterThanOrEqual(int value1, int value2) { if (value1 < value2) { throw new IllegalArgumentException("Argument 1 must be greater than or equal to Argument 2. Argument 1: " + value1 + " Argument 2: " + value2); } } public static void verifyPositive(int value) { if (value <= 0) { throw new IllegalArgumentException("Argument must be positive. Value: " + value); } } public static void verifyNonNegative(int value) { if (value < 0) { throw new IllegalArgumentException("Argument must be non-negative. Value: " + value); } } public static void verifyNegative(int value) { if (value >= 0) { throw new IllegalArgumentException("Argument must be negative. Value: " + value); } } public static void verifyNonPositive(int value) { if (value > 0) { throw new IllegalArgumentException("Argument must be non-positive. Value: " + value); } } public static void verifyNonZero(int value) { if (value == 0) { throw new IllegalArgumentException("Argument must be non-zero. Value: " + value); } } public static void verifyClosedInterval(int value, int lowerBound, int upperBound) { if ((value < lowerBound) || (value > upperBound)) { throw new IllegalArgumentException("Argument is outside the interval [" + lowerBound + ", " + upperBound + "] Value: " + value); } } /* * Double comparison */ public static void verifyEqual(double value1, double value2) { if (value1 != value2) { throw new IllegalArgumentException("Arguments must be equal. Argument 1: " + value1 + " Argument 2: " + value2); } } public static void verifyNonEqual(double value1, double value2) { if (value1 == value2) { throw new IllegalArgumentException("Arguments must be non-equal. Argument 1: " + value1 + " Argument 2: " + value2); } } public static void verifyLessThan(double value1, double value2) { if (value1 >= value2) { throw new IllegalArgumentException("Argument 1 must be less than Argument 2. Argument 1: " + value1 + " Argument 2: " + value2); } } public static void verifyGreaterThan(double value1, double value2) { if (value1 <= value2) { throw new IllegalArgumentException("Argument 1 must be greater than Argument 2. Argument 1: " + value1 + " Argument 2: " + value2); } } public static void verifyLessThanOrEqual(double value1, double value2) { if (value1 > value2) { throw new IllegalArgumentException("Argument 1 must be less than or equal to Argument 2. Argument 1: " + value1 + " Argument 2: " + value2); } } public static void verifyGreaterThanOrEqual(double value1, double value2) { if (value1 < value2) { throw new IllegalArgumentException("Argument 1 must be greater than or equal to Argument 2. Argument 1: " + value1 + " Argument 2: " + value2); } } public static void verifyPositive(double value) { if (value <= 0) { throw new IllegalArgumentException("Argument must be positive. Value: " + value); } } public static void verifyNonNegative(double value) { if (value < 0) { throw new IllegalArgumentException("Argument must be non-negative. Value: " + value); } } public static void verifyNegative(double value) { if (value >= 0) { throw new IllegalArgumentException("Argument must be negative. Value: " + value); } } public static void verifyNonPositive(double value) { if (value > 0) { throw new IllegalArgumentException("Argument must be non-positive. Value: " + value); } } public static void verifyNonZero(double value) { if (value == 0) { throw new IllegalArgumentException("Argument must be non-zero. Value: " + value); } } public static void verifyClosedInterval(double value, double lowerBound, double upperBound) { if ((value < lowerBound) || (value > upperBound)) { throw new IllegalArgumentException("Argument is outside the interval [" + lowerBound + ", " + upperBound + "] Value: " + value); } } public static void verifyOpenInterval(double value, double lowerBound, double upperBound) { if ((value <= lowerBound) || (value >= upperBound)) { throw new IllegalArgumentException("Argument is outside the interval (" + lowerBound + ", " + upperBound + ") Value: " + value); } } public static void verifyLeftHalfOpenInterval(double value, double lowerBound, double upperBound) { if ((value <= lowerBound) || (value > upperBound)) { throw new IllegalArgumentException("Argument is outside the interval (" + lowerBound + ", " + upperBound + "] Value: " + value); } } public static void verifyRightHalfOpenInterval(double value, double lowerBound, double upperBound) { if ((value < lowerBound) || (value >= upperBound)) { throw new IllegalArgumentException("Argument is outside the interval [" + lowerBound + ", " + upperBound + ") Value: " + value); } } public static void verifyTrue(boolean condition) { if (!condition) { throw new IllegalArgumentException("Condition must be true"); } } public static void verifyFalse(boolean condition) { if (condition) { throw new IllegalArgumentException("Condition must be false"); } } public static void verifyTrue(boolean condition, String message) { if (!condition) { throw new IllegalArgumentException(message); } } public static void verifyFalse(boolean condition, String message) { if (condition) { throw new IllegalArgumentException(message); } } } ================================================ FILE: src/java/edu/stanford/math/plex4/utility/FormalSumUtility.java ================================================ package edu.stanford.math.plex4.utility; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Map; import edu.stanford.math.plex4.homology.chain_basis.Simplex; import edu.stanford.math.primitivelib.autogen.formal_sum.BooleanSparseFormalSum; import edu.stanford.math.primitivelib.autogen.formal_sum.IntSparseFormalSum; import edu.stanford.math.primitivelib.autogen.formal_sum.ObjectSparseFormalSum; import gnu.trove.TObjectIntIterator; /** * This class contains various utility functions for interacting with formal * sums (chains). * * @author Andrew Tausz * */ public class FormalSumUtility { /** * This function returns all of the basis elements in a chain which have * non-zero coefficients. The primary use case will be to extract the set of * simplicies in a chain. * * @param chain * @return the set of active basis elements in a formal sum */ public static <F, U> List<U> extractActiveBasisElements(ObjectSparseFormalSum<F, U> chain) { List<U> basisElements = new ArrayList<U>(); for (Iterator<Map.Entry<U, F>> iterator = chain.iterator(); iterator.hasNext();) { Map.Entry<U, F> entry = iterator.next(); basisElements.add(entry.getKey()); } return basisElements; } /** * This function returns all of the basis elements in a chain which have * non-zero coefficients. The primary use case will be to extract the set of * simplicies in a chain. * * @param chain * @return the set of active basis elements in a formal sum */ public static <U> List<U> extractActiveBasisElements(IntSparseFormalSum<U> chain) { List<U> basisElements = new ArrayList<U>(); TObjectIntIterator<U> iter = chain.iterator(); while (iter.hasNext()) { iter.advance(); U obj = iter.key(); basisElements.add(obj); } return basisElements; } /** * This function returns all of the basis elements in a chain which have * non-zero coefficients. The primary use case will be to extract the set of * simplicies in a chain. * * @param chain * @return the set of active basis elements in a formal sum */ public static <U> List<U> extractActiveBasisElements(BooleanSparseFormalSum<U> chain) { List<U> basisElements = new ArrayList<U>(); Iterator<U> iter = chain.iterator(); while (iter.hasNext()) { U obj = iter.next(); basisElements.add(obj); } return basisElements; } /** * This function returns the coefficients for a formal sum in the form of a * list. * * @param chain * @return the coefficients in the chain */ public static List<Integer> extractCoefficients(IntSparseFormalSum<?> chain) { List<Integer> coefficients = new ArrayList<Integer>(); TObjectIntIterator<?> iter = chain.iterator(); while (iter.hasNext()) { iter.advance(); coefficients.add(iter.value()); } return coefficients; } /** * This function returns the coefficients for a formal sum in the form of a * list. * * @param chain * @return the coefficients in the chain */ public static <F, U> List<F> extractCoefficients(ObjectSparseFormalSum<F, U> chain) { List<F> coefficients = new ArrayList<F>(); for (Iterator<Map.Entry<U, F>> iterator = chain.iterator(); iterator.hasNext();) { Map.Entry<U, F> entry = iterator.next(); coefficients.add(entry.getValue()); } return coefficients; } /** * This function extracts the set of vertices from a list of simplices and returns a 2-d * array containing the vertices. * * @param simplices * @return the vertices for a list of simplices */ public static int[][] extractVertices(List<Simplex> simplices) { if (simplices.size() < 1) { return new int[0][0]; } int[][] vertices = new int[simplices.size()][]; int i = 0; for (Simplex s : simplices) { vertices[i++] = s.getVertices(); } return vertices; } } ================================================ FILE: src/java/edu/stanford/math/plex4/utility/MathUtility.java ================================================ package edu.stanford.math.plex4.utility; /** * This class contains various static utility functions * relating to math. * * @author Andrew Tausz * */ public class MathUtility { public static long euclideanGcd(long a, long b) { while (b != 0) { long t = b; b = a % b; a = t; } return a; } public static int signum(long l) { if (l > 0) { return 1; } else if (l < 0) { return -1; } else { return 0; } } public static int signum(double l) { if (l > 0) { return 1; } else if (l < 0) { return -1; } else { return 0; } } /** * This function returns the multiplicative inverses of the integers * [0, 1, ..., p-1] in mod p arithmetic. Note that the 0-th index is * simply set to 0 for convenience so that the inverse of n is in the n-th * component of the returned array. * * TODO: * This is an inefficient way to compute the inverses (it was inherited from * the original Plex implementation). It should be rewritten. * * @param p * @return an array containing the multiplicative inverses in the field Z/pZ */ public static int[] modularInverses(int p) { ExceptionUtility.verifyGreaterThanOrEqual(p, 2); int[] inverses = new int[p]; for (int i = 1; i < p; i++) { int inverse = 0; for (int j = 1; j < p; j++) { if (((j * i) % p) == 1) { inverse = j; break; } } if (inverse == 0) { throw new IllegalArgumentException(p + " is not a prime."); } inverses[i] = inverse; } return inverses; } /** * This function returns the floor of the base-2 logarithm * of the input. The input must be strictly positive. * * @param input the input argument * @return the floor of the base-2 logarithm of the input */ public static int floorLog2(int input) { ExceptionUtility.verifyPositive(input); int bitMask = 1; int bitPosition = 0; int maxBitPosition = 0; while (bitPosition < 31) { if ((bitMask & input) > 0) { maxBitPosition = bitPosition; } bitMask <<= 1; bitPosition++; } return maxBitPosition; } public static int minLog2(int input) { int bitMask = 1; int bitPosition = 0; int maxBitMask = 0; while (bitPosition < 31) { if ((bitMask & input) > 0) { maxBitMask = (bitMask & input); } bitMask <<= 1; bitPosition++; } return maxBitMask; } public static int maxLog2(int input) { int minLog2 = minLog2(input); if (minLog2 == input) { return input; } else { return minLog2 << 1; } } /** * This function returns the great circle distance (geodesic distance) * between two points on the unit sphere. * * @param latitude1 the latitude of the first point * @param longitude1 the longitude of the first point * @param latitude2 the latitude of the second point * @param longitude2 the longitude of the second point * @return the geodesic distance between the two input points */ public static double greatCircleDistance(double latitude1, double longitude1, double latitude2, double longitude2) { double phi1 = latitude1; double phi2 = latitude2; double lambda1 = longitude1; double lambda2 = longitude2; double deltaLambda = lambda1 - lambda2; double deltaPhi = phi1 - phi2; double sin1 = Math.sin(0.5 * deltaPhi); double sin2 = Math.sin(0.5 * deltaLambda); double A = sin1 * sin1; double B = sin2 * sin2; double C = Math.cos(phi1) * Math.cos(phi2); double distance = 2 * Math.asin(A + B * C); return distance; } /** * This function returns the great circle distance between two * points on the unit sphere given their rectangular coordinates. * * @param x the first point * @param y the second point * @return the distance between x and y along the unit sphere */ public static double greatCircleDistance(double[] x, double[] y) { double x1 = x[0]; double y1 = x[1]; double z1 = x[2]; double phi1 = Math.atan2(y1, x1); double theta1 = Math.acos(z1 / Math.sqrt(x1 * x1 + y1 * y1 + z1 * z1)); double latitude1 = 0.5 * Math.PI - theta1; double x2 = y[0]; double y2 = y[1]; double z2 = y[2]; double phi2 = Math.atan2(y2, x2); double theta2 = Math.acos(z2 / Math.sqrt(x2 * x2 + y2 * y2 + z2 * z2)); double latitude2 = 0.5 * Math.PI - theta2; return MathUtility.greatCircleDistance(latitude1, phi1, latitude2, phi2); } /** * This function computes the Huber penalty function of an * input. The Huber penalty function is equal to x^2 for |x| <= M, * and linear for |x| > M. * @param x the value at which to compute the Huber penalty function * @param M the parameter which determines the linear/quadratic region * @return The Huber penalty function at x */ public static double huberPenaltyFunction(double x, double M) { if (Math.abs(x) <= M) { return x * x; } else { return M * (2 * Math.abs(x) - M); } } public static double absApproximation(double x, double M) { return huberPenaltyFunction(x, M) / (2 * M); } public static double maxApproximation(double x, double y, double M) { return 0.5 * (absApproximation(x - y, M) + x + y); } /** * This function evaluates the standard gaussian density * with mean 0 and variance 1. * * @param x the point to evaluate at * @return the standard normal density evaluated at x */ public static double gaussianDensity(double x) { double constant = Math.sqrt(2 * Math.PI); return (Math.exp(0.5 * x * x) / constant); } /** * This function evaluates the 1-dimensional gaussian * density function with specified mean and standard deviation. * * @param x the point to evaluate at * @param mean the mean of the distribution * @param standardDeviation the standard deviation of the distribution * @return the gaussian density evaluated at x */ public static double gaussianDensity(double x, double mean, double standardDeviation) { return (gaussianDensity((x - mean) / standardDeviation) / standardDeviation); } public static double dotProduct(double[] a, double[] b) { double result = 0; for(int i = 0; i < a.length && i < b.length; i++) { result += a[i] * b[i]; } return result; } } ================================================ FILE: src/java/edu/stanford/math/plex4/utility/MemoryUtility.java ================================================ package edu.stanford.math.plex4.utility; import java.lang.reflect.Array; public class MemoryUtility { public static Object deepArrayCopy(Object object) { if (object.getClass().isArray()) { int length = Array.getLength(object); Class<?> component = object.getClass().getComponentType(); Object newInnerArray = Array.newInstance(component, length); for (int i = 0; i < length; i++) { Object elem = deepArrayCopy(Array.get(object, i)); Array.set(newInnerArray, i, elem); } return newInnerArray; } else { return object; } } } ================================================ FILE: src/java/edu/stanford/math/plex4/utility/Quicksort.java ================================================ package edu.stanford.math.plex4.utility; import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.Random; /** * This class contains an implement of the quicksort and other related * algorithms, such as the selection of order statistics. * * It is based on chapter 8 and 10 of "Introduction to * Algorithms" by Cormen, Leiserson and Rivest. * * @author Andrew Tausz * */ public class Quicksort { private static Random random = new Random(); private Quicksort() {} public static class Int { /** * Performs the quicksort algorithm in place on the supplied array. * * @param array the array to sort */ public static void quicksort(int[] array) { quicksort(array, 0, array.length - 1); } /** * Performs the quicksort algorithm in place on a subarray of the * supplied array. * * @param array the array to sort * @param startIndex the first index of the subarray * @param endIndex the last index of the subarray */ public static void quicksort(int[] array, int startIndex, int endIndex) { ExceptionUtility.verifyNonNegative(startIndex); ExceptionUtility.verifyGreaterThanOrEqual(endIndex, startIndex); ExceptionUtility.verifyLessThan(endIndex, array.length); if (startIndex < endIndex) { int partitionBoundaryIndex = partition(array, startIndex, endIndex); quicksort(array, startIndex, partitionBoundaryIndex); quicksort(array, partitionBoundaryIndex + 1, endIndex); } } /** * This performs the randomized quicksort algorithm in place on the * supplied array. The randomized quicksort algorithm has the advantage that * no particular input can force the algorithm to deliver its worst case * performance. * * @param array */ public static void randomizedQuicksort(int[] array) { quicksort(array, 0, array.length - 1); } /** * This performs the randomized quicksort algorithm in place on a subarray of the * supplied array. The randomized quicksort algorithm has the advantage that * no particular input can force the algorithm to deliver its worst case * performance. * * @param array the array to sort * @param startIndex the first index of the subarray * @param endIndex the last index of the subarray */ public static void randomizedQuicksort(int[] array, int startIndex, int endIndex) { ExceptionUtility.verifyNonNegative(startIndex); ExceptionUtility.verifyGreaterThanOrEqual(endIndex, startIndex); ExceptionUtility.verifyLessThan(endIndex, array.length); if (startIndex < endIndex) { int partitionBoundaryIndex = randomizedPartition(array, startIndex, endIndex); randomizedQuicksort(array, startIndex, partitionBoundaryIndex); randomizedQuicksort(array, partitionBoundaryIndex + 1, endIndex); } } /** * The fundamental partition operation for quicksort. This function partitions * the array into two parts determined by the pivot element array[startIndex]. * It arranges the array so that the first section contains elements less than * or equal to each element of the second section. The last index of the first * section is returned. * * @param array the array to arrange * @param startIndex the first index of the subarray * @param endIndex the last index of the subarray * @return the last index of the first partition */ public static int partition(int[] array, int startIndex, int endIndex) { ExceptionUtility.verifyNonNegative(startIndex); ExceptionUtility.verifyGreaterThanOrEqual(endIndex, startIndex); ExceptionUtility.verifyLessThan(endIndex, array.length); int pivotValue = array[startIndex]; int i = startIndex; int j = endIndex; while (true) { while (array[j] > pivotValue) { j--; } while (array[i] < pivotValue) { i++; } if (i < j) { swap(array, i, j); i++; j--; } else { return j; } } } /** * This function performs the same function as the partition function, except that * it uses a randomly chosen pivot. * * @param array the array to arrange * @param startIndex the first index of the subarray * @param endIndex the last index of the subarray * @return the last index of the first partition */ public static int randomizedPartition(int[] array, int startIndex, int endIndex) { int i = startIndex + random.nextInt(endIndex - startIndex); swap(array, i, startIndex); return partition(array, startIndex, endIndex); } /** * This function returns the i-th order statistic of the data in the supplied array. * It also modifies the array so that the i-th order statistic is in the i-th position * of the array, for j < i array[j] <= array[i], and for j > i array[j] >= array[i]. * In other words it partially sorts the array so that it is partitioned into the subset * of elements less or equal to the i-th order statistic, and greater than or equal it. * * If one wanted to find the median of a list of numbers, then one could call * randomizedSelect(array, array.length / 2). * * @param array the array to search * @param i the rank of the order statistic to find * @return the i-th order statistic */ public static int randomizedSelect(int[] array, int i) { return randomizedSelect(array, 0, array.length - 1, i); } /** * This function performs the randomizedSelect on a subarray of the supplied array. It * operates on the subarray <code>array[startIndex, ..., endIndex]</code>. * * @param array the array to search * @param startIndex the first index of the subarray * @param endIndex the last index of the subarray * @param i he rank of the order statistic to find * @return the i-th order statistic */ public static int randomizedSelect(int[] array, int startIndex, int endIndex, int i) { if (startIndex == endIndex) { return array[startIndex]; } int partitionBoundaryIndex = randomizedPartition(array, startIndex, endIndex); int k = partitionBoundaryIndex - startIndex + 1; if (i < k) { return randomizedSelect(array, startIndex, partitionBoundaryIndex, i); } else { return randomizedSelect(array, partitionBoundaryIndex + 1, endIndex, i - k); } } private static void swap(int[] array, int i, int j) { int temp = array[i]; array[i] = array[j]; array[j] = temp; } } public static class GenericArray<T> { /** * Performs the quicksort algorithm in place on the supplied array. * * @param array the array to sort */ public static <T> void quicksort(T[] array, Comparator<T> comparator) { quicksort(array, 0, array.length - 1, comparator); } /** * Performs the quicksort algorithm in place on a subarray of the * supplied array. * * @param array the array to sort * @param startIndex the first index of the subarray * @param endIndex the last index of the subarray */ public static <T> void quicksort(T[] array, int startIndex, int endIndex, Comparator<T> comparator) { ExceptionUtility.verifyNonNegative(startIndex); ExceptionUtility.verifyGreaterThanOrEqual(endIndex, startIndex); ExceptionUtility.verifyLessThan(endIndex, array.length); if (startIndex < endIndex) { int partitionBoundaryIndex = partition(array, startIndex, endIndex, comparator); quicksort(array, startIndex, partitionBoundaryIndex, comparator); quicksort(array, partitionBoundaryIndex + 1, endIndex, comparator); } } /** * This performs the randomized quicksort algorithm in place on the * supplied array. The randomized quicksort algorithm has the advantage that * no particular input can force the algorithm to deliver its worst case * performance. * * @param array */ public static <T> void randomizedQuicksort(T[] array, Comparator<T> comparator) { quicksort(array, 0, array.length - 1, comparator); } /** * This performs the randomized quicksort algorithm in place on a subarray of the * supplied array. The randomized quicksort algorithm has the advantage that * no particular input can force the algorithm to deliver its worst case * performance. * * @param array the array to sort * @param startIndex the first index of the subarray * @param endIndex the last index of the subarray */ public static <T> void randomizedQuicksort(T[] array, int startIndex, int endIndex, Comparator<T> comparator) { ExceptionUtility.verifyNonNegative(startIndex); ExceptionUtility.verifyGreaterThanOrEqual(endIndex, startIndex); ExceptionUtility.verifyLessThan(endIndex, array.length); if (startIndex < endIndex) { int partitionBoundaryIndex = randomizedPartition(array, startIndex, endIndex, comparator); randomizedQuicksort(array, startIndex, partitionBoundaryIndex, comparator); randomizedQuicksort(array, partitionBoundaryIndex + 1, endIndex, comparator); } } /** * The fundamental partition operation for quicksort. This function partitions * the array into two parts determined by the pivot element array[startIndex]. * It arranges the array so that the first section contains elements less than * or equal to each element of the second section. The last index of the first * section is returned. * * @param array the array to arrange * @param startIndex the first index of the subarray * @param endIndex the last index of the subarray * @return the last index of the first partition */ public static <T> int partition(T[] array, int startIndex, int endIndex, Comparator<T> comparator) { ExceptionUtility.verifyNonNegative(startIndex); ExceptionUtility.verifyGreaterThanOrEqual(endIndex, startIndex); ExceptionUtility.verifyLessThan(endIndex, array.length); T pivotValue = array[startIndex]; int i = startIndex; int j = endIndex; while (true) { while (comparator.compare(array[j], pivotValue) > 0) { j--; } while(comparator.compare(array[i], pivotValue) < 0) { i++; } if (i < j) { swap(array, i, j); i++; j--; } else { return j; } } } /** * This function performs the same function as the partition function, except that * it uses a randomly chosen pivot. * * @param array the array to arrange * @param startIndex the first index of the subarray * @param endIndex the last index of the subarray * @return the last index of the first partition */ public static <T> int randomizedPartition(T[] array, int startIndex, int endIndex, Comparator<T> comparator) { int i = startIndex + random.nextInt(endIndex - startIndex); swap(array, i, startIndex); return partition(array, startIndex, endIndex, comparator); } /** * This function returns the i-th order statistic of the data in the supplied array. * It also modifies the array so that the i-th order statistic is in the i-th position * of the array, for j < i array[j] <= array[i], and for j > i array[j] >= array[i]. * In other words it partially sorts the array so that it is partitioned into the subset * of elements less or equal to the i-th order statistic, and greater than or equal it. * * If one wanted to find the median of a list of numbers, then one could call * randomizedSelect(array, array.length / 2). * * @param array the array to search * @param i the rank of the order statistic to find * @return the i-th order statistic */ public static <T> T randomizedSelect(T[] array, int i, Comparator<T> comparator) { return randomizedSelect(array, 0, array.length - 1, i, comparator); } /** * This function performs the randomizedSelect on a subarray of the supplied array. It * operates on the subarray <code>array[startIndex, ..., endIndex]</code>. * * @param array the array to search * @param startIndex the first index of the subarray * @param endIndex the last index of the subarray * @param i he rank of the order statistic to find * @return the i-th order statistic */ public static <T> T randomizedSelect(T[] array, int startIndex, int endIndex, int i, Comparator<T> comparator) { if (startIndex == endIndex) { return array[startIndex]; } int partitionBoundaryIndex = randomizedPartition(array, startIndex, endIndex, comparator); int k = partitionBoundaryIndex - startIndex + 1; if (i < k) { return randomizedSelect(array, startIndex, partitionBoundaryIndex, i, comparator); } else { return randomizedSelect(array, partitionBoundaryIndex + 1, endIndex, i - k, comparator); } } private static <T> void swap(T[] array, int i, int j) { T temp = array[i]; array[i] = array[j]; array[j] = temp; } } public static class GenericList<T> { public static <T> void quicksort(List<T> array, Comparator<T> comparator) { quicksort(array, 0, array.size() - 1, comparator); } public static <T> void quicksort(List<T> array, int startIndex, int endIndex, Comparator<T> comparator) { ExceptionUtility.verifyNonNegative(startIndex); ExceptionUtility.verifyGreaterThanOrEqual(endIndex, startIndex); ExceptionUtility.verifyLessThan(endIndex, array.size()); if (startIndex < endIndex) { int partitionBoundaryIndex = partition(array, startIndex, endIndex, comparator); quicksort(array, startIndex, partitionBoundaryIndex, comparator); quicksort(array, partitionBoundaryIndex + 1, endIndex, comparator); } } /** * This performs the randomized quicksort algorithm in place on the * supplied array. The randomized quicksort algorithm has the advantage that * no particular input can force the algorithm to deliver its worst case * performance. * * @param array */ public static <T> void randomizedQuicksort(List<T> array, Comparator<T> comparator) { quicksort(array, 0, array.size() - 1, comparator); } /** * This performs the randomized quicksort algorithm in place on a subarray of the * supplied array. The randomized quicksort algorithm has the advantage that * no particular input can force the algorithm to deliver its worst case * performance. * * @param array the array to sort * @param startIndex the first index of the subarray * @param endIndex the last index of the subarray */ public static <T> void randomizedQuicksort(List<T> array, int startIndex, int endIndex, Comparator<T> comparator) { ExceptionUtility.verifyNonNegative(startIndex); ExceptionUtility.verifyGreaterThanOrEqual(endIndex, startIndex); ExceptionUtility.verifyLessThan(endIndex, array.size()); if (startIndex < endIndex) { int partitionBoundaryIndex = randomizedPartition(array, startIndex, endIndex, comparator); randomizedQuicksort(array, startIndex, partitionBoundaryIndex, comparator); randomizedQuicksort(array, partitionBoundaryIndex + 1, endIndex, comparator); } } public static <T> int partition(List<T> array, int startIndex, int endIndex, Comparator<T> comparator) { ExceptionUtility.verifyNonNegative(startIndex); ExceptionUtility.verifyGreaterThanOrEqual(endIndex, startIndex); ExceptionUtility.verifyLessThan(endIndex, array.size()); T pivotValue = array.get(startIndex); int i = startIndex; int j = endIndex; while (true) { while (comparator.compare(array.get(j), pivotValue) > 0) { j--; } while(comparator.compare(array.get(i), pivotValue) < 0) { i++; } if (i < j) { swap(array, i, j); i++; j--; } else { return j; } } } public static <T> int randomizedPartition(List<T> array, int startIndex, int endIndex, Comparator<T> comparator) { int i = startIndex + random.nextInt(endIndex - startIndex); swap(array, i, startIndex); return partition(array, startIndex, endIndex, comparator); } public static <T> T randomizedSelect(List<T> array, int i, Comparator<T> comparator) { return randomizedSelect(array, 0, array.size() - 1, i, comparator); } public static <T> T randomizedSelect(List<T> array, int startIndex, int endIndex, int i, Comparator<T> comparator) { if (startIndex == endIndex) { return array.get(startIndex); } int partitionBoundaryIndex = randomizedPartition(array, startIndex, endIndex, comparator); int k = partitionBoundaryIndex - startIndex + 1; if (i < k) { return randomizedSelect(array, startIndex, partitionBoundaryIndex, i, comparator); } else { return randomizedSelect(array, partitionBoundaryIndex + 1, endIndex, i - k, comparator); } } private static <T> List<T> swap(List<T> array, int i, int j) { Collections.swap(array, i, j); return array; } } } ================================================ FILE: src/java/edu/stanford/math/plex4/utility/RandomUtility.java ================================================ package edu.stanford.math.plex4.utility; import gnu.trove.TIntHashSet; import cern.jet.random.Normal; import cern.jet.random.Uniform; /** * This class contains static members for generating random numbers. * * @author Andrew Tausz * @author Tim Harrington * */ public class RandomUtility { private static Normal normalGenerator = new Normal(0, 1, new cern.jet.random.engine.MersenneTwister(Uniform .staticNextIntFromTo(0, Integer.MAX_VALUE))); private static Uniform uniformGenerator = new Uniform(new cern.jet.random.engine.MersenneTwister(Uniform .staticNextIntFromTo(0, Integer.MAX_VALUE))); /** * This function initializes the seeds of the random number generators to the specified * values. * * @param seed the seed to initialize with */ public static void initializeWithSeed(int seed) { normalGenerator = new Normal(0, 1, new cern.jet.random.engine.MersenneTwister(seed)); uniformGenerator = new Uniform(new cern.jet.random.engine.MersenneTwister(seed)); } /** * This function returns a sample of a Bernoulli random * variable with parameter p. * * @param p The probability of returning 1 * @return a Bernoulli random variable with probability p */ public static int nextBernoulli(double p) { ExceptionUtility.verifyNonNegative(p); ExceptionUtility.verifyLessThanOrEqual(p, 1); if (p == 1) { return 1; } else if (p == 0) { return 0; } else if (uniformGenerator.nextDouble() <= p) { return 1; } else { return 0; } } /** * This function returns a uniform random number * in the open interval (0, 1). * * @return a double containing a uniform random number in (0, 1) */ public static double nextUniform() { return uniformGenerator.nextDouble(); } /** * This function returns a normal random number. * * @return a normally distributed random number */ public static double nextNormal() { return normalGenerator.nextDouble(); } /** * Returns a uniformly distributed integer in the inclusive interval * {from, ..., to} * * @param from the start integer * @param to the end integer * @return an integer uniformly distributed in {from, ..., to} */ public static int nextUniformInt(int from, int to) { return uniformGenerator.nextIntFromTo(from, to); } /** * This function returns an integer uniformly distributed * in the set {from, ..., to} \ {exclusion}. * * @param from the lowest member of the set * @param to the highest member of the set * @param exclusion the member to exclude * @return an integer uniformly distributed in {from, ..., to} \ {exclusion} */ public static int nextUniformIntExcluded(int from, int to, int exclusion) { if ((exclusion < from) || (exclusion > to)) { throw new IllegalArgumentException(); } int randomInt = nextUniformInt(from, to - 1); // if randomInt >= exclude, increment it by 1 if (randomInt >= exclusion) { randomInt++; } return randomInt; } /** * This function returns an array of normally distributed * random numbers. * * @param length the length of the array to create * @param normalize whether to normalize the vector or not * @return an array containing normally distributed random numbers */ public static double[] normalArray(int length, boolean normalize) { ExceptionUtility.verifyPositive(length); double[] values = new double[length]; double squareSum = 0; for (int i = 0; i < length; i++) { values[i] = nextNormal(); squareSum += values[i] * values[i]; } if (normalize) { double norm = Math.sqrt(squareSum); for (int i = 0; i < length; i++) { values[i] = values[i] / norm; } } return values; } /** * This function returns an array of uniformly distributed * random numbers. * * @param length the length of the array to create * @return an array containing uniformly distributed random numbers */ public static double[] uniformArray(int length) { ExceptionUtility.verifyPositive(length); double[] values = new double[length]; for (int i = 0; i < length; i++) { values[i] = nextUniform(); } return values; } /** * This function returns an array of normally distributed * random numbers. * * @param length the length of the array to create * @return an array containing normally distributed random numbers */ public static double[] normalArray(int length) { ExceptionUtility.verifyPositive(length); double[] values = new double[length]; for (int i = 0; i < length; i++) { values[i] = nextNormal(); } return values; } /** * This function returns a matrix containing uniformly * distributed random numbers. * * @param rows the number of rows in the returned matrix * @param columns the number of columns in the returned matrix * @return a matrix containing uniformly distributed random numbers */ public static double[][] uniformMatrix(int rows, int columns) { ExceptionUtility.verifyPositive(rows); ExceptionUtility.verifyPositive(columns); double[][] values = new double[rows][columns]; for (int i = 0; i < rows; i++) { for (int j = 0; j < columns; j++) { values[i][j] = nextUniform(); } } return values; } /** * This function returns a matrix containing normally * distributed random numbers. * * @param rows the number of rows in the returned matrix * @param columns the number of columns in the returned matrix * @return a matrix containing normally distributed random numbers */ public static double[][] normalMatrix(int rows, int columns) { ExceptionUtility.verifyPositive(rows); ExceptionUtility.verifyPositive(columns); double[][] values = new double[rows][columns]; for (int i = 0; i < rows; i++) { for (int j = 0; j < columns; j++) { values[i][j] = nextNormal(); } } return values; } /** * This function computes a random permutation of the * input array, and then applies the permutation. It * performs the permutation in-place. * * @param values the array of integers to permute */ public static int[] permute(int[] values) { int n = values.length; int k, temp; int[] permutedValues = values; while (n > 1) { n--; k = nextUniformInt(0, n); temp = permutedValues[k]; permutedValues[k] = permutedValues[n]; permutedValues[n] = temp; } return permutedValues; } /** * This function computes a random subset of size subsetSize from the * set {0, ..., selectionSetSize - 1}. * * @param subsetSize the size of the subset to return * @param selectionSetSize the size of the set to select from * @return a subset of size subsetSize from the set {0, ..., selectionSetSize - 1} */ public static TIntHashSet randomSubset(int subsetSize, int selectionSetSize) { TIntHashSet result = new TIntHashSet(); if (subsetSize >= selectionSetSize) { for (int i = 0; i < selectionSetSize; i++) { result.add(i); } return result; } if (subsetSize > selectionSetSize / 2) { TIntHashSet negativeSet = randomSubset(selectionSetSize - subsetSize, selectionSetSize); for (int i = 0; i < selectionSetSize; i++) { if (!negativeSet.contains(i)) { result.add(i); } } } else { while (result.size() < subsetSize) { int randomPosition = RandomUtility.nextUniformInt(0, selectionSetSize - 1); if (!result.contains(randomPosition)) { result.add(randomPosition); } } } return result; } } ================================================ FILE: src/java/edu/stanford/math/plex4/visualization/AbstractVisualizer.java ================================================ package edu.stanford.math.plex4.visualization; import java.io.File; import java.util.List; import edu.stanford.math.plex4.homology.barcodes.Interval; import edu.stanford.math.plex4.homology.chain_basis.Simplex; import edu.stanford.math.plex4.homology.filtration.FiltrationConverter; import edu.stanford.math.plex4.io.DoubleArrayReaderWriter; import edu.stanford.math.plex4.metric.impl.EuclideanMetricSpace; import edu.stanford.math.plex4.metric.interfaces.AbstractSearchableMetricSpace; import edu.stanford.math.plex4.streams.impl.VietorisRipsStream; /** * Abstract class for visualizing a 3D point cloud and the persistent homology * classes corresponding to the Vietoris Rips filtration. * * Based on processing code by Michael Vedjemo-Johanson * * @author Jacobien Carstens * */ @SuppressWarnings("serial") public abstract class AbstractVisualizer extends PAppletSplitscreen { /* * Global variables and initial setup */ DoubleArrayReaderWriter doubleArrayReaderWriter = DoubleArrayReaderWriter.getInstance(); String fileName; float[][] pointsViz; double[][] pointsComp; AbstractSearchableMetricSpace<double[]> metricSpace; VietorisRipsStream<double[]> stream; FiltrationConverter fc; final int scale3D = 100; @Override public void doSetup() { background(255); imgWidth = width / 2; selectInput("Select a file to process:", "fileSelected"); } public void fileSelected(File selection) { if (selection != null) fileName = selection.getAbsolutePath(); openNewFile(); } void openNewFile() { try { pointsComp = doubleArrayReaderWriter.importFromFile(fileName); metricSpace = new EuclideanMetricSpace(pointsComp); setFiltrationParameters(metricSpace); pointsViz = PointCloudScaling.scaleCoordinates(pointsComp, scale3D); computeVietorisRipsHomology(); loaded = true; } catch (final Exception e) { e.printStackTrace(); } } /* * Draw persistence diagram or barcode */ /** * Drawing parameters */ float r = 2.0f; boolean fillTriangles = true; final int pointSize = 6; public static final String[][] colors = new String[][] { { "#001133", "#003BEB", "#80A8FF" }, { "#420000", "#D81007", "#FF8082" }, { "#0A2F09", "#0AAE04", "#81E77E" } }; final int topMargin = 20, leftMargin = 60, rightMargin = 60, infinityMargin = 10; final float maxBarSpacing = 10; int imgWidth; /** * Overwrite, checks if intervals are computed * * @return true if intervals are available, false otherwise */ abstract boolean hasIntervals(); /** * Overwrite; return intervals at dimension * * @param dimension * @return list of intervals */ abstract List<Interval<Double>> getIntervalsAtDim(int dimension); /** * Draw the 2D plot; i.e. barcodes or diagram */ @Override public void doDraw2D() { super.doDraw2D(); printText(); switch (plottype) { case BARCODE: if (hasIntervals()) { final List<Interval<Double>> ints = getIntervalsAtDim(dims.maxDimension); // Compute the canvas dimension final ImageRegion.Int barRegion = new ImageRegion.Int(height - leftMargin - rightMargin, imgWidth - leftMargin - topMargin, leftMargin, topMargin); // Compute the bar size final int intCount = ints.size(); final float spacing = Math.min(maxBarSpacing, ((float) barRegion.height) / ((float)(2 * intCount - 1))); final float barHeight = spacing; // Calculate the bar scale final float maxBarWidth = (float) maxFiltrationValue.doubleValue(); final float barScale = (barRegion.width) / maxBarWidth; // Set the amount of overlap for infinite extents final int infExtentOverlap = 5; // Draw the bars noStroke(); double x0, x1; for (int i = 0; i < ints.size(); i++) { x0 = barScale * ints.get(i).getStart(); if (ints.get(i).isInfinite()) x1 = barRegion.width + infExtentOverlap; else x1 = barScale * ints.get(i).getEnd(); fill(0, 0, 255); rect((float) (barRegion.xoffset + x0), barRegion.yoffset + spacing + (barHeight + spacing) * i, (float) (x1 - x0), barHeight); } // Draw the red vertical bar, indicating the filtration value fill(255, 0, 0); rect((float) (barRegion.xoffset + barScale * filtrationValue), barRegion.yoffset, 2, barRegion.height); drawDiagram(barRegion); } break; case DIAGRAM: if (hasIntervals()) { // Set the image properties final int plotWidth = width / 2 - leftMargin - rightMargin - infinityMargin; final int plotHeight = plotWidth + infinityMargin; // Compute the canvas dimension final ImageRegion.Int region = new ImageRegion.Int(plotHeight, plotWidth, leftMargin + infinityMargin / 2, topMargin); // draw axes stroke(0); line(region.xoffset, region.yoffset + region.height, region.xoffset, region.yoffset + infinityMargin); line(region.xoffset, region.yoffset + region.height, region.xoffset + region.width, region.yoffset + region.height); // draw infinity line stroke(220); line(region.xoffset, region.yoffset, region.xoffset + region.width, region.yoffset); // draw the box indicating the filtration value final float boxWidth = (float) (filtrationValue / maxFiltrationValue * region.width); final float boxHeight = (float) (region.width - filtrationValue / maxFiltrationValue * region.width); fill(120, 120, 120, 40); noStroke(); rect(region.xoffset, region.yoffset + infinityMargin, boxWidth, boxHeight); // draw diagonal stroke(0, 100, 200); line(region.xoffset, region.yoffset + region.height, region.xoffset + region.width, region.yoffset + infinityMargin); noStroke(); drawDiagram(region); } break; } } /** * Overwrite to draw additional things in the persistence diagram * * @param region */ abstract void drawDiagram(final ImageRegion.Int region); /* * Add text to applet */ final int lineHeight = 12; final String font = "sans serif"; void printText() { final int posX = width / 2 + leftMargin; final int posY = height - 6 * lineHeight; textFont(createFont(font, lineHeight)); fill(0); text("Current filtration value: " + Math.round(filtrationValue*1000)/1000d, leftMargin, posY); text(fillTriangles ? "Coloring triangles blue, press 'f' to switch off." : "Not coloring triangles, press 'f' to switch on.", leftMargin, posY + lineHeight); text("Max filtration value: " + Math.round(maxFiltrationValue * 1000)/1000d + ". Use '+' and '-' to adjust.", leftMargin, posY + 2 * lineHeight); text("Press 'h' to recompute homology", leftMargin, posY + 3 * lineHeight); if (plottype == PlotType.BARCODE) text("Showing barcode for homology in dimension " + dims.maxDimension + ".", posX, posY); else text("Showing persistence diagram in dimension" + (dims.visibleDims.length > 1 ? "s " : " "), posX, posY); text("Press '0'-'6' to change dimensions.", posX, posY + lineHeight); text("Use left and right arrow to increase filtration value.", posX, posY + 2 * lineHeight); text("Press 't' to switch plot type.", posX, posY + 3 * lineHeight); text("Press 'o' to open new coordinate file.", posX, posY + 4 * lineHeight); } /* * Draw 3D point cloud */ /** * Draws point cloud and the Vietoris Rips cpx up to current filtration * value */ @Override public void doDraw3D() { background(255); noStroke(); if (stream != null) for (final Simplex s : stream) { final double fv = fc.getFiltrationValue(stream.getFiltrationIndex(s)); if (fv > filtrationValue) continue; int[] ix; ix = s.getVertices(); switch (s.getDimension()) { case 2: if (fillTriangles) { fill(0, 0, 255, 20); beginShape(); vertex(pointsViz[ix[0]][0], pointsViz[ix[0]][1], pointsViz[ix[0]][2]); vertex(pointsViz[ix[1]][0], pointsViz[ix[1]][1], pointsViz[ix[1]][2]); vertex(pointsViz[ix[2]][0], pointsViz[ix[2]][1], pointsViz[ix[2]][2]); vertex(pointsViz[ix[0]][0], pointsViz[ix[0]][1], pointsViz[ix[0]][2]); endShape(); } break; case 1: fill(0); stroke(0); strokeWeight(1); beginShape(LINES); vertex(pointsViz[ix[0]][0], pointsViz[ix[0]][1], pointsViz[ix[0]][2]); vertex(pointsViz[ix[1]][0], pointsViz[ix[1]][1], pointsViz[ix[1]][2]); endShape(); break; case 0: noStroke(); fill(122); pushMatrix(); translate(pointsViz[ix[0]][0], pointsViz[ix[0]][1], pointsViz[ix[0]][2]); sphere(r); popMatrix(); break; default: continue; } } addTo3Dplot(); } /** * Overwrite to draw additional things in 3D plot */ abstract void addTo3Dplot(); /** * On keypress: Implement state changes and other effects as needed. * * Key mapping implemented is case insensitive: O open new file Q quit 0-6 * (zero/one/two/zero and one/zero and two/one and two/zero and one and two) * dimensional plot T switch plot type F switch filling triangles on or off * + increase maxFiltrationValue by 5 - decrease maxFiltrationValue by 5 H * recompute homology LEFT/RIGHT step Vietoris-Rips complex back/forward */ @Override public void keyPressed() { switch (key) { case 'o': case 'O': openNewFile(); break; case 'q': case 'Q': exit(); break; case '0': setCurrentDimension(Dimensions.ZERO); break; case '1': setCurrentDimension(Dimensions.ONE); break; case '2': setCurrentDimension(Dimensions.TWO); break; case '3': setCurrentDimension(Dimensions.ZEROandONE); break; case '4': setCurrentDimension(Dimensions.ZEROandTWO); break; case '5': setCurrentDimension(Dimensions.ONEandTWO); break; case '6': setCurrentDimension(Dimensions.ZEROandONEandTWO); break; case 'f': case 'F': switchFillTriangles(); break; case '+': maxFiltrationValue += incrementFiltrationValue; break; case '-': maxFiltrationValue -= incrementFiltrationValue; break; case 'h': case 'H': computeVietorisRipsHomology(); break; case 't': case 'T': plottype = (plottype == PlotType.BARCODE) ? PlotType.DIAGRAM : PlotType.BARCODE; break; case CODED: switch (keyCode) { case RIGHT: filtrationValue += stepSize; println(filtrationValue + ": " + stepSize); break; case LEFT: filtrationValue -= stepSize; println(filtrationValue + ": " + stepSize); if (filtrationValue < 0) filtrationValue = 0; break; } } } /** * State variables */ Dimensions dims = Dimensions.ONE; PlotType plottype = PlotType.DIAGRAM; double filtrationValue = 0; Double stepSize = null; Double maxFiltrationValue = null; Double incrementFiltrationValue = null; void setFiltrationParameters(AbstractSearchableMetricSpace<double[]> metricSpace) { int n = pointsComp.length; double min[] = new double[n]; maxFiltrationValue = 0.0; for (int i = 0; i < n; i++) { min[i] = Double.MAX_VALUE; for (int j = 0; j < n; j++) { if (i != j) { double d = metricSpace.distance(i, j); min[i] = Math.min(min[i], d); } } maxFiltrationValue = Math.max(maxFiltrationValue, min[i]); } incrementFiltrationValue = maxFiltrationValue / 10; stepSize = maxFiltrationValue / 20; } void switchFillTriangles() { fillTriangles = !fillTriangles; } void setCurrentDimension(final Dimensions dim) { dims = dim; computeVietorisRipsHomology(); } /** * Overwrite to run the persistent homology computation, update the * intervals variable */ abstract void computeVietorisRipsHomology(); enum Dimensions { ZERO(0, new int[] { 0 }, "0(blue)", "0, colors correspond to generators."), ONE(1, new int[] { 1 }, "1(red)", "1, colors correspond to generators."), TWO(2, new int[] { 2 }, "2(green)", "2, colors correspond to generators."), ZEROandONE(1, new int[] { 0, 1 }, "0(blue) and 1(red)", "0 and 1, colors correspond to generators, dimension are not distinguished."), ZEROandTWO(2, new int[] { 0, 2 }, "0(blue) and 2(green)", "0 and 2, colors correspond to generators, dimension are not distinguished."), ONEandTWO(2, new int[] { 1, 2 }, "1(red) and 2(green)", "1 and 2, colors correspond to generators, dimension are not distinguished."), ZEROandONEandTWO(2, new int[] { 0, 1, 2 }, "0(blue), 1(red) and 2(green)", "0, 1 and 2, colors correspond to generators, dimension are not distinguished."); public final int maxDimension; public final int[] visibleDims; private Dimensions(final int maxDimension, final int[] visibleDims, final String explanationI, final String explanationII) { this.maxDimension = maxDimension; this.visibleDims = visibleDims; } } enum PlotType { BARCODE, DIAGRAM; } } ================================================ FILE: src/java/edu/stanford/math/plex4/visualization/BarcodeVisualizer.java ================================================ package edu.stanford.math.plex4.visualization; import java.awt.Color; import java.awt.Font; import java.awt.FontMetrics; import java.awt.Graphics2D; import java.awt.RenderingHints; import java.awt.geom.Rectangle2D; import java.awt.image.BufferedImage; import java.io.IOException; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import edu.stanford.math.plex4.homology.barcodes.Interval; /** * This class contains functions for visualizing barcodes. * * @author Tim Harrington * */ public class BarcodeVisualizer { public static class BarAppearance { int spacing; int height; /** * @param spacing * @param height */ public BarAppearance(int spacing, int height) { this.spacing = spacing; this.height = height; } } public static final int DEFAULT_WIDTH = 600; public static BufferedImage drawBarcode(List<Interval<Double>> intervals, String title, double endPoint) throws IOException { if (intervals == null) { throw new IllegalArgumentException(); } Collections.sort(intervals); // Set the image generation parameters int barHeight = 3; int barSpacing = 3; int imgWidth = DEFAULT_WIDTH; int topMargin = 25; int bottomMargin = 30; int leftMargin = 20; int rightMargin = 20; int titleMargin = 3; // ensure topMargin-2*titleMargin is enough room for title // Compute the bar region int barLayoutHeight = intervals.size() * (barHeight + barSpacing) + barSpacing; int barLayoutWidth = imgWidth - leftMargin - rightMargin; ImageRegion.Int barRegion = new ImageRegion.Int(barLayoutHeight, barLayoutWidth, leftMargin, topMargin); // Compute the image height int imgHeight = topMargin + barRegion.height + bottomMargin; // Make the image stream BufferedImage im = new BufferedImage(imgWidth, imgHeight, BufferedImage.TYPE_3BYTE_BGR); // Set up the canvas to draw on Graphics2D graphics = createGraphics(im); // Calculate the bar scale double maxBarWidth = endPoint; double barScale = (barRegion.width) / maxBarWidth; // Draw the ticks drawTicksInPlace(graphics, barRegion, bottomMargin, barScale); // Draw the title drawTitleInPlace(graphics, title, imgWidth / 2, (int) (topMargin * (1d / 3d)), topMargin - 2 * titleMargin, imgWidth - 2 * titleMargin); // Draw the bars drawBarsInPlace(graphics, intervals, barRegion, barHeight, barSpacing, barScale); return im; } protected static void drawTitleInPlace(Graphics2D graphics, String title, int center_x, int center_y, int maxHeight, int maxWidth) { graphics.setColor(Color.BLACK); int fontSize = 15; FontMetrics fm; int stringHeight; int stringWidth; while (true) { graphics.setFont(new Font("sansserif", Font.BOLD, fontSize)); fm = graphics.getFontMetrics(); stringHeight = fm.getHeight(); stringWidth = fm.stringWidth(title); if (maxHeight < stringHeight || maxWidth < stringWidth) { fontSize -= 1; } else { break; } if (fontSize == 0) { throw new IllegalArgumentException("Cannot fit the title in the given image region."); } } graphics.drawString(title, center_x - (stringWidth / 2), center_y + (stringHeight / 2)); } // Set up the image in memory protected static Graphics2D createGraphics(BufferedImage im) { Graphics2D graphics = im.createGraphics(); Map<RenderingHints.Key, Object> hints = new HashMap<RenderingHints.Key, Object>(); hints.put(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); graphics.addRenderingHints(hints); graphics.setBackground(Color.WHITE); graphics.clearRect(0, 0, im.getWidth(), im.getHeight()); return graphics; } protected static void drawTicksInPlace(Graphics2D graphics, ImageRegion.Int region, int bottomMargin, double scale) { Color lastTickColor = new Color(0xff, 0x00, 0x00); Color majorTickColor = new Color(0x0f, 0x85, 0xff); Color minorTickColor = new Color(0xa9, 0xcc, 0xdf); // Color someColor = new Color(0x97, 0xd8, 0xff); int tickGap = 8; int majorTickEvery = 5; int bigOverlap = 10; int smallOverlap = 4; // estimate the number of ticks int howManyTicks = (int) Math.floor(((double) region.width) / ((double) tickGap)); // adjust so that it is a multiple of majorTickEvery howManyTicks = howManyTicks - (howManyTicks % (2 * majorTickEvery)); double tickWidth = ((double) region.width) / ((double) howManyTicks); graphics.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON); graphics.setFont(new Font("sansserif", Font.PLAIN, 10)); FontMetrics fm = graphics.getFontMetrics(); int fontHeight = fm.getHeight(); int x0, x1, y0, y1, labelWidth; y0 = region.yoffset; String tickLabel; double tick; for (int i = 0; i <= howManyTicks; i++) { // all these casts are to minimize rounding error x0 = (int) (((i) * tickWidth) + region.xoffset); x1 = x0; if (i % majorTickEvery == 0) { // major tick // Prepare the tick label tick = ((i) * tickWidth) / scale; tickLabel = String.format("%4.4f", tick); labelWidth = fm.stringWidth(tickLabel); graphics.setColor(majorTickColor); if (i % (2 * majorTickEvery) == 0) { if (i == howManyTicks) { graphics.setColor(lastTickColor); } // long tick y1 = region.yoffset + region.height + bigOverlap; } else { // short tick y1 = region.yoffset + region.height + smallOverlap; } graphics.drawString(tickLabel, x0 - (labelWidth) / 2, y1 + fontHeight - 2); } else { // minor tick graphics.setColor(minorTickColor); y1 = region.yoffset + region.height; } graphics.drawLine(x0, y0, x1, y1); } // Draw the top and bottom colors graphics.setColor(majorTickColor); graphics.drawLine(region.xoffset, region.yoffset, region.xoffset + region.width, region.yoffset); graphics.drawLine(region.xoffset, region.yoffset + region.height, region.xoffset + region.width, region.yoffset + region.height); } protected static void drawBarsInPlace(Graphics2D graphics, List<Interval<Double>> intervals, ImageRegion.Int region, int barHeight, int spacing, double scale) { graphics.setColor(Color.BLACK); // Set the amount of overlap for infinite extents int infExtentOverlap = 5; // Draw the bars double x0, x1; Rectangle2D.Double bar; for (int i = 0; i < intervals.size(); i++) { x0 = scale * intervals.get(i).getStart(); if (intervals.get(i).isInfinite()) { x1 = region.width + infExtentOverlap; } else { x1 = scale * intervals.get(i).getEnd(); } // The constructor arguments are x-coord, y-coord, width, height bar = new Rectangle2D.Double(region.xoffset + x0, region.yoffset + spacing + (barHeight + spacing) * i, x1 - x0, barHeight); graphics.fill(bar); } } protected static double getMaxBarWidth(List<Interval<Double>> intervals) { // Compute a multiplier to scale the barcodes to the image width double max_x = 0; for (int j = 0; j < intervals.size(); j++) { if (intervals.get(j).isInfinite()) continue; if (max_x < intervals.get(j).getEnd()) { max_x = intervals.get(j).getEnd(); } } if (max_x == 0) { // all intervals are 'infinite' max_x = 1; } // Multiplier to scale the barcodes to fit the image width return max_x; } } ================================================ FILE: src/java/edu/stanford/math/plex4/visualization/HomologyGeneratorVisualizer.java ================================================ package edu.stanford.math.plex4.visualization; import java.awt.Color; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedList; import java.util.List; import java.util.Map; import processing.core.PApplet; import edu.stanford.math.plex4.api.Plex4; import edu.stanford.math.plex4.autogen.homology.BooleanAbsoluteHomology; import edu.stanford.math.plex4.homology.barcodes.AnnotatedBarcodeCollection; import edu.stanford.math.plex4.homology.barcodes.Interval; import edu.stanford.math.plex4.homology.chain_basis.Simplex; import edu.stanford.math.plex4.homology.chain_basis.SimplexComparator; import edu.stanford.math.primitivelib.autogen.formal_sum.BooleanSparseFormalSum; import edu.stanford.math.primitivelib.autogen.pair.ObjectObjectPair; @SuppressWarnings("serial") public class HomologyGeneratorVisualizer extends AbstractVisualizer { // ************************************************************************************* // ******************* GLOBAL VARIABLES FOR HOMOLOGY AND GENERATORS // ******************* // ************************************************************************************* private Map<Point2D, List<BooleanSparseFormalSum<Simplex>>> diagramToGenerators; private final List<List<BooleanSparseFormalSum<Simplex>>> visibleGenerators = new LinkedList<List<BooleanSparseFormalSum<Simplex>>>(); private final List<Point2D> visibleGeneratorCoordinates = new LinkedList<Point2D>(); private final String[] genColors = new String[] { "#6A6BCD", "#9A0798", "#246B5F", "#EC305E", "#3CB43E", "#D16A33", "#71D0AF", "#BFA240" }; private AnnotatedBarcodeCollection<Double, BooleanSparseFormalSum<Simplex>> intervals = null; public static void main(final String[] args) { PApplet.main(new String[] { "edu.stanford.math.plex4.visualization.HomologyGeneratorVisualizer" }); } @Override void computeVietorisRipsHomology() { final int numDivisions = 1000; stream = Plex4.createVietorisRipsStream(pointsComp, dims.maxDimension + 1, maxFiltrationValue, numDivisions); fc = stream.getConverter(); BooleanAbsoluteHomology<Simplex> persistenceAlgorithm = new BooleanAbsoluteHomology<Simplex>(SimplexComparator.getInstance(), 0, dims.maxDimension + 1); intervals = persistenceAlgorithm.computeAnnotatedIntervals(stream); visibleGenerators.clear(); visibleGeneratorCoordinates.clear(); println(intervals); } @Override boolean hasIntervals() { return (intervals != null); } @Override List<Interval<Double>> getIntervalsAtDim(int dimension) { return (intervals.getIntervalsAtDimension(dimension)); } @Override void drawDiagram(ImageRegion.Int region) { switch (plottype) { case BARCODE: break; case DIAGRAM: for (final int visibleDim : dims.visibleDims) { final List<ObjectObjectPair<Interval<Double>, BooleanSparseFormalSum<Simplex>>> intervalGeneratorPairs = intervals .getIntervalGeneratorPairsAtDimension(visibleDim); diagramToGenerators = new HashMap<Point2D, List<BooleanSparseFormalSum<Simplex>>>(); for (final ObjectObjectPair<Interval<Double>, BooleanSparseFormalSum<Simplex>> intervalGeneratorPair : intervalGeneratorPairs) { fill(Color.decode(colors[visibleDim][1]).getRed(), Color.decode(colors[visibleDim][1]).getGreen(), Color.decode(colors[visibleDim][1]) .getBlue()); final Interval<Double> interval = intervalGeneratorPair.getFirst(); if (interval.getStart() > filtrationValue) fill(Color.decode(colors[visibleDim][2]).getRed(), Color.decode(colors[visibleDim][2]).getGreen(), Color.decode(colors[visibleDim][2]) .getBlue()); final double xpos = interval.getStart() / maxFiltrationValue; final int x = region.xoffset + (int) (xpos * region.width); int y; if (interval.isRightInfinite()) y = region.yoffset; else { if (interval.getEnd() < filtrationValue) fill(Color.decode(colors[visibleDim][0]).getRed(), Color.decode(colors[visibleDim][0]).getGreen(), Color.decode(colors[visibleDim][0]).getBlue()); final double ypos = interval.getEnd() / maxFiltrationValue; y = region.yoffset + region.height - (int) (region.width * ypos); } ellipse(x, y, pointSize, pointSize); final Point2D coordinates = new Point2D(x, y); final BooleanSparseFormalSum<Simplex> generator = intervalGeneratorPair.getSecond(); List<BooleanSparseFormalSum<Simplex>> list = diagramToGenerators.get(coordinates); if (list == null) list = new ArrayList<BooleanSparseFormalSum<Simplex>>(); list.add(generator); diagramToGenerators.put(coordinates, list); } } int i = 0; for (final Point2D point : visibleGeneratorCoordinates) { final Color c = Color.decode(genColors[i]); fill(c.getRed(), c.getGreen(), c.getBlue()); ellipse(point.x, point.y, pointSize + 2, pointSize + 2); i = i + 1 % 7; } break; } } protected void drawBarsInPlace(final List<Interval<Double>> ints, final ImageRegion.Int region, final float barHeight, final float spacing, final double scale) { } @Override void addTo3Dplot() { if (visibleGenerators.size() > 0) { int i = 0; for (final List<BooleanSparseFormalSum<Simplex>> generators : visibleGenerators) { for (BooleanSparseFormalSum<Simplex> generator : generators) highlightGenerator(generator, Color.decode(genColors[i])); i = ((i + 1) % 8); } } } public void highlightGenerator(final BooleanSparseFormalSum<Simplex> generator, final Color c) { fill(c.getRed(), c.getGreen(), c.getBlue()); stroke(c.getRed(), c.getGreen(), c.getBlue()); final Iterator<Simplex> iterator = generator.iterator(); while (iterator.hasNext()) { final Simplex simplex = iterator.next(); final int ix[] = simplex.getVertices(); switch (simplex.getDimension()) { case 0: pushMatrix(); translate(pointsViz[ix[0]][0], pointsViz[ix[0]][1], pointsViz[ix[0]][2]); sphere(r); popMatrix(); break; case 1: beginShape(); vertex(pointsViz[ix[0]][0], pointsViz[ix[0]][1], pointsViz[ix[0]][2]); vertex(pointsViz[ix[1]][0], pointsViz[ix[1]][1], pointsViz[ix[1]][2]); endShape(); break; case 2: if (fillTriangles) { beginShape(); vertex(pointsViz[ix[0]][0], pointsViz[ix[0]][1], pointsViz[ix[0]][2]); vertex(pointsViz[ix[1]][0], pointsViz[ix[1]][1], pointsViz[ix[1]][2]); vertex(pointsViz[ix[2]][0], pointsViz[ix[2]][1], pointsViz[ix[2]][2]); vertex(pointsViz[ix[0]][0], pointsViz[ix[0]][1], pointsViz[ix[0]][2]); endShape(); } break; } } } @Override public void mousePressed() { super.mousePressed(); if (mouseX > width / 2) { final int mouseXinDiagram = mouseX - width / 2; for (final Point2D point : diagramToGenerators.keySet()) { if (Math.abs(mouseXinDiagram - point.x) < pointSize && Math.abs(mouseY - point.y) < pointSize) { final List<BooleanSparseFormalSum<Simplex>> generators = diagramToGenerators.get(point); if (visibleGeneratorCoordinates.contains(point)) { visibleGenerators.remove(generators); visibleGeneratorCoordinates.remove(point); } else { visibleGenerators.add(generators); visibleGeneratorCoordinates.add(point); } } } System.out.println("X-coordinate: " + (mouseX - width / 2) + " and Y-coordinate: " + mouseY); } } } ================================================ FILE: src/java/edu/stanford/math/plex4/visualization/HomologyVisualizer.java ================================================ package edu.stanford.math.plex4.visualization; import java.awt.Color; import java.util.List; import processing.core.PApplet; import edu.stanford.math.plex4.api.Plex4; import edu.stanford.math.plex4.homology.barcodes.BarcodeCollection; import edu.stanford.math.plex4.homology.barcodes.Interval; import edu.stanford.math.plex4.homology.chain_basis.Simplex; import edu.stanford.math.plex4.homology.interfaces.AbstractPersistenceAlgorithm; import edu.stanford.math.plex4.streams.impl.VietorisRipsStream; @SuppressWarnings("serial") public class HomologyVisualizer extends AbstractVisualizer { public static void main(final String[] args) { PApplet.main(new String[] { "edu.stanford.math.plex4.visualization.HomologyVisualizer" }); } private BarcodeCollection<Double> intervals = null; @Override void computeVietorisRipsHomology() { final int numDivisions = 1000; stream = new VietorisRipsStream<double[]>(metricSpace, maxFiltrationValue, dims.maxDimension + 1, numDivisions); stream.finalizeStream(); stream = Plex4.createVietorisRipsStream(pointsComp, dims.maxDimension + 1, maxFiltrationValue, numDivisions); fc = stream.getConverter(); AbstractPersistenceAlgorithm<Simplex> persistenceAlgorithm = Plex4.getDefaultSimplicialAlgorithm(dims.maxDimension + 1); intervals = persistenceAlgorithm.computeIntervals(stream); println(intervals); } @Override boolean hasIntervals() { return (intervals != null); } @Override List<Interval<Double>> getIntervalsAtDim(int dimension) { return intervals.getIntervalsAtDimension(dimension); } @Override void drawDiagram(final ImageRegion.Int region) { switch (plottype) { case BARCODE: break; case DIAGRAM: for (final int visibleDim : dims.visibleDims) { final List<Interval<Double>> ints = intervals.getIntervalsAtDimension(visibleDim); for (final Interval<Double> interval : ints) { fill(Color.decode(colors[visibleDim][1]).getRed(), Color.decode(colors[visibleDim][1]).getGreen(), Color.decode(colors[visibleDim][1]) .getBlue()); if (interval.getStart() > filtrationValue) fill(Color.decode(colors[visibleDim][2]).getRed(), Color.decode(colors[visibleDim][2]).getGreen(), Color.decode(colors[visibleDim][2]) .getBlue()); final double xpos = interval.getStart() / maxFiltrationValue; final int x = region.xoffset + (int) (xpos * region.width); int y; if (interval.isRightInfinite()) y = region.yoffset; else { if (interval.getEnd() < filtrationValue) fill(Color.decode(colors[visibleDim][0]).getRed(), Color.decode(colors[visibleDim][0]).getGreen(), Color.decode(colors[visibleDim][0]).getBlue()); final double ypos = interval.getEnd() / maxFiltrationValue; y = region.yoffset + region.height - (int) (region.width * ypos); } ellipse(x, y, pointSize, pointSize); } } break; } }; @Override void addTo3Dplot() { } } ================================================ FILE: src/java/edu/stanford/math/plex4/visualization/ImageRegion.java ================================================ /** * */ package edu.stanford.math.plex4.visualization; /** * @author Tim Harrington * */ public class ImageRegion { public static class Int { int height; int width; int xoffset; // the upper-left x value int yoffset; // the upper-right y value /** * @param height * @param width * @param xoffset * @param yoffset */ public Int(int height, int width, int xoffset, int yoffset) { this.height = height; this.width = width; this.xoffset = xoffset; this.yoffset = yoffset; } } public static class Double { double height; double width; double xoffset; // the upper-left x value double yoffset; // the upper-right y value /** * @param height * @param width * @param xoffset * @param yoffset */ public Double(double height, double width, double xoffset, double yoffset) { this.height = height; this.width = width; this.xoffset = xoffset; this.yoffset = yoffset; } } } ================================================ FILE: src/java/edu/stanford/math/plex4/visualization/PAppletSplitscreen.java ================================================ package edu.stanford.math.plex4.visualization; import java.awt.event.MouseWheelEvent; import java.awt.event.MouseWheelListener; import processing.core.PApplet; import processing.event.MouseEvent; @SuppressWarnings("serial") public class PAppletSplitscreen extends PApplet { /** * Global variables to enable rotation and zoom of 3D image */ float rotX = 0.0f, rotY = 0.0f; float distX = 0.0f, distY = 0.0f; int lastX, lastY; float zoomZ = 0.0f; float zoomX = 0.0f; boolean loaded = false; /** * Overwrite this method to setup additional variables */ public void doSetup() { } @Override final public void settings(){ size(1000, 500, P3D); } @Override final public void setup() { doSetup(); } public void mouseWheel(final MouseEvent mwe) { mouseWheel(mwe.getCount()); } /** * Overwrite this method to draw 2D objects in your sketch. */ public void doDraw2D() { } /** * Overwrite this method to draw 3D objects in your sketch. */ public void doDraw3D() { } @Override final public void draw() { if(loaded){ translate(2 * width / 7 + zoomX, height / 2 , zoomZ); rotateX(rotX + distY); rotateY(rotY + distX); lights(); doDraw3D(); hint(DISABLE_DEPTH_TEST); camera(); fill(255, 0, 0); translate(width / 2, 0, 0); doDraw2D(); hint(ENABLE_DEPTH_TEST); } } /** * Reset the view angle and */ protected void resetView() { rotX = 0.0f; rotY = 0.0f; distX = 0.0f; distY = 0.0f; } /** * Wheel mouse taken from http://wiki.processing.org/index.php/Wheel_mouse * Zoom in/out using mouse wheel * * @author Rick Companje */ void mouseWheel(final int delta) { if (mouseX <= width / 2){ zoomZ += delta * -15; zoomX += delta * -10; } } /** * Rotate 3D image when mouse is dragged */ @Override public void mousePressed() { if (mouseX <= width / 2) { lastX = mouseX; lastY = mouseY; } } @Override public void mouseDragged() { distX = radians(mouseX - lastX); distY = radians(lastY - mouseY); } @Override public void mouseReleased() { rotX += distY; rotY += distX; distX = distY = 0.0f; } } ================================================ FILE: src/java/edu/stanford/math/plex4/visualization/Point2D.java ================================================ package edu.stanford.math.plex4.visualization; public class Point2D { final public float x; final public float y; public Point2D(float x, float y) { super(); this.x = x; this.y = y; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + Float.floatToIntBits(x); result = prime * result + Float.floatToIntBits(y); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; Point2D other = (Point2D) obj; if (Float.floatToIntBits(x) != Float.floatToIntBits(other.x)) return false; if (Float.floatToIntBits(y) != Float.floatToIntBits(other.y)) return false; return true; } } ================================================ FILE: src/java/edu/stanford/math/plex4/visualization/PointCloudScaling.java ================================================ package edu.stanford.math.plex4.visualization; public class PointCloudScaling { /** * * Returns a scaled version of the point cloud. Scales the coordinates by * computing overall minimum and maximum and scaling uniformly in all * directions such that all coordinates fit in a box of dimensions: [-scale, * scale] x ... x [-scale, scale] * * @param points * @param scale * @return */ public static float[][] scaleCoordinates(final double[][] points, final float scale) { int dim = points[0].length; final float[][] coordinates = new float[points.length][dim]; double min = Double.MAX_VALUE; double max = 0; for (final double[] point : points) for (int i = 0; i < dim; i++) { min = Math.min(min, point[i]); max = Math.max(max, point[i]); } for (int i = 0; i < points.length; i++) { for (int j = 0; j < points[0].length; j++) coordinates[i][j] = translateAndScale(points[i][j], min, max, scale); } return (coordinates); } public static float translateAndScale(double x, double a, double b, float scale) { double xTranslated = scale * (2 * x - a - b) / (b - a); return (float) xTranslated; } } ================================================ FILE: src/matlab/experimental/graph_classification/ad_health_example.m ================================================ clc; clear; close all; %% edges = get_adhealth_edges47(); query_graph = create_graph_from_edgelist(edges); num_vertices = query_graph.getNumVertices(); num_edges = size(edges, 1) / 2; estimated_p = 2 * num_edges / (num_vertices * (num_vertices - 1)) %plot_graph(graph) %% n = query_graph.getNumVertices(); %n = 1000; lambda = 0.05; K = 10; c_min = 1; c_max = 4; C = c_max - c_min + 1; generators = cell(C, 1); for i = 1:C c = i + c_min - 1; m = num_vertices / c; p = num_edges / (0.5 * m * (m-1) * c + 0.5 * lambda * m * m * c * (c - 1)); q = p * lambda; p = p * 1; q = q * 1; P = diag((p - q) * ones(1, c)) + q * ones(c, c); generators{i} = edu.stanford.math.plex4.graph.random.StochasticBlockmodel(n, P); end query_graphs = cell(1, 1); query_graphs{1} = query_graph; %query_graphs{1} = generators{1}.generate(); %query_graphs{2} = generators{1}.generate(); distances = comparative_graph_analysis(generators, query_graphs, K) %% averaged_distances = average_block_matrix(distances, size(generators, 1), size(query_graphs, 1)); label = sprintf('adhealth_47_%d_%d', c_min, c_max); query_labels = cell(1, 1); query_labels{1} = 'adhealth_47'; visualize_comparison_distances(averaged_distances, generators, query_labels, label); ================================================ FILE: src/matlab/experimental/graph_classification/ad_health_plot.m ================================================ clc; clear; close all; %% edges = get_adhealth_edges47(); query_graph = create_graph_from_edgelist(edges); options.filename = 'ad_health_graph_47.pov'; plot_graph(query_graph, options); ================================================ FILE: src/matlab/experimental/graph_classification/average_block_matrix.m ================================================ function matrix = average_block_matrix(A, I, J) m = size(A, 1); n = size(A, 2); block_size_1 = m / I; block_size_2 = n / J; matrix = zeros(I, J); for i = 1:I for j = 1:J sum = 0; for s = 1:block_size_1 for t = 1:block_size_2 sum = sum + A((i-1) * block_size_1 + s, (j-1) * block_size_2 + t); end end matrix(i, j) = sum / (block_size_1 * block_size_2); end end end ================================================ FILE: src/matlab/experimental/graph_classification/blockmodel_er_test.m ================================================ clc; clear; close all; n = 64; K = 2; p = 0.6; q = 0.1; P = [p, q; q, p]; Q = [0.8, 0.4; 0.4, 0.8]; generators = cell(3, 1); generators{1} = edu.stanford.math.plex4.graph.random.ErdosRenyiGraph(n, p); generators{2} = edu.stanford.math.plex4.graph.random.StochasticBlockmodel(n, P); generators{3} = edu.stanford.math.plex4.graph.random.StochasticBlockmodel(n, Q); [bottleneck_distances] = pairwise_graph_analysis(generators, K); %% label = sprintf('blockmodel_%d_%d_%d', size(generators, 1), n, K); [hm_handle, mds_handle] = visualize_dissimilarity_matrix(bottleneck_distances, generators, label); ================================================ FILE: src/matlab/experimental/graph_classification/blockmodel_test.m ================================================ clc; clear; close all; %% n = 64; K = 4; p_max = 0.6; p_min = 0.1; probabilities = linspace(p_min, p_max, 11); l = length(probabilities); generators = cell(l, 1); for i = 1:l p = p_max; q = probabilities(i); P = [p, q; q, p]; generators{i} = edu.stanford.math.plex4.graph.random.StochasticBlockmodel(n, P); end [bottleneck_distances] = pairwise_graph_analysis(generators, K); %% label = sprintf('blockmodels_%d_%d_%d', size(generators, 1), n, K); [hm_handle, mds_handle] = visualize_dissimilarity_matrix(bottleneck_distances, generators, label); ================================================ FILE: src/matlab/experimental/graph_classification/blockmodel_test2.m ================================================ clc; clear; close all; %% n = 1000; p = 0.2; q = 0.01; K = 10; c_min = 1; c_max = 4; C = c_max - c_min + 1; generators = cell(C, 1); for i = 1:C c = i + c_min - 1; P = diag((p - q) * ones(1, c)) + q * ones(c, c); generators{i} = edu.stanford.math.plex4.graph.random.StochasticBlockmodel(n, P); end [bottleneck_distances] = pairwise_graph_analysis(generators, K); %% label = sprintf('blockmodels2_%d_%d_%d_%d', c_min, c_max, n, K); [hm_handle, mds_handle] = visualize_dissimilarity_matrix(bottleneck_distances, generators, label); ================================================ FILE: src/matlab/experimental/graph_classification/comparative_barcode_analysis.m ================================================ function bottleneck_distances = comparative_barcode_analysis(distance_matrices1, distance_matrices2, max_metric_size) K1 = size(distance_matrices1, 1); K2 = size(distance_matrices2, 1); interval_collections1 = cell(K1, 1); interval_collections2 = cell(K2, 1); for k = 1:(K1 + K2) if (k <= K1) mds_distances = distance_matrices1{k}; else mds_distances = distance_matrices2{k - K1}; end m_space = edu.stanford.math.plex4.metric.impl.ExplicitMetricSpace(mds_distances); if (max_metric_size < m_space.size()) m_space = edu.stanford.math.plex4.metric.landmark.MaxMinLandmarkSelector(m_space, max_metric_size); end max_dimension = 0; max_filtration_value = 4; stream = edu.stanford.math.plex4.api.Plex4.createVietorisRipsStream(m_space, max_dimension+1, max_filtration_value, 1000); stream.finalizeStream(); persistence = edu.stanford.math.plex4.api.Plex4.getDefaultSimplicialAlgorithm(max_dimension+1); filtration_value_intervals = persistence.computeIntervals(stream); dim_0_intervals = filtration_value_intervals.getIntervalsAtDimension(0); dim_0_intervals = edu.stanford.math.plex4.bottleneck.BottleneckDistance.truncate(dim_0_intervals, 0, max_filtration_value); if (k <= K1) interval_collections1{k} = dim_0_intervals; else interval_collections2{k - K1} = dim_0_intervals; end end bottleneck_distances = zeros(K1 * K2, 1); parfor m = 0:(K1 * K2 - 1) k1 = floor(m / K2) + 1; k2 = mod(m, K2) + 1; bottleneck_distances(m + 1) = edu.stanford.math.plex4.bottleneck.BottleneckDistance.computeBottleneckDistance(interval_collections1{k1}, interval_collections2{k2}); display(sprintf('pairwise_barcode_analysis: d(%d, %d) = %f', k1, k2, bottleneck_distances(m + 1))); end bottleneck_distances = reshape(bottleneck_distances, K2, K1)'; end ================================================ FILE: src/matlab/experimental/graph_classification/comparative_graph_analysis.m ================================================ function [bottleneck_distances] = comparative_graph_analysis(generators, query_graphs, K) matlabpool pctRunOnAll javaaddpath('../../for_distribution/lib/javaplex.jar'); G = size(generators, 1); distance_matrices1 = cell(K * G, 1); parfor m = 0:(K*G - 1) g = floor(m / K) + 1; k = mod(m, K) + 1; graph = generators{g}.generate(); distances = edu.stanford.math.plex4.graph.utility.GraphUtility.computeShortestPaths(graph); distances = filter_distance_matrix(distances); [Y] = cmdscale(distances); mds_distances = pairwise_row_distances(Y); mds_distances = mds_distances / max(max(mds_distances)); distance_matrices1{m + 1} = mds_distances; end K2 = size(query_graphs, 1); distance_matrices2 = cell(K2, 1); parfor m = 1:K2 distances = edu.stanford.math.plex4.graph.utility.GraphUtility.computeShortestPaths(query_graphs{m}); [Y] = cmdscale(distances); mds_distances = pairwise_row_distances(Y); mds_distances = mds_distances / max(max(mds_distances)); query_graph_distances = mds_distances; distance_matrices2{m} = query_graph_distances; end bottleneck_distances = comparative_barcode_analysis(distance_matrices1, distance_matrices2, 50); matlabpool close end ================================================ FILE: src/matlab/experimental/graph_classification/comprehensive_test.m ================================================ clc; clear; close all; n = 64; m = 2; K = 2; k = 4; P = [0.6, 0.1; 0.1, 0.6]; Q = [0.3, 0.04; 0.04, 0.3]; generators = cell(7, 1); generators{1} = edu.stanford.math.plex4.graph.random.ErdosRenyiGraph(n, 0.10); generators{2} = edu.stanford.math.plex4.graph.random.StochasticBlockmodel(n, P); generators{3} = edu.stanford.math.plex4.graph.random.StochasticBlockmodel(n, Q); generators{4} = edu.stanford.math.plex4.graph.random.BAGraph(n, m); generators{5} = edu.stanford.math.plex4.graph.random.ForestFireGraph(n, 0.3, 0.5); generators{6} = edu.stanford.math.plex4.graph.random.KNearestNeighborsGraph(n, 3, k); generators{7} = edu.stanford.math.plex4.graph.random.TorusGraph(n, 2, k); %generators{3} = edu.stanford.math.plex4.graph.random.RandomGeometricGraph(n, 1, 0.02); %generators{5} = edu.stanford.math.plex4.graph.random.RandomGeometricGraph(n, 2, 0.02); %generators{6} = edu.stanford.math.plex4.graph.random.RandomGeometricGraph(n, 3, 0.02); [bottleneck_distances] = pairwise_graph_analysis(generators, K); %% label = sprintf('all_%d_%d_%d', size(generators, 1), n, K); [hm_handle, mds_handle] = visualize_dissimilarity_matrix(bottleneck_distances, generators, label); ================================================ FILE: src/matlab/experimental/graph_classification/compute_adjacency_matrix.m ================================================ function adjacency_matrix = compute_adjacency_matrix(graph) n = graph.getNumVertices(); adjacency_matrix = zeros(n, n); for i = 1:n for j = (i+1):n if (graph.containsEdge(i-1, j-1)) adjacency_matrix(i, j) = 1; adjacency_matrix(j, i) = 1; end end end end ================================================ FILE: src/matlab/experimental/graph_classification/compute_normalized_laplacian.m ================================================ function normalized_laplacian = compute_normalized_laplacian(laplacian) n = size(laplacian, 1); normalized_laplacian = zeros(n, n); for i = 1:n d_i = laplacian(i, i); if (laplacian(i, i) ~= 0) normalized_laplacian(i, i) = 1; end for j = (i+1):n if (laplacian(i, j) ~= 0) normalized_laplacian(i, j) = laplacian(i, j) / (sqrt(laplacian(i, i)) * sqrt(laplacian(j, j))); normalized_laplacian(j, i) = normalized_laplacian(i, j); end end end end ================================================ FILE: src/matlab/experimental/graph_classification/create_graph_from_edgelist.m ================================================ function [graph] = create_graph_from_edgelist(edges) min_index = min(min(edges)); max_index = max(max(edges)); offset = -min_index; range = max_index - min_index + 1; graph = edu.stanford.math.plex4.graph.UndirectedListGraph(range); for k = 1:size(edges, 1) i = edges(k, 1) + offset; j = edges(k, 2) + offset; graph.addEdge(i, j); end end ================================================ FILE: src/matlab/experimental/graph_classification/er_test.m ================================================ clc; clear; close all; %% n = 64; K = 4; probabilities = linspace(0.1, 0.80, 3); l = length(probabilities); generators = cell(l, 1); for i = 1:l generators{i} = edu.stanford.math.plex4.graph.random.ErdosRenyiGraph(n, probabilities(i)); end [bottleneck_distances] = pairwise_graph_analysis(generators, K); %% label = sprintf('erdos_renyi_%d_%d_%d', size(generators, 1), n, K); [hm_handle, mds_handle] = visualize_dissimilarity_matrix(bottleneck_distances, generators, label); ================================================ FILE: src/matlab/experimental/graph_classification/er_test_increasing_sizes.m ================================================ clc; clear; close all; %% K = 2; sizes = 20:10:90; %probabilities = 5.0 ./ sizes; probabilities = 0.1 * ones(length(sizes), 1); l = length(probabilities); generators = cell(l, 1); for i = 1:l generators{i} = edu.stanford.math.plex4.graph.random.ErdosRenyiGraph(sizes(i), probabilities(i)); end [bottleneck_distances] = pairwise_graph_analysis(generators, K); %% label = sprintf('erdos_renyi_increasing_%d_%d_%d_%d', size(generators, 1), K, min(sizes), max(sizes)); [hm_handle, mds_handle] = visualize_dissimilarity_matrix(bottleneck_distances, generators, label); ================================================ FILE: src/matlab/experimental/graph_classification/filter_distance_matrix.m ================================================ function distances = filter_distance_matrix(distances) threshold = 1e10; [r, c] = find(distances>threshold); for i = 1:length(r) distances(r(i), c(i)) = 0; end max_value = max(max(distances)); for i = 1:length(r) distances(r(i), c(i)) = 0 * max_value; end end ================================================ FILE: src/matlab/experimental/graph_classification/get_adhealth_edges16.m ================================================ function edges = get_adhealth_edges16() edges = [0,650;1,10;1,33;1,68;1,89;1,135;1,166;1,176;1,230;1,248;1,263;1,291;1,326;1,343;1,361;1,367;1,392;1,406;1,423;1,437;1,457;1,472;1,476;2,33;2,36;2,68;2,166;2,183;2,248;2,291;2,326;2,343;2,361;2,414;3,39;3,93;4,74;4,191;4,230;4,251;4,336;4,370;4,374;4,375;4,377;4,410;4,422;4,437;5,26;5,78;5,202;5,446;6,221;6,247;6,363;7,56;7,84;7,86;7,172;7,209;7,292;7,387;7,390;7,417;7,445;8,59;8,86;8,113;8,164;8,209;8,211;8,227;8,230;8,263;8,296;8,372;8,375;8,457;9,92;9,112;9,134;9,185;9,348;10,1;10,33;10,86;10,183;10,222;10,243;10,266;10,288;10,312;10,360;10,363;10,367;11,58;11,162;11,180;11,297;11,459;11,473;12,118;12,121;12,138;12,193;12,309;12,389;12,472;12,475;13,32;13,53;13,66;13,98;13,108;13,158;13,170;13,284;13,291;13,306;13,315;13,326;13,361;13,442;13,464;14,97;14,144;14,166;14,205;14,341;14,345;14,424;14,464;15,134;15,178;15,384;16,50;16,192;16,207;16,213;16,235;16,381;16,415;16,439;16,445;17,65;17,141;17,237;17,317;17,319;17,333;18,31;18,45;18,153;18,168;18,215;18,233;18,237;18,272;18,310;18,346;19,103;19,241;19,319;19,350;20,44;20,76;20,78;20,187;20,249;20,409;20,465;21,81;21,339;21,510;22,218;22,230;22,258;23,48;23,85;23,190;23,314;23,348;23,350;23,359;23,428;23,440;23,616;24,66;24,89;24,127;24,148;24,160;24,166;24,266;24,286;24,290;24,327;24,360;24,423;25,26;25,102;25,128;25,167;25,266;26,5;26,25;26,154;26,185;26,208;26,210;26,365;26,408;26,440;26,446;27,104;27,275;27,348;28,109;28,153;28,214;28,302;29,83;29,89;29,100;29,162;29,166;29,211;29,243;29,257;29,293;29,317;29,322;29,376;30,64;30,85;30,161;30,214;30,253;30,283;30,314;30,320;30,352;30,355;30,359;30,421;30,429;30,432;30,666;31,18;31,48;31,92;31,249;31,272;31,409;32,13;32,158;32,409;32,458;32,463;32,544;33,1;33,2;33,10;33,89;33,127;33,158;33,213;33,277;33,286;33,291;33,306;33,317;33,326;33,327;33,343;33,360;33,419;33,430;33,443;33,464;33,476;34,65;34,110;34,157;34,161;34,184;34,350;34,371;34,405;34,669;35,111;35,395;35,458;35,543;36,2;36,84;36,86;36,94;36,211;36,390;36,410;36,417;36,445;36,474;37,147;37,178;37,226;37,238;37,268;37,278;37,323;37,378;37,454;37,481;38,147;38,171;38,179;38,191;38,226;38,228;38,255;38,265;38,288;38,289;38,294;38,323;38,329;38,417;39,3;39,155;39,167;39,320;39,428;39,432;40,118;40,128;40,255;40,256;40,289;40,393;40,475;41,143;41,182;41,214;41,233;41,355;41,432;41,467;42,219;42,338;42,377;42,414;42,436;42,569;43,73;43,140;44,20;44,143;44,205;44,210;44,214;44,233;44,359;44,413;44,458;45,18;45,93;45,346;45,421;46,81;46,182;46,206;46,326;46,366;46,456;47,89;47,162;47,165;47,166;47,257;47,273;47,337;47,389;47,397;47,406;47,459;47,473;48,23;48,31;48,93;48,272;48,421;49,96;49,99;49,204;49,228;49,294;49,329;49,330;49,372;49,390;49,403;49,474;49,706;50,16;50,129;50,340;50,415;50,684;51,221;51,324;51,394;51,415;52,242;52,252;52,267;52,324;52,383;52,456;52,596;52,704;53,13;53,165;53,380;53,413;53,434;54,117;54,159;54,207;55,59;55,84;55,121;55,164;55,172;55,192;55,280;55,286;55,296;55,360;55,361;55,431;55,449;56,7;56,63;56,82;56,86;56,250;56,292;56,387;56,390;56,410;56,417;56,445;56,516;57,172;57,213;57,222;57,286;57,327;57,430;57,442;57,599;58,11;58,113;58,131;58,162;58,256;58,326;58,412;58,438;58,459;58,473;59,8;59,55;59,61;59,86;59,121;59,135;59,164;59,230;59,280;59,282;59,296;59,361;59,403;59,449;60,217;60,329;60,337;60,375;61,59;61,86;61,121;61,137;61,164;61,213;61,219;61,280;61,296;61,297;61,360;61,390;61,676;62,318;63,56;63,116;63,165;63,209;63,282;63,292;63,410;63,417;63,445;64,30;64,76;64,112;64,188;64,231;64,253;64,283;64,336;64,349;65,17;65,34;65,75;65,237;65,335;65,345;65,350;65,352;65,409;65,555;66,13;66,24;66,135;66,291;66,327;66,343;66,360;66,430;66,464;67,439;68,1;68,2;68,152;68,166;68,183;68,217;68,239;68,263;68,326;68,366;68,406;68,445;68,464;68,581;68,721;69,127;69,150;69,152;69,172;69,174;69,259;69,281;69,300;69,403;69,423;69,454;69,504;70,102;70,145;70,397;71,102;71,364;72,79;72,89;72,163;72,229;72,324;72,373;72,407;72,441;73,43;73,169;74,4;74,117;74,192;74,207;74,332;74,372;74,400;74,461;74,474;75,65;75,90;75,110;75,157;75,231;75,234;75,336;75,341;75,349;75,350;75,434;75,460;76,20;76,64;76,97;76,139;76,210;76,349;76,440;77,382;77,427;77,433;78,5;78,20;78,95;78,107;78,112;78,185;78,202;78,260;78,351;78,424;78,428;78,462;78,497;78,543;78,700;79,72;79,91;79,102;79,104;79,150;79,167;79,194;79,321;79,334;80,220;81,21;81,46;81,142;81,206;81,339;81,344;81,364;81,510;81,516;81,527;82,56;82,83;82,124;82,206;82,223;82,254;82,294;82,344;82,361;82,404;83,29;83,82;83,88;83,258;83,289;83,309;83,338;83,363;83,700;84,7;84,36;84,55;84,209;84,211;84,227;84,342;84,387;84,398;84,431;84,445;85,23;85,30;85,112;85,155;85,181;85,188;85,190;85,253;85,287;85,335;85,386;85,413;85,434;85,462;86,7;86,8;86,10;86,36;86,56;86,59;86,61;86,209;86,215;86,263;86,266;86,292;86,297;86,374;86,387;86,390;86,410;86,445;86,449;87,92;87,112;87,190;87,287;87,314;87,335;87,434;87,446;88,83;88,100;88,171;88,262;88,328;88,356;88,447;89,1;89,24;89,29;89,33;89,47;89,72;89,94;89,100;89,114;89,124;89,130;89,135;89,166;89,179;89,204;89,217;89,232;89,264;89,266;89,288;89,306;89,361;90,75;90,97;90,144;90,189;90,190;90,203;90,212;90,231;90,234;90,336;90,349;90,366;90,424;91,79;91,125;91,127;91,160;91,259;91,300;91,327;91,357;91,373;91,383;91,403;91,433;91,442;91,504;92,9;92,31;92,87;92,112;92,185;92,260;92,348;92,424;92,440;92,446;92,466;93,3;93,45;93,48;93,115;93,139;93,187;93,201;93,303;93,422;94,36;94,89;94,157;94,296;94,330;94,394;94,504;95,78;95,112;95,175;95,202;95,253;95,335;95,352;95,365;95,388;95,446;95,462;96,49;96,99;96,134;96,165;96,277;96,294;96,412;96,457;96,474;97,14;97,76;97,90;97,144;97,173;97,203;97,231;97,320;97,458;97,463;97,575;97,607;97,616;97,686;98,13;98,107;98,111;98,120;98,140;98,205;98,251;98,393;98,434;98,471;99,49;99,96;99,171;99,228;99,294;99,330;99,356;100,29;100,88;100,89;100,171;100,226;100,242;100,258;100,328;100,447;101,118;101,183;101,194;101,238;101,243;101,256;101,293;101,393;101,417;101,420;101,745;102,25;102,70;102,71;102,79;102,167;102,217;102,240;102,408;102,431;103,19;103,141;103,237;103,341;104,27;104,79;104,134;104,196;104,217;104,289;104,325;104,393;104,454;104,475;105,171;105,262;106,159;106,216;106,305;106,313;106,364;106,392;106,400;106,441;106,455;107,78;107,98;107,112;107,201;107,253;108,13;108,203;108,321;108,614;109,28;109,153;109,181;109,208;109,214;109,302;109,402;109,446;110,34;110,75;110,141;110,157;110,212;110,333;110,371;110,466;110,536;111,35;111,98;111,175;111,249;111,275;111,365;111,375;111,413;111,465;111,771;112,9;112,64;112,78;112,85;112,87;112,92;112,95;112,107;112,185;112,208;112,260;112,307;112,370;112,395;112,446;113,8;113,58;113,119;113,133;113,266;113,305;113,312;113,391;113,723;114,89;114,135;114,250;114,259;114,361;114,366;114,367;114,414;114,430;114,632;115,93;115,153;115,155;115,168;115,251;115,421;115,422;115,711;116,63;116,183;116,261;116,383;116,387;116,410;116,417;116,437;116,445;116,457;117,54;117,74;117,159;117,192;117,207;117,271;117,331;117,401;117,471;118,12;118,40;118,101;118,136;118,255;118,380;118,547;119,113;119,127;119,146;119,237;119,304;119,312;119,364;119,415;119,427;119,433;120,98;120,187;120,201;120,354;120,386;120,448;120,465;121,12;121,55;121,59;121,61;121,135;121,137;121,164;121,280;122,126;123,142;123,218;123,252;123,363;123,451;124,82;124,89;124,217;124,292;124,423;124,634;125,91;126,122;126,150;126,191;126,330;127,24;127,33;127,69;127,91;127,119;127,204;127,222;127,266;127,286;127,290;127,343;127,423;127,442;128,25;128,40;128,255;128,297;128,473;129,50;129,131;129,172;129,192;129,235;129,340;129,394;129,415;129,431;129,449;130,89;130,135;130,165;130,166;130,179;130,195;130,282;130,306;130,414;130,416;130,464;130,691;131,58;131,129;131,207;131,271;131,276;131,288;131,349;131,363;131,394;131,431;131,451;131,620;131,674;132,229;132,691;133,113;133,266;133,312;134,9;134,15;134,96;134,104;134,178;134,297;134,331;134,375;134,384;134,474;135,1;135,59;135,66;135,89;135,114;135,121;135,130;135,164;135,239;135,280;135,282;135,361;135,366;135,476;136,118;136,150;136,162;136,393;136,473;137,61;137,121;137,292;137,307;137,370;138,12;138,228;138,243;138,309;138,337;138,389;139,76;139,93;139,188;139,434;139,556;139,770;140,43;140,98;140,544;141,17;141,103;141,110;141,177;141,203;141,234;141,333;141,350;141,434;142,81;142,123;142,243;142,258;142,288;142,289;142,337;142,363;143,41;143,44;143,175;143,214;143,233;143,249;143,275;143,408;143,413;143,440;143,467;144,14;144,90;144,97;144,158;144,173;144,259;144,341;144,345;144,349;144,372;144,430;144,462;144,476;144,666;145,70;145,193;145,218;145,289;145,383;145,389;145,393;145,397;146,119;146,224;146,242;146,264;146,266;146,282;146,327;146,344;146,423;146,456;146,461;146,463;147,37;147,38;147,179;147,265;147,331;148,24;148,197;148,222;148,286;148,327;148,360;148,423;148,442;149,173;149,188;149,197;149,203;149,234;149,237;149,248;149,257;149,310;149,317;149,336;149,434;149,549;149,581;150,69;150,79;150,126;150,136;150,152;150,174;150,193;150,196;150,265;150,297;150,322;150,325;150,357;150,378;150,397;150,438;150,454;150,481;150,659;150,748;151,471;151,700;152,68;152,69;152,150;152,174;152,176;152,183;152,222;152,239;152,267;152,286;152,322;152,360;152,368;152,378;152,454;152,464;152,481;152,483;152,748;153,18;153,28;153,109;153,115;153,251;153,283;154,26;154,210;154,318;155,39;155,85;155,115;155,156;155,283;155,320;155,418;155,432;156,155;156,201;156,352;156,614;157,34;157,75;157,94;157,110;157,158;157,173;157,184;157,345;157,362;157,434;158,13;158,32;158,33;158,144;158,157;158,205;158,306;158,398;158,418;158,434;158,443;158,476;159,54;159,106;159,117;159,207;159,216;159,244;159,276;159,305;159,311;159,392;159,435;159,455;160,24;160,91;160,224;160,252;160,259;160,327;160,353;160,383;160,414;161,30;161,34;161,333;161,460;161,462;161,469;162,11;162,29;162,47;162,58;162,136;162,165;162,238;162,255;162,256;162,351;162,376;162,412;162,438;162,459;162,473;163,72;164,8;164,55;164,59;164,61;164,121;164,135;164,170;164,219;164,280;164,282;164,296;164,383;164,394;164,403;165,47;165,53;165,63;165,96;165,130;165,162;165,211;165,256;165,330;165,398;165,410;165,417;165,438;166,1;166,2;166,14;166,24;166,29;166,47;166,68;166,89;166,130;166,195;166,216;166,232;166,241;166,257;166,291;166,375;166,404;166,406;166,414;166,437;166,472;167,25;167,39;167,79;167,102;167,325;167,354;167,364;167,452;168,18;168,115;168,215;168,233;169,73;170,13;170,164;170,174;170,277;170,280;170,315;170,361;170,378;170,381;170,396;170,454;171,38;171,88;171,99;171,100;171,105;171,228;171,243;171,328;171,329;171,447;172,7;172,55;172,57;172,69;172,129;172,209;172,211;172,213;172,250;172,280;172,296;172,390;173,97;173,144;173,149;173,157;173,190;173,203;173,345;173,350;173,362;173,434;173,469;173,476;173,575;174,69;174,150;174,152;174,170;174,196;174,277;174,348;174,357;174,378;174,454;174,459;174,659;175,95;175,111;175,143;175,188;175,233;175,275;175,351;175,370;175,371;175,386;175,388;175,413;175,426;176,1;176,152;176,183;176,232;176,239;176,291;176,343;176,361;176,367;176,442;176,464;176,472;177,141;178,15;178,37;178,134;178,179;178,265;178,278;178,297;178,323;178,331;178,384;178,413;178,420;179,38;179,89;179,130;179,147;179,178;179,238;179,265;179,278;179,323;179,331;179,357;179,384;179,447;180,11;180,182;180,357;181,85;181,109;181,190;181,210;181,213;181,348;181,388;181,413;182,41;182,46;182,180;182,228;182,267;182,278;182,329;183,2;183,10;183,68;183,101;183,116;183,152;183,176;183,239;183,248;183,257;183,317;183,343;183,404;183,406;183,410;183,412;183,430;183,464;183,472;183,610;183,693;183,723;184,34;184,157;184,386;184,536;184,607;185,9;185,26;185,78;185,92;185,112;185,186;185,348;185,424;185,446;185,462;185,588;186,185;186,190;186,260;186,314;186,351;186,424;186,426;186,429;186,666;186,743;187,20;187,93;187,120;187,201;187,236;187,334;187,432;188,64;188,85;188,139;188,149;188,175;188,215;188,386;188,413;188,426;188,669;189,90;189,190;189,210;189,236;189,260;189,279;189,424;189,448;189,467;189,770;190,23;190,85;190,87;190,90;190,173;190,181;190,186;190,189;190,272;190,314;190,386;190,424;190,467;190,743;191,4;191,38;191,126;191,246;191,295;191,326;191,764;192,16;192,55;192,74;192,117;192,129;192,207;192,340;192,381;192,394;192,397;192,400;192,415;192,449;193,12;193,145;193,150;193,211;193,218;193,289;193,397;193,457;193,475;194,79;194,101;194,216;194,305;194,392;194,394;194,405;194,408;194,435;194,455;194,584;194,767;195,130;195,166;195,257;195,317;195,343;195,414;195,416;195,443;196,104;196,150;196,174;196,277;196,322;196,378;196,393;196,412;196,444;196,454;196,459;196,473;196,475;196,748;197,148;197,149;197,199;197,213;197,217;197,308;197,436;197,443;198,228;198,246;198,290;198,295;198,304;198,324;198,439;199,197;199,204;199,241;199,269;199,462;200,447;201,93;201,107;201,120;201,156;201,187;201,352;202,5;202,78;202,95;203,90;203,97;203,108;203,141;203,149;203,173;203,270;203,279;203,345;203,354;203,426;204,49;204,89;204,127;204,199;204,241;204,250;204,264;204,327;204,414;204,488;205,14;205,44;205,98;205,158;205,234;205,307;205,607;206,46;206,81;206,82;206,339;206,344;206,377;206,404;206,456;206,461;207,16;207,54;207,74;207,117;207,131;207,159;207,192;207,271;207,381;207,401;207,415;207,658;208,26;208,109;208,112;208,212;208,214;208,371;209,7;209,8;209,63;209,84;209,86;209,172;209,211;209,227;209,292;209,390;209,431;209,659;210,26;210,44;210,76;210,154;210,181;210,189;210,236;210,307;210,370;210,428;211,8;211,29;211,36;211,84;211,165;211,172;211,193;211,209;211,227;211,366;211,372;211,374;211,398;211,437;211,547;211,659;212,90;212,110;212,208;212,251;212,349;212,359;212,371;213,16;213,33;213,57;213,61;213,172;213,181;213,197;213,219;213,257;213,267;213,292;213,300;213,372;213,390;213,398;213,416;213,442;214,28;214,30;214,41;214,44;214,109;214,143;214,208;214,233;214,234;214,302;214,355;214,408;215,18;215,86;215,168;215,188;215,260;215,370;215,426;216,106;216,159;216,166;216,194;216,224;216,241;216,304;216,305;216,311;216,313;216,389;216,392;216,401;216,441;216,455;216,492;216,510;216,584;216,759;217,60;217,68;217,89;217,102;217,104;217,124;217,197;217,306;217,308;217,383;217,414;217,436;218,22;218,123;218,145;218,193;218,247;218,325;218,342;219,42;219,61;219,164;219,213;219,263;219,280;219,366;219,394;219,449;220,80;220,455;221,6;221,51;221,247;221,269;221,274;221,288;221,311;221,344;221,416;221,451;222,10;222,57;222,127;222,148;222,152;222,246;222,286;222,312;222,360;222,368;222,391;222,430;222,442;222,443;223,82;223,228;223,274;223,329;223,457;224,146;224,160;224,216;224,313;224,504;224,540;225,227;225,280;225,379;225,410;225,412;225,414;225,436;225,443;225,473;225,730;226,37;226,38;226,100;226,268;226,278;226,420;226,438;227,8;227,84;227,209;227,211;227,225;227,230;227,252;227,254;227,292;227,309;227,312;227,337;227,385;227,436;227,535;227,549;228,38;228,49;228,99;228,138;228,171;228,182;228,198;228,223;228,243;228,252;228,262;228,289;228,294;228,317;228,328;228,329;228,337;228,375;229,72;229,132;230,1;230,4;230,8;230,22;230,59;230,227;230,264;230,330;230,387;230,390;230,445;230,486;231,64;231,75;231,90;231,97;231,234;231,336;231,349;231,365;231,458;231,532;232,89;232,166;232,176;232,239;232,266;232,291;232,343;232,361;232,391;232,472;233,18;233,41;233,44;233,143;233,168;233,175;233,214;233,347;233,355;233,408;233,448;234,75;234,90;234,141;234,149;234,205;234,214;234,231;234,336;234,362;234,460;234,532;234,555;234,607;235,16;235,129;235,280;235,381;235,415;235,553;236,187;236,189;236,210;236,314;237,17;237,18;237,65;237,103;237,119;237,149;237,333;237,341;237,349;237,350;237,409;237,434;238,37;238,101;238,162;238,179;238,249;238,255;238,260;238,268;238,473;239,68;239,135;239,152;239,176;239,183;239,232;239,291;239,312;239,360;239,361;239,391;239,430;239,442;239,464;240,102;240,244;240,255;240,325;240,364;240,435;240,471;240,472;240,473;241,19;241,166;241,199;241,204;241,216;241,276;241,295;241,304;241,401;241,767;242,52;242,100;242,146;242,330;242,338;242,339;242,363;242,364;242,404;243,10;243,29;243,101;243,138;243,142;243,171;243,228;243,247;243,258;243,273;243,288;243,299;243,329;243,338;243,404;244,159;244,240;244,258;244,276;244,331;245,286;245,290;245,308;245,343;245,368;246,191;246,198;246,222;246,290;246,295;246,427;247,6;247,218;247,221;247,243;247,258;247,363;247,459;248,1;248,2;248,149;248,183;248,291;248,310;248,464;248,607;249,20;249,31;249,111;249,143;249,238;249,386;249,427;250,56;250,114;250,172;250,204;250,290;250,296;250,366;250,372;250,377;250,390;250,410;250,417;250,445;250,457;250,659;251,4;251,98;251,115;251,153;251,212;251,253;251,316;251,421;251,422;251,432;251,460;251,519;252,52;252,123;252,160;252,227;252,228;252,254;252,288;252,447;252,535;252,549;252,754;253,30;253,64;253,85;253,95;253,107;253,251;253,370;253,411;253,422;253,448;254,82;254,227;254,252;254,337;254,338;254,339;254,363;254,389;254,535;254,549;255,38;255,40;255,118;255,128;255,162;255,238;255,240;255,273;255,297;255,376;255,389;255,473;256,40;256,58;256,101;256,162;256,165;256,376;256,412;256,438;256,448;256,473;257,29;257,47;257,149;257,166;257,183;257,195;257,213;257,317;257,343;257,366;257,406;257,414;257,430;257,472;258,22;258,83;258,100;258,142;258,243;258,244;258,247;258,264;258,309;258,363;258,376;258,378;258,454;259,69;259,91;259,114;259,144;259,160;259,353;259,357;259,383;259,419;259,425;259,442;259,475;259,504;259,684;260,78;260,92;260,112;260,186;260,189;260,215;260,238;260,307;260,351;260,370;260,446;260,466;261,116;262,88;262,105;262,228;262,277;262,294;262,329;263,1;263,8;263,68;263,86;263,219;263,381;263,390;263,394;263,449;264,89;264,146;264,204;264,230;264,258;264,363;265,38;265,147;265,150;265,178;265,179;265,322;265,366;265,384;265,420;266,10;266,24;266,25;266,86;266,89;266,113;266,127;266,133;266,146;266,232;266,312;266,367;266,368;266,391;267,52;267,152;267,182;267,213;267,353;267,357;267,456;267,457;268,37;268,226;268,238;268,278;268,297;268,370;269,199;269,221;270,203;270,575;270,718;271,117;271,131;271,207;271,305;271,404;271,431;272,18;272,31;272,48;272,190;272,466;273,47;273,243;273,255;273,325;273,398;273,412;273,416;273,473;274,221;274,223;274,289;274,331;274,416;274,451;275,27;275,111;275,143;275,175;275,370;275,371;275,388;275,413;275,426;275,448;275,466;275,467;276,131;276,159;276,241;276,244;276,404;276,431;276,435;277,33;277,96;277,170;277,174;277,196;277,262;277,278;277,289;277,363;277,378;277,454;277,457;278,37;278,178;278,179;278,182;278,226;278,268;278,277;278,293;278,323;278,453;278,700;279,189;279,203;280,55;280,59;280,61;280,121;280,135;280,164;280,170;280,172;280,219;280,225;280,235;280,296;280,326;280,360;280,361;280,372;280,374;280,430;280,431;280,464;281,69;281,282;281,325;281,379;281,430;282,59;282,63;282,130;282,135;282,146;282,164;282,281;282,353;282,476;283,30;283,64;283,153;283,155;283,418;283,434;283,462;284,13;284,638;285,290;285,441;286,24;286,33;286,55;286,57;286,127;286,148;286,152;286,222;286,245;286,327;286,360;286,368;286,391;286,423;286,442;287,85;287,87;287,316;287,410;287,446;288,10;288,38;288,89;288,131;288,142;288,221;288,243;288,252;288,293;288,322;288,363;288,378;288,454;289,38;289,40;289,83;289,104;289,142;289,145;289,193;289,228;289,274;289,277;289,325;289,329;289,338;289,363;289,389;289,393;289,396;289,475;290,24;290,127;290,198;290,245;290,246;290,250;290,285;290,308;290,327;290,383;291,1;291,2;291,13;291,33;291,66;291,166;291,176;291,232;291,239;291,248;291,306;291,343;291,361;291,367;291,430;291,442;291,443;291,472;291,476;292,7;292,56;292,63;292,86;292,124;292,137;292,209;292,213;292,227;292,398;292,410;292,445;292,474;293,29;293,101;293,278;293,288;293,322;293,323;293,447;294,38;294,49;294,82;294,96;294,99;294,228;294,262;294,329;294,375;295,191;295,198;295,241;295,246;295,313;295,326;295,366;295,419;295,423;295,425;296,8;296,55;296,59;296,61;296,94;296,164;296,172;296,250;296,280;296,387;297,11;297,61;297,86;297,128;297,134;297,150;297,178;297,255;297,268;297,380;297,390;297,403;298,439;299,243;299,431;300,69;300,91;300,213;300,353;300,357;300,373;300,442;301,771;302,28;302,109;302,214;302,347;303,93;303,718;304,119;304,198;304,216;304,241;304,305;304,311;304,313;304,392;304,427;305,106;305,113;305,159;305,194;305,216;305,271;305,304;305,311;305,313;305,392;305,441;305,451;305,455;305,674;306,13;306,33;306,89;306,130;306,158;306,217;306,291;306,326;306,327;306,361;306,405;306,423;306,442;307,112;307,137;307,205;307,210;307,260;307,370;307,446;307,447;308,197;308,217;308,245;308,290;308,442;309,12;309,83;309,138;309,227;309,258;309,363;309,393;309,475;310,18;310,149;310,248;310,341;310,409;311,159;311,216;311,221;311,304;311,305;311,392;311,451;311,455;312,10;312,113;312,119;312,133;312,222;312,227;312,239;312,266;312,360;312,391;312,408;312,464;313,106;313,216;313,224;313,295;313,304;313,305;313,364;313,369;313,392;313,401;313,441;314,23;314,30;314,87;314,186;314,190;314,236;314,320;314,359;314,429;315,13;315,170;316,251;316,287;316,352;317,17;317,29;317,33;317,149;317,183;317,195;317,228;317,257;317,329;317,464;317,607;317,744;318,62;318,154;318,370;318,459;319,17;319,19;320,30;320,39;320,97;320,155;320,314;320,422;320,428;320,429;321,79;321,108;321,371;321,422;321,465;322,29;322,150;322,152;322,196;322,265;322,288;322,293;322,366;322,444;322,659;323,37;323,38;323,178;323,179;323,278;323,293;323,444;323,447;324,51;324,52;324,72;324,198;325,104;325,150;325,167;325,218;325,240;325,273;325,281;325,289;325,412;325,416;325,473;326,1;326,2;326,13;326,33;326,46;326,58;326,68;326,191;326,280;326,295;326,306;326,366;326,414;326,437;326,464;327,24;327,33;327,57;327,66;327,91;327,146;327,148;327,160;327,204;327,286;327,290;327,306;327,360;327,442;327,472;328,88;328,100;328,171;328,228;328,329;328,384;328,396;328,447;329,38;329,49;329,60;329,171;329,182;329,223;329,228;329,243;329,262;329,289;329,294;329,317;329,328;329,375;329,376;330,49;330,94;330,99;330,126;330,165;330,230;330,242;330,356;330,375;330,377;330,445;331,117;331,134;331,147;331,178;331,179;331,244;331,274;331,384;331,435;332,74;332,377;332,461;333,17;333,110;333,141;333,161;333,237;333,335;333,349;333,362;333,497;334,79;334,187;335,65;335,85;335,87;335,95;335,333;335,389;335,401;335,421;336,4;336,64;336,75;336,90;336,149;336,231;336,234;336,341;336,349;336,361;336,367;336,427;336,434;336,440;337,47;337,60;337,138;337,142;337,227;337,228;337,254;337,338;337,363;337,389;337,393;337,410;338,42;338,83;338,242;338,243;338,254;338,289;338,337;338,363;338,389;338,567;339,21;339,81;339,206;339,242;339,254;339,364;339,461;340,50;340,129;340,192;340,344;340,381;340,449;341,14;341,75;341,103;341,144;341,237;341,310;341,336;341,359;341,409;341,434;341,511;342,84;342,218;342,380;342,393;343,1;343,2;343,33;343,66;343,127;343,176;343,183;343,195;343,232;343,245;343,257;343,291;343,361;343,414;343,443;343,476;343,553;344,81;344,82;344,146;344,206;344,221;344,340;344,398;344,436;345,14;345,65;345,144;345,157;345,173;345,203;345,348;345,350;345,362;345,434;345,460;345,469;345,669;346,18;346,45;346,421;347,233;347,302;347,388;348,9;348,23;348,27;348,92;348,174;348,181;348,185;348,345;348,397;348,413;348,426;348,459;349,64;349,75;349,76;349,90;349,131;349,144;349,212;349,231;349,237;349,333;349,336;349,366;349,466;349,536;349,607;350,19;350,23;350,34;350,65;350,75;350,141;350,173;350,237;350,345;350,362;350,544;350,762;351,78;351,162;351,175;351,186;351,260;351,446;351,448;351,466;352,30;352,65;352,95;352,156;352,201;352,316;352,355;352,462;353,160;353,259;353,267;353,282;353,300;353,357;353,373;353,391;353,403;353,504;354,120;354,167;354,203;354,386;354,408;355,30;355,41;355,214;355,233;355,352;355,408;355,448;355,492;356,88;356,99;356,330;356,451;356,456;357,91;357,150;357,174;357,179;357,180;357,259;357,267;357,300;357,353;357,376;357,442;357,504;358,400;358,624;359,23;359,30;359,44;359,212;359,314;359,341;360,10;360,24;360,33;360,55;360,61;360,66;360,148;360,152;360,222;360,239;360,280;360,286;360,312;360,327;360,368;360,380;360,391;360,763;361,1;361,2;361,13;361,55;361,59;361,82;361,89;361,114;361,135;361,170;361,176;361,232;361,239;361,280;361,291;361,306;361,336;361,343;361,366;361,414;361,430;361,442;361,464;361,581;362,157;362,173;362,234;362,333;362,345;362,350;362,575;363,6;363,10;363,83;363,123;363,131;363,142;363,242;363,247;363,254;363,258;363,264;363,277;363,288;363,289;363,309;363,337;363,338;363,364;363,366;363,516;364,71;364,81;364,106;364,119;364,167;364,240;364,242;364,313;364,339;364,363;364,436;364,452;365,26;365,95;365,111;365,231;365,413;365,421;365,428;365,446;365,448;366,46;366,68;366,90;366,114;366,135;366,211;366,219;366,250;366,257;366,265;366,295;366,322;366,326;366,349;366,361;366,363;366,368;366,464;366,473;366,659;366,671;366,748;366,761;367,1;367,10;367,114;367,176;367,266;367,291;367,336;368,152;368,222;368,245;368,266;368,286;368,360;368,366;368,405;368,423;368,442;369,313;369,381;370,4;370,112;370,137;370,175;370,210;370,215;370,253;370,260;370,268;370,275;370,307;370,318;370,446;371,34;371,110;371,175;371,208;371,212;371,275;371,321;371,408;372,8;372,49;372,74;372,144;372,211;372,213;372,250;372,280;372,381;372,457;373,72;373,91;373,300;373,353;373,436;374,4;374,86;374,211;374,280;374,437;374,463;375,4;375,8;375,60;375,111;375,134;375,166;375,228;375,294;375,329;375,330;375,437;376,29;376,162;376,255;376,256;376,258;376,329;376,357;377,4;377,42;377,206;377,250;377,330;377,332;377,436;377,461;378,37;378,150;378,152;378,170;378,174;378,196;378,258;378,277;378,288;378,454;378,459;378,700;379,225;379,281;380,53;380,118;380,297;380,342;380,360;380,393;380,475;381,16;381,170;381,192;381,207;381,235;381,263;381,340;381,369;381,372;381,386;381,403;381,415;381,449;382,77;382,383;382,399;382,403;382,433;383,52;383,91;383,116;383,145;383,160;383,164;383,217;383,259;383,290;383,382;383,403;383,405;383,425;383,427;383,433;383,767;384,15;384,134;384,178;384,179;384,265;384,328;384,331;385,227;386,85;386,120;386,175;386,184;386,188;386,190;386,249;386,354;386,381;386,413;386,429;387,7;387,56;387,84;387,86;387,116;387,230;387,296;387,390;387,445;388,95;388,175;388,181;388,275;388,347;388,421;388,426;388,434;388,462;388,467;388,532;389,12;389,47;389,138;389,145;389,216;389,254;389,255;389,289;389,335;389,337;389,338;389,393;389,461;389,475;390,7;390,36;390,49;390,56;390,61;390,86;390,172;390,209;390,213;390,230;390,250;390,263;390,297;390,387;390,410;390,417;390,445;390,449;390,474;391,113;391,222;391,232;391,239;391,266;391,286;391,312;391,353;391,360;391,406;392,1;392,106;392,159;392,194;392,216;392,304;392,305;392,311;392,313;392,403;392,441;392,455;392,584;393,40;393,98;393,101;393,104;393,136;393,145;393,196;393,289;393,309;393,337;393,342;393,380;393,389;393,403;393,475;393,626;394,51;394,94;394,129;394,131;394,164;394,192;394,194;394,219;394,263;394,415;394,431;394,449;395,35;395,112;395,497;396,170;396,289;396,328;397,47;397,70;397,145;397,150;397,192;397,193;397,348;397,475;398,84;398,158;398,165;398,211;398,213;398,273;398,292;398,344;398,403;398,461;399,382;400,74;400,106;400,192;400,358;401,117;401,207;401,216;401,241;401,313;401,335;401,441;401,455;402,109;402,424;403,49;403,59;403,69;403,91;403,164;403,297;403,353;403,381;403,382;403,383;403,392;403,393;403,398;403,433;403,706;404,82;404,166;404,183;404,206;404,242;404,243;404,271;404,276;404,430;405,34;405,194;405,306;405,368;405,383;405,767;406,1;406,47;406,68;406,166;406,183;406,257;406,391;406,414;406,423;406,457;407,72;408,26;408,102;408,143;408,194;408,214;408,233;408,312;408,354;408,355;408,371;409,20;409,31;409,32;409,65;409,237;409,310;409,341;409,414;409,468;410,4;410,36;410,56;410,63;410,86;410,116;410,165;410,183;410,225;410,250;410,287;410,292;410,337;410,390;410,417;410,437;410,445;410,474;410,730;411,253;411,432;411,440;411,441;412,58;412,96;412,162;412,183;412,196;412,225;412,256;412,273;412,325;412,438;412,459;412,473;412,474;412,610;413,44;413,53;413,85;413,111;413,143;413,175;413,178;413,181;413,188;413,275;413,348;413,365;413,386;414,2;414,42;414,114;414,130;414,160;414,166;414,195;414,204;414,217;414,225;414,257;414,326;414,343;414,361;414,406;414,409;414,436;414,437;414,443;414,457;414,476;415,16;415,50;415,51;415,119;415,129;415,192;415,207;415,235;415,381;415,394;416,130;416,195;416,213;416,221;416,273;416,274;416,325;416,443;417,7;417,36;417,38;417,56;417,63;417,101;417,116;417,165;417,250;417,390;417,410;417,436;417,437;417,445;418,155;418,158;418,283;418,771;419,33;419,259;419,295;420,101;420,178;420,226;420,265;420,447;421,30;421,45;421,48;421,115;421,251;421,335;421,346;421,365;421,388;421,422;421,432;421,440;422,4;422,93;422,115;422,251;422,253;422,320;422,321;422,421;422,460;422,519;422,738;423,1;423,24;423,69;423,124;423,127;423,146;423,148;423,286;423,295;423,306;423,368;423,406;424,14;424,78;424,90;424,92;424,185;424,186;424,189;424,190;424,402;424,448;424,588;424,770;425,259;425,295;425,383;425,433;426,175;426,186;426,188;426,203;426,215;426,275;426,348;426,388;426,475;427,77;427,119;427,246;427,249;427,304;427,336;427,383;427,433;427,504;428,23;428,39;428,78;428,210;428,320;428,365;428,429;429,30;429,186;429,314;429,320;429,386;429,428;430,33;430,57;430,66;430,114;430,144;430,183;430,222;430,239;430,257;430,280;430,281;430,291;430,361;430,404;430,436;430,443;430,464;430,476;431,55;431,84;431,102;431,129;431,131;431,209;431,271;431,276;431,280;431,299;431,394;432,30;432,39;432,41;432,155;432,187;432,251;432,411;432,421;432,557;433,77;433,91;433,119;433,382;433,383;433,403;433,425;433,427;434,53;434,75;434,85;434,87;434,98;434,139;434,141;434,149;434,157;434,158;434,173;434,237;434,283;434,336;434,341;434,345;434,388;434,666;434,744;435,159;435,194;435,240;435,276;435,331;436,42;436,197;436,217;436,225;436,227;436,344;436,364;436,373;436,377;436,414;436,417;436,430;436,443;436,461;436,485;436,613;436,703;436,739;436,751;437,1;437,4;437,116;437,166;437,211;437,326;437,374;437,375;437,410;437,414;437,417;437,474;438,58;438,150;438,162;438,165;438,226;438,256;438,412;438,459;439,16;439,67;439,198;439,298;439,470;440,23;440,26;440,76;440,92;440,143;440,336;440,411;440,421;440,614;440,616;440,666;440,669;440,769;441,72;441,106;441,216;441,285;441,305;441,313;441,392;441,401;441,411;442,13;442,57;442,91;442,127;442,148;442,176;442,213;442,222;442,239;442,259;442,286;442,291;442,300;442,306;442,308;442,327;442,357;442,361;442,368;442,464;443,33;443,158;443,195;443,197;443,222;443,225;443,291;443,343;443,414;443,416;443,430;443,436;443,733;444,196;444,322;444,323;445,7;445,16;445,36;445,56;445,63;445,68;445,84;445,86;445,116;445,230;445,250;445,292;445,330;445,387;445,390;445,410;445,417;445,457;445,474;446,5;446,26;446,87;446,92;446,95;446,109;446,112;446,185;446,260;446,287;446,307;446,351;446,365;446,370;446,466;447,88;447,100;447,171;447,179;447,200;447,252;447,293;447,307;447,323;447,328;447,420;447,453;447,567;448,120;448,189;448,233;448,253;448,256;448,275;448,351;448,355;448,365;448,424;448,473;448,557;449,55;449,59;449,86;449,129;449,192;449,219;449,263;449,340;449,381;449,390;449,394;450,566;451,123;451,131;451,221;451,274;451,305;451,311;451,356;452,167;452,364;453,278;453,447;454,37;454,69;454,104;454,150;454,152;454,170;454,174;454,196;454,258;454,277;454,288;454,378;454,459;454,659;455,106;455,159;455,194;455,216;455,220;455,305;455,311;455,392;455,401;456,46;456,52;456,146;456,206;456,267;456,356;456,461;457,1;457,8;457,96;457,116;457,193;457,223;457,250;457,267;457,277;457,372;457,406;457,414;457,445;457,488;457,507;458,32;458,35;458,44;458,97;458,231;459,11;459,47;459,58;459,162;459,174;459,196;459,247;459,318;459,348;459,378;459,412;459,438;459,454;459,473;459,475;459,700;460,75;460,161;460,234;460,251;460,345;460,422;461,74;461,146;461,206;461,332;461,339;461,377;461,389;461,398;461,436;461,456;462,78;462,85;462,95;462,144;462,161;462,185;462,199;462,283;462,352;462,388;463,32;463,97;463,146;463,374;464,13;464,14;464,33;464,66;464,68;464,130;464,152;464,176;464,183;464,239;464,248;464,280;464,312;464,317;464,326;464,361;464,366;464,430;464,442;464,472;464,610;464,693;464,723;465,20;465,111;465,120;465,321;466,92;466,110;466,260;466,272;466,275;466,349;466,351;466,446;467,41;467,143;467,189;467,190;467,275;467,388;468,409;469,161;469,173;469,345;470,439;471,98;471,117;471,151;471,240;472,1;472,12;472,166;472,176;472,183;472,232;472,240;472,257;472,291;472,327;472,464;473,11;473,47;473,58;473,128;473,136;473,162;473,196;473,225;473,238;473,240;473,255;473,256;473,273;473,325;473,366;473,412;473,448;473,459;474,36;474,49;474,74;474,96;474,134;474,292;474,390;474,410;474,412;474,437;474,445;475,12;475,40;475,104;475,193;475,196;475,259;475,289;475,309;475,380;475,389;475,393;475,397;475,426;475,459;476,1;476,33;476,135;476,144;476,158;476,173;476,282;476,291;476,343;476,414;476,430;477,483;477,486;477,493;477,531;477,571;477,593;477,609;477,610;477,621;477,627;477,640;477,643;477,654;477,662;477,683;477,692;477,693;477,703;477,755;478,484;478,660;478,703;478,719;478,739;479,513;479,517;479,598;479,615;479,629;479,633;479,645;479,650;479,655;479,697;479,720;479,729;479,756;479,765;479,766;480,513;480,535;480,551;480,596;480,634;480,641;480,645;480,688;480,708;480,761;481,37;481,150;481,152;481,513;481,517;481,604;481,629;481,650;481,697;481,729;481,748;482,570;482,634;482,709;483,152;483,477;483,531;483,547;483,593;483,621;483,629;483,640;483,643;483,644;483,662;483,683;483,685;483,692;483,755;484,478;484,485;484,529;484,542;484,570;484,590;484,655;484,739;484,775;485,436;485,484;485,514;485,526;485,529;485,550;485,562;485,597;485,641;485,703;485,704;485,725;485,727;485,739;485,751;486,230;486,477;486,495;486,629;486,640;486,651;487,777;488,204;488,457;488,491;488,534;488,569;488,599;488,600;488,613;488,703;488,708;488,720;488,728;488,730;488,764;488,767;489,530;489,537;489,545;489,748;490,553;490,572;490,574;490,749;490,776;491,488;491,704;491,764;492,216;492,355;492,550;492,570;492,584;492,658;492,759;493,477;493,498;493,499;493,523;493,531;493,555;493,559;493,565;493,652;493,717;493,773;494,577;495,486;495,514;495,524;495,562;495,571;495,592;495,703;495,714;495,750;496,508;496,619;496,623;496,650;496,686;496,697;496,705;496,708;496,770;497,78;497,333;497,395;497,539;497,550;497,568;497,631;497,635;497,694;497,773;498,493;498,505;498,511;498,555;498,587;498,631;498,682;498,731;498,738;498,771;499,493;499,511;499,565;499,666;499,679;499,711;499,724;499,738;499,744;499,771;500,508;500,525;500,528;500,536;500,558;500,559;500,619;500,624;500,637;500,675;500,690;500,694;501,527;501,537;501,730;501,736;502,503;502,507;502,671;503,502;503,507;503,534;503,550;503,554;503,571;503,581;503,593;503,609;503,627;503,640;503,643;503,651;503,662;503,683;503,721;503,760;503,765;503,777;504,69;504,91;504,94;504,224;504,259;504,353;504,357;504,427;504,603;504,709;505,498;505,511;505,587;505,602;505,631;506,540;506,567;506,576;506,577;506,599;506,647;506,677;506,725;506,757;507,457;507,502;507,503;507,609;507,651;507,654;507,683;507,692;507,703;507,777;508,496;508,500;508,528;508,559;508,568;508,614;508,619;508,638;508,667;508,669;508,686;508,690;508,694;508,735;508,752;508,760;509,533;509,564;509,570;509,579;509,583;509,639;509,653;510,21;510,81;510,216;510,516;510,529;510,540;510,606;511,341;511,498;511,499;511,505;511,523;511,555;511,556;511,587;511,588;511,679;511,686;511,724;512,591;512,636;512,651;512,662;512,671;512,683;512,703;512,721;512,733;512,765;513,479;513,480;513,481;513,517;513,598;513,604;513,623;513,629;513,645;513,650;513,697;513,699;513,720;513,729;513,755;513,756;513,766;514,485;514,495;514,524;514,527;514,529;514,567;514,572;514,660;514,663;514,714;514,727;514,736;515,571;515,590;515,592;515,612;515,625;515,660;515,744;515,750;516,56;516,81;516,363;516,510;516,529;517,479;517,481;517,513;517,633;517,645;517,650;517,697;517,728;517,729;518,583;518,653;519,251;519,422;519,523;519,544;519,589;519,616;519,617;519,666;519,667;519,752;519,760;520,528;520,532;520,552;520,559;520,565;520,700;520,718;520,773;521,522;522,521;522,532;522,567;522,614;522,664;522,735;522,769;522,770;523,493;523,511;523,519;523,672;523,686;523,717;523,724;523,734;523,738;523,773;524,495;524,514;524,567;524,572;524,663;524,727;525,500;525,527;525,528;525,557;525,558;525,618;525,619;525,620;525,637;525,673;525,675;525,690;525,712;525,774;526,485;526,565;526,585;526,588;526,677;526,679;526,682;526,686;526,719;526,768;526,771;527,81;527,501;527,514;527,525;527,570;527,595;527,606;527,630;527,691;527,702;527,736;527,753;527,774;528,500;528,508;528,520;528,525;528,544;528,557;528,559;528,565;528,622;528,694;528,718;528,724;528,743;529,484;529,485;529,510;529,514;529,516;529,550;529,573;529,576;529,597;529,599;529,725;529,726;529,736;530,489;530,593;530,621;530,627;530,705;530,722;530,748;531,477;531,483;531,493;531,643;531,644;531,683;531,692;531,696;531,755;532,231;532,234;532,388;532,520;532,522;532,552;532,585;532,588;532,611;532,679;532,686;532,700;532,724;532,762;532,769;533,509;533,578;533,595;533,598;533,599;533,639;533,657;533,705;533,723;533,745;533,753;534,488;534,503;534,618;534,641;534,768;535,227;535,252;535,254;535,480;535,538;535,549;536,110;536,184;536,349;536,500;536,607;536,611;536,665;536,740;537,489;537,501;537,548;537,551;537,581;537,632;538,535;538,608;539,497;539,568;539,618;539,628;539,694;539,743;540,224;540,506;540,510;540,599;540,676;540,728;540,758;541,562;541,613;541,642;541,645;541,689;541,708;541,710;541,713;541,728;541,736;542,484;542,612;542,696;542,714;542,776;543,35;543,78;543,575;543,768;543,771;544,32;544,140;544,350;544,519;544,528;545,489;545,580;545,590;545,621;545,651;545,679;545,722;545,748;546,587;546,611;546,680;546,746;547,118;547,211;547,483;547,570;547,678;547,684;547,722;547,755;547,774;548,537;548,551;548,576;548,581;548,625;548,678;548,777;549,149;549,227;549,252;549,254;549,535;549,554;549,572;549,574;549,727;549,733;550,485;550,492;550,497;550,503;550,529;550,570;550,573;550,581;550,584;550,658;550,663;550,664;550,674;551,480;551,537;551,548;551,563;551,632;551,634;552,520;552,532;552,565;552,585;552,672;552,711;552,724;552,738;552,742;552,743;552,762;552,770;553,235;553,343;553,490;553,567;553,577;553,641;553,663;553,749;554,503;554,549;554,556;554,627;554,636;554,644;554,647;554,651;554,654;554,671;554,703;554,721;554,737;554,777;555,65;555,234;555,493;555,498;555,511;555,556;555,565;555,573;555,587;555,667;555,679;555,746;555,760;555,773;556,139;556,511;556,554;556,555;556,573;556,711;556,743;556,746;557,432;557,448;557,525;557,528;557,559;557,583;557,617;557,622;557,624;557,649;557,675;557,694;557,743;558,500;558,525;558,586;558,611;558,616;558,617;558,619;558,690;558,760;559,493;559,500;559,508;559,520;559,528;559,557;559,565;559,607;559,617;559,686;559,718;559,743;559,770;559,773;560,569;560,616;560,618;560,637;560,770;560,772;561,573;561,602;562,485;562,495;562,541;562,567;562,613;562,668;562,713;562,714;562,727;563,551;563,569;563,579;563,583;563,626;563,661;563,667;563,673;563,702;563,720;563,767;564,509;564,583;564,615;564,618;564,624;564,653;565,493;565,499;565,520;565,526;565,528;565,552;565,555;565,559;565,602;565,631;565,635;565,672;565,738;565,771;566,450;566,665;566,769;567,338;567,447;567,506;567,514;567,522;567,524;567,553;567,562;567,576;567,577;567,597;567,605;567,663;567,668;567,682;567,727;567,757;568,497;568,508;568,539;568,619;568,628;568,656;568,690;568,735;568,752;568,762;569,42;569,488;569,560;569,563;569,618;569,661;569,701;570,482;570,484;570,492;570,509;570,527;570,547;570,550;570,573;570,590;570,603;570,653;570,713;570,775;571,477;571,495;571,503;571,515;571,609;571,610;571,627;571,640;571,662;571,683;571,693;571,721;571,750;572,490;572,514;572,524;572,549;572,574;572,670;572,684;572,727;573,529;573,550;573,555;573,556;573,561;573,570;573,587;573,682;573,724;573,746;573,773;574,490;574,549;574,572;574,713;574,727;574,741;575,97;575,173;575,270;575,362;575,543;575,631;575,670;575,724;575,743;575,768;576,506;576,529;576,548;576,567;576,580;576,660;576,663;576,678;576,704;576,727;576,733;577,494;577,506;577,553;577,567;577,599;577,725;577,777;578,533;578,595;578,599;578,639;578,641;578,705;578,720;578,723;578,767;579,509;579,563;579,596;579,606;579,670;580,545;580,576;580,605;580,609;580,659;580,663;580,678;580,709;580,759;580,764;581,68;581,149;581,361;581,503;581,537;581,548;581,550;581,647;581,677;581,678;581,725;581,728;581,777;582,648;582,732;582,763;583,509;583,518;583,557;583,563;583,564;583,632;583,653;583,741;584,194;584,216;584,392;584,492;584,550;584,594;584,658;584,759;584,767;585,526;585,532;585,552;585,672;585,679;585,711;585,762;586,558;586,772;587,498;587,505;587,511;587,546;587,555;587,573;587,731;587,773;588,185;588,424;588,511;588,526;588,532;588,635;588,716;588,771;589,519;589,617;589,666;589,669;589,695;589,718;589,752;589,760;589,770;590,484;590,515;590,545;590,570;590,612;590,652;590,763;590,765;591,512;591,703;591,710;591,728;591,737;591,745;591,749;591,761;592,495;592,515;592,660;592,713;592,750;593,477;593,483;593,503;593,530;593,609;593,610;593,643;593,644;593,662;593,683;593,692;593,693;593,699;593,703;593,723;594,584;594,639;594,642;594,658;595,527;595,533;595,578;595,599;595,691;595,705;595,745;596,52;596,480;596,579;596,605;596,630;596,736;597,485;597,529;597,567;597,703;597,727;597,739;597,751;598,479;598,513;598,533;598,599;598,604;598,645;598,697;598,705;598,729;598,756;598,758;599,57;599,488;599,506;599,529;599,533;599,540;599,577;599,578;599,595;599,598;599,639;599,641;599,642;599,645;599,657;599,761;599,764;599,766;600,488;600,701;600,708;601,651;601,681;601,753;601,768;602,505;602,561;602,565;602,636;602,682;602,744;603,504;603,570;603,625;603,655;604,481;604,513;604,598;604,633;604,639;604,645;604,650;604,697;604,766;605,567;605,580;605,596;605,608;605,689;605,754;605,756;606,510;606,527;606,579;606,630;606,638;606,655;606,736;606,747;606,754;606,767;607,97;607,184;607,205;607,234;607,248;607,317;607,349;607,536;607,559;607,676;607,716;607,771;608,538;608,605;608,630;608,661;608,701;609,477;609,503;609,507;609,571;609,580;609,593;609,627;609,651;609,662;609,683;609,721;609,722;610,183;610,412;610,464;610,477;610,571;610,593;610,621;610,643;610,644;610,652;610,662;610,692;610,693;610,765;611,532;611,536;611,546;611,558;611,614;611,619;611,622;611,690;611,712;612,515;612,542;612,590;612,696;612,755;613,436;613,488;613,541;613,562;613,634;613,668;613,688;613,708;613,754;613,764;613,766;614,108;614,156;614,440;614,508;614,522;614,611;614,616;614,622;614,735;615,479;615,564;615,618;615,632;615,646;615,653;615,707;615,708;615,745;616,23;616,97;616,440;616,519;616,558;616,560;616,614;616,666;616,718;616,760;617,519;617,557;617,558;617,559;617,589;617,628;617,656;617,695;617,752;618,525;618,534;618,539;618,560;618,564;618,569;618,615;618,624;618,646;618,675;619,496;619,500;619,508;619,525;619,558;619,568;619,611;619,622;619,634;619,690;619,712;619,745;620,131;620,525;620,626;620,632;620,701;620,737;621,477;621,483;621,530;621,545;621,610;621,626;621,683;621,696;621,710;621,722;621,737;621,748;621,755;621,761;622,528;622,557;622,611;622,614;622,619;622,637;622,694;623,496;623,513;623,629;623,650;623,697;623,699;623,705;623,720;624,358;624,500;624,557;624,564;624,618;624,628;624,642;624,675;624,694;624,741;624,764;625,515;625,548;625,603;625,670;625,678;625,684;626,393;626,563;626,620;626,621;626,663;626,689;626,701;626,732;626,756;627,477;627,503;627,530;627,554;627,571;627,609;627,629;628,539;628,568;628,617;628,624;628,632;628,634;628,694;628,695;629,479;629,481;629,483;629,486;629,513;629,623;629,627;629,651;629,720;629,721;629,755;629,756;629,766;630,527;630,596;630,606;630,608;630,702;630,704;630,736;630,742;631,497;631,498;631,505;631,565;631,575;631,682;631,700;631,724;631,768;632,114;632,537;632,551;632,583;632,615;632,620;632,628;632,634;632,653;632,708;632,719;632,723;632,729;632,748;632,756;632,765;632,766;632,774;633,479;633,517;633,604;633,645;633,663;633,689;633,728;633,756;633,766;634,124;634,480;634,482;634,551;634,613;634,619;634,628;634,632;634,653;634,661;634,745;634,767;635,497;635,565;635,588;635,664;635,700;635,738;635,768;635,771;636,512;636,554;636,602;636,654;636,703;636,732;636,733;637,500;637,525;637,560;637,622;637,664;637,665;637,666;637,769;638,284;638,508;638,606;638,667;638,695;638,752;639,509;639,533;639,578;639,594;639,599;639,604;639,641;639,642;639,657;639,723;639,735;640,477;640,483;640,486;640,503;640,571;640,643;640,644;640,651;640,662;640,683;640,692;640,755;641,480;641,485;641,534;641,553;641,578;641,599;641,639;641,715;641,728;641,733;642,541;642,594;642,599;642,624;642,639;642,653;642,657;642,658;642,705;642,745;642,753;643,477;643,483;643,503;643,531;643,593;643,610;643,640;643,644;643,683;643,693;643,755;644,483;644,531;644,554;644,593;644,610;644,640;644,643;644,651;644,662;644,683;644,685;644,692;644,693;644,721;644,748;644,755;644,763;645,479;645,480;645,513;645,517;645,541;645,598;645,599;645,604;645,633;645,650;645,689;645,727;645,728;645,729;645,756;645,766;646,615;646,618;646,706;647,506;647,554;647,581;647,677;647,692;647,725;647,733;647,751;647,754;647,757;647,777;648,582;648,732;649,557;650,0;650,479;650,481;650,496;650,513;650,517;650,604;650,623;650,645;650,697;650,699;650,720;650,729;650,730;650,756;650,766;651,486;651,503;651,507;651,512;651,545;651,554;651,601;651,609;651,629;651,640;651,644;651,671;651,676;651,683;651,693;651,696;651,723;651,755;651,761;651,765;652,493;652,590;652,610;652,693;653,509;653,518;653,564;653,570;653,583;653,615;653,632;653,634;653,642;653,736;653,741;653,742;654,477;654,507;654,554;654,636;654,683;654,693;654,721;654,722;654,733;655,479;655,484;655,603;655,606;656,568;656,617;656,767;657,533;657,599;657,639;657,642;657,658;657,745;657,753;658,207;658,492;658,550;658,584;658,594;658,642;658,657;658,753;658,759;658,775;659,150;659,174;659,209;659,211;659,250;659,322;659,366;659,454;659,580;660,478;660,514;660,515;660,576;660,592;660,663;661,563;661,569;661,608;661,634;661,720;662,477;662,483;662,503;662,512;662,571;662,593;662,609;662,610;662,640;662,644;662,683;662,692;662,693;662,765;663,514;663,524;663,550;663,553;663,567;663,576;663,580;663,626;663,633;663,660;663,674;663,676;663,689;663,698;663,733;663,742;663,745;663,749;663,756;663,775;664,522;664,550;664,635;664,637;664,669;664,731;664,769;664,770;665,536;665,566;665,637;665,740;665,769;666,30;666,144;666,186;666,434;666,440;666,499;666,519;666,589;666,616;666,637;666,679;666,738;666,752;666,771;667,508;667,519;667,555;667,563;667,638;667,735;667,743;667,770;668,562;668,567;668,613;668,727;668,736;668,742;668,754;669,34;669,188;669,345;669,440;669,508;669,589;669,664;670,572;670,575;670,579;670,625;670,678;670,684;670,688;670,708;670,724;671,366;671,502;671,512;671,554;671,651;671,703;671,719;671,727;671,761;672,523;672,552;672,565;672,585;672,679;672,686;672,718;672,773;673,525;673,563;674,131;674,305;674,550;674,663;674,684;674,775;675,500;675,525;675,557;675,618;675,624;676,61;676,540;676,607;676,651;676,663;676,708;677,506;677,526;677,581;677,647;677,725;677,739;677,751;677,777;678,547;678,548;678,576;678,580;678,581;678,625;678,670;679,499;679,511;679,526;679,532;679,545;679,555;679,585;679,666;679,672;679,682;679,686;679,711;679,718;679,724;679,738;679,739;679,743;679,771;680,546;680,768;681,601;682,498;682,526;682,567;682,573;682,602;682,631;682,679;682,724;682,738;682,771;682,773;683,477;683,483;683,503;683,507;683,512;683,531;683,571;683,593;683,609;683,621;683,640;683,643;683,644;683,651;683,654;683,662;683,685;683,692;683,693;683,746;683,755;683,765;684,50;684,259;684,547;684,572;684,625;684,670;684,674;685,483;685,644;685,683;685,714;685,755;685,763;686,97;686,496;686,508;686,511;686,523;686,526;686,532;686,559;686,672;686,679;686,746;686,771;687,734;687,740;688,480;688,613;688,670;688,708;689,541;689,605;689,626;689,633;689,645;689,663;689,756;689,766;690,500;690,508;690,525;690,558;690,568;690,611;690,619;690,694;690,712;690,771;691,130;691,132;691,527;691,595;691,732;692,477;692,483;692,507;692,531;692,593;692,610;692,640;692,644;692,647;692,662;692,683;692,725;692,755;693,183;693,464;693,477;693,571;693,593;693,610;693,643;693,644;693,651;693,652;693,654;693,662;693,683;693,721;693,755;694,497;694,500;694,508;694,528;694,539;694,557;694,622;694,624;694,628;694,690;694,735;694,760;695,589;695,617;695,628;695,638;695,735;695,752;696,531;696,542;696,612;696,621;696,651;696,755;697,479;697,481;697,496;697,513;697,517;697,598;697,604;697,623;697,650;697,720;697,728;697,729;697,730;697,766;698,663;699,513;699,593;699,623;699,650;699,705;699,708;699,728;700,78;700,83;700,151;700,278;700,378;700,459;700,520;700,532;700,631;700,635;701,569;701,600;701,608;701,620;701,626;702,527;702,563;702,630;702,736;703,436;703,477;703,478;703,485;703,488;703,495;703,507;703,512;703,554;703,591;703,593;703,597;703,636;703,671;703,719;703,727;703,733;703,737;703,761;704,52;704,485;704,491;704,576;704,630;705,496;705,530;705,533;705,578;705,595;705,598;705,623;705,642;705,699;705,723;705,745;705,753;706,49;706,403;706,646;707,615;708,480;708,488;708,496;708,541;708,600;708,613;708,615;708,632;708,670;708,676;708,688;708,699;708,723;708,729;708,741;708,766;709,482;709,504;709,580;709,733;709,749;710,541;710,591;710,621;710,737;711,115;711,499;711,552;711,556;711,585;711,679;711,716;712,525;712,611;712,619;712,690;713,541;713,562;713,570;713,574;713,592;714,495;714,514;714,542;714,562;714,685;715,641;716,588;716,607;716,711;716,762;716,771;717,493;717,523;717,762;718,270;718,303;718,520;718,528;718,559;718,589;718,616;718,672;718,679;718,724;718,743;718,770;718,773;719,478;719,526;719,632;719,671;719,703;719,722;719,777;720,479;720,488;720,513;720,563;720,578;720,623;720,629;720,650;720,661;720,697;720,723;720,730;721,68;721,503;721,512;721,554;721,571;721,609;721,629;721,644;721,654;721,693;721,737;721,765;721,777;722,530;722,545;722,547;722,609;722,621;722,654;722,719;722,761;722,774;723,113;723,183;723,464;723,533;723,578;723,593;723,632;723,639;723,651;723,705;723,708;723,720;723,766;724,499;724,511;724,523;724,528;724,532;724,552;724,573;724,575;724,631;724,670;724,679;724,682;724,718;724,743;724,768;724,771;724,773;725,485;725,506;725,529;725,577;725,581;725,647;725,677;725,692;725,751;726,529;726,749;726,776;727,485;727,514;727,524;727,549;727,562;727,567;727,572;727,574;727,576;727,597;727,645;727,668;727,671;727,703;727,733;727,739;727,751;728,488;728,517;728,540;728,541;728,581;728,591;728,633;728,641;728,645;728,697;728,699;728,730;728,758;728,761;728,764;729,479;729,481;729,513;729,517;729,598;729,632;729,645;729,650;729,697;729,708;730,225;730,410;730,488;730,501;730,650;730,697;730,720;730,728;731,498;731,587;731,664;732,582;732,626;732,636;732,648;732,691;733,443;733,512;733,549;733,576;733,636;733,641;733,647;733,654;733,663;733,703;733,709;733,727;733,761;734,523;734,687;734,740;735,508;735,522;735,568;735,614;735,639;735,667;735,694;735,695;735,752;736,501;736,514;736,527;736,529;736,541;736,596;736,606;736,630;736,653;736,668;736,702;736,751;737,554;737,591;737,620;737,621;737,703;737,710;737,721;738,422;738,498;738,499;738,523;738,552;738,565;738,635;738,666;738,679;738,682;738,771;739,436;739,478;739,484;739,485;739,597;739,677;739,679;739,727;739,751;739,761;739,775;740,536;740,665;740,687;740,734;740,769;741,574;741,583;741,624;741,653;741,708;742,552;742,630;742,653;742,663;742,668;743,186;743,190;743,528;743,539;743,552;743,556;743,557;743,559;743,575;743,667;743,679;743,718;743,724;743,773;744,317;744,434;744,499;744,515;744,602;744,762;745,101;745,533;745,591;745,595;745,615;745,619;745,634;745,642;745,657;745,663;745,705;745,749;745,753;746,546;746,555;746,556;746,573;746,683;746,686;746,769;747,606;748,150;748,152;748,196;748,366;748,481;748,489;748,530;748,545;748,621;748,632;748,644;749,490;749,553;749,591;749,663;749,709;749,726;749,745;749,759;750,495;750,515;750,571;750,592;751,436;751,485;751,597;751,647;751,677;751,725;751,727;751,736;751,739;751,754;751,775;752,508;752,519;752,568;752,589;752,617;752,638;752,666;752,695;752,735;752,753;752,760;753,527;753,533;753,601;753,642;753,657;753,658;753,705;753,745;753,752;754,252;754,605;754,606;754,613;754,647;754,668;754,751;755,477;755,483;755,513;755,531;755,547;755,612;755,621;755,629;755,640;755,643;755,644;755,651;755,683;755,685;755,692;755,693;755,696;755,763;755,765;756,479;756,513;756,598;756,605;756,626;756,629;756,632;756,633;756,645;756,650;756,663;756,689;757,506;757,567;757,647;758,540;758,598;758,728;759,216;759,492;759,580;759,584;759,658;759,749;760,503;760,508;760,519;760,555;760,558;760,589;760,616;760,694;760,752;761,366;761,480;761,591;761,599;761,621;761,651;761,671;761,703;761,722;761,728;761,733;761,739;762,350;762,532;762,552;762,568;762,585;762,716;762,717;762,744;762,770;763,360;763,582;763,590;763,644;763,685;763,755;764,191;764,488;764,491;764,580;764,599;764,613;764,624;764,728;765,479;765,503;765,512;765,590;765,610;765,632;765,651;765,662;765,683;765,721;765,755;766,479;766,513;766,599;766,604;766,613;766,629;766,632;766,633;766,645;766,650;766,689;766,697;766,708;766,723;767,194;767,241;767,383;767,405;767,488;767,563;767,578;767,584;767,606;767,634;767,656;768,526;768,534;768,543;768,575;768,601;768,631;768,635;768,680;768,724;769,440;769,522;769,532;769,566;769,637;769,664;769,665;769,740;769,746;770,139;770,189;770,424;770,496;770,522;770,552;770,559;770,560;770,589;770,664;770,667;770,718;770,762;770,771;770,773;771,111;771,301;771,418;771,498;771,499;771,526;771,543;771,565;771,588;771,607;771,635;771,666;771,679;771,682;771,686;771,690;771,716;771,724;771,738;771,770;772,560;772,586;773,493;773,497;773,520;773,523;773,555;773,559;773,573;773,587;773,672;773,682;773,718;773,724;773,743;773,770;774,525;774,527;774,547;774,632;774,722;775,484;775,570;775,658;775,663;775,674;775,739;775,751;776,490;776,542;776,726;777,487;777,503;777,507;777,548;777,554;777,577;777,581;777,647;777,677;777,719;777,721]; end ================================================ FILE: src/matlab/experimental/graph_classification/get_adhealth_edges44.m ================================================ function edges = get_adhealth_edges44() edges = [0,257;0,451;0,528;0,937;1,392;1,544;2,62;2,65;2,112;2,287;2,423;2,474;2,505;2,583;2,615;2,632;2,664;3,17;3,36;3,343;3,412;3,472;3,483;3,625;4,140;4,224;4,318;4,493;5,6;5,123;5,143;5,170;5,255;5,257;5,314;5,386;6,5;6,73;7,514;8,11;8,63;8,135;8,142;8,167;8,171;8,290;8,393;8,397;8,504;8,582;8,664;9,510;9,591;10,190;10,222;10,324;10,336;10,348;10,360;10,443;10,456;10,476;10,549;11,8;11,60;11,167;11,397;11,448;11,504;12,13;12,24;12,120;12,234;12,328;12,346;12,386;12,466;12,554;12,627;13,12;13,15;13,326;13,329;13,649;13,774;14,297;14,464;14,465;14,489;14,556;14,633;15,13;15,16;15,73;15,385;15,413;15,457;15,484;15,562;15,607;15,890;16,15;16,21;16,23;16,87;16,88;16,134;16,135;16,373;16,428;16,484;16,525;16,571;16,572;16,605;17,3;17,36;17,52;17,187;17,198;17,340;17,353;17,443;17,586;17,595;18,103;18,111;18,187;18,195;18,202;18,222;18,345;18,487;18,595;18,633;18,788;19,58;19,313;19,365;20,67;20,180;20,184;20,217;20,442;20,445;20,587;20,590;20,594;21,16;21,287;21,339;21,358;21,428;21,447;21,522;21,557;21,567;21,582;22,67;22,75;22,294;22,300;22,313;22,353;22,402;22,533;22,635;22,668;23,16;23,88;23,287;23,525;23,559;23,563;23,567;23,569;24,12;24,267;24,354;24,413;24,437;24,561;24,580;24,582;24,627;25,133;25,175;25,295;25,333;25,359;25,412;25,425;25,439;25,467;25,535;25,589;25,663;26,44;26,72;26,128;26,148;26,342;26,463;26,464;26,467;26,476;26,533;26,546;26,575;27,85;27,129;27,175;27,189;27,209;27,215;27,286;27,327;27,441;27,517;27,534;27,539;27,600;28,83;28,105;28,187;28,211;28,274;28,275;28,282;28,391;28,440;28,453;28,469;28,482;28,527;28,583;28,604;28,608;28,631;29,126;29,150;29,179;29,278;29,302;29,489;29,535;29,597;29,618;29,653;30,117;30,216;30,385;30,437;30,632;31,387;31,580;32,134;32,338;32,641;33,59;33,115;33,126;33,166;33,252;33,370;33,458;33,584;33,626;34,181;34,237;34,246;34,252;34,321;34,634;35,68;35,70;35,322;35,355;35,619;36,3;36,17;36,89;36,133;36,190;36,195;36,294;36,348;36,444;36,456;36,533;36,558;36,590;36,595;36,660;37,39;37,64;37,90;37,124;37,288;37,373;37,497;37,540;37,582;37,606;38,166;38,247;38,367;38,370;38,402;38,629;38,636;39,37;39,46;39,116;39,144;39,145;39,153;39,251;39,388;39,540;39,560;39,605;40,272;40,367;40,475;40,482;41,59;41,119;41,164;41,289;41,321;41,359;41,435;41,444;41,490;42,72;42,109;42,160;42,164;42,184;42,194;42,241;42,301;42,418;43,132;43,247;43,256;43,309;43,551;43,604;44,26;44,72;44,91;44,104;44,128;44,148;44,194;44,418;44,432;44,449;44,463;44,467;44,494;45,233;45,262;45,406;45,492;45,553;45,669;46,39;46,91;46,183;46,326;46,367;46,427;46,652;47,87;47,273;47,304;47,413;47,459;47,507;47,520;47,523;47,547;47,577;48,254;48,407;48,427;48,522;48,536;48,547;48,577;49,51;49,69;49,320;49,553;49,558;50,340;50,367;50,441;50,458;50,468;50,517;50,527;50,586;50,626;50,633;51,49;51,99;51,118;51,553;51,603;52,17;52,96;52,127;52,129;52,176;52,187;52,234;52,324;52,327;52,516;52,595;52,625;53,210;53,262;53,280;53,530;53,542;53,624;53,661;54,67;54,460;54,637;55,89;55,184;55,254;55,358;55,491;55,592;55,614;55,616;55,650;55,659;55,664;56,133;56,206;56,207;56,308;56,323;56,325;56,445;56,468;56,528;57,92;57,145;57,526;57,622;58,19;58,69;58,85;58,175;58,294;58,460;58,635;58,646;59,33;59,41;59,283;59,295;59,371;60,11;60,108;60,153;60,172;60,242;60,354;60,384;60,436;60,480;60,564;60,641;61,499;62,2;62,230;63,8;63,64;63,135;63,162;63,230;63,271;63,397;63,491;63,607;63,611;64,37;64,63;64,157;64,158;64,167;64,232;64,254;64,276;64,486;64,503;64,520;64,557;64,649;65,2;65,278;65,663;66,134;66,338;66,390;67,20;67,22;67,54;67,221;67,222;67,245;67,353;67,460;67,476;67,492;67,533;67,603;68,35;68,198;68,259;68,264;68,987;69,49;69,58;69,249;69,320;70,35;70,164;70,213;70,322;70,453;70,454;70,608;71,76;71,99;71,114;71,128;71,313;71,365;71,367;71,467;72,26;72,42;72,44;72,121;72,160;72,163;72,179;72,197;72,245;72,418;72,449;72,451;72,662;73,6;73,15;73,89;73,226;73,298;73,304;73,305;73,405;73,406;73,500;73,568;74,205;74,293;74,376;74,508;75,22;75,76;75,313;75,460;75,603;75,635;75,646;75,668;76,71;76,75;76,208;76,280;76,313;76,365;76,367;77,158;77,161;77,261;77,277;77,602;78,90;78,329;78,606;79,502;79,536;79,665;80,126;80,134;80,157;80,242;80,397;80,504;80,567;80,613;81,86;81,117;81,130;81,156;81,185;81,284;81,358;81,384;81,401;81,487;81,519;81,520;81,598;82,150;82,205;82,207;82,308;82,535;82,966;83,28;83,85;83,105;83,175;83,211;83,274;83,319;83,383;83,453;83,456;83,515;83,603;83,659;84,293;85,27;85,58;85,83;85,104;85,129;85,175;85,215;85,217;85,279;85,348;85,460;85,543;85,600;86,81;86,185;86,298;86,326;86,384;86,533;87,16;87,47;87,89;87,167;87,185;87,214;87,273;87,284;87,305;87,413;87,422;87,457;87,484;87,520;87,525;87,568;88,16;88,23;88,428;88,484;88,525;89,36;89,55;89,73;89,87;89,232;89,234;89,236;89,328;89,358;89,381;89,410;89,446;89,568;89,569;89,625;90,37;90,78;90,256;90,310;90,329;90,580;90,606;91,44;91,46;91,114;91,159;91,206;91,210;91,262;91,349;91,365;91,449;91,542;91,638;91,661;91,662;92,57;92,240;92,380;92,561;92,573;92,622;93,115;93,154;93,288;94,150;94,179;94,444;94,489;94,538;94,597;94,631;94,648;95,620;96,52;96,187;96,225;96,586;96,595;97,138;97,143;97,236;97,317;97,571;97,605;97,615;98,133;98,165;98,203;98,333;98,399;98,439;98,444;98,445;98,579;98,591;99,51;99,71;99,114;99,365;99,467;99,530;99,635;100,104;100,166;100,252;100,494;100,596;100,1012;101,138;101,401;101,540;102,225;102,309;102,656;103,18;103,111;103,213;103,345;103,352;103,487;103,579;103,610;103,703;104,44;104,85;104,100;104,129;104,234;104,245;104,382;104,411;104,442;104,443;104,466;104,494;104,539;105,28;105,83;105,211;105,274;105,275;105,383;105,408;105,435;105,440;105,453;105,579;105,608;105,631;105,659;105,811;105,1007;106,211;106,212;106,266;106,388;106,454;106,659;107,121;107,133;107,150;107,177;107,200;107,312;107,322;107,376;107,445;107,591;107,637;107,660;107,663;108,60;108,124;108,158;108,172;108,226;108,236;108,347;108,389;108,452;108,507;109,42;109,352;109,460;109,513;109,579;109,635;110,263;110,444;111,18;111,103;111,367;111,579;111,610;112,2;112,378;112,531;112,541;113,116;113,363;113,452;113,632;114,71;114,91;114,99;114,115;114,172;114,204;114,335;114,365;114,530;114,638;115,33;115,93;115,114;115,127;115,274;115,334;115,464;115,512;115,583;115,659;116,39;116,113;116,236;116,261;116,363;116,379;116,395;116,571;116,580;116,615;117,30;117,81;117,185;117,363;117,385;117,403;117,426;117,427;117,428;117,450;117,519;117,523;117,592;117,611;117,633;118,51;118,150;118,321;118,340;118,439;118,461;118,527;118,529;118,642;119,41;119,278;119,292;119,345;119,411;119,439;119,470;119,576;119,693;120,12;120,251;120,255;120,315;120,361;120,407;120,428;120,459;120,466;120,500;120,523;120,526;120,602;120,627;121,72;121,107;121,160;121,295;121,355;121,470;121,478;121,938;122,275;122,430;122,435;122,456;122,468;122,515;122,583;122,631;123,5;123,157;123,404;123,468;123,478;123,479;123,480;123,527;123,585;123,610;123,633;123,649;123,657;123,710;124,37;124,108;124,157;124,232;124,330;124,388;124,429;124,459;124,647;124,723;125,154;125,191;125,221;125,524;125,562;126,29;126,33;126,80;126,370;126,478;126,610;127,52;127,115;127,163;127,190;127,207;127,327;127,408;127,441;127,456;127,512;127,595;127,608;128,26;128,44;128,71;128,148;128,463;128,467;128,552;128,575;128,635;129,27;129,52;129,85;129,104;129,151;129,215;129,279;129,327;129,476;129,539;130,81;130,188;130,245;130,385;130,392;130,393;130,419;130,520;130,573;131,204;131,473;131,534;131,550;131,570;132,43;132,411;133,25;133,36;133,56;133,98;133,107;133,195;133,203;133,245;133,445;133,535;133,591;133,595;133,598;133,648;133,663;134,16;134,32;134,66;134,80;134,231;134,242;134,338;134,431;134,554;134,613;135,8;135,16;135,63;135,173;135,214;135,271;135,285;135,389;135,393;135,397;135,410;135,422;135,571;136,311;136,598;137,191;138,97;138,101;138,317;138,401;139,216;139,341;139,501;139,561;140,4;140,146;140,427;140,501;140,536;140,606;141,192;141,538;141,639;142,8;142,290;142,433;142,507;142,522;143,5;143,97;143,201;143,298;143,299;143,381;143,405;143,407;143,427;143,522;143,602;144,39;144,251;144,540;144,593;145,39;145,57;145,429;145,526;145,544;146,140;146,501;146,523;146,540;146,632;147,250;147,276;147,299;147,407;147,664;148,26;148,44;148,128;148,151;148,164;148,229;148,249;148,278;148,319;148,463;148,467;148,496;149,283;149,439;150,29;150,82;150,94;150,107;150,118;150,195;150,209;150,321;150,489;150,597;150,669;150,1015;151,129;151,148;151,233;151,247;151,445;151,494;151,552;151,574;151,663;152,237;152,247;152,509;152,545;152,594;152,634;153,39;153,60;154,93;154,125;154,191;154,361;154,1051;155,188;155,236;155,380;155,393;155,395;155,421;155,422;155,429;155,497;155,504;155,592;155,613;155,994;156,81;156,254;156,304;156,518;156,557;156,657;157,64;157,80;157,123;157,124;157,161;157,162;157,210;157,231;157,271;157,337;157,372;157,497;157,504;157,578;158,64;158,77;158,108;158,161;158,162;158,170;158,231;158,450;158,452;158,554;159,91;159,163;159,194;159,432;159,449;159,454;159,469;159,494;159,638;159,662;160,42;160,72;160,121;160,164;160,165;160,184;160,289;160,301;160,302;160,322;160,372;160,418;160,435;160,449;160,463;160,581;160,621;160,685;161,77;161,157;161,158;161,162;161,170;161,227;161,231;161,307;161,337;161,362;161,431;161,452;161,554;162,63;162,157;162,158;162,161;162,170;162,227;162,231;162,256;162,341;162,433;162,606;162,731;163,72;163,127;163,159;163,175;163,194;163,279;163,280;163,432;163,494;163,570;163,638;163,936;163,938;164,41;164,42;164,70;164,148;164,160;164,289;164,322;164,418;164,449;164,662;164,685;165,98;165,160;165,213;165,263;165,301;165,316;165,353;165,399;165,591;165,597;165,618;165,621;165,782;166,33;166,38;166,100;166,235;166,252;166,333;166,370;166,430;166,584;166,596;166,629;167,8;167,11;167,64;167,87;167,174;167,253;167,397;167,486;167,504;167,520;168,202;168,282;168,374;168,404;168,430;168,444;168,468;168,487;168,549;168,579;168,595;168,633;168,644;169,390;170,5;170,158;170,161;170,162;170,243;170,255;170,314;170,537;171,8;172,60;172,108;172,114;172,226;172,277;172,349;172,354;172,384;172,450;172,480;172,507;172,632;173,135;173,214;173,250;173,388;173,514;173,555;173,580;173,592;173,658;174,167;175,25;175,27;175,58;175,83;175,85;175,163;175,202;175,215;175,217;175,253;175,279;175,319;175,348;175,460;175,515;175,516;175,539;175,543;175,586;175,600;176,52;176,187;176,223;176,245;176,324;176,465;176,595;176,660;177,107;177,206;177,295;177,312;177,376;177,879;178,272;179,29;179,72;179,94;179,181;179,199;179,205;179,485;179,494;179,552;179,762;179,1075;180,20;180,184;181,34;181,179;181,249;181,542;182,297;183,46;183,261;183,375;183,393;183,410;183,452;183,479;183,518;183,560;183,573;183,630;184,20;184,42;184,55;184,160;184,180;184,302;184,418;184,587;184,715;185,81;185,86;185,87;185,117;185,284;185,295;185,299;185,303;185,384;185,424;185,427;185,428;185,503;185,519;186,322;186,331;186,355;187,17;187,18;187,28;187,52;187,96;187,176;187,215;187,222;187,324;187,327;187,336;187,348;187,441;187,516;187,543;187,586;187,595;187,625;188,130;188,155;188,380;188,388;188,446;188,490;189,27;189,217;189,252;189,279;189,280;189,286;189,348;189,382;189,442;189,516;189,543;189,587;189,590;189,600;189,656;190,10;190,36;190,127;190,324;190,340;190,476;190,483;190,595;190,642;191,125;191,137;191,154;191,221;191,299;191,381;191,424;191,427;191,524;191,547;191,562;191,590;192,141;192,216;192,250;192,255;192,265;192,330;192,334;192,630;192,665;193,220;193,280;193,287;193,333;193,335;193,516;193,567;193,596;194,42;194,44;194,159;194,163;194,264;194,449;194,453;194,454;194,463;194,467;194,530;194,662;195,18;195,36;195,133;195,150;195,319;195,515;195,583;195,595;195,628;196,338;196,435;196,537;196,538;196,578;196,602;196,619;196,654;196,714;196,1066;197,72;197,371;197,545;197,662;198,17;198,68;198,210;198,259;198,264;198,349;198,412;198,461;198,641;198,662;199,179;199,247;199,327;199,335;199,589;199,595;199,663;199,669;200,107;201,143;201,273;201,298;201,299;201,346;201,363;201,381;201,627;202,18;202,168;202,175;202,266;202,343;202,600;202,610;202,633;203,98;203,133;203,335;203,399;203,445;203,1088;204,114;204,131;204,206;204,473;204,534;204,550;205,74;205,82;205,179;205,289;205,293;205,376;205,400;205,470;205,489;205,508;205,556;205,648;206,56;206,91;206,177;206,204;206,306;206,391;206,454;206,588;206,638;206,661;207,56;207,82;207,127;207,308;207,323;207,374;207,535;207,603;207,623;208,76;208,650;208,1124;209,27;209,150;209,215;209,233;209,274;209,343;209,412;209,425;209,443;209,451;209,458;209,483;209,495;209,512;209,517;209,558;209,626;209,643;210,53;210,91;210,157;210,198;210,322;210,379;210,449;210,454;210,618;210,624;210,661;211,28;211,83;211,105;211,106;211,233;211,266;211,275;211,383;211,440;211,453;211,498;211,603;211,631;211,642;211,659;212,106;212,259;212,266;212,316;212,454;213,70;213,103;213,165;213,263;213,322;213,331;213,345;213,548;213,576;213,618;213,619;213,631;214,87;214,135;214,173;214,265;214,268;214,305;214,334;214,419;214,580;214,582;215,27;215,85;215,129;215,175;215,187;215,209;215,279;215,324;215,327;215,408;215,442;215,481;215,517;215,539;215,587;215,590;215,600;215,626;216,30;216,139;216,192;216,260;216,265;216,310;216,380;216,407;216,592;216,664;217,20;217,85;217,175;217,189;217,279;217,348;217,539;217,600;218,301;218,350;218,435;218,489;218,618;218,721;218,964;218,1045;218,1072;219,487;220,193;220,335;220,394;220,430;220,449;220,466;220,516;220,590;220,596;220,661;221,67;221,125;221,191;221,226;221,254;221,405;221,524;221,547;221,562;222,10;222,18;222,67;222,187;222,320;222,353;222,476;222,496;222,533;222,633;222,635;223,176;223,263;223,274;223,302;223,327;223,414;223,443;223,477;223,604;223,625;223,643;223,650;223,659;223,936;224,4;224,285;224,406;224,580;225,96;225,102;225,245;225,427;225,475;225,492;225,533;225,595;225,656;226,73;226,108;226,172;226,221;226,232;226,404;226,432;226,500;226,605;227,161;227,162;227,231;227,253;227,341;227,447;228,339;228,358;228,407;228,424;228,520;228,523;228,544;228,557;228,567;229,148;229,249;229,306;229,322;229,569;229,576;229,648;229,669;230,62;230,63;230,231;230,297;230,497;230,644;231,134;231,157;231,158;231,161;231,162;231,227;231,230;231,344;231,429;231,433;231,436;231,578;231,644;232,64;232,89;232,124;232,226;232,236;232,290;232,446;232,559;232,605;232,633;232,647;232,723;232,878;233,45;233,151;233,209;233,211;233,282;233,336;233,351;233,374;233,412;233,425;233,440;233,473;233,492;233,625;233,631;233,633;233,642;233,660;234,12;234,52;234,89;234,104;234,235;234,284;234,304;234,328;234,329;234,362;234,394;234,466;234,627;235,166;235,234;235,394;235,584;235,596;235,607;235,664;236,89;236,97;236,108;236,116;236,155;236,232;236,386;236,395;236,410;236,580;236,603;236,605;236,615;237,34;237,152;237,246;237,282;237,545;237,634;238,341;239,279;239,280;239,382;239,442;239,539;239,543;240,92;240,267;240,290;240,379;240,380;240,514;240,521;240,573;240,807;240,1020;240,1059;240,1074;241,42;241,494;241,578;242,60;242,80;242,134;242,328;242,338;242,434;242,572;242,657;242,1032;243,170;243,255;243,314;243,479;243,611;243,639;244,281;245,67;245,72;245,104;245,130;245,133;245,176;245,225;245,313;245,482;245,583;245,595;245,632;246,34;246,237;246,331;246,509;246,649;246,995;247,38;247,43;247,151;247,152;247,199;247,309;247,367;247,529;247,589;247,604;247,663;248,290;248,326;248,390;248,400;248,532;248,571;248,606;248,647;249,69;249,148;249,181;249,229;249,320;249,624;250,147;250,173;250,192;250,281;250,368;250,658;251,39;251,120;251,144;251,287;251,315;251,388;251,471;251,474;251,540;252,33;252,34;252,100;252,166;252,189;252,442;252,511;252,516;252,546;252,584;252,596;253,167;253,175;253,227;253,261;253,341;253,348;253,357;253,448;253,450;254,48;254,55;254,64;254,156;254,221;254,299;254,337;254,341;254,363;254,491;254,499;254,547;254,598;254,1055;255,5;255,120;255,170;255,192;255,243;255,314;256,43;256,90;256,162;256,337;256,341;256,433;256,474;256,523;256,582;257,0;257,5;257,317;257,337;257,375;257,395;257,605;258,284;258,310;258,428;258,491;258,518;258,519;259,68;259,198;259,212;259,264;259,306;260,216;260,310;260,346;260,386;260,398;260,577;261,77;261,116;261,183;261,253;261,277;261,341;261,395;261,450;261,480;261,605;261,654;262,45;262,53;262,91;262,264;262,449;262,542;262,624;262,661;263,110;263,165;263,213;263,223;263,301;263,425;263,618;263,619;263,643;264,68;264,194;264,198;264,259;264,262;264,409;265,192;265,214;265,216;265,281;265,305;265,310;266,106;266,202;266,211;266,212;266,274;266,275;266,383;266,404;266,438;266,453;266,454;266,619;266,659;267,24;267,240;267,286;267,315;267,354;267,437;267,627;268,214;268,582;269,344;269,345;269,549;269,633;269,660;269,788;270,277;270,450;270,520;270,564;270,641;271,63;271,135;271,157;271,397;271,567;271,573;271,645;272,40;272,178;272,356;272,657;273,47;273,87;273,201;273,284;273,305;273,437;273,520;274,28;274,83;274,105;274,115;274,209;274,223;274,266;274,342;274,352;274,383;274,453;274,478;274,650;274,659;275,28;275,105;275,122;275,211;275,266;275,345;275,440;275,453;275,483;275,549;275,558;275,583;275,614;275,631;275,660;276,64;276,147;276,372;276,436;276,459;276,484;276,610;276,649;277,77;277,172;277,261;277,270;277,433;277,450;278,29;278,65;278,119;278,148;278,335;278,411;278,462;278,463;278,496;278,510;279,85;279,129;279,163;279,175;279,189;279,215;279,217;279,239;279,382;279,460;279,482;279,539;279,543;279,600;280,53;280,76;280,163;280,189;280,193;280,239;280,442;280,475;280,494;281,244;281,250;281,265;281,417;281,822;282,28;282,168;282,233;282,237;282,345;282,360;282,458;282,496;282,595;282,626;282,633;283,59;283,149;283,376;283,415;283,417;283,439;283,488;284,81;284,87;284,185;284,234;284,258;284,273;284,362;284,424;284,427;284,519;284,520;284,536;285,135;285,224;285,569;285,580;285,601;286,27;286,189;286,267;286,311;286,498;286,516;286,590;287,2;287,21;287,23;287,193;287,251;287,356;287,389;287,452;287,503;287,522;287,560;287,567;287,665;288,37;288,93;288,291;288,567;288,627;289,41;289,160;289,164;289,205;289,302;289,306;289,323;289,418;289,621;290,8;290,142;290,232;290,240;290,248;290,318;290,410;290,504;290,521;290,559;290,582;290,605;291,288;291,350;291,509;292,119;292,648;292,971;292,1023;293,74;293,84;293,205;293,376;293,400;293,470;294,22;294,36;294,58;294,416;294,460;294,533;294,547;294,666;295,25;295,59;295,121;295,177;295,185;295,321;295,425;295,535;295,604;295,663;296,308;296,335;296,350;296,359;296,371;296,510;296,545;296,556;296,623;296,636;297,14;297,182;297,230;297,420;297,438;297,465;297,556;297,604;297,886;297,891;297,984;298,73;298,86;298,143;298,201;298,299;298,381;298,405;298,406;298,524;298,598;298,602;299,143;299,147;299,185;299,191;299,201;299,254;299,298;299,381;299,405;299,522;299,524;299,547;299,562;299,602;300,22;300,460;300,543;300,635;300,637;300,640;301,42;301,160;301,165;301,218;301,263;301,418;302,29;302,160;302,184;302,223;302,289;302,322;302,343;302,414;303,185;303,384;303,497;303,503;303,644;304,47;304,73;304,156;304,234;304,328;304,346;304,405;304,406;304,413;304,607;305,73;305,87;305,214;305,265;305,273;305,330;305,401;305,404;305,479;305,480;305,568;305,605;306,206;306,229;306,259;306,289;306,409;306,438;306,454;306,576;306,588;306,621;306,644;307,161;307,330;307,388;307,391;307,446;307,573;307,607;307,613;308,56;308,82;308,207;308,296;308,359;308,374;308,510;308,529;309,43;309,102;309,247;309,663;310,90;310,216;310,258;310,260;310,265;310,427;310,428;310,664;311,136;311,286;311,360;311,442;311,488;311,598;312,107;312,177;312,591;312,721;312,964;312,1013;313,19;313,22;313,71;313,75;313,76;313,245;313,460;313,517;313,603;313,635;313,646;313,668;314,5;314,170;314,243;314,255;314,318;315,120;315,251;315,267;315,326;315,459;315,555;316,165;316,212;316,505;317,97;317,138;317,257;317,347;317,401;317,566;317,571;317,605;317,711;317,834;318,4;318,290;318,314;318,378;318,390;318,565;319,83;319,148;319,175;319,195;319,365;319,382;319,456;319,467;319,515;319,583;319,668;320,49;320,69;320,222;320,249;320,416;320,476;320,640;320,666;321,34;321,41;321,118;321,150;321,295;321,324;321,371;321,444;321,623;321,669;322,35;322,70;322,107;322,160;322,164;322,186;322,210;322,213;322,229;322,302;322,489;323,56;323,207;323,289;323,371;323,415;323,535;324,10;324,52;324,176;324,187;324,190;324,215;324,321;324,327;324,336;324,340;324,351;324,441;324,476;324,487;324,516;324,625;325,56;325,466;325,469;325,488;325,616;325,629;326,13;326,46;326,86;326,248;326,315;326,341;326,501;326,560;326,612;327,27;327,52;327,127;327,129;327,187;327,199;327,215;327,223;327,324;327,408;327,441;327,512;327,625;328,12;328,89;328,234;328,242;328,304;328,363;328,389;328,406;328,536;328,562;328,605;328,624;329,13;329,78;329,90;329,234;329,423;329,559;329,561;329,606;329,649;330,124;330,192;330,305;330,307;330,357;330,554;331,186;331,213;331,246;331,527;331,529;331,669;332,430;332,584;333,25;333,98;333,166;333,193;333,371;333,439;333,511;333,546;333,579;333,591;333,596;333,663;333,669;334,115;334,192;334,214;334,390;334,419;334,446;335,114;335,193;335,199;335,203;335,220;335,278;335,296;335,348;335,367;335,439;335,444;335,462;335,485;335,584;335,596;335,607;335,663;335,669;336,10;336,187;336,233;336,324;336,348;336,351;336,498;336,512;336,546;336,625;336,631;337,157;337,161;337,254;337,256;337,257;337,889;337,902;337,1099;338,32;338,66;338,134;338,196;338,242;338,344;339,21;339,228;339,344;339,358;339,499;339,557;340,17;340,50;340,118;340,190;340,324;340,343;340,425;340,439;340,440;340,462;340,550;340,751;341,139;341,162;341,227;341,238;341,253;341,254;341,256;341,261;341,326;341,448;341,521;342,26;342,274;342,411;342,444;342,509;342,608;342,713;342,938;342,1113;343,3;343,202;343,209;343,302;343,340;343,372;343,414;343,425;343,443;343,451;343,469;343,512;344,231;344,269;344,338;344,339;344,398;344,500;344,538;344,578;344,582;345,18;345,103;345,119;345,213;345,269;345,275;345,282;345,352;345,435;345,440;345,487;345,516;345,614;345,631;345,633;345,650;346,12;346,201;346,260;346,304;346,354;346,363;346,398;346,520;346,615;346,627;347,108;347,317;347,1066;348,10;348,36;348,85;348,175;348,187;348,189;348,217;348,253;348,335;348,336;348,382;348,416;348,435;348,442;348,468;348,475;348,539;348,590;348,594;348,600;348,635;349,91;349,172;349,198;349,350;349,420;349,449;349,452;350,218;350,291;350,296;350,349;350,371;350,623;351,233;351,324;351,336;351,440;351,512;351,549;351,625;351,635;351,642;352,103;352,109;352,274;352,345;352,432;352,704;353,17;353,22;353,67;353,165;353,222;353,416;353,475;353,476;353,635;354,24;354,60;354,172;354,267;354,346;354,384;354,437;354,442;354,627;355,35;355,121;355,186;356,272;356,287;356,375;356,428;356,557;356,567;356,569;356,579;357,253;357,330;357,392;357,482;357,569;357,928;358,21;358,55;358,81;358,89;358,228;358,339;358,401;358,416;358,424;358,499;358,520;358,536;358,557;359,25;359,41;359,296;359,308;359,411;359,634;360,10;360,282;360,311;360,476;360,586;361,120;361,154;361,362;361,401;361,427;361,491;361,562;361,647;362,161;362,234;362,284;362,361;362,364;362,394;362,501;362,523;363,113;363,116;363,117;363,201;363,254;363,328;363,346;363,398;363,507;363,580;364,362;364,372;364,435;364,489;364,520;364,648;364,858;365,19;365,71;365,76;365,91;365,99;365,114;365,319;365,467;365,624;366,504;367,38;367,40;367,46;367,50;367,71;367,76;367,111;367,247;367,335;367,370;367,394;367,419;367,498;367,511;367,544;367,590;367,629;368,250;368,372;368,379;368,457;368,554;368,593;368,1109;369,560;370,33;370,38;370,126;370,166;370,367;370,430;370,468;370,629;371,59;371,197;371,296;371,321;371,323;371,333;371,350;371,430;371,535;371,545;371,623;372,157;372,160;372,276;372,343;372,364;372,368;372,414;372,436;372,437;372,593;373,16;373,37;373,385;373,392;374,168;374,207;374,233;374,308;374,458;374,660;375,183;375,257;375,356;375,506;375,557;375,559;375,580;375,630;375,652;375,665;376,74;376,107;376,177;376,205;376,283;376,293;376,438;376,481;376,572;376,586;376,663;377,420;378,112;378,318;378,531;379,116;379,210;379,240;379,368;379,380;379,401;379,436;379,566;379,578;380,92;380,155;380,188;380,216;380,240;380,379;380,561;380,1059;381,89;381,143;381,191;381,201;381,298;381,299;381,405;381,500;381,522;381,524;381,562;381,602;382,104;382,189;382,239;382,279;382,319;382,348;382,456;382,503;382,511;382,515;382,549;383,83;383,105;383,211;383,266;383,274;383,440;383,453;383,631;383,659;383,811;383,936;384,60;384,81;384,86;384,172;384,185;384,303;384,354;384,427;384,499;384,523;384,612;385,15;385,30;385,117;385,130;385,373;385,437;385,514;385,555;386,5;386,12;386,236;386,260;386,466;386,484;386,627;387,31;387,611;388,39;388,106;388,124;388,173;388,188;388,251;388,307;388,398;388,525;388,540;389,108;389,135;389,287;389,328;390,66;390,169;390,248;390,318;390,334;390,572;391,28;391,206;391,307;391,520;391,563;391,609;391,737;391,982;391,1031;392,1;392,130;392,357;392,373;392,474;392,563;392,613;393,8;393,130;393,135;393,155;393,183;393,410;393,421;393,422;393,497;393,514;393,572;393,573;394,220;394,234;394,235;394,362;394,367;394,466;394,523;394,543;394,850;395,116;395,155;395,236;395,257;395,261;395,410;395,466;395,500;395,555;395,598;395,894;396,402;396,492;397,8;397,11;397,63;397,80;397,135;397,167;397,271;397,410;397,438;397,497;397,504;397,557;397,619;398,260;398,344;398,346;398,363;398,388;398,580;399,98;399,165;399,203;399,749;399,966;399,1003;400,205;400,248;400,293;401,81;401,101;401,138;401,305;401,317;401,358;401,361;401,379;401,544;402,22;402,38;402,396;402,635;403,117;404,123;404,168;404,226;404,266;404,305;404,478;404,479;404,480;404,585;404,605;404,625;404,657;405,73;405,143;405,221;405,298;405,299;405,304;405,381;405,406;405,413;405,445;405,457;405,484;405,522;405,557;405,562;405,598;405,602;406,45;406,73;406,224;406,298;406,304;406,328;406,405;406,606;406,624;407,48;407,120;407,143;407,147;407,216;407,228;407,424;407,427;407,428;407,522;407,664;408,105;408,127;408,215;408,327;408,595;408,608;409,264;409,306;409,588;410,89;410,135;410,183;410,236;410,290;410,393;410,395;410,397;410,521;410,763;410,857;411,104;411,119;411,132;411,278;411,342;411,359;411,462;411,545;411,548;411,551;412,3;412,25;412,198;412,209;412,233;412,483;412,586;412,614;412,616;412,629;412,660;413,15;413,24;413,47;413,87;413,304;413,405;413,459;413,484;413,557;413,568;413,577;413,607;413,611;414,223;414,302;414,343;414,372;414,443;414,451;414,482;414,483;414,653;414,660;415,283;415,323;415,591;415,642;416,294;416,320;416,348;416,353;416,358;416,490;416,496;416,533;416,656;416,666;417,281;417,283;417,529;417,610;418,42;418,44;418,72;418,160;418,164;418,184;418,289;418,301;418,438;418,449;418,505;418,662;419,130;419,214;419,334;419,367;419,525;419,613;419,665;420,297;420,349;420,377;421,155;421,393;421,422;421,424;421,427;421,428;421,429;421,553;421,555;421,592;421,686;421,1106;422,87;422,135;422,155;422,393;422,421;422,424;422,427;422,429;422,525;422,573;422,613;422,615;423,2;423,329;423,429;424,185;424,191;424,228;424,284;424,358;424,407;424,421;424,422;424,428;424,525;424,536;424,544;424,547;424,555;424,602;424,664;425,25;425,209;425,233;425,263;425,295;425,340;425,343;425,452;425,512;425,625;425,633;425,637;425,898;426,117;426,431;426,434;427,46;427,48;427,117;427,140;427,143;427,185;427,191;427,225;427,284;427,310;427,361;427,384;427,407;427,421;427,422;427,428;427,433;427,459;427,525;427,536;427,544;427,547;427,577;427,584;427,656;427,664;428,16;428,21;428,88;428,117;428,120;428,185;428,258;428,310;428,356;428,407;428,421;428,424;428,427;428,447;428,519;428,525;428,544;428,557;428,567;429,124;429,145;429,155;429,231;429,421;429,422;429,423;429,459;429,497;429,572;429,578;430,122;430,166;430,168;430,220;430,332;430,370;430,371;430,468;430,584;430,626;430,629;430,697;430,703;430,710;431,134;431,161;431,426;431,554;431,655;432,44;432,159;432,163;432,226;432,352;432,451;432,461;432,463;432,469;432,638;433,142;433,162;433,231;433,256;433,277;433,427;433,507;433,1099;434,242;434,426;435,41;435,105;435,122;435,160;435,196;435,218;435,345;435,348;435,364;435,444;435,512;435,517;435,635;436,60;436,231;436,276;436,372;436,379;436,448;436,459;436,644;436,649;436,932;437,24;437,30;437,267;437,273;437,354;437,372;437,385;437,499;437,514;437,627;437,890;438,266;438,297;438,306;438,376;438,397;438,418;438,444;438,604;438,750;438,823;439,25;439,98;439,118;439,119;439,149;439,283;439,333;439,335;439,340;439,490;439,509;439,579;439,589;440,28;440,105;440,211;440,233;440,275;440,340;440,345;440,351;440,383;440,453;440,461;440,498;440,626;440,631;440,650;440,660;441,27;441,50;441,127;441,187;441,324;441,327;441,442;441,587;441,600;441,625;441,898;441,980;442,20;442,104;442,189;442,215;442,239;442,252;442,280;442,311;442,348;442,354;442,441;442,579;442,587;442,590;442,594;442,656;443,10;443,17;443,104;443,209;443,223;443,343;443,414;443,469;443,477;443,512;443,550;443,570;443,653;444,36;444,41;444,94;444,98;444,110;444,168;444,321;444,335;444,342;444,435;444,438;444,453;444,509;445,20;445,56;445,98;445,107;445,133;445,151;445,203;445,405;445,552;445,574;445,587;445,663;446,89;446,188;446,232;446,307;446,334;446,478;446,484;446,571;446,573;446,592;446,598;446,605;447,21;447,227;447,428;447,542;447,557;447,564;447,567;448,11;448,253;448,341;448,436;448,507;449,44;449,72;449,91;449,159;449,160;449,164;449,194;449,210;449,220;449,262;449,349;449,418;449,530;449,564;449,624;449,661;449,662;449,1019;450,117;450,158;450,172;450,253;450,261;450,270;450,277;450,480;450,507;450,521;450,641;451,0;451,72;451,209;451,343;451,414;451,432;451,528;451,675;452,108;452,113;452,158;452,161;452,183;452,287;452,349;452,425;452,482;452,642;453,28;453,70;453,83;453,105;453,194;453,211;453,266;453,274;453,275;453,383;453,440;453,444;453,498;453,527;453,631;453,638;453,662;453,697;454,70;454,106;454,159;454,194;454,206;454,210;454,212;454,266;454,306;454,542;454,588;454,638;454,661;454,662;454,667;455,588;456,10;456,36;456,83;456,122;456,127;456,319;456,382;456,460;456,515;456,546;456,583;456,587;456,603;456,625;457,15;457,87;457,368;457,405;457,459;457,602;457,649;457,654;458,33;458,50;458,209;458,282;458,374;458,477;458,483;458,558;459,47;459,120;459,124;459,276;459,315;459,413;459,427;459,429;459,436;459,457;459,526;460,54;460,58;460,67;460,75;460,85;460,109;460,175;460,279;460,294;460,300;460,313;460,456;460,515;460,635;460,637;460,666;460,668;461,118;461,198;461,432;461,440;461,549;461,642;462,278;462,335;462,340;462,411;462,490;462,586;463,26;463,44;463,128;463,148;463,160;463,194;463,278;463,432;463,467;463,546;463,575;463,662;464,14;464,26;464,115;464,477;464,650;465,14;465,176;465,297;465,490;465,576;465,970;466,12;466,104;466,120;466,220;466,234;466,325;466,386;466,394;466,395;466,555;466,607;466,627;467,25;467,26;467,44;467,71;467,99;467,128;467,148;467,194;467,319;467,365;467,463;467,552;467,575;467,662;468,50;468,56;468,122;468,123;468,168;468,348;468,370;468,430;468,469;468,555;468,590;468,628;468,697;468,703;469,28;469,159;469,325;469,343;469,432;469,443;469,468;469,608;469,629;470,119;470,121;470,205;470,293;470,509;470,548;470,648;470,694;471,251;471,630;472,3;472,505;473,131;473,204;473,233;473,534;473,570;473,660;473,1075;474,2;474,251;474,256;474,392;474,609;474,630;474,711;475,40;475,225;475,280;475,348;475,353;475,517;476,10;476,26;476,67;476,129;476,190;476,222;476,320;476,324;476,353;476,360;476,487;476,496;477,223;477,443;477,458;477,464;477,653;478,121;478,123;478,126;478,274;478,404;478,446;478,479;478,480;478,484;478,498;478,585;478,604;478,610;479,123;479,183;479,243;479,305;479,404;479,478;479,480;479,585;479,657;480,60;480,123;480,172;480,261;480,305;480,404;480,450;480,478;480,479;480,585;480,649;480,710;481,215;481,376;481,618;481,619;481,621;482,28;482,40;482,245;482,279;482,357;482,414;482,452;482,558;482,604;483,3;483,190;483,209;483,275;483,412;483,414;483,458;483,558;483,595;483,614;483,616;483,642;484,15;484,16;484,87;484,88;484,276;484,386;484,405;484,413;484,446;484,478;484,610;484,649;484,654;485,179;485,335;485,552;485,669;486,64;486,167;487,18;487,81;487,103;487,168;487,219;487,324;487,345;487,476;487,788;488,283;488,311;488,325;488,575;488,663;489,14;489,29;489,94;489,150;489,205;489,218;489,322;489,364;489,597;489,617;489,621;490,41;490,188;490,416;490,439;490,462;490,465;490,616;490,629;490,648;490,669;490,710;491,55;491,63;491,254;491,258;491,361;491,499;491,518;491,544;491,555;492,45;492,67;492,225;492,233;492,396;492,521;492,632;492,635;492,646;493,4;493,540;494,44;494,100;494,104;494,151;494,159;494,163;494,179;494,241;494,280;494,552;495,209;496,148;496,222;496,278;496,282;496,416;496,476;496,633;497,37;497,155;497,157;497,230;497,303;497,393;497,397;497,429;497,504;497,622;497,644;498,211;498,286;498,336;498,367;498,440;498,453;498,478;498,587;498,610;498,631;498,815;498,910;499,61;499,254;499,339;499,358;499,384;499,437;499,491;499,557;500,73;500,120;500,226;500,344;500,381;500,395;501,139;501,140;501,146;501,326;501,362;502,79;502,504;503,64;503,185;503,287;503,303;503,382;503,526;504,8;504,11;504,80;504,155;504,157;504,167;504,290;504,366;504,397;504,497;504,502;504,573;505,2;505,316;505,418;505,472;505,566;505,879;505,1029;506,375;507,47;507,108;507,142;507,172;507,363;507,433;507,448;507,450;508,74;508,205;509,152;509,246;509,291;509,342;509,439;509,444;509,470;509,545;510,9;510,278;510,296;510,308;510,545;511,252;511,333;511,367;511,382;511,516;511,543;511,546;511,584;511,596;511,771;512,115;512,127;512,209;512,327;512,336;512,343;512,351;512,425;512,435;512,443;512,516;512,625;512,642;512,811;513,109;514,7;514,173;514,240;514,385;514,393;514,437;514,559;514,592;515,83;515,122;515,175;515,195;515,319;515,382;515,456;515,460;515,600;515,625;516,52;516,175;516,187;516,189;516,193;516,220;516,252;516,286;516,324;516,345;516,511;516,512;516,584;516,590;516,595;517,27;517,50;517,209;517,215;517,313;517,435;517,475;518,156;518,183;518,258;518,491;518,519;518,657;519,81;519,117;519,185;519,258;519,284;519,428;519,518;519,523;520,47;520,64;520,81;520,87;520,130;520,167;520,228;520,270;520,273;520,284;520,346;520,358;520,364;520,391;520,604;521,240;521,290;521,341;521,410;521,450;521,492;522,21;522,48;522,142;522,143;522,287;522,299;522,381;522,405;522,407;522,567;523,47;523,117;523,120;523,146;523,228;523,256;523,362;523,384;523,394;523,519;523,547;523,577;524,125;524,191;524,221;524,298;524,299;524,381;524,562;524,564;524,855;525,16;525,23;525,87;525,88;525,388;525,419;525,422;525,424;525,427;525,428;525,561;525,563;525,569;526,57;526,120;526,145;526,459;526,503;526,531;526,622;527,28;527,50;527,118;527,123;527,331;527,453;527,633;527,669;528,0;528,56;528,451;529,118;529,247;529,308;529,331;529,417;529,616;530,53;530,99;530,114;530,194;530,449;530,624;531,112;531,378;531,526;532,248;533,22;533,26;533,36;533,67;533,86;533,222;533,225;533,294;533,416;533,635;533,644;533,646;533,656;533,666;534,27;534,131;534,204;534,473;534,570;535,25;535,29;535,82;535,133;535,207;535,295;535,323;535,371;535,669;536,48;536,79;536,140;536,284;536,328;536,358;536,424;536,427;537,170;537,196;537,602;537,1066;538,94;538,141;538,196;538,344;538,613;538,639;539,27;539,104;539,129;539,175;539,215;539,217;539,239;539,279;539,348;539,543;539,600;539,635;540,37;540,39;540,101;540,144;540,146;540,251;540,388;540,493;540,544;540,560;541,112;542,53;542,91;542,181;542,262;542,447;542,454;542,624;542,661;543,85;543,175;543,187;543,189;543,239;543,279;543,300;543,394;543,511;543,539;543,587;544,1;544,145;544,228;544,367;544,401;544,424;544,427;544,428;544,491;544,540;544,664;545,152;545,197;545,237;545,296;545,371;545,411;545,509;545,510;545,591;545,620;545,634;545,874;546,26;546,252;546,333;546,336;546,456;546,463;546,511;546,584;547,47;547,48;547,191;547,221;547,254;547,294;547,299;547,424;547,427;547,523;547,557;547,577;548,213;548,411;548,470;549,10;549,168;549,269;549,275;549,351;549,382;549,461;549,616;549,653;549,660;550,131;550,204;550,340;550,443;551,43;551,411;552,128;552,151;552,179;552,445;552,467;552,485;552,494;552,574;552,575;553,45;553,49;553,51;553,421;553,611;554,12;554,134;554,158;554,161;554,330;554,368;554,431;554,571;555,173;555,315;555,385;555,395;555,421;555,424;555,466;555,468;555,491;555,592;555,593;555,615;556,14;556,205;556,296;556,297;556,621;556,749;557,21;557,64;557,156;557,228;557,339;557,356;557,358;557,375;557,397;557,405;557,413;557,428;557,447;557,499;557,547;557,562;557,567;557,599;558,36;558,49;558,209;558,275;558,458;558,482;558,483;559,23;559,232;559,290;559,329;559,375;559,514;559,633;559,650;559,867;559,916;559,1054;560,39;560,183;560,287;560,326;560,369;560,540;561,24;561,92;561,139;561,329;561,380;561,525;562,15;562,125;562,191;562,221;562,299;562,328;562,361;562,381;562,405;562,524;562,557;563,23;563,391;563,392;563,525;564,60;564,270;564,447;564,449;564,524;565,318;566,317;566,379;566,505;566,1032;566,1039;567,21;567,23;567,80;567,193;567,228;567,271;567,287;567,288;567,356;567,428;567,447;567,522;567,557;567,622;568,73;568,87;568,89;568,305;568,413;568,607;569,23;569,89;569,229;569,285;569,356;569,357;569,525;569,665;570,131;570,163;570,443;570,473;570,534;571,16;571,97;571,116;571,135;571,248;571,317;571,446;571,554;571,603;571,605;571,927;571,997;572,16;572,242;572,376;572,390;572,393;572,429;572,613;573,92;573,130;573,183;573,240;573,271;573,307;573,393;573,422;573,446;573,504;573,630;574,151;574,445;574,552;574,651;574,663;574,669;575,26;575,128;575,463;575,467;575,488;575,552;576,119;576,213;576,229;576,306;576,465;576,581;576,621;577,47;577,48;577,260;577,413;577,427;577,523;577,547;577,611;578,157;578,196;578,231;578,241;578,344;578,379;578,429;579,98;579,103;579,105;579,109;579,111;579,168;579,333;579,356;579,439;579,442;579,610;579,616;579,631;579,648;579,663;580,24;580,31;580,90;580,116;580,173;580,214;580,224;580,236;580,285;580,363;580,375;580,398;580,599;580,601;580,658;581,160;581,576;581,621;582,8;582,21;582,24;582,37;582,214;582,256;582,268;582,290;582,344;582,599;582,647;583,2;583,28;583,115;583,122;583,195;583,245;583,275;583,319;583,456;583,595;584,33;584,166;584,235;584,252;584,332;584,335;584,427;584,430;584,511;584,516;584,546;584,587;584,627;585,123;585,404;585,478;585,479;585,480;585,604;585,610;585,633;585,657;585,660;586,17;586,50;586,96;586,175;586,187;586,360;586,376;586,412;586,462;586,595;587,20;587,184;587,189;587,215;587,441;587,442;587,445;587,456;587,498;587,543;587,584;587,590;588,206;588,306;588,409;588,454;588,455;588,638;589,25;589,199;589,247;589,439;589,663;590,20;590,36;590,189;590,191;590,215;590,220;590,286;590,348;590,367;590,442;590,468;590,516;590,587;590,656;590,663;590,815;591,9;591,98;591,107;591,133;591,165;591,312;591,333;591,415;591,545;591,636;592,55;592,117;592,155;592,173;592,216;592,421;592,446;592,514;592,555;592,593;592,602;593,144;593,368;593,372;593,555;593,592;594,20;594,152;594,348;594,442;594,629;594,633;594,650;594,980;595,17;595,18;595,36;595,52;595,96;595,127;595,133;595,168;595,176;595,187;595,190;595,195;595,199;595,225;595,245;595,282;595,408;595,483;595,516;595,583;595,586;595,642;596,100;596,166;596,193;596,220;596,235;596,252;596,333;596,335;596,511;596,600;596,607;597,29;597,94;597,150;597,165;597,489;597,620;597,762;597,874;597,1001;597,1015;598,81;598,133;598,136;598,254;598,298;598,311;598,395;598,405;598,446;599,557;599,580;599,582;599,601;599,786;599,1054;600,27;600,85;600,175;600,189;600,202;600,215;600,217;600,279;600,348;600,441;600,515;600,539;600,596;601,285;601,580;601,599;602,77;602,120;602,143;602,196;602,298;602,299;602,381;602,405;602,424;602,457;602,537;602,592;602,989;602,1066;603,51;603,67;603,75;603,83;603,207;603,211;603,236;603,313;603,456;603,571;603,635;603,642;603,646;603,651;603,668;603,779;603,791;603,1016;604,28;604,43;604,223;604,247;604,295;604,297;604,438;604,478;604,482;604,520;604,585;604,610;604,659;605,16;605,39;605,97;605,226;605,232;605,236;605,257;605,261;605,290;605,305;605,317;605,328;605,404;605,446;605,571;606,37;606,78;606,90;606,140;606,162;606,248;606,329;606,406;607,15;607,63;607,235;607,304;607,307;607,335;607,413;607,466;607,568;607,596;608,28;608,70;608,105;608,127;608,342;608,408;608,469;608,614;608,631;609,391;609,474;610,103;610,111;610,123;610,126;610,202;610,276;610,417;610,478;610,484;610,498;610,579;610,585;610,604;610,627;610,657;611,63;611,117;611,243;611,387;611,413;611,553;611,577;611,664;612,326;612,384;612,632;613,80;613,134;613,155;613,307;613,392;613,419;613,422;613,538;613,572;613,844;614,55;614,275;614,345;614,412;614,483;614,608;614,629;614,650;614,659;615,2;615,97;615,116;615,236;615,346;615,422;615,555;616,55;616,325;616,412;616,483;616,490;616,529;616,549;616,579;616,629;616,648;617,489;618,29;618,165;618,210;618,213;618,218;618,263;618,481;618,619;618,643;619,35;619,196;619,213;619,263;619,266;619,397;619,481;619,618;620,95;620,545;620,597;621,160;621,165;621,289;621,306;621,481;621,489;621,556;621,576;621,581;621,625;622,57;622,92;622,497;622,526;622,567;622,912;623,207;623,296;623,321;623,350;623,371;624,53;624,210;624,249;624,262;624,328;624,365;624,406;624,449;624,530;624,542;624,661;625,3;625,52;625,89;625,187;625,223;625,233;625,324;625,327;625,336;625,351;625,404;625,425;625,441;625,456;625,512;625,515;625,621;625,633;626,33;626,50;626,209;626,215;626,282;626,430;626,440;626,631;626,654;626,1108;627,12;627,24;627,120;627,201;627,234;627,267;627,288;627,346;627,354;627,386;627,437;627,466;627,584;627,610;628,195;628,468;628,635;628,666;629,38;629,166;629,325;629,367;629,370;629,412;629,430;629,469;629,490;629,594;629,614;629,616;629,665;629,669;629,703;629,710;630,183;630,192;630,375;630,471;630,474;630,573;631,28;631,94;631,105;631,122;631,211;631,213;631,233;631,275;631,336;631,345;631,383;631,440;631,453;631,498;631,579;631,608;631,626;631,642;631,650;631,660;632,2;632,30;632,113;632,146;632,172;632,245;632,492;632,612;633,14;633,18;633,50;633,117;633,123;633,168;633,202;633,222;633,232;633,233;633,269;633,282;633,345;633,425;633,496;633,527;633,559;633,585;633,594;633,625;633,642;634,34;634,152;634,237;634,359;634,545;635,22;635,58;635,75;635,99;635,109;635,128;635,222;635,300;635,313;635,348;635,351;635,353;635,402;635,435;635,460;635,492;635,533;635,539;635,603;635,628;635,637;635,640;635,646;635,666;635,668;636,38;636,296;636,591;637,54;637,107;637,300;637,425;637,460;637,635;637,640;637,668;638,91;638,114;638,159;638,163;638,206;638,432;638,453;638,454;638,588;639,141;639,243;639,538;640,300;640,320;640,635;640,637;640,666;641,32;641,60;641,198;641,270;641,450;642,118;642,190;642,211;642,233;642,351;642,415;642,452;642,461;642,483;642,512;642,595;642,603;642,631;642,633;643,209;643,223;643,263;643,618;643,856;643,936;643,973;643,1057;643,1123;644,168;644,230;644,231;644,303;644,306;644,436;644,497;644,533;645,271;646,58;646,75;646,313;646,492;646,533;646,603;646,635;646,668;647,124;647,232;647,248;647,361;647,582;648,94;648,133;648,205;648,229;648,292;648,364;648,470;648,490;648,579;648,616;648,1023;649,13;649,64;649,123;649,246;649,276;649,329;649,436;649,457;649,480;649,484;649,654;649,774;649,947;650,55;650,208;650,223;650,274;650,345;650,440;650,464;650,559;650,594;650,614;650,631;650,659;651,574;651,603;652,46;652,375;653,29;653,414;653,443;653,477;653,549;654,196;654,261;654,457;654,484;654,626;654,649;654,664;654,869;654,948;655,431;656,102;656,189;656,225;656,416;656,427;656,442;656,533;656,590;657,123;657,156;657,242;657,272;657,404;657,479;657,518;657,585;657,610;658,173;658,250;658,580;659,55;659,83;659,105;659,106;659,115;659,211;659,223;659,266;659,274;659,383;659,604;659,614;659,650;660,36;660,107;660,176;660,233;660,269;660,275;660,374;660,412;660,414;660,440;660,473;660,549;660,585;660,631;661,53;661,91;661,206;661,210;661,220;661,262;661,449;661,454;661,542;661,624;662,72;662,91;662,159;662,164;662,194;662,197;662,198;662,418;662,449;662,453;662,454;662,463;662,467;663,25;663,65;663,107;663,133;663,151;663,199;663,247;663,295;663,309;663,333;663,335;663,376;663,445;663,488;663,574;663,579;663,589;663,590;663,669;664,2;664,8;664,55;664,147;664,216;664,235;664,310;664,407;664,424;664,427;664,544;664,611;664,654;665,79;665,192;665,287;665,375;665,419;665,569;665,629;666,294;666,320;666,416;666,460;666,533;666,628;666,635;666,640;666,668;667,454;668,22;668,75;668,313;668,319;668,460;668,603;668,635;668,637;668,646;668,666;669,45;669,150;669,199;669,229;669,321;669,331;669,333;669,335;669,485;669,490;669,527;669,535;669,574;669,629;669,663;670,715;670,721;670,734;670,754;670,766;670,791;670,816;670,820;670,862;670,1012;670,1013;670,1019;670,1116;671,673;671,683;671,862;671,960;671,978;671,1091;671,1097;672,721;672,791;672,800;672,918;672,1121;673,671;673,717;673,825;673,944;673,1041;673,1046;674,753;674,802;674,982;674,987;674,1021;674,1074;675,451;675,801;675,862;675,969;675,1035;675,1116;676,943;676,1009;676,1037;677,690;677,793;677,798;677,825;677,826;677,837;677,852;677,960;677,963;677,1072;677,1077;678,726;678,790;678,794;678,849;678,898;679,1044;680,685;680,724;680,726;680,755;680,757;680,758;680,772;680,811;680,828;680,929;680,931;680,938;680,949;680,969;680,1012;680,1013;680,1024;680,1042;680,1057;681,709;681,771;681,814;681,936;681,967;681,1014;682,765;682,830;682,840;682,934;682,946;682,1005;682,1055;683,671;683,691;683,698;683,715;683,721;683,734;683,754;683,849;683,859;683,903;683,1009;683,1013;684,691;684,933;684,954;685,160;685,164;685,680;685,696;685,724;685,762;685,784;685,808;685,828;685,866;685,948;685,1009;685,1023;685,1057;685,1072;685,1082;686,421;686,702;686,718;686,775;686,797;686,821;686,869;686,872;686,904;686,1059;686,1115;687,705;687,706;687,712;687,784;687,849;687,858;687,926;687,935;687,950;687,953;687,974;687,975;687,986;687,996;687,1024;687,1042;687,1089;687,1093;687,1126;688,723;688,731;688,739;688,763;688,959;688,994;688,1066;688,1096;689,725;689,733;689,738;689,751;689,767;689,936;689,942;689,961;689,967;689,1084;689,1110;690,677;690,810;690,845;690,909;690,1052;690,1085;691,683;691,684;691,730;691,846;691,866;691,1009;692,736;692,881;692,907;693,119;693,694;693,734;693,862;694,470;694,693;694,734;694,790;694,1026;694,1121;695,760;695,776;695,798;695,825;695,834;695,862;695,902;695,975;695,1027;695,1099;695,1125;696,685;696,724;696,726;696,755;696,768;696,772;696,808;696,848;696,883;696,953;696,1002;696,1089;697,430;697,453;697,468;697,703;697,749;697,874;697,976;698,683;698,745;698,752;698,834;698,880;698,903;698,923;698,941;698,952;698,998;698,1120;699,714;699,826;699,833;699,838;699,868;699,885;699,1081;700,730;700,822;700,836;700,862;700,1083;700,1101;701,751;701,857;701,879;701,980;701,1001;701,1024;701,1067;701,1089;702,686;702,922;702,1028;702,1110;703,103;703,430;703,468;703,629;703,697;703,704;703,710;703,740;703,788;703,802;703,811;703,976;703,980;703,1007;703,1108;704,352;704,703;704,765;704,788;704,863;704,910;704,913;704,920;704,988;705,687;705,709;705,788;705,800;705,803;705,815;705,820;705,898;705,986;705,1070;705,1113;705,1126;706,687;706,708;706,732;706,737;706,783;706,896;706,935;706,953;706,983;706,986;706,1002;707,816;707,853;707,882;707,1009;707,1017;707,1021;707,1080;708,706;708,766;708,804;708,820;708,877;708,926;708,935;708,985;708,986;708,1123;709,681;709,705;709,733;709,738;709,750;709,856;709,938;709,967;710,123;710,430;710,480;710,490;710,629;710,703;710,739;710,749;710,765;710,863;710,884;710,910;710,952;710,970;710,976;710,995;711,317;711,474;711,729;711,741;711,878;711,880;711,1066;711,1092;711,1106;711,1112;712,687;712,719;712,846;712,867;712,889;712,944;712,1008;712,1017;712,1033;712,1059;712,1109;713,342;713,727;713,739;713,879;713,945;713,1016;713,1040;713,1067;714,196;714,699;714,723;714,741;714,744;714,797;714,803;714,824;714,867;714,889;714,924;714,944;714,1020;714,1066;715,184;715,670;715,683;715,737;715,740;715,758;715,820;715,859;715,877;715,893;715,895;715,972;715,1001;715,1009;715,1025;715,1031;715,1108;716,742;716,756;716,792;716,843;716,861;716,928;717,673;717,719;717,742;717,805;717,824;717,837;717,844;717,845;717,921;717,924;717,944;717,948;718,686;718,872;718,1051;719,712;719,717;719,805;719,821;719,845;719,859;719,944;719,1005;719,1086;719,1097;719,1109;720,743;720,747;720,756;720,795;720,797;720,836;720,845;720,904;720,913;720,940;720,998;721,218;721,312;721,670;721,672;721,683;721,800;721,830;721,873;721,954;721,964;721,1013;721,1019;721,1045;721,1058;721,1072;722,733;722,738;722,753;722,771;722,856;722,936;722,967;722,973;722,1098;723,124;723,232;723,688;723,714;723,784;723,797;723,845;723,858;723,870;723,911;723,923;723,944;723,1091;723,1120;724,680;724,685;724,696;724,758;724,766;724,771;724,772;724,784;724,794;724,806;724,808;724,815;724,888;724,899;724,923;724,931;724,935;724,936;724,942;724,949;724,973;724,1024;724,1057;725,689;725,738;725,739;725,751;725,850;725,854;725,886;725,887;725,900;725,943;725,962;725,1040;726,678;726,680;726,696;726,757;726,766;726,794;726,806;726,848;726,873;726,931;726,935;726,949;726,1042;726,1123;727,713;727,857;727,879;727,1016;727,1067;728,729;728,834;728,852;728,855;728,925;728,934;728,963;728,966;728,976;728,980;728,1059;728,1103;728,1118;729,711;729,728;729,741;729,832;729,841;729,842;729,843;729,855;729,861;729,869;729,997;729,1034;729,1066;729,1086;729,1096;729,1103;729,1118;730,691;730,700;730,897;730,1025;731,162;731,688;731,894;731,994;731,1028;731,1096;732,706;732,772;732,896;732,926;732,935;732,949;732,1089;732,1093;733,689;733,709;733,722;733,814;733,856;733,863;733,945;733,961;733,967;733,1084;734,670;734,683;734,693;734,694;734,790;734,836;734,839;734,1001;734,1108;734,1121;735,824;735,907;735,1077;736,692;736,744;736,781;736,787;736,832;736,1052;736,1106;737,391;737,706;737,715;737,762;737,783;737,800;737,824;737,848;737,873;737,903;737,953;737,957;738,689;738,709;738,722;738,725;738,753;738,813;738,856;738,900;738,942;738,961;738,973;738,996;738,1016;738,1033;738,1047;739,688;739,710;739,713;739,725;739,829;739,857;739,874;739,879;739,902;739,922;739,1005;739,1015;739,1016;739,1023;739,1059;739,1078;739,1110;740,703;740,715;740,762;740,920;740,966;740,974;740,980;740,995;740,1029;740,1075;740,1078;740,1079;740,1100;740,1113;741,711;741,714;741,729;741,763;741,790;741,795;741,797;741,798;741,824;741,842;741,902;741,924;741,1066;741,1082;741,1106;742,716;742,717;742,748;742,778;742,792;742,833;742,867;742,916;742,928;742,944;742,1010;742,1030;742,1054;742,1082;742,1097;743,720;744,714;744,736;744,748;744,832;744,1059;744,1097;744,1105;745,698;745,759;745,805;745,837;745,845;745,865;745,907;745,923;745,941;745,1030;745,1059;746,749;746,788;746,790;746,851;746,882;746,891;746,903;746,974;746,976;746,995;747,720;747,763;747,1005;747,1015;747,1019;747,1037;747,1055;747,1102;747,1115;748,742;748,744;748,770;748,786;748,858;748,870;748,872;748,901;748,911;748,916;748,944;748,1050;748,1059;748,1097;748,1099;748,1103;749,399;749,556;749,697;749,710;749,746;749,777;749,782;749,880;749,1079;750,438;750,709;750,809;750,815;750,823;750,938;750,945;750,966;750,980;750,1001;750,1007;750,1075;751,340;751,689;751,701;751,725;751,768;751,886;751,961;751,967;751,981;751,1014;751,1084;752,698;752,770;752,798;752,852;752,865;752,998;752,1008;752,1065;752,1109;752,1120;753,674;753,722;753,738;753,777;753,802;753,886;753,988;753,995;753,1107;754,670;754,683;754,791;754,800;754,862;754,1026;754,1058;754,1088;754,1121;755,680;755,696;755,866;755,979;755,1002;755,1003;756,716;756,720;756,792;756,841;756,843;756,844;756,861;756,880;756,909;756,928;756,1010;756,1069;756,1074;756,1085;757,680;757,726;757,766;757,794;757,848;757,883;757,888;757,931;757,935;757,949;757,950;757,974;757,983;757,992;757,999;757,1123;758,680;758,715;758,724;758,848;758,893;758,895;758,931;758,957;758,979;759,745;759,819;759,1008;759,1059;760,695;760,798;760,1027;761,838;761,907;761,1037;761,1063;762,179;762,597;762,685;762,737;762,740;762,859;762,966;762,999;762,1009;762,1029;762,1072;762,1075;762,1079;762,1080;763,410;763,688;763,741;763,747;763,795;763,797;763,805;763,810;763,831;763,832;763,835;763,850;763,855;763,868;763,994;764,782;764,837;764,907;764,968;764,1018;764,1107;765,682;765,704;765,710;765,913;766,670;766,708;766,724;766,726;766,757;766,772;766,783;766,806;766,834;766,883;766,888;766,899;766,931;766,936;766,949;766,992;766,1012;767,689;767,788;767,811;767,823;767,920;767,1108;768,696;768,751;768,773;768,801;768,848;768,892;768,942;768,958;768,961;768,967;768,973;768,985;768,1015;769,782;769,851;769,891;769,945;769,1019;770,748;770,752;770,776;770,798;770,894;770,923;770,941;770,956;770,963;770,1030;770,1033;770,1052;770,1059;771,511;771,681;771,722;771,724;771,772;771,773;771,811;771,856;771,871;771,898;771,900;771,919;771,936;771,942;771,965;771,973;771,981;771,1007;771,1047;771,1098;771,1124;772,680;772,696;772,724;772,732;772,766;772,771;772,794;772,804;772,828;772,848;772,886;772,926;772,931;772,935;772,936;772,942;772,949;772,974;772,986;772,1123;773,768;773,771;773,871;773,936;773,958;773,961;773,973;773,993;773,1124;774,13;774,649;774,795;774,831;774,904;774,937;775,686;775,834;775,838;775,872;775,1004;775,1032;775,1115;776,695;776,770;776,785;776,833;776,900;776,905;776,924;776,1024;776,1046;776,1049;776,1050;776,1083;776,1125;777,749;777,753;777,869;777,968;777,1107;778,742;778,867;778,916;779,603;779,846;779,865;780,806;780,818;780,873;780,935;780,954;780,979;780,999;780,1025;781,736;781,921;781,1106;782,165;782,749;782,764;782,769;782,830;782,854;782,886;782,905;782,962;782,966;782,968;782,987;782,1014;782,1019;782,1029;782,1088;782,1107;783,706;783,737;783,766;783,826;783,930;783,1109;784,685;784,687;784,723;784,724;784,873;784,931;784,979;784,1012;784,1023;784,1093;785,776;785,789;785,864;785,1050;785,1105;786,599;786,748;786,795;786,807;786,821;786,832;786,842;786,845;786,855;786,858;786,864;786,870;786,872;786,901;786,902;786,904;786,911;786,937;786,1000;786,1018;786,1054;786,1082;786,1091;786,1118;787,736;787,925;788,18;788,269;788,487;788,703;788,704;788,705;788,746;788,767;788,811;788,815;788,820;788,892;788,938;788,970;788,976;788,1023;788,1036;788,1119;789,785;789,792;789,793;789,817;789,819;789,868;789,921;789,955;790,678;790,694;790,734;790,741;790,746;790,836;790,984;790,993;790,1026;790,1058;790,1121;791,603;791,670;791,672;791,754;791,800;792,716;792,742;792,756;792,789;792,793;792,817;792,841;792,843;792,844;792,915;793,677;793,789;793,792;793,831;793,833;793,835;793,841;793,843;793,844;793,849;793,867;793,889;793,890;793,915;793,1101;794,678;794,724;794,726;794,757;794,772;794,931;794,935;794,938;794,974;794,983;794,986;794,1024;794,1057;794,1093;795,720;795,741;795,763;795,774;795,786;795,819;795,855;795,870;795,904;795,932;795,1028;795,1071;795,1102;795,1106;795,1112;795,1117;796,805;796,819;796,840;796,861;796,890;796,1008;796,1069;796,1080;796,1081;796,1105;797,686;797,714;797,720;797,723;797,741;797,763;797,845;797,904;797,923;797,980;797,1000;797,1091;797,1097;797,1112;798,677;798,695;798,741;798,752;798,760;798,770;798,948;798,983;798,1027;798,1033;798,1049;798,1060;798,1082;799,866;799,1046;800,672;800,705;800,721;800,737;800,754;800,791;800,859;800,873;800,887;800,929;800,931;800,979;800,1089;801,675;801,768;801,836;801,851;801,913;801,950;801,969;801,995;801,1035;801,1058;801,1116;802,674;802,703;802,753;802,887;802,907;802,1021;803,705;803,714;803,929;804,708;804,772;804,926;804,935;804,985;804,1093;804,1123;805,717;805,719;805,745;805,763;805,796;805,833;805,834;805,861;805,865;805,878;805,889;805,916;805,952;805,956;805,994;805,998;805,1068;806,724;806,726;806,766;806,780;806,931;806,935;806,954;807,240;807,786;807,815;807,850;807,994;807,1004;807,1018;807,1020;807,1091;807,1094;807,1097;808,685;808,696;808,724;808,848;808,883;808,896;808,903;808,926;808,953;808,1024;808,1042;808,1089;809,750;809,814;809,823;809,876;809,884;809,965;810,690;810,763;810,822;810,845;810,855;810,890;810,1004;810,1055;810,1077;810,1099;811,105;811,383;811,512;811,680;811,703;811,767;811,771;811,788;811,898;811,919;811,920;811,936;811,938;811,942;811,969;811,973;811,974;811,980;811,995;811,1007;811,1012;811,1015;811,1075;811,1098;812,817;812,1022;812,1046;812,1087;813,738;813,814;813,815;813,819;813,919;813,927;813,928;813,980;814,681;814,733;814,809;814,813;814,823;814,884;814,958;814,965;814,967;814,996;814,1014;814,1040;815,498;815,590;815,705;815,724;815,750;815,788;815,807;815,813;815,823;815,892;815,898;815,919;815,936;815,938;815,942;815,995;815,1007;815,1012;815,1057;815,1098;816,670;816,707;816,847;816,851;816,853;816,874;816,882;816,891;816,892;816,1011;816,1017;816,1079;817,789;817,792;817,812;817,844;817,1010;817,1033;817,1046;817,1050;817,1083;818,780;818,824;818,954;818,979;818,1006;818,1122;819,759;819,789;819,795;819,796;819,813;819,835;819,843;819,850;819,855;819,869;819,878;819,880;819,890;819,922;819,934;819,998;819,1008;819,1020;819,1033;819,1039;819,1050;819,1056;819,1066;819,1081;819,1094;819,1096;819,1110;819,1111;820,670;820,705;820,708;820,715;820,788;820,877;820,883;820,893;820,895;820,972;820,992;820,1012;820,1024;820,1122;821,686;821,719;821,786;821,861;821,870;821,878;821,937;821,1000;821,1055;821,1086;821,1110;822,281;822,700;822,810;822,890;822,941;822,1008;822,1081;822,1082;823,438;823,750;823,767;823,809;823,814;823,815;823,1098;824,714;824,717;824,735;824,737;824,741;824,818;824,835;824,1009;824,1020;824,1066;824,1077;824,1104;825,673;825,677;825,695;825,859;826,677;826,699;826,783;826,837;826,845;826,911;826,930;826,932;826,1046;826,1077;826,1105;827,1072;828,680;828,685;828,772;828,988;828,1058;828,1062;828,1116;829,739;829,971;829,1018;829,1113;830,682;830,721;830,782;830,870;830,877;830,910;830,924;830,980;830,1078;831,763;831,774;831,793;831,835;831,841;831,1018;831,1059;832,729;832,736;832,744;832,763;832,786;832,842;832,852;832,925;832,946;832,1000;833,699;833,742;833,776;833,793;833,805;833,852;833,862;833,867;833,918;833,960;833,963;833,1049;833,1057;833,1125;834,317;834,695;834,698;834,728;834,766;834,775;834,805;834,861;834,866;834,878;834,889;834,923;834,956;834,989;834,998;834,1082;834,1096;835,763;835,793;835,819;835,824;835,831;835,841;835,846;835,852;835,868;835,932;835,1008;835,1057;835,1059;835,1068;836,700;836,720;836,734;836,790;836,801;836,1012;836,1025;836,1027;837,677;837,717;837,745;837,764;837,826;837,845;837,855;837,907;837,960;837,1034;837,1102;838,699;838,761;838,775;838,911;838,917;838,932;838,952;838,963;838,966;838,1037;839,734;839,931;839,1009;839,1013;839,1019;839,1035;839,1077;839,1116;840,682;840,796;840,861;840,939;840,1008;840,1032;840,1069;841,729;841,756;841,792;841,793;841,831;841,835;841,843;841,844;841,880;841,885;841,909;841,912;841,915;841,1069;841,1112;842,729;842,741;842,786;842,832;842,855;842,870;842,901;842,1000;842,1034;843,716;843,729;843,756;843,792;843,793;843,819;843,841;843,855;843,861;843,864;843,880;843,912;843,915;843,998;843,1059;844,613;844,717;844,756;844,792;844,793;844,817;844,841;844,845;844,940;844,1083;845,690;845,717;845,719;845,720;845,723;845,745;845,786;845,797;845,810;845,826;845,837;845,844;845,921;845,924;845,940;845,946;845,948;845,1008;845,1010;845,1027;845,1030;845,1039;845,1046;845,1083;846,691;846,712;846,779;846,835;846,1049;846,1077;846,1082;846,1083;846,1089;847,816;847,857;847,1011;847,1021;847,1079;848,696;848,726;848,737;848,757;848,758;848,768;848,772;848,808;848,888;848,893;848,899;848,929;848,935;848,953;848,979;848,983;848,1002;849,678;849,683;849,687;849,793;849,957;849,984;849,996;849,1006;849,1088;849,1121;849,1126;850,394;850,725;850,763;850,807;850,819;850,863;850,900;850,922;850,946;850,981;850,994;850,1008;850,1059;850,1098;850,1115;851,746;851,769;851,801;851,816;851,891;851,1075;851,1080;851,1108;851,1113;852,677;852,728;852,752;852,832;852,833;852,835;852,908;852,925;852,927;852,941;852,1008;852,1010;852,1030;852,1086;852,1102;853,707;853,816;853,1017;853,1079;853,1121;854,725;854,782;854,886;854,905;854,943;854,968;854,987;854,1040;855,524;855,728;855,729;855,763;855,786;855,795;855,810;855,819;855,837;855,842;855,843;855,858;855,870;855,901;855,911;855,994;855,1086;855,1094;856,643;856,709;856,722;856,733;856,738;856,771;856,900;856,935;856,936;856,961;856,965;856,967;856,973;856,996;856,1014;856,1047;856,1098;856,1124;857,410;857,701;857,727;857,739;857,847;857,879;857,1067;857,1113;858,364;858,687;858,723;858,748;858,786;858,855;858,859;858,870;858,911;858,944;858,1027;858,1092;858,1097;858,1099;859,683;859,715;859,719;859,762;859,800;859,825;859,858;859,867;859,895;859,983;860,1021;861,716;861,729;861,756;861,796;861,805;861,821;861,834;861,840;861,843;861,869;861,878;861,880;861,912;861,916;861,923;861,928;861,951;861,998;861,1059;861,1069;861,1092;861,1105;861,1111;862,670;862,671;862,675;862,693;862,695;862,700;862,754;862,833;862,988;862,1046;862,1049;863,704;863,710;863,733;863,850;863,910;863,938;863,962;863,1005;864,785;864,786;864,843;864,878;864,937;864,970;864,1037;864,1048;865,745;865,752;865,779;865,805;865,931;865,948;865,1099;865,1103;866,685;866,691;866,755;866,799;866,834;866,875;866,890;866,929;866,1003;866,1046;866,1072;866,1095;866,1122;867,559;867,712;867,714;867,742;867,778;867,793;867,833;867,859;867,870;867,872;867,911;867,916;867,956;867,1033;867,1054;867,1060;867,1064;867,1097;867,1120;868,699;868,763;868,789;868,835;868,897;868,932;868,947;869,654;869,686;869,729;869,777;869,819;869,861;869,880;869,946;869,1008;869,1059;869,1085;870,723;870,748;870,786;870,795;870,821;870,830;870,842;870,855;870,858;870,867;870,901;870,902;870,904;870,916;870,937;870,944;870,956;870,994;870,1000;870,1059;870,1065;870,1086;870,1091;870,1120;871,771;871,773;871,936;871,958;871,967;871,973;871,1124;872,686;872,718;872,748;872,775;872,786;872,867;872,1008;872,1054;872,1059;872,1115;873,721;873,726;873,737;873,780;873,784;873,800;873,929;873,935;873,985;873,990;873,1058;874,545;874,597;874,697;874,739;874,816;874,922;874,981;874,1015;874,1020;874,1078;874,1110;875,866;875,957;875,985;875,1006;875,1088;876,809;876,884;876,887;876,945;876,1040;876,1053;876,1084;877,708;877,715;877,820;877,830;877,1058;877,1116;877,1122;878,232;878,711;878,805;878,819;878,821;878,834;878,861;878,864;878,880;878,970;878,1008;878,1059;878,1092;878,1106;878,1120;879,177;879,505;879,701;879,713;879,727;879,739;879,857;879,881;879,936;879,958;879,965;879,973;879,1001;879,1015;879,1016;879,1029;879,1040;879,1067;879,1103;879,1113;879,1115;880,698;880,711;880,749;880,756;880,819;880,841;880,843;880,861;880,869;880,878;880,907;880,912;880,940;880,1059;880,1065;880,1069;880,1096;880,1111;881,692;881,879;881,912;881,932;881,934;881,941;881,1015;881,1028;881,1032;881,1040;881,1090;881,1100;881,1125;882,707;882,746;882,816;882,891;882,911;882,995;882,1075;883,696;883,757;883,766;883,808;883,820;883,899;883,900;883,953;883,1012;883,1037;884,710;884,809;884,814;884,876;884,1029;885,699;885,841;885,890;885,997;885,1094;885,1103;886,297;886,725;886,751;886,753;886,772;886,782;886,854;886,939;886,945;886,991;886,1040;886,1075;886,1078;886,1079;886,1107;887,725;887,800;887,802;887,876;887,1053;888,724;888,757;888,766;888,848;888,926;888,931;888,949;888,950;888,974;888,983;888,992;888,996;888,1024;889,337;889,712;889,714;889,793;889,805;889,834;889,923;889,989;889,1030;889,1054;889,1055;889,1099;890,15;890,437;890,793;890,796;890,810;890,819;890,822;890,866;890,885;890,922;890,997;890,1081;891,297;891,746;891,769;891,816;891,851;891,882;891,1021;891,1080;892,768;892,788;892,815;892,816;892,919;892,936;892,980;892,1042;892,1098;893,715;893,758;893,820;893,848;893,896;893,972;893,979;893,1025;894,395;894,731;894,770;894,1118;895,715;895,758;895,820;895,859;895,1025;895,1031;896,706;896,732;896,808;896,893;896,949;896,951;896,953;896,1027;897,730;897,868;897,947;897,955;897,1032;898,425;898,441;898,678;898,705;898,771;898,811;898,815;898,919;898,936;898,942;898,962;898,973;898,980;898,1007;898,1023;898,1098;899,724;899,766;899,848;899,883;899,935;899,949;899,969;900,725;900,738;900,771;900,776;900,850;900,856;900,883;900,967;900,1040;900,1084;900,1098;901,748;901,786;901,842;901,855;901,870;901,916;901,1000;901,1034;901,1054;901,1086;902,337;902,695;902,739;902,741;902,786;902,870;902,934;902,962;902,966;902,970;902,1000;902,1055;902,1065;902,1075;902,1081;902,1086;902,1099;903,683;903,698;903,737;903,746;903,808;903,941;903,1006;903,1011;903,1036;904,686;904,720;904,774;904,786;904,795;904,797;904,870;904,915;904,1051;904,1117;905,776;905,782;905,854;905,987;905,1001;906,932;906,939;906,1066;907,692;907,735;907,745;907,761;907,764;907,802;907,837;907,880;907,960;907,1039;907,1052;907,1082;907,1085;907,1097;907,1098;908,852;908,925;908,1060;909,690;909,756;909,841;909,997;910,498;910,704;910,710;910,830;910,863;910,995;910,1012;910,1021;911,723;911,748;911,786;911,826;911,838;911,855;911,858;911,867;911,882;911,1033;911,1034;911,1059;912,622;912,841;912,843;912,861;912,880;912,881;912,921;912,925;912,932;912,947;912,1100;913,704;913,720;913,765;913,801;913,939;913,1021;913,1078;914,930;914,933;915,792;915,793;915,841;915,843;915,904;915,962;915,1051;916,559;916,742;916,748;916,778;916,805;916,861;916,867;916,870;916,901;916,944;916,1032;916,1054;916,1060;916,1064;916,1082;917,838;917,1044;917,1122;918,672;918,833;918,1033;918,1063;918,1095;918,1125;919,771;919,811;919,813;919,815;919,892;919,898;919,931;919,936;919,938;919,981;919,1007;919,1098;919,1111;920,704;920,740;920,767;920,811;920,980;920,988;920,1098;921,717;921,781;921,789;921,845;921,912;921,1106;922,702;922,739;922,819;922,850;922,874;922,890;922,940;922,1021;922,1028;922,1059;922,1110;923,698;923,723;923,724;923,745;923,770;923,797;923,834;923,861;923,889;923,928;923,1064;924,714;924,717;924,741;924,776;924,830;924,845;925,728;925,787;925,832;925,852;925,908;925,912;925,1060;925,1115;926,687;926,708;926,732;926,772;926,804;926,808;926,888;926,935;926,949;926,953;926,974;926,983;926,986;926,992;926,1093;926,1123;927,571;927,813;927,852;927,1083;928,357;928,716;928,742;928,756;928,813;928,861;928,923;928,940;928,1064;929,680;929,800;929,803;929,848;929,866;929,873;929,931;929,957;929,968;929,987;929,1003;929,1073;929,1119;929,1123;930,783;930,826;930,914;930,1063;931,680;931,724;931,726;931,757;931,758;931,766;931,772;931,784;931,794;931,800;931,806;931,839;931,865;931,888;931,919;931,929;931,936;931,949;931,972;931,974;931,983;931,992;931,1119;932,436;932,795;932,826;932,835;932,838;932,868;932,881;932,906;932,912;932,943;932,947;932,1005;932,1028;932,1084;932,1094;932,1100;933,684;933,914;933,1009;933,1076;934,682;934,728;934,819;934,881;934,902;934,1020;934,1028;934,1055;934,1090;935,687;935,706;935,708;935,724;935,726;935,732;935,757;935,772;935,780;935,794;935,804;935,806;935,848;935,856;935,873;935,899;935,926;935,949;935,953;935,957;935,983;935,985;935,1123;936,163;936,223;936,383;936,643;936,681;936,689;936,722;936,724;936,766;936,771;936,772;936,773;936,811;936,815;936,856;936,871;936,879;936,892;936,898;936,919;936,931;936,938;936,942;936,965;936,973;936,981;936,1007;936,1040;936,1047;936,1098;936,1123;936,1124;937,0;937,774;937,786;937,821;937,864;937,870;937,1081;938,121;938,163;938,342;938,680;938,709;938,750;938,788;938,794;938,811;938,815;938,863;938,919;938,936;938,942;938,976;938,980;938,1018;939,840;939,886;939,906;939,913;939,1107;940,720;940,844;940,845;940,880;940,922;940,928;940,1041;940,1082;941,698;941,745;941,770;941,822;941,852;941,881;941,903;941,1054;941,1081;941,1104;942,689;942,724;942,738;942,768;942,771;942,772;942,811;942,815;942,898;942,936;942,938;942,965;942,973;942,1047;942,1098;943,676;943,725;943,854;943,932;943,985;943,1015;943,1125;944,673;944,712;944,714;944,717;944,719;944,723;944,742;944,748;944,858;944,870;944,916;944,1054;945,713;945,733;945,750;945,769;945,876;945,886;945,1014;945,1045;945,1078;945,1126;946,682;946,832;946,845;946,850;946,869;946,1061;946,1090;947,649;947,868;947,897;947,912;947,932;947,997;947,1032;947,1065;947,1100;947,1102;947,1105;948,654;948,685;948,717;948,798;948,845;948,865;948,1043;948,1054;948,1082;948,1101;949,680;949,724;949,726;949,732;949,757;949,766;949,772;949,888;949,896;949,899;949,926;949,931;949,935;949,983;949,986;949,992;949,1024;949,1123;950,687;950,757;950,801;950,888;950,960;950,1063;950,1082;950,1099;950,1116;950,1126;951,861;951,896;951,994;951,1061;951,1111;952,698;952,710;952,805;952,838;952,1042;952,1065;953,687;953,696;953,706;953,737;953,808;953,848;953,883;953,896;953,926;953,935;953,996;953,1089;953,1126;954,684;954,721;954,780;954,806;954,818;954,969;954,979;955,789;955,897;955,1038;956,770;956,805;956,834;956,867;956,870;956,1086;957,737;957,758;957,849;957,875;957,929;957,935;957,985;957,1006;958,768;958,773;958,814;958,871;958,879;959,688;959,1096;960,671;960,677;960,833;960,837;960,907;960,950;960,1027;960,1082;960,1083;961,689;961,733;961,738;961,751;961,768;961,773;961,856;961,967;961,1047;961,1085;962,725;962,782;962,863;962,898;962,902;962,915;962,1081;963,677;963,728;963,770;963,833;963,838;963,1030;963,1049;963,1125;964,218;964,312;964,721;964,1011;964,1045;964,1072;964,1078;965,771;965,809;965,814;965,856;965,879;965,936;965,942;965,973;965,996;965,1015;965,1067;965,1123;966,82;966,399;966,728;966,740;966,750;966,762;966,782;966,838;966,902;966,1005;966,1008;966,1029;966,1059;966,1078;966,1088;966,1100;967,681;967,689;967,709;967,722;967,733;967,751;967,768;967,814;967,856;967,871;967,900;967,961;967,1014;967,1047;967,1124;968,764;968,777;968,782;968,854;968,929;968,987;969,675;969,680;969,801;969,811;969,899;969,954;969,1012;969,1013;969,1116;970,465;970,710;970,788;970,864;970,878;970,902;970,1023;970,1036;971,292;971,829;971,1023;971,1107;972,715;972,820;972,893;972,931;972,1002;972,1089;973,643;973,722;973,724;973,738;973,768;973,771;973,773;973,811;973,856;973,871;973,879;973,898;973,936;973,942;973,965;973,1007;973,1098;973,1124;974,687;974,740;974,746;974,757;974,772;974,794;974,811;974,888;974,926;974,931;974,975;974,983;974,986;974,992;974,1007;974,1012;974,1035;974,1093;975,687;975,695;975,974;975,1002;975,1004;976,697;976,703;976,710;976,728;976,746;976,788;976,938;976,980;976,995;976,1007;976,1075;976,1108;977,1056;978,671;979,755;979,758;979,780;979,784;979,800;979,818;979,848;979,893;979,954;979,999;979,1003;979,1006;979,1013;979,1058;979,1093;980,441;980,594;980,701;980,703;980,728;980,740;980,750;980,797;980,811;980,813;980,830;980,892;980,898;980,920;980,938;980,976;980,981;980,995;980,1005;980,1042;980,1078;980,1098;980,1103;980,1108;981,751;981,771;981,850;981,874;981,919;981,936;981,980;981,1035;981,1098;982,391;982,674;982,1042;983,706;983,757;983,794;983,798;983,848;983,859;983,888;983,926;983,931;983,935;983,949;983,974;983,990;983,992;983,999;983,1001;983,1024;983,1123;984,297;984,790;984,849;984,993;984,1121;985,708;985,768;985,804;985,873;985,875;985,935;985,943;985,957;985,992;985,999;985,1057;985,1123;986,687;986,705;986,706;986,708;986,772;986,794;986,926;986,949;986,974;986,1073;986,1089;986,1093;986,1123;987,68;987,674;987,782;987,854;987,905;987,929;987,968;988,704;988,753;988,828;988,862;988,920;988,1062;989,602;989,834;989,889;989,1112;990,873;990,983;990,1122;991,886;991,1076;992,757;992,766;992,820;992,888;992,926;992,931;992,949;992,974;992,983;992,985;992,996;992,999;992,1093;992,1123;993,773;993,790;993,984;993,1057;993,1058;993,1093;994,155;994,688;994,731;994,763;994,805;994,807;994,850;994,855;994,870;994,951;994,1000;994,1043;994,1050;994,1096;994,1103;994,1111;995,246;995,710;995,740;995,746;995,753;995,801;995,811;995,815;995,882;995,910;995,976;995,980;995,999;995,1012;995,1042;995,1078;995,1098;996,687;996,738;996,814;996,849;996,856;996,888;996,953;996,965;996,992;996,1040;996,1070;996,1089;997,571;997,729;997,885;997,890;997,909;997,947;997,1051;997,1059;997,1111;998,698;998,720;998,752;998,805;998,819;998,834;998,843;998,861;998,1010;998,1059;999,757;999,762;999,780;999,979;999,983;999,985;999,992;999,995;999,1017;1000,786;1000,797;1000,821;1000,832;1000,842;1000,870;1000,901;1000,902;1000,994;1000,1065;1000,1091;1001,597;1001,701;1001,715;1001,734;1001,750;1001,879;1001,905;1001,983;1001,1005;1001,1029;1001,1031;1001,1067;1001,1090;1001,1100;1002,696;1002,706;1002,755;1002,848;1002,972;1002,975;1003,399;1003,755;1003,866;1003,929;1003,979;1003,1006;1003,1012;1003,1025;1004,775;1004,807;1004,810;1004,975;1004,1010;1004,1032;1004,1055;1004,1077;1004,1082;1004,1091;1004,1095;1004,1097;1004,1117;1005,682;1005,719;1005,739;1005,747;1005,863;1005,932;1005,966;1005,980;1005,1001;1005,1019;1005,1055;1005,1090;1005,1091;1005,1097;1005,1102;1006,818;1006,849;1006,875;1006,903;1006,957;1006,979;1006,1003;1006,1025;1006,1031;1006,1088;1007,105;1007,703;1007,750;1007,771;1007,811;1007,815;1007,898;1007,919;1007,936;1007,973;1007,974;1007,976;1007,1012;1007,1098;1007,1108;1008,712;1008,752;1008,759;1008,796;1008,819;1008,822;1008,835;1008,840;1008,845;1008,850;1008,852;1008,869;1008,872;1008,878;1008,966;1008,1030;1008,1033;1008,1039;1008,1059;1008,1066;1008,1083;1008,1110;1009,676;1009,683;1009,685;1009,691;1009,707;1009,715;1009,762;1009,824;1009,839;1009,933;1009,1023;1009,1036;1009,1049;1009,1052;1009,1072;1009,1107;1010,742;1010,756;1010,817;1010,845;1010,852;1010,998;1010,1004;1010,1030;1010,1033;1010,1046;1010,1049;1010,1083;1010,1091;1010,1097;1010,1125;1011,816;1011,847;1011,903;1011,964;1011,1045;1011,1072;1011,1079;1011,1080;1012,100;1012,670;1012,680;1012,766;1012,784;1012,811;1012,815;1012,820;1012,836;1012,883;1012,910;1012,969;1012,974;1012,995;1012,1003;1012,1007;1012,1070;1012,1098;1013,312;1013,670;1013,680;1013,683;1013,721;1013,839;1013,969;1013,979;1013,1018;1013,1026;1013,1057;1013,1070;1014,681;1014,751;1014,782;1014,814;1014,856;1014,945;1014,967;1014,1084;1015,150;1015,597;1015,739;1015,747;1015,768;1015,811;1015,874;1015,879;1015,881;1015,943;1015,965;1015,1067;1016,603;1016,713;1016,727;1016,738;1016,739;1016,879;1016,1040;1016,1113;1017,707;1017,712;1017,816;1017,853;1017,999;1018,764;1018,786;1018,807;1018,829;1018,831;1018,938;1018,1013;1018,1056;1019,449;1019,670;1019,721;1019,747;1019,769;1019,782;1019,839;1019,1005;1019,1023;1019,1026;1019,1029;1019,1078;1019,1088;1020,240;1020,714;1020,807;1020,819;1020,824;1020,874;1020,934;1020,1059;1020,1066;1020,1074;1020,1096;1020,1115;1020,1118;1021,674;1021,707;1021,802;1021,847;1021,860;1021,891;1021,910;1021,913;1021,922;1021,1079;1022,812;1023,292;1023,648;1023,685;1023,739;1023,784;1023,788;1023,898;1023,970;1023,971;1023,1009;1023,1019;1023,1110;1024,680;1024,687;1024,701;1024,724;1024,776;1024,794;1024,808;1024,820;1024,888;1024,949;1024,983;1025,715;1025,730;1025,780;1025,836;1025,893;1025,895;1025,1003;1025,1006;1025,1031;1025,1088;1026,694;1026,754;1026,790;1026,1013;1026,1019;1026,1121;1027,695;1027,760;1027,798;1027,836;1027,845;1027,858;1027,896;1027,960;1027,1030;1027,1101;1027,1105;1028,702;1028,731;1028,795;1028,881;1028,922;1028,932;1028,934;1028,1032;1028,1038;1028,1100;1028,1115;1028,1120;1029,505;1029,740;1029,762;1029,782;1029,879;1029,884;1029,966;1029,1001;1029,1019;1029,1067;1029,1075;1029,1078;1029,1079;1030,742;1030,745;1030,770;1030,845;1030,852;1030,889;1030,963;1030,1008;1030,1010;1030,1027;1030,1033;1030,1091;1031,391;1031,715;1031,895;1031,1001;1031,1006;1031,1025;1031,1078;1031,1119;1032,242;1032,566;1032,775;1032,840;1032,881;1032,897;1032,916;1032,947;1032,1004;1032,1028;1032,1034;1032,1080;1032,1094;1033,712;1033,738;1033,770;1033,798;1033,817;1033,819;1033,867;1033,911;1033,918;1033,1008;1033,1010;1033,1030;1033,1059;1033,1120;1034,729;1034,837;1034,842;1034,901;1034,911;1034,1032;1035,675;1035,801;1035,839;1035,974;1035,981;1035,1113;1035,1116;1036,788;1036,903;1036,970;1036,1009;1037,676;1037,747;1037,761;1037,838;1037,864;1037,883;1038,955;1038,1028;1038,1094;1039,566;1039,819;1039,845;1039,907;1039,1008;1039,1059;1039,1061;1039,1082;1040,713;1040,725;1040,814;1040,854;1040,876;1040,879;1040,881;1040,886;1040,900;1040,936;1040,996;1040,1016;1040,1063;1040,1067;1040,1078;1040,1090;1041,673;1041,940;1042,680;1042,687;1042,726;1042,808;1042,892;1042,952;1042,980;1042,982;1042,995;1042,1103;1042,1118;1043,948;1043,994;1044,679;1044,917;1045,218;1045,721;1045,945;1045,964;1045,1011;1045,1072;1046,673;1046,776;1046,799;1046,812;1046,817;1046,826;1046,845;1046,862;1046,866;1046,1010;1046,1109;1047,738;1047,771;1047,856;1047,936;1047,942;1047,961;1047,967;1047,1098;1048,864;1048,1049;1048,1052;1048,1120;1049,776;1049,798;1049,833;1049,846;1049,862;1049,963;1049,1009;1049,1010;1049,1048;1049,1052;1049,1104;1049,1125;1050,748;1050,776;1050,785;1050,817;1050,819;1050,994;1050,1061;1050,1105;1051,154;1051,718;1051,904;1051,915;1051,997;1051,1059;1051,1074;1051,1096;1052,690;1052,736;1052,770;1052,907;1052,1009;1052,1048;1052,1049;1053,876;1053,887;1053,1073;1054,559;1054,599;1054,742;1054,786;1054,867;1054,872;1054,889;1054,901;1054,916;1054,941;1054,944;1054,948;1055,254;1055,682;1055,747;1055,810;1055,821;1055,889;1055,902;1055,934;1055,1004;1055,1005;1055,1099;1056,819;1056,977;1056,1018;1056,1085;1056,1107;1057,643;1057,680;1057,685;1057,724;1057,794;1057,815;1057,833;1057,835;1057,985;1057,993;1057,1013;1058,721;1058,754;1058,790;1058,801;1058,828;1058,873;1058,877;1058,979;1058,993;1059,240;1059,380;1059,686;1059,712;1059,728;1059,739;1059,744;1059,745;1059,748;1059,759;1059,770;1059,831;1059,835;1059,843;1059,850;1059,861;1059,869;1059,870;1059,872;1059,878;1059,880;1059,911;1059,922;1059,966;1059,997;1059,998;1059,1008;1059,1020;1059,1033;1059,1039;1059,1051;1059,1086;1059,1110;1060,798;1060,867;1060,908;1060,916;1060,925;1061,946;1061,951;1061,1039;1061,1050;1061,1094;1061,1111;1062,828;1062,988;1062,1079;1062,1080;1063,761;1063,918;1063,930;1063,950;1063,1040;1064,867;1064,916;1064,923;1064,928;1065,752;1065,870;1065,880;1065,902;1065,947;1065,952;1065,1000;1065,1086;1066,196;1066,347;1066,537;1066,602;1066,688;1066,711;1066,714;1066,729;1066,741;1066,819;1066,824;1066,906;1066,1008;1066,1020;1066,1096;1066,1106;1066,1112;1067,701;1067,713;1067,727;1067,857;1067,879;1067,965;1067,1001;1067,1015;1067,1029;1067,1040;1067,1113;1068,805;1068,835;1069,756;1069,796;1069,840;1069,841;1069,861;1069,880;1069,1118;1070,705;1070,996;1070,1012;1070,1013;1071,795;1071,1112;1072,218;1072,677;1072,685;1072,721;1072,762;1072,827;1072,866;1072,964;1072,1009;1072,1011;1072,1045;1072,1078;1073,929;1073,986;1073,1053;1073,1119;1074,240;1074,674;1074,756;1074,1020;1074,1051;1074,1077;1074,1106;1075,179;1075,473;1075,740;1075,750;1075,762;1075,811;1075,851;1075,882;1075,886;1075,902;1075,976;1075,1029;1076,933;1076,991;1077,677;1077,735;1077,810;1077,824;1077,826;1077,839;1077,846;1077,1004;1077,1074;1078,739;1078,740;1078,830;1078,874;1078,886;1078,913;1078,945;1078,964;1078,966;1078,980;1078,995;1078,1019;1078,1029;1078,1031;1078,1040;1078,1072;1078,1079;1078,1085;1078,1105;1078,1107;1079,740;1079,749;1079,762;1079,816;1079,847;1079,853;1079,886;1079,1011;1079,1021;1079,1029;1079,1062;1079,1078;1079,1080;1080,707;1080,762;1080,796;1080,851;1080,891;1080,1011;1080,1032;1080,1062;1080,1079;1081,699;1081,796;1081,819;1081,822;1081,890;1081,902;1081,937;1081,941;1081,962;1081,1091;1081,1099;1082,685;1082,741;1082,742;1082,786;1082,798;1082,822;1082,834;1082,846;1082,907;1082,916;1082,940;1082,948;1082,950;1082,960;1082,1004;1082,1039;1083,700;1083,776;1083,817;1083,844;1083,845;1083,846;1083,927;1083,960;1083,1008;1083,1010;1083,1099;1083,1125;1084,689;1084,733;1084,751;1084,876;1084,900;1084,932;1084,1014;1085,690;1085,756;1085,869;1085,907;1085,961;1085,1056;1085,1078;1085,1114;1086,719;1086,729;1086,821;1086,852;1086,855;1086,870;1086,901;1086,902;1086,956;1086,1059;1086,1065;1087,812;1088,203;1088,754;1088,782;1088,849;1088,875;1088,966;1088,1006;1088,1019;1088,1025;1088,1121;1089,687;1089,696;1089,701;1089,732;1089,800;1089,808;1089,846;1089,953;1089,972;1089,986;1089,996;1090,881;1090,934;1090,946;1090,1001;1090,1005;1090,1040;1090,1110;1090,1115;1091,671;1091,723;1091,786;1091,797;1091,807;1091,870;1091,1000;1091,1004;1091,1005;1091,1010;1091,1030;1091,1081;1091,1092;1091,1097;1091,1109;1092,711;1092,858;1092,861;1092,878;1092,1091;1092,1097;1093,687;1093,732;1093,784;1093,794;1093,804;1093,926;1093,974;1093,979;1093,986;1093,992;1093,993;1093,1123;1094,807;1094,819;1094,855;1094,885;1094,932;1094,1032;1094,1038;1094,1061;1094,1105;1095,866;1095,918;1095,1004;1096,688;1096,729;1096,731;1096,819;1096,834;1096,880;1096,959;1096,994;1096,1020;1096,1051;1096,1066;1097,671;1097,719;1097,742;1097,744;1097,748;1097,797;1097,807;1097,858;1097,867;1097,907;1097,1004;1097,1005;1097,1010;1097,1091;1097,1092;1097,1105;1097,1109;1098,722;1098,771;1098,811;1098,815;1098,823;1098,850;1098,856;1098,892;1098,898;1098,900;1098,907;1098,919;1098,920;1098,936;1098,942;1098,973;1098,980;1098,981;1098,995;1098,1007;1098,1012;1098,1047;1098,1126;1099,337;1099,433;1099,695;1099,748;1099,810;1099,858;1099,865;1099,889;1099,902;1099,950;1099,1055;1099,1081;1099,1083;1100,740;1100,881;1100,912;1100,932;1100,947;1100,966;1100,1001;1100,1028;1101,700;1101,793;1101,948;1101,1027;1102,747;1102,795;1102,837;1102,852;1102,947;1102,1005;1102,1117;1103,728;1103,729;1103,748;1103,865;1103,879;1103,885;1103,980;1103,994;1103,1042;1103,1114;1104,824;1104,941;1104,1049;1105,744;1105,785;1105,796;1105,826;1105,861;1105,947;1105,1027;1105,1050;1105,1078;1105,1094;1105,1097;1105,1111;1106,421;1106,711;1106,736;1106,741;1106,781;1106,795;1106,878;1106,921;1106,1066;1106,1074;1107,753;1107,764;1107,777;1107,782;1107,886;1107,939;1107,971;1107,1009;1107,1056;1107,1078;1108,626;1108,703;1108,715;1108,734;1108,767;1108,851;1108,976;1108,980;1108,1007;1109,368;1109,712;1109,719;1109,752;1109,783;1109,1046;1109,1091;1109,1097;1110,689;1110,702;1110,739;1110,819;1110,821;1110,874;1110,922;1110,1008;1110,1023;1110,1059;1110,1090;1111,819;1111,861;1111,880;1111,919;1111,951;1111,994;1111,997;1111,1061;1111,1105;1112,711;1112,795;1112,797;1112,841;1112,989;1112,1066;1112,1071;1113,342;1113,705;1113,740;1113,829;1113,851;1113,857;1113,879;1113,1016;1113,1035;1113,1067;1114,1085;1114,1103;1115,686;1115,747;1115,775;1115,850;1115,872;1115,879;1115,925;1115,1020;1115,1028;1115,1090;1116,670;1116,675;1116,801;1116,828;1116,839;1116,877;1116,950;1116,969;1116,1035;1117,795;1117,904;1117,1004;1117,1102;1118,728;1118,729;1118,786;1118,894;1118,1020;1118,1042;1118,1069;1119,788;1119,929;1119,931;1119,1031;1119,1073;1120,698;1120,723;1120,752;1120,867;1120,870;1120,878;1120,1028;1120,1033;1120,1048;1121,672;1121,694;1121,734;1121,754;1121,790;1121,849;1121,853;1121,984;1121,1026;1121,1088;1122,818;1122,820;1122,866;1122,877;1122,917;1122,990;1122,1125;1123,643;1123,708;1123,726;1123,757;1123,772;1123,804;1123,926;1123,929;1123,935;1123,936;1123,949;1123,965;1123,983;1123,985;1123,986;1123,992;1123,1093;1124,208;1124,771;1124,773;1124,856;1124,871;1124,936;1124,967;1124,973;1125,695;1125,776;1125,833;1125,881;1125,918;1125,943;1125,963;1125,1010;1125,1049;1125,1083;1125,1122;1126,687;1126,705;1126,849;1126,945;1126,950;1126,953;1126,1098]; end ================================================ FILE: src/matlab/experimental/graph_classification/get_adhealth_edges47.m ================================================ function edges = get_adhealth_edges47() edges = [0,277;0,455;0,463;0,573;1,420;1,465;1,507;1,558;2,13;2,169;2,196;2,263;2,514;2,529;2,641;3,577;4,30;4,58;4,60;4,78;4,110;4,205;4,211;4,265;4,308;4,433;4,459;4,466;4,520;4,524;5,65;5,80;5,83;5,183;5,271;5,287;5,313;5,319;5,372;5,411;5,416;5,527;5,613;6,61;6,195;6,232;6,236;6,372;6,445;6,481;6,544;6,547;6,623;7,305;7,357;7,433;7,488;7,502;7,651;8,84;8,115;8,160;8,235;8,430;8,432;8,449;8,477;8,488;8,585;8,590;8,607;9,254;9,303;9,353;9,400;9,426;9,610;10,144;10,189;10,296;10,400;10,450;10,509;10,636;11,20;11,41;11,58;11,162;11,184;11,205;11,234;11,331;11,356;11,652;12,45;12,96;12,347;12,349;12,388;12,396;12,555;13,2;13,169;13,258;13,263;13,434;13,443;13,458;13,529;13,641;14,29;14,33;14,57;14,154;14,220;14,238;14,244;14,296;14,504;14,509;14,513;15,46;15,107;15,198;15,298;15,300;15,470;15,477;15,587;15,621;15,623;16,73;16,82;16,122;16,163;16,212;16,269;16,378;16,390;16,395;16,417;16,544;16,564;16,656;16,666;17,24;17,48;17,300;17,317;17,457;17,508;17,596;18,73;18,101;18,176;18,183;18,337;18,338;18,354;18,378;18,386;18,392;18,396;18,668;19,22;19,26;19,66;19,75;19,266;19,301;19,552;19,563;19,570;19,653;20,11;20,24;20,69;20,179;20,204;20,218;20,223;20,396;20,506;20,627;21,24;21,49;21,58;21,108;21,270;21,366;21,367;21,388;21,389;21,562;21,571;21,604;21,615;22,19;22,44;22,75;22,493;22,552;23,87;23,127;23,312;23,363;24,17;24,20;24,21;24,26;24,81;24,229;24,233;24,486;24,552;24,585;24,645;25,78;25,518;26,19;26,24;26,44;26,75;26,216;26,242;26,509;26,552;26,629;26,644;27,80;27,145;27,411;27,634;28,150;28,166;28,308;28,422;28,453;28,457;28,512;29,14;29,154;29,191;29,236;29,296;29,597;29,656;30,4;30,114;30,200;30,211;30,308;30,409;30,520;30,617;31,75;31,97;31,216;31,266;31,364;31,371;31,515;31,546;31,653;32,56;32,77;32,190;32,201;32,221;32,259;32,457;32,465;32,470;32,547;32,606;32,628;33,14;33,57;33,100;33,125;33,135;33,144;33,208;33,217;33,359;34,61;34,84;34,142;34,191;34,249;34,294;34,330;34,341;34,381;34,430;34,460;34,496;34,521;34,527;34,537;34,566;34,571;34,590;34,642;35,45;35,77;35,78;35,136;35,200;35,241;35,302;35,360;35,397;35,421;35,477;35,488;35,596;35,601;36,140;36,190;36,261;36,300;36,317;36,374;36,391;36,459;36,464;36,594;36,643;37,40;37,72;37,417;37,429;38,359;38,514;39,438;39,465;39,561;39,593;40,37;40,95;40,298;40,419;40,639;41,11;41,67;41,175;41,184;41,222;41,279;41,331;41,394;41,401;41,529;41,666;42,425;42,510;42,651;43,78;43,178;43,223;43,236;43,318;43,328;43,358;44,22;44,26;44,75;44,133;44,360;44,475;44,486;44,509;44,552;44,563;44,629;45,12;45,35;45,47;45,80;45,83;45,112;45,188;45,396;45,405;45,440;46,15;46,201;46,246;46,254;46,341;46,362;46,452;46,510;46,621;47,45;47,77;47,112;47,184;47,311;47,492;48,17;48,92;48,133;48,233;48,265;48,272;48,293;48,317;48,322;48,333;48,353;48,486;48,495;48,647;49,21;49,180;49,191;49,264;49,268;49,362;49,367;49,393;49,557;49,563;49,621;49,625;50,100;50,479;51,101;51,142;51,194;51,273;51,595;51,602;52,54;52,119;52,122;52,154;52,158;52,228;52,332;52,450;52,576;52,596;52,656;53,174;53,346;53,364;54,52;54,68;54,73;54,85;54,228;54,332;54,378;54,654;55,67;55,112;55,163;55,188;55,203;55,214;55,232;55,328;55,337;55,364;55,519;55,544;55,633;55,657;55,666;56,32;56,164;56,221;56,257;56,388;56,435;56,470;56,549;57,14;57,33;57,111;57,125;57,154;57,239;57,244;57,312;57,450;57,466;57,476;57,493;57,638;58,4;58,11;58,21;58,107;58,142;58,162;58,181;58,218;58,330;58,372;58,527;59,395;59,448;59,526;59,564;59,635;60,4;60,292;61,6;61,34;61,76;61,130;61,131;61,163;61,232;61,236;61,294;61,365;61,374;61,423;61,579;61,584;61,590;62,541;63,108;63,209;63,280;63,352;63,402;63,425;63,467;63,534;63,626;64,141;64,257;64,262;64,278;64,321;64,456;64,497;64,565;64,574;64,604;65,5;65,109;65,116;65,178;65,279;65,287;65,313;65,373;65,396;65,411;65,424;65,458;65,555;65,613;66,19;66,256;66,257;66,301;66,321;66,328;66,451;66,468;66,479;66,541;66,565;66,649;67,41;67,55;67,82;67,112;67,223;67,232;67,290;67,378;67,544;67,666;68,54;68,73;68,85;68,228;68,240;68,332;69,20;69,204;69,218;69,288;69,572;69,627;69,635;70,129;70,182;70,316;70,370;70,413;70,422;70,531;70,667;71,164;71,269;71,294;71,346;71,349;71,361;71,443;71,626;71,662;72,37;72,106;73,16;73,18;73,54;73,68;73,85;73,337;73,354;73,368;73,378;73,554;73,576;73,668;74,140;74,167;74,229;74,261;75,19;75,22;75,26;75,31;75,44;75,129;75,282;75,301;75,305;75,491;75,504;75,552;75,563;75,568;75,606;76,61;76,89;76,101;76,139;76,173;76,184;76,188;76,194;76,202;76,223;76,232;76,236;76,260;76,273;76,290;76,295;76,373;76,375;76,386;76,519;76,554;76,581;76,611;76,633;76,649;77,32;77,35;77,47;77,115;77,141;77,263;77,431;77,469;77,488;77,651;78,4;78,25;78,35;78,43;78,255;78,259;78,398;78,459;78,502;78,525;79,217;79,598;80,5;80,27;80,45;80,148;80,155;80,277;80,385;80,416;80,448;80,613;80,629;81,24;81,645;82,16;82,67;82,160;82,231;82,278;82,538;82,540;82,550;82,588;82,591;82,593;82,613;82,662;83,5;83,45;83,104;83,173;83,188;83,203;83,212;83,214;83,243;83,267;83,416;83,448;83,462;83,553;83,613;83,657;83,665;84,8;84,34;84,209;84,225;84,389;84,443;84,474;84,521;84,590;84,642;84,654;85,54;85,68;85,73;85,177;85,228;85,240;85,354;85,390;85,512;85,601;86,300;86,326;86,590;86,619;87,23;87,404;87,438;87,477;88,142;88,160;88,204;88,231;88,273;88,346;88,404;88,438;88,572;88,595;88,655;89,76;89,112;89,118;89,445;89,533;90,136;90,143;90,264;90,428;90,571;91,299;91,302;91,470;91,527;91,574;91,609;92,48;92,477;92,496;92,596;92,598;92,599;92,600;93,153;93,292;93,299;93,315;93,614;94,157;94,562;94,615;95,40;95,153;95,360;95,419;95,548;95,619;95,639;95,648;96,12;96,137;96,145;96,159;96,228;96,311;96,332;96,334;96,339;96,424;96,463;96,485;96,515;96,526;96,576;96,580;97,31;97,339;97,481;98,137;98,194;98,255;98,271;98,373;98,423;98,556;98,573;98,576;98,580;98,584;98,605;98,613;99,326;99,341;99,560;99,619;100,33;100,50;100,258;100,356;100,420;100,525;100,574;100,607;101,18;101,51;101,76;101,132;101,148;101,194;101,199;101,267;101,279;101,338;101,386;101,506;101,666;102,108;102,132;102,194;102,210;102,227;102,264;102,504;102,574;102,604;103,120;103,140;103,251;103,391;103,397;103,508;104,83;104,105;104,132;104,165;104,203;104,437;104,443;104,553;104,573;104,606;104,662;104,665;105,104;105,174;105,443;105,606;106,72;106,107;106,211;106,417;106,453;106,477;106,530;107,15;107,58;107,106;107,268;107,352;107,384;107,456;107,465;107,584;107,623;108,21;108,63;108,102;108,205;108,314;108,504;108,646;109,65;109,132;109,199;109,228;109,359;109,384;109,408;109,412;109,465;109,593;109,630;109,656;109,666;110,4;110,233;110,293;111,57;111,299;111,302;111,359;111,474;112,45;112,47;112,55;112,67;112,89;112,184;112,311;112,361;112,461;112,544;112,569;112,602;112,626;112,666;113,170;113,187;113,230;113,271;113,279;113,313;113,386;113,514;113,576;113,580;113,665;114,30;114,427;114,431;114,449;114,478;114,557;114,558;114,615;115,8;115,77;115,164;115,427;115,443;115,449;115,474;115,494;116,65;116,118;116,270;116,279;116,313;116,411;116,427;116,441;116,458;116,528;116,575;116,613;117,122;117,187;117,266;117,267;117,427;117,463;117,553;117,607;117,653;118,89;118,116;118,518;118,610;119,52;119,132;119,255;119,581;119,656;120,103;120,150;120,187;120,231;120,251;120,292;120,374;120,394;120,527;120,535;120,600;121,122;121,132;121,369;121,493;121,561;121,591;122,16;122,52;122,117;122,121;122,132;122,199;122,205;122,354;122,375;122,378;122,414;122,440;122,504;122,656;123,348;123,357;123,358;123,387;123,414;123,434;123,443;123,502;123,573;123,577;124,134;124,285;124,457;124,568;124,667;125,33;125,57;125,144;125,275;125,530;125,630;126,152;126,195;126,370;126,379;126,382;126,386;126,413;126,422;126,426;126,465;126,471;126,512;126,546;127,23;127,157;127,331;127,461;127,477;127,486;127,531;128,138;128,268;128,341;128,350;128,377;128,559;128,566;128,567;128,646;129,70;129,75;129,131;129,195;129,216;129,364;129,370;129,426;129,450;129,456;129,511;129,559;130,61;130,144;130,270;130,297;130,345;130,389;130,473;130,485;130,498;130,499;130,574;131,61;131,129;131,135;131,191;131,203;131,205;131,232;131,293;131,330;131,385;131,527;131,534;131,565;132,101;132,102;132,104;132,109;132,119;132,121;132,122;132,163;132,199;132,247;132,269;132,458;132,477;132,506;132,612;132,618;132,656;132,666;133,44;133,48;133,134;133,212;133,241;133,322;133,391;133,483;133,513;134,124;134,133;134,285;134,510;134,534;135,33;135,131;135,144;135,451;135,474;135,517;135,541;135,565;136,35;136,90;136,144;136,216;136,527;136,534;136,540;136,547;136,559;136,585;136,659;137,96;137,98;137,212;137,271;137,319;137,327;137,437;137,576;137,580;137,613;138,128;138,205;138,268;138,350;138,364;138,404;138,456;138,546;139,76;139,188;139,194;139,223;139,227;139,273;139,290;139,351;139,358;139,566;139,633;140,36;140,74;140,103;140,190;140,197;140,374;140,394;140,464;140,594;141,64;141,77;141,246;141,263;141,284;141,310;141,339;141,350;141,444;141,570;141,614;141,659;141,660;142,34;142,51;142,58;142,88;142,223;142,224;142,232;142,255;142,273;142,303;142,351;142,374;142,422;142,479;142,481;142,506;142,544;142,585;142,595;142,600;143,90;143,212;143,428;143,437;143,462;143,569;144,10;144,33;144,125;144,130;144,135;144,136;144,164;144,185;144,237;144,252;144,353;144,499;145,27;145,96;145,159;145,334;145,364;145,474;145,491;145,640;145,649;146,149;147,155;147,255;147,339;147,501;147,524;147,620;147,623;147,631;148,80;148,101;148,166;148,170;148,194;148,267;148,309;148,338;148,343;148,385;148,468;148,506;148,572;148,605;149,146;149,164;149,168;149,227;149,357;149,439;149,443;150,28;150,120;150,218;150,251;150,351;150,394;150,422;150,569;150,600;151,168;151,175;152,126;152,174;152,382;152,384;152,465;153,93;153,95;153,157;153,235;153,315;153,452;153,548;153,614;153,624;153,648;154,14;154,29;154,52;154,57;154,158;154,244;154,296;154,369;154,509;155,80;155,147;155,183;155,203;155,214;155,247;155,376;155,416;155,462;155,553;155,564;155,630;155,633;156,244;156,306;156,402;156,445;156,477;156,519;156,570;156,620;156,622;157,94;157,127;157,153;157,339;157,508;157,530;157,619;158,52;158,154;158,399;158,529;159,96;159,145;159,334;159,366;159,500;160,8;160,82;160,88;160,204;160,298;160,307;160,308;160,326;160,389;160,432;160,433;160,437;160,438;160,538;160,569;160,588;160,592;160,600;160,619;160,627;161,196;161,309;161,514;162,11;162,58;162,181;162,306;162,330;162,397;162,620;163,16;163,55;163,61;163,132;163,194;163,202;163,232;163,247;163,269;163,288;163,290;163,328;163,378;163,399;163,519;163,618;163,656;164,56;164,71;164,115;164,144;164,149;164,443;164,449;165,104;165,203;165,214;165,334;165,416;165,613;165,657;166,28;166,148;166,177;166,240;166,391;167,74;167,193;167,229;167,235;167,239;167,244;167,245;167,261;167,272;167,429;167,508;167,639;168,149;168,151;168,216;168,289;168,322;168,436;168,523;169,2;169,13;169,263;169,514;169,640;169,659;170,113;170,148;170,183;170,282;170,301;170,320;170,401;170,486;170,573;171,183;171,553;171,668;172,225;172,473;172,571;172,629;173,76;173,83;173,212;173,248;173,278;173,300;173,345;173,369;173,561;173,581;173,592;173,630;173,659;173,660;174,53;174,105;174,152;174,193;174,248;174,607;174,624;175,41;175,151;175,222;175,416;175,437;175,529;176,18;176,372;176,446;177,85;177,166;177,240;177,241;177,354;177,390;177,512;177,601;178,43;178,65;178,224;178,281;178,358;178,396;178,626;179,20;179,566;180,49;180,482;180,626;180,645;181,58;181,162;181,184;181,218;181,331;181,356;181,461;182,70;182,466;183,5;183,18;183,155;183,170;183,171;183,212;183,232;183,276;183,361;183,437;183,448;183,526;183,553;183,613;183,649;183,665;184,11;184,41;184,47;184,76;184,112;184,181;184,188;184,356;184,401;184,404;184,461;184,569;184,588;185,144;185,196;185,238;185,244;185,252;185,284;185,464;185,513;186,265;186,316;186,370;186,466;186,516;186,559;186,567;187,113;187,117;187,120;187,266;187,388;187,435;187,528;187,544;188,45;188,55;188,76;188,83;188,139;188,184;188,194;188,204;188,232;188,255;188,269;188,328;188,441;188,506;188,519;188,578;188,633;188,635;189,10;189,193;189,282;189,301;189,398;189,513;189,652;190,32;190,36;190,140;190,254;190,300;190,317;190,391;190,459;190,464;190,520;190,598;190,643;191,29;191,34;191,49;191,131;191,268;191,295;191,358;191,393;191,477;191,522;191,534;192,261;192,529;193,167;193,174;193,189;193,230;193,238;193,239;193,244;193,297;193,436;194,51;194,76;194,98;194,101;194,102;194,139;194,148;194,163;194,188;194,260;194,394;194,506;194,605;194,610;194,611;194,649;194,655;195,6;195,126;195,129;195,280;195,546;195,567;196,2;196,161;196,185;196,262;196,397;196,407;196,414;196,514;196,555;196,610;197,140;197,222;197,395;197,430;197,458;197,585;198,15;198,306;198,360;199,101;199,109;199,122;199,132;199,260;199,270;199,278;199,294;199,383;199,384;199,581;199,656;200,30;200,35;200,201;200,211;200,317;200,360;200,397;200,409;200,510;200,551;200,628;201,32;201,46;201,200;201,310;201,329;201,410;201,470;201,503;201,505;201,510;202,76;202,163;202,243;202,247;202,260;202,269;202,337;202,373;202,458;202,554;202,571;202,593;202,618;202,662;202,668;203,55;203,83;203,104;203,131;203,155;203,165;203,212;203,214;203,247;203,385;203,416;203,437;203,440;203,448;203,462;203,468;203,553;203,564;203,603;203,633;203,657;203,665;203,666;204,20;204,69;204,88;204,160;204,188;204,207;204,224;204,254;204,281;204,295;204,300;204,396;204,404;204,569;204,635;204,655;205,4;205,11;205,108;205,122;205,131;205,138;205,234;205,293;205,306;205,314;205,350;205,527;206,437;206,440;206,448;206,553;206,657;207,204;207,218;207,268;207,313;207,352;207,404;207,427;207,540;208,33;208,228;208,296;208,301;208,320;208,353;208,412;208,491;208,612;209,63;209,84;209,224;209,268;209,318;209,369;209,551;209,642;209,652;210,102;210,504;210,547;210,597;211,4;211,30;211,106;211,200;211,397;211,409;211,495;211,503;211,510;212,16;212,83;212,133;212,137;212,143;212,173;212,183;212,203;212,214;212,222;212,273;212,338;212,437;212,553;212,564;212,591;212,603;212,618;212,629;212,649;212,653;212,657;212,665;213,274;213,365;214,55;214,83;214,155;214,165;214,203;214,212;214,247;214,271;214,330;214,376;214,468;214,553;214,603;214,618;214,657;215,483;216,26;216,31;216,129;216,136;216,168;216,266;216,271;216,463;216,468;216,615;216,653;217,33;217,79;217,233;217,295;217,302;217,336;217,360;217,476;217,538;217,643;218,20;218,58;218,69;218,150;218,181;218,207;218,321;218,332;218,352;218,370;218,374;218,404;218,474;218,572;219,246;219,486;220,14;220,238;220,296;220,456;220,471;220,517;220,567;221,32;221,56;221,628;221,629;222,41;222,175;222,197;222,212;222,247;222,261;222,347;222,376;222,438;222,441;222,519;222,535;222,611;223,20;223,43;223,67;223,76;223,139;223,142;223,449;223,578;223,727;224,142;224,178;224,204;224,209;224,255;224,356;224,369;224,372;224,461;224,481;224,544;224,605;225,84;225,172;225,250;225,341;225,387;225,408;225,474;225,494;225,521;225,589;225,607;225,642;226,583;226,640;227,102;227,139;227,149;227,230;227,589;227,659;227,660;228,52;228,54;228,68;228,85;228,96;228,109;228,208;228,278;228,332;228,412;229,24;229,74;229,167;229,238;229,245;229,272;229,429;229,492;229,508;230,113;230,193;230,227;230,455;230,494;230,533;230,582;230,587;230,589;230,607;231,82;231,88;231,120;231,245;231,307;231,383;231,427;231,432;231,433;231,438;231,538;231,569;231,588;232,6;232,55;232,61;232,67;232,76;232,131;232,142;232,163;232,183;232,188;232,236;232,294;232,295;232,328;232,362;232,373;232,447;232,554;232,578;233,24;233,48;233,110;233,217;233,235;233,254;233,272;233,293;233,348;233,495;233,614;233,615;233,647;234,11;234,205;234,293;234,302;234,513;234,542;234,570;234,589;234,652;235,8;235,153;235,167;235,233;235,432;235,490;236,6;236,29;236,43;236,61;236,76;236,232;236,290;236,294;236,295;236,328;236,362;236,375;236,447;236,519;236,554;236,578;236,618;236,633;237,144;238,14;238,185;238,193;238,220;238,229;238,239;238,244;238,245;238,261;238,330;239,57;239,167;239,193;239,238;239,456;239,607;240,68;240,85;240,166;240,177;240,241;240,337;240,354;240,378;240,390;240,415;240,512;240,535;241,35;241,133;241,177;241,240;241,316;241,322;241,378;241,390;241,391;241,448;241,596;241,601;241,627;242,26;242,371;242,500;242,515;242,539;242,644;243,83;243,202;243,264;243,351;243,395;243,399;243,444;243,462;243,553;243,564;243,573;243,611;244,14;244,57;244,154;244,156;244,167;244,185;244,193;244,238;244,284;244,468;244,567;245,167;245,229;245,231;245,238;245,308;245,429;245,487;245,596;246,46;246,141;246,219;246,393;246,535;246,614;247,132;247,155;247,163;247,202;247,203;247,214;247,222;247,290;247,337;247,462;247,535;247,554;247,564;247,571;247,593;247,618;247,633;247,657;247,668;248,173;248,174;248,320;248,352;248,463;249,34;249,288;249,527;249,584;249,590;250,225;250,410;250,623;251,103;251,120;251,150;251,265;251,292;251,394;252,144;252,185;252,591;253,255;253,288;253,456;253,559;253,572;253,635;253,649;253,655;253,667;253,668;254,9;254,46;254,190;254,204;254,233;254,398;254,493;254,499;254,525;254,609;254,629;255,78;255,98;255,119;255,142;255,147;255,188;255,224;255,253;255,423;255,445;255,556;255,578;255,610;256,66;256,257;256,297;256,518;256,526;257,56;257,64;257,66;257,256;257,259;257,518;257,649;258,13;258,100;258,289;258,418;258,434;258,489;258,642;259,32;259,78;259,257;259,407;259,442;259,549;260,76;260,194;260,199;260,202;260,337;260,375;260,458;260,578;260,633;261,36;261,74;261,167;261,192;261,222;261,238;261,391;261,397;261,424;261,464;261,508;261,529;262,64;262,196;262,555;262,581;262,604;262,659;263,2;263,13;263,77;263,141;263,169;263,350;263,436;263,447;263,458;263,573;263,656;264,49;264,90;264,102;264,243;264,367;264,393;264,509;264,534;264,542;265,4;265,48;265,186;265,251;265,324;265,372;265,377;265,426;265,446;265,466;265,481;265,544;266,19;266,31;266,117;266,187;266,216;266,271;266,282;266,301;266,491;266,582;266,634;266,636;266,653;267,83;267,101;267,117;267,148;267,300;267,309;267,338;267,396;267,440;267,448;267,553;267,605;268,49;268,107;268,128;268,138;268,191;268,207;268,209;268,280;268,341;268,350;268,377;268,422;268,546;268,566;268,567;269,16;269,71;269,132;269,163;269,188;269,202;269,351;269,399;269,593;269,604;269,612;269,618;269,630;269,662;270,21;270,116;270,130;270,199;270,361;270,383;270,389;270,484;271,5;271,98;271,113;271,137;271,214;271,216;271,266;271,279;271,325;271,371;271,385;271,423;271,468;271,491;271,506;271,576;271,580;271,613;271,649;271,653;271,657;272,48;272,167;272,229;272,233;272,293;272,350;272,464;272,508;273,51;273,76;273,88;273,139;273,142;273,212;273,338;273,396;273,462;273,578;273,595;273,633;274,213;274,293;274,559;274,625;275,125;275,318;276,183;276,280;276,288;276,373;276,579;277,0;277,80;277,279;277,313;277,325;277,411;277,427;277,455;277,528;277,575;277,580;277,603;277,613;278,64;278,82;278,173;278,199;278,228;278,321;278,412;278,607;279,41;279,65;279,101;279,113;279,116;279,271;279,277;279,287;279,313;279,385;279,386;279,411;279,444;279,580;279,613;280,63;280,195;280,268;280,276;280,288;280,526;281,178;281,204;281,295;281,318;281,386;281,396;281,421;281,558;281,626;282,75;282,170;282,189;282,266;282,301;282,582;282,652;283,293;283,302;283,429;283,495;283,533;283,605;284,141;284,185;284,244;284,350;284,393;284,450;284,464;284,471;284,477;284,567;285,124;285,134;285,457;285,568;285,606;286,321;286,364;286,407;286,408;286,457;286,574;286,591;286,651;287,5;287,65;287,279;287,313;287,371;287,385;287,411;287,440;287,576;287,608;287,613;288,69;288,163;288,249;288,253;288,276;288,280;288,579;289,168;289,258;289,345;289,387;289,418;289,439;289,489;290,67;290,76;290,139;290,163;290,236;290,247;290,295;290,330;290,440;290,554;290,605;290,633;290,657;291,371;291,440;291,572;291,582;291,649;292,60;292,93;292,120;292,251;292,298;292,322;292,333;292,394;292,477;292,502;292,559;293,48;293,110;293,131;293,205;293,233;293,234;293,272;293,274;293,283;293,306;293,421;293,436;293,444;293,486;293,495;293,542;293,545;293,563;294,34;294,61;294,71;294,199;294,232;294,236;294,352;294,423;294,492;294,556;294,590;294,665;295,76;295,191;295,204;295,217;295,232;295,236;295,281;295,290;295,351;295,386;295,404;296,10;296,14;296,29;296,154;296,208;296,220;296,332;296,365;296,369;296,415;296,497;296,504;296,597;296,612;296,630;297,130;297,193;297,256;297,479;297,495;297,499;297,537;297,647;298,15;298,40;298,160;298,292;298,360;298,530;298,614;298,617;298,637;298,648;299,91;299,93;299,111;299,302;299,370;299,415;299,476;300,15;300,17;300,36;300,86;300,173;300,190;300,204;300,267;300,317;300,342;300,374;300,410;300,459;300,520;301,19;301,66;301,75;301,170;301,189;301,208;301,266;301,282;301,491;301,582;301,610;301,653;302,35;302,91;302,111;302,217;302,234;302,283;302,299;302,475;302,493;302,499;302,530;302,540;302,547;302,560;302,645;303,9;303,142;303,304;303,310;303,314;303,613;303,646;304,303;304,310;304,314;304,570;304,646;305,7;305,75;305,324;305,339;305,364;305,431;305,501;305,622;306,156;306,162;306,198;306,205;306,293;306,307;306,321;306,350;306,370;306,617;307,160;307,231;307,306;308,4;308,28;308,30;308,160;308,245;308,319;308,344;308,421;308,430;308,459;308,588;308,594;308,596;309,148;309,161;309,267;309,338;309,440;310,141;310,201;310,303;310,304;310,419;310,480;310,492;310,503;310,507;310,510;310,557;310,646;311,47;311,96;311,112;311,327;311,389;311,477;311,569;312,23;312,57;312,326;312,363;312,446;312,476;313,5;313,65;313,113;313,116;313,207;313,277;313,279;313,287;313,380;313,411;313,424;313,427;313,455;313,518;313,528;313,575;313,613;314,108;314,205;314,303;314,304;314,410;314,474;314,494;314,505;314,510;314,628;314,646;315,93;315,153;316,70;316,186;316,241;316,370;316,390;317,17;317,36;317,48;317,190;317,200;317,300;317,398;317,410;317,459;317,461;317,483;317,551;318,43;318,209;318,275;318,281;318,616;319,5;319,137;319,308;319,325;319,351;319,490;319,580;319,613;319,621;320,170;320,208;320,248;320,358;320,361;320,492;320,612;321,64;321,66;321,218;321,278;321,286;321,306;321,339;321,497;321,570;321,574;321,651;322,48;322,133;322,168;322,241;322,292;322,344;322,353;322,391;322,459;322,522;322,658;323,357;323,387;324,265;324,305;324,339;324,418;324,466;325,271;325,277;325,319;325,327;325,371;325,468;326,86;326,99;326,160;326,312;326,404;326,594;326,619;326,900;327,137;327,311;327,325;327,365;327,458;327,528;327,575;327,592;328,43;328,55;328,66;328,163;328,188;328,232;328,236;328,473;328,519;328,578;328,666;328,668;329,201;329,467;329,532;330,34;330,58;330,131;330,162;330,214;330,238;330,290;330,375;330,410;330,416;330,590;330,657;331,11;331,41;331,127;331,181;331,421;331,511;331,520;331,531;331,593;332,52;332,54;332,68;332,96;332,218;332,228;332,296;332,365;332,456;332,512;332,589;333,48;333,292;333,347;333,350;333,353;333,420;333,487;333,534;333,540;333,545;334,96;334,145;334,159;334,165;334,416;334,603;334,613;335,353;335,355;335,436;335,483;336,217;336,377;336,476;337,18;337,55;337,73;337,202;337,240;337,247;337,260;337,375;337,458;337,571;337,668;338,18;338,101;338,148;338,212;338,267;338,273;338,309;338,385;338,564;338,578;339,96;339,97;339,141;339,147;339,157;339,305;339,321;339,324;339,343;339,388;339,463;339,481;339,485;339,501;339,530;339,574;339,623;339,634;340,356;340,377;340,379;340,380;340,446;340,453;340,476;340,620;341,34;341,46;341,99;341,128;341,225;341,268;341,487;341,494;341,566;341,567;342,300;342,386;342,396;342,400;343,148;343,339;344,308;344,322;344,352;344,564;344,585;345,130;345,173;345,289;345,499;345,531;345,659;346,53;346,71;346,88;346,389;346,406;346,635;347,12;347,222;347,333;347,501;348,123;348,233;348,349;348,514;348,577;348,614;348,641;349,12;349,71;349,348;349,350;349,395;349,399;349,405;349,529;350,128;350,138;350,141;350,205;350,263;350,268;350,272;350,284;350,306;350,333;350,349;350,353;350,393;350,422;350,456;350,464;350,535;350,566;350,567;351,139;351,142;351,150;351,243;351,269;351,295;351,319;351,386;351,396;351,569;351,573;351,593;352,63;352,107;352,207;352,218;352,248;352,294;352,344;352,391;352,403;352,406;352,560;352,597;352,604;353,9;353,48;353,144;353,208;353,322;353,333;353,335;353,350;353,393;353,398;353,410;353,487;353,499;353,507;353,615;354,18;354,73;354,85;354,122;354,177;354,240;354,378;354,539;354,599;354,602;355,335;355,381;355,460;355,537;355,593;355,630;356,11;356,100;356,181;356,184;356,224;356,340;356,461;357,7;357,123;357,149;357,323;357,387;357,433;357,434;357,443;357,537;358,43;358,123;358,139;358,178;358,191;358,320;358,522;358,612;358,635;359,33;359,38;359,109;359,111;359,428;360,35;360,44;360,95;360,198;360,200;360,217;360,298;360,533;361,71;361,112;361,183;361,270;361,320;361,383;361,389;361,394;361,416;361,443;361,467;361,496;361,569;361,579;361,664;362,46;362,49;362,232;362,236;362,439;362,505;362,510;362,532;362,625;362,663;363,23;363,312;363,380;363,446;363,531;364,31;364,53;364,55;364,129;364,138;364,145;364,286;364,305;364,371;364,463;364,494;364,537;364,589;365,61;365,213;365,296;365,327;365,332;365,530;366,21;366,159;366,427;366,496;366,597;367,21;367,49;367,264;367,562;367,592;367,615;367,652;368,73;368,509;369,121;369,154;369,173;369,209;369,224;369,296;370,70;370,126;370,129;370,186;370,218;370,299;370,306;370,316;370,379;370,413;370,422;370,456;370,559;370,567;370,667;371,31;371,242;371,271;371,287;371,291;371,325;371,364;371,416;371,440;371,491;371,580;371,649;371,653;372,5;372,6;372,58;372,176;372,224;372,265;372,430;372,446;372,527;372,597;373,65;373,76;373,98;373,202;373,232;373,276;373,396;373,423;373,468;373,506;373,580;373,615;373,635;373,662;374,36;374,61;374,120;374,140;374,142;374,218;374,300;374,446;374,490;374,516;374,584;374,594;374,658;375,76;375,122;375,236;375,260;375,330;375,337;375,386;375,519;375,554;375,573;375,578;375,616;375,618;375,633;376,155;376,214;376,222;376,381;376,460;376,463;376,630;377,128;377,265;377,268;377,336;377,340;377,379;377,380;377,446;377,453;377,476;378,16;378,18;378,54;378,67;378,73;378,122;378,163;378,240;378,241;378,354;378,390;378,554;378,576;378,599;378,656;379,126;379,340;379,370;379,377;379,413;379,446;379,559;380,313;380,340;380,363;380,377;380,531;381,34;381,355;381,376;381,408;381,448;381,460;381,521;382,126;382,152;382,384;382,415;382,471;382,512;383,199;383,231;383,270;383,361;383,389;383,432;383,552;383,569;384,107;384,109;384,152;384,199;384,382;384,422;384,465;384,512;385,80;385,131;385,148;385,203;385,271;385,279;385,287;385,338;385,411;385,416;385,468;385,516;385,561;385,634;386,18;386,76;386,101;386,113;386,126;386,279;386,281;386,295;386,342;386,351;386,375;386,392;386,584;386,619;386,666;387,123;387,225;387,289;387,323;387,357;387,418;387,489;387,574;388,12;388,21;388,56;388,187;388,339;388,433;388,435;388,457;388,473;388,561;389,21;389,84;389,130;389,160;389,270;389,311;389,346;389,361;389,383;389,406;389,432;389,569;389,573;389,579;389,642;390,16;390,85;390,177;390,240;390,241;390,316;390,378;390,512;390,659;390,660;391,36;391,103;391,133;391,166;391,190;391,241;391,261;391,322;391,352;392,18;392,386;392,556;392,586;392,604;392,608;393,49;393,191;393,246;393,264;393,284;393,350;393,353;393,474;393,516;393,614;393,663;394,41;394,120;394,140;394,150;394,194;394,251;394,292;394,361;394,398;394,399;395,16;395,59;395,197;395,243;395,349;395,399;395,441;395,564;395,577;395,602;395,630;396,12;396,18;396,20;396,45;396,65;396,178;396,204;396,267;396,273;396,281;396,342;396,351;396,373;396,506;396,595;396,655;397,35;397,103;397,162;397,196;397,200;397,211;397,261;398,78;398,189;398,254;398,317;398,353;398,394;398,453;398,459;398,490;398,525;399,158;399,163;399,243;399,269;399,349;399,394;399,395;399,414;399,441;399,577;399,612;399,630;399,661;400,9;400,10;400,342;400,450;401,41;401,170;401,184;402,63;402,156;402,518;402,626;403,352;403,610;404,87;404,88;404,138;404,184;404,204;404,207;404,218;404,295;404,326;404,432;404,438;404,456;404,477;404,490;404,538;404,559;404,588;404,595;404,600;405,45;405,349;405,614;406,346;406,352;406,389;406,452;407,196;407,259;407,286;407,414;407,442;407,455;407,514;408,109;408,225;408,286;408,381;408,412;408,455;408,521;408,577;408,591;409,30;409,200;409,211;409,639;410,201;410,250;410,300;410,314;410,317;410,330;410,353;410,429;410,459;410,480;410,628;411,5;411,27;411,65;411,116;411,277;411,279;411,287;411,313;411,385;411,416;411,427;411,613;411,634;412,109;412,208;412,228;412,278;412,408;412,573;413,70;413,126;413,370;413,379;413,422;413,466;413,556;413,567;413,667;414,122;414,123;414,196;414,399;414,407;414,482;414,514;414,577;414,620;414,661;415,240;415,296;415,299;415,382;415,426;415,456;415,465;415,474;415,497;415,499;415,656;416,5;416,80;416,83;416,155;416,165;416,175;416,203;416,330;416,334;416,361;416,371;416,385;416,411;416,526;416,603;416,613;416,665;417,16;417,37;417,106;418,258;418,289;418,324;418,387;418,489;419,40;419,95;419,310;420,1;420,100;420,333;420,507;420,525;421,35;421,281;421,293;421,308;421,331;421,466;421,480;421,510;421,511;422,28;422,70;422,126;422,142;422,150;422,268;422,350;422,370;422,384;422,413;422,456;422,465;422,546;422,567;423,61;423,98;423,255;423,271;423,294;423,373;423,445;423,468;423,526;423,556;423,605;423,623;424,65;424,96;424,261;424,313;424,447;424,501;424,538;424,584;424,596;424,600;424,613;425,42;425,63;425,470;426,9;426,126;426,129;426,265;426,415;426,466;426,546;427,114;427,115;427,116;427,117;427,207;427,231;427,277;427,313;427,366;427,411;427,449;427,496;427,634;428,90;428,143;428,359;429,37;429,167;429,229;429,245;429,283;429,410;429,568;430,8;430,34;430,197;430,308;430,372;430,458;430,492;430,585;430,590;430,608;431,77;431,114;431,305;431,482;431,558;431,640;432,8;432,160;432,231;432,235;432,383;432,389;432,404;432,498;432,538;432,569;432,600;432,627;433,4;433,7;433,160;433,231;433,357;433,388;433,445;433,449;433,558;434,13;434,123;434,258;434,357;434,443;434,641;435,56;435,187;435,388;435,455;435,457;436,168;436,193;436,263;436,293;436,335;436,495;437,104;437,137;437,143;437,160;437,175;437,183;437,203;437,206;437,212;437,448;437,462;437,603;437,665;438,39;438,87;438,88;438,160;438,222;438,231;438,404;438,506;438,518;439,149;439,289;439,362;440,45;440,122;440,203;440,206;440,267;440,287;440,290;440,291;440,309;440,371;440,448;440,462;440,603;440,650;440,653;440,657;441,116;441,188;441,222;441,395;441,399;441,448;442,259;442,407;442,449;442,537;442,561;443,13;443,71;443,84;443,104;443,105;443,115;443,123;443,149;443,164;443,357;443,361;443,434;443,537;443,544;443,642;443,662;444,141;444,243;444,279;444,293;444,447;444,479;444,551;444,557;445,6;445,89;445,156;445,255;445,423;445,433;445,460;445,492;445,519;445,533;445,556;445,587;445,610;445,638;446,176;446,265;446,312;446,340;446,363;446,372;446,374;446,377;446,379;446,453;446,466;446,490;446,658;447,232;447,236;447,263;447,424;447,444;447,479;447,557;447,591;448,59;448,80;448,83;448,183;448,203;448,206;448,241;448,267;448,381;448,437;448,440;448,441;448,460;448,462;448,613;449,8;449,114;449,115;449,164;449,223;449,427;449,433;449,442;449,494;449,537;449,651;450,10;450,52;450,57;450,129;450,284;450,400;450,456;450,471;451,66;451,135;451,541;451,565;452,46;452,153;452,406;452,495;452,530;452,647;453,28;453,106;453,340;453,377;453,398;453,446;453,481;453,643;454,535;455,0;455,230;455,277;455,313;455,407;455,408;455,435;455,573;455,575;456,64;456,107;456,129;456,138;456,220;456,239;456,253;456,332;456,350;456,370;456,404;456,415;456,422;456,450;456,497;456,512;456,566;456,567;456,572;456,581;456,655;456,667;457,17;457,28;457,32;457,124;457,285;457,286;457,388;457,435;458,13;458,65;458,116;458,132;458,197;458,202;458,260;458,263;458,327;458,337;458,430;458,528;458,585;459,4;459,36;459,78;459,190;459,300;459,308;459,317;459,322;459,398;459,410;459,464;459,533;459,594;459,596;459,643;460,34;460,355;460,376;460,381;460,445;460,448;460,521;460,584;461,112;461,127;461,181;461,184;461,224;461,317;461,356;461,627;462,83;462,143;462,155;462,203;462,243;462,247;462,273;462,437;462,440;462,448;462,665;463,0;463,96;463,117;463,216;463,248;463,339;463,364;463,376;463,515;463,539;463,576;464,36;464,140;464,185;464,190;464,261;464,272;464,284;464,350;464,459;464,471;464,643;465,1;465,32;465,39;465,107;465,109;465,126;465,152;465,384;465,415;465,422;465,471;465,472;465,582;465,656;466,4;466,57;466,182;466,186;466,265;466,324;466,413;466,421;466,426;466,446;466,658;467,63;467,329;467,361;467,469;467,470;467,520;467,626;467,664;468,66;468,148;468,203;468,214;468,216;468,244;468,271;468,325;468,373;468,385;468,423;468,472;468,576;468,580;468,649;468,653;469,77;469,467;469,478;469,626;470,15;470,32;470,56;470,91;470,201;470,425;470,467;470,505;470,510;470,573;470,628;471,126;471,220;471,284;471,382;471,450;471,464;471,465;471,509;471,594;472,465;472,468;472,546;472,576;473,130;473,172;473,328;473,388;473,583;473,607;473,617;473,640;473,642;474,84;474,111;474,115;474,135;474,145;474,218;474,225;474,314;474,393;474,415;474,539;474,565;474,567;474,642;475,44;475,302;475,479;475,565;476,57;476,217;476,299;476,312;476,336;476,340;476,377;477,8;477,15;477,35;477,87;477,92;477,106;477,127;477,132;477,156;477,191;477,284;477,292;477,311;477,404;477,490;477,499;477,514;477,585;477,588;477,614;478,114;478,469;478,558;479,50;479,66;479,142;479,297;479,444;479,447;479,475;479,495;479,537;479,629;479,647;480,310;480,410;480,421;480,482;480,503;480,516;480,558;480,645;481,6;481,97;481,142;481,224;481,265;481,339;481,453;481,501;481,502;481,506;481,544;481,620;482,180;482,414;482,431;482,480;482,557;483,133;483,215;483,317;483,335;484,270;484,586;485,96;485,130;485,339;486,24;486,44;486,48;486,127;486,170;486,219;486,293;487,245;487,333;487,341;487,353;487,492;487,494;487,511;487,516;488,7;488,8;488,35;488,77;488,543;488,610;488,651;489,258;489,289;489,387;489,418;490,235;490,319;490,374;490,398;490,404;490,446;490,477;490,541;490,590;490,658;491,75;491,145;491,208;491,266;491,271;491,301;491,371;491,640;491,653;492,47;492,229;492,294;492,310;492,320;492,430;492,445;492,487;493,22;493,57;493,121;493,254;493,302;493,545;493,586;494,115;494,225;494,230;494,314;494,341;494,364;494,449;494,487;494,589;494,592;494,610;495,48;495,211;495,233;495,283;495,293;495,297;495,436;495,452;495,479;495,561;495,629;495,647;496,34;496,92;496,361;496,366;496,427;496,501;496,590;496,620;497,64;497,296;497,321;497,415;497,456;497,499;497,656;498,130;498,432;498,499;498,525;498,538;498,600;499,130;499,144;499,254;499,297;499,302;499,345;499,353;499,415;499,477;499,497;499,498;499,656;500,159;500,242;501,147;501,305;501,339;501,347;501,424;501,481;501,496;501,620;502,7;502,78;502,123;502,292;502,481;502,620;503,201;503,211;503,310;503,480;503,510;503,558;504,14;504,75;504,102;504,108;504,122;504,210;504,296;504,550;504,552;504,597;505,201;505,314;505,362;505,470;505,511;505,621;506,20;506,101;506,132;506,142;506,148;506,188;506,194;506,271;506,373;506,396;506,438;506,481;506,535;506,572;506,595;506,655;506,666;507,1;507,310;507,353;507,420;508,17;508,103;508,157;508,167;508,229;508,261;508,272;509,10;509,14;509,26;509,44;509,154;509,264;509,368;509,471;509,542;509,545;509,552;510,42;510,46;510,134;510,200;510,201;510,211;510,310;510,314;510,362;510,421;510,470;510,503;510,626;511,129;511,331;511,421;511,487;511,505;511,527;511,534;512,28;512,85;512,126;512,177;512,240;512,332;512,382;512,384;512,390;512,456;513,14;513,133;513,185;513,189;513,234;513,652;514,2;514,38;514,113;514,161;514,169;514,196;514,348;514,407;514,414;514,477;514,640;514,641;515,31;515,96;515,242;515,463;515,528;515,575;515,640;515,649;516,186;516,374;516,385;516,393;516,480;516,487;516,646;517,135;517,220;518,25;518,118;518,256;518,257;518,313;518,402;518,438;518,536;518,634;519,55;519,76;519,156;519,163;519,188;519,222;519,236;519,328;519,375;519,445;519,578;519,611;519,633;519,665;519,666;520,4;520,30;520,190;520,300;520,331;520,467;520,574;520,591;520,607;520,626;521,34;521,84;521,225;521,381;521,408;521,460;521,566;521,590;521,642;522,191;522,322;522,358;522,635;523,168;524,4;524,147;525,78;525,100;525,254;525,398;525,420;525,498;525,585;525,608;526,59;526,96;526,183;526,256;526,280;526,416;526,423;526,564;526,635;527,5;527,34;527,58;527,91;527,120;527,131;527,136;527,205;527,249;527,372;527,511;527,570;527,584;528,116;528,187;528,277;528,313;528,327;528,458;528,515;528,575;528,601;529,2;529,13;529,41;529,158;529,175;529,192;529,261;529,349;529,664;530,106;530,125;530,157;530,298;530,302;530,339;530,365;530,452;530,637;530,638;530,647;531,70;531,127;531,331;531,345;531,363;531,380;532,329;532,362;532,621;533,89;533,230;533,283;533,360;533,445;533,459;534,63;534,131;534,134;534,136;534,191;534,264;534,333;534,511;534,562;534,650;535,120;535,222;535,240;535,246;535,247;535,350;535,454;535,506;535,648;536,518;537,34;537,297;537,355;537,357;537,364;537,442;537,443;537,449;537,479;537,539;537,585;537,607;537,623;538,82;538,160;538,217;538,231;538,404;538,424;538,432;538,498;538,588;538,600;538,627;539,242;539,354;539,463;539,474;539,537;539,640;539,644;540,82;540,136;540,207;540,302;540,333;541,62;541,66;541,135;541,451;541,490;541,565;542,234;542,264;542,293;542,509;542,562;543,488;544,6;544,16;544,55;544,67;544,112;544,142;544,187;544,224;544,265;544,443;544,481;544,627;545,293;545,333;545,493;545,509;546,31;546,126;546,138;546,195;546,268;546,422;546,426;546,472;546,567;546,653;547,6;547,32;547,136;547,210;547,302;547,551;547,559;548,95;548,153;549,56;549,259;549,568;549,583;549,606;550,82;550,504;551,200;551,209;551,317;551,444;551,547;552,19;552,22;552,24;552,26;552,44;552,75;552,383;552,504;552,509;552,563;552,650;553,83;553,104;553,117;553,155;553,171;553,183;553,203;553,206;553,212;553,214;553,243;553,267;553,573;553,657;553,665;554,73;554,76;554,202;554,232;554,236;554,247;554,290;554,375;554,378;554,618;555,12;555,65;555,196;555,262;555,566;555,633;556,98;556,255;556,294;556,392;556,413;556,423;556,445;556,578;556,605;557,49;557,114;557,310;557,444;557,447;557,482;557,615;557,626;557,645;558,1;558,114;558,281;558,431;558,433;558,478;558,480;558,503;558,645;558,727;559,128;559,129;559,136;559,186;559,253;559,274;559,292;559,370;559,379;559,404;559,547;559,645;559,646;559,667;560,99;560,302;560,352;560,600;561,39;561,121;561,173;561,385;561,388;561,442;561,495;561,607;562,21;562,94;562,367;562,534;562,542;562,573;562,615;562,650;563,19;563,44;563,49;563,75;563,293;563,552;563,570;564,16;564,59;564,155;564,203;564,212;564,243;564,247;564,338;564,344;564,395;564,526;564,611;564,633;564,668;565,64;565,66;565,131;565,135;565,451;565,474;565,475;565,541;566,34;566,128;566,139;566,179;566,268;566,341;566,350;566,456;566,521;566,555;567,128;567,186;567,195;567,220;567,244;567,268;567,284;567,341;567,350;567,370;567,413;567,422;567,456;567,474;567,546;568,75;568,124;568,285;568,429;568,549;569,112;569,143;569,150;569,160;569,184;569,204;569,231;569,311;569,351;569,361;569,383;569,389;569,432;570,19;570,141;570,156;570,234;570,304;570,321;570,527;570,563;570,647;570,658;571,21;571,34;571,90;571,172;571,202;571,247;571,337;572,69;572,88;572,148;572,218;572,253;572,291;572,456;572,506;572,602;572,655;572,668;573,0;573,98;573,104;573,123;573,170;573,243;573,263;573,351;573,375;573,389;573,412;573,455;573,470;573,553;573,562;573,579;573,608;573,611;573,665;574,64;574,91;574,100;574,102;574,130;574,286;574,321;574,339;574,387;574,520;574,597;574,651;574,660;575,116;575,277;575,313;575,327;575,455;575,515;575,528;576,52;576,73;576,96;576,98;576,113;576,137;576,271;576,287;576,378;576,463;576,468;576,472;576,580;576,613;577,3;577,123;577,348;577,395;577,399;577,408;577,414;578,188;578,223;578,232;578,236;578,255;578,260;578,273;578,328;578,338;578,375;578,519;578,556;578,633;579,61;579,276;579,288;579,361;579,389;579,573;580,96;580,98;580,113;580,137;580,271;580,277;580,279;580,319;580,371;580,373;580,468;580,576;581,76;581,119;581,173;581,199;581,262;581,456;581,609;582,230;582,266;582,282;582,291;582,301;582,465;582,653;583,226;583,473;583,549;583,606;583,629;584,61;584,98;584,107;584,249;584,374;584,386;584,424;584,460;584,527;584,590;584,605;584,664;585,8;585,24;585,136;585,142;585,197;585,344;585,430;585,458;585,477;585,525;585,537;585,608;586,392;586,484;586,493;586,658;587,15;587,230;587,445;588,82;588,160;588,184;588,231;588,308;588,404;588,477;588,538;589,225;589,227;589,230;589,234;589,332;589,364;589,494;589,607;590,8;590,34;590,61;590,84;590,86;590,249;590,294;590,330;590,430;590,490;590,496;590,521;590,584;591,82;591,121;591,212;591,252;591,286;591,408;591,447;591,520;592,160;592,173;592,327;592,367;592,494;592,666;593,39;593,82;593,109;593,202;593,247;593,269;593,331;593,351;593,355;593,659;593,662;594,36;594,140;594,308;594,326;594,374;594,459;594,471;595,51;595,88;595,142;595,273;595,396;595,404;595,506;595,602;595,655;596,17;596,35;596,52;596,92;596,241;596,245;596,308;596,424;596,459;596,658;597,29;597,210;597,296;597,352;597,366;597,372;597,504;597,574;597,612;598,79;598,92;598,190;599,92;599,354;599,378;600,92;600,120;600,142;600,150;600,160;600,404;600,424;600,432;600,498;600,538;600,560;600,627;600,655;601,35;601,85;601,177;601,241;601,528;601,630;602,51;602,112;602,354;602,395;602,572;602,595;603,203;603,212;603,214;603,277;603,334;603,416;603,437;603,440;603,657;604,21;604,64;604,102;604,262;604,269;604,352;604,392;605,98;605,148;605,194;605,224;605,267;605,283;605,290;605,423;605,556;605,584;605,655;606,32;606,75;606,104;606,105;606,285;606,549;606,583;606,607;607,8;607,100;607,117;607,174;607,225;607,230;607,239;607,278;607,473;607,520;607,537;607,561;607,589;607,606;607,642;607,645;608,287;608,392;608,430;608,525;608,573;608,585;608,658;609,91;609,254;609,581;610,9;610,118;610,194;610,196;610,255;610,301;610,403;610,445;610,488;610,494;611,76;611,194;611,222;611,243;611,519;611,564;611,573;611,633;611,665;611,666;612,132;612,208;612,269;612,296;612,320;612,358;612,399;612,597;613,5;613,65;613,80;613,82;613,83;613,98;613,116;613,137;613,165;613,183;613,271;613,277;613,279;613,287;613,303;613,313;613,319;613,334;613,411;613,416;613,424;613,448;613,576;614,93;614,141;614,153;614,233;614,246;614,298;614,348;614,393;614,405;614,477;614,647;615,21;615,94;615,114;615,216;615,233;615,353;615,367;615,373;615,557;615,562;616,318;616,375;616,626;617,30;617,298;617,306;617,473;617,637;617,639;618,132;618,163;618,202;618,212;618,214;618,236;618,247;618,269;618,375;618,554;619,86;619,95;619,99;619,157;619,160;619,326;619,386;620,147;620,156;620,162;620,340;620,414;620,481;620,496;620,501;620,502;620,661;621,15;621,46;621,49;621,319;621,505;621,532;621,625;621,663;622,156;622,305;623,6;623,15;623,107;623,147;623,250;623,339;623,423;623,537;623,625;624,153;624,174;625,49;625,274;625,362;625,621;625,623;625,632;626,63;626,71;626,112;626,178;626,180;626,281;626,402;626,467;626,469;626,510;626,520;626,557;626,616;627,20;627,69;627,160;627,241;627,432;627,461;627,538;627,544;627,600;628,32;628,200;628,221;628,314;628,410;628,470;629,26;629,44;629,80;629,172;629,212;629,221;629,254;629,479;629,495;629,583;630,109;630,125;630,155;630,173;630,269;630,296;630,355;630,376;630,395;630,399;630,601;631,147;632,625;633,55;633,76;633,139;633,155;633,188;633,203;633,236;633,247;633,260;633,273;633,290;633,375;633,519;633,555;633,564;633,578;633,611;634,27;634,266;634,339;634,385;634,411;634,427;634,518;635,59;635,69;635,188;635,204;635,253;635,346;635,358;635,373;635,522;635,526;636,10;636,266;637,298;637,530;637,617;638,57;638,445;638,530;639,40;639,95;639,167;639,409;639,617;640,145;640,169;640,226;640,431;640,473;640,491;640,514;640,515;640,539;640,649;641,2;641,13;641,348;641,434;641,514;642,34;642,84;642,209;642,225;642,258;642,389;642,443;642,473;642,474;642,521;642,607;643,36;643,190;643,217;643,453;643,459;643,464;644,26;644,242;644,539;645,24;645,81;645,180;645,302;645,480;645,557;645,558;645,559;645,607;646,108;646,128;646,303;646,304;646,310;646,314;646,516;646,559;647,48;647,233;647,297;647,452;647,479;647,495;647,530;647,570;647,614;648,95;648,153;648,298;648,535;649,66;649,76;649,145;649,183;649,194;649,212;649,253;649,257;649,271;649,291;649,371;649,468;649,515;649,640;649,654;650,440;650,534;650,552;650,562;651,7;651,42;651,77;651,286;651,321;651,449;651,488;651,574;652,11;652,189;652,209;652,234;652,282;652,367;652,513;653,19;653,31;653,117;653,212;653,216;653,266;653,271;653,301;653,371;653,440;653,468;653,491;653,546;653,582;654,54;654,84;654,649;655,88;655,194;655,204;655,253;655,396;655,456;655,506;655,572;655,595;655,600;655,605;655,668;656,16;656,29;656,52;656,109;656,119;656,122;656,132;656,163;656,199;656,263;656,378;656,415;656,465;656,497;656,499;657,55;657,83;657,165;657,203;657,206;657,212;657,214;657,247;657,271;657,290;657,330;657,440;657,553;657,603;658,322;658,374;658,446;658,466;658,490;658,570;658,586;658,596;658,608;659,136;659,141;659,169;659,173;659,227;659,262;659,345;659,390;659,593;660,141;660,173;660,227;660,390;660,574;661,399;661,414;661,620;662,71;662,82;662,104;662,202;662,269;662,373;662,443;662,593;663,362;663,393;663,621;664,361;664,467;664,529;664,584;665,83;665,104;665,113;665,183;665,203;665,212;665,294;665,416;665,437;665,462;665,519;665,553;665,573;665,611;666,16;666,41;666,55;666,67;666,101;666,109;666,112;666,132;666,203;666,328;666,386;666,506;666,519;666,592;666,611;667,70;667,124;667,253;667,370;667,413;667,456;667,559;668,18;668,73;668,171;668,202;668,247;668,253;668,328;668,337;668,564;668,572;668,655;669,688;669,707;669,762;669,855;669,884;669,903;669,907;670,696;670,763;670,779;670,793;670,819;670,829;671,687;671,723;671,741;671,758;671,798;671,864;671,886;671,891;671,944;671,945;672,703;672,704;672,707;672,729;672,748;672,762;672,815;672,831;672,850;672,884;672,900;672,907;672,915;672,921;672,927;672,939;672,943;672,951;673,806;673,895;673,918;673,923;673,934;673,935;673,976;674,689;674,730;674,746;674,777;674,794;674,802;674,839;674,856;674,860;674,886;674,894;674,910;674,918;674,948;674,966;674,975;675,703;675,753;675,802;675,844;675,848;675,858;675,910;675,953;676,681;676,697;676,715;676,738;676,767;676,783;676,794;676,854;676,952;676,953;676,969;677,810;677,861;677,921;677,952;677,957;677,965;677,973;677,978;678,819;678,855;678,874;678,923;678,940;678,957;679,728;679,834;679,858;679,862;679,888;679,912;680,687;680,741;680,763;680,768;680,769;680,817;680,858;680,877;680,968;681,676;681,732;681,788;681,791;681,852;681,870;682,695;682,759;682,775;682,824;682,853;682,878;682,887;682,902;682,908;682,924;682,931;682,938;682,958;683,773;683,829;683,883;684,735;684,749;684,777;684,865;685,700;685,703;685,716;685,752;685,872;685,954;686,694;686,708;686,819;686,843;686,872;686,885;686,916;687,671;687,680;687,690;687,699;687,724;687,747;687,749;687,758;687,768;687,781;687,794;687,802;687,864;687,886;687,891;687,910;687,913;687,936;687,937;687,944;687,957;687,970;688,669;688,770;688,837;688,849;688,874;689,674;689,727;689,730;689,753;689,803;689,895;689,910;689,975;689,980;690,687;690,692;690,726;690,736;690,795;690,826;690,845;690,859;690,891;691,720;691,732;691,755;691,759;691,784;691,785;691,792;691,796;691,798;691,896;691,909;691,968;692,690;692,730;692,735;692,758;692,777;692,838;692,855;693,694;693,829;693,885;693,902;693,964;694,686;694,693;694,713;694,885;694,964;695,682;695,778;695,824;695,853;695,876;695,896;695,902;695,908;696,670;697,676;697,717;697,766;697,783;697,788;697,852;697,854;697,878;697,956;698,736;698,772;698,782;698,842;698,890;698,934;699,687;699,751;699,756;699,781;699,789;699,802;699,804;699,815;699,838;699,891;699,893;699,897;699,970;700,685;700,732;700,760;700,770;700,777;700,821;700,921;700,924;700,936;700,965;700,972;701,728;701,868;701,875;701,895;701,935;701,948;702,874;703,672;703,675;703,685;703,716;703,720;703,752;703,787;703,813;703,814;703,816;703,817;703,873;703,898;703,921;703,930;703,943;703,949;703,953;704,672;704,727;704,748;704,797;704,806;704,815;704,874;704,880;704,900;704,918;704,921;704,935;705,715;705,959;706,741;706,744;706,768;706,769;706,835;706,850;706,851;706,879;707,669;707,672;707,780;707,843;707,861;707,898;708,686;708,713;708,742;708,792;708,819;708,861;708,906;709,892;709,898;710,799;710,865;711,736;711,771;711,776;711,791;711,813;711,863;711,870;711,872;712,778;712,931;712,941;713,694;713,708;713,734;713,800;713,828;713,885;713,896;713,960;714,723;714,725;714,741;714,749;714,755;714,758;714,762;714,822;714,841;714,891;714,903;714,907;714,936;714,945;714,981;715,676;715,705;715,745;715,820;715,822;715,868;715,898;715,908;715,942;715,950;715,976;716,685;716,703;716,720;716,735;716,746;716,750;716,752;716,759;716,805;716,811;716,861;716,938;716,943;716,963;717,697;717,721;717,738;717,788;717,813;717,853;717,878;717,882;717,901;717,954;718,729;718,741;718,840;718,890;718,921;718,981;719,725;719,777;719,785;719,795;719,804;719,818;719,845;719,874;719,915;719,921;719,977;720,691;720,703;720,716;720,746;720,750;720,755;720,784;720,792;720,793;720,796;720,801;720,863;720,883;720,910;720,931;720,938;720,956;720,968;720,974;721,717;721,783;721,791;721,837;721,882;721,954;721,980;722,872;722,969;723,671;723,714;723,724;723,758;723,803;723,818;723,886;723,899;723,904;723,936;723,940;723,945;723,971;723,977;723,984;724,687;724,723;724,725;724,820;724,821;724,862;724,915;724,950;724,982;725,714;725,719;725,724;725,918;725,946;725,959;726,690;726,729;726,856;726,871;727,223;727,558;727,689;727,704;727,758;727,797;727,807;727,874;727,886;727,934;727,935;727,945;727,952;727,975;728,679;728,701;728,773;728,834;728,857;728,888;728,915;729,672;729,718;729,726;729,744;729,759;729,841;729,860;729,874;730,674;730,689;730,692;730,794;730,817;730,856;730,864;730,894;730,895;730,910;730,937;730,948;730,953;730,973;730,975;730,980;730,984;731,733;731,771;731,778;731,971;732,681;732,691;732,700;732,760;732,770;732,778;732,821;732,900;732,936;732,972;732,981;732,983;733,731;733,808;733,881;733,902;733,920;733,924;733,932;733,969;733,971;734,713;734,751;734,754;734,832;734,897;735,684;735,692;735,716;735,744;735,749;735,777;735,817;735,833;735,838;735,856;735,874;735,921;735,944;735,948;735,951;736,690;736,698;736,711;736,795;736,859;736,863;736,919;736,966;737,858;737,938;737,940;737,942;737,958;737,960;737,966;738,676;738,717;738,852;739,977;740,743;740,784;740,844;740,878;740,931;740,939;740,956;741,671;741,680;741,706;741,714;741,718;741,743;741,746;741,768;741,769;741,772;741,782;741,816;741,820;741,835;741,848;741,868;741,879;741,890;741,934;741,936;742,708;742,743;742,756;742,759;742,761;742,773;742,787;742,811;742,863;742,948;742,961;743,740;743,741;743,742;743,746;743,769;743,772;743,816;743,863;743,879;743,934;744,706;744,729;744,735;744,759;744,761;744,769;744,777;744,845;744,853;744,864;744,868;744,886;744,887;744,906;744,937;745,715;745,806;745,825;745,861;745,890;745,942;745,944;745,971;745,976;746,674;746,716;746,720;746,741;746,743;746,750;746,760;746,769;746,782;746,816;746,835;746,863;746,890;746,940;746,943;746,966;747,687;747,789;747,840;747,891;747,951;748,672;748,704;748,751;748,815;748,831;748,836;748,900;748,941;749,684;749,687;749,714;749,735;749,758;749,864;749,891;749,944;749,945;750,716;750,720;750,746;750,784;750,787;750,805;750,811;750,812;750,872;750,878;750,883;750,898;750,938;750,956;750,963;750,974;751,699;751,734;751,748;751,754;751,770;751,804;751,832;751,836;751,915;751,921;752,685;752,703;752,716;752,872;752,963;753,675;753,689;753,763;753,788;753,849;753,852;753,926;754,734;754,751;754,832;754,897;754,964;755,691;755,714;755,720;755,759;755,784;755,785;755,792;755,796;755,798;755,968;756,699;756,742;756,757;756,781;756,817;756,838;756,871;756,954;756,962;756,972;757,756;757,783;757,839;757,901;757,926;757,930;757,962;758,671;758,687;758,692;758,714;758,723;758,727;758,749;758,769;758,794;758,841;758,863;758,864;758,880;758,886;758,891;758,894;758,937;758,945;758,973;759,682;759,691;759,716;759,729;759,742;759,744;759,755;759,784;759,796;759,818;759,848;759,868;759,873;759,883;759,887;759,904;759,909;759,931;759,938;759,939;759,963;759,965;759,968;760,700;760,732;760,746;760,763;760,802;760,865;760,921;760,981;761,742;761,744;761,763;761,778;761,792;761,863;761,868;761,938;761,951;762,669;762,672;762,714;762,815;762,847;762,903;762,905;762,950;762,951;762,959;763,670;763,680;763,753;763,760;763,761;763,768;763,783;763,794;763,813;763,864;763,969;764,786;764,830;764,866;765,779;765,800;765,805;765,830;765,983;766,697;766,775;766,814;766,844;766,873;766,903;766,909;766,949;766,953;766,960;766,974;767,676;767,800;767,832;767,836;768,680;768,687;768,706;768,741;768,763;768,769;768,816;768,841;769,680;769,706;769,741;769,743;769,744;769,746;769,758;769,768;769,772;769,782;769,785;769,799;769,816;769,835;769,841;769,863;769,879;770,688;770,700;770,732;770,751;770,821;770,860;770,903;770,921;770,936;770,965;771,711;771,731;771,791;771,822;771,870;771,875;771,892;771,905;772,698;772,741;772,743;772,769;772,835;772,879;772,890;773,683;773,728;773,742;773,774;773,917;774,773;774,800;774,961;775,682;775,766;775,814;775,844;775,873;775,953;775,958;775,960;775,974;776,711;776,865;776,870;777,674;777,684;777,692;777,700;777,719;777,735;777,744;777,794;777,856;777,864;777,871;777,874;777,921;777,927;777,936;777,937;777,967;777,972;778,695;778,712;778,731;778,732;778,761;778,791;778,792;778,870;778,878;778,922;779,670;779,765;779,819;779,830;779,868;779,932;780,707;780,821;780,825;780,982;781,687;781,699;781,756;781,813;781,817;781,844;781,845;781,910;781,933;781,939;781,954;781,980;782,698;782,741;782,746;782,769;782,797;782,816;782,817;782,828;782,835;782,863;782,966;783,676;783,697;783,721;783,757;783,763;783,839;783,872;783,901;783,926;783,930;783,962;784,691;784,720;784,740;784,750;784,755;784,759;784,796;784,798;784,818;784,844;784,872;784,873;784,878;784,887;784,931;784,956;784,968;785,691;785,719;785,755;785,769;785,792;785,793;785,798;785,841;785,848;785,858;785,927;786,764;786,809;786,866;787,703;787,742;787,750;787,796;787,818;787,844;787,872;787,883;787,904;787,963;788,681;788,697;788,717;788,753;788,849;788,852;788,882;788,949;789,699;789,747;789,817;789,838;789,913;789,928;789,944;789,970;790,814;790,844;790,852;790,858;790,894;791,681;791,711;791,721;791,771;791,778;791,870;791,964;792,691;792,708;792,720;792,755;792,761;792,778;792,785;792,793;792,860;792,889;792,924;792,956;792,960;793,670;793,720;793,785;793,792;793,796;793,844;793,863;793,909;793,927;793,950;793,968;793,984;794,674;794,676;794,687;794,730;794,758;794,763;794,777;794,803;794,856;794,937;794,948;794,974;795,690;795,719;795,736;795,826;795,859;795,919;796,691;796,720;796,755;796,759;796,784;796,787;796,793;796,814;796,872;796,883;796,887;796,904;796,909;796,931;796,939;796,956;796,963;796,968;797,704;797,727;797,782;797,806;797,816;797,822;797,918;797,927;797,936;797,942;797,961;798,671;798,691;798,755;798,784;798,785;798,811;798,841;798,858;798,878;798,891;798,927;799,710;799,769;799,961;800,713;800,765;800,767;800,774;800,819;800,830;800,839;800,900;800,917;800,926;801,720;801,812;801,813;801,858;801,863;801,904;801,926;801,956;801,958;801,962;802,674;802,675;802,687;802,699;802,760;802,816;802,845;802,898;802,910;802,933;802,962;802,980;803,689;803,723;803,794;803,827;803,859;803,894;803,895;803,923;803,975;804,699;804,719;804,751;804,818;804,904;804,915;804,940;805,716;805,750;805,765;805,830;805,892;805,916;806,673;806,704;806,745;806,797;806,865;806,935;806,976;807,727;807,976;808,733;808,881;808,920;808,924;808,932;808,969;808,971;809,786;809,812;809,834;809,857;809,862;809,866;809,888;810,677;810,861;810,946;810,959;810,972;810,978;811,716;811,742;811,750;811,798;811,812;811,813;811,901;811,926;811,930;811,962;812,750;812,801;812,809;812,811;812,813;812,901;812,938;813,703;813,711;813,717;813,763;813,781;813,801;813,811;813,812;813,814;813,839;813,873;813,877;813,878;813,880;813,926;813,927;813,930;813,950;813,954;813,962;814,703;814,766;814,775;814,790;814,796;814,813;814,844;814,848;814,872;814,873;814,883;814,920;814,949;814,953;814,974;815,672;815,699;815,704;815,748;815,762;815,831;815,847;815,877;815,898;815,900;815,907;815,915;815,921;815,923;815,931;815,939;815,940;815,950;816,703;816,741;816,743;816,746;816,768;816,769;816,782;816,797;816,802;816,904;816,965;816,966;816,980;817,680;817,703;817,730;817,735;817,756;817,781;817,782;817,789;817,838;817,840;817,876;817,879;817,908;817,910;817,913;817,928;817,943;817,951;817,954;817,970;817,980;817,984;818,719;818,723;818,759;818,784;818,787;818,804;818,874;818,887;818,904;818,915;818,921;818,936;818,940;818,952;818,956;818,973;819,670;819,678;819,686;819,708;819,779;819,800;819,829;819,906;820,715;820,724;820,741;820,822;820,843;820,868;820,871;820,891;820,905;820,950;820,982;820,983;821,700;821,724;821,732;821,770;821,780;821,825;821,836;821,843;821,861;821,865;821,867;821,959;821,972;821,981;821,982;822,714;822,715;822,771;822,797;822,820;822,843;822,861;822,891;822,899;822,950;823,947;823,984;824,682;824,695;824,853;824,858;824,902;824,908;825,745;825,780;825,821;825,851;825,861;825,890;825,903;825,906;825,982;826,690;826,795;826,859;826,908;826,950;827,803;827,896;827,901;828,713;828,782;828,837;828,857;828,914;829,670;829,683;829,693;829,819;829,892;829,964;830,764;830,765;830,779;830,800;830,805;830,856;830,975;830,983;831,672;831,748;831,815;831,877;831,900;831,915;832,734;832,751;832,754;832,767;832,886;832,889;832,929;832,959;833,735;833,836;833,850;833,856;833,871;834,679;834,728;834,809;834,857;834,862;834,888;834,955;835,706;835,741;835,746;835,769;835,772;835,782;835,863;835,879;835,982;836,748;836,751;836,767;836,821;836,833;836,850;836,851;836,865;836,867;836,877;836,906;836,971;837,688;837,721;837,828;837,920;837,926;837,930;838,692;838,699;838,735;838,756;838,789;838,817;838,860;838,879;838,894;838,913;838,970;839,674;839,757;839,783;839,800;839,813;839,926;839,930;839,954;839,962;840,718;840,747;840,817;840,881;840,888;840,970;841,714;841,729;841,758;841,768;841,769;841,785;841,798;841,884;841,886;841,900;841,903;841,905;841,936;841,944;841,945;841,959;841,981;842,698;842,900;843,686;843,707;843,820;843,821;843,822;843,861;843,916;843,982;844,675;844,740;844,766;844,775;844,781;844,784;844,787;844,790;844,793;844,814;844,873;844,949;844,953;844,956;844,974;845,690;845,719;845,744;845,781;845,802;845,891;845,910;845,919;845,933;845,944;845,969;845,980;846,848;846,869;846,917;846,944;846,947;847,762;847,815;847,850;847,851;847,884;847,921;847,936;847,939;847,951;848,675;848,741;848,759;848,785;848,814;848,846;848,858;848,873;848,958;849,688;849,753;849,788;849,852;849,967;850,672;850,706;850,833;850,836;850,847;850,851;850,855;850,877;850,880;850,884;850,903;850,951;851,706;851,825;851,836;851,847;851,850;851,867;851,872;851,877;851,905;851,950;852,681;852,697;852,738;852,753;852,788;852,790;852,849;852,855;853,682;853,695;853,717;853,744;853,824;853,878;853,888;853,902;854,676;854,697;854,946;855,669;855,678;855,692;855,850;855,852;855,877;855,903;855,929;855,935;856,674;856,726;856,730;856,735;856,777;856,794;856,830;856,833;856,887;856,958;857,728;857,809;857,828;857,834;857,862;857,888;857,914;857,984;858,675;858,679;858,680;858,737;858,785;858,790;858,798;858,801;858,824;858,848;858,862;858,873;858,944;858,949;858,953;858,958;859,690;859,736;859,795;859,803;859,826;859,884;859,908;859,919;859,950;859,984;860,674;860,729;860,770;860,792;860,838;860,865;860,871;860,894;860,903;860,921;860,934;860,965;861,677;861,707;861,708;861,716;861,745;861,810;861,821;861,822;861,825;861,843;861,890;861,978;861,982;862,679;862,724;862,809;862,834;862,857;862,858;862,888;862,906;862,932;862,968;863,711;863,720;863,736;863,742;863,743;863,746;863,758;863,761;863,769;863,782;863,793;863,801;863,835;863,872;863,878;863,890;863,904;863,923;863,940;863,943;863,966;864,671;864,687;864,730;864,744;864,749;864,758;864,763;864,777;864,868;864,886;864,891;864,894;864,937;865,684;865,710;865,760;865,776;865,806;865,821;865,836;865,860;865,879;865,921;866,764;866,786;866,809;866,885;867,821;867,836;867,851;867,877;867,903;867,906;867,971;867,982;868,701;868,715;868,741;868,744;868,759;868,761;868,779;868,820;868,864;868,886;868,918;868,937;868,944;868,971;869,846;869,889;869,917;869,947;870,681;870,711;870,771;870,776;870,778;870,791;870,964;871,726;871,756;871,777;871,820;871,833;871,860;872,685;872,686;872,711;872,722;872,750;872,752;872,783;872,784;872,787;872,796;872,814;872,851;872,863;872,883;872,898;872,909;872,942;872,943;872,963;872,968;872,974;873,703;873,759;873,766;873,775;873,784;873,813;873,814;873,844;873,848;873,858;873,910;873,953;873,958;873,962;873,974;874,678;874,688;874,702;874,704;874,719;874,727;874,729;874,735;874,777;874,818;874,921;874,943;874,952;874,973;875,701;875,771;875,935;876,695;876,817;877,680;877,813;877,815;877,831;877,836;877,850;877,851;877,855;877,867;877,884;877,942;877,950;878,682;878,697;878,717;878,740;878,750;878,778;878,784;878,798;878,813;878,853;878,863;878,883;878,888;878,898;878,902;878,931;878,953;878,956;878,974;879,706;879,741;879,743;879,769;879,772;879,817;879,835;879,838;879,865;879,890;879,895;880,704;880,758;880,813;880,850;880,895;880,935;880,936;880,939;880,965;880,973;881,733;881,808;881,840;881,932;881,970;882,717;882,721;882,788;882,938;882,948;882,949;882,958;883,683;883,720;883,750;883,759;883,787;883,796;883,814;883,872;883,878;883,887;883,904;883,909;883,931;883,956;883,963;883,968;884,669;884,672;884,841;884,847;884,850;884,859;884,877;884,903;884,923;885,686;885,693;885,694;885,713;885,866;885,964;886,671;886,674;886,687;886,723;886,727;886,744;886,758;886,832;886,841;886,864;886,868;886,891;886,937;886,944;886,945;886,970;887,682;887,744;887,759;887,784;887,796;887,818;887,856;887,883;887,909;887,931;887,939;887,956;887,965;887,968;887,979;888,679;888,728;888,809;888,834;888,840;888,853;888,857;888,862;888,878;889,792;889,832;889,869;889,917;889,947;889,955;890,698;890,718;890,741;890,745;890,746;890,772;890,825;890,861;890,863;890,879;890,970;890,971;891,671;891,687;891,690;891,699;891,714;891,747;891,749;891,758;891,798;891,820;891,822;891,845;891,864;891,886;891,913;891,937;891,944;891,945;891,970;892,709;892,771;892,805;892,829;892,897;893,699;893,933;893,957;894,674;894,730;894,758;894,790;894,803;894,838;894,860;894,864;894,914;894,926;894,937;894,948;894,967;895,673;895,689;895,701;895,730;895,803;895,879;895,880;895,935;895,975;896,691;896,695;896,713;896,827;897,699;897,734;897,754;897,892;897,960;898,703;898,707;898,709;898,715;898,750;898,802;898,815;898,872;898,878;898,909;898,943;898,963;899,723;899,822;899,905;899,945;900,326;900,672;900,704;900,732;900,748;900,800;900,815;900,831;900,841;900,842;900,915;901,717;901,757;901,783;901,811;901,812;901,827;901,930;901,962;902,682;902,693;902,695;902,733;902,824;902,853;902,878;902,925;903,669;903,714;903,762;903,766;903,770;903,825;903,841;903,850;903,855;903,860;903,867;903,884;903,906;903,961;903,971;904,723;904,759;904,787;904,796;904,801;904,804;904,816;904,818;904,863;904,883;904,915;904,940;904,961;904,965;904,977;905,762;905,771;905,820;905,841;905,851;905,899;905,906;905,907;905,941;906,708;906,744;906,819;906,825;906,836;906,862;906,867;906,903;906,905;906,971;907,669;907,672;907,714;907,815;907,905;908,682;908,695;908,715;908,817;908,824;908,826;908,859;908,925;908,961;909,691;909,759;909,766;909,793;909,796;909,872;909,883;909,887;909,898;909,931;909,956;909,961;909,963;909,968;910,674;910,675;910,687;910,689;910,720;910,730;910,781;910,802;910,817;910,845;910,873;910,948;910,962;910,975;910,980;911,933;911,967;912,679;913,687;913,789;913,817;913,838;913,891;913,928;913,957;913,970;913,980;914,828;914,857;914,894;914,984;915,672;915,719;915,724;915,728;915,751;915,804;915,815;915,818;915,831;915,900;915,904;915,921;915,940;916,686;916,805;916,843;917,773;917,800;917,846;917,869;917,889;917,924;918,673;918,674;918,704;918,725;918,797;918,868;918,923;918,934;918,935;919,736;919,795;919,845;919,859;920,733;920,808;920,814;920,837;921,672;921,677;921,700;921,703;921,704;921,718;921,719;921,735;921,751;921,760;921,770;921,777;921,815;921,818;921,847;921,860;921,865;921,874;921,915;921,936;922,778;922,925;922,983;923,673;923,678;923,803;923,815;923,863;923,884;923,918;923,937;923,946;923,957;923,973;924,682;924,700;924,733;924,792;924,808;924,917;924,956;925,902;925,908;925,922;925,972;925,983;926,753;926,757;926,783;926,800;926,801;926,811;926,813;926,837;926,839;926,894;926,930;926,954;926,962;927,672;927,777;927,785;927,793;927,797;927,798;927,813;927,936;927,942;927,943;927,965;927,968;928,789;928,817;928,913;928,933;928,968;928,970;928,980;929,832;929,855;930,703;930,757;930,783;930,811;930,813;930,837;930,839;930,901;930,926;930,954;930,962;931,682;931,712;931,720;931,740;931,759;931,784;931,796;931,815;931,878;931,883;931,887;931,909;931,952;931,968;932,733;932,779;932,808;932,862;932,881;932,970;932,971;933,781;933,802;933,845;933,893;933,911;933,928;933,957;933,967;933,970;933,980;934,673;934,698;934,727;934,741;934,743;934,860;934,918;934,935;934,957;934,973;935,673;935,701;935,704;935,727;935,806;935,855;935,875;935,880;935,895;935,918;935,934;935,957;936,687;936,700;936,714;936,723;936,732;936,741;936,770;936,777;936,797;936,818;936,841;936,847;936,880;936,921;936,927;936,945;936,965;936,981;937,687;937,730;937,744;937,758;937,777;937,794;937,864;937,868;937,886;937,891;937,894;937,923;938,682;938,716;938,720;938,737;938,750;938,759;938,761;938,812;938,882;939,672;939,740;939,759;939,781;939,796;939,815;939,847;939,880;939,887;939,951;939,965;940,678;940,723;940,737;940,746;940,804;940,815;940,818;940,863;940,904;940,915;940,956;941,712;941,748;941,905;941,964;942,715;942,737;942,745;942,797;942,872;942,877;942,927;943,672;943,703;943,716;943,746;943,817;943,863;943,872;943,874;943,898;943,927;944,671;944,687;944,735;944,745;944,749;944,789;944,841;944,845;944,846;944,858;944,868;944,886;944,891;945,671;945,714;945,723;945,727;945,749;945,758;945,841;945,886;945,891;945,899;945,936;945,981;946,725;946,810;946,854;946,923;946,959;947,823;947,846;947,869;947,889;948,674;948,701;948,730;948,735;948,742;948,794;948,882;948,894;948,910;948,953;949,703;949,766;949,788;949,814;949,844;949,858;949,882;949,953;949,962;949,974;950,715;950,724;950,762;950,793;950,813;950,815;950,820;950,822;950,826;950,851;950,859;950,877;951,672;951,735;951,747;951,761;951,762;951,817;951,847;951,850;951,939;951,966;951,974;951,984;952,676;952,677;952,727;952,818;952,874;952,931;952,973;952,978;953,675;953,676;953,703;953,730;953,766;953,775;953,814;953,844;953,858;953,873;953,878;953,948;953,949;953,956;953,958;953,960;953,974;954,685;954,717;954,721;954,756;954,781;954,813;954,817;954,839;954,926;954,930;954,962;955,834;955,889;956,697;956,720;956,740;956,750;956,784;956,792;956,796;956,801;956,818;956,844;956,878;956,883;956,887;956,909;956,924;956,940;956,953;956,968;957,677;957,678;957,687;957,893;957,913;957,923;957,933;957,934;957,935;958,682;958,737;958,775;958,801;958,848;958,856;958,858;958,873;958,882;958,953;958,960;958,974;959,705;959,725;959,762;959,810;959,821;959,832;959,841;959,946;960,713;960,737;960,766;960,775;960,792;960,897;960,953;960,958;961,742;961,774;961,797;961,799;961,903;961,904;961,908;961,909;962,756;962,757;962,783;962,801;962,802;962,811;962,813;962,839;962,873;962,901;962,910;962,926;962,930;962,949;962,954;962,980;963,716;963,750;963,752;963,759;963,787;963,796;963,872;963,883;963,898;963,909;963,974;964,693;964,694;964,754;964,791;964,829;964,870;964,885;964,941;964,983;965,677;965,700;965,759;965,770;965,816;965,860;965,880;965,887;965,904;965,927;965,936;965,939;966,674;966,736;966,737;966,746;966,782;966,816;966,863;966,951;967,777;967,849;967,894;967,911;967,933;968,680;968,691;968,720;968,755;968,759;968,784;968,793;968,796;968,862;968,872;968,883;968,887;968,909;968,927;968,928;968,931;968,956;969,676;969,722;969,733;969,763;969,808;969,845;970,687;970,699;970,789;970,817;970,838;970,840;970,881;970,886;970,890;970,891;970,913;970,928;970,932;970,933;971,723;971,731;971,733;971,745;971,808;971,836;971,867;971,868;971,890;971,903;971,906;971,932;971,976;972,700;972,732;972,756;972,777;972,810;972,821;972,925;972,983;973,677;973,730;973,758;973,818;973,874;973,880;973,923;973,934;973,952;973,977;974,720;974,750;974,766;974,775;974,794;974,814;974,844;974,872;974,873;974,878;974,949;974,951;974,953;974,958;974,963;975,674;975,689;975,727;975,730;975,803;975,830;975,895;975,910;975,980;976,673;976,715;976,745;976,806;976,807;976,971;977,719;977,723;977,739;977,904;977,973;977,978;978,677;978,810;978,861;978,952;978,977;979,887;980,689;980,721;980,730;980,781;980,802;980,816;980,817;980,845;980,910;980,913;980,928;980,933;980,962;980,975;981,714;981,718;981,732;981,760;981,821;981,841;981,936;981,945;982,724;982,780;982,820;982,821;982,825;982,835;982,843;982,861;982,867;983,732;983,765;983,820;983,830;983,922;983,925;983,964;983,972;984,723;984,730;984,793;984,817;984,823;984,857;984,859;984,914;984,951]; end ================================================ FILE: src/matlab/experimental/graph_classification/heatmap.m ================================================ function [hImage, hText] = heatmap(mat, xlab, ylab, textmat, varargin) % HEATMAP displays a matrix as a heatmap image % % USAGE: % [hImage, hText] = heatmap(matrix, xlabels, ylabels, textmatrix, 'param', value, ...) % % INPUTS: % * HEATMAP displays "matrix" as an image whose color intensities reflect % the magnitude of the values in "matrix". % % * "xlabels" (and "ylabels") can be either a numeric vector or cell array % of strings that represent the columns (or rows) of the matrix. If either % is not specified or empty, no labels will be drawn. % % * "textmat" can either be: 1, in which case the "matrix" values will be % displayed in each square, a format string, in which case the matrix % values will be displayed formatted according to the string specified, a numeric % matrix the size of "matrix", in which case those values will be displayed as % strings or a cell matrix of strings the size of "matrix", in which case each % string will be displayed. If not specified or empty, no text will be % displayed on the image % % OTHER PARAMETERS (oassed as parameter-value pairs) % * 'Colormap': Either a matrix of size numLevels-by-3 representing the % colormap to be used or a string or function handle representing a % function that returns a colormap, example, 'jet', 'hsv' or @cool. % Non-standard colormaps available within HEATMAP include 'money' and 'red'. % By default, the current figure's colormap is used. % % * 'ColorLevels': The number of distinct levels in the colormap (default: % 64). If more levels are specified than are present in the colormap, the % levels in the colormap are interpolated. If fewer are specified the % colormap is downsampled. % % * 'UseLogColorMap': A true/false value which, if true, specifies that the % intensities displayed should match the log of the "matrix" values. Use % this if the data is naturally on a logarithmic scale (default: false) % % * 'UseFigureColorMap': Specifies whether the figure's colormap should be % used. If false, the color intensities after applying the % specified/default colormap will be hardcoded, so that the image will be % independent of the figures colormap. If this option is true, the figure % colormap in the end will be replaced by specified/default colormap. % (default = true) % % * 'Parent': Handle to an axes object % % * 'TextColor': Either a color specification of all the text displayed on % the image or a string 'xor' which sets the EraseMode property of the text % objects to 'xor'. This will display all the text labels in a color that % contrasts its background. % % * 'FontSize': The initial fontSize of the text labels on the image. As % the image size is scaled the fontSize is shrunk appropriately. % % * 'ColorBar': Display colorbar. The corresponding value parameter should % be either logical 1 or 0 or a cell array of any additional parameters % you wish to pass to the colorbar function (such as location) % % * 'GridLines': Draw grid lines separating adjacent sections of the % heatmap. The value of the parameter is a LineStyle specification, for example, % :, -, -. or --. By default, no grid lines are drawn. % % OUTPUTS: % * hImage: handle to the image object % * hText : handle to the text objects (empty if no text labels are drawn) % % Notes: % * The 'money' colormap displays a colormap where 0 values are mapped to % white, negative values displayed in varying degrees of red and positive % values in varying degrees of green % * The 'red' colormap maps 0 values to white and higher values to red % % EXAMPLES: % data = reshape(sort(randi(100,10)),10,10)-50; % heatmap(data, cellstr(('A':'J')'), mean(data,2), '%0.0f%%',... % 'Colormap', 'money', 'Colorbar', true, 'GridLines', ':',... % 'TextColor', 'b') % For detailed examples, see the associated document heatmap_examples.m % Parse inputs ----------------------------------------------------------- p = inputParser; p.addParamValue('Colormap',[]); p.addParamValue('ColorLevels',[]); p.addParamValue('TextColor',[0 0 0]); p.addParamValue('UseFigureColorMap',true); p.addParamValue('UseLogColorMap',false); p.addParamValue('Parent',gca); p.addParamValue('FontSize',[]); p.addParamValue('Colorbar',[]); p.addParamValue('GridLines','none'); p.parse(varargin{:}); cmap = p.Results.Colormap; clevels = p.Results.ColorLevels; usefigcmap = p.Results.UseFigureColorMap; uselogcmap = p.Results.UseLogColorMap; hAxes = p.Results.Parent; hFig = get(hAxes,'Parent'); txtcol = p.Results.TextColor; fontSize = p.Results.FontSize; showcbar = p.Results.Colorbar; gridlines = p.Results.GridLines; % Figure out the colormap to use ----------------------------------------- if isempty(cmap) cmap = get(hFig,'Colormap'); if isempty(clevels) clevels = size(cmap,1); else cmap = resamplecmap(cmap, clevels); end elseif ischar(cmap) || isa(cmap,'function_handle') if isempty(clevels), clevels = 64; end if strcmp(cmap, 'money') cmap = money(mat, clevels); else cmap = feval(cmap,clevels); end elseif iscell(cmap) cmap = feval(cmap{1}, cmap{2:end}); clevels = size(cmap,1); elseif isnumeric(cmap) && size(cmap,2) == 3 clevels = size(cmap,1); else error('Incorrect value for colormap parameter'); end % cmap is now a clevels-by-3 rgb vector assert(clevels == size(cmap,1)); % Plot the image -------------------------------------------------- if uselogcmap cmap = resamplecmap(cmap, clevels, logspace(0,log10(clevels),clevels)); end if usefigcmap set(hFig,'Colormap',cmap); hImage = imagesc(mat, 'Parent', hAxes); else n = min(mat(:)); x = max(mat(:)); if x == n, x = n+1; end cdata = round((mat-n)/(x-n)*(clevels-1)+1); %cdata = ceil((mat-n)/(x-n)*clevels); cdata = reshape(cmap(cdata(:),:),[size(cdata) 3]); hImage = image(cdata, 'Parent', hAxes); end % Draw Grid Lines ---------------------------------------------------- if ~strcmp(gridlines,'none') xlim = get(hAxes,'XLim'); ylim = get(hAxes,'YLim'); for i = 1:diff(xlim)-1 line('Parent',hAxes,'XData',[i i]+.5, 'YData', ylim, 'LineStyle', gridlines); end for i = 1:diff(ylim)-1 line('Parent',hAxes,'XData',xlim, 'YData', [i i]+.5, 'LineStyle', gridlines); end end % Set axes labels ---------------------------------------------------- if nargin < 2 || isempty(xlab) set(hAxes,'XTick',[],'XTickLabel',''); else if isnumeric(xlab) xlab = arrayfun(@(x){num2str(x)},xlab); end set(hAxes,'XTick',1:length(xlab),'XTickLabel',xlab); end if nargin < 3 || isempty(ylab) set(hAxes,'YTick',[],'YTickLabel',''); else if isnumeric(ylab) ylab = arrayfun(@(x){num2str(x)},ylab); end set(hAxes,'YTick',1:length(ylab),'YTickLabel',ylab); end % Set text labels ----------------------------------------------------- if nargin >=4 && ~isempty(textmat) displaytext = textmat; if isscalar(textmat) && textmat textmat = arrayfun(@(x){num2str(x)},mat); elseif ischar(textmat) textmat = arrayfun(@(x){sprintf(textmat,x)},mat); elseif isnumeric(textmat) && numel(textmat)==numel(mat) textmat = arrayfun(@(x){num2str(x)},textmat); elseif ~iscell(textmat) && numel(textmat)==numel(mat) error('texmat is incorrectly specified'); end if ischar(txtcol) && strcmp(txtcol,'xor') colorprop = 'EraseMode'; else colorprop = 'Color'; end if isempty(fontSize) fontSize = getBestFontSize(hAxes); end [xpos,ypos] = meshgrid(1:size(mat,2),1:size(mat,1)); hText = text(xpos(:),ypos(:),textmat(:),'FontSize',fontSize,... 'HorizontalAlignment','center', colorprop, txtcol); % Set up listeners to handle appropriate zooming factor = fontSize/getBestFontSize(hAxes); addlistener(hAxes,{'XLim','YLim'},'PostSet',@(obj,evdata)resizeText); addlistener(hFig,'Resize',@(obj,evdata)resizeText); else hText = []; displaytext = []; end function resizeText if ~isempty(hText) && ishandle(hText(1)) fs = factor*getBestFontSize(hAxes); if fs > 0 set(hText,'fontsize',fs,'visible','on'); else set(hText,'visible','off'); end end end % Add a colorbar if necessary ------------------------------------------- if ~isempty(showcbar) if iscell(showcbar) c = colorbar(showcbar{:}); else c = colorbar; end if ~usefigcmap d = findobj(get(c,'Children'),'Tag','TMW_COLORBAR'); % Image %cdata = get(d,'Cdata'); %ytick = get(d,'YTick'); %ytl = get(g,'YTickLabel'); set(d,'CData',reshape(cmap,[clevels 1 3])) set(c,'YLim',[1 clevels]) ytick = get(c,'YTick'); ytick = (ytick-1)*(x-n)/(clevels-1)+n; if ischar(displaytext) yticklabel = arrayfun(@(x){sprintf(displaytext,x)},ytick); else yticklabel = num2str(ytick(:)); end set(c,'YTickLabel',yticklabel); end end end function cmap = red(levels) %#ok<*DEFNU> r = ones(levels, 1); g = linspace(1, 0, levels)'; cmap = [r g g]; end function cmap = money(data, clevels) % Function to make the heatmap have the green, white and red effect n = min(data(:)); x = max(data(:)); if x == n, x = n+1; end zeroInd = round(-n/(x-n)*(clevels-1)+1); if zeroInd <= 1 % Just green b = interp1([1 clevels], [1 0], 1:clevels); g = interp1([1 clevels], [1 1], 1:clevels); r = interp1([1 clevels], [1 0], 1:clevels); elseif zeroInd >= clevels, % Just red b = interp1([1 clevels], [0 1], 1:clevels); g = interp1([1 clevels], [0 1], 1:clevels); r = interp1([1 clevels], [1 1], 1:clevels); else b = interp1([1 zeroInd clevels], [0 1 0], 1:clevels); g = interp1([1 zeroInd clevels], [0 1 1], 1:clevels); r = interp1([1 zeroInd clevels], [1 1 0], 1:clevels); end cmap = [r' g' b']; end function cmap = resamplecmap(cmap, clevels, xi) % This function resamples a colormap by interpolation or decimation t = cmap; if nargin < 3 xi = linspace(1,clevels,size(t,1)); end xi([1 end]) = [1 clevels]; % These need to be exact for the interpolation to % work and we don't want machine precision messing it up cmap = [interp1(xi, t(:,1), 1:clevels);... interp1(xi, t(:,2), 1:clevels);... interp1(xi, t(:,3), 1:clevels)]'; end function fs = getBestFontSize(imAxes) % Try to keep font size reasonable for text hFig = get(imAxes,'Parent'); magicNumber = 80; nrows = diff(get(imAxes,'YLim')); ncols = diff(get(imAxes,'XLim')); if ncols < magicNumber && nrows < magicNumber ratio = max(get(hFig,'Position').*[0 0 0 1])/max(nrows,ncols); elseif ncols < magicNumber ratio = max(get(hFig,'Position').*[0 0 0 1])/ncols; elseif nrows < magicNumber ratio = max(get(hFig,'Position').*[0 0 0 1])/nrows; else ratio = 1; end fs = min(9,ceil(ratio/4)); % the gold formula if fs < 4 fs = 0; end end ================================================ FILE: src/matlab/experimental/graph_classification/heatmap_examples.m ================================================ clc; clear; close all; %% Single heatmap with default values data = rand(3,4)*100; heatmap(data); %% Labelled heatmap % Its easy to add different labels to the heatmap. heatmap(data, [1.1 1.2 1.3 1.6], {'A','B','C'}, true); colormap cool %% % In the above figure the text in each square is the numerical value of the % data. This can be formatted using a specific format string. heatmap(data, [1.1 1.2 1.3 1.6], {'A','B','C'}, '%0.2f m/s'); %% % Or, a completely different matrix of data can be shown as strings % enabling you to show an additional dimension of the data (for example, a % categorial variable) gt50 = repmat({''},size(data)); gt50(data>50) = {'>50'}; heatmap(data, [], [], gt50); %% Setting other properties % These are examples of changing the text color, grid lines, font size and % specifying a colorbar figure; heatmap(data, [], [], gt50, 'TextColor', 'y', 'GridLines', '-'); figure; heatmap(data, [], [], gt50, 'TextColor', 'xor', 'FontSize', 16); figure; heatmap(data, [], [], gt50, 'TextColor', 'xor', 'FontSize', 16, 'Colorbar', {'SouthOutside'}); %% Colormaps % The benefit of not using the figure colormap is that you can have % multiple heatmaps in a figure with different colormaps. Colormaps may be % specified as function handles, strings and numerical matrices of RGB color % levels. subplot(1,2,1) heatmap(data, [], [], gt50, 'Colormap', @copper, 'UseFigureColormap', false); subplot(1,2,2) heatmap(data, [], [], '%0.2f', 'Colormap', 'cool', 'UseFigureColormap', false); %% % The heatmap function makes two more colormaps available: the money % colormap and the red colormap. figure; heatmap(data-50, [], [], 1, 'Colormap', 'money', 'Colorbar', true); %% % Colormaps may also be specified on a linear or logarithmic scale, enabling % you to choose the colormap scale that is more appropriate for your data data2 = exprnd(1,100); figure; heatmap(data2,[],[],[],'Colormap',@cool,'Colorbar',true); title('Linear Colormap'); figure; heatmap(data2,[],[],[],'Colormap',@cool,'UseLogColormap',true,'Colorbar',true); title('Logarithmic Colormap'); ================================================ FILE: src/matlab/experimental/graph_classification/hetergeneous_test.m ================================================ clc; clear; close all; n = 100; m = 10; K = 20; generators = cell(4, 1); generators{1} = edu.stanford.math.plex4.graph.random.BAGraph(n, m); generators{2} = edu.stanford.math.plex4.graph.random.ErdosRenyiGraph(n, 0.30); generators{3} = edu.stanford.math.plex4.graph.random.KNearestNeighborsGraph(n, 2, 10); generators{4} = edu.stanford.math.plex4.graph.random.ForestFireGraph(n, 0.3, 0.5); %generators{3} = edu.stanford.math.plex4.graph.random.RandomGeometricGraph(n, 1, 0.02); %generators{5} = edu.stanford.math.plex4.graph.random.RandomGeometricGraph(n, 2, 0.02); %generators{6} = edu.stanford.math.plex4.graph.random.RandomGeometricGraph(n, 3, 0.02); [bottleneck_distances] = pairwise_graph_analysis(generators, K); %% label = sprintf('hetergeneous_%d_%d_%d', size(generators, 1), n, K); [hm_handle, mds_handle] = visualize_dissimilarity_matrix(bottleneck_distances, generators, label); ================================================ FILE: src/matlab/experimental/graph_classification/pairwise_barcode_analysis.m ================================================ function bottleneck_distances = pairwise_barcode_analysis(distance_matrices, max_metric_size) K = size(distance_matrices, 1); intervals = cell(K, 1); parfor k = 1:K mds_distances = distance_matrices{k}; m_space = edu.stanford.math.plex4.metric.impl.ExplicitMetricSpace(mds_distances); if (max_metric_size < m_space.size()) m_space = edu.stanford.math.plex4.metric.landmark.MaxMinLandmarkSelector(m_space, max_metric_size); end max_dimension = 0; max_filtration_value = 4; stream = edu.stanford.math.plex4.api.Plex4.createVietorisRipsStream(m_space, max_dimension+1, max_filtration_value, 1000); stream.finalizeStream(); persistence = edu.stanford.math.plex4.api.Plex4.getDefaultSimplicialAlgorithm(max_dimension+1); filtration_value_intervals = persistence.computeIntervals(stream); intervals{k} = filtration_value_intervals.getIntervalsAtDimension(0); intervals{k} = edu.stanford.math.plex4.bottleneck.BottleneckDistance.truncate(intervals{k}, 0, max_filtration_value); %intervals{k} = edu.stanford.math.plex4.bottleneck.BottleneckDistance.filterLargest(intervals{k}, N); end bottleneck_distances = zeros(K * K, 1); parfor m = 0:(K*K - 1) i = floor(m / K) + 1; j = mod(m, K) + 1; collection_1 = intervals{i}; collection_2 = intervals{j}; if (j > i) bottleneck_distance = edu.stanford.math.plex4.bottleneck.BottleneckDistance.computeBottleneckDistance(collection_1, collection_2); bottleneck_distances(m + 1) = bottleneck_distance; display(sprintf('pairwise_barcode_analysis: d(%d, %d) = %f', i, j, bottleneck_distance)); end end bottleneck_distances = reshape(bottleneck_distances, K, K); for i = 1:K for j = 1:(i - 1) bottleneck_distances(j, i) = bottleneck_distances(i, j); end end end ================================================ FILE: src/matlab/experimental/graph_classification/pairwise_graph_analysis.m ================================================ function [bottleneck_distances] = pairwise_graph_analysis(generators, K) matlabpool pctRunOnAll javaaddpath('../../for_distribution/lib/javaplex.jar'); G = size(generators, 1); distance_matrices = cell(K * G, 1); parfor m = 0:(K*G - 1) g = floor(m / K) + 1; k = mod(m, K) + 1; graph = generators{g}.generate(); distances = edu.stanford.math.plex4.graph.utility.GraphUtility.computeShortestPaths(graph); [Y] = cmdscale(distances); mds_distances = pairwise_row_distances(Y); mds_distances = mds_distances / max(max(mds_distances)); distance_matrices{m + 1} = mds_distances; end bottleneck_distances = pairwise_barcode_analysis(distance_matrices, 50); matlabpool close end ================================================ FILE: src/matlab/experimental/graph_classification/pairwise_row_distances.m ================================================ function distance_matrix = pairwise_row_distances(matrix) n = size(matrix, 1); k = size(matrix, 2); distance_matrix = zeros(n, n); for i = 1:n for j = (i+1):n distance = norm(matrix(i, :) - matrix(j, :)); distance_matrix(i, j) = distance; distance_matrix(j, i) = distance; end end end ================================================ FILE: src/matlab/experimental/graph_classification/plot_example.m ================================================ clc; clear; close all; n = 100; p = 0.4; q = 0.02; c = 2; P = diag((p - q) * ones(1, c)) + q * ones(c, c); %% generator = edu.stanford.math.plex4.graph.random.StochasticBlockmodel(n, P); graph = generator.generate(); options.dimensions = 2; plot_graph(graph, options); ================================================ FILE: src/matlab/experimental/graph_classification/plot_graph.m ================================================ function plot_graph(graph, options) if (~exist('options', 'var')) options = struct; end if (isfield(options, 'on_screen')) on_screen = options.on_screen; else on_screen = 1; end if (isfield(options, 'ray_trace')) ray_trace = options.ray_trace; else ray_trace = 1; end if (isfield(options, 'dimensions')) dimensions = options.dimensions; else dimensions = 3; end if (isfield(options, 'filename')) filename = options.filename; else filename = sprintf('graph_%d.pov', randi(100000, 1)); end distances = edu.stanford.math.plex4.graph.utility.GraphUtility.computeShortestPaths(graph); distances = filter_distance_matrix(distances); stream = edu.stanford.math.plex4.graph.utility.GraphUtility.toSimplexStream(graph); [Y] = cmdscale(distances); points = [Y(:, 1:dimensions)]; for i = 1:dimensions points(:, i) = points(:, i) - mean(points(:, i)); end for i = 1:dimensions points(:, i) = 2 * points(:, i) / max(abs(points(:, i))); end if (on_screen) render_onscreen(stream, points); end if (ray_trace) create_pov_file(stream, points, filename); render_pov_file(filename); end end ================================================ FILE: src/matlab/experimental/graph_classification/random_geometric_graph.m ================================================ function [stream, points] = random_geometric_graph(n, d, r) points = rand(n, d); stream = edu.stanford.math.plex4.streams.impl.ExplicitSimplexStream(); for i = 1:n stream.addVertex(i - 1); end for i = 1:n for j = (i + 1):n if (norm(points(i, :) - points(j, :)) <= r) stream.addElement([i - 1, j - 1]); end end end end ================================================ FILE: src/matlab/experimental/graph_classification/random_geometric_test.m ================================================ clc; clear; close all; n = 100; K = 20; generators = cell(3, 1); generators{1} = edu.stanford.math.plex4.graph.random.RandomGeometricGraph(n, 1, 0.5); generators{2} = edu.stanford.math.plex4.graph.random.RandomGeometricGraph(n, 2, 0.5); generators{3} = edu.stanford.math.plex4.graph.random.RandomGeometricGraph(n, 3, 0.5); %generators{4} = edu.stanford.math.plex4.graph.random.RandomGeometricGraph(n, 4, 0.5); [bottleneck_distances] = pairwise_graph_analysis(generators, K); %% label = sprintf('random_geometric_%d_%d_%d', size(generators, 1), n, K); [hm_handle, mds_handle] = visualize_dissimilarity_matrix(bottleneck_distances, generators, label); ================================================ FILE: src/matlab/experimental/graph_classification/rg_plot_example.m ================================================ clc; clear; close all; n = 1000; d = 2; r = 0.05; [stream, points] = random_geometric_graph(n, d, r); points = (points - 0.5) * 2; %% filename = 'random_geometric_graph.pov'; create_pov_file(stream, points, filename); render_pov_file(filename); ================================================ FILE: src/matlab/experimental/graph_classification/sandbox.m ================================================ clc; clear; close all; %% n = 100; K = 10; generators = cell(5, 1); generators{1} = edu.stanford.math.plex4.graph.random.ErdosRenyiGraph(n, 0.10); generators{2} = edu.stanford.math.plex4.graph.random.ErdosRenyiGraph(n, 0.15); generators{3} = edu.stanford.math.plex4.graph.random.ErdosRenyiGraph(n, 0.20); generators{4} = edu.stanford.math.plex4.graph.random.ErdosRenyiGraph(n, 0.25); generators{5} = edu.stanford.math.plex4.graph.random.ErdosRenyiGraph(n, 0.30); pairwise_graph_analysis(generators, K); %% n = 200; K = 10; generators = cell(2, 1); generators{1} = edu.stanford.math.plex4.graph.random.ErdosRenyiGraph(n, 0.25); generators{2} = edu.stanford.math.plex4.graph.random.ErdosRenyiGraph(n, 0.30); pairwise_graph_analysis(generators, K); %% n = 128; m = 10; K = 10; generators = cell(6, 1); generators{1} = edu.stanford.math.plex4.graph.random.BAGraph(n, m); generators{2} = edu.stanford.math.plex4.graph.random.BinaryHierarchicalGraph(n, 0.6); generators{3} = edu.stanford.math.plex4.graph.random.ErdosRenyiGraph(n, 0.30); generators{4} = edu.stanford.math.plex4.graph.random.RandomGeometricGraph(n, 1, 0.02); generators{5} = edu.stanford.math.plex4.graph.random.RandomGeometricGraph(n, 2, 0.02); generators{6} = edu.stanford.math.plex4.graph.random.RandomGeometricGraph(n, 3, 0.02); pairwise_graph_analysis(generators, K); ================================================ FILE: src/matlab/experimental/graph_classification/spectral_embedding.m ================================================ function [Y] = spectral_embedding(graph, k) laplacian = double(edu.stanford.math.plex4.graph.utility.GraphUtility.getLaplacianMatrix(graph)); normalized_laplacian = compute_normalized_laplacian(laplacian); [V, D] = eig(normalized_laplacian); last_eigenvectors = V(:, 1:k); Y = zeros(size(last_eigenvectors, 1), size(last_eigenvectors, 2)); for i=1:size(last_eigenvectors, 1) n = sqrt(sum(last_eigenvectors(i, :) .^ 2)); if (n ~= 0) Y(i,:) = last_eigenvectors(i, :) ./ n; %Y(i,:) = last_eigenvectors(i, :); end end end ================================================ FILE: src/matlab/experimental/graph_classification/torus_geometric.m ================================================ clc; clear; close all; n = 64; K = 10; k = 10; generators = cell(2, 1); generators{1} = edu.stanford.math.plex4.graph.random.KNearestNeighborsGraph(n, 2, k); generators{2} = edu.stanford.math.plex4.graph.random.TorusGraph(n, 2, k); [bottleneck_distances] = pairwise_graph_analysis(generators, K); %% label = sprintf('torus_cube_%d_%d_%d_%d', size(generators, 1), n, K, k); [hm_handle, mds_handle] = visualize_dissimilarity_matrix(bottleneck_distances, generators, label); ================================================ FILE: src/matlab/experimental/graph_classification/visualize_comparison_distances.m ================================================ function [hm_handle, mds_handle] = visualize_comparison_distances(distances, generators, query_labels, label) G = size(generators, 1); K = size(distances, 1) / G; groups = cell(K * G, 1); similarity_matrix = -distances + mean(mean(distances)); labels = cell(K * G, 1); for g = 1:G for k = 1:K groups{k + (g-1) * K} = char(generators{g}.toString()); if (k == 1) labels{k + (g-1) * K} = char(generators{g}.toString()); else labels{k + (g-1) * K} = ''; end end end hm_handle = figure; heatmap(distances, query_labels, labels); colorbar title('Bottleneck Distances between Graph Samples and Query Graph'); print(hm_handle, strcat(label, '_hm', '.eps')); end ================================================ FILE: src/matlab/experimental/graph_classification/visualize_dissimilarity_matrix.m ================================================ function [hm_handle, mds_handle] = visualize_dissimilarity_matrix(distances, generators, label) G = size(generators, 1); K = size(distances, 1) / G; groups = cell(K * G, 1); similarity_matrix = -distances + mean(mean(distances)); labels = cell(K * G, 1); for g = 1:G for k = 1:K groups{k + (g-1) * K} = char(generators{g}.toString()); if (k == 1) labels{k + (g-1) * K} = char(generators{g}.toString()); else labels{k + (g-1) * K} = ''; end end end [points] = cmdscale(distances); mds_handle = figure; gscatter(points(:, 1), points(:, 2), groups, 'bgrcmyk','xo.+'); title('MDS Embedding of Bottleneck Distances between Graph Samples'); print(mds_handle, strcat(label, '_mds', '.eps')); hm_handle = figure; heatmap(distances, {}, labels); colorbar title('Bottleneck Distances between Graph Samples'); print(hm_handle, strcat(label, '_hm', '.eps')); end ================================================ FILE: src/matlab/experimental/hom/combinatorial/brute_force_test.m ================================================ %% Brute-force discrete hom example % Note that this is obviously impractical for anything other than the % tiniest examples. This is just designed to enumerate the set of minima of % the bisimpliciality objective for small cases. clc; clear; close all; domain_size = 4; codomain_size = 4; domain_stream = examples.SimplexStreamExamples.getCircle(domain_size); codomain_stream = examples.SimplexStreamExamples.getCircle(codomain_size); domain_points = examples.PointCloudExamples.getEquispacedCirclePoints(domain_size); codomain_points = examples.PointCloudExamples.getEquispacedCirclePoints(codomain_size); %% obtain the parameterization [cycle_sum, homotopies] = hom_parameterization(domain_stream, codomain_stream); K = size(homotopies, 1); initial_chain_map = full(cycle_sum) for i=1:K full(homotopies{i}); end %% Compute objective for all coefficients subsets = get_binary_subsets(K); L = size(subsets, 1); values = zeros(L, 1); for i = 1:L values(i) = default_objective(subsets(i, :), cycle_sum, homotopies); end search_space_size = L %% Plot values plot(values, 'bo'); ylabel('Simpliciality penalty'); xlabel('Binary representation of coefficient set'); %% Find minima min_value = min(values); [r, c, v] = find(values == min_value); num_minimizers = length(r) for i = 1:length(r) subsets(r(i), :); end ================================================ FILE: src/matlab/experimental/hom/combinatorial/flip_random_entry.m ================================================ function r = flip_random_entry(x) r = x; entry = ceil(rand * length(x)); r(entry) = 1 - r(entry); end ================================================ FILE: src/matlab/experimental/hom/combinatorial/get_binary_subsets.m ================================================ function subsets = get_binary_subsets(n) size = 2^n; subsets = zeros(size, n); for i = 1:(size - 1) k = 1; for j = 1:n subsets(i + 1, j) = bitand(i, k) / k; k = k * 2; end end end ================================================ FILE: src/matlab/experimental/hom/combinatorial/greedy_search.m ================================================ function [minimizer, minimum] = greedy_search(f, initial_point) current_point = initial_point; previous_point = current_point; current_value = f(initial_point); previous_value = current_value; k = length(initial_point); while 1 for i = 1:k current_point(i) = 1 - current_point(i); current_value = f(current_point); if (current_value < previous_value) break; end current_point(i) = 1 - current_point(i); if (i == k) minimizer = previous_point; minimum = previous_value; return; end end if (current_value >= previous_value) break; end previous_point = current_point; previous_value = current_value; end minimizer = current_point; minimum = current_value; end ================================================ FILE: src/matlab/experimental/hom/combinatorial/greedy_search_test.m ================================================ %% This script uses greedy search to attempt to minimize the bisimpliciality objective clc; clear; close all; domain_size = 5; codomain_size = 5; domain_stream = examples.SimplexStreamExamples.getTorus(); codomain_stream = examples.SimplexStreamExamples.getTorus(); domain_points = examples.PointCloudExamples.getEquispacedCirclePoints(domain_size); codomain_points = examples.PointCloudExamples.getEquispacedCirclePoints(codomain_size); % obtain the parameterization [cycle_sum, homotopies] = hom_parameterization(domain_stream, codomain_stream); K = size(homotopies, 1); cost_function = @(x) default_objective(x, cycle_sum, homotopies); initial_point = round(randn(1, K)); [optimizer, optimum] = greedy_search(cost_function, initial_point); %% map = full(compute_mapping(cycle_sum, homotopies, optimizer)) optimum ================================================ FILE: src/matlab/experimental/hom/combinatorial/hom_parameterization_example.m ================================================ % This script shows an example of computing the parameterization of the % space of chain maps clc; clear; close all; % create the domain and codomain simplicial complexes domain_stream = examples.SimplexStreamExamples.getTetrahedron(); codomain_stream = examples.SimplexStreamExamples.getTetrahedron(); % obtain the parameterization [cycle_sum, homotopies] = hom_parameterization(domain_stream, codomain_stream); cycle_sum ================================================ FILE: src/matlab/experimental/hom/combinatorial/simmulated_annealing_test.m ================================================ clc; clear; close all; domain_size = 8; codomain_size = 8; domain_stream = examples.SimplexStreamExamples.getCircle(domain_size); codomain_stream = examples.SimplexStreamExamples.getCircle(codomain_size); domain_points = examples.PointCloudExamples.getEquispacedCirclePoints(domain_size); codomain_points = examples.PointCloudExamples.getEquispacedCirclePoints(codomain_size); %% % obtain the parameterization [cycle_sum, homotopies] = hom_parameterization(domain_stream, codomain_stream); K = size(homotopies, 1); cost_function = @(x) default_objective(x, cycle_sum, homotopies); random_neighbor_function = @(x) flip_random_entry(x); initial_point = zeros(1, K); [optimizer, optimum] = simulated_annealing(cost_function, random_neighbor_function, initial_point); %% map = full(compute_mapping(cycle_sum, homotopies, optimizer)) optimum ================================================ FILE: src/matlab/experimental/hom/combinatorial/simulated_annealing.m ================================================ function [optimizer, optimum, num_iterations] = simulated_annealing(cost_function, ... random_neighbor_function, initial_point, options) default_options.initial_temp = 1000; default_options.temp_update = @(T) (T * 0.999); default_options.stop_temp = 1e-8; default_options.max_iterations = 100000; if (~exist('options.initial_temp')) options.initial_temp = default_options.initial_temp; end if (~exist('options.temp_update')) options.temp_update = default_options.temp_update; end if (~exist('options.stop_temp')) options.stop_temp = default_options.stop_temp; end if (~exist('options.max_iterations')) options.max_iterations = default_options.max_iterations; end k = 1; T = options.initial_temp; current_energy = cost_function(initial_point); current_point = initial_point; previous_point = current_point; previous_energy = current_energy; min_energy = current_energy; min_point = current_point; finished = 0; iteration = 0; while (~finished) candidate_point = random_neighbor_function(current_point); candidate_energy = cost_function(current_point); if (candidate_energy < min_energy) previous_point = current_point; previous_energy = current_energy; current_point = candidate_point; current_energy = candidate_energy; min_energy = candidate_energy; min_point = candidate_point; continue; end if (candidate_energy < previous_energy) previous_point = current_point; previous_energy = current_energy; current_point = candidate_point; current_energy = candidate_energy; else if (rand() < exp(-(candidate_energy - current_energy) / (k * T))) previous_point = current_point; previous_energy = current_energy; current_point = candidate_point; current_energy = candidate_energy; else % current_point = current_point; end end T = options.temp_update(T); iteration = iteration + 1; if (iteration >= options.max_iterations) finished = 1; end if (T < options.stop_temp) finished = 1; end end num_iterations = iteration; optimizer = min_point; optimum = min_energy; end ================================================ FILE: src/matlab/experimental/hom/continuous/circle_example.m ================================================ %% Continuous circle example - finds random corner point of feasible set clc; clear; close all; domain_size = 4; codomain_size = 5; domain_stream = examples.SimplexStreamExamples.getCircle(domain_size); codomain_stream = examples.SimplexStreamExamples.getCircle(codomain_size); domain_points = examples.PointCloudExamples.getEquispacedCirclePoints(domain_size); codomain_points = examples.PointCloudExamples.getEquispacedCirclePoints(codomain_size); % obtain the parameterization [cycle_sum, homotopies] = hom_parameterization(domain_stream, codomain_stream); % setup the LP - find a feasible point and the value of the max function in % the set C [f, A, b, Aeq, beq, lb, ub] = create_max_lp(cycle_sum, homotopies); [x, fval, exitflag, output, lambda] = linprog(f, A, b, Aeq, beq, lb, ub); fval map = compute_mapping(cycle_sum, homotopies, x(1:size(homotopies, 1))); map = (abs(map) > 1e-3) .* map; full(map) % find a random corner point of the set of optima [f, A, b, Aeq, beq, lb, ub] = create_max_lp(cycle_sum, homotopies, fval, randn(size(homotopies, 1), 1)); [x, fval, exitflag, output, lambda] = linprog(f, A, b, Aeq, beq, lb, ub); fval map = compute_mapping(cycle_sum, homotopies, x(1:size(homotopies, 1))); map = (abs(map) > 1e-3) .* map; full(map) dlmwrite('matrix.txt', full(map)); %% import edu.stanford.math.plex_viewer.*; Api.drawMapping(domain_stream, domain_points, codomain_stream, codomain_points + ones(codomain_size, 2), abs(map)); ================================================ FILE: src/matlab/experimental/hom/continuous/create_max_lp.m ================================================ function [f, A, b, Aeq, beq, lb, ub] = create_max_lp(cycle_sum, homotopies, opt_max_constraint, opt_f) K = size(homotopies, 1); [I, J] = size(homotopies{1}); %{ x = [c_1 ... c_K, s_11 ... s_IJ, t_1 ... t_J, u_1 ... u_I, t, u] Equality constraints: for i, j = 1, 1 ... I, J: s_ij = sum_k sum_k c_k H_ij^k + H_ij^0 %} num_variables = K + I*J + I + J + 2; num_constraints = 2 * (I*J + I + J) + 1; A = sparse(num_constraints, num_variables); b = sparse(num_constraints, 1); f = sparse(num_variables, 1); for i = 1:I for j = 1:J s_index = K + flatten(i, j, I, J); constraint_index = 2 * flatten(i, j, I, J) - 1; A(constraint_index, s_index) = -1; A(constraint_index + 1, s_index) = -1; end end for k = 1:K [i_indices, j_indices, values] = find(homotopies{k}); count = length(i_indices); for index = 1:count i = i_indices(index); j = j_indices(index); v = values(index); constraint_index = 2 * flatten(i, j, I, J) - 1; A(constraint_index, k) = v; A(constraint_index + 1, k) = -v; end end [i_indices, j_indices, values] = find(cycle_sum); count = length(i_indices); for index = 1:count i = i_indices(index); j = j_indices(index); v = values(index); s_index = K + flatten(i, j, I, J); constraint_index = 2 * flatten(i, j, I, J) - 1; b(constraint_index) = -v; b(constraint_index + 1) = v; end constraint_index = 2 * I * J + 1; for j = 1:J t_j_index = K + I*J + j; A(constraint_index, t_j_index) = -1; for i = 1:I s_ij_index = K + flatten(i, j, I, J); A(constraint_index, s_ij_index) = 1; end constraint_index = constraint_index + 1; end for i = 1:I u_i_index = K + I*J + J + i; A(constraint_index, u_i_index) = -1; for j = 1:J s_ij_index = K + flatten(i, j, I, J); A(constraint_index, s_ij_index) = 1; end constraint_index = constraint_index + 1; end t_index = K + I*J + J + I + 1; u_index = t_index + 1; for j = 1:J t_j_index = K + I*J + j; A(constraint_index, t_j_index) = 1; A(constraint_index, t_index) = -1; constraint_index = constraint_index + 1; end for i = 1:I u_i_index = K + I*J + J + i; A(constraint_index, u_i_index) = 1; A(constraint_index, u_index) = -1; constraint_index = constraint_index + 1; end if (exist('opt_max_constraint', 'var')) A(constraint_index, t_index) = 1; A(constraint_index, u_index) = 1; b(constraint_index) = opt_max_constraint + 0.1; end f(t_index) = 1; f(u_index) = 1; if (exist('opt_f', 'var')) f(1:length(opt_f)) = opt_f; end large = 10; Aeq = []; beq = []; lb = -large * ones(num_variables, 1); ub = large * ones(num_variables, 1); for k = 1:K lb(k) = -large; ub(k) = large; end end ================================================ FILE: src/matlab/experimental/hom/continuous/create_positive_lp.m ================================================ function [f, A, b, Aeq, beq, lb, ub] = create_positive_lp(cycle_sum, homotopies, opt_max_constraint, opt_f) K = size(homotopies, 1); [I, J] = size(homotopies{1}); %{ x = [c_1 ... c_K, a_11 ... a_IJ, r_1 ... r_I, l_1 ... l_J, r, l] a_ij = sum_k c_k H_ij^k + H_ij^0 r_i = sum_i a_ij (sum over i'th row) l_j = sum_j a_ij (sum over j'th col) r >= r_i (all i) l >= l_j (all j) Equality constraints: for i, j = 1, 1 ... I, J: a_ij = sum_k sum_k c_k H_ij^k + H_ij^0 for i = 1 ... I: r_i = sum_i a_ij for j = 1 ... J: l_j = sum_j a_ij Inequality constraints: for i = 1 ... I: r >= r_i for j = 1 ... J: l >= l_j r + l <= fval ub/lb constraints: for i, j = 1, 1 ... I, J: a_ij >= 0 minimize max_i r_i + max_j l_j %} num_variables = K + I*J + I + J + 2; num_equality_constraints = I*J + I + J; num_inequality_constraints = I + J + 1; Aeq = sparse(num_equality_constraints, num_variables); beq = sparse(num_equality_constraints, 1); A = sparse(num_inequality_constraints, num_variables); b = sparse(num_inequality_constraints, 1); f = sparse(num_variables, 1); lb = sparse(num_variables, 1); ub = sparse(num_variables, 1); for i = 1:I for j = 1:J a_ij_index = K + flatten(i, j, I, J); equality_constraint_index = flatten(i, j, I, J); Aeq(equality_constraint_index, a_ij_index) = -1; end end for k = 1:K [i_indices, j_indices, values] = find(homotopies{k}); count = length(i_indices); for index = 1:count i = i_indices(index); j = j_indices(index); v = values(index); equality_constraint_index = flatten(i, j, I, J); Aeq(equality_constraint_index, k) = v; end end [i_indices, j_indices, values] = find(cycle_sum); count = length(i_indices); for index = 1:count i = i_indices(index); j = j_indices(index); v = values(index); equality_constraint_index = flatten(i, j, I, J); beq(equality_constraint_index) = -v; end for i = 1:I r_i_index = K + I*J + i; equality_constraint_index = I*J + i; Aeq(equality_constraint_index, r_i_index) = -1; for j = 1:J a_ij_index = K + flatten(i, j, I, J); Aeq(equality_constraint_index, a_ij_index) = 1; end end for j = 1:J l_j_index = K + I*J + I + j; equality_constraint_index = I*J + I + j; Aeq(equality_constraint_index, l_j_index) = -1; for i = 1:I a_ij_index = K + flatten(i, j, I, J); Aeq(equality_constraint_index, a_ij_index) = 1; end end r_index = K + I*J + I + J + 1; l_index = K + I*J + I + J + 2; for i = 1:I r_i_index = K + I*J + i; inequality_constraint_index = i; A(inequality_constraint_index, r_index) = -1; A(inequality_constraint_index, r_i_index) = 1; end K = size(homotopies, 1); [I, J] = size(homotopies{1}); for j = 1:J l_j_index = K + I*J + I + j; inequality_constraint_index = I + j; A(inequality_constraint_index, l_index) = -1; A(inequality_constraint_index, l_j_index) = 1; end for index = 1:num_variables lb(index) = -inf; ub(index) = inf; end for index = 1:K lb(index) = -1; ub(index) = 1; end for i = 1:I for j = 1:J a_ij_index = K + flatten(i, j, I, J); lb(a_ij_index) = 0; ub(a_ij_index) = 10; end end if (exist('opt_max_constraint', 'var')) inequality_constraint_index = I + J + 1; A(inequality_constraint_index, l_index) = 1; A(inequality_constraint_index, r_index) = 1; b(inequality_constraint_index) = opt_max_constraint; end f(r_index) = 1; f(l_index) = 1; if (exist('opt_f', 'var')) f(1:length(opt_f)) = opt_f; end end ================================================ FILE: src/matlab/experimental/hom/continuous/create_positive_lp2.m ================================================ function [f, A, b, Aeq, beq, lb, ub] = create_positive_lp(cycle_sum, homotopies, opt_max_constraint, opt_f) K = size(homotopies, 1); [I, J] = size(homotopies{1}); %{ Variables Explanation: x = [c_1 ... c_K, a_11 ... a_IJ, r_1 ... r_I, l_1 ... l_J, r, l] a_ij = sum_k c_k H_ij^k + H_ij^0 r_i = sum_i a_ij (sum over i'th row) l_j = sum_j a_ij (sum over j'th col) r >= r_i (all i) l >= l_j (all j) Equality constraints: for i, j = 1, 1 ... I, J: a_ij = sum_k sum_k c_k H_ij^k + H_ij^0 for i = 1 ... I: r_i = sum_j a_ij for j = 1 ... J: l_j = sum_i a_ij Inequality constraints: for i = 1 ... I: r >= r_i for j = 1 ... J: l >= l_j r + l <= fval ub/lb constraints: for i, j = 1, 1 ... I, J: a_ij >= 0 minimize max_i r_i + max_j l_j %} num_variables = K + I*J + I + J + 2; num_equality_constraints = I*J + I + J; num_inequality_constraints = I + J + 1; Aeq = sparse(num_equality_constraints, num_variables); beq = sparse(num_equality_constraints, 1); A = sparse(num_inequality_constraints, num_variables); b = sparse(num_inequality_constraints, 1); f = sparse(num_variables, 1); lb = sparse(num_variables, 1); ub = sparse(num_variables, 1); for i = 1:I for j = 1:J a_ij_index = K + flatten(i, j, I, J); equality_constraint_index = flatten(i, j, I, J); Aeq(equality_constraint_index, a_ij_index) = -1; end end for k = 1:K [i_indices, j_indices, values] = find(homotopies{k}); count = length(i_indices); for index = 1:count i = i_indices(index); j = j_indices(index); v = values(index); equality_constraint_index = flatten(i, j, I, J); Aeq(equality_constraint_index, k) = v; end end [i_indices, j_indices, values] = find(cycle_sum); count = length(i_indices); for index = 1:count i = i_indices(index); j = j_indices(index); v = values(index); equality_constraint_index = flatten(i, j, I, J); beq(equality_constraint_index) = -v; end for i = 1:I r_i_index = K + I*J + i; equality_constraint_index = I*J + i; Aeq(equality_constraint_index, r_i_index) = -1; for j = 1:J a_ij_index = K + flatten(i, j, I, J); Aeq(equality_constraint_index, a_ij_index) = 1; end end for j = 1:J l_j_index = K + I*J + I + j; equality_constraint_index = I*J + I + j; Aeq(equality_constraint_index, l_j_index) = -1; for i = 1:I a_ij_index = K + flatten(i, j, I, J); Aeq(equality_constraint_index, a_ij_index) = 1; end end r_index = K + I*J + I + J + 1; l_index = K + I*J + I + J + 2; for i = 1:I r_i_index = K + I*J + i; inequality_constraint_index = i; A(inequality_constraint_index, r_index) = -1; A(inequality_constraint_index, r_i_index) = 1; end K = size(homotopies, 1); [I, J] = size(homotopies{1}); for j = 1:J l_j_index = K + I*J + I + j; inequality_constraint_index = I + j; A(inequality_constraint_index, l_index) = -1; A(inequality_constraint_index, l_j_index) = 1; end for index = 1:num_variables lb(index) = -inf; ub(index) = inf; end for index = 1:K lb(index) = -1; ub(index) = 1; end for i = 1:I for j = 1:J a_ij_index = K + flatten(i, j, I, J); lb(a_ij_index) = 0; ub(a_ij_index) = 1; end end if (exist('opt_max_constraint', 'var')) inequality_constraint_index = I + J + 1; A(inequality_constraint_index, l_index) = 1; A(inequality_constraint_index, r_index) = 1; b(inequality_constraint_index) = opt_max_constraint; end f(r_index) = 1; f(l_index) = 1; if (exist('opt_f', 'var')) f(1:length(opt_f)) = opt_f; end end ================================================ FILE: src/matlab/experimental/hom/continuous/tetra_octa_example.m ================================================ %% Continuous circle example - finds random corner point of feasible set clc; clear; close all; domain_size = 4; codomain_size = 5; domain_stream = examples.SimplexStreamExamples.getTetrahedron(); codomain_stream = examples.SimplexStreamExamples.getOctahedron(); domain_points = examples.PointCloudExamples.getTetrahedronVertices(); codomain_points = examples.PointCloudExamples.getOctahedronVertices() + 1; % obtain the parameterization [cycle_sum, homotopies] = hom_parameterization(domain_stream, codomain_stream); % setup the LP - find a feasible point and the value of the max function in % the set C [f, A, b, Aeq, beq, lb, ub] = create_max_lp(cycle_sum, homotopies); [x, fval, exitflag, output, lambda] = linprog(f, A, b, Aeq, beq, lb, ub); fval map = compute_mapping(cycle_sum, homotopies, x(1:size(homotopies, 1))); map = (abs(map) > 1e-3) .* map; full(map) % find a random corner point of the set of optima [f, A, b, Aeq, beq, lb, ub] = create_max_lp(cycle_sum, homotopies, fval, randn(size(homotopies, 1), 1)); [x, fval, exitflag, output, lambda] = linprog(f, A, b, Aeq, beq, lb, ub); fval map = compute_mapping(cycle_sum, homotopies, x(1:size(homotopies, 1))); map = (abs(map) > 1e-3) .* map; full(map) dlmwrite('matrix.txt', full(map)); %% import edu.stanford.math.plex_viewer.*; Api.drawMapping(domain_stream, domain_points, codomain_stream, codomain_points, abs(map)); ================================================ FILE: src/matlab/experimental/hom/hom_utility/compute_mapping.m ================================================ function mapping = compute_mapping(cycle_sum, homotopies, coefficients) % This function computes the representative chain map by adding homotopies % to the cycle sum with the given coefficients. mapping = cycle_sum; K = length(coefficients); for k = 1:K mapping = mapping + coefficients(k) * homotopies{k}; end end ================================================ FILE: src/matlab/experimental/hom/hom_utility/default_objective.m ================================================ function value = default_objective(coefficients, cycle_sum, homotopies) % This function returns the maximum 1-norm of the rows and columns - it % corresponds to the 1-norm relaxation of the bisimpliciality objective % function mapping = compute_mapping(cycle_sum, homotopies, coefficients); value = max(sum(abs(mapping))) + max(sum(abs(mapping'))); end ================================================ FILE: src/matlab/experimental/hom/hom_utility/hom_parameterization.m ================================================ function [cycle_sum, homotopies] = hom_parameterization(domain_stream, codomain_stream) % [cycle_sum, homotopies] = hom_parameterization(domain_stream, codomain_stream) % % INPUTS % domain_stream: an object of type AbstractFilteredStream<Simplex> which % contains the contents of the domain % codomain_stream: an object of type AbstractFilteredStream<Simplex> which % contains the contents of the codomain % % OUTPUTS % cycle_sum: a chain map generated by representatives of significant % intervals in the homology of the hom-complex (a sparse matrix) % homotopies: a cell array containing the set of chain homotopies as sparse % matrices import edu.stanford.math.plex4.*; import edu.stanford.math.primitivelib.collections.utility.*; matrix_converter = api.Plex4.createHomMatrixConverter(domain_stream, codomain_stream); hom_stream = api.Plex4.createHomStream(domain_stream, codomain_stream); hom_stream.finalizeStream(); persistence = api.Plex4.getRationalHomAlgorithm(); chain_module = persistence.getChainModule(); homotopies = hom_stream.getHomotopiesAsDouble(chain_module); homotopy_matrices = cell(homotopies.size(), 1); m = codomain_stream.getSize(); n = domain_stream.getSize(); index = 1; iterator = homotopies.iterator(); while (iterator.hasNext()) homotopy = iterator.next(); homotopy_matrices{index} = to_sparse_matlab_matrix(homotopy, matrix_converter); index = index + 1; end barcode_collection = persistence.computeAnnotatedIntervals(hom_stream); intervals = barcode_collection.getIntervalGeneratorPairsAtDimension(0); cycle_sum = chain_module.createNewSum(); iterator = intervals.iterator(); cycle_index = 1; while (iterator.hasNext()) interval_generator_pair = iterator.next(); interval = interval_generator_pair.getFirst(); generator = interval_generator_pair.getSecond(); if (interval.isInfinite())% && (cycle_index == 1)) chain_module.accumulate(cycle_sum, generator); end cycle_index = cycle_index + 1; end cycle_sum = hom_stream.toDoubleFormalSum(cycle_sum); cycle_sum = to_sparse_matlab_matrix(cycle_sum, matrix_converter); homotopies = homotopy_matrices; end ================================================ FILE: src/matlab/experimental/hom/load_hom.m ================================================ cd '../../for_distribution'; load_javaplex; cd '../experimental/hom/hom_utility'; addpath(pwd); cd '..'; ================================================ FILE: src/matlab/experimental/hom_messy/L2_distance.m ================================================ function d = L2_distance(a,b,df) % L2_DISTANCE - computes Euclidean distance matrix % % E = L2_distance(A,B) % % A - (DxM) matrix % B - (DxN) matrix % df = 1, force diagonals to be zero; 0 (default), do not force % % Returns: % E - (MxN) Euclidean distances between vectors in A and B % % % Description : % This fully vectorized (VERY FAST!) m-file computes the % Euclidean distance between two vectors by: % % ||A-B|| = sqrt ( ||A||^2 + ||B||^2 - 2*A.B ) % % Example : % A = rand(400,100); B = rand(400,200); % d = distance(A,B); % Author : Roland Bunschoten % University of Amsterdam % Intelligent Autonomous Systems (IAS) group % Kruislaan 403 1098 SJ Amsterdam % tel.(+31)20-5257524 % bunschot@wins.uva.nl % Last Rev : Wed Oct 20 08:58:08 MET DST 1999 % Tested : PC Matlab v5.2 and Solaris Matlab v5.3 % Copyright notice: You are free to modify, extend and distribute % this code granted that the author of the original code is % mentioned as the original author of the code. % Fixed by JBT (3/18/00) to work for 1-dimensional vectors % and to warn for imaginary numbers. Also ensures that % output is all real, and allows the option of forcing diagonals to % be zero. if (nargin < 2) error('Not enough input arguments'); end if (nargin < 3) df = 0; % by default, do not force 0 on the diagonal end if (size(a,1) ~= size(b,1)) error('A and B should be of same dimensionality'); end if ~(isreal(a)*isreal(b)) disp('Warning: running distance.m with imaginary numbers. Results may be off.'); end if (size(a,1) == 1) a = [a; zeros(1,size(a,2))]; b = [b; zeros(1,size(b,2))]; end aa=sum(a.*a); bb=sum(b.*b); ab=a'*b; d = sqrt(repmat(aa',[1 size(bb,2)]) + repmat(bb,[size(aa,2) 1]) - 2*ab); % make sure result is all real d = real(d); % force 0 on the diagonal? if (df==1) d = d.*(1-eye(size(d))); end ================================================ FILE: src/matlab/experimental/hom_messy/alexander_whitney_difference.m ================================================ function d = alexander_whitney_difference(map, domain_aw_matrix, codomain_aw_matrix) domain_size = size(domain_aw_matrix, 2); codomain_size = size(domain_aw_matrix, 2); RHS = zeros(codomain_size^2, domain_size); for j = 1:domain_size RHS(:, j) = fast_kron_mult(map, map, domain_aw_matrix(:, j)); end LHS = codomain_aw_matrix * map; d = LHS - RHS; end ================================================ FILE: src/matlab/experimental/hom_messy/alexander_whitney_loss_function.m ================================================ function z = alexander_whitney_loss_function(map, domain_aw_matrix, codomain_aw_matrix, loss_function) domain_size = size(domain_aw_matrix, 2); codomain_size = size(domain_aw_matrix, 2); z = 0; for j = 1:domain_size LHS = codomain_aw_matrix * map(:, j); RHS = fast_kron_mult(map, map, domain_aw_matrix(:, j)); z = z + loss_function(LHS - RHS); end end ================================================ FILE: src/matlab/experimental/hom_messy/circle_distance.m ================================================ function d = circle_distance(a, b) d = b - a; while d < 0 d = d + 2 * pi; end end ================================================ FILE: src/matlab/experimental/hom_messy/codomain_points.txt ================================================ 2.3915,1.9307 -3.5606,5.6496e-016 -2.6114,6.5992e-016 -2.2531,1.353 -2.2531,-1.353 -1.3621,2.3961 -1.3621,-2.3961 -0.13125,-2.8902 -0.13125,2.8902 1.2007,-2.7223 1.2007,2.7223 2.3915,-1.9307 3.2403,-0.69676 3.2403,0.69676 ================================================ FILE: src/matlab/experimental/hom_messy/codomain_stream.txt ================================================ 0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 0,10 0,11 0,12 0,13 0,0,10 0,0,13 0,1,2 0,2,3 0,2,4 0,3,5 0,4,6 0,5,8 0,6,7 0,7,9 0,8,10 0,9,11 0,11,12 0,12,13 ================================================ FILE: src/matlab/experimental/hom_messy/colorGraph.m ================================================ function [nodeColors] = colorGraph(G) % [nodeColors] = colorGraph(G) % INPUT : % G : Adjacency Matrix, '1' indicates a link. % % OUTPUT: % nodeColors: Color of each node % BEGIN COPYRIGHT NOTICE % % Mapper code -- (c) 2007-2009 Gurjeet Singh % % This code is provided as is, with no guarantees except that % bugs are almost surely present. % % Comments and bug reports are welcome. Email to % gurjeet@stanford.edu. % I would also appreciate hearing about how you used this code, % improvements that you have made to it, or translations into other % languages. % % You are free to modify, extend or distribute this code, as long % as this copyright notice is included whole and unchanged. % % END COPYRIGHT NOTICE [numNodes, numNodes] = size(G); nodeColors = zeros(1, numNodes); color = 1; %start searching from node 1... q = [1]; nodeColors(q(1)) = color; %gr = zeros(size(G)); while(length(find(nodeColors == 0)) ~= 0) while(length(q) ~= 0) currnode = q(1); q = q(2:length(q)); connectednodes = find(G(currnode,:)==1); for i=1:length(connectednodes) if(nodeColors(connectednodes(i)) == 0) %gr(currnode, connectednodes(i)) = color; %gr(connectednodes(i), currnode) = color; nodeColors(connectednodes(i)) = color; q = [q connectednodes(i)]; end %imagesc(gr); end end colorless = find(nodeColors == 0); if(length(colorless) > 0) q = [colorless(1)]; color = color + 1; nodeColors(q(1)) = color; end end ================================================ FILE: src/matlab/experimental/hom_messy/compute_interpolated_points.m ================================================ function [interpolated_points] = compute_interpolated_points(mapping, domain_points, codomain_points) [I_0, domain_dimension] = size(domain_points); [J_0, codomain_dimension] = size(codomain_points); vertex_mapping = mapping(1:J_0, 1:I_0); interpolated_points = vertex_mapping' * codomain_points; %interpolated_points = mod(interpolated_points, 2 * pi); end ================================================ FILE: src/matlab/experimental/hom_messy/compute_mapping.m ================================================ function mapping = compute_mapping(cycle_sum, homotopies, coefficients) % This function computes the representative chain map by adding homotopies % to the cycle sum with the given coefficients. mapping = cycle_sum; K = length(coefficients); for k = 1:K mapping = mapping + coefficients(k) * homotopies{k}; end end ================================================ FILE: src/matlab/experimental/hom_messy/convert_sparse_matrix.m ================================================ function matlab_sparse_matrix = convert_sparse_matrix(sparse_primitivelib_matrix) % matlab_sparse_matrix = convert_sparse_matrix(formal_sum, matrix_converter) % % INPUTS: % sparse_primitivelib_matrix: an object of type DoubleSparseMatrix or % IntSparseMatrix % % OUTPUTS: % matlab_sparse_matrix: a matlab sparse matrix equivalent of the java % sparse matrix import edu.stanford.math.plex4.*; m = sparse_primitivelib_matrix.getNumRows(); n = sparse_primitivelib_matrix.getNumColumns(); i = sparse_primitivelib_matrix.getRows()' + 1; j = sparse_primitivelib_matrix.getColumns()' + 1; s = sparse_primitivelib_matrix.getValues()'; matlab_sparse_matrix = sparse(m, n); for k = 1:length(i) matlab_sparse_matrix(i(k), j(k)) = s(k); end end ================================================ FILE: src/matlab/experimental/hom_messy/create_max_lp.m ================================================ function [f, A, b, Aeq, beq, lb, ub] = create_max_lp(cycle_sum, homotopies, opt_max_constraint, opt_f) K = size(homotopies, 1); [I, J] = size(homotopies{1}); %{ x = [c_1 ... c_K, s_11 ... s_IJ, t_1 ... t_J, u_1 ... u_I, t, u] %} num_variables = K + I*J + I + J + 2; num_constraints = 2 * (I*J + I + J) + 1; A = sparse(num_constraints, num_variables); b = sparse(num_constraints, 1); f = sparse(num_variables, 1); for i = 1:I for j = 1:J s_index = K + flatten(i, j, I, J); constraint_index = 2 * flatten(i, j, I, J) - 1; A(constraint_index, s_index) = -1; A(constraint_index + 1, s_index) = -1; end end for k = 1:K [i_indices, j_indices, values] = find(homotopies{k}); count = length(i_indices); for index = 1:count i = i_indices(index); j = j_indices(index); v = values(index); constraint_index = 2 * flatten(i, j, I, J) - 1; A(constraint_index, k) = v; A(constraint_index + 1, k) = -v; end end [i_indices, j_indices, values] = find(cycle_sum); count = length(i_indices); for index = 1:count i = i_indices(index); j = j_indices(index); v = values(index); s_index = K + flatten(i, j, I, J); constraint_index = 2 * flatten(i, j, I, J) - 1; b(constraint_index) = -v; b(constraint_index + 1) = v; end constraint_index = 2 * I * J + 1; for j = 1:J t_j_index = K + I*J + j; A(constraint_index, t_j_index) = -1; for i = 1:I s_ij_index = K + flatten(i, j, I, J); A(constraint_index, s_ij_index) = 1; end constraint_index = constraint_index + 1; end for i = 1:I u_i_index = K + I*J + J + i; A(constraint_index, u_i_index) = -1; for j = 1:J s_ij_index = K + flatten(i, j, I, J); A(constraint_index, s_ij_index) = 1; end constraint_index = constraint_index + 1; end t_index = K + I*J + J + I + 1; u_index = t_index + 1; for j = 1:J t_j_index = K + I*J + j; A(constraint_index, t_j_index) = 1; A(constraint_index, t_index) = -1; constraint_index = constraint_index + 1; end for i = 1:I u_i_index = K + I*J + J + i; A(constraint_index, u_i_index) = 1; A(constraint_index, u_index) = -1; constraint_index = constraint_index + 1; end if (exist('opt_max_constraint', 'var')) A(constraint_index, t_index) = 1; A(constraint_index, u_index) = 1; b(constraint_index) = opt_max_constraint + 0.1; end f(t_index) = 1; f(u_index) = 1; if (exist('opt_f', 'var')) f(1:length(opt_f)) = opt_f; end large = 100; Aeq = []; beq = []; lb = -large * ones(num_variables, 1); ub = large * ones(num_variables, 1); for k = 1:K lb(k) = -large; ub(k) = large; end end ================================================ FILE: src/matlab/experimental/hom_messy/create_positive_lp.m ================================================ function [f, A, b, Aeq, beq, lb, ub] = create_positive_lp(cycle_sum, homotopies, opt_max_constraint, opt_f) K = size(homotopies, 1); [I, J] = size(homotopies{1}); %{ x = [c_1 ... c_K, a_11 ... a_IJ, r_1 ... r_I, l_1 ... l_J, r, l] a_ij = sum_k c_k H_ij^k + H_ij^0 r_i = sum_i a_ij (sum over i'th row) l_j = sum_j a_ij (sum over j'th col) r >= r_i (all i) l >= l_j (all j) Equality constraints: for i, j = 1, 1 ... I, J: a_ij = sum_k sum_k c_k H_ij^k + H_ij^0 for i = 1 ... I: r_i = sum_i a_ij for j = 1 ... J: l_j = sum_j a_ij Inequality constraints: for i = 1 ... I: r >= r_i for j = 1 ... J: l >= l_j r + l <= fval ub/lb constraints: for i, j = 1, 1 ... I, J: a_ij >= 0 minimize max_i r_i + max_j l_j %} num_variables = K + I*J + I + J + 2; num_equality_constraints = I*J + I + J; num_inequality_constraints = I + J + 1; Aeq = sparse(num_equality_constraints, num_variables); beq = sparse(num_equality_constraints, 1); A = sparse(num_inequality_constraints, num_variables); b = sparse(num_inequality_constraints, 1); f = sparse(num_variables, 1); lb = sparse(num_variables, 1); ub = sparse(num_variables, 1); for i = 1:I for j = 1:J a_ij_index = K + flatten(i, j, I, J); equality_constraint_index = flatten(i, j, I, J); Aeq(equality_constraint_index, a_ij_index) = -1; end end for k = 1:K [i_indices, j_indices, values] = find(homotopies{k}); count = length(i_indices); for index = 1:count i = i_indices(index); j = j_indices(index); v = values(index); equality_constraint_index = flatten(i, j, I, J); Aeq(equality_constraint_index, k) = v; end end [i_indices, j_indices, values] = find(cycle_sum); count = length(i_indices); for index = 1:count i = i_indices(index); j = j_indices(index); v = values(index); equality_constraint_index = flatten(i, j, I, J); beq(equality_constraint_index) = -v; end for i = 1:I r_i_index = K + I*J + i; equality_constraint_index = I*J + i; Aeq(equality_constraint_index, r_i_index) = -1; for j = 1:J a_ij_index = K + flatten(i, j, I, J); Aeq(equality_constraint_index, a_ij_index) = 1; end end for j = 1:J l_j_index = K + I*J + I + j; equality_constraint_index = I*J + I + j; Aeq(equality_constraint_index, l_j_index) = -1; for i = 1:I a_ij_index = K + flatten(i, j, I, J); Aeq(equality_constraint_index, a_ij_index) = 1; end end r_index = K + I*J + I + J + 1; l_index = K + I*J + I + J + 2; for i = 1:I r_i_index = K + I*J + i; inequality_constraint_index = i; A(inequality_constraint_index, r_index) = -1; A(inequality_constraint_index, r_i_index) = 1; end K = size(homotopies, 1); [I, J] = size(homotopies{1}); for j = 1:J l_j_index = K + I*J + I + j; inequality_constraint_index = I + j; A(inequality_constraint_index, l_index) = -1; A(inequality_constraint_index, l_j_index) = 1; end for index = 1:num_variables lb(index) = -inf; ub(index) = inf; end for index = 1:K lb(index) = -1; ub(index) = 1; end for i = 1:I for j = 1:J a_ij_index = K + flatten(i, j, I, J); lb(a_ij_index) = 0; ub(a_ij_index) = 1; end end if (exist('opt_max_constraint', 'var')) inequality_constraint_index = I + J + 1; A(inequality_constraint_index, l_index) = 1; A(inequality_constraint_index, r_index) = 1; b(inequality_constraint_index) = opt_max_constraint; end f(r_index) = 1; f(l_index) = 1; if (exist('opt_f', 'var')) f(1:length(opt_f)) = opt_f; end end ================================================ FILE: src/matlab/experimental/hom_messy/create_quotient_complex.m ================================================ function [stream,collapsed_adjacency_matrix] = create_quotient_complex(adjacency_matrix, filter_values) import edu.stanford.math.plex4.*; stream = api.Plex4.createExplicitSimplexStream(); [m, n] = size(adjacency_matrix); maxima = []; for i = 1:m [r, c] = find(adjacency_matrix(i, :)); candidates = filter_values(c); if (length(candidates) == 1 && filter_values(i) >= candidates(1)) maxima = [maxima i] end if (filter_values(i) > max(candidates)) %maxima = [maxima i] end end % add quotient vertex stream.addVertex(0); vertex_index = 1; vertex_mapping = zeros(m, 1); collapsed_filter_values = []; for i = 1:m c = find(maxima == i); if (isempty(c)) vertex_mapping(i) = vertex_index; stream.addVertex(vertex_index); collapsed_filter_values(vertex_index + 1) = filter_values(vertex_index); vertex_index = vertex_index + 1; else end end num_vertices = vertex_index; collapsed_adjacency_matrix = zeros(num_vertices, num_vertices); for i = 1:m [r, c] = find(adjacency_matrix(i, :)); vertex_i = vertex_mapping(i); for j = c if (j > i) vertex_j = vertex_mapping(j); if (vertex_i ~= 0 || vertex_j ~= 0) stream.addElement([vertex_i, vertex_j]); collapsed_adjacency_matrix(vertex_i, vertex_j) = 1; collapsed_adjacency_matrix(vertex_j, vertex_i) = 1; end end end end end ================================================ FILE: src/matlab/experimental/hom_messy/create_quotient_mapper_complex.m ================================================ function [stream, filter, adjacency_matrix, set_size] = create_quotient_mapper_complex(X) % Find the Inter-point Distance Matrix d = L2_distance(X',X',1); % Find the filter, here we use the distance from the first point eccFilter = d(1, :); figure; scatter(X(:,1), X(:,2), 1000, eccFilter, '.'); axis equal; % Parameters for Mapper filterSamples = 5; overlapPct = 50; % Run Mapper [adja, nodeInfo, levelIdx] = mapper(d, eccFilter, 1/filterSamples,... overlapPct); % Prepare inputs for GraphViz % For each node of the output graph, find the size (~ cardinality of the % cluster) and the average function value of points in the cluster. label{1} = sprintf('Dataset Name : test'); label{2} = sprintf('Filter Samples : %d', filterSamples); label{3} = sprintf('Overlap Pct : %0.2f', overlapPct); for i=1:length(nodeInfo) ecc(i) = nodeInfo{i}.filter; setSize(i) = length(nodeInfo{i}.set); end % Generate the input to Graphviz writeDotFile(sprintf('t1.dot'), adja, ecc, setSize, label); % Execute Graphviz system(sprintf('\"C:\\Program Files (x86)\\Graphviz2.22\\bin\\neato.exe\" -Tpng t1.dot -o t1.png')); figure; imshow('t1.png') % stream = create_quotient_complex(adja, ecc); stream.finalizeStream(); filter = ecc; adjacency_matrix = adja; set_size = setSize; end ================================================ FILE: src/matlab/experimental/hom_messy/density_at_point.m ================================================ function [ density ] = density_at_point(cluster_center,cluster_density,point) %DENSITY_AT_POINT Summary of this function goes here % Detailed explanation goes here if (cluster_density==0) density = 0; return; end s = cluster_density; coef = 1/sqrt(2*pi*s^2); density = coef*exp(-norm(cluster_center - point)^2 / (2*s^2)); ================================================ FILE: src/matlab/experimental/hom_messy/density_function.m ================================================ function [f,g] = density_function(D,sigma,x) % DENSITY_FUNCTION N-dimensional (symmetric) gaussian density estimation % function. This returns -1 times the function value so that minimizing it % actually finds the maximimum. % % INPUT: D n x d matrix of n d-dimensional points % sigma standard deviation % x function argument % % OUTPUT: f the scalar function value at x % g the vector gradient value at x n = size(D,1); % Compute the value of the function at x f = 0; g = x*0; for i=1:n y = D(i,:); f = f + evalfun(x,y,sigma); g = g + evalgrad(x,y,sigma); end % Compute the gradient if it is needed if nargout > 1 end end function g = evalgrad(x,y,sigma) g = (x-y)*exp(-norm(x-y)^2/(2*sigma^2))/(sqrt(2*pi)*sigma^3); end function f = evalfun(x,y,sigma) f = -exp(-norm(x-y)^2/(2*sigma^2))/sqrt(2*pi*sigma^2); end ================================================ FILE: src/matlab/experimental/hom_messy/density_maximization_test.m ================================================ clc; clear; close all; domain_size = 4; codomain_size = 200; % create the domain and codomain simplicial complexes %{ width = 4; length = 8; domain_stream = examples.SimplexStreamExamples.getAnnulus(width, length); codomain_stream = examples.SimplexStreamExamples.getCircle(codomain_size); domain_points = examples.PointCloudExamples.getAnnulusVertices(width, length); codomain_points = examples.PointCloudExamples.getEquispacedCirclePoints(codomain_size); %} %{ domain_stream = examples.SimplexStreamExamples.getIcosahedron(); codomain_stream = examples.SimplexStreamExamples.getOctahedron(); domain_points = examples.PointCloudExamples.getIcosahedronVertices(); codomain_points = examples.PointCloudExamples.getOctahedronVertices() + 1; %} %{ domain_stream = examples.SimplexStreamExamples.getCircle(domain_size); codomain_stream = examples.SimplexStreamExamples.getCircle(codomain_size); domain_points = examples.PointCloudExamples.getEquispacedCirclePoints(domain_size); codomain_points = examples.PointCloudExamples.getEquispacedCirclePoints(codomain_size); codomain_points = codomain_points + 0 * ones(codomain_size, 1) * [3, 0]; domain_theta = ([0:domain_size - 1] * (2 * pi / domain_size))'; codomain_theta = ([0:codomain_size - 1] * (2 * pi / codomain_size))'; %} utility.RandomUtility.initializeWithSeed(0); hold on; %codomain_points = examples.PointCloudExamples.getRandomTrefoilKnotPoints(codomain_size); codomain_points = examples.PointCloudExamples.getRandomSpherePoints(codomain_size, 2); plot3(codomain_points(:, 1), codomain_points(:, 2), codomain_points(:, 3), 'bx') + randn() * 0.1; %scatter(codomain_points(:, 1), codomain_points(:, 2), 'bx'); %domain_points = examples.PointCloudExamples.getEquispacedCirclePoints(domain_size); domain_points = examples.PointCloudExamples.getTetrahedronVertices(); %domain_points = domain_points + ones(domain_size, 1) * [3, 0]; % create a randomized landmark selector landmark_selector = api.Plex4.createMaxMinSelector(codomain_points, min(codomain_size / 2, 20)); % create a Lazy-Witness Stream - note that this sets the number of % divisions to the default value of 20 codomain_stream = api.Plex4.createLazyWitnessStream(landmark_selector, 3, 0.2, 1); codomain_stream.finalizeStream(); original_codomain_points = codomain_points; codomain_points = codomain_points(landmark_selector.getLandmarkPoints()+1, :); %domain_stream = examples.SimplexStreamExamples.getCircle(domain_size); domain_stream = examples.SimplexStreamExamples.getTetrahedron(); domain_stream.finalizeStream(); % get the default persistence algorithm persistence = api.Plex4.getDefaultSimplicialAlgorithm(3); % compute the intervals and transform them to filtration values domain_index_intervals = persistence.computeIntervals(domain_stream) % compute the intervals and transform them to filtration values codomain_index_intervals = persistence.computeIntervals(codomain_stream) %% % obtain the parameterization [cycle_sum, homotopies] = hom_parameterization(domain_stream, codomain_stream); %% sigma = 0.5; K = size(homotopies, 1); edge_list = get_edges(domain_stream); distance_function = @(a, b) circle_distance(a, b);3 objective = @(c) density_objective(compute_mapping(cycle_sum, homotopies, c(1:K)), domain_points, codomain_points, gaussian_kernel_densities(codomain_points, codomain_points, sigma)); %c_0 = randn(K, 1); [f, A, b, Aeq, beq, lb, ub] = create_max_lp(cycle_sum, homotopies); [x, fval, exitflag, output, lambda] = linprog(f, A, b, Aeq, beq, lb, ub); fval % find a random corner point of the set of optima [f, A, b, Aeq, beq, lb, ub] = create_max_lp(cycle_sum, homotopies, (fval * 1.1)); %c_0 = randn(size(lb, 1), 1); c_0 = randn(K, 1) * 0.1; options.MaxFunEvals = 100000; options.MaxIter = 100000; [x, fval, exitflag, output] = fminunc(objective, c_0, options); %[x, fval, exitflag, output] = fminsearch(objective, c_0, options); %[x, fval, exitflag, output] = fmincon(objective, c_0, A, b, Aeq, beq, lb, ub, [], options); %[x, fval, exitflag, output] = fmincon(objective, c_0, [], [], [], [], lb, ub, [], options); map = compute_mapping(cycle_sum, homotopies, x(1:size(homotopies, 1))); map = (abs(map) > 1e-3) .* map %% %interpolated_points = compute_interpolated_points((map), domain_points, codomain_points); %figure; %plot3(codomain_points(:, 1), codomain_points(:, 2), codomain_points(:, 3), 'bo'); hold on; plot3(interpolated_points(:, 1), interpolated_points(:, 2), interpolated_points(:, 3), 'ro'); grid off; legend('Codomain Points', 'Domain Points'); %dlmwrite('matrix.txt', full(map)); %figure; %scatter(domain_theta, mod(interpolated_theta, 2 * pi)); %map = normalize_rows(map); %PlexViewer.drawMapping(domain_stream, domain_points, codomain_stream, codomain_points, abs(map)); %PlexViewer.drawMapping(codomain_stream, codomain_points, domain_stream, domain_points, abs(map')); ================================================ FILE: src/matlab/experimental/hom_messy/density_objective.m ================================================ function density = density_objective(map, domain_points, codomain_points, codomain_densities) interpolated_points = compute_interpolated_points((map), domain_points, codomain_points); [I_0, domain_dimension] = size(domain_points); [J_0, codomain_dimension] = size(codomain_points); vertex_mapping = map(1:J_0, 1:I_0); %domain_densities = vertex_mapping' * codomain_densities; domain_densities = gaussian_kernel_densities(interpolated_points, codomain_points, 0.6); total_distance = pdist2(interpolated_points); lambda = 0.01; density = -(sum(domain_densities) + lambda * sum(total_distance)); %density = -min(domain_densities); end ================================================ FILE: src/matlab/experimental/hom_messy/domain_points.txt ================================================ 1.1324,2.1763 -3.6218,-1.0488e-016 -2.6282,-1.6535e-016 -1.6346,-4.6861e-017 -1.1018,1.345 -1.1018,-1.345 -0.098373,2.1763 -0.098373,-2.1763 1.1324,-2.1763 2.3434,-1.345 3.3332,-4.0301e-016 2.3434,1.345 ================================================ FILE: src/matlab/experimental/hom_messy/domain_stream.txt ================================================ 0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 0,10 0,11 0,0,6 0,0,11 0,1,2 0,2,3 0,3,4 0,3,5 0,4,6 0,5,7 0,7,8 0,8,9 0,9,10 0,10,11 ================================================ FILE: src/matlab/experimental/hom_messy/embedding_optimization_test.asv ================================================ clc; clear; close all; domain_size = 4; codomain_size = 3; % create the domain and codomain simplicial complexes %{ domain_stream = examples.SimplexStreamExamples.getTetrahedron(); codomain_stream = examples.SimplexStreamExamples.getOctahedron(); domain_points = examples.PointCloudExamples.getTetrahedronVertices(); codomain_points = examples.PointCloudExamples.getOctahedronVertices() + 1; %} domain_stream = examples.SimplexStreamExamples.getCircle(domain_size); codomain_stream = examples.SimplexStreamExamples.getCircle(codomain_size); domain_points = examples.PointCloudExamples.getEquispacedCirclePoints(domain_size); codomain_points = examples.PointCloudExamples.getEquispacedCirclePoints(codomain_size); codomain_points = codomain_points + ones(codomain_size, 1) * [3, 0]; domain_theta = ([0:domain_size - 1] * (2 * pi / domain_size))'; codomain_theta = ([0:codomain_size - 1] * (2 * pi / codomain_size))'; %{ domain_points = examples.PointCloudExamples.getEquispacedCirclePoints(domain_size) + randn(domain_size, 2) * 0.03; codomain_points = examples.PointCloudExamples.getEquispacedCirclePoints(codomain_size); domain_points = domain_points + ones(domain_size, 1) * [3, 0]; % create a randomized landmark selector landmark_selector = api.Plex4.createRandomSelector(domain_points, domain_size / 2); % create a Lazy-Witness Stream - note that this sets the number of % divisions to the default value of 20 domain_stream = api.Plex4.createLazyWitnessStream(landmark_selector, 2, 0.4); domain_points = domain_points(landmark_selector.getLandmarkPoints()+1, :); codomain_stream = examples.SimplexStreamExamples.getCircle(codomain_size); %} % get the default persistence algorithm persistence = api.Plex4.getDefaultSimplicialAlgorithm(2); % compute the intervals and transform them to filtration values domain_index_intervals = persistence.computeIntervals(domain_stream) % compute the intervals and transform them to filtration values codomain_index_intervals = persistence.computeIntervals(codomain_stream) % obtain the parameterization [cycle_sum, homotopies] = hom_parameterization(domain_stream, codomain_stream); %% K = size(homotopies, 1); edge_list = get_edges(domain_stream); distance_function = @(a, b) circle_distance(a, b); objective = @(c) smoothness_objective(compute_mapping(cycle_sum, homotopies, c(1:K)), domain_theta, codomain_theta, distance_function, edge_list); %c_0 = randn(K, 1); [f, A, b, Aeq, beq, lb, ub] = create_max_lp(cycle_sum, homotopies); [x, fval, exitflag, output, lambda] = linprog(f, A, b, Aeq, beq, lb, ub); fval % find a random corner point of the set of optima [f, A, b, Aeq, beq, lb, ub] = create_max_lp(cycle_sum, homotopies, (fval)); c_0 = randn(size(lb, 1), 1); options.MaxFunEvals = 100000; options.MaxIter = 100000; %[x, fval, exitflag, output] = fminunc(objective, c_0, options); [x, fval, exitflag, output] = fminsearch(objective, c_0, options); %[x, fval, exitflag, output] = fmincon(objective, c_0, A, b, Aeq, beq, lb, ub, [], options); map = compute_mapping(cycle_sum, homotopies, x(1:size(homotopies, 1))); map = (abs(map) > 1e-3) .* map %% interpolated_theta = compute_interpolated_points(map, domain_points, codomain_theta); interpolated_points = [cos(interpolated_theta), sin(interpolated_theta)]; codomain_points = [cos(codomain_theta), sin(codomain_theta)]; scatter(codomain_points(:, 1), codomain_points(:, 2), 'bo'); hold on; scatter(interpolated_points(:, 1), interpolated_points(:, 2), 'rx'); figure; scatter(domain_theta, interpolated_theta); %map = normalize_rows(map); %PlexViewer.drawMapping(domain_stream, domain_points, codomain_stream, codomain_points, abs(map)); %PlexViewer.drawMapping(codomain_stream, codomain_points, domain_stream, domain_points, abs(map')); ================================================ FILE: src/matlab/experimental/hom_messy/embedding_optimization_test.m ================================================ clc; clear; close all; domain_size = 20; codomain_size = 3; % create the domain and codomain simplicial complexes %{ domain_stream = examples.SimplexStreamExamples.getTetrahedron(); codomain_stream = examples.SimplexStreamExamples.getOctahedron(); domain_points = examples.PointCloudExamples.getTetrahedronVertices(); codomain_points = examples.PointCloudExamples.getOctahedronVertices() + 1; %} domain_stream = examples.SimplexStreamExamples.getCircle(domain_size); codomain_stream = examples.SimplexStreamExamples.getCircle(codomain_size); domain_points = examples.PointCloudExamples.getEquispacedCirclePoints(domain_size); codomain_points = examples.PointCloudExamples.getEquispacedCirclePoints(codomain_size); codomain_points = codomain_points + ones(codomain_size, 1) * [3, 0]; domain_theta = ([0:domain_size - 1] * (2 * pi / domain_size))'; codomain_theta = ([0:codomain_size - 1] * (2 * pi / codomain_size))'; %{ domain_points = examples.PointCloudExamples.getEquispacedCirclePoints(domain_size) + randn(domain_size, 2) * 0.03; codomain_points = examples.PointCloudExamples.getEquispacedCirclePoints(codomain_size); domain_points = domain_points + ones(domain_size, 1) * [3, 0]; % create a randomized landmark selector landmark_selector = api.Plex4.createRandomSelector(domain_points, domain_size / 2); % create a Lazy-Witness Stream - note that this sets the number of % divisions to the default value of 20 domain_stream = api.Plex4.createLazyWitnessStream(landmark_selector, 2, 0.4); domain_points = domain_points(landmark_selector.getLandmarkPoints()+1, :); codomain_stream = examples.SimplexStreamExamples.getCircle(codomain_size); %} % get the default persistence algorithm persistence = api.Plex4.getDefaultSimplicialAlgorithm(2); % compute the intervals and transform them to filtration values domain_index_intervals = persistence.computeIntervals(domain_stream) % compute the intervals and transform them to filtration values codomain_index_intervals = persistence.computeIntervals(codomain_stream) % obtain the parameterization [cycle_sum, homotopies] = hom_parameterization(domain_stream, codomain_stream); %% K = size(homotopies, 1); edge_list = get_edges(domain_stream); distance_function = @(a, b) circle_distance(a, b); objective = @(c) smoothness_objective(compute_mapping(cycle_sum, homotopies, c(1:K)), domain_theta, codomain_theta, distance_function, edge_list); %c_0 = randn(K, 1); [f, A, b, Aeq, beq, lb, ub] = create_max_lp(cycle_sum, homotopies); [x, fval, exitflag, output, lambda] = linprog(f, A, b, Aeq, beq, lb, ub); fval % find a random corner point of the set of optima [f, A, b, Aeq, beq, lb, ub] = create_max_lp(cycle_sum, homotopies, (fval)); c_0 = randn(size(lb, 1), 1); options.MaxFunEvals = 100000; options.MaxIter = 100000; %[x, fval, exitflag, output] = fminunc(objective, c_0, options); %[x, fval, exitflag, output] = fminsearch(objective, c_0, options); %[x, fval, exitflag, output] = fmincon(objective, c_0, A, b, Aeq, beq, lb, ub, [], options); [x, fval, exitflag, output] = fmincon(objective, c_0, [], [], [], [], lb, ub, [], options); map = compute_mapping(cycle_sum, homotopies, x(1:size(homotopies, 1))); map = (abs(map) > 1e-3) .* map %% interpolated_theta = compute_interpolated_points(map, domain_points, codomain_theta); interpolated_points = [cos(interpolated_theta), sin(interpolated_theta)]; codomain_points = [cos(codomain_theta), sin(codomain_theta)]; scatter(codomain_points(:, 1), codomain_points(:, 2), 'bo'); hold on; scatter(interpolated_points(:, 1), interpolated_points(:, 2), 'ro'); legend('Codomain Points', 'Domain Points'); figure; scatter(domain_theta, mod(interpolated_theta, 2 * pi)); %map = normalize_rows(map); %PlexViewer.drawMapping(domain_stream, domain_points, codomain_stream, codomain_points, abs(map)); %PlexViewer.drawMapping(codomain_stream, codomain_points, domain_stream, domain_points, abs(map')); ================================================ FILE: src/matlab/experimental/hom_messy/embedding_optimization_test2.m ================================================ clc; clear; close all; domain_size = 10; codomain_size = 3; % create the domain and codomain simplicial complexes %{ domain_stream = examples.SimplexStreamExamples.getTetrahedron(); codomain_stream = examples.SimplexStreamExamples.getOctahedron(); domain_points = examples.PointCloudExamples.getTetrahedronVertices(); codomain_points = examples.PointCloudExamples.getOctahedronVertices() + 1; %} domain_stream = examples.SimplexStreamExamples.getCircle(domain_size); codomain_stream = examples.SimplexStreamExamples.getCircle(codomain_size); domain_points = examples.PointCloudExamples.getEquispacedCirclePoints(domain_size); codomain_points = examples.PointCloudExamples.getEquispacedCirclePoints(codomain_size); codomain_points = codomain_points + ones(codomain_size, 1) * [3, 0]; domain_theta = ([0:domain_size - 1] * (2 * pi / domain_size))'; codomain_theta = ([0:codomain_size - 1] * (2 * pi / codomain_size))'; %{ domain_points = examples.PointCloudExamples.getEquispacedCirclePoints(domain_size) + randn(domain_size, 2) * 0.03; codomain_points = examples.PointCloudExamples.getEquispacedCirclePoints(codomain_size); domain_points = domain_points + ones(domain_size, 1) * [3, 0]; % create a randomized landmark selector landmark_selector = api.Plex4.createRandomSelector(domain_points, domain_size / 2); % create a Lazy-Witness Stream - note that this sets the number of % divisions to the default value of 20 domain_stream = api.Plex4.createLazyWitnessStream(landmark_selector, 2, 0.4); domain_points = domain_points(landmark_selector.getLandmarkPoints()+1, :); codomain_stream = examples.SimplexStreamExamples.getCircle(codomain_size); %} % get the default persistence algorithm persistence = api.Plex4.getDefaultSimplicialAlgorithm(2); % compute the intervals and transform them to filtration values domain_index_intervals = persistence.computeIntervals(domain_stream) % compute the intervals and transform them to filtration values codomain_index_intervals = persistence.computeIntervals(codomain_stream) % obtain the parameterization [cycle_sum, homotopies] = hom_parameterization(domain_stream, codomain_stream); %% K = size(homotopies, 1); [J, I] = size(cycle_sum); v = randn(K, 1); cvx_begin variable c(K); variable G(J, I); minimize (v' * c); subject to G == compute_mapping(cycle_sum, homotopies, c); norm(G) <= 1.8257; c <= 1; c >= -1; cvx_end map = G cvx_optval %% interpolated_theta = compute_interpolated_points(map, domain_points, codomain_theta); interpolated_points = [cos(interpolated_theta), sin(interpolated_theta)]; codomain_points = [cos(codomain_theta), sin(codomain_theta)]; scatter(codomain_points(:, 1), codomain_points(:, 2), 'bo'); hold on; scatter(interpolated_points(:, 1), interpolated_points(:, 2), 'rx'); figure; scatter(domain_theta, interpolated_theta); %map = normalize_rows(map); %PlexViewer.drawMapping(domain_stream, domain_points, codomain_stream, codomain_points, abs(map)); %PlexViewer.drawMapping(codomain_stream, codomain_points, domain_stream, domain_points, abs(map')); ================================================ FILE: src/matlab/experimental/hom_messy/fast_kron_mult.m ================================================ function y = fast_kron_mult(B, C, x) % y = fast_kron_mult(B, C, x) % % This function executes the operation y = kron(B *C) * x asymptotically faster % by instead calculating C * X * B', where X is a reshaped matrix version % of x. % % INPUTS: % B: a matrix of size m x n % C: a matrix of size m x n % x: a vector of length n^2 % % OUTPUTS: % the vector which is equal to y = kron(B, C) * x m = size(B, 1); n = size(B, 2); y = reshape(C*reshape(x,n,n)*B',m*m,1); end ================================================ FILE: src/matlab/experimental/hom_messy/flatten.m ================================================ function index = flatten(i, j, I, J) index = J * (i - 1) + j; end ================================================ FILE: src/matlab/experimental/hom_messy/floyd_warshall.m ================================================ function distances = floyd_warshall(adjacency_matrix) n = size(adjacency_matrix, 1); distances = zeros(n, n); for i = 1:n for j = 1:n if (adjacency_matrix(i, j) ~= 0) distances(i, j) = adjacency_matrix(i, j); else distances(i, j) = 10; end end end for k = 1:n for i = 1:n for j = 1:n distances(i, j) = min(distances(i, j), distances(i, k) + distances(k, j)); end end end for i = 1:n distances(i, i) = 0; end end ================================================ FILE: src/matlab/experimental/hom_messy/gaussian_kernel_densities.m ================================================ function densities = gaussian_kernel_densities(points, reference_points, sigma) n = size(points, 1); densities = zeros(n, 1); for i = 1:n densities(i) = gaussian_kernel_density(points(i, :), reference_points, sigma); end end ================================================ FILE: src/matlab/experimental/hom_messy/gaussian_kernel_density.m ================================================ function density = gaussian_kernel_density(x, points, sigma) density = 0; n = size(points, 1); dimension = size(points, 2); multiplier = 1 / (sigma * sqrt(2 * pi)); exp_multiplier = 1 / (2 * sigma * sigma); for point = points' contribution = 1; for i = 1:dimension contribution = contribution * exp(-exp_multiplier * (point(i) - x(i))^2) * multiplier; end density = density + contribution; end density = density / n; end ================================================ FILE: src/matlab/experimental/hom_messy/get_edges.m ================================================ function [edge_list] = get_edges(stream) num_edges = 0; iterator = stream.iterator(); while (iterator.hasNext()) simplex = iterator.next(); if (simplex.getDimension() == 1) num_edges = num_edges + 1; end end edge_list = zeros(num_edges, 2); count = 1; iterator = stream.iterator(); while (iterator.hasNext()) simplex = iterator.next(); if (simplex.getDimension() == 1) edge_list(count, :) = simplex.getVertices(); count = count + 1; end end end ================================================ FILE: src/matlab/experimental/hom_messy/gradient.m ================================================ function g = gradient(f, x, h) if (nargin < 3) h = 1e-5; end h_inv = 1 / h; [m, n] = size(x); g = zeros(m, n); f_x = f(x); for i = 1:m for j = 1:n x_new = x; x_new(i, j) = x_new(i, j) + h; g(i, j) = f(x_new) - f_x; end end g = g * h_inv; end ================================================ FILE: src/matlab/experimental/hom_messy/graph_embedding.m ================================================ function points = graph_embedding(adjacency_matrix, dimension) n = size(adjacency_matrix, 1); distances = floyd_warshall(adjacency_matrix); [Y, eigvals] = cmdscale(distances); points = zeros(n, dimension); width = size(Y, 2); points(:, 1:dimension) = Y(:, min(width, 1:dimension)); end ================================================ FILE: src/matlab/experimental/hom_messy/hom_example_test.m ================================================ % This script shows an example of computing the parameterization of the % space of chain maps clc; clear; close all; % create the domain and codomain simplicial complexes domain_stream = examples.SimplexStreamExamples.getTetrahedron(); codomain_stream = examples.SimplexStreamExamples.getTetrahedron(); % obtain the parameterization [cycle_sum, homotopies] = hom_parameterization(domain_stream, codomain_stream) ================================================ FILE: src/matlab/experimental/hom_messy/hom_optimization_example.m ================================================ clc; clear; close all; domain_size = 10; codomain_size = 4; % create the domain and codomain simplicial complexes %{ width = 4; length = 8; domain_stream = examples.SimplexStreamExamples.getAnnulus(width, length); codomain_stream = examples.SimplexStreamExamples.getCircle(codomain_size); domain_points = examples.PointCloudExamples.getAnnulusVertices(width, length); codomain_points = examples.PointCloudExamples.getEquispacedCirclePoints(codomain_size); %} %{ domain_stream = examples.SimplexStreamExamples.getIcosahedron(); codomain_stream = examples.SimplexStreamExamples.getOctahedron(); domain_points = examples.PointCloudExamples.getIcosahedronVertices(); codomain_points = examples.PointCloudExamples.getOctahedronVertices() + 1; %} %{ domain_stream = examples.SimplexStreamExamples.getCircle(domain_size); codomain_stream = examples.SimplexStreamExamples.getCircle(codomain_size); domain_points = examples.PointCloudExamples.getEquispacedCirclePoints(domain_size); codomain_points = examples.PointCloudExamples.getEquispacedCirclePoints(codomain_size); codomain_points = codomain_points + ones(codomain_size, 1) * [3, 0]; domain_theta = ([0:domain_size - 1] * (2 * pi / domain_size))'; codomain_theta = ([0:codomain_size - 1] * (2 * pi / codomain_size))'; %} utility.RandomUtility.initializeWithSeed(0); domain_points = examples.PointCloudExamples.getRandomTrefoilKnotPoints(domain_size); plot3(domain_points(:, 1), domain_points(:, 2), domain_points(:, 3), 'bx'); codomain_points = examples.PointCloudExamples.getEquispacedCirclePoints(codomain_size); %domain_points = domain_points + ones(domain_size, 1) * [3, 0]; % create a randomized landmark selector landmark_selector = api.Plex4.createMaxMinSelector(domain_points, 10); % create a Lazy-Witness Stream - note that this sets the number of % divisions to the default value of 20 domain_stream = api.Plex4.createLazyWitnessStream(landmark_selector, 2, 0.5, 20); domain_stream.finalizeStream(); domain_points = domain_points(landmark_selector.getLandmarkPoints()+1, :); codomain_stream = examples.SimplexStreamExamples.getCircle(codomain_size); codomain_stream.finalizeStream(); % get the default persistence algorithm persistence = api.Plex4.getDefaultSimplicialAlgorithm(2); % compute the intervals and transform them to filtration values domain_index_intervals = persistence.computeIntervals(domain_stream) % compute the intervals and transform them to filtration values codomain_index_intervals = persistence.computeIntervals(codomain_stream) %% % obtain the parameterization [cycle_sum, homotopies] = hom_parameterization(domain_stream, codomain_stream); % setup the LP - find a feasible point and the value of the max function in % the set C [f, A, b, Aeq, beq, lb, ub] = create_max_lp(cycle_sum, homotopies); [x, fval, exitflag, output, lambda] = linprog(f, A, b, Aeq, beq, lb, ub); fval % find a random corner point of the set of optima [f, A, b, Aeq, beq, lb, ub] = create_max_lp(cycle_sum, homotopies, fval, randn(size(homotopies, 1), 1)); [x, fval, exitflag, output, lambda] = linprog(f, A, b, Aeq, beq, lb, ub); map = compute_mapping(cycle_sum, homotopies, x(1:size(homotopies, 1))); map = (abs(map) > 1e-3) .* map %% map = normalize_rows(map); %map = normalize_rows(map')'; %% dlmwrite('matrix.txt', full(map)); %% %interpolated_theta = compute_interpolated_points(map, domain_points, codomain_theta); %interpolated_points = [cos(interpolated_theta), sin(interpolated_theta)]; %codomain_points = [cos(codomain_theta), sin(codomain_theta)]; %scatter(codomain_points(:, 1), codomain_points(:, 2), 'bo'); %hold on; %scatter(interpolated_points(:, 1), interpolated_points(:, 2), 'rx'); %figure; %scatter(domain_theta, interpolated_theta); %map = normalize_rows(map); PlexViewer.drawMapping(domain_stream, domain_points, codomain_stream, codomain_points, abs(map)); %PlexViewer.drawMapping(codomain_stream, codomain_points, domain_stream, domain_points, abs(map')); ================================================ FILE: src/matlab/experimental/hom_messy/hom_parameterization.m ================================================ function [cycle_sum, homotopies] = hom_parameterization(domain_stream, codomain_stream) % [cycle_sum, homotopies] = hom_parameterization(domain_stream, codomain_stream) % % INPUTS % domain_stream: an object of type AbstractFilteredStream<Simplex> which % contains the contents of the domain % codomain_stream: an object of type AbstractFilteredStream<Simplex> which % contains the contents of the codomain % % OUTPUTS % cycle_sum: a chain map generated by representatives of significant % intervals in the homology of the hom-complex (a sparse matrix) % homotopies: a cell array containing the set of chain homotopies as sparse % matrices import edu.stanford.math.plex4.*; import edu.stanford.math.primitivelib.collections.utility.*; matrix_converter = api.Plex4.createHomMatrixConverter(domain_stream, codomain_stream); hom_stream = api.Plex4.createHomStream(domain_stream, codomain_stream); hom_stream.finalizeStream(); persistence = api.Plex4.getRationalHomAlgorithm(); chain_module = persistence.getChainModule(); homotopies = hom_stream.getHomotopiesAsDouble(chain_module); homotopy_matrices = cell(homotopies.size(), 1); m = codomain_stream.getSize(); n = domain_stream.getSize(); index = 1; iterator = homotopies.iterator(); while (iterator.hasNext()) homotopy = iterator.next(); homotopy_matrices{index} = to_sparse_matlab_matrix(homotopy, matrix_converter); index = index + 1; end barcode_collection = persistence.computeAnnotatedIntervals(hom_stream); intervals = barcode_collection.getBarcode(0).getIntervals(); cycle_sum = chain_module.createNewSum(); iterator = intervals.iterator(); cycle_index = 1; while (iterator.hasNext()) interval_generator_pair = iterator.next(); interval = interval_generator_pair.getFirst(); generator = interval_generator_pair.getSecond(); if (interval.isInfinite())% && (cycle_index == 1)) chain_module.accumulate(cycle_sum, generator); end cycle_index = cycle_index + 1; end cycle_sum = hom_stream.toDoubleFormalSum(cycle_sum); cycle_sum = to_sparse_matlab_matrix(cycle_sum, matrix_converter); homotopies = homotopy_matrices; end ================================================ FILE: src/matlab/experimental/hom_messy/hom_visualization_example.m ================================================ clc; clear; close all; domain_size = 4; codomain_size = 3; % create the domain and codomain simplicial complexes domain_stream = examples.SimplexStreamExamples.getCircle(domain_size); codomain_stream = examples.SimplexStreamExamples.getCircle(codomain_size); domain_points = examples.PointCloudExamples.getEquispacedCirclePoints(domain_size); codomain_points = examples.PointCloudExamples.getEquispacedCirclePoints(codomain_size) + 2; % obtain the parameterization [cycle_sum, homotopies] = hom_parameterization(domain_stream, codomain_stream); % do not optimize - just draw the dumb chain map PlexViewer.drawMapping(domain_stream, domain_points, codomain_stream, codomain_points, cycle_sum); ================================================ FILE: src/matlab/experimental/hom_messy/kron_test.m ================================================ clc; clear; close all; m = 10; n = 1000; B = randn(m, n); C = randn(m, n); x = randn(n*n, 1); tic() y_1 = fast_kron_mult(B, C, x); toc() tic() y_2 = kron(B,C)*x; toc() max(abs(y_1 - y_2)) ================================================ FILE: src/matlab/experimental/hom_messy/load_javaplex.m ================================================ % This script prepares the javaplex library for use clc; clear all; close all; clear import; javaaddpath('./../javaplex.jar'); javaaddpath('./../plex-viewer.jar'); javaaddpath('./../jogl.jar'); import edu.stanford.math.plex4.*; import edu.stanford.math.plex_viewer.*; ================================================ FILE: src/matlab/experimental/hom_messy/mapper.m ================================================ function [adja, nodeInfo, levelIdx] = mapper(d, filter, resolution, overlap, magicFudge) % [adja, nodeInfo, levelIdx] = mapper(d, filter, resolution, overlap, magicFudge) % % INPUTS % d: Distance matrix % filter: The filter function used to decompose the space % resolution: Defines the length of each interval % length = (max(filter) - min(filter))*resolution % Default : 1/5 % overlap : The % overlap between successive intervals % Default : 50% % magicFudge: The number of histograms to divide each homology plot into % Increase this number if you expect to see more clusters % and decrease it if you are seeing more clusters. % Default : 10 % OUTPUTS % adja: The adjacency matrix of the output graph. % nodeInfo: Cell array with some information about each node of the output % graph. % nodeInfo{i}.level : The index of the interval to which this % node belongs. % nodeInfo{i}.filter : The maximum filter value of all the points % belonging to this node's corresponding cluster. % nodeInfo{i}.set : The set of all points belonging to this node's % cluster. % levelIdx: Cell array such that % levelIdx{i} contains the list of all output nodes belonging to % each subinterval of the filter. % BEGIN COPYRIGHT NOTICE % % Mapper code -- (c) 2007-2009 Gurjeet Singh % % This code is provided as is, with no guarantees except that % bugs are almost surely present. Published reports of research % using this code (or a modified version) should cite the % article that describes the algorithm: % % G. Singh, F. Memoli, G. Carlsson (2007). Topological Methods for % the Analysis of High Dimensional Data Sets and 3D Object % Recognition,? Point Based Graphics 2007, Prague, September 2007. % % Comments and bug reports are welcome. Email to % gurjeet@stanford.edu. % I would also appreciate hearing about how you used this code, % improvements that you have made to it, or translations into other % languages. % % You are free to modify, extend or distribute this code, as long % as this copyright notice is included whole and unchanged. % % END COPYRIGHT NOTICE %% Check input and set defaults if nargin < 2 error('Too few input arguments'); elseif nargin < 3 % Set resolution to 1/5 resolution = 1/5; % Set overlap to 50% overlap = 50; % Set magicFudge to 10 magicFudge = 10; elseif nargin < 4 % Set overlap to 50% overlap = 50; % Set magicFudge to 10 magicFudge = 10; elseif nargin < 5 % Set magicFudge to 10 magicFudge = 10; end if(resolution >= 1 || resolution <=0) error('Resolution must be between (0,1)'); end if(overlap <=0 || overlap >= 100) error('Overlap must be between (0,100)'); end if(magicFudge < 0) error('magicFudge must be >0'); end step = (max(filter) - min(filter))*resolution; numGraphNodes = 0; level = 1; nodeInfo = cell(0); levelIdx = cell(0); adja = []; disp(sprintf('Mapper : Filter Range [%0.2f-%0.2f]', min(filter), max(filter))); disp(sprintf('Mapper : Interval Length : %0.2f', step)); disp(sprintf('Mapper : Overlap : %0.2f', overlap)); disp(sprintf('Mapper : magicFudge : %0.2f', magicFudge)); disp(''); for i=min(filter):step*(1-overlap/100):max(filter) disp(sprintf('Mapper : Filter Indices from range [%0.2f-%0.2f]', i, i+step)); %% Select points in this filter range idx = find(filter >= i & filter <= i + step); %% If we have enough points, grow the graph. if(max(size(idx)) > 5) numPoints = max(size(d(idx, idx))); [I, R, simp1, F] = returnBarCode_linkage_noplex(d(idx,idx)); lens = I{1}(2,:) - I{1}(1,:); lens(find(lens == inf)) = R; numBin = hist(lens, magicFudge); z = find(numBin == 0); if(isempty(z)) numClusts = 1; else numClusts = sum(numBin(z(1):length(numBin))); end [srt longIdx] = sort(lens, 'descend'); longIdx = longIdx(1:numClusts); minDeathTime = min(I{1}(2,longIdx)); if(minDeathTime == inf) si = sort(I{1}(2,:), 'descend'); minDeathTime = si(2) + eps; end simp1 = simp1(:,find(F{1,2} < minDeathTime)); G = sparse(numPoints, numPoints); [rws numSimps] = size(simp1); for iter=1:numSimps G(simp1(1,iter), simp1(2,iter)) = 1; G(simp1(2,iter), simp1(1,iter)) = 1; end %% Color the graph nodeColors = colorGraph(G); numColors = length(unique(nodeColors)); numGraphNodes = max(size(nodeInfo)); levelIdx{level} = []; for j=1:numColors levelIdx{level} = [levelIdx{level} (j+numGraphNodes)]; nodeInfo{j+numGraphNodes}.level = level; nodeInfo{j+numGraphNodes}.fnval = i; nodeInfo{j+numGraphNodes}.set = idx(nodeColors == j); nodeInfo{j+numGraphNodes}.filter = max(filter(idx(nodeColors == j))); end if(level > 1) prevLvlIdx = levelIdx{level-1}; thisLvlIdx = levelIdx{level}; for i1 = 1:length(prevLvlIdx) for i2 = 1:length(thisLvlIdx) a = prevLvlIdx(i1); b = thisLvlIdx(i2); if(length(intersect(nodeInfo{a}.set, nodeInfo{b}.set)) ~= 0) adja(a, b) = 1; adja(b, a) = 1; end end end end level = level + 1; % elseif(max(size(idx)) >= 1) % numGraphNodes = max(size(nodeInfo)); % levelIdx{level} = [(numGraphNodes+1)]; % nodeInfo{1+numGraphNodes}.level = level + 1; % nodeInfo{1+numGraphNodes}.fnval = i; % nodeInfo{1+numGraphNodes}.set = idx; % nodeInfo{1+numGraphNodes}.filter = max(filter(idx)); % if(level > 1) % prevLvlIdx = levelIdx{level-1}; % thisLvlIdx = levelIdx{level}; % for i1 = 1:length(prevLvlIdx) % for i2 = 1:length(thisLvlIdx) % a = prevLvlIdx(i1); % b = thisLvlIdx(i2); % if(length(intersect(nodeInfo{a}.set, nodeInfo{b}.set)) ~= 0) % adja(a, b) = 1; % adja(b, a) = 1; % end % end % end % % end % level = level + 1; end end disp('Mapper : Finished'); ================================================ FILE: src/matlab/experimental/hom_messy/mapperTutorial.m ================================================ clc; clear; close all; %% Generate a circle in 2 dimensions (300 points in 2 dimensions) X = randn(300, 2) * [2 0; 0 0.2]; %Y = randn(300, 2) * [0.2 0; 0 2]; %X = [X; Y]; %X = X./(sqrt(sum(X.*X,2))*ones(1, 2)); %% Find the Inter-point Distance Matrix d = L2_distance(X',X',1); %% Find the filter, here we use the distance from the first point eccFilter = d(1, :); scatter(X(:,1), X(:,2), 1000, eccFilter, '.'); axis equal; %% Parameters for Mapper filterSamples = 5; overlapPct = 50; %% Run Mapper [adja, nodeInfo, levelIdx] = mapper(d, eccFilter, 1/filterSamples,... overlapPct); %% Prepare inputs for GraphViz % For each node of the output graph, find the size (~ cardinality of the % cluster) and the average function value of points in the cluster. label{1} = sprintf('Dataset Name : test'); label{2} = sprintf('Filter Samples : %d', filterSamples); label{3} = sprintf('Overlap Pct : %0.2f', overlapPct); for i=1:length(nodeInfo) ecc(i) = nodeInfo{i}.filter; setSize(i) = length(nodeInfo{i}.set); end %% stream = create_quotient_complex(adja, ecc); %% Generate the input to Graphviz writeDotFile(sprintf('t1.dot'), adja, ecc, setSize, label); %% Execute Graphviz system(sprintf('\"C:\\Program Files (x86)\\Graphviz2.22\\bin\\neato.exe\" -Tpng t1.dot -o t1.png')); figure; imshow('t1.png') ================================================ FILE: src/matlab/experimental/hom_messy/mapper_mapping_test.m ================================================ clc; clear; close all; domain_size = 300; codomain_size = 300; % create the domain and codomain simplicial complexes %utility.RandomUtility.initializeWithSeed(0); %domain_points = examples.PointCloudExamples.getGaussianPoints(domain_size, 2) * [1 0; 0 0.7]; %codomain_points = examples.PointCloudExamples.getGaussianPoints(codomain_size, 2) * [0.2 0; 0 2]; domain_points = rand(domain_size, 2) * [1 0; 0 0.2]; codomain_points = rand(domain_size, 2) * [0.2 0; 0 2]; [domain_stream, domain_filter, domain_adjacency_matrix] = create_quotient_mapper_complex(domain_points); [codomain_stream, codomain_filter, codomain_adjacency_matrix] = create_quotient_mapper_complex(codomain_points); % get the default persistence algorithm persistence = api.Plex4.getDefaultSimplicialAlgorithm(2); % compute the intervals and transform them to filtration values domain_index_intervals = persistence.computeIntervals(domain_stream) % compute the intervals and transform them to filtration values codomain_index_intervals = persistence.computeIntervals(codomain_stream) %% % obtain the parameterization [cycle_sum, homotopies] = hom_parameterization(domain_stream, codomain_stream); % setup the LP - find a feasible point and the value of the max function in % the set C [f, A, b, Aeq, beq, lb, ub] = create_positive_lp(cycle_sum, homotopies); [x, fval, exitflag, output, lambda] = linprog(f, A, b, Aeq, beq, lb, ub); fval % find a random corner point of the set of optima [f, A, b, Aeq, beq, lb, ub] = create_positive_lp(cycle_sum, homotopies, fval, randn(size(homotopies, 1), 1)); [x, fval, exitflag, output, lambda] = linprog(f, A, b, Aeq, beq, lb, ub); map = compute_mapping(cycle_sum, homotopies, x(1:size(homotopies, 1))); map = (abs(map) > 1e-3) .* map %% %map = normalize_rows(map); %map = normalize_rows(map')'; %% domain_graph = to_graph(domain_stream); codomain_graph = to_graph(codomain_stream); dlmwrite('mapping.txt', full(map)); dlmwrite('domain_points.txt', graph_embedding(domain_graph, 2)); dlmwrite('codomain_points.txt', graph_embedding(codomain_graph, 2)); stream_reader_writer = io.SimplexStreamReaderWriter.getInstance(); stream_reader_writer.writeToFile(domain_stream, 'domain_stream.txt'); stream_reader_writer.writeToFile(codomain_stream, 'codomain_stream.txt'); %PlexViewer.drawMapping(domain_stream, domain_points, codomain_stream, codomain_points, (map)); %figure; %subplot(2, 1, 1); %% figure; gplot(domain_graph, graph_embedding(domain_graph, 2), '-*'); figure; gplot(codomain_graph, graph_embedding(codomain_graph, 2), '-*'); ================================================ FILE: src/matlab/experimental/hom_messy/mapping.txt ================================================ 0.88889,0.11111,0.11111,0.11111,0,0.11111,0,0.055556,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 0,0.69444,0.69444,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 0.11111,0.19444,0.19444,0.88889,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 0,0,0,0,0.47222,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0.83333,0,0.55556,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0.055556,0,0.33333,0.87037,0.064815,0.064815,0,0,0,0,0,0,0,0,0,0,0,0,0 0,0,0,0,0.41667,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0.88889,0.055556,0.11111,0.11111,0.11111,0.11111,0,0,0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0.69444,0,0,0,0,0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0,0.69444,0,0,0,0,0,0,0,0,0,0,0,0,0 0,0,0,0,0.11111,0,0.11111,0,0.018519,0.12963,0.12963,0.88889,0,0,0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0,0,0,0.88889,0,0,0,0,0,0,0.055556,0.055556,0,0,0 0,0,0,0,0,0,0,0,0,0,0,0,0,0.88889,0,0,0.11111,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.69444,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0,0,0,0,0.11111,0,0,0.88889,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0,0,0,0.11111,0,0,0,0,0.88889,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0,0,0,0,0.11111,0,0,0.41667,0,0.47222,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0,0,0,0.11111,0,0,0,0,0.88889,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0,0,0,0,0.11111,0,0,0.41667,0,0.47222,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0,0,0,0.11111,0,0,0,0,0.055556,0,0.27778,0.55556,0,0,0 0,0,0,0,0,0,0,0,0,0,0,0,0.11111,0,0,0,0,0,0,0,0.018519,0.80556,0,0.064815 0,0,0,0,0,0,0,0,0,0,0,0,0,0.11111,0,0,0,0,0.88889,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0,0,0,0.11111,0,0,0,0,0,0,0,0.018519,0.80556,0,0.064815 0,0,0,0,0,0,0,0,0,0,0,0,0.11111,0,0,0,0,0,0,0,0.018519,0.11111,0.69444,0.064815 0,0,0,0,0,0,0,0,0,0,0,0,0.11111,0,0,0,0,0,0,0,0.018519,0.11111,0,0.75926 ================================================ FILE: src/matlab/experimental/hom_messy/matrix.txt ================================================ 0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0 -0.090909,-0.090909,-0.090909,0,0,0,-0.090909,0,0.63636,0,0,0,0,0,0,0,0 -0.090909,0.090909,0.090909,0,0,-0.090909,-0.090909,0,0.54545,0,0,0,0,0,0,0,0 0,0,0,0.90909,0,0,0.090909,0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 0.18182,0,0,0,0,0.090909,0.090909,0,-0.63636,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 0,0,0,-0.18182,0,0,0,0.18182,-0.63636,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 0,0,0,-0.72727,-0.090909,0,0,-0.18182,0,0,0,0,0,0,0,0,0 0,0,0,0,0.090909,0,0,0.90909,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0,0,0,0.72727,0.18182,0.090909,0,0 0,0,0,0,0,0,0,0,0,0,0,0,-0.72727,-0.18182,-0.090909,0,0 0,0,0,0,0,0,0,0,0,0,0,-0.090909,0,0.90909,0,0,0 0,0,0,0,0,0,0,0,0,0,0,0,0,-0.90909,0,0,0.090909 0,0,0,0,0,0,0,0,0,0,0,0,0,0.90909,0,0.090909,0 0,0,0,0,0,0,0,0,0,-0.090909,0,0,-0.90909,0,0,0,0 0,0,0,0,0,0,0,0,0,0,0,0,0,0.90909,0,0.090909,0 0,0,0,0,0,0,0,0,0,0,0,0,-0.90909,0,0,-0.090909,0 0,0,0,0,0,0,0,0,0,0,0,0,0,0.90909,0,0.090909,0 0,0,0,0,0,0,0,0,0,0,0,0,-0.72727,-0.18182,0,-0.090909,0 0,0,0,0,0,0,0,0,0,0,0,0,-0.72727,-0.18182,0,-0.090909,0 0,0,0,0,0,0,0,0,0,0,0,0,0.72727,0.18182,0.090909,0,0 ================================================ FILE: src/matlab/experimental/hom_messy/normalize_rows.m ================================================ function result = normalize_rows(matrix) result = diag(1.0 ./ sum(abs(matrix), 2)) * matrix; ================================================ FILE: src/matlab/experimental/hom_messy/objectivize.m ================================================ function op = objectivize(f) op = @(varargin)objective_impl(varargin{:} ); function [v, g] = objective_impl(x, t ) v = f(x); g = gradient(f, x); end end ================================================ FILE: src/matlab/experimental/hom_messy/pdist2.m ================================================ function distances = pdist2(points) n = size(points, 1); distances = zeros(n * (n - 1) /2, 1); index = 1; for i = 1:n for j = i+1:n distances(index) = sqrt(sum((points(i, :) - points(j, :)).^2)); index = index + 1; end end end ================================================ FILE: src/matlab/experimental/hom_messy/returnBarCode_linkage_noplex.m ================================================ function [I, R, Ca, F] = returnBarCode_linkage_noplex(dist) %function [I, R, Ca, F] = returnBarCode_linkage_noplex(dist) %Returns 0 dimensional homology, max(max(dist)), complex, F % BEGIN COPYRIGHT NOTICE % % Mapper code -- (c) 2007-2009 Gurjeet Singh % % This code is provided as is, with no guarantees except that % bugs are almost surely present. % % Comments and bug reports are welcome. Email to % gurjeet@stanford.edu. % I would also appreciate hearing about how you used this code, % improvements that you have made to it, or translations into other % languages. % % You are free to modify, extend or distribute this code, as long % as this copyright notice is included whole and unchanged. % % END COPYRIGHT NOTICE Z = linkage(dist(tril(true(length(dist)),-1))'); I = cell(1); R = max(max(dist)); N = length(dist); I{1}(1,:) = zeros(1, length(Z(:,3)) +1); I{1}(2,1:length(Z(:,3))) = Z(:,3)'; I{1}(2, length(Z(:,3)) + 1) = inf; D = triu(dist <= R); [II, JJ] = find(D); Ca = zeros(2, length(II)); Ca(1,:) = II(:)'; Ca(2,:) = JJ(:)'; ind = sub2ind([N N], Ca(1,:), Ca(2,:)); F = {zeros(1,N), dist(ind)}; ================================================ FILE: src/matlab/experimental/hom_messy/show_graph.m ================================================ function show_graph(adjacency_matrix, colors, set_size) % Generate the input to Graphviz writeDotFile(sprintf('t1.dot'), adjacency_matrix, colors, set_size); % Execute Graphviz system(sprintf('\"C:\\Program Files (x86)\\Graphviz2.22\\bin\\neato.exe\" -Tpng t1.dot -o t1.png')); figure; imshow('t1.png') end ================================================ FILE: src/matlab/experimental/hom_messy/smoothness_objective.m ================================================ function [d] = smoothness_objective(map, domain_points, codomain_points, distance_function, edge_list) interpolated_points = compute_interpolated_points(map, domain_points, codomain_points); num_edges = size(edge_list, 1); d = 0; for k = 1:num_edges i = edge_list(k, 1) + 1; j = edge_list(k, 2) + 1; d = d + distance_function(interpolated_points(i, :), interpolated_points(j, :))^2; end d = d + 0 * sum(sum(abs(map).^2)); end ================================================ FILE: src/matlab/experimental/hom_messy/test_aw_optimization.m ================================================ clc; clear; close all; domain_size = 5; codomain_size = 4; % create the domain and codomain simplicial complexes %{ domain_stream = examples.SimplexStreamExamples.getTetrahedron(); codomain_stream = examples.SimplexStreamExamples.getOctahedron(); domain_points = examples.PointCloudExamples.getTetrahedronVertices(); codomain_points = examples.PointCloudExamples.getOctahedronVertices() + 1; %} domain_stream = examples.SimplexStreamExamples.getCircle(domain_size); codomain_stream = examples.SimplexStreamExamples.getCircle(codomain_size); domain_points = examples.PointCloudExamples.getEquispacedCirclePoints(domain_size); codomain_points = examples.PointCloudExamples.getEquispacedCirclePoints(codomain_size); codomain_points = codomain_points + ones(codomain_size, 1) * [3, 0]; % obtain the parameterization [cycle_sum, homotopies] = hom_parameterization(domain_stream, codomain_stream); domain_aw_matrix = convert_sparse_matrix(streams.utility.StreamUtility.createAlexanderWhitneyMatrix(domain_stream)); codomain_aw_matrix = convert_sparse_matrix(streams.utility.StreamUtility.createAlexanderWhitneyMatrix(codomain_stream)); [f, A, b, Aeq, beq, lb, ub] = create_max_lp(cycle_sum, homotopies); [x, fval, exitflag, output, lambda] = linprog(f, A, b, Aeq, beq, lb, ub); fval % find a random corner point of the set of optima [f, A, b, Aeq, beq, lb, ub] = create_max_lp(cycle_sum, homotopies, ceil(fval)); K = size(homotopies, 1); loss_function = @(x) sum(x.^2); %loss_function = @(x) sum(abs(x)); objective = @(c) alexander_whitney_loss_function(compute_mapping(cycle_sum, homotopies, c(1:K)), domain_aw_matrix, codomain_aw_matrix, loss_function); c_0 = randn(size(lb, 1), 1); [x, fval, exitflag, output] = fminunc(objective, c_0); %[x, fval, exitflag, output] = fmincon(objective, c_0, A, b, Aeq, beq, lb, ub); %{ opts.tol = 1e-6; opts.maxIts = 500; opts.alg = 'N07'; x = tfocs(objectivize(objective), [], [], c_0, opts) %} %% map = compute_mapping(cycle_sum, homotopies, x(1:K)); map = (abs(map) > 1e-2) .* map map = normalize_rows(map); dlmwrite('matrix.txt', map'); %% %PlexViewer.drawMapping(domain_stream, domain_points, codomain_stream, codomain_points, abs(map)); ================================================ FILE: src/matlab/experimental/hom_messy/to_graph.m ================================================ function adjacency_matrix = to_graph(stream) size = 0; iterator = stream.iterator(); while (iterator.hasNext()) simplex = iterator.next(); if (stream.getDimension(simplex) == 0) size = size + 1; end end adjacency_matrix = zeros(size, size); iterator = stream.iterator(); while (iterator.hasNext()) simplex = iterator.next(); if (stream.getDimension(simplex) == 1) vertices = simplex.getVertices(); i = vertices(1) + 1; j = vertices(2) + 1; adjacency_matrix(i, j) = 1; adjacency_matrix(j, i) = 1; end end end ================================================ FILE: src/matlab/experimental/hom_messy/to_sparse_matlab_matrix.m ================================================ function matlab_sparse_matrix = to_sparse_matlab_matrix(formal_sum, matrix_converter) % matlab_sparse_matrix = to_sparse_matlab_matrix(formal_sum, matrix_converter) % % INPUTS: % formal_sum: an object of type DoubleSparseFormalSum<ObjectObjectPair<M, N>> % matrix_converter: the object of type DoubleMatrixConverter<M, N> % % OUTPUTS: % matlab_sparse_matrix: a sparse matrix which represents the same linear % transformation as the given formal sum import edu.stanford.math.plex4.*; sparse_matrix_object = matrix_converter.toSparseMatrix(formal_sum); matlab_sparse_matrix = convert_sparse_matrix(sparse_matrix_object); end ================================================ FILE: src/matlab/experimental/hom_messy/unflatten.m ================================================ function [i, j] = unflatten(index, I, J) %index = J * (i - 1) + j; i = (index / J) + 1; j = mod(index, J); end ================================================ FILE: src/matlab/experimental/hom_messy/writeDotFile.m ================================================ % writeDotFile(fileName, G, colorParam, sizeParam, extraLabel, nodeLabels) % writeDotFile writes a graph represented by a binary adjacency matrix % in the DOT format for use with Graphviz. % % INPUT: % fileName - string containing location of output file % G - Adjacency matrix for the UNDIRECED graph % colorParam - A numNodes x 1 array dictating the color of each node % sizeParam - A numNodes x 1 array dictating the size of each node % extraLabel - A cell array of string labels pasted at the % bottom left of the graph. OPTIONAL % nodeLabels - A cell array of size numNodes x 1 of label of each node. % OPTIONAL % % OUTPUT: % The graph is written in the graphviz format at the location of fileName % BEGIN COPYRIGHT NOTICE % % Mapper code -- (c) 2007-2009 Gurjeet Singh % % This code is provided as is, with no guarantees except that % bugs are almost surely present. % % Comments and bug reports are welcome. Email to % gurjeet@stanford.edu. % I would also appreciate hearing about how you used this code, % improvements that you have made to it, or translations into other % languages. % % You are free to modify, extend or distribute this code, as long % as this copyright notice is included whole and unchanged. % % END COPYRIGHT NOTICE function writeDotFile(fileName, G, colorParam, sizeParam, extraLabel, nodeLabels) nlPresent = 1; if(nargin < 4) error('fileName, G, colorParam, sizeParam are required..'); elseif(nargin < 5) extraLabel{1} = ''; nlPresent = 0; elseif(nargin < 6) nlPresent = 0; end numNodes = max(size(G)); cparam = colorParam; sparam = sizeParam; if(nlPresent == 1) if(length(nodeLabels) ~= numNodes) error('Number of elements in nodeLables must be equal to the number of nodes.'); end end %% color coordination figure; colorMat = colormap(); close; numColors = length(colorMat); colx = min(colorParam):(max(colorParam)-min(colorParam))/(numColors - 1):max(colorParam); rgbColors = interp1(colx, colorMat, colorParam); hsvColors = rgb2hsv(rgbColors); %% Size thingy sizeParam = 0.1 + sizeParam/max(sizeParam); %% Print the graph to string str = sprintf('Graph "G" {\n'); for i=1:numNodes if(nlPresent == 0) str = sprintf('%s node%d [label="%d", color="%0.15f %0.15f %0.15f",style=filled, shape=circle, width=%0.2f];\n', str, i, (i), hsvColors(i,1), hsvColors(i,2), hsvColors(i,3), sizeParam(i)); else str = sprintf('%s node%d [label="%s", color="%0.15f %0.15f %0.15f",style=filled, shape=circle, width=%0.2f];\n', str, i, nodeLabels{i}, hsvColors(i,1), hsvColors(i,2), hsvColors(i,3), sizeParam(i)); end end for i=1:numNodes connNodes = find(G(i,:) == 1); G(connNodes, i) = 0; for j=1:length(connNodes) str = sprintf('%s node%d -- node%d ;\n', str, i, connNodes(j)); end end str = sprintf('%s label = "File Name = %s\\lFilter Range = [%.2f-%.2f]\\lSize Range = [%.2f-%.2f]\\l',... str, fileName, min(cparam), max(cparam), min(sparam), max(sparam)); for i=1:length(extraLabel) str = sprintf('%s%s\\l', str, extraLabel{i}); end str = sprintf('%s";\n', str); str = sprintf('%s labelloc="b";\nlabeljust="l";\n', str); str = sprintf('%s center = 1;\n rankdir=LR;\n overlap=scale;\n', str); str = sprintf('%s }', str); %% Save the graph to file fid = fopen(fileName, 'w'); fprintf(fid, '%s', str); fclose(fid); ================================================ FILE: src/matlab/experimental/multifiltration_flattening/Syn2d_5g1k3c_c1.txt ================================================ -0.94941,11.777 1.0664,10.022 2.2872,9.4446 -1.4905,10.77 5.0588,8.1908 3.2118,6.6524 6.2155,10.712 -0.4937,9.7742 -1.6984,4.703 1.6541,6.2882 3.915,11.234 3.0236,9.3494 1.0677,10.734 0.27207,10.341 -0.8692,15.518 0.22166,11.142 2.171,10.484 0.471,8.1167 1.5626,9.0791 -1.9093,13.99 -3.9757,10.565 -0.75759,5.0344 3.8365,11.361 3.1163,9.4852 0.60157,9.6711 1.3224,8.3706 2.3096,8.2282 -0.10617,8.5578 -1.2786,11.096 0.068067,10.567 3.717,8.4334 2.089,9.0889 2.2618,3.7974 -1.192,6.9087 3.6181,8.1903 -1.863,10.928 -2.2212,11.827 -0.28001,9.3467 -3.7729,7.7567 -0.38239,10.239 -0.46354,12.962 -4.9133,9.2942 -0.92757,9.7479 3.3325,9.792 -1.9946,12.69 4.437,12.198 -2.2418,6.4137 -0.60657,7.8938 -0.43934,12.304 1.1778,12.298 -2.104,9.477 -0.52772,8.2161 -0.22549,7.605 2.6923,13.093 -4.4246,10.379 2.3984,10.171 -0.30841,7.1324 2.6596,12.769 -0.52772,6.9371 -0.98564,14.12 -4.5333,4.9082 6.6311,12.847 -1.6877,9.2795 5.1584,14.126 0.41812,14.588 -0.083022,11.506 2.3472,15.573 -0.21211,12.156 -0.61574,9.5471 -1.6811,13.265 3.9897,7.8566 -0.66694,8.9883 -6.0213,12.346 1.7096,12.368 0.081614,6.8645 -2.3282,10.88 1.5095,4.7879 -0.25581,11.448 -4.2485,5.5775 -0.48309,8.8135 -0.60651,12.713 -0.56258,10.099 -2.1821,10.045 2.1654,12.96 0.93014,7.2638 -1.2002,9.1318 2.4306,13.429 -1.0522,9.9148 -1.4191,5.8567 1.0919,9.2302 -5.6117,13.933 -1.9534,8.5684 -3.1771,13.684 -0.19386,13.404 1.4944,6.026 -0.91309,14.193 -3.9513,9.1618 0.6088,10.389 0.66779,8.3903 -1.9699,8.2759 -3.466,11.585 3.2961,9.5353 -1.4316,5.1962 0.4234,10.151 -0.49842,8.9417 0.5785,12.885 1.2916,17.242 -1.0214,11.511 -2.6376,11.223 1.2906,9.9692 5.2168,12.154 -0.6307,8.9407 -1.007,10.575 1.9166,2.8812 1.3727,10.917 -4.9469,9.0504 0.7872,6.8084 -1.192,8.1837 -0.42369,10.846 -1.5349,3.5795 0.97818,4.3263 -3.8325,14.093 1.0766,8.5634 0.52604,8.5729 1.822,4.9442 -0.49743,10.955 3.4857,14.841 -1.0148,5.3883 -3.3526,11.869 2.1662,11.37 -0.82912,6.9248 -6.5619,9.8337 3.8254,11.35 -1.0155,15.626 -3.1719,8.0103 3.4722,8.158 -2.7877,13.628 -1.3026,8.3999 4.2893,6.1363 -0.41453,11.884 0.64508,9.7398 -0.75173,10.151 -4.2534,15.997 -2.3818,7.9681 4.8513,11.025 -0.23341,4.85 0.98523,12.643 2.416,13.676 -3.2847,10.065 -0.097784,8.8487 0.013172,11.855 1.031,9.4047 1.7979,12.006 -0.94319,6.9041 -0.9638,6.612 -3.5588,5.5465 -1.9232,10.164 4.3836,9.8001 1.5545,10.4 1.8949,11.291 -3.8265,11.573 -1.9273,8.6248 -3.3241,10.61 2.5436,10.133 -0.91743,9.3616 0.16718,12.143 0.21465,11.546 -2.9169,10.258 1.5652,1.6647 0.20609,7.7562 1.1186,8.4496 3.238,12.951 -0.67627,10.727 3.9947,11.549 -6.214,9.2166 1.33,14.475 -4.5767,13.418 -2.6979,9.0402 -5.3542,11.889 1.1044,9.646 -2.7003,6.6215 -0.41805,7.7995 0.057328,8.0986 -3.6511,11.219 -1.2964,9.0945 5.6575,3.905 -3.3022,10.348 2.253,10.372 -1.4624,10.444 2.7158,9.7813 1.8341,14.107 2.7215,7.5072 1.7382,8.0234 -3.8276,7.7912 -0.98136,11.123 -0.012216,8.2103 0.87723,12.894 -0.88383,12.624 -1.5389,9.9138 -1.0903,13.373 -2.4665,13.091 -0.49896,10.677 -6.1764,10.832 2.3579,14.229 -1.439,16.682 -3.7063,11.063 5.2081,7.6081 1.6076,5.5035 4.1794,9.2087 2.6564,8.7029 -2.4482,10.612 -0.34058,8.7587 -0.36304,7.7726 0.16241,9.9493 1.5636,9.5988 2.2423,7.356 0.6139,12.408 3.5151,10.178 1.4465,8.9227 -0.7256,7.8188 -2.6775,9.2239 -1.9509,9.7294 -5.6973,9.3948 0.21745,7.8527 0.12535,11.456 -0.81703,8.1948 2.7645,8.1479 3.7653,10.371 -2.3224,10.62 0.099217,14.019 -0.9812,9.7908 -0.074726,9.685 0.35661,9.9494 1.4616,13.48 -0.36821,8.4947 1.4035,12.486 -0.55653,12.534 -0.34239,4.1242 -3.265,8.2815 1.8894,12.595 0.34356,15.507 -1.2884,9.2555 0.28577,12.35 -3.2662,13.239 1.0804,12.29 0.82713,10.041 -0.89951,11.23 -2.3119,9.4566 -0.9433,6.5178 -4.72,6.6817 -4.0584,7.2498 -2.5505,16.092 0.84443,9.7403 1.7918,12.745 2.6149,11.466 0.91545,9.6123 -2.2791,9.6497 -2.9575,11.622 -0.41428,10.262 -3.7919,9.2254 -0.22117,8.1578 -1.4049,7.6187 1.7983,13.454 -0.27665,11.039 -0.70245,10.335 -1.0039,14.454 3.3861,7.2695 2.1132,11.497 2.9171,11.865 -0.20593,6.7648 -0.84888,11.884 -4.2586,13.015 -4.9034,8.0868 1.0772,10.288 -0.81499,8.3178 -2.2617,8.1129 1.4465,10.097 -0.76123,11.044 0.40877,9.7918 -1.78,15.811 2.1977,9.2099 -4.2982,14.119 0.035395,5.836 -2.3537,13.253 2.0796,7.6507 0.5734,8.6835 3.6413,11.106 1.6562,12.005 -1.3724,11.065 0.031556,12.31 1.4083,9.9893 1.4529,9.1682 -3.0553,10.272 2.25,7.7807 4.6252,11.416 1.717,8.895 1.7744,6.7651 -6.315,10.612 -0.29478,8.8526 -3.4042,14.661 1.7266,8.818 -1.8062,11.647 -0.79252,13.331 -2.0504,4.5345 2.0108,7.7253 -2.261,10.756 2.0631,12.575 1.6316,10.825 -0.74498,5.7458 1.3916,11.112 -4.1264,13.818 5.4854,5.8591 0.21431,4.9952 -2.3962,9.2734 1.6735,15.043 1.2015,12.323 0.77475,13.647 2.5859,12.267 -1.6163,11.038 3.3978,10.416 0.089516,9.4957 -0.45511,9.3505 0.25432,3.6808 -3.3913,5.4823 -0.91957,12.409 -1.1895,12.445 -3.6537,8.1165 0.36544,8.6742 1.8616,8.7919 -2.2847,10.927 -1.6976,7.236 2.4739,5.8 0.27469,9.2159 -0.9184,8.1756 -1.2262,11.319 -2.3035,9.2784 2.9023,14.686 -2.1175,10.039 2.6815,12.974 1.6077,10.026 -1.0913,9.1256 0.081154,5.8895 0.12883,11.168 -0.7742,8.8419 2.8712,10.321 2.965,11.498 -0.73269,12.98 0.50318,9.8087 2.0848,5.4411 2.8914,6.4312 -2.0388,8.3962 -3.5525,10.027 -2.4543,8.7844 6.1462,11.994 -0.2629,13.1 -2.1088,10.929 -0.80974,9.3295 1.5582,7.1304 2.1776,11.647 -2.7734,6.2576 1.7367,11.744 -1.0968,11.127 4.9632,8.8637 0.62554,10.206 -0.27482,9.4678 0.10487,8.7838 1.6005,10.539 0.74077,12.093 1.8335,9.6393 -0.76399,9.0249 2.7403,9.5635 4.43,9.0542 0.98959,11.486 -0.70163,12.002 -2.4962,12.546 -0.36253,7.52 2.9316,12.592 0.4275,9.0813 2.7512,13.558 -2.3792,13.67 -5.9579,5.6697 3.9748,9.1931 2.8307,12.268 -0.94148,10.039 2.0778,10.885 2.0796,6.1281 5.9058,10.508 5.02,12.838 0.75423,11.688 0.25955,11.723 0.77719,5.7647 -3.9949,11.132 4.052,8.9209 -2.0347,11.437 2.2447,7.0029 2.7089,10.736 1.8733,7.6431 -1.5727,8.9669 -1.5916,15.204 -4.1811,6.5897 6.0541,16.36 4.93,15.874 8.1472,15.253 6.6854,14.343 3.7389,15.847 8.0755,15.462 4.757,15.663 4.6708,16.622 6.9057,16.643 7.6711,16.159 6.2569,15.344 4.3783,18.067 4.933,16.1 5.4707,16.175 4.6096,16.063 7.949,14.664 7.3661,15.51 4.5877,16.585 5.4345,16.062 2.6473,16.233 5.6319,14.063 6.787,14.309 7.4312,15.453 2.855,16.371 6.8761,14.618 4.0764,15.645 4.5076,15.884 7.4471,13.107 7.5529,15.361 5.5623,16.773 7.0619,12.452 6.372,17.329 5.1134,15.02 7.8048,15.704 5.1426,13.876 6.1568,17.231 6.6868,13.516 6.7734,15.375 6.0915,16.549 6.0032,14.876 5.175,17.047 4.4848,17.666 6.8205,15.682 5.6318,16.288 4.4165,16.626 7.2589,15.564 4.6641,17.039 7.7822,17.13 6.1765,15.198 4.3209,17.136 6.9482,15.703 5.6483,15.32 4.594,14.678 3.3041,17.599 7.7041,14.754 6.9176,14.351 4.6652,14.528 4.9442,16.578 6.5813,13.093 3.5488,17.929 7.9867,12.52 10.006,12.652 6.7381,14.479 6.9852,16.474 4.8574,13.654 7.693,12.93 8.3249,15.78 6.4149,14.077 7.3346,14.109 8.786,13.105 5.4052,16.68 5.8762,14.525 6.4193,15.115 6.4317,15.618 5.9849,15.412 5.9583,16.149 5.305,16.347 3.9681,16.568 5.5896,14.657 4.9287,17.112 4.5377,16.375 5.5131,17.559 8.8048,14.287 7.3246,15.531 2.5742,18.513 5.4398,14.5 4.8591,17.29 6.3376,14.247 4.8197,18.307 5.6644,14.639 6.1075,14.528 4.7951,15.539 6.1657,14.42 7.8074,14.105 4.8978,15.998 6.7864,14.156 6.0298,16.979 8.0838,12.532 6.3048,15.576 5.3129,16.619 8.0925,12.296 6.846,15.34 5.7959,14.664 7.8498,15.056 8.2418,14.268 5.4186,16.187 5.0573,15.64 6.5472,14.517 4.5803,18.35 5.3018,16.353 3.57,13.93 6.1017,15.139 6.8172,14.994 5.666,14.243 3.7596,16.595 5.2192,15.203 6.1847,16.72 8.3681,14.539 5.226,16.074 6.6678,14.974 6.2656,14.92 7.4138,14.637 5.9974,13.541 4.2466,16.028 5.4506,16.573 7.4542,13.495 8.4808,15.507 3.9677,17.006 6.0791,15.18 5.4773,15.968 7.9764,14.802 6.7659,16.459 4.5726,15.094 6.7715,14.566 6.5085,15.171 5.9167,14.84 7.8629,14.891 3.3436,16.937 6.6907,17.479 3.9736,16.468 5.516,15.636 5.7993,15.874 6.5283,15.968 5.8597,16.751 5.8595,14.739 6.8242,15.896 4.1171,16.722 7.5337,13.879 4.5426,17.265 6.9419,15.506 10.545,11.847 9.3207,9.4124 7.0969,7.7438 8.7353,7.6944 7.8393,10.397 6.8251,9.2556 9.0677,10.821 8.1492,8.7303 9.9976,10.891 6.6854,11.305 6.7893,9.107 8.4557,12.665 7.8207,7.7305 6.7216,12.197 9.6874,11.833 8.1948,10.597 8.251,11.856 6.2286,9.4678 7.4013,7.5324 8.2732,10.847 10.864,8.8051 6.3065,8.9005 6.8856,10.286 7.8167,10.084 7.8539,10.787 8.1584,11.757 5.9232,12.038 10.51,10.019 6.7,8.4899 9.8639,11.277 7.8777,10.192 10.692,9.1957 5.7591,10.388 6.8958,8.7206 6.6209,9.3058 7.6545,10.63 7.9059,13.139 9.6391,9.5308 8.218,14.229 7.905,8.0671 8.0422,11.556 5.7747,6.2175 7.8436,13.099 10.13,12.245 8.6329,12.793 11.73,9.8915 9.004,11.735 6.8147,10.362 6.6974,8.9731 10.624,11.921 9.5235,9.6617 6.0651,8.9291 4.6789,9.4018 6.6135,10.187 9.8709,8.3299 7.6782,8.4775 7.3393,11.521 8.409,8.5038 6.5963,9.1385 9.7558,9.4024 7.6386,11.828 8.215,10.902 7.0008,9.1129 8.6984,9.4699 9.4452,8.7264 7.8568,9.6034 5.945,9.2398 6.673,11.703 8.3271,8.9896 7.5815,8.2401 9.6247,9.2866 6.3567,6.3118 8.9471,10.61 8.3278,11.847 9.144,9.1901 5.9042,6.8374 6.8587,9.6783 9.2028,11.404 6.9128,8.5792 9.6802,9.8566 8.0947,8.1938 9.1816,9.1601 10.078,10.609 8.535,9.8726 6.7218,9.5596 6.7406,10.148 9.3658,9.537 8.583,10.438 7.1527,9.1552 8.2625,10.433 6.4053,8.2274 8.8538,13.376 6.1128,8.0864 6.0564,11.403 11.047,9.4118 9.4028,7.8263 10.654,8.9927 7.8444,9.6619 7.9401,9.9275 9.6703,8.8961 7.4216,8.1057 6.3204,12.585 6.4993,10.236 7.8599,11.029 9.2529,8.1864 7.6267,8.8601 7.688,8.7935 8.8017,12.014 5.5158,8.9719 9.1807,12.711 9.9615,8.9468 8.3119,10.622 7.3214,11.19 10.835,13.514 9.8758,9.1766 8.8685,10.557 7.9689,9.2339 8.1557,10.567 6.9793,8.9059 8.019,10.48 6.182,8.6865 7.0209,9.4265 6.1021,10.608 7.8876,9.1763 7.9725,8.4128 10.026,11.099 7.4616,10.341 5.4387,6.2815 8.621,11.32 8.5771,10.849 9.0329,11.467 5.8894,10.086 6.0223,8.9997 9.1245,9.5619 8.9792,10.629 9.9036,9.0662 5.5837,11.095 8.8599,11.54 5.8182,9.922 7.8146,10.706 7.678,11.8 7.6514,8.9099 9.9967,9.7676 8.7798,10.025 8.2105,8.7111 8.6717,8.9235 7.0541,12.42 4.7972,12.223 7.0226,10.503 6.3534,8.3114 6.3401,5.2578 9.7828,4.0385 9.8485,5.0634 8.4222,3.4904 10.676,3.7232 8.6076,4.5665 9.3241,5.3747 8.842,4.9676 6.9117,6.1757 6.6728,6.164 7.3711,3.9231 7.5473,5.2827 6.3549,4.3111 7.7254,5.9186 6.4049,2.9627 7.7946,4.8591 7.3764,3.7003 8.3275,6.2234 5.817,6.2883 6.0227,3.8011 7.7322,5.3561 7.8,5.5186 4.4766,4.439 7.1035,4.9358 7.7254,3.8021 8.8745,4.9381 7.8087,6.4851 8.9609,3.8193 7.5341,6.9707 7.544,4.5081 8.5411,6.1625 8.4384,3.4506 7.8769,4.5754 8.8237,4.8466 9.8684,4.8825 8.7557,2.6953 7.6813,5.1323 6.775,7.2473 6.633,5.8471 8.5367,6.8737 7.8604,4.8779 9.2009,4.0763 8.1684,4.5773 7.6961,4.0774 6.7368,4.4011 9.2082,2.7248 10.548,5.855 10.11,7.5204 7.4665,4.8111 7.5537,4.8099 6.7491,6.0686 7.9035,4.9522 6.2508,5.2925 6.5663,3.901 8.8677,4.6378 9.2162,4.1948 8.0759,3.4488 8.6108,6.6585 9.5042,6.057 8.1206,2.6351 8.3493,4.8452 9.3527,3.6928 8.8893,4.972 8.3628,5.0337 8.0134,6.8498 7.614,4.0945 6.0591,5.4724 8.8461,5.9578 9.2098,5.2051 8.5112,4.4217 8.238,5.5061 7.252,6.3359 7.1497,4.0224 8.3515,5.2945 6.5854,6.4253 7.0528,3.4983 9.4438,4.7227 8.791,5.5848 8.7312,5.2865 8.0221,4.4267 6.7837,4.073 5.9648,4.5168 7.0061,6.9426 5.8931,4.9208 8.4453,3.47 6.5532,5.2656 8.9646,6.7678 6.4496,5.8165 8.026,5.3806 7.2176,4.723 8.888,4.1246 9.1315,6.8525 7.1878,4.7995 7.9211,4.4514 9.5221,5.3188 7.6781,4.9154 9.0977,4.2289 8.4954,6.2359 6.3558,5.3288 7.773,6.1017 7.1611,3.7658 9.2299,5.2638 7.7126,6.1959 9.5199,4.5079 7.3183,6.6629 8.4996,4.44 8.0577,4.2751 5.9687,4.4042 8.4932,4.5467 6.4028,5.0749 8.9207,4.6424 8.3067,8.0192 10.149,4.238 6.3668,5.4492 7.9297,5.8955 6.6137,3.849 9.7549,3.5269 7.8307,2.0147 7.4066,4.5896 8.3019,5.63 7.5919,6.7817 9.6006,4.3809 7.446,5.1042 8.0417,3.9167 8.5032,4.7749 8.3606,5.609 7.3512,4.0039 8.1151,3.9949 8.5605,2.7475 6.6966,4.9045 6.967,6.3968 8.0379,3.1781 9.0949,5.9452 7.8487,6.0349 9.918,5.0394 10.562,4.9459 6.729,5.1981 10.235,4.486 6.7383,5.3603 7.8337,7.4905 6.338,5.0303 9.5132,5.5159 9.0324,4.7112 9.655,5.8111 8.0592,7.7276 6.4553,5.9475 6.9213,3.7458 7.9751,5.2088 7.672,4.2821 9.9491,4.6962 6.0273,2.7039 2.5842,-0.78145 5.7519,0.47164 4.452,1.9292 3.557,1.993 4.4305,1.5071 5.2321,1.8874 4.9632,2.6111 3.6292,2.2756 4.4179,1.6762 4.4792,-0.48542 2.9793,1.0587 2.8691,0.64368 5.6092,2.3089 3.363,0.11844 3.0394,0.3385 4.061,1.9288 3.5465,0.30538 4.6585,2.7777 5.3741,3.2067 6.7261,3.2503 3.5128,1.0614 4.1428,1.4461 4.3823,1.909 6.1577,1.6063 3.2885,0.21748 2.8531,0.95509 3.7459,-0.38113 4.4149,1.0952 4.545,2.4881 3.4911,0.85152 4.9162,1.7267 3.3442,1.6568 1.6734,-2.3434 2.9725,1.3228 4.2737,0.45274 3.0906,1.3083 3.103,0.26266 3.8391,1.6007 2.5103,-0.23146 3.1482,1.7115 3.6749,0.4472 7.4118,2.7659 4.5169,1.7403 3.8392,0.59034 2.869,-0.84236 5.3118,1.1962 3.754,0.29525 3.3305,0.26089 3.4236,0.89959 4.097,1.388 5.4443,2.1721 5.9857,0.82952 4.5255,2.1894 6.4821,2.5475 2.5037,-0.26736 3.2723,-0.74829 5.2647,2.9785 4.9823,1.9932 4.5307,2.1288 3.2855,-0.25645 4.2492,0.68574 4.5177,1.5426 6.1245,2.5263 6.3739,1.2984 3.5542,-0.0022266 3.7198,0.029747 4.1068,3.4136 4.0324,0.82365 0.8916,-2.3199 2.5421,-0.25073 3.4496,1.6582 1.6742,-1.4661 4.3976,0.42371 3.5821,1.2752 4.2244,0.39566 3.5344,0.84822 5.3301,3.1485 4.2962,0.97311 4.5265,2.6396 1.9458,-0.82631 4.0039,-0.24192 3.496,0.33842 4.2107,1.7528 2.7814,-1.5106 1.9983,-1.1069 4.1747,1.1189 3.7146,0.83475 4.4816,1.2615 6.4752,2.8782 3.5114,-0.65291 3.4455,-1.0671 4.9059,2.0976 4.8721,3.3228 4.8875,1.8409 3.9198,1.4001 4.0987,0.32329 7.5998,2.6613 2.8802,-0.2179 2.6282,-0.35153 5.3251,0.68987 3.5844,-0.11138 3.8659,1.2591 4.248,0.83132 3.8687,0.40169 3.4682,1.1039 2.2245,-0.51693 1.092,-1.131 2.8433,-0.60014 2.9478,-1.918 4.0178,-0.57519 3.5953,1.4054 3.6495,1.6674 5.484,2.8456 6.3761,1.4142 4.855,-0.12005 1.7236,1.4305 5.1145,1.5061 3.5039,3.6424 2.4687,0.41788 4.3944,3.3112 4.4694,1.2431 4.3501,1.5798 2.1938,-0.23313 5.1663,1.7788 3.8823,2.0892 2.8914,0.06098 4.9069,1.5342 2.7353,0.83025 4.3703,1.1658 4.5317,-0.39911 1.5195,-1.7626 1.3833,-0.76994 2.9553,-0.75538 4.8226,2.181 5.748,1.1364 3.9291,2.1525 3.9835,1.4679 4.0494,1.8999 3.5884,-0.052606 3.632,0.52051 3.5126,1.4081 5.8236,2.8078 2.0913,-0.78497 4.5693,2.3352 4.2812,1.8393 4.4875,1.7545 3.3297,-0.76577 4.1073,1.4779 5.2182,3.0578 ================================================ FILE: src/matlab/experimental/multifiltration_flattening/clustering_example.m ================================================ clc; clear; close all; %% Load data load Syn2d_5g1k3c points = dataM_c1; % mean center points(:, 1) = points(:, 1) - mean(points(:, 1)); points(:, 2) = points(:, 2) - mean(points(:, 2)); points(:, 1) = points(:, 1) / max(abs(points(:, 1))); points(:, 2) = points(:, 2) / max(abs(points(:, 2))); %scatter(points(:, 1), points(:, 2)); %% Parameters max_dimension = 0; max_filtration_value = 0.2; sigma = 0.1; principal_direction = [1000, 5000]; metric_space = metric.impl.EuclideanMetricSpace(points); stream = api.Plex4.createVietorisRipsStream(points, max_dimension + 1, max_filtration_value, 1000); stream.finalizeStream(); densityFilterFunction = streams.filter.KernelDensityFilterFunction(metric_space, sigma); densities = densityFilterFunction.getValues(); intFilterFunction = streams.filter.ExplicitIntFilterFunction(-densities); simplexFilterFunction = streams.filter.MaxSimplicialFilterFunction(intFilterFunction); multifilteredStream = streams.multi.BifilteredMetricStream(stream, simplexFilterFunction); flattener = streams.multi.HalfplaneFlattener(principal_direction); flattened_stream = flattener.collapse(multifilteredStream); persistenceAlgorithm = api.PersistenceAlgorithmInterface.getBooleanSimplicialAbsoluteHomology(max_dimension + 1); barcodes = persistenceAlgorithm.computeAnnotatedIntervals(flattened_stream); %% Output points(:, 3) = densities; %render_onscreen(flattened_stream, points); %% options.filename = 'flattened_clusters.eps'; options.caption = 'Barcodes for flattened multifiltered complex'; options.file_format = 'eps'; plot_barcodes(barcodes, options); %% Extract 5 longest intervals dim_0_intervals = barcodes.getIntervalGeneratorPairsAtDimension(0); longest_interval_pairs = edu.stanford.math.plex4.homology.barcodes.BarcodeUtility.getLongestAnnotatedBarcodes(dim_0_intervals, 5); fprintf('Longest Intervals and their Generators:\n'); for i=0:4 chain = longest_interval_pairs.get(i).getSecond(); interval = longest_interval_pairs.get(i).getFirst(); iterator = chain.iterator(); fprintf('interval: %s, chain: %s\n', char(interval.toString()), char(chain.toString())); while (iterator.hasNext()) element = iterator.next(); filtration_value = multifilteredStream.getFiltrationValue(element); fprintf('element: %s, filtration value: %f, %f\n', char(element.toString()), filtration_value(1), -filtration_value(2)); end end ================================================ FILE: src/matlab/experimental/multifiltration_flattening/flattened_clusters.eps ================================================ %!PS-Adobe-2.0 EPSF-1.2 %%Creator: MATLAB, The MathWorks, Inc. Version 7.11.0.584 (R2010b). Operating System: Linux 2.6.38-13-generic #52-Ubuntu SMP Tue Nov 8 16:53:51 UTC 2011 x86_64. %%Title: ./flattened_clusters.eps %%CreationDate: 12/08/2011 11:26:47 %%DocumentNeededFonts: Helvetica %%DocumentProcessColors: Cyan Magenta Yellow Black %%Pages: 1 %%BoundingBox: 90 215 546 602 %%EndComments %%BeginProlog % MathWorks dictionary /MathWorks 160 dict begin % definition operators /bdef {bind def} bind def /ldef {load def} bind def /xdef {exch def} bdef /xstore {exch store} bdef % operator abbreviations /c /clip ldef /cc /concat ldef /cp /closepath ldef /gr /grestore ldef /gs /gsave ldef /mt /moveto ldef /np /newpath ldef /cm /currentmatrix ldef /sm /setmatrix ldef /rm /rmoveto ldef /rl /rlineto ldef /s {show newpath} bdef /sc {setcmykcolor} bdef /sr /setrgbcolor ldef /sg /setgray ldef /w /setlinewidth ldef /j /setlinejoin ldef /cap /setlinecap ldef /rc {rectclip} bdef /rf {rectfill} bdef % page state control /pgsv () def /bpage {/pgsv save def} bdef /epage {pgsv restore} bdef /bplot /gsave ldef /eplot {stroke grestore} bdef % orientation switch /portraitMode 0 def /landscapeMode 1 def /rotateMode 2 def % coordinate system mappings /dpi2point 0 def % font control /FontSize 0 def /FMS {/FontSize xstore findfont [FontSize 0 0 FontSize neg 0 0] makefont setfont} bdef /reencode {exch dup where {pop load} {pop StandardEncoding} ifelse exch dup 3 1 roll findfont dup length dict begin { 1 index /FID ne {def}{pop pop} ifelse } forall /Encoding exch def currentdict end definefont pop} bdef /isroman {findfont /CharStrings get /Agrave known} bdef /FMSR {3 1 roll 1 index dup isroman {reencode} {pop pop} ifelse exch FMS} bdef /csm {1 dpi2point div -1 dpi2point div scale neg translate dup landscapeMode eq {pop -90 rotate} {rotateMode eq {90 rotate} if} ifelse} bdef % line types: solid, dotted, dashed, dotdash /SO { [] 0 setdash } bdef /DO { [.5 dpi2point mul 4 dpi2point mul] 0 setdash } bdef /DA { [6 dpi2point mul] 0 setdash } bdef /DD { [.5 dpi2point mul 4 dpi2point mul 6 dpi2point mul 4 dpi2point mul] 0 setdash } bdef % macros for lines and objects /L {lineto stroke} bdef /MP {3 1 roll moveto 1 sub {rlineto} repeat} bdef /AP {{rlineto} repeat} bdef /PDlw -1 def /W {/PDlw currentlinewidth def setlinewidth} def /PP {closepath eofill} bdef /DP {closepath stroke} bdef /MR {4 -2 roll moveto dup 0 exch rlineto exch 0 rlineto neg 0 exch rlineto closepath} bdef /FR {MR stroke} bdef /PR {MR fill} bdef /L1i {{currentfile picstr readhexstring pop} image} bdef /tMatrix matrix def /MakeOval {newpath tMatrix currentmatrix pop translate scale 0 0 1 0 360 arc tMatrix setmatrix} bdef /FO {MakeOval stroke} bdef /PO {MakeOval fill} bdef /PD {currentlinewidth 2 div 0 360 arc fill PDlw -1 eq not {PDlw w /PDlw -1 def} if} def /FA {newpath tMatrix currentmatrix pop translate scale 0 0 1 5 -2 roll arc tMatrix setmatrix stroke} bdef /PA {newpath tMatrix currentmatrix pop translate 0 0 moveto scale 0 0 1 5 -2 roll arc closepath tMatrix setmatrix fill} bdef /FAn {newpath tMatrix currentmatrix pop translate scale 0 0 1 5 -2 roll arcn tMatrix setmatrix stroke} bdef /PAn {newpath tMatrix currentmatrix pop translate 0 0 moveto scale 0 0 1 5 -2 roll arcn closepath tMatrix setmatrix fill} bdef /vradius 0 def /hradius 0 def /lry 0 def /lrx 0 def /uly 0 def /ulx 0 def /rad 0 def /MRR {/vradius xdef /hradius xdef /lry xdef /lrx xdef /uly xdef /ulx xdef newpath tMatrix currentmatrix pop ulx hradius add uly vradius add translate hradius vradius scale 0 0 1 180 270 arc tMatrix setmatrix lrx hradius sub uly vradius add translate hradius vradius scale 0 0 1 270 360 arc tMatrix setmatrix lrx hradius sub lry vradius sub translate hradius vradius scale 0 0 1 0 90 arc tMatrix setmatrix ulx hradius add lry vradius sub translate hradius vradius scale 0 0 1 90 180 arc tMatrix setmatrix closepath} bdef /FRR {MRR stroke } bdef /PRR {MRR fill } bdef /MlrRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lry uly sub 2 div def newpath tMatrix currentmatrix pop ulx rad add uly rad add translate rad rad scale 0 0 1 90 270 arc tMatrix setmatrix lrx rad sub lry rad sub translate rad rad scale 0 0 1 270 90 arc tMatrix setmatrix closepath} bdef /FlrRR {MlrRR stroke } bdef /PlrRR {MlrRR fill } bdef /MtbRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lrx ulx sub 2 div def newpath tMatrix currentmatrix pop ulx rad add uly rad add translate rad rad scale 0 0 1 180 360 arc tMatrix setmatrix lrx rad sub lry rad sub translate rad rad scale 0 0 1 0 180 arc tMatrix setmatrix closepath} bdef /FtbRR {MtbRR stroke } bdef /PtbRR {MtbRR fill } bdef /stri 6 array def /dtri 6 array def /smat 6 array def /dmat 6 array def /tmat1 6 array def /tmat2 6 array def /dif 3 array def /asub {/ind2 exch def /ind1 exch def dup dup ind1 get exch ind2 get sub exch } bdef /tri_to_matrix { 2 0 asub 3 1 asub 4 0 asub 5 1 asub dup 0 get exch 1 get 7 -1 roll astore } bdef /compute_transform { dmat dtri tri_to_matrix tmat1 invertmatrix smat stri tri_to_matrix tmat2 concatmatrix } bdef /ds {stri astore pop} bdef /dt {dtri astore pop} bdef /db {2 copy /cols xdef /rows xdef mul dup string currentfile exch readhexstring pop /bmap xdef pop pop} bdef /it {gs np dtri aload pop moveto lineto lineto cp c cols rows 8 compute_transform {bmap} image gr}bdef /il {newpath moveto lineto stroke}bdef currentdict end def %%EndProlog %%BeginSetup MathWorks begin 0 cap end %%EndSetup %%Page: 1 1 %%BeginPageSetup %%PageBoundingBox: 90 215 546 602 MathWorks begin bpage %%EndPageSetup %%BeginObject: obj1 bplot /dpi2point 12 def portraitMode 0216 7344 csm 864 110 5477 4651 MR c np 85 dict begin %Colortable dictionary /c0 { 0.000000 0.000000 0.000000 sr} bdef /c1 { 1.000000 1.000000 1.000000 sr} bdef /c2 { 0.900000 0.000000 0.000000 sr} bdef /c3 { 0.000000 0.820000 0.000000 sr} bdef /c4 { 0.000000 0.000000 0.800000 sr} bdef /c5 { 0.910000 0.820000 0.320000 sr} bdef /c6 { 1.000000 0.260000 0.820000 sr} bdef /c7 { 0.000000 0.820000 0.820000 sr} bdef c0 1 j 1 sg 0 0 6913 5186 PR 6 w 0 4226 5355 0 0 -4226 899 4615 4 MP PP -5355 0 0 4226 5355 0 0 -4226 899 4615 5 MP stroke 4 w DO 0 sg 1664 4615 mt 1664 389 L 1664 389 mt 1664 389 L 2458 4615 mt 2458 389 L 2458 389 mt 2458 389 L 3251 4615 mt 3251 389 L 3251 389 mt 3251 389 L 4045 4615 mt 4045 389 L 4045 389 mt 4045 389 L 4838 4615 mt 4838 389 L 4838 389 mt 4838 389 L 5632 4615 mt 5632 389 L 5632 389 mt 5632 389 L SO 6 w 899 4615 mt 6254 4615 L 899 4615 mt 899 389 L 1664 4615 mt 1664 4561 L %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 1494 4760 mt (-800) s 2458 4615 mt 2458 4561 L 2288 4760 mt (-600) s 3251 4615 mt 3251 4561 L 3081 4760 mt (-400) s 4045 4615 mt 4045 4561 L 3875 4760 mt (-200) s 4838 4615 mt 4838 4561 L 4805 4760 mt (0) s 5632 4615 mt 5632 4561 L 5532 4760 mt (200) s gs 899 389 5357 4227 MR c np 575 0 4735 393 2 MP stroke 595 0 4735 397 2 MP stroke 631 0 4731 401 2 MP stroke 441 0 4691 405 2 MP stroke 433 0 4687 410 2 MP stroke 425 0 4683 414 2 MP stroke 298 0 4679 418 2 MP stroke 392 0 4652 422 2 MP stroke 309 0 4648 426 2 MP stroke 262 0 4644 431 2 MP stroke 337 0 4640 435 2 MP stroke 488 0 4628 439 2 MP stroke 353 0 4620 443 2 MP stroke 309 0 4616 448 2 MP stroke 329 0 4612 452 2 MP stroke 444 0 4608 456 2 MP stroke 274 0 4600 460 2 MP stroke 95 0 4592 464 2 MP stroke 298 0 4592 469 2 MP stroke 441 0 4588 473 2 MP stroke 258 0 4584 477 2 MP stroke 294 0 4584 481 2 MP stroke 207 0 4580 486 2 MP stroke 207 0 4552 490 2 MP stroke 142 0 4541 494 2 MP stroke 258 0 4533 498 2 MP stroke 345 0 4529 502 2 MP stroke 103 0 4525 507 2 MP stroke 67 0 4517 511 2 MP stroke 297 0 4517 515 2 MP stroke 230 0 4509 519 2 MP stroke 262 0 4509 524 2 MP stroke 373 0 4505 528 2 MP stroke 214 0 4489 532 2 MP stroke 258 0 4489 536 2 MP stroke 266 0 4489 540 2 MP stroke 393 0 4473 545 2 MP stroke 68 0 4469 549 2 MP stroke 187 0 4469 553 2 MP stroke 262 0 4469 557 2 MP stroke 238 0 4465 562 2 MP stroke 270 0 4465 566 2 MP stroke 242 0 4461 570 2 MP stroke 88 0 4457 574 2 MP stroke 242 0 4449 578 2 MP stroke 369 0 4445 583 2 MP stroke 127 0 4441 587 2 MP stroke 203 0 4441 591 2 MP stroke 350 0 4437 595 2 MP stroke 135 0 4433 600 2 MP stroke 350 0 4429 604 2 MP stroke 238 0 4418 608 2 MP stroke 242 0 4418 612 2 MP stroke 440 0 4402 616 2 MP stroke 95 0 4398 621 2 MP stroke 186 0 4394 625 2 MP stroke 289 0 4394 629 2 MP stroke 270 0 4386 633 2 MP stroke 131 0 4382 638 2 MP stroke 210 0 4382 642 2 MP stroke 40 0 4374 646 2 MP stroke 151 0 4374 650 2 MP stroke 286 0 4374 654 2 MP stroke 202 0 4362 659 2 MP stroke 167 0 4354 663 2 MP stroke 246 0 4346 667 2 MP stroke 361 0 4342 671 2 MP stroke 218 0 4338 676 2 MP stroke 226 0 4334 680 2 MP stroke 147 0 4330 684 2 MP stroke 234 0 4330 688 2 MP stroke 175 0 4326 692 2 MP stroke 215 0 4326 697 2 MP stroke 326 0 4326 701 2 MP stroke 155 0 4322 705 2 MP stroke 330 0 4318 709 2 MP stroke 211 0 4314 714 2 MP stroke 182 0 4307 718 2 MP stroke 170 0 4303 722 2 MP stroke 277 0 4299 726 2 MP stroke 190 0 4295 730 2 MP stroke 158 0 4291 735 2 MP stroke 123 0 4283 739 2 MP stroke 178 0 4279 743 2 MP stroke 285 0 4275 747 2 MP stroke 24 0 4271 752 2 MP stroke 151 0 4271 756 2 MP stroke 325 0 4271 760 2 MP stroke 135 0 4267 764 2 MP stroke 147 0 4263 768 2 MP stroke 91 0 4259 773 2 MP stroke 99 0 4259 777 2 MP stroke 155 0 4259 781 2 MP stroke 159 0 4255 785 2 MP stroke 171 0 4255 790 2 MP stroke 182 0 4251 794 2 MP stroke 238 0 4251 798 2 MP stroke 238 0 4251 802 2 MP stroke 135 0 4239 806 2 MP stroke 266 0 4239 811 2 MP stroke 151 0 4235 815 2 MP stroke 163 0 4235 819 2 MP stroke 214 0 4231 823 2 MP stroke 226 0 4231 828 2 MP stroke 64 0 4227 832 2 MP stroke 270 0 4227 836 2 MP stroke 103 0 4223 840 2 MP stroke 195 0 4215 844 2 MP stroke 155 0 4211 849 2 MP stroke 246 0 4203 853 2 MP stroke 159 0 4199 857 2 MP stroke 274 0 4195 861 2 MP stroke 163 0 4191 866 2 MP stroke 246 0 4191 870 2 MP stroke 171 0 4187 874 2 MP stroke 146 0 4184 878 2 MP stroke 234 0 4184 882 2 MP stroke 35 0 4172 887 2 MP stroke 214 0 4168 891 2 MP stroke 297 0 4160 895 2 MP stroke 162 0 4156 899 2 MP stroke 202 0 4152 904 2 MP stroke 270 0 4144 908 2 MP stroke 242 0 4136 912 2 MP stroke 28 0 4128 916 2 MP stroke 139 0 4128 920 2 MP stroke 111 0 4124 925 2 MP stroke 302 0 4124 929 2 MP stroke 171 0 4116 933 2 MP stroke 175 0 4116 937 2 MP stroke 234 0 4116 942 2 MP stroke 131 0 4108 946 2 MP stroke 103 0 4104 950 2 MP stroke 72 0 4100 954 2 MP stroke 199 0 4100 958 2 MP stroke 44 0 4092 963 2 MP stroke 111 0 4092 967 2 MP stroke 191 0 4088 971 2 MP stroke 286 0 4080 975 2 MP stroke 111 0 4076 980 2 MP stroke 338 0 4068 984 2 MP stroke 179 0 4064 988 2 MP stroke 146 0 4061 992 2 MP stroke 198 0 4057 996 2 MP stroke 55 0 4053 1001 2 MP stroke 107 0 4053 1005 2 MP stroke 154 0 4053 1009 2 MP stroke 182 0 4049 1013 2 MP stroke 135 0 4045 1018 2 MP stroke 154 0 4045 1022 2 MP stroke 206 0 4041 1026 2 MP stroke 206 0 4041 1030 2 MP stroke 99 0 4037 1034 2 MP stroke 127 0 4037 1039 2 MP stroke 214 0 4037 1043 2 MP stroke 87 0 4025 1047 2 MP stroke 123 0 4025 1051 2 MP stroke 266 0 4025 1056 2 MP stroke 75 0 4021 1060 2 MP stroke 87 0 4021 1064 2 MP stroke 111 0 4013 1068 2 MP stroke 171 0 4013 1072 2 MP stroke 270 0 4013 1077 2 MP stroke 214 0 4009 1081 2 MP stroke 143 0 4005 1085 2 MP stroke 218 0 4005 1089 2 MP stroke 75 0 4001 1094 2 MP stroke 202 0 3997 1098 2 MP stroke 210 0 3993 1102 2 MP stroke 147 0 3989 1106 2 MP stroke 206 0 3985 1110 2 MP stroke 175 0 3969 1115 2 MP stroke 52 0 3965 1119 2 MP stroke 226 0 3965 1123 2 MP stroke 143 0 3961 1127 2 MP stroke 4 0 3957 1132 2 MP stroke 100 0 3957 1136 2 MP stroke 80 0 3953 1140 2 MP stroke 111 0 3953 1144 2 MP stroke 155 0 3945 1148 2 MP stroke 115 0 3942 1153 2 MP stroke 214 0 3942 1157 2 MP stroke 75 0 3938 1161 2 MP stroke 59 0 3930 1165 2 MP stroke 269 0 3930 1170 2 MP stroke 131 0 3926 1174 2 MP stroke 218 0 3922 1178 2 MP stroke 127 0 3914 1182 2 MP stroke 202 0 3914 1186 2 MP stroke 111 0 3910 1191 2 MP stroke 186 0 3910 1195 2 MP stroke 127 0 3906 1199 2 MP stroke 285 0 3902 1203 2 MP stroke 147 0 3894 1208 2 MP stroke 210 0 3894 1212 2 MP stroke 171 0 3890 1216 2 MP stroke 87 0 3886 1220 2 MP stroke 151 0 3886 1224 2 MP stroke 242 0 3886 1229 2 MP stroke 107 0 3882 1233 2 MP stroke 147 0 3878 1237 2 MP stroke 171 0 3878 1241 2 MP stroke 194 0 3878 1246 2 MP stroke 179 0 3874 1250 2 MP stroke 115 0 3870 1254 2 MP stroke 242 0 3870 1258 2 MP stroke 262 0 3870 1262 2 MP stroke 103 0 3866 1267 2 MP stroke 214 0 3866 1271 2 MP stroke 254 0 3858 1275 2 MP stroke 218 0 3850 1279 2 MP stroke 72 0 3838 1284 2 MP stroke 187 0 3834 1288 2 MP stroke 163 0 3830 1292 2 MP stroke 127 0 3826 1296 2 MP stroke 79 0 3815 1300 2 MP stroke 111 0 3815 1305 2 MP stroke 35 0 3807 1309 2 MP stroke 123 0 3791 1313 2 MP stroke 226 0 3787 1317 2 MP stroke 71 0 3779 1322 2 MP stroke 99 0 3779 1326 2 MP stroke 313 0 3779 1330 2 MP stroke 91 0 3775 1334 2 MP stroke 174 0 3775 1338 2 MP stroke 111 0 3767 1343 2 MP stroke 107 0 3763 1347 2 MP stroke 155 0 3763 1351 2 MP stroke 187 0 3755 1355 2 MP stroke 222 0 3755 1360 2 MP stroke 95 0 3739 1364 2 MP stroke 147 0 3739 1368 2 MP stroke 123 0 3735 1372 2 MP stroke 68 0 3731 1376 2 MP stroke 88 0 3727 1381 2 MP stroke 80 0 3715 1385 2 MP stroke 131 0 3715 1389 2 MP stroke 44 0 3711 1393 2 MP stroke 96 0 3711 1398 2 MP stroke 183 0 3711 1402 2 MP stroke 147 0 3707 1406 2 MP stroke 278 0 3707 1410 2 MP stroke 123 0 3699 1414 2 MP stroke 139 0 3699 1419 2 MP stroke 207 0 3699 1423 2 MP stroke 31 0 3696 1427 2 MP stroke 55 0 3696 1431 2 MP stroke 99 0 3692 1436 2 MP stroke 115 0 3692 1440 2 MP stroke 91 0 3688 1444 2 MP stroke 206 0 3688 1448 2 MP stroke 115 0 3684 1452 2 MP stroke 127 0 3684 1457 2 MP stroke 75 0 3668 1461 2 MP stroke 95 0 3668 1465 2 MP stroke 178 0 3668 1469 2 MP stroke 83 0 3664 1473 2 MP stroke 143 0 3664 1478 2 MP stroke 39 0 3660 1482 2 MP stroke 79 0 3660 1486 2 MP stroke 95 0 3660 1490 2 MP stroke 131 0 3660 1495 2 MP stroke 139 0 3660 1499 2 MP stroke 159 0 3660 1503 2 MP stroke 99 0 3656 1507 2 MP stroke 135 0 3656 1511 2 MP stroke 143 0 3656 1516 2 MP stroke 159 0 3652 1520 2 MP stroke 67 0 3644 1524 2 MP stroke 139 0 3644 1528 2 MP stroke 95 0 3640 1533 2 MP stroke 107 0 3640 1537 2 MP stroke 60 0 3636 1541 2 MP stroke 198 0 3636 1545 2 MP stroke 60 0 3632 1549 2 MP stroke 91 0 3632 1554 2 MP stroke 12 0 3624 1558 2 MP stroke 147 0 3624 1562 2 MP stroke 222 0 3624 1566 2 MP stroke 278 0 3620 1571 2 MP stroke 139 0 3604 1575 2 MP stroke 151 0 3600 1579 2 MP stroke 183 0 3600 1583 2 MP stroke 44 0 3588 1587 2 MP stroke 171 0 3588 1592 2 MP stroke 147 0 3580 1596 2 MP stroke 159 0 3580 1600 2 MP stroke 246 0 3580 1604 2 MP stroke 60 0 3576 1609 2 MP stroke 219 0 3576 1613 2 MP stroke 55 0 3573 1617 2 MP stroke 15 0 3569 1621 2 MP stroke 135 0 3561 1625 2 MP stroke 158 0 3561 1630 2 MP stroke 166 0 3561 1634 2 MP stroke 63 0 3557 1638 2 MP stroke 107 0 3553 1642 2 MP stroke 198 0 3553 1647 2 MP stroke 226 0 3549 1651 2 MP stroke 28 0 3545 1655 2 MP stroke 234 0 3541 1659 2 MP stroke 40 0 3533 1663 2 MP stroke 79 0 3533 1668 2 MP stroke 115 0 3533 1672 2 MP stroke 139 0 3533 1676 2 MP stroke 91 0 3525 1680 2 MP stroke 103 0 3525 1685 2 MP stroke 48 0 3521 1689 2 MP stroke 67 0 3521 1693 2 MP stroke 79 0 3517 1697 2 MP stroke 123 0 3513 1701 2 MP stroke 56 0 3509 1706 2 MP stroke 111 0 3509 1710 2 MP stroke 163 0 3509 1714 2 MP stroke 139 0 3505 1718 2 MP stroke 36 0 3501 1723 2 MP stroke 230 0 3501 1727 2 MP stroke 76 0 3489 1731 2 MP stroke 103 0 3485 1735 2 MP stroke 226 0 3485 1739 2 MP stroke 143 0 3481 1744 2 MP stroke 159 0 3481 1748 2 MP stroke 171 0 3481 1752 2 MP stroke 99 0 3477 1756 2 MP stroke 103 0 3473 1761 2 MP stroke 175 0 3473 1765 2 MP stroke 111 0 3469 1769 2 MP stroke 127 0 3465 1773 2 MP stroke 207 0 3457 1777 2 MP stroke 67 0 3454 1782 2 MP stroke 107 0 3450 1786 2 MP stroke 142 0 3450 1790 2 MP stroke 150 0 3450 1794 2 MP stroke 170 0 3450 1799 2 MP stroke 198 0 3450 1803 2 MP stroke 35 0 3438 1807 2 MP stroke 123 0 3438 1811 2 MP stroke 170 0 3438 1815 2 MP stroke 43 0 3434 1820 2 MP stroke 79 0 3434 1824 2 MP stroke 174 0 3434 1828 2 MP stroke 115 0 3430 1832 2 MP stroke 115 0 3430 1837 2 MP stroke 91 0 3426 1841 2 MP stroke 135 0 3426 1845 2 MP stroke 218 0 3422 1849 2 MP stroke 218 0 3422 1853 2 MP stroke 87 0 3418 1858 2 MP stroke 67 0 3414 1862 2 MP stroke 103 0 3414 1866 2 MP stroke 119 0 3414 1870 2 MP stroke 87 0 3406 1875 2 MP stroke 143 0 3402 1879 2 MP stroke 107 0 3398 1883 2 MP stroke 210 0 3398 1887 2 MP stroke 36 0 3394 1891 2 MP stroke 127 0 3386 1896 2 MP stroke 75 0 3382 1900 2 MP stroke 95 0 3382 1904 2 MP stroke 103 0 3382 1908 2 MP stroke 52 0 3378 1913 2 MP stroke 179 0 3378 1917 2 MP stroke 80 0 3374 1921 2 MP stroke 139 0 3370 1925 2 MP stroke 147 0 3366 1929 2 MP stroke 40 0 3362 1934 2 MP stroke 147 0 3362 1938 2 MP stroke 28 0 3358 1942 2 MP stroke 171 0 3350 1946 2 MP stroke 64 0 3346 1951 2 MP stroke 72 0 3346 1955 2 MP stroke 163 0 3346 1959 2 MP stroke 139 0 3342 1963 2 MP stroke 227 0 3338 1967 2 MP stroke 84 0 3334 1972 2 MP stroke 91 0 3331 1976 2 MP stroke 142 0 3331 1980 2 MP stroke 103 0 3327 1984 2 MP stroke 123 0 3323 1989 2 MP stroke 67 0 3319 1993 2 MP stroke 91 0 3315 1997 2 MP stroke 115 0 3315 2001 2 MP stroke 71 0 3311 2005 2 MP stroke 51 0 3307 2010 2 MP stroke 131 0 3307 2014 2 MP stroke 139 0 3307 2018 2 MP stroke 178 0 3307 2022 2 MP stroke 79 0 3303 2027 2 MP stroke 115 0 3303 2031 2 MP stroke 127 0 3299 2035 2 MP stroke 147 0 3299 2039 2 MP stroke 151 0 3299 2043 2 MP stroke 155 0 3299 2048 2 MP stroke 107 0 3295 2052 2 MP stroke 155 0 3295 2056 2 MP stroke 182 0 3291 2060 2 MP stroke 28 0 3283 2065 2 MP stroke 63 0 3279 2069 2 MP stroke 16 0 3275 2073 2 MP stroke 131 0 3275 2077 2 MP stroke 36 0 3271 2081 2 MP stroke 60 0 3267 2086 2 MP stroke 99 0 3267 2090 2 MP stroke 159 0 3267 2094 2 MP stroke 91 0 3259 2098 2 MP stroke 163 0 3259 2103 2 MP stroke 68 0 3255 2107 2 MP stroke 87 0 3255 2111 2 MP stroke 95 0 3255 2115 2 MP stroke 48 0 3251 2119 2 MP stroke 56 0 3251 2124 2 MP stroke 91 0 3251 2128 2 MP stroke 163 0 3247 2132 2 MP stroke 88 0 3239 2136 2 MP stroke 76 0 3235 2141 2 MP stroke 111 0 3235 2145 2 MP stroke 115 0 3231 2149 2 MP stroke 28 0 3227 2153 2 MP stroke 96 0 3227 2157 2 MP stroke 96 0 3227 2162 2 MP stroke 100 0 3227 2166 2 MP stroke 119 0 3227 2170 2 MP stroke 64 0 3219 2174 2 MP stroke 88 0 3219 2179 2 MP stroke 96 0 3215 2183 2 MP stroke 35 0 3208 2187 2 MP stroke 95 0 3208 2191 2 MP stroke 35 0 3204 2195 2 MP stroke 130 0 3204 2200 2 MP stroke 142 0 3192 2204 2 MP stroke 123 0 3188 2208 2 MP stroke 51 0 3180 2212 2 MP stroke 214 0 3180 2217 2 MP stroke 55 0 3176 2221 2 MP stroke 75 0 3172 2225 2 MP stroke 24 0 3168 2229 2 MP stroke 28 0 3168 2233 2 MP stroke 91 0 3168 2238 2 MP stroke 47 0 3164 2242 2 MP stroke 51 0 3164 2246 2 MP stroke 12 0 3160 2250 2 MP stroke 48 0 3156 2255 2 MP stroke 99 0 3156 2259 2 MP stroke 36 0 3152 2263 2 MP stroke 24 0 3148 2267 2 MP stroke 67 0 3148 2271 2 MP stroke 67 0 3144 2276 2 MP stroke 119 0 3144 2280 2 MP stroke 147 0 3144 2284 2 MP stroke 48 0 3140 2288 2 MP stroke 60 0 3140 2293 2 MP stroke 95 0 3140 2297 2 MP stroke 111 0 3140 2301 2 MP stroke 163 0 3140 2305 2 MP stroke 64 0 3136 2309 2 MP stroke 99 0 3136 2314 2 MP stroke 119 0 3136 2318 2 MP stroke 147 0 3136 2322 2 MP stroke 179 0 3136 2326 2 MP stroke 60 0 3132 2331 2 MP stroke 64 0 3132 2335 2 MP stroke 95 0 3128 2339 2 MP stroke 187 0 3128 2343 2 MP stroke 195 0 3128 2347 2 MP stroke 91 0 3120 2352 2 MP stroke 95 0 3120 2356 2 MP stroke 103 0 3120 2360 2 MP stroke 151 0 3120 2364 2 MP stroke 171 0 3120 2369 2 MP stroke 76 0 3116 2373 2 MP stroke 52 0 3112 2377 2 MP stroke 84 0 3112 2381 2 MP stroke 183 0 3112 2385 2 MP stroke 84 0 3108 2390 2 MP stroke 103 0 3108 2394 2 MP stroke 135 0 3100 2398 2 MP stroke 16 0 3096 2402 2 MP stroke 72 0 3092 2407 2 MP stroke 47 0 3089 2411 2 MP stroke 51 0 3089 2415 2 MP stroke 63 0 3089 2419 2 MP stroke 218 0 3089 2423 2 MP stroke 83 0 3085 2428 2 MP stroke 91 0 3077 2432 2 MP stroke 107 0 3077 2436 2 MP stroke 99 0 3073 2440 2 MP stroke 158 0 3073 2445 2 MP stroke 51 0 3069 2449 2 MP stroke 119 0 3069 2453 2 MP stroke 55 0 3065 2457 2 MP stroke 83 0 3065 2461 2 MP stroke 35 0 3061 2466 2 MP stroke 47 0 3057 2470 2 MP stroke 59 0 3049 2474 2 MP stroke 135 0 3049 2478 2 MP stroke 139 0 3049 2483 2 MP stroke 83 0 3045 2487 2 MP stroke 87 0 3037 2491 2 MP stroke 95 0 3037 2495 2 MP stroke 111 0 3037 2499 2 MP stroke 143 0 3037 2504 2 MP stroke 91 0 3033 2508 2 MP stroke 95 0 3025 2512 2 MP stroke 79 0 3021 2516 2 MP stroke 202 0 3013 2520 2 MP stroke 80 0 3009 2525 2 MP stroke 87 0 3009 2529 2 MP stroke 111 0 3009 2533 2 MP stroke 123 0 3005 2537 2 MP stroke 175 0 3005 2542 2 MP stroke 16 0 3001 2546 2 MP stroke 167 0 3001 2550 2 MP stroke 28 0 2997 2554 2 MP stroke 111 0 2997 2558 2 MP stroke 72 0 2989 2563 2 MP stroke 175 0 2985 2567 2 MP stroke 36 0 2981 2571 2 MP stroke 72 0 2981 2575 2 MP stroke 167 0 2981 2580 2 MP stroke 36 0 2973 2584 2 MP stroke 7 0 2966 2588 2 MP stroke 67 0 2966 2592 2 MP stroke 79 0 2966 2596 2 MP stroke 43 0 2962 2601 2 MP stroke 59 0 2962 2605 2 MP stroke 182 0 2962 2609 2 MP stroke 186 0 2962 2613 2 MP stroke 87 0 2950 2618 2 MP stroke 103 0 2946 2622 2 MP stroke 12 0 2942 2626 2 MP stroke 103 0 2942 2630 2 MP stroke 147 0 2942 2634 2 MP stroke 91 0 2938 2639 2 MP stroke 103 0 2938 2643 2 MP stroke 115 0 2938 2647 2 MP stroke 95 0 2934 2651 2 MP stroke 24 0 2930 2656 2 MP stroke 24 0 2930 2660 2 MP stroke 24 0 2930 2664 2 MP stroke 83 0 2926 2668 2 MP stroke 107 0 2926 2672 2 MP stroke 67 0 2922 2677 2 MP stroke 71 0 2922 2681 2 MP stroke 99 0 2922 2685 2 MP stroke 20 0 2918 2689 2 MP stroke 95 0 2910 2694 2 MP stroke 103 0 2910 2698 2 MP stroke 79 0 2906 2702 2 MP stroke 115 0 2906 2706 2 MP stroke 12 0 2902 2710 2 MP stroke 119 0 2902 2715 2 MP stroke 119 0 2902 2719 2 MP stroke 131 0 2902 2723 2 MP stroke 135 0 2902 2727 2 MP stroke 111 0 2898 2732 2 MP stroke 107 0 2894 2736 2 MP stroke 163 0 2894 2740 2 MP stroke 48 0 2890 2744 2 MP stroke 48 0 2890 2748 2 MP stroke 159 0 2890 2753 2 MP stroke 87 0 2886 2757 2 MP stroke 103 0 2886 2761 2 MP stroke 16 0 2882 2765 2 MP stroke 99 0 2878 2770 2 MP stroke 56 0 2874 2774 2 MP stroke 36 0 2862 2778 2 MP stroke 48 0 2854 2782 2 MP stroke 167 0 2850 2786 2 MP stroke 48 0 2846 2791 2 MP stroke 135 0 2846 2795 2 MP stroke 167 0 2846 2799 2 MP stroke 123 0 2843 2803 2 MP stroke 107 0 2839 2808 2 MP stroke 123 0 2839 2812 2 MP stroke 127 0 2839 2816 2 MP stroke 51 0 2831 2820 2 MP stroke 71 0 2831 2824 2 MP stroke 115 0 2831 2829 2 MP stroke 67 0 2819 2833 2 MP stroke 158 0 2819 2837 2 MP stroke 75 0 2815 2841 2 MP stroke 99 0 2815 2846 2 MP stroke 111 0 2811 2850 2 MP stroke 55 0 2803 2854 2 MP stroke 55 0 2799 2858 2 MP stroke 131 0 2799 2862 2 MP stroke 87 0 2795 2867 2 MP stroke 63 0 2787 2871 2 MP stroke 123 0 2787 2875 2 MP stroke 63 0 2783 2879 2 MP stroke 79 0 2783 2884 2 MP stroke 95 0 2783 2888 2 MP stroke 103 0 2783 2892 2 MP stroke 115 0 2783 2896 2 MP stroke 155 0 2783 2900 2 MP stroke 32 0 2779 2905 2 MP stroke 60 0 2779 2909 2 MP stroke 71 0 2779 2913 2 MP stroke 71 0 2779 2917 2 MP stroke 72 0 2771 2922 2 MP stroke 72 0 2771 2926 2 MP stroke 87 0 2771 2930 2 MP stroke 91 0 2771 2934 2 MP stroke 115 0 2771 2938 2 MP stroke 87 0 2767 2943 2 MP stroke 103 0 2767 2947 2 MP stroke 131 0 2767 2951 2 MP stroke 143 0 2767 2955 2 MP stroke 76 0 2763 2960 2 MP stroke 80 0 2763 2964 2 MP stroke 171 0 2763 2968 2 MP stroke 28 0 2759 2972 2 MP stroke 52 0 2759 2976 2 MP stroke 56 0 2759 2981 2 MP stroke 64 0 2759 2985 2 MP stroke 203 0 2759 2989 2 MP stroke 28 0 2751 2993 2 MP stroke 44 0 2751 2998 2 MP stroke 127 0 2747 3002 2 MP stroke 52 0 2743 3006 2 MP stroke 84 0 2743 3010 2 MP stroke 80 0 2739 3014 2 MP stroke 111 0 2739 3019 2 MP stroke 131 0 2739 3023 2 MP stroke 64 0 2735 3027 2 MP stroke 159 0 2727 3031 2 MP stroke 47 0 2724 3036 2 MP stroke 79 0 2724 3040 2 MP stroke 83 0 2724 3044 2 MP stroke 31 0 2720 3048 2 MP stroke 31 0 2720 3052 2 MP stroke 35 0 2720 3057 2 MP stroke 119 0 2720 3061 2 MP stroke 111 0 2716 3065 2 MP stroke 119 0 2716 3069 2 MP stroke 134 0 2712 3074 2 MP stroke 23 0 2708 3078 2 MP stroke 131 0 2704 3082 2 MP stroke 166 0 2704 3086 2 MP stroke 166 0 2700 3090 2 MP stroke 35 0 2696 3095 2 MP stroke 67 0 2696 3099 2 MP stroke 83 0 2696 3103 2 MP stroke 103 0 2696 3107 2 MP stroke 16 0 2692 3112 2 MP stroke 20 0 2692 3116 2 MP stroke 51 0 2692 3120 2 MP stroke 83 0 2692 3124 2 MP stroke 178 0 2692 3128 2 MP stroke 111 0 2688 3133 2 MP stroke 174 0 2684 3137 2 MP stroke 44 0 2680 3141 2 MP stroke 79 0 2680 3145 2 MP stroke 32 0 2676 3150 2 MP stroke 44 0 2676 3154 2 MP stroke 75 0 2676 3158 2 MP stroke 87 0 2676 3162 2 MP stroke 182 0 2676 3166 2 MP stroke 83 0 2668 3171 2 MP stroke 28 0 2664 3175 2 MP stroke 79 0 2664 3179 2 MP stroke 83 0 2664 3183 2 MP stroke 206 0 2664 3188 2 MP stroke 20 0 2656 3192 2 MP stroke 68 0 2656 3196 2 MP stroke 36 0 2648 3200 2 MP stroke 56 0 2648 3204 2 MP stroke 99 0 2648 3209 2 MP stroke 64 0 2644 3213 2 MP stroke 139 0 2644 3217 2 MP stroke 111 0 2636 3221 2 MP stroke 119 0 2632 3226 2 MP stroke 60 0 2628 3230 2 MP stroke 68 0 2624 3234 2 MP stroke 72 0 2624 3238 2 MP stroke 100 0 2624 3242 2 MP stroke 115 0 2624 3247 2 MP stroke 119 0 2624 3251 2 MP stroke 48 0 2620 3255 2 MP stroke 104 0 2620 3259 2 MP stroke 119 0 2620 3264 2 MP stroke 36 0 2616 3268 2 MP stroke 44 0 2616 3272 2 MP stroke 76 0 2616 3276 2 MP stroke 68 0 2608 3280 2 MP stroke 116 0 2608 3285 2 MP stroke 282 0 2608 3289 2 MP stroke 36 0 2604 3293 2 MP stroke 88 0 2604 3297 2 MP stroke 15 0 2601 3302 2 MP stroke 59 0 2601 3306 2 MP stroke 119 0 2601 3310 2 MP stroke 162 0 2601 3314 2 MP stroke 51 0 2597 3318 2 MP stroke 67 0 2597 3323 2 MP stroke 63 0 2593 3327 2 MP stroke 87 0 2593 3331 2 MP stroke 868 0 2589 3335 2 MP stroke 87 0 2585 3340 2 MP stroke 158 0 2585 3344 2 MP stroke 150 0 2577 3348 2 MP stroke 71 0 2573 3352 2 MP stroke 47 0 2565 3356 2 MP stroke 111 0 2561 3361 2 MP stroke 103 0 2557 3365 2 MP stroke 55 0 2553 3369 2 MP stroke 79 0 2553 3373 2 MP stroke 79 0 2549 3378 2 MP stroke 40 0 2545 3382 2 MP stroke 48 0 2541 3386 2 MP stroke 75 0 2541 3390 2 MP stroke 40 0 2537 3394 2 MP stroke 44 0 2537 3399 2 MP stroke 147 0 2533 3403 2 MP stroke 44 0 2525 3407 2 MP stroke 72 0 2517 3411 2 MP stroke 159 0 2513 3416 2 MP stroke 107 0 2509 3420 2 MP stroke 179 0 2505 3424 2 MP stroke 52 0 2497 3428 2 MP stroke 44 0 2493 3432 2 MP stroke 52 0 2489 3437 2 MP stroke 40 0 2485 3441 2 MP stroke 116 0 2485 3445 2 MP stroke 187 0 2485 3449 2 MP stroke 39 0 2478 3454 2 MP stroke 43 0 2478 3458 2 MP stroke 91 0 2478 3462 2 MP stroke 27 0 2474 3466 2 MP stroke 87 0 2474 3470 2 MP stroke 166 0 2470 3475 2 MP stroke 59 0 2458 3479 2 MP stroke 47 0 2454 3483 2 MP stroke 95 0 2454 3487 2 MP stroke 182 0 2454 3492 2 MP stroke 43 0 2450 3496 2 MP stroke 36 0 2438 3500 2 MP stroke 79 0 2434 3504 2 MP stroke 83 0 2434 3508 2 MP stroke 83 0 2422 3513 2 MP stroke 40 0 2418 3517 2 MP stroke 99 0 2418 3521 2 MP stroke 52 0 2414 3525 2 MP stroke 52 0 2402 3530 2 MP stroke 64 0 2402 3534 2 MP stroke 87 0 2402 3538 2 MP stroke 80 0 2398 3542 2 MP stroke 20 0 2390 3546 2 MP stroke 44 0 2390 3551 2 MP stroke 127 0 2390 3555 2 MP stroke 92 0 2386 3559 2 MP stroke 104 0 2374 3563 2 MP stroke 143 0 2366 3567 2 MP stroke 56 0 2362 3572 2 MP stroke 60 0 2362 3576 2 MP stroke 68 0 2362 3580 2 MP stroke 119 0 2355 3584 2 MP stroke 55 0 2347 3589 2 MP stroke 107 0 2347 3593 2 MP stroke 51 0 2343 3597 2 MP stroke 115 0 2343 3601 2 MP stroke 95 0 2339 3605 2 MP stroke 75 0 2331 3610 2 MP stroke 170 0 2327 3614 2 MP stroke 36 0 2323 3618 2 MP stroke 47 0 2323 3622 2 MP stroke 47 0 2323 3627 2 MP stroke 91 0 2323 3631 2 MP stroke 95 0 2323 3635 2 MP stroke 147 0 2323 3639 2 MP stroke 75 0 2319 3643 2 MP stroke 178 0 2311 3648 2 MP stroke 40 0 2303 3652 2 MP stroke 48 0 2303 3656 2 MP stroke 99 0 2299 3660 2 MP stroke 111 0 2299 3665 2 MP stroke 87 0 2295 3669 2 MP stroke 115 0 2295 3673 2 MP stroke 68 0 2291 3677 2 MP stroke 68 0 2291 3681 2 MP stroke 135 0 2291 3686 2 MP stroke 72 0 2287 3690 2 MP stroke 107 0 2287 3694 2 MP stroke 36 0 2283 3698 2 MP stroke 56 0 2283 3703 2 MP stroke 56 0 2279 3707 2 MP stroke 127 0 2279 3711 2 MP stroke 36 0 2275 3715 2 MP stroke 32 0 2271 3719 2 MP stroke 95 0 2271 3724 2 MP stroke 80 0 2255 3728 2 MP stroke 107 0 2255 3732 2 MP stroke 111 0 2251 3736 2 MP stroke 68 0 2247 3741 2 MP stroke 80 0 2247 3745 2 MP stroke 80 0 2247 3749 2 MP stroke 44 0 2243 3753 2 MP stroke 100 0 2243 3757 2 MP stroke 111 0 2236 3762 2 MP stroke 91 0 2232 3766 2 MP stroke 39 0 2224 3770 2 MP stroke 87 0 2224 3774 2 MP stroke 142 0 2224 3779 2 MP stroke 107 0 2220 3783 2 MP stroke 119 0 2208 3787 2 MP stroke 143 0 2204 3791 2 MP stroke 123 0 2200 3795 2 MP stroke 51 0 2196 3800 2 MP stroke 115 0 2196 3804 2 MP stroke 159 0 2196 3808 2 MP stroke 103 0 2192 3812 2 MP stroke 171 0 2180 3817 2 MP stroke 123 0 2176 3821 2 MP stroke 75 0 2168 3825 2 MP stroke 40 0 2164 3829 2 MP stroke 75 0 2164 3833 2 MP stroke 76 0 2152 3838 2 MP stroke 4 0 2148 3842 2 MP stroke 52 0 2148 3846 2 MP stroke 72 0 2144 3850 2 MP stroke 108 0 2128 3855 2 MP stroke 40 0 2124 3859 2 MP stroke 68 0 2120 3863 2 MP stroke 32 0 2116 3867 2 MP stroke 80 0 2116 3871 2 MP stroke 75 0 2097 3876 2 MP stroke 75 0 2093 3880 2 MP stroke 31 0 2085 3884 2 MP stroke 123 0 2081 3888 2 MP stroke 24 0 2077 3893 2 MP stroke 20 0 2073 3897 2 MP stroke 99 0 2073 3901 2 MP stroke 44 0 2069 3905 2 MP stroke 75 0 2069 3909 2 MP stroke 12 0 2061 3914 2 MP stroke 40 0 2061 3918 2 MP stroke 63 0 2061 3922 2 MP stroke 48 0 2057 3926 2 MP stroke 60 0 2053 3931 2 MP stroke 95 0 2053 3935 2 MP stroke 36 0 2049 3939 2 MP stroke 36 0 2049 3943 2 MP stroke 83 0 2049 3947 2 MP stroke 79 0 2045 3952 2 MP stroke 36 0 2041 3956 2 MP stroke 56 0 2041 3960 2 MP stroke 48 0 2033 3964 2 MP stroke 139 0 2033 3969 2 MP stroke 119 0 2029 3973 2 MP stroke 123 0 2029 3977 2 MP stroke 56 0 2025 3981 2 MP stroke 103 0 2025 3985 2 MP stroke 127 0 2021 3990 2 MP stroke 44 0 2017 3994 2 MP stroke 107 0 2017 3998 2 MP stroke 119 0 2005 4002 2 MP stroke 131 0 2001 4007 2 MP stroke 163 0 1997 4011 2 MP stroke 51 0 1994 4015 2 MP stroke 43 0 1982 4019 2 MP stroke 63 0 1982 4023 2 MP stroke 19 0 1978 4028 2 MP stroke 103 0 1978 4032 2 MP stroke 43 0 1974 4036 2 MP stroke 103 0 1970 4040 2 MP stroke 123 0 1966 4045 2 MP stroke 28 0 1962 4049 2 MP stroke 20 0 1958 4053 2 MP stroke 83 0 1958 4057 2 MP stroke 51 0 1954 4061 2 MP stroke 95 0 1954 4066 2 MP stroke 36 0 1950 4070 2 MP stroke 32 0 1942 4074 2 MP stroke 75 0 1934 4078 2 MP stroke 60 0 1922 4083 2 MP stroke 40 0 1914 4087 2 MP stroke 72 0 1914 4091 2 MP stroke 107 0 1906 4095 2 MP stroke 36 0 1898 4099 2 MP stroke 20 0 1894 4104 2 MP stroke 24 0 1894 4108 2 MP stroke 92 0 1890 4112 2 MP stroke 72 0 1882 4116 2 MP stroke 36 0 1878 4121 2 MP stroke 48 0 1878 4125 2 MP stroke 92 0 1878 4129 2 MP stroke 92 0 1878 4133 2 MP stroke 20 0 1874 4137 2 MP stroke 48 0 1874 4142 2 MP stroke 96 0 1874 4146 2 MP stroke 91 0 1867 4150 2 MP stroke 123 0 1867 4154 2 MP stroke 83 0 1859 4159 2 MP stroke 107 0 1859 4163 2 MP stroke 59 0 1855 4167 2 MP stroke 20 0 1851 4171 2 MP stroke 35 0 1851 4175 2 MP stroke 75 0 1851 4180 2 MP stroke 95 0 1851 4184 2 MP stroke 12 0 1843 4188 2 MP stroke 75 0 1843 4192 2 MP stroke 95 0 1843 4197 2 MP stroke 32 0 1839 4201 2 MP stroke 71 0 1835 4205 2 MP stroke 147 0 1835 4209 2 MP stroke 1857 0 1835 4213 2 MP stroke 44 0 1827 4218 2 MP stroke 63 0 1827 4222 2 MP stroke 83 0 1823 4226 2 MP stroke 16 0 1819 4230 2 MP stroke 87 0 1819 4235 2 MP stroke 24 0 1815 4239 2 MP stroke 63 0 1811 4243 2 MP stroke 60 0 1807 4247 2 MP stroke 147 0 1803 4251 2 MP stroke 87 0 1795 4256 2 MP stroke 44 0 1791 4260 2 MP stroke 44 0 1787 4264 2 MP stroke 24 0 1779 4268 2 MP stroke 68 0 1779 4273 2 MP stroke 2476 0 1775 4277 2 MP stroke 127 0 1755 4281 2 MP stroke 91 0 1744 4285 2 MP stroke 43 0 1728 4289 2 MP stroke 95 0 1720 4294 2 MP stroke 75 0 1716 4298 2 MP stroke 20 0 1700 4302 2 MP stroke 79 0 1692 4306 2 MP stroke 8 0 1688 4311 2 MP stroke 60 0 1684 4315 2 MP stroke 79 0 1684 4319 2 MP stroke 87 0 1680 4323 2 MP stroke 36 0 1668 4327 2 MP stroke 56 0 1664 4332 2 MP stroke 44 0 1652 4336 2 MP stroke 64 0 1644 4340 2 MP stroke 68 0 1632 4344 2 MP stroke 95 0 1629 4349 2 MP stroke 107 0 1621 4353 2 MP stroke 32 0 1597 4357 2 MP stroke 83 0 1585 4361 2 MP stroke 76 0 1549 4365 2 MP stroke 60 0 1533 4370 2 MP stroke 40 0 1517 4374 2 MP stroke 47 0 1506 4378 2 MP stroke 75 0 1506 4382 2 MP stroke 95 0 1506 4387 2 MP stroke 63 0 1502 4391 2 MP stroke 59 0 1490 4395 2 MP stroke 20 0 1474 4399 2 MP stroke 47 0 1470 4403 2 MP stroke 67 0 1466 4408 2 MP stroke 79 0 1462 4412 2 MP stroke 52 0 1450 4416 2 MP stroke 103 0 1438 4420 2 MP stroke 8 0 1434 4425 2 MP stroke 32 0 1430 4429 2 MP stroke 115 0 1430 4433 2 MP stroke 68 0 1418 4437 2 MP stroke 131 0 1418 4441 2 MP stroke 28 0 1406 4446 2 MP stroke 28 0 1398 4450 2 MP stroke 80 0 1394 4454 2 MP stroke 32 0 1390 4458 2 MP stroke 2266 0 1386 4463 2 MP stroke 43 0 1347 4467 2 MP stroke 32 0 1315 4471 2 MP stroke 32 0 1311 4475 2 MP stroke 24 0 1295 4479 2 MP stroke 48 0 1291 4484 2 MP stroke 12 0 1279 4488 2 MP stroke 52 0 1279 4492 2 MP stroke 39 0 1260 4496 2 MP stroke 83 0 1260 4501 2 MP stroke 27 0 1252 4505 2 MP stroke 43 0 1240 4509 2 MP stroke 8 0 1232 4513 2 MP stroke 47 0 1224 4517 2 MP stroke 16 0 1220 4522 2 MP stroke 75 0 1216 4526 2 MP stroke 32 0 1212 4530 2 MP stroke 83 0 1212 4534 2 MP stroke 68 0 1196 4539 2 MP stroke 99 0 1196 4543 2 MP stroke 68 0 1172 4547 2 MP stroke 72 0 1172 4551 2 MP stroke 44 0 1156 4555 2 MP stroke 83 0 1141 4560 2 MP stroke 75 0 1137 4564 2 MP stroke 39 0 1109 4568 2 MP stroke 119 0 1073 4572 2 MP stroke 91 0 1061 4577 2 MP stroke 159 0 1037 4581 2 MP stroke 103 0 966 4585 2 MP stroke 36 0 950 4589 2 MP stroke 56 0 942 4593 2 MP stroke 16 0 930 4598 2 MP stroke 24 0 922 4602 2 MP stroke 80 0 918 4606 2 MP stroke 5355 0 899 4610 2 MP stroke 6254 4610 PD gr gs 6181 4537 147 147 MR c np 0 j 0 82 -71 -41 71 -41 6230 4651 4 MP DP gr gs 899 389 5357 4227 MR c np gr 2050 294 mt (Barcodes for flattened multifiltered complex \(dimension 0\)) s end %%Color Dict eplot %%EndObject epage end showpage %%Trailer %%EOF ================================================ FILE: src/matlab/experimental/vietoris_rips_bootstrap/basic_circle_example.m ================================================ clc; clear; close all; num_samples = 7; sample_size = 40; max_dimension = 1; num_points = 10000; max_distance = 1.2; points = examples.PointCloudExamples.getRandomFigure8Points(num_points); bootstrapper = homology.zigzag.bootstrap.VietorisRipsBootstrapper(points, max_distance, max_dimension, num_samples, sample_size); barcodes = bootstrapper.performBootstrap(); %% label = 'figure-8'; transformer = homology.filtration.IdentityConverter.getInstance(); filtration_value_intervals = transformer.transform(barcodes); options.filename = sprintf('%s-barcodes', label); options.file_format = 'eps'; options.line_width = 2; options.caption = sprintf('Figure-8 (samples = %d, sample size = %d)', num_samples, sample_size); plot_barcodes(filtration_value_intervals, options); %% label = 'figure-8-vietoris-rips'; indices_0 = bootstrapper.getSubset(0) metric_space_0 = metric.impl.EuclideanMetricSpace(utility.ArrayUtility.getSubset(points, indices_0)); stream_0 = streams.impl.VietorisRipsStream(metric_space_0, max_distance, max_dimension + 1); stream_0.finalizeStream(); filename_0 = sprintf('%s-%d.pov', label, 0); create_pov_file(stream_0, metric_space_0, filename_0); render_pov_file(filename_0); for j = 1:(num_samples - 1) indices_1 = bootstrapper.getSubset(j) metric_space_1 = metric.impl.EuclideanMetricSpace(utility.ArrayUtility.getSubset(points, indices_1)); stream_1 = streams.impl.VietorisRipsStream(metric_space_1, max_distance, max_dimension + 1); stream_1.finalizeStream(); filename_1 = sprintf('%s-%d.pov', label, j); create_pov_file(stream_1, metric_space_1, filename_1); render_pov_file(filename_1); %{ indices_01 = utility.ArrayUtility.union(indices_0, indices_1); metric_space_01 = metric.impl.EuclideanMetricSpace(utility.ArrayUtility.getSubset(points, indices_01)); stream_01 = streams.impl.VietorisRipsStream(metric_space_01, max_distance, max_dimension + 1); stream_01.finalizeStream(); filename_01 = sprintf('%s-%d%d.pov', label, j-1, j); create_pov_file(stream_01, metric_space_01, filename_01); render_pov_file(filename_01); %} indices_0 = indices_1; end %% barcodes ================================================ FILE: src/matlab/experimental/vietoris_rips_bootstrap/basic_sphere_example.m ================================================ clc; clear; close all; num_samples = 4; sample_size = 40; max_dimension = 2; num_points = 10000; max_distance = 0.8; points = examples.PointCloudExamples.getRandomSpherePoints(num_points, max_dimension); bootstrapper = homology.zigzag.bootstrap.VietorisRipsBootstrapper(points, max_distance, max_dimension, num_samples, sample_size); barcodes = bootstrapper.performBootstrap() %% label = 'sphere-vietoris-rips'; transformer = homology.filtration.IdentityConverter.getInstance(); filtration_value_intervals = transformer.transform(barcodes); options.filename = sprintf('%s-barcodes', label); options.file_format = 'eps'; plot_barcodes(filtration_value_intervals, options); %% indices_0 = bootstrapper.getSubset(0) metric_space_0 = metric.impl.EuclideanMetricSpace(utility.ArrayUtility.getSubset(points, indices_0)); stream_0 = streams.impl.VietorisRipsStream(metric_space_0, max_distance, max_dimension + 1); stream_0.finalizeStream(); filename_0 = sprintf('%s-%d.pov', label, 0); create_pov_file(stream_0, metric_space_0, filename_0); render_pov_file(filename_0); for j = 1:(num_samples - 1) indices_1 = bootstrapper.getSubset(j) metric_space_1 = metric.impl.EuclideanMetricSpace(utility.ArrayUtility.getSubset(points, indices_1)); stream_1 = streams.impl.VietorisRipsStream(metric_space_1, max_distance, max_dimension + 1); stream_1.finalizeStream(); filename_1 = sprintf('%s-%d.pov', label, j); create_pov_file(stream_1, metric_space_1, filename_1); render_pov_file(filename_1); indices_01 = utility.ArrayUtility.union(indices_0, indices_1); metric_space_01 = metric.impl.EuclideanMetricSpace(utility.ArrayUtility.getSubset(points, indices_01)); stream_01 = streams.impl.VietorisRipsStream(metric_space_01, max_distance, max_dimension + 1); stream_01.finalizeStream(); filename_01 = sprintf('%s-%d%d.pov', label, j-1, j); create_pov_file(stream_01, metric_space_01, filename_01); render_pov_file(filename_01); indices_0 = indices_1; end %% barcodes ================================================ FILE: src/matlab/experimental/vietoris_rips_bootstrap/circle_incremental.m ================================================ clc; clear; close all; utility.RandomUtility.initializeWithSeed(5); n = 10000; max_sample_size = 82; increment_size = 1; initial_sample_size = 2; max_dimension = 1; max_filtration_value = 1.0; set = [1:n] - 1; sample_size = initial_sample_size; sample = []; points = examples.PointCloudExamples.getEquispacedCirclePoints(n); metricSpace = metric.impl.EuclideanMetricSpace(points); list = java.util.ArrayList; num_samples = 0; while (sample_size <= max_sample_size) sample = randsample(set, sample_size); list.add(int32(sample - 1)); num_samples = num_samples + 1; sample_size = sample_size + increment_size; end bootstrapper = homology.zigzag.bootstrap.VietorisRipsBootstrapper(points, max_filtration_value, max_dimension, list); barcodes = bootstrapper.performBootstrap(); %% transformer = homology.filtration.IdentityConverter.getInstance(); filtration_value_intervals = transformer.transform(barcodes); options.caption = sprintf('Incremental samples from random points on the unit circle (f_{max} = %2.3f)', max_filtration_value); options.filename = 'incremental-circle-barcodes'; options.file_format = 'eps'; options.min_dimension = 0; options.max_dimension = 1; options.line_width = 2; plot_barcodes(filtration_value_intervals, options); ================================================ FILE: src/matlab/experimental/vietoris_rips_bootstrap/circle_long.m ================================================ clc; clear; close all; num_samples = 101; sample_size = 5; max_dimension = 1; num_points = 10000; max_distance = 1.1; points = examples.PointCloudExamples.getRandomSpherePoints(num_points, max_dimension); %points = examples.PointCloudExamples.getRandomFigure8Points(num_points); bootstrapper = homology.zigzag.bootstrap.VietorisRipsBootstrapper(points, max_distance, max_dimension, num_samples, sample_size); barcodes = bootstrapper.performBootstrap() %% label = sprintf('circle-long-%d', max_distance * 10); transformer = homology.filtration.IdentityConverter.getInstance(); filtration_value_intervals = transformer.transform(barcodes); options.filename = sprintf('%s-barcodes', label); options.file_format = 'eps'; options.caption = sprintf('Circle samples, maximum filtration = %f', max_distance); options.line_width = 2; plot_barcodes(filtration_value_intervals, options); ================================================ FILE: src/matlab/experimental/vietoris_rips_bootstrap/coreSubset.m ================================================ function indices = coreSubset(densities, numPoints) % INPUT: % points - N x n matrix of N points in R^n % densities - vertical vector of length N whose i-th entry is the % estimated density of the i-th point. % numPoints - nonnegative integer less than or equal to N % % OUTPUT: % indices - numPoints x 1 matrix of the indices of the top numPoints densest % points (as ranked by densities) % % henrya@math.stanford.edu, with mods by atausz@stanford.edu [A,sortedDensityIndices] = sort(densities,'descend'); indices = sortedDensityIndices(1:numPoints); ================================================ FILE: src/matlab/experimental/vietoris_rips_bootstrap/core_subset_test.m ================================================ clc; clear; close all; k = 1; T = 20; label = 'primes'; points = primes(3571)'; indices = get_core_subset_cached(points, k, T, label); points(indices); indices = get_core_subset_cached(points, k, T + 10, label); points(indices); ================================================ FILE: src/matlab/experimental/vietoris_rips_bootstrap/core_verification_test.m ================================================ clc; clear; close all; path = '../../../../data/natural_images'; label = 'n50000Dct'; datafile = sprintf('%s/%s.mat', path, label); load(datafile, label); points = n50000Dct; cache_file_prefix = sprintf('%s/cached_density_ranks/%s', path, label); k = 300; T = 15000; indices = get_core_subset_cached(points, k, T, cache_file_prefix); path = '../../../../data/natural_images'; label = 'nk300c30Dct'; datafile = sprintf('%s/%s.mat', path, label); load(datafile, label); computed_core = points(indices, :); ================================================ FILE: src/matlab/experimental/vietoris_rips_bootstrap/ensure_density_indices.m ================================================ function ensure_density_indices(theta_values, dataset, filter_label, filter_function) import edu.stanford.math.plex4.*; datafile_path = get_data_file_path(dataset); load(datafile_path, dataset); point_cloud = eval(dataset); T = size(point_cloud, 1); T_cache = T; for theta = theta_values get_core_subset_cached(point_cloud, theta, T, filter_function, dataset, filter_label, T_cache); end end ================================================ FILE: src/matlab/experimental/vietoris_rips_bootstrap/figure_8_incremental.m ================================================ clc; clear; close all; utility.RandomUtility.initializeWithSeed(5); n = 10000; max_sample_size = 152; increment_size = 1; initial_sample_size = 2; max_dimension = 1; max_filtration_value = 1.0; set = [1:n] - 1; sample_size = initial_sample_size; sample = []; points = examples.PointCloudExamples.getRandomFigure8Points(n); metricSpace = metric.impl.EuclideanMetricSpace(points); list = java.util.ArrayList; num_samples = 0; while (sample_size <= max_sample_size) sample = randsample(set, sample_size); list.add(int32(sample)); num_samples = num_samples + 1; sample_size = sample_size + increment_size; end bootstrapper = homology.zigzag.bootstrap.VietorisRipsBootstrapper(points, max_filtration_value, max_dimension, list); barcodes = bootstrapper.performBootstrap(); %% transformer = homology.filtration.IdentityConverter.getInstance(); filtration_value_intervals = transformer.transform(barcodes); options.caption = sprintf('Incremental samples from random points on a figure-8 (f_{max} = %2.3f)', max_filtration_value); options.filename = 'incremental-figure-8-barcodes'; options.file_format = 'eps'; options.min_dimension = 0; options.max_dimension = 1; options.line_width = 2; plot_barcodes(filtration_value_intervals, options); ================================================ FILE: src/matlab/experimental/vietoris_rips_bootstrap/filtered_barcodes.m ================================================ function [barcodes, stream_size] = filtered_barcodes(dataset, filter_label, T, theta, S, max_filtration_value, filter_function, display_plot, use_sequential_maxmin) import edu.stanford.math.plex4.*; if (~exist('display_plot', 'var')) display_plot = true; end if (~exist('use_sequential_maxmin', 'var')) use_sequential_maxmin = true; end datafile_path = get_data_file_path(dataset); load(datafile_path, dataset); point_cloud = eval(dataset); dimension = 1; num_divisions = 1000; core_indices = get_core_subset_cached(point_cloud, theta, T, filter_function, dataset, filter_label); core_subset = point_cloud(core_indices, :); if (use_sequential_maxmin) landmark_selector = api.Plex4.createMaxMinSelector(core_subset, S); else landmark_selector = api.Plex4.createRandomSelector(core_subset, S); end sample_indices = landmark_selector.getLandmarkPoints() + 1; subsampled_core = core_subset(sample_indices, :); % create a Vietoris-Rips stream stream = api.Plex4.createVietorisRipsStream(subsampled_core, dimension + 1, max_filtration_value, num_divisions); stream_size = stream.getSize(); % get the default persistence algorithm persistence = api.Plex4.getDefaultSimplicialAlgorithm(dimension + 1); % compute intervals barcodes = persistence.computeIntervals(stream); options.file_format = 'png'; options.filename = sprintf('outputs/%s-%s-%f-%d-%1.3f.%s', dataset, filter_label, theta, T, max_filtration_value, options.file_format); options.caption = sprintf('Barcodes for VR(%s[theta=%f, T=%d], %2.3f) (S=%d)', dataset, theta, T, max_filtration_value, S); options.max_filtration_value = max_filtration_value; plot_barcodes(barcodes, options); if (~display_plot) close; end end ================================================ FILE: src/matlab/experimental/vietoris_rips_bootstrap/filtered_bootstrap.m ================================================ function [barcodes, indices] = filtered_bootstrap(dataset, filter_label, T, theta_values, S, max_filtration_value, filter_function, display_plot, use_sequential_maxmin) import edu.stanford.math.plex4.*; if (~exist('use_sequential_maxmin', 'var')) use_sequential_maxmin = true; end if (~exist('display_plot', 'var')) display_plot = true; end datafile_path = get_data_file_path(dataset); load(datafile_path, dataset); point_cloud = eval(dataset); max_dimension = 1; indices_cell_array = zeros(length(theta_values), S); i = 1; for theta = theta_values core_indices = get_core_subset_cached(point_cloud, theta, T, filter_function, dataset, filter_label); core_subset = point_cloud(core_indices, :); utility.RandomUtility.initializeWithSeed(0); if (use_sequential_maxmin) landmark_selector = api.Plex4.createMaxMinSelector(core_subset, S); else landmark_selector = api.Plex4.createRandomSelector(core_subset, S); end sample_indices = (landmark_selector.getLandmarkPoints() + 1); indices_cell_array(i, :) = core_indices(sample_indices); indices_cell_array(i, :) = utility.ArrayUtility.makeMonotone(indices_cell_array(i, :)); i = i + 1; end theta_min = min(theta_values); theta_max = max(theta_values); list = java.util.ArrayList(); for i = 1:length(theta_values) indices = int32(indices_cell_array(i, :) - 1); list.add(indices); end bootstrapper = homology.zigzag.bootstrap.VietorisRipsBootstrapper(point_cloud, max_filtration_value, max_dimension, list); barcodes = bootstrapper.performBootstrap(); transformer = homology.filtration.IdentityConverter.getInstance(); filtration_value_intervals = transformer.transform(barcodes); options.file_format = 'eps'; options.filename = sprintf('outputs/%s-%s-samples-%1.3f-%1.3f-%d-%d-%1.3f.%s', dataset, filter_label, theta_min, theta_max, T, S, max_filtration_value, options.file_format); options.caption = sprintf('Bootstrap for %s with %s filter: theta_{min} = %1.3f, theta_{max} = %1.3f, T = %d, S = %d', dataset, filter_label, theta_min, theta_max, T, S); plot_barcodes(filtration_value_intervals, options); if (~display_plot) close; end indices = indices_cell_array; end ================================================ FILE: src/matlab/experimental/vietoris_rips_bootstrap/gaussian_kernel_densities.m ================================================ function densities = gaussian_kernel_densities(points, reference_points, sigma) n = size(points, 1); densities = zeros(n, 1); for i = 1:n densities(i) = gaussian_kernel_density(points(i, :), reference_points, sigma); end end ================================================ FILE: src/matlab/experimental/vietoris_rips_bootstrap/gaussian_kernel_density.m ================================================ function density = gaussian_kernel_density(x, points, sigma) n = size(points, 1); dimension = size(points, 2); multiplier = (sigma * sqrt(2 * pi)) ^ (-dimension); exp_multiplier = -1 / (2 * sigma * sigma); squared_difference = (repmat(x, n, 1) - points) .^ 2; exp_factor = sum(exp(exp_multiplier * sum(squared_difference, 2))); density = multiplier * exp_factor / n; end ================================================ FILE: src/matlab/experimental/vietoris_rips_bootstrap/get_cache_file_path.m ================================================ function file_path = get_cache_file_path(dataset, filter_label, theta) path = '../../../../data/natural_images'; cache_file_prefix = sprintf('%s/cached_density_ranks/%s-%s', path, dataset, filter_label); file_path = sprintf('%s-indices-%f.mat', cache_file_prefix, theta); end ================================================ FILE: src/matlab/experimental/vietoris_rips_bootstrap/get_core_subset_cached.m ================================================ function indices = get_core_subset_cached(points, theta, T, filter_function, dataset, filter_label, T_cache) num_points = size(points, 1); filename = get_cache_file_path(dataset, filter_label, theta); if (exist(filename, 'file')) load (filename, 'indices'); if (length(indices) >= T) indices = indices(1:T); display(sprintf('get_core_subset_cached: Retrieved %d indices for k=%f from file %s', T, theta, filename)); return; end end if (~exist('T_cache')) T_cache = min(num_points, T * 3); end filtration_values = filter_function(points, theta); indices = coreSubset(filtration_values, T_cache); save(filename, 'indices'); display(sprintf('get_core_subset_cached: Cached %d indices for k=%f in file %s', T_cache, theta, filename)); indices = indices(1:T); end ================================================ FILE: src/matlab/experimental/vietoris_rips_bootstrap/get_data_file_path.m ================================================ function file_path = get_data_file_path(dataset) path = '../../../../data/natural_images'; file_path = sprintf('%s/%s.mat', path, dataset); end ================================================ FILE: src/matlab/experimental/vietoris_rips_bootstrap/kDensitySlow.m ================================================ function densities = kDensitySlow(points, k) % INPUT: % points - N x n matrix of N points in R^n % k - positive integer less than N. This integer is a parameter for our % density estimate. % % OUTPUT: % densities - vertical vector of length N whose i-th entry is the % estimated density of the i-th point. The estimated density at a % point is the reciprocal of the distance from that point to its % k-th closest neighbor. % % NOTES: % The function kDensitySlow.m uses the function slmetric_pw.m, written by % Dahua Lin, to compute distance matrices. Please see % http://www.mathworks.com/matlabcentral/fileexchange/15935-computing-pairwise-distances-and-metrics % for more information about the function slmetric_pw.m. % % File kdDensitySlow.m is slow for large datasets (thus the name). If you % are interested in a faster version, please email Henry at % henrya@math.stanford.edu. The faster version relies on a MATLAB kd-tree % package available here: % http://www.mathworks.com/matlabcentral/fileexchange/21512-kd-tree-for-matlab % % henrya@math.stanford.edu % CONSTANTS: blockSize = 500; % If blockSize too small, the function will be slower than % it would be otherwise. If blockSize is too large, there will not be % enough memory for the computation. My default is blockSize = 500. maxMatrixSize = 25000000; % This m-file will not create a matrix bigger than % maxMatrixSize. Constant blocksize will be lowered so that % N*blockSize<=maxMatrixSize. N = size(points,1); % N is the number of points if N*blockSize > maxMatrixSize blockSize = floor(maxMatrixSize/N); disp('Constant blockSize has been lowered. Expect a very long computation time. Please open m-file kDensitySlow.m for details.') end densities = zeros(N,1); for i = 1:floor(N/blockSize) distances = slmetric_pw(points', points(blockSize*(i-1)+1:blockSize*i,:)', 'eucdist'); sortedDistances = sort(distances); densities(blockSize*(i-1)+1:blockSize*i) = 1./sortedDistances(k+1,:)'; end %remaining points nextPoint = floor(N/blockSize)*blockSize+1; if nextPoint <= N distances = slmetric_pw(points', points(nextPoint:N,:)', 'eucdist'); sortedDistances = sort(distances); densities(nextPoint:N) = 1./sortedDistances(k+1,:)'; end function M = slmetric_pw(X1, X2, mtype, varargin) %SLMETRIC_PW Compute the metric between column vectors pairwisely % % [ Syntax ] % - M = slmetric_pw(X1, X2, mtype); % - M = slmetric_pw(X1, X2, mtype, ...); % % [ Arguments ] % - X1, X2: the sample matrices % - mtype: the string indicating the type of metric % - M: the resulting metric matrix % % [ Description ] % - M = slmetric_pw(X1, X2, mtype) Computes the metrics between % column vectors of X1 and X2 pairwisely, using the metric % specified by mtype. % % Both X1 and X2 are matrices with each column representing a % sample. X1 and X2 should have the same number of rows. Suppose % the size of X1 is d x n1, and the size of X2 is d x n2. Then % the output metric matrix M will be of size n1 x n2, in which % M(i, j) is the metric value between X1(:,i) and X2(:,j). % % - M = slmetric_pw(X1, X2, mtype, ...) Some metric types requires % extra parameters, which should be specified in params. % % The supported metrics of this function are listed as follows: % \{: % - eucdist: Euclidean distance: % $ ||x - y|| $ % % - sqdist: Square of Euclidean distance: % $ ||x - y||^2 $ % % - dotprod: Canonical dot product: % $ <x,y> = x^T * y $ % % - nrmcorr: Normalized correlation (cosine angle): % $ (x^T * y ) / (||x|| * ||y||) $ % % - corrdist: Normalized Correlation distance % $ 1 - nrmcorr(x, y) $ % % - angle: Angle between two vectors (in radian) % $ arccos (nrmcorr(x, y)) $ % - quadfrm: Quadratic form: % $ x^T * Q * y $ % Q is specified in the 1st extra parameter % % - quaddiff: Quadratic form of difference: % $ (x - y)^T * Q * (x - y) $ % Q is specified in the 1st extra parameter % % - cityblk: City block distance (abssum of difference) % $ sum_i |x_i - y_i| $ % % - maxdiff: Maximum absolute difference % $ max_i |x_i - y_i| $ % % - mindiff: Minimum absolute difference % $ min_i |x_i - y_i| $ % % - minkowski: Minkowski distance % $ (\sum_i |x_i - y_i|^p)^(1/p) $ % The order p is specified in the 1st extra parameter % % - wsqdist: Weighted square of Euclidean distance % $ \sum_i w_i (x_i - y_i)^2 $ % the weights w is specified in 1st extra parameter % as a d x 1 column vector % % - hamming: Hamming distance with threshold t % \{ % ht1 = x > t % ht2 = y > t % d = sum(ht1 ~= ht2) % \} % use threshold t as the first extra param. % (by default, t is set to zero). % % - hamming_nrm: Normalized hamming distance, which equals the % ratio of the elements that differ. % \{ % ht1 = x > t % ht2 = y > t % d = sum(ht1 ~= ht2) / length(ht1) % \} % use threshold t as the first extra param. % (by default, t is set to zero). % % - intersect: Histogram Intersection % $ d = sum min(x, y) / min(sum(x), sum(y))$ % % - intersectdis: Histogram intersection distance % $ d = 1 - sum min(x, y) / min(sum(x), sum(y)) $ % % - chisq: Chi-Square Distance % $ d = sum (x(i) - y(i))^2/(2 * (x(i)+y(i))) $ % % - kldiv: Kull-back Leibler divergence % $ d = sum x(i) log (x(i) / y(i)) $ % % - jeffrey: Jeffrey divergence % $ d = KL(h1, (h1+h2)/2) + KL(h2, (h1+h2)/2) $ % \:} % % [ Remarks ] % - Both X1 and X2 should be a matrix of numeric values, except % for case when metric type is 'hamming' or 'hamming_nrm'. % For hamming or hamming_nrm metric, the input matrix can be logical. % % [ Examples ] % - Compute different types of metrics in pairwise manner % \{ % % prepare sample matrix % X1 = rand(10, 100); % X2 = rand(10, 150); % % % compute the euclidean distances (L2) % % between the samples in X1 and X2 % M = slmetric_pw(X1, X2, 'eucdist'); % % % compute the eucidean distances between the samples % % in X1 in a pairwise manner % M = slmetric_pw(X1, X1, 'eucdist'); % % % compute the city block distances (L1) % M = slmetric_pw(X1, X2, 'cityblk'); % % % compute the normalize correlations % M = slmetric_pw(X1, X2, 'nrmcorr'); % % % compute hamming distances % M = slmetric_pw(X1, X2, 'hamming', 0.5); % M2 = slmetric_pw((X1 > 0.5), (X2 > 0.5), 'hamming'); % assert(isequal(M, M2)); % \} % % - Compute the parameterized metrics % \{ % % compute weighted squared distances with user-supplied weights % weights = rand(10, 1); % M = slmetric_pw(X1, X2, 'wsqdist', weights); % % % compute quadratic distances (x-y)^T * Q (x-y) % Q = rand(10, 10); % M = slmetric_pw(X1, X2, 'quaddiff', Q); % % % compute Minkowski distance of order 3 % M = slmetric_pw(X1, X2, 'minkowski', 3); % \} % % [ History ] % - Created by Dahua Lin on Dec 06th, 2005 % - Modified by Dahua Lin on Apr 21st, 2005 % - regularize the error reporting % - Modified by Dahua Lin on Sep 11st, 2005 % - completely rewrite the core codes based on new mex computation % cores, and the runtime efficiency in both time and space is % significantly increased. % - Modified by Dahua Lin on Jul 02, 2007 % - rewrite the core computation based on the bsxfun introduced in % MATLAB R2007a % - rewrite the core-mex for cityblk, maxdiff, mindiff % - introduce new metrics: corrdist, minkowski % - Modified by Dahua Lin on Jul 30, 2007 % - Add the metric types for histograms, which are originally % implemented in slhistmetric_pw in sltoolbox v1. % - Modified by Dahua Lin on Aug 16, 2007 % - revise some of the help contents % %% parse and verify input arguments error(nargchk(3, inf, nargin)); assert(ischar(mtype), 'sltoolbox:slmetric_pw:invalidarg', ... 'The metric type should be a string.'); if strcmp(mtype, 'hamming') || strcmp(mtype, 'hamming_nrm') assert((isnumeric(X1) || islogical(X1)) && ndims(X1) == 2 && ... (isnumeric(X2) || islogical(X2)) && ndims(X2) == 2, ... 'sltoolbox:slmetric_pw:invalidarg', 'X1 and X2 should be numeric or logical matrices.'); else assert(isnumeric(X1) && ndims(X1) == 2 && isnumeric(X2) && ndims(X2) == 2, ... 'sltoolbox:slmetric_pw:invalidarg', 'X1 and X2 should be numeric matrices.'); end assert(isa(X2, class(X1)), ... 'sltoolbox:slmetric_pw:invalidarg', 'X1 and X2 should be of the same class.'); if isempty(X1) || isempty(X2) M = []; return; end %% compute switch mtype case {'eucdist', 'sqdist'} checkdim(X1, X2); M = bsxfun(@plus, sum(X1 .* X1, 1)', (-2) * X1' * X2); M = bsxfun(@plus, sum(X2 .* X2, 1), M); M(M < 0) = 0; if strcmp(mtype, 'eucdist') M = sqrt(M); end case 'dotprod' checkdim(X1, X2); M = X1' * X2; case {'nrmcorr', 'corrdist', 'angle'} checkdim(X1, X2); ns1 = sqrt(sum(X1 .* X1, 1)); ns2 = sqrt(sum(X2 .* X2, 1)); ns1(ns1 == 0) = 1; ns2(ns2 == 0) = 1; M = bsxfun(@times, X1' * X2, 1 ./ ns1'); M = bsxfun(@times, M, 1 ./ ns2); switch mtype case 'corrdist' M = 1 - M; case 'angle' M = real(acos(M)); end case 'quadfrm' Q = varargin{1}; M = X1' * Q * X2; case 'quaddiff' checkdim(X1, X2); Q = varargin{1}; M = X1' * (-(Q + Q')) * X2; M = bsxfun(@plus, M, sum(X1 .* (Q * X1), 1)'); M = bsxfun(@plus, M, sum(X2 .* (Q * X2), 1)); case 'cityblk' checkdim(X1, X2); M = pwmetrics_cimp(X1, X2, int32(1)); case 'maxdiff' checkdim(X1, X2); M = pwmetrics_cimp(X1, X2, int32(3)); case 'mindiff' checkdim(X1, X2); M = pwmetrics_cimp(X1, X2, int32(2)); case 'minkowski' checkdim(X1, X2); pord = varargin{1}; if ~isscalar(pord) error('sltoolbox:slmetric_pw:invalidparam', ... 'the mikowski order should be a scalar'); end pord = cast(pord, class(X1)); M = pwmetrics_cimp(X1, X2, int32(4), pord); case 'wsqdist' d = checkdim(X1, X2); w = varargin{1}; if ~isequal(size(w), [d, 1]) error('sltoolbox:slmetric_pw:invalidparam', ... 'the weights should be given as a d x 1 vector.'); end wX2 = bsxfun(@times, X2, w); M = bsxfun(@plus, (-2) * X1' * wX2, sum(wX2 .* X2, 1)); clear wX2; wX1 = bsxfun(@times, X1, w); M = bsxfun(@plus, M, sum(wX1 .* X1, 1)'); case {'hamming', 'hamming_nrm'} checkdim(X1, X2); if islogical(X1) && islogical(X2) H1 = X1; H2 = X2; else if isempty(varargin) t = 0; else t = varargin{1}; assert(isnumeric(t) && isscalar(t), ... 'sltoolbox:slmetric_pw:invalidparam', 't should be a numeric scalar.'); end H1 = X1 > t; H2 = X2 > t; end M = pwhamming_cimp(H1, H2); if strcmp(mtype, 'hamming_nrm') M = M / size(H1, 1); end case 'intersect' checkdim(X1, X2); M = pwmetrics_cimp(X1, X2, int32(5)); case 'intersectdis' checkdim(X1, X2); M = 1 - pwmetrics_cimp(X1, X2, int32(5)); case 'chisq' checkdim(X1, X2); M = pwmetrics_cimp(X1, X2, int32(6)); case 'kldiv' checkdim(X1, X2); M = pwmetrics_cimp(X1, X2, int32(7)); case 'jeffrey' checkdim(X1, X2); M = pwmetrics_cimp(X1, X2, int32(8)); otherwise error('sltoolbox:slmetric_pw:unknowntype', 'Unknown metric type %s', mtype); end %% Auxiliary function function d = checkdim(X1, X2) d = size(X1, 1); if d ~= size(X2, 1) error('sltoolbox:slmetric_pw:sizmismatch', ... 'X1 and X2 have different sample dimensions'); end ================================================ FILE: src/matlab/experimental/vietoris_rips_bootstrap/load_density_indices.m ================================================ clc; clear; close all; sigma_step = 0.001; sigma_max = 0.2; sigma_min = sigma_step; theta_values = [sigma_min:sigma_step:sigma_max]; dataset = 'n50000Dct'; filter_label = 'kernel'; filter_function = @(points, sigma) gaussian_kernel_densities(points, points, sigma); ensure_density_indices(theta_values, dataset, filter_label, filter_function) ================================================ FILE: src/matlab/experimental/vietoris_rips_bootstrap/natural_samples_bootstrap_example.m ================================================ clc; clear; close all; dataset = 'n50000Dct'; filter_label = 'kernel'; T = 15000; S = 60; max_filtration_value = 1.1; filter_function = @(points, sigma) gaussian_kernel_densities(points, points, sigma); display_plot = true; use_sequential_maxmin = true; theta_values = [0.1:0.002:0.2]; [barcodes, indices] = filtered_bootstrap(dataset, filter_label, T, theta_values, S, max_filtration_value, filter_function, display_plot, use_sequential_maxmin); ================================================ FILE: src/matlab/experimental/vietoris_rips_bootstrap/natural_samples_example.m ================================================ clc; clear; close all; dataset = 'n50000Dct'; filter_label = 'kernel'; T = 15000; S = 50; max_filtration_value = 1.1; filter_function = @(points, sigma) gaussian_kernel_densities(points, points, sigma); display_plot = false; use_sequential_maxmin = true; theta_values = [1.0:0.1:2.0]; for (theta = theta_values) [barcodes, stream_size] = filtered_barcodes(dataset, filter_label, T, theta, S, max_filtration_value, filter_function, display_plot, use_sequential_maxmin) end ================================================ FILE: src/matlab/experimental/vietoris_rips_bootstrap/nk15c30Dct_LW0.m ================================================ clc; clear; close all; path = '../../../../data/natural_images'; label = 'nk15c30Dct'; datafile = sprintf('%s/%s.mat', path, label); load(datafile, label); point_cloud = nk15c30Dct; max_dimension = 3; num_landmark_points = 150; nu = 0; num_divisions = 500; % create a sequential maxmin landmark selector landmark_selector = api.Plex4.createMaxMinSelector(point_cloud, num_landmark_points); landmarks = point_cloud(landmark_selector.getLandmarkPoints() + 1, :); R = landmark_selector.getMaxDistanceFromPointsToLandmarks() max_filtration_value = 1; % create a lazy witness stream stream = streams.impl.LazyWitnessStream(landmark_selector.getUnderlyingMetricSpace(), landmark_selector, max_dimension, max_filtration_value, nu, num_divisions); stream.finalizeStream() num_simplices = stream.getSize() % get the default persistence algorithm persistence = api.Plex4.getDefaultSimplicialAlgorithm(max_dimension); % compute the intervals intervals = persistence.computeIntervals(stream); %% create the barcode plots options.filename = 'nk15c30Dct_LW0'; options.max_filtration_value = max_filtration_value; options.max_dimension = max_dimension - 1; plot_barcodes(intervals, options); %% plot a projection of the dataset onto the first two DCT basis vectors figure hold on plot(point_cloud(:,1), point_cloud(:,2), '.'), axis equal plot(landmarks(:,1), landmarks(:,2), '.r'), axis equal ================================================ FILE: src/matlab/experimental/vietoris_rips_bootstrap/nk15c30Dct_LW1.m ================================================ clc; clear; close all; path = '../../../../data/natural_images'; label = 'nk15c30Dct'; datafile = sprintf('%s/%s.mat', path, label); load(datafile, label); point_cloud = nk15c30Dct; max_dimension = 3; num_landmark_points = 50; nu = 1; num_divisions = 500; % create a sequential maxmin landmark selector landmark_selector = api.Plex4.createMaxMinSelector(point_cloud, num_landmark_points); landmarks = point_cloud(landmark_selector.getLandmarkPoints() + 1, :); R = landmark_selector.getMaxDistanceFromPointsToLandmarks() max_filtration_value = R / 4; max_filtration_value = 1; % create a lazy witness stream stream = streams.impl.LazyWitnessStream(landmark_selector.getUnderlyingMetricSpace(), landmark_selector, max_dimension, max_filtration_value, nu, num_divisions); stream.finalizeStream() num_simplices = stream.getSize() % get the default persistence algorithm persistence = api.Plex4.getDefaultSimplicialAlgorithm(max_dimension); % compute the intervals intervals = persistence.computeIntervals(stream); %% create the barcode plots options.filename = 'nk15c30Dct_LW1'; options.max_filtration_value = max_filtration_value; options.max_dimension = max_dimension - 1; plot_barcodes(intervals, options); % plot a projection of the dataset onto the first two DCT basis vectors figure hold on plot(point_cloud(:,1), point_cloud(:,2), '.'), axis equal plot(landmarks(:,1), landmarks(:,2), '.r'), axis equal ================================================ FILE: src/matlab/experimental/vietoris_rips_bootstrap/nk15c30Dct_VR.m ================================================ clc; clear; close all; path = '../../../../data/natural_images'; label = 'nk15c30Dct'; datafile = sprintf('%s/%s.mat', path, label); load(datafile, label); % Select 100 random points %rp = randperm(15000); %point_cloud = nk15c30Dct(rp(1:100), :); % Select 100 max-min points S = 200; landmark_selector = api.Plex4.createMaxMinSelector(nk15c30Dct, S); indices = landmark_selector.getLandmarkPoints() + 1; point_cloud = nk15c30Dct(indices, :); max_dimension = 3; num_divisions = 500; max_filtration_value = 1.1; % create a Vietoris-Rips stream stream = api.Plex4.createVietorisRipsStream(point_cloud, max_dimension, max_filtration_value, num_divisions); num_simplices = stream.getSize() % get the default persistence algorithm persistence = api.Plex4.getDefaultSimplicialAlgorithm(max_dimension); % compute intervals intervals = persistence.computeIntervals(stream); %% create the barcode plots options.filename = 'nk15c30Dct_VR'; options.max_filtration_value = max_filtration_value; options.max_dimension = max_dimension - 1; plot_barcodes(intervals, options); intervals.getInfiniteIntervals() %% plot a projection of the dataset onto the first two DCT basis vectors figure hold on plot(nk15c30Dct(:,1), nk15c30Dct(:,2), '.'), axis equal plot(point_cloud(:,1), point_cloud(:,2), '.r'), axis equal ================================================ FILE: src/matlab/experimental/vietoris_rips_bootstrap/nk300c30Dct_LW0.m ================================================ clc; clear; close all; path = '../../../../data/natural_images'; label = 'nk300c30Dct'; datafile = sprintf('%s/%s.mat', path, label); load(datafile, label); point_cloud = nk300c30Dct; max_dimension = 3; num_landmark_points = 50; nu = 0; num_divisions = 500; % create a sequential maxmin landmark selector landmark_selector = api.Plex4.createMaxMinSelector(point_cloud, num_landmark_points); landmarks = point_cloud(landmark_selector.getLandmarkPoints() + 1, :); R = landmark_selector.getMaxDistanceFromPointsToLandmarks() max_filtration_value = 1; % create a lazy witness stream stream = streams.impl.LazyWitnessStream(landmark_selector.getUnderlyingMetricSpace(), landmark_selector, max_dimension, max_filtration_value, nu, num_divisions); stream.finalizeStream() num_simplices = stream.getSize() % get the default persistence algorithm persistence = api.Plex4.getDefaultSimplicialAlgorithm(max_dimension); % compute the intervals intervals = persistence.computeIntervals(stream); %% create the barcode plots options.filename = 'nk300c30Dct_LW0'; options.max_filtration_value = max_filtration_value; options.max_dimension = max_dimension - 1; options.file_format = 'eps'; options.line_width = 1; plot_barcodes(intervals, options); % plot a projection of the dataset onto the first two DCT basis vectors figure hold on plot(point_cloud(:,1), point_cloud(:,2), '.'), axis equal plot(landmarks(:,1), landmarks(:,2), '.r'), axis equal ================================================ FILE: src/matlab/experimental/vietoris_rips_bootstrap/nk300c30Dct_LW1.m ================================================ clc; clear; close all; path = '../../../../data/natural_images'; label = 'nk300c30Dct'; datafile = sprintf('%s/%s.mat', path, label); load(datafile, label); point_cloud = nk300c30Dct; max_dimension = 3; num_landmark_points = 50; nu = 1; num_divisions = 500; % create a sequential maxmin landmark selector landmark_selector = api.Plex4.createMaxMinSelector(point_cloud, num_landmark_points); landmarks = point_cloud(landmark_selector.getLandmarkPoints() + 1, :); R = landmark_selector.getMaxDistanceFromPointsToLandmarks() max_filtration_value = R / 4; % create a lazy witness stream stream = streams.impl.LazyWitnessStream(landmark_selector.getUnderlyingMetricSpace(), landmark_selector, max_dimension, max_filtration_value, nu, num_divisions); stream.finalizeStream() num_simplices = stream.getSize() % get the default persistence algorithm persistence = api.Plex4.getDefaultSimplicialAlgorithm(max_dimension); % compute the intervals intervals = persistence.computeIntervals(stream); %% create the barcode plots options.filename = 'nk300c30Dct_LW1'; options.max_filtration_value = max_filtration_value; options.max_dimension = max_dimension - 1; plot_barcodes(intervals, options); % plot a projection of the dataset onto the first two DCT basis vectors figure hold on plot(point_cloud(:,1), point_cloud(:,2), '.'), axis equal plot(landmarks(:,1), landmarks(:,2), '.r'), axis equal ================================================ FILE: src/matlab/experimental/vietoris_rips_bootstrap/nk300c30Dct_VR.m ================================================ clc; clear; close all; path = '../../../../data/natural_images'; label = 'nk300c30Dct'; datafile = sprintf('%s/%s.mat', path, label); load(datafile, label); % Select 100 random points %rp = randperm(15000); %point_cloud = nk300c30Dct(rp(1:100), :); % Select 100 max-min points S = 100; landmark_selector = api.Plex4.createMaxMinSelector(nk300c30Dct, S); indices = landmark_selector.getLandmarkPoints() + 1; point_cloud = nk300c30Dct(indices, :); max_dimension = 3; num_divisions = 500; max_filtration_value = 1.1; % create a Vietoris-Rips stream stream = api.Plex4.createVietorisRipsStream(point_cloud, max_dimension, max_filtration_value, num_divisions); num_simplices = stream.getSize() % get the default persistence algorithm persistence = api.Plex4.getDefaultSimplicialAlgorithm(max_dimension); % compute intervals intervals = persistence.computeIntervals(stream); %% create the barcode plots options.filename = 'nk300c30Dct_VR'; options.max_filtration_value = max_filtration_value; options.max_dimension = max_dimension - 1; plot_barcodes(intervals, options); intervals.getInfiniteIntervals() %% plot a projection of the dataset onto the first two DCT basis vectors figure hold on plot(nk300c30Dct(:,1), nk300c30Dct(:,2), '.'), axis equal plot(point_cloud(:,1), point_cloud(:,2), '.r'), axis equal ================================================ FILE: src/matlab/experimental/vietoris_rips_bootstrap/outputs/n50000Dct-15-15000-1.100.eps ================================================ %!PS-Adobe-2.0 EPSF-1.2 %%Creator: MATLAB, The MathWorks, Inc. Version 7.11.0.584 (R2010b). Operating System: Linux 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:07:17 UTC 2011 x86_64. %%Title: outputs/n50000Dct-15-15000-1.100.eps %%CreationDate: 07/23/2011 12:07:04 %%DocumentNeededFonts: Helvetica %%DocumentProcessColors: Cyan Magenta Yellow Black %%Pages: 1 %%BoundingBox: 90 215 546 602 %%EndComments %%BeginProlog % MathWorks dictionary /MathWorks 160 dict begin % definition operators /bdef {bind def} bind def /ldef {load def} bind def /xdef {exch def} bdef /xstore {exch store} bdef % operator abbreviations /c /clip ldef /cc /concat ldef /cp /closepath ldef /gr /grestore ldef /gs /gsave ldef /mt /moveto ldef /np /newpath ldef /cm /currentmatrix ldef /sm /setmatrix ldef /rm /rmoveto ldef /rl /rlineto ldef /s {show newpath} bdef /sc {setcmykcolor} bdef /sr /setrgbcolor ldef /sg /setgray ldef /w /setlinewidth ldef /j /setlinejoin ldef /cap /setlinecap ldef /rc {rectclip} bdef /rf {rectfill} bdef % page state control /pgsv () def /bpage {/pgsv save def} bdef /epage {pgsv restore} bdef /bplot /gsave ldef /eplot {stroke grestore} bdef % orientation switch /portraitMode 0 def /landscapeMode 1 def /rotateMode 2 def % coordinate system mappings /dpi2point 0 def % font control /FontSize 0 def /FMS {/FontSize xstore findfont [FontSize 0 0 FontSize neg 0 0] makefont setfont} bdef /reencode {exch dup where {pop load} {pop StandardEncoding} ifelse exch dup 3 1 roll findfont dup length dict begin { 1 index /FID ne {def}{pop pop} ifelse } forall /Encoding exch def currentdict end definefont pop} bdef /isroman {findfont /CharStrings get /Agrave known} bdef /FMSR {3 1 roll 1 index dup isroman {reencode} {pop pop} ifelse exch FMS} bdef /csm {1 dpi2point div -1 dpi2point div scale neg translate dup landscapeMode eq {pop -90 rotate} {rotateMode eq {90 rotate} if} ifelse} bdef % line types: solid, dotted, dashed, dotdash /SO { [] 0 setdash } bdef /DO { [.5 dpi2point mul 4 dpi2point mul] 0 setdash } bdef /DA { [6 dpi2point mul] 0 setdash } bdef /DD { [.5 dpi2point mul 4 dpi2point mul 6 dpi2point mul 4 dpi2point mul] 0 setdash } bdef % macros for lines and objects /L {lineto stroke} bdef /MP {3 1 roll moveto 1 sub {rlineto} repeat} bdef /AP {{rlineto} repeat} bdef /PDlw -1 def /W {/PDlw currentlinewidth def setlinewidth} def /PP {closepath eofill} bdef /DP {closepath stroke} bdef /MR {4 -2 roll moveto dup 0 exch rlineto exch 0 rlineto neg 0 exch rlineto closepath} bdef /FR {MR stroke} bdef /PR {MR fill} bdef /L1i {{currentfile picstr readhexstring pop} image} bdef /tMatrix matrix def /MakeOval {newpath tMatrix currentmatrix pop translate scale 0 0 1 0 360 arc tMatrix setmatrix} bdef /FO {MakeOval stroke} bdef /PO {MakeOval fill} bdef /PD {currentlinewidth 2 div 0 360 arc fill PDlw -1 eq not {PDlw w /PDlw -1 def} if} def /FA {newpath tMatrix currentmatrix pop translate scale 0 0 1 5 -2 roll arc tMatrix setmatrix stroke} bdef /PA {newpath tMatrix currentmatrix pop translate 0 0 moveto scale 0 0 1 5 -2 roll arc closepath tMatrix setmatrix fill} bdef /FAn {newpath tMatrix currentmatrix pop translate scale 0 0 1 5 -2 roll arcn tMatrix setmatrix stroke} bdef /PAn {newpath tMatrix currentmatrix pop translate 0 0 moveto scale 0 0 1 5 -2 roll arcn closepath tMatrix setmatrix fill} bdef /vradius 0 def /hradius 0 def /lry 0 def /lrx 0 def /uly 0 def /ulx 0 def /rad 0 def /MRR {/vradius xdef /hradius xdef /lry xdef /lrx xdef /uly xdef /ulx xdef newpath tMatrix currentmatrix pop ulx hradius add uly vradius add translate hradius vradius scale 0 0 1 180 270 arc tMatrix setmatrix lrx hradius sub uly vradius add translate hradius vradius scale 0 0 1 270 360 arc tMatrix setmatrix lrx hradius sub lry vradius sub translate hradius vradius scale 0 0 1 0 90 arc tMatrix setmatrix ulx hradius add lry vradius sub translate hradius vradius scale 0 0 1 90 180 arc tMatrix setmatrix closepath} bdef /FRR {MRR stroke } bdef /PRR {MRR fill } bdef /MlrRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lry uly sub 2 div def newpath tMatrix currentmatrix pop ulx rad add uly rad add translate rad rad scale 0 0 1 90 270 arc tMatrix setmatrix lrx rad sub lry rad sub translate rad rad scale 0 0 1 270 90 arc tMatrix setmatrix closepath} bdef /FlrRR {MlrRR stroke } bdef /PlrRR {MlrRR fill } bdef /MtbRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lrx ulx sub 2 div def newpath tMatrix currentmatrix pop ulx rad add uly rad add translate rad rad scale 0 0 1 180 360 arc tMatrix setmatrix lrx rad sub lry rad sub translate rad rad scale 0 0 1 0 180 arc tMatrix setmatrix closepath} bdef /FtbRR {MtbRR stroke } bdef /PtbRR {MtbRR fill } bdef /stri 6 array def /dtri 6 array def /smat 6 array def /dmat 6 array def /tmat1 6 array def /tmat2 6 array def /dif 3 array def /asub {/ind2 exch def /ind1 exch def dup dup ind1 get exch ind2 get sub exch } bdef /tri_to_matrix { 2 0 asub 3 1 asub 4 0 asub 5 1 asub dup 0 get exch 1 get 7 -1 roll astore } bdef /compute_transform { dmat dtri tri_to_matrix tmat1 invertmatrix smat stri tri_to_matrix tmat2 concatmatrix } bdef /ds {stri astore pop} bdef /dt {dtri astore pop} bdef /db {2 copy /cols xdef /rows xdef mul dup string currentfile exch readhexstring pop /bmap xdef pop pop} bdef /it {gs np dtri aload pop moveto lineto lineto cp c cols rows 8 compute_transform {bmap} image gr}bdef /il {newpath moveto lineto stroke}bdef currentdict end def %%EndProlog %%BeginSetup MathWorks begin 0 cap end %%EndSetup %%Page: 1 1 %%BeginPageSetup %%PageBoundingBox: 90 215 546 602 MathWorks begin bpage %%EndPageSetup %%BeginObject: obj1 bplot /dpi2point 12 def portraitMode 0216 7344 csm 864 110 5477 4651 MR c np 85 dict begin %Colortable dictionary /c0 { 0.000000 0.000000 0.000000 sr} bdef /c1 { 1.000000 1.000000 1.000000 sr} bdef /c2 { 0.900000 0.000000 0.000000 sr} bdef /c3 { 0.000000 0.820000 0.000000 sr} bdef /c4 { 0.000000 0.000000 0.800000 sr} bdef /c5 { 0.910000 0.820000 0.320000 sr} bdef /c6 { 1.000000 0.260000 0.820000 sr} bdef /c7 { 0.000000 0.820000 0.820000 sr} bdef c0 1 j 1 sg 0 0 6913 5186 PR 6 w 0 1769 5356 0 0 -1769 899 2158 4 MP PP -5356 0 0 1769 5356 0 0 -1769 899 2158 5 MP stroke 4 w DO 0 sg 899 2158 mt 899 389 L 899 389 mt 899 389 L 1872 2158 mt 1872 389 L 1872 389 mt 1872 389 L 2846 2158 mt 2846 389 L 2846 389 mt 2846 389 L 3820 2158 mt 3820 389 L 3820 389 mt 3820 389 L 4794 2158 mt 4794 389 L 4794 389 mt 4794 389 L 5768 2158 mt 5768 389 L 5768 389 mt 5768 389 L SO 6 w 899 2158 mt 6255 2158 L 899 2158 mt 899 389 L 899 2158 mt 899 2104 L %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 866 2303 mt (0) s 1872 2158 mt 1872 2104 L 1789 2303 mt (0.2) s 2846 2158 mt 2846 2104 L 2763 2303 mt (0.4) s 3820 2158 mt 3820 2104 L 3737 2303 mt (0.6) s 4794 2158 mt 4794 2104 L 4711 2303 mt (0.8) s 5768 2158 mt 5768 2104 L 5735 2303 mt (1) s gs 899 389 5357 1770 MR c np 5356 0 899 406 2 MP stroke 6255 406 PD gr gs 6182 333 147 147 MR c np 0 j 0 82 -71 -41 71 -41 6231 447 4 MP DP gr gs 899 389 5357 1770 MR c np 3738 0 899 424 2 MP stroke 3390 0 899 441 2 MP stroke 3310 0 899 459 2 MP stroke 3176 0 899 476 2 MP stroke 3127 0 899 494 2 MP stroke 3117 0 899 511 2 MP stroke 3095 0 899 529 2 MP stroke 3042 0 899 546 2 MP stroke 3010 0 899 564 2 MP stroke 2988 0 899 581 2 MP stroke 2983 0 899 599 2 MP stroke 2977 0 899 616 2 MP stroke 2961 0 899 634 2 MP stroke 2961 0 899 651 2 MP stroke 2961 0 899 669 2 MP stroke 2961 0 899 686 2 MP stroke 2951 0 899 704 2 MP stroke 2940 0 899 721 2 MP stroke 2929 0 899 739 2 MP stroke 2929 0 899 756 2 MP stroke 2919 0 899 774 2 MP stroke 2913 0 899 791 2 MP stroke 2913 0 899 809 2 MP stroke 2913 0 899 826 2 MP stroke 2908 0 899 844 2 MP stroke 2902 0 899 861 2 MP stroke 2902 0 899 879 2 MP stroke 2897 0 899 896 2 MP stroke 2886 0 899 914 2 MP stroke 2886 0 899 931 2 MP stroke 2886 0 899 949 2 MP stroke 2881 0 899 966 2 MP stroke 2881 0 899 984 2 MP stroke 2870 0 899 1002 2 MP stroke 2870 0 899 1019 2 MP stroke 2865 0 899 1037 2 MP stroke 2865 0 899 1054 2 MP stroke 2865 0 899 1072 2 MP stroke 2860 0 899 1089 2 MP stroke 2849 0 899 1107 2 MP stroke 2849 0 899 1124 2 MP stroke 2849 0 899 1142 2 MP stroke 2844 0 899 1159 2 MP stroke 2844 0 899 1177 2 MP stroke 2838 0 899 1194 2 MP stroke 2833 0 899 1212 2 MP stroke 2833 0 899 1229 2 MP stroke 2827 0 899 1247 2 MP stroke 2827 0 899 1264 2 MP stroke 2822 0 899 1282 2 MP stroke 2817 0 899 1299 2 MP stroke 2817 0 899 1317 2 MP stroke 2801 0 899 1334 2 MP stroke 2795 0 899 1352 2 MP stroke 2795 0 899 1369 2 MP stroke 2795 0 899 1387 2 MP stroke 2785 0 899 1404 2 MP stroke 2785 0 899 1422 2 MP stroke 2785 0 899 1439 2 MP stroke 2779 0 899 1457 2 MP stroke 2774 0 899 1474 2 MP stroke 2774 0 899 1492 2 MP stroke 2763 0 899 1509 2 MP stroke 2742 0 899 1527 2 MP stroke 2736 0 899 1544 2 MP stroke 2726 0 899 1562 2 MP stroke 2720 0 899 1580 2 MP stroke 2720 0 899 1597 2 MP stroke 2720 0 899 1615 2 MP stroke 2720 0 899 1632 2 MP stroke 2715 0 899 1650 2 MP stroke 2710 0 899 1667 2 MP stroke 2704 0 899 1685 2 MP stroke 2699 0 899 1702 2 MP stroke 2688 0 899 1720 2 MP stroke 2688 0 899 1737 2 MP stroke 2688 0 899 1755 2 MP stroke 2683 0 899 1772 2 MP stroke 2683 0 899 1790 2 MP stroke 2683 0 899 1807 2 MP stroke 2678 0 899 1825 2 MP stroke 2672 0 899 1842 2 MP stroke 2667 0 899 1860 2 MP stroke 2661 0 899 1877 2 MP stroke 2656 0 899 1895 2 MP stroke 2656 0 899 1912 2 MP stroke 2651 0 899 1930 2 MP stroke 2651 0 899 1947 2 MP stroke 2651 0 899 1965 2 MP stroke 2640 0 899 1982 2 MP stroke 2619 0 899 2000 2 MP stroke 2613 0 899 2017 2 MP stroke 2608 0 899 2035 2 MP stroke 2603 0 899 2052 2 MP stroke 2592 0 899 2070 2 MP stroke 2581 0 899 2087 2 MP stroke 2576 0 899 2105 2 MP stroke 2565 0 899 2122 2 MP stroke 2560 0 899 2140 2 MP stroke gr 1548 294 mt (Barcodes for VR\(n50000Dct[k=15, T=15000], 1.100\) \(S = 100\) \ \(dimension 0\)) s 1 sg 0 1769 5356 0 0 -1769 899 4615 4 MP PP -5356 0 0 1769 5356 0 0 -1769 899 4615 5 MP stroke 4 w DO 0 sg 899 4615 mt 899 2846 L 899 2846 mt 899 2846 L 1872 4615 mt 1872 2846 L 1872 2846 mt 1872 2846 L 2846 4615 mt 2846 2846 L 2846 2846 mt 2846 2846 L 3820 4615 mt 3820 2846 L 3820 2846 mt 3820 2846 L 4794 4615 mt 4794 2846 L 4794 2846 mt 4794 2846 L 5768 4615 mt 5768 2846 L 5768 2846 mt 5768 2846 L SO 6 w 899 4615 mt 6255 4615 L 899 4615 mt 899 2846 L 899 4615 mt 899 4561 L 866 4760 mt (0) s 1872 4615 mt 1872 4561 L 1789 4760 mt (0.2) s 2846 4615 mt 2846 4561 L 2763 4760 mt (0.4) s 3820 4615 mt 3820 4561 L 3737 4760 mt (0.6) s 4794 4615 mt 4794 4561 L 4711 4760 mt (0.8) s 5768 4615 mt 5768 4561 L 5735 4760 mt (1) s gs 899 2846 5357 1770 MR c np 1222 0 5033 2877 2 MP stroke 6255 2877 PD gr gs 6182 2804 147 147 MR c np 0 j 0 82 -71 -41 71 -41 6231 2918 4 MP DP gr gs 899 2846 5357 1770 MR c np 1554 0 4701 2908 2 MP stroke 6255 2908 PD gr gs 6182 2835 147 147 MR c np 0 j 0 82 -71 -41 71 -41 6231 2949 4 MP DP gr gs 899 2846 5357 1770 MR c np 1597 0 4658 2939 2 MP stroke 6255 2939 PD gr gs 6182 2866 147 147 MR c np 0 j 0 82 -71 -41 71 -41 6231 2980 4 MP DP gr gs 899 2846 5357 1770 MR c np 2154 0 4101 2970 2 MP stroke 6255 2970 PD gr gs 6182 2897 147 147 MR c np 0 j 0 82 -71 -41 71 -41 6231 3011 4 MP DP gr gs 899 2846 5357 1770 MR c np 2459 0 3796 3001 2 MP stroke 6255 3001 PD gr gs 6182 2928 147 147 MR c np 0 j 0 82 -71 -41 71 -41 6231 3042 4 MP DP gr gs 899 2846 5357 1770 MR c np 289 0 4696 3032 2 MP stroke 6 0 4674 3063 2 MP stroke 49 0 4433 3094 2 MP stroke 43 0 4294 3125 2 MP stroke 358 0 4241 3156 2 MP stroke 59 0 4203 3187 2 MP stroke 32 0 4198 3218 2 MP stroke 225 0 4182 3249 2 MP stroke 123 0 4182 3280 2 MP stroke 203 0 4155 3311 2 MP stroke 150 0 4139 3342 2 MP stroke 321 0 4123 3373 2 MP stroke 247 0 4101 3404 2 MP stroke 520 0 4096 3435 2 MP stroke 455 0 4096 3466 2 MP stroke 396 0 4096 3497 2 MP stroke 600 0 4085 3528 2 MP stroke 16 0 4085 3559 2 MP stroke 49 0 4010 3590 2 MP stroke 22 0 4010 3621 2 MP stroke 241 0 4000 3652 2 MP stroke 48 0 3984 3683 2 MP stroke 145 0 3978 3714 2 MP stroke 386 0 3935 3746 2 MP stroke 32 0 3925 3777 2 MP stroke 1013 0 3919 3808 2 MP stroke 594 0 3914 3839 2 MP stroke 348 0 3914 3870 2 MP stroke 599 0 3909 3901 2 MP stroke 257 0 3909 3932 2 MP stroke 477 0 3903 3963 2 MP stroke 22 0 3903 3994 2 MP stroke 380 0 3893 4025 2 MP stroke 5 0 3882 4056 2 MP stroke 274 0 3876 4087 2 MP stroke 65 0 3876 4118 2 MP stroke 294 0 3866 4149 2 MP stroke 1018 0 3855 4180 2 MP stroke 509 0 3855 4211 2 MP stroke 85 0 3850 4242 2 MP stroke 21 0 3850 4273 2 MP stroke 316 0 3844 4304 2 MP stroke 867 0 3834 4335 2 MP stroke 439 0 3818 4366 2 MP stroke 787 0 3812 4397 2 MP stroke 64 0 3764 4428 2 MP stroke 289 0 3737 4459 2 MP stroke 589 0 3721 4490 2 MP stroke 204 0 3689 4521 2 MP stroke 193 0 3678 4552 2 MP stroke 299 0 3668 4583 2 MP stroke gr 1548 2751 mt (Barcodes for VR\(n50000Dct[k=15, T=15000], 1.100\) \(S = 100\) \ \(dimension 1\)) s end %%Color Dict eplot %%EndObject epage end showpage %%Trailer %%EOF ================================================ FILE: src/matlab/experimental/vietoris_rips_bootstrap/outputs/n50000Dct-300-15000-1.100.eps ================================================ %!PS-Adobe-2.0 EPSF-1.2 %%Creator: MATLAB, The MathWorks, Inc. Version 7.11.0.584 (R2010b). Operating System: Linux 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:07:17 UTC 2011 x86_64. %%Title: outputs/n50000Dct-300-15000-1.100.eps %%CreationDate: 07/23/2011 12:06:39 %%DocumentNeededFonts: Helvetica %%DocumentProcessColors: Cyan Magenta Yellow Black %%Pages: 1 %%BoundingBox: 90 215 546 602 %%EndComments %%BeginProlog % MathWorks dictionary /MathWorks 160 dict begin % definition operators /bdef {bind def} bind def /ldef {load def} bind def /xdef {exch def} bdef /xstore {exch store} bdef % operator abbreviations /c /clip ldef /cc /concat ldef /cp /closepath ldef /gr /grestore ldef /gs /gsave ldef /mt /moveto ldef /np /newpath ldef /cm /currentmatrix ldef /sm /setmatrix ldef /rm /rmoveto ldef /rl /rlineto ldef /s {show newpath} bdef /sc {setcmykcolor} bdef /sr /setrgbcolor ldef /sg /setgray ldef /w /setlinewidth ldef /j /setlinejoin ldef /cap /setlinecap ldef /rc {rectclip} bdef /rf {rectfill} bdef % page state control /pgsv () def /bpage {/pgsv save def} bdef /epage {pgsv restore} bdef /bplot /gsave ldef /eplot {stroke grestore} bdef % orientation switch /portraitMode 0 def /landscapeMode 1 def /rotateMode 2 def % coordinate system mappings /dpi2point 0 def % font control /FontSize 0 def /FMS {/FontSize xstore findfont [FontSize 0 0 FontSize neg 0 0] makefont setfont} bdef /reencode {exch dup where {pop load} {pop StandardEncoding} ifelse exch dup 3 1 roll findfont dup length dict begin { 1 index /FID ne {def}{pop pop} ifelse } forall /Encoding exch def currentdict end definefont pop} bdef /isroman {findfont /CharStrings get /Agrave known} bdef /FMSR {3 1 roll 1 index dup isroman {reencode} {pop pop} ifelse exch FMS} bdef /csm {1 dpi2point div -1 dpi2point div scale neg translate dup landscapeMode eq {pop -90 rotate} {rotateMode eq {90 rotate} if} ifelse} bdef % line types: solid, dotted, dashed, dotdash /SO { [] 0 setdash } bdef /DO { [.5 dpi2point mul 4 dpi2point mul] 0 setdash } bdef /DA { [6 dpi2point mul] 0 setdash } bdef /DD { [.5 dpi2point mul 4 dpi2point mul 6 dpi2point mul 4 dpi2point mul] 0 setdash } bdef % macros for lines and objects /L {lineto stroke} bdef /MP {3 1 roll moveto 1 sub {rlineto} repeat} bdef /AP {{rlineto} repeat} bdef /PDlw -1 def /W {/PDlw currentlinewidth def setlinewidth} def /PP {closepath eofill} bdef /DP {closepath stroke} bdef /MR {4 -2 roll moveto dup 0 exch rlineto exch 0 rlineto neg 0 exch rlineto closepath} bdef /FR {MR stroke} bdef /PR {MR fill} bdef /L1i {{currentfile picstr readhexstring pop} image} bdef /tMatrix matrix def /MakeOval {newpath tMatrix currentmatrix pop translate scale 0 0 1 0 360 arc tMatrix setmatrix} bdef /FO {MakeOval stroke} bdef /PO {MakeOval fill} bdef /PD {currentlinewidth 2 div 0 360 arc fill PDlw -1 eq not {PDlw w /PDlw -1 def} if} def /FA {newpath tMatrix currentmatrix pop translate scale 0 0 1 5 -2 roll arc tMatrix setmatrix stroke} bdef /PA {newpath tMatrix currentmatrix pop translate 0 0 moveto scale 0 0 1 5 -2 roll arc closepath tMatrix setmatrix fill} bdef /FAn {newpath tMatrix currentmatrix pop translate scale 0 0 1 5 -2 roll arcn tMatrix setmatrix stroke} bdef /PAn {newpath tMatrix currentmatrix pop translate 0 0 moveto scale 0 0 1 5 -2 roll arcn closepath tMatrix setmatrix fill} bdef /vradius 0 def /hradius 0 def /lry 0 def /lrx 0 def /uly 0 def /ulx 0 def /rad 0 def /MRR {/vradius xdef /hradius xdef /lry xdef /lrx xdef /uly xdef /ulx xdef newpath tMatrix currentmatrix pop ulx hradius add uly vradius add translate hradius vradius scale 0 0 1 180 270 arc tMatrix setmatrix lrx hradius sub uly vradius add translate hradius vradius scale 0 0 1 270 360 arc tMatrix setmatrix lrx hradius sub lry vradius sub translate hradius vradius scale 0 0 1 0 90 arc tMatrix setmatrix ulx hradius add lry vradius sub translate hradius vradius scale 0 0 1 90 180 arc tMatrix setmatrix closepath} bdef /FRR {MRR stroke } bdef /PRR {MRR fill } bdef /MlrRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lry uly sub 2 div def newpath tMatrix currentmatrix pop ulx rad add uly rad add translate rad rad scale 0 0 1 90 270 arc tMatrix setmatrix lrx rad sub lry rad sub translate rad rad scale 0 0 1 270 90 arc tMatrix setmatrix closepath} bdef /FlrRR {MlrRR stroke } bdef /PlrRR {MlrRR fill } bdef /MtbRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lrx ulx sub 2 div def newpath tMatrix currentmatrix pop ulx rad add uly rad add translate rad rad scale 0 0 1 180 360 arc tMatrix setmatrix lrx rad sub lry rad sub translate rad rad scale 0 0 1 0 180 arc tMatrix setmatrix closepath} bdef /FtbRR {MtbRR stroke } bdef /PtbRR {MtbRR fill } bdef /stri 6 array def /dtri 6 array def /smat 6 array def /dmat 6 array def /tmat1 6 array def /tmat2 6 array def /dif 3 array def /asub {/ind2 exch def /ind1 exch def dup dup ind1 get exch ind2 get sub exch } bdef /tri_to_matrix { 2 0 asub 3 1 asub 4 0 asub 5 1 asub dup 0 get exch 1 get 7 -1 roll astore } bdef /compute_transform { dmat dtri tri_to_matrix tmat1 invertmatrix smat stri tri_to_matrix tmat2 concatmatrix } bdef /ds {stri astore pop} bdef /dt {dtri astore pop} bdef /db {2 copy /cols xdef /rows xdef mul dup string currentfile exch readhexstring pop /bmap xdef pop pop} bdef /it {gs np dtri aload pop moveto lineto lineto cp c cols rows 8 compute_transform {bmap} image gr}bdef /il {newpath moveto lineto stroke}bdef currentdict end def %%EndProlog %%BeginSetup MathWorks begin 0 cap end %%EndSetup %%Page: 1 1 %%BeginPageSetup %%PageBoundingBox: 90 215 546 602 MathWorks begin bpage %%EndPageSetup %%BeginObject: obj1 bplot /dpi2point 12 def portraitMode 0216 7344 csm 864 110 5477 4651 MR c np 85 dict begin %Colortable dictionary /c0 { 0.000000 0.000000 0.000000 sr} bdef /c1 { 1.000000 1.000000 1.000000 sr} bdef /c2 { 0.900000 0.000000 0.000000 sr} bdef /c3 { 0.000000 0.820000 0.000000 sr} bdef /c4 { 0.000000 0.000000 0.800000 sr} bdef /c5 { 0.910000 0.820000 0.320000 sr} bdef /c6 { 1.000000 0.260000 0.820000 sr} bdef /c7 { 0.000000 0.820000 0.820000 sr} bdef c0 1 j 1 sg 0 0 6913 5186 PR 6 w 0 1769 5356 0 0 -1769 899 2158 4 MP PP -5356 0 0 1769 5356 0 0 -1769 899 2158 5 MP stroke 4 w DO 0 sg 899 2158 mt 899 389 L 899 389 mt 899 389 L 1872 2158 mt 1872 389 L 1872 389 mt 1872 389 L 2846 2158 mt 2846 389 L 2846 389 mt 2846 389 L 3820 2158 mt 3820 389 L 3820 389 mt 3820 389 L 4794 2158 mt 4794 389 L 4794 389 mt 4794 389 L 5768 2158 mt 5768 389 L 5768 389 mt 5768 389 L SO 6 w 899 2158 mt 6255 2158 L 899 2158 mt 899 389 L 899 2158 mt 899 2104 L %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 866 2303 mt (0) s 1872 2158 mt 1872 2104 L 1789 2303 mt (0.2) s 2846 2158 mt 2846 2104 L 2763 2303 mt (0.4) s 3820 2158 mt 3820 2104 L 3737 2303 mt (0.6) s 4794 2158 mt 4794 2104 L 4711 2303 mt (0.8) s 5768 2158 mt 5768 2104 L 5735 2303 mt (1) s gs 899 389 5357 1770 MR c np 5356 0 899 406 2 MP stroke 6255 406 PD gr gs 6182 333 147 147 MR c np 0 j 0 82 -71 -41 71 -41 6231 447 4 MP DP gr gs 899 389 5357 1770 MR c np 3015 0 899 424 2 MP stroke 2940 0 899 441 2 MP stroke 2886 0 899 459 2 MP stroke 2854 0 899 476 2 MP stroke 2854 0 899 494 2 MP stroke 2844 0 899 511 2 MP stroke 2838 0 899 529 2 MP stroke 2827 0 899 546 2 MP stroke 2817 0 899 564 2 MP stroke 2801 0 899 581 2 MP stroke 2795 0 899 599 2 MP stroke 2795 0 899 616 2 MP stroke 2774 0 899 634 2 MP stroke 2769 0 899 651 2 MP stroke 2752 0 899 669 2 MP stroke 2747 0 899 686 2 MP stroke 2736 0 899 704 2 MP stroke 2736 0 899 721 2 MP stroke 2731 0 899 739 2 MP stroke 2731 0 899 756 2 MP stroke 2726 0 899 774 2 MP stroke 2726 0 899 791 2 MP stroke 2726 0 899 809 2 MP stroke 2720 0 899 826 2 MP stroke 2710 0 899 844 2 MP stroke 2699 0 899 861 2 MP stroke 2699 0 899 879 2 MP stroke 2694 0 899 896 2 MP stroke 2694 0 899 914 2 MP stroke 2688 0 899 931 2 MP stroke 2683 0 899 949 2 MP stroke 2678 0 899 966 2 MP stroke 2672 0 899 984 2 MP stroke 2672 0 899 1002 2 MP stroke 2672 0 899 1019 2 MP stroke 2667 0 899 1037 2 MP stroke 2661 0 899 1054 2 MP stroke 2656 0 899 1072 2 MP stroke 2656 0 899 1089 2 MP stroke 2656 0 899 1107 2 MP stroke 2651 0 899 1124 2 MP stroke 2651 0 899 1142 2 MP stroke 2645 0 899 1159 2 MP stroke 2645 0 899 1177 2 MP stroke 2645 0 899 1194 2 MP stroke 2635 0 899 1212 2 MP stroke 2629 0 899 1229 2 MP stroke 2629 0 899 1247 2 MP stroke 2629 0 899 1264 2 MP stroke 2629 0 899 1282 2 MP stroke 2629 0 899 1299 2 MP stroke 2624 0 899 1317 2 MP stroke 2624 0 899 1334 2 MP stroke 2624 0 899 1352 2 MP stroke 2619 0 899 1369 2 MP stroke 2619 0 899 1387 2 MP stroke 2613 0 899 1404 2 MP stroke 2613 0 899 1422 2 MP stroke 2608 0 899 1439 2 MP stroke 2608 0 899 1457 2 MP stroke 2603 0 899 1474 2 MP stroke 2581 0 899 1492 2 MP stroke 2581 0 899 1509 2 MP stroke 2576 0 899 1527 2 MP stroke 2576 0 899 1544 2 MP stroke 2576 0 899 1562 2 MP stroke 2576 0 899 1580 2 MP stroke 2570 0 899 1597 2 MP stroke 2565 0 899 1615 2 MP stroke 2565 0 899 1632 2 MP stroke 2565 0 899 1650 2 MP stroke 2565 0 899 1667 2 MP stroke 2560 0 899 1685 2 MP stroke 2554 0 899 1702 2 MP stroke 2549 0 899 1720 2 MP stroke 2549 0 899 1737 2 MP stroke 2549 0 899 1755 2 MP stroke 2544 0 899 1772 2 MP stroke 2538 0 899 1790 2 MP stroke 2538 0 899 1807 2 MP stroke 2533 0 899 1825 2 MP stroke 2528 0 899 1842 2 MP stroke 2522 0 899 1860 2 MP stroke 2522 0 899 1877 2 MP stroke 2517 0 899 1895 2 MP stroke 2511 0 899 1912 2 MP stroke 2511 0 899 1930 2 MP stroke 2506 0 899 1947 2 MP stroke 2506 0 899 1965 2 MP stroke 2506 0 899 1982 2 MP stroke 2501 0 899 2000 2 MP stroke 2501 0 899 2017 2 MP stroke 2495 0 899 2035 2 MP stroke 2495 0 899 2052 2 MP stroke 2490 0 899 2070 2 MP stroke 2485 0 899 2087 2 MP stroke 2479 0 899 2105 2 MP stroke 2479 0 899 2122 2 MP stroke 2474 0 899 2140 2 MP stroke gr 1514 294 mt (Barcodes for VR\(n50000Dct[k=300, T=15000], 1.100\) \(S = 100\)\ \(dimension 0\)) s 1 sg 0 1769 5356 0 0 -1769 899 4615 4 MP PP -5356 0 0 1769 5356 0 0 -1769 899 4615 5 MP stroke 4 w DO 0 sg 899 4615 mt 899 2846 L 899 2846 mt 899 2846 L 1872 4615 mt 1872 2846 L 1872 2846 mt 1872 2846 L 2846 4615 mt 2846 2846 L 2846 2846 mt 2846 2846 L 3820 4615 mt 3820 2846 L 3820 2846 mt 3820 2846 L 4794 4615 mt 4794 2846 L 4794 2846 mt 4794 2846 L 5768 4615 mt 5768 2846 L 5768 2846 mt 5768 2846 L SO 6 w 899 4615 mt 6255 4615 L 899 4615 mt 899 2846 L 899 4615 mt 899 4561 L 866 4760 mt (0) s 1872 4615 mt 1872 4561 L 1789 4760 mt (0.2) s 2846 4615 mt 2846 4561 L 2763 4760 mt (0.4) s 3820 4615 mt 3820 4561 L 3737 4760 mt (0.6) s 4794 4615 mt 4794 4561 L 4711 4760 mt (0.8) s 5768 4615 mt 5768 4561 L 5735 4760 mt (1) s gs 899 2846 5357 1770 MR c np 2555 0 3700 2868 2 MP stroke 6255 2868 PD gr gs 6182 2795 147 147 MR c np 0 j 0 82 -71 -41 71 -41 6231 2909 4 MP DP gr gs 899 2846 5357 1770 MR c np 102 0 4160 2891 2 MP stroke 32 0 4080 2914 2 MP stroke 198 0 4075 2936 2 MP stroke 407 0 4005 2959 2 MP stroke 156 0 3994 2982 2 MP stroke 27 0 3989 3004 2 MP stroke 54 0 3967 3027 2 MP stroke 337 0 3946 3050 2 MP stroke 134 0 3941 3072 2 MP stroke 375 0 3898 3095 2 MP stroke 166 0 3893 3118 2 MP stroke 182 0 3887 3140 2 MP stroke 118 0 3871 3163 2 MP stroke 107 0 3860 3186 2 MP stroke 75 0 3855 3208 2 MP stroke 198 0 3850 3231 2 MP stroke 370 0 3844 3254 2 MP stroke 316 0 3839 3276 2 MP stroke 118 0 3839 3299 2 MP stroke 139 0 3834 3322 2 MP stroke 97 0 3828 3344 2 MP stroke 176 0 3818 3367 2 MP stroke 487 0 3807 3390 2 MP stroke 278 0 3807 3412 2 MP stroke 97 0 3801 3435 2 MP stroke 310 0 3791 3458 2 MP stroke 343 0 3785 3481 2 MP stroke 321 0 3780 3503 2 MP stroke 306 0 3769 3526 2 MP stroke 75 0 3769 3549 2 MP stroke 128 0 3759 3571 2 MP stroke 128 0 3759 3594 2 MP stroke 5 0 3759 3617 2 MP stroke 316 0 3753 3639 2 MP stroke 348 0 3743 3662 2 MP stroke 246 0 3743 3685 2 MP stroke 166 0 3737 3707 2 MP stroke 503 0 3732 3730 2 MP stroke 5 0 3721 3753 2 MP stroke 251 0 3716 3775 2 MP stroke 134 0 3716 3798 2 MP stroke 80 0 3716 3821 2 MP stroke 343 0 3710 3843 2 MP stroke 215 0 3710 3866 2 MP stroke 177 0 3710 3889 2 MP stroke 113 0 3710 3911 2 MP stroke 498 0 3705 3934 2 MP stroke 235 0 3700 3957 2 MP stroke 64 0 3700 3979 2 MP stroke 64 0 3700 4002 2 MP stroke 466 0 3694 4025 2 MP stroke 64 0 3689 4048 2 MP stroke 471 0 3684 4070 2 MP stroke 407 0 3684 4093 2 MP stroke 283 0 3684 4116 2 MP stroke 262 0 3684 4138 2 MP stroke 235 0 3684 4161 2 MP stroke 5 0 3684 4184 2 MP stroke 220 0 3678 4206 2 MP stroke 107 0 3678 4229 2 MP stroke 16 0 3678 4252 2 MP stroke 85 0 3668 4274 2 MP stroke 418 0 3657 4297 2 MP stroke 225 0 3657 4320 2 MP stroke 16 0 3657 4342 2 MP stroke 349 0 3651 4365 2 MP stroke 268 0 3635 4388 2 MP stroke 134 0 3635 4410 2 MP stroke 391 0 3625 4433 2 MP stroke 75 0 3625 4456 2 MP stroke 343 0 3614 4478 2 MP stroke 498 0 3603 4501 2 MP stroke 310 0 3593 4524 2 MP stroke 123 0 3571 4546 2 MP stroke 268 0 3560 4569 2 MP stroke 145 0 3528 4592 2 MP stroke gr 1514 2751 mt (Barcodes for VR\(n50000Dct[k=300, T=15000], 1.100\) \(S = 100\)\ \(dimension 1\)) s end %%Color Dict eplot %%EndObject epage end showpage %%Trailer %%EOF ================================================ FILE: src/matlab/experimental/vietoris_rips_bootstrap/outputs/n50000Dct-samples-10-20-1-15000-1.100.eps ================================================ %!PS-Adobe-2.0 EPSF-1.2 %%Creator: MATLAB, The MathWorks, Inc. Version 7.11.0.584 (R2010b). Operating System: Linux 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:07:17 UTC 2011 x86_64. %%Title: ./n50000Dct-samples-10-20-1-15000-1.100.eps %%CreationDate: 07/24/2011 11:44:12 %%DocumentNeededFonts: Helvetica %%DocumentProcessColors: Cyan Magenta Yellow Black %%Pages: 1 %%BoundingBox: 90 215 548 606 %%EndComments %%BeginProlog % MathWorks dictionary /MathWorks 160 dict begin % definition operators /bdef {bind def} bind def /ldef {load def} bind def /xdef {exch def} bdef /xstore {exch store} bdef % operator abbreviations /c /clip ldef /cc /concat ldef /cp /closepath ldef /gr /grestore ldef /gs /gsave ldef /mt /moveto ldef /np /newpath ldef /cm /currentmatrix ldef /sm /setmatrix ldef /rm /rmoveto ldef /rl /rlineto ldef /s {show newpath} bdef /sc {setcmykcolor} bdef /sr /setrgbcolor ldef /sg /setgray ldef /w /setlinewidth ldef /j /setlinejoin ldef /cap /setlinecap ldef /rc {rectclip} bdef /rf {rectfill} bdef % page state control /pgsv () def /bpage {/pgsv save def} bdef /epage {pgsv restore} bdef /bplot /gsave ldef /eplot {stroke grestore} bdef % orientation switch /portraitMode 0 def /landscapeMode 1 def /rotateMode 2 def % coordinate system mappings /dpi2point 0 def % font control /FontSize 0 def /FMS {/FontSize xstore findfont [FontSize 0 0 FontSize neg 0 0] makefont setfont} bdef /reencode {exch dup where {pop load} {pop StandardEncoding} ifelse exch dup 3 1 roll findfont dup length dict begin { 1 index /FID ne {def}{pop pop} ifelse } forall /Encoding exch def currentdict end definefont pop} bdef /isroman {findfont /CharStrings get /Agrave known} bdef /FMSR {3 1 roll 1 index dup isroman {reencode} {pop pop} ifelse exch FMS} bdef /csm {1 dpi2point div -1 dpi2point div scale neg translate dup landscapeMode eq {pop -90 rotate} {rotateMode eq {90 rotate} if} ifelse} bdef % line types: solid, dotted, dashed, dotdash /SO { [] 0 setdash } bdef /DO { [.5 dpi2point mul 4 dpi2point mul] 0 setdash } bdef /DA { [6 dpi2point mul] 0 setdash } bdef /DD { [.5 dpi2point mul 4 dpi2point mul 6 dpi2point mul 4 dpi2point mul] 0 setdash } bdef % macros for lines and objects /L {lineto stroke} bdef /MP {3 1 roll moveto 1 sub {rlineto} repeat} bdef /AP {{rlineto} repeat} bdef /PDlw -1 def /W {/PDlw currentlinewidth def setlinewidth} def /PP {closepath eofill} bdef /DP {closepath stroke} bdef /MR {4 -2 roll moveto dup 0 exch rlineto exch 0 rlineto neg 0 exch rlineto closepath} bdef /FR {MR stroke} bdef /PR {MR fill} bdef /L1i {{currentfile picstr readhexstring pop} image} bdef /tMatrix matrix def /MakeOval {newpath tMatrix currentmatrix pop translate scale 0 0 1 0 360 arc tMatrix setmatrix} bdef /FO {MakeOval stroke} bdef /PO {MakeOval fill} bdef /PD {currentlinewidth 2 div 0 360 arc fill PDlw -1 eq not {PDlw w /PDlw -1 def} if} def /FA {newpath tMatrix currentmatrix pop translate scale 0 0 1 5 -2 roll arc tMatrix setmatrix stroke} bdef /PA {newpath tMatrix currentmatrix pop translate 0 0 moveto scale 0 0 1 5 -2 roll arc closepath tMatrix setmatrix fill} bdef /FAn {newpath tMatrix currentmatrix pop translate scale 0 0 1 5 -2 roll arcn tMatrix setmatrix stroke} bdef /PAn {newpath tMatrix currentmatrix pop translate 0 0 moveto scale 0 0 1 5 -2 roll arcn closepath tMatrix setmatrix fill} bdef /vradius 0 def /hradius 0 def /lry 0 def /lrx 0 def /uly 0 def /ulx 0 def /rad 0 def /MRR {/vradius xdef /hradius xdef /lry xdef /lrx xdef /uly xdef /ulx xdef newpath tMatrix currentmatrix pop ulx hradius add uly vradius add translate hradius vradius scale 0 0 1 180 270 arc tMatrix setmatrix lrx hradius sub uly vradius add translate hradius vradius scale 0 0 1 270 360 arc tMatrix setmatrix lrx hradius sub lry vradius sub translate hradius vradius scale 0 0 1 0 90 arc tMatrix setmatrix ulx hradius add lry vradius sub translate hradius vradius scale 0 0 1 90 180 arc tMatrix setmatrix closepath} bdef /FRR {MRR stroke } bdef /PRR {MRR fill } bdef /MlrRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lry uly sub 2 div def newpath tMatrix currentmatrix pop ulx rad add uly rad add translate rad rad scale 0 0 1 90 270 arc tMatrix setmatrix lrx rad sub lry rad sub translate rad rad scale 0 0 1 270 90 arc tMatrix setmatrix closepath} bdef /FlrRR {MlrRR stroke } bdef /PlrRR {MlrRR fill } bdef /MtbRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lrx ulx sub 2 div def newpath tMatrix currentmatrix pop ulx rad add uly rad add translate rad rad scale 0 0 1 180 360 arc tMatrix setmatrix lrx rad sub lry rad sub translate rad rad scale 0 0 1 0 180 arc tMatrix setmatrix closepath} bdef /FtbRR {MtbRR stroke } bdef /PtbRR {MtbRR fill } bdef /stri 6 array def /dtri 6 array def /smat 6 array def /dmat 6 array def /tmat1 6 array def /tmat2 6 array def /dif 3 array def /asub {/ind2 exch def /ind1 exch def dup dup ind1 get exch ind2 get sub exch } bdef /tri_to_matrix { 2 0 asub 3 1 asub 4 0 asub 5 1 asub dup 0 get exch 1 get 7 -1 roll astore } bdef /compute_transform { dmat dtri tri_to_matrix tmat1 invertmatrix smat stri tri_to_matrix tmat2 concatmatrix } bdef /ds {stri astore pop} bdef /dt {dtri astore pop} bdef /db {2 copy /cols xdef /rows xdef mul dup string currentfile exch readhexstring pop /bmap xdef pop pop} bdef /it {gs np dtri aload pop moveto lineto lineto cp c cols rows 8 compute_transform {bmap} image gr}bdef /il {newpath moveto lineto stroke}bdef currentdict end def %%EndProlog %%BeginSetup MathWorks begin 0 cap end %%EndSetup %%Page: 1 1 %%BeginPageSetup %%PageBoundingBox: 90 215 548 606 MathWorks begin bpage %%EndPageSetup %%BeginObject: obj1 bplot /dpi2point 12 def portraitMode 0216 7344 csm 864 70 5507 4691 MR c np 85 dict begin %Colortable dictionary /c0 { 0.000000 0.000000 0.000000 sr} bdef /c1 { 1.000000 1.000000 1.000000 sr} bdef /c2 { 0.900000 0.000000 0.000000 sr} bdef /c3 { 0.000000 0.820000 0.000000 sr} bdef /c4 { 0.000000 0.000000 0.800000 sr} bdef /c5 { 0.910000 0.820000 0.320000 sr} bdef /c6 { 1.000000 0.260000 0.820000 sr} bdef /c7 { 0.000000 0.820000 0.820000 sr} bdef c0 1 j 1 sg 0 0 6913 5186 PR 6 w 0 1755 5356 0 0 -1755 899 2158 4 MP PP -5356 0 0 1755 5356 0 0 -1755 899 2158 5 MP stroke 4 w DO 0 sg 899 2158 mt 899 403 L 899 403 mt 899 403 L 1434 2158 mt 1434 403 L 1434 403 mt 1434 403 L 1970 2158 mt 1970 403 L 1970 403 mt 1970 403 L 2505 2158 mt 2505 403 L 2505 403 mt 2505 403 L 3041 2158 mt 3041 403 L 3041 403 mt 3041 403 L 3577 2158 mt 3577 403 L 3577 403 mt 3577 403 L 4112 2158 mt 4112 403 L 4112 403 mt 4112 403 L 4648 2158 mt 4648 403 L 4648 403 mt 4648 403 L 5183 2158 mt 5183 403 L 5183 403 mt 5183 403 L 5719 2158 mt 5719 403 L 5719 403 mt 5719 403 L 6255 2158 mt 6255 403 L 6255 403 mt 6255 403 L SO 6 w 899 2158 mt 6255 2158 L 899 2158 mt 899 403 L 899 2158 mt 899 2104 L %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 866 2303 mt (0) s 1434 2158 mt 1434 2104 L 1401 2303 mt (1) s 1970 2158 mt 1970 2104 L 1937 2303 mt (2) s 2505 2158 mt 2505 2104 L 2472 2303 mt (3) s 3041 2158 mt 3041 2104 L 3008 2303 mt (4) s 3577 2158 mt 3577 2104 L 3544 2303 mt (5) s 4112 2158 mt 4112 2104 L 4079 2303 mt (6) s 4648 2158 mt 4648 2104 L 4615 2303 mt (7) s 5183 2158 mt 5183 2104 L 5150 2303 mt (8) s 5719 2158 mt 5719 2104 L 5686 2303 mt (9) s 6255 2158 mt 6255 2104 L 6189 2303 mt (10) s gs 899 403 5357 1756 MR c np 5356 0 899 1280 2 MP stroke gr 1100 254 mt (VR Bootstrap for n50000Dct: k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 2716 314 mt (min) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 2870 254 mt ( = 10, k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 3266 314 mt (max) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 3447 254 mt ( = 20, k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 3843 314 mt (step) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 4024 254 mt ( = 1, T = 15000, S = 100 \(dimension 0\)) s 1 sg 0 1755 5356 0 0 -1755 899 4615 4 MP PP -5356 0 0 1755 5356 0 0 -1755 899 4615 5 MP stroke 4 w DO 0 sg 899 4615 mt 899 2860 L 899 2860 mt 899 2860 L 1434 4615 mt 1434 2860 L 1434 2860 mt 1434 2860 L 1970 4615 mt 1970 2860 L 1970 2860 mt 1970 2860 L 2505 4615 mt 2505 2860 L 2505 2860 mt 2505 2860 L 3041 4615 mt 3041 2860 L 3041 2860 mt 3041 2860 L 3577 4615 mt 3577 2860 L 3577 2860 mt 3577 2860 L 4112 4615 mt 4112 2860 L 4112 2860 mt 4112 2860 L 4648 4615 mt 4648 2860 L 4648 2860 mt 4648 2860 L 5183 4615 mt 5183 2860 L 5183 2860 mt 5183 2860 L 5719 4615 mt 5719 2860 L 5719 2860 mt 5719 2860 L 6255 4615 mt 6255 2860 L 6255 2860 mt 6255 2860 L SO 6 w 899 4615 mt 6255 4615 L 899 4615 mt 899 2860 L 899 4615 mt 899 4561 L 866 4760 mt (0) s 1434 4615 mt 1434 4561 L 1401 4760 mt (1) s 1970 4615 mt 1970 4561 L 1937 4760 mt (2) s 2505 4615 mt 2505 4561 L 2472 4760 mt (3) s 3041 4615 mt 3041 4561 L 3008 4760 mt (4) s 3577 4615 mt 3577 4561 L 3544 4760 mt (5) s 4112 4615 mt 4112 4561 L 4079 4760 mt (6) s 4648 4615 mt 4648 4561 L 4615 4760 mt (7) s 5183 4615 mt 5183 4561 L 5150 4760 mt (8) s 5719 4615 mt 5719 4561 L 5686 4760 mt (9) s 6255 4615 mt 6255 4561 L 6189 4760 mt (10) s gs 899 2860 5357 1756 MR c np 536 0 5719 2916 2 MP stroke 536 0 5719 2973 2 MP stroke 1072 0 5183 3029 2 MP stroke 1072 0 5183 3086 2 MP stroke 32 0 5167 3143 2 MP stroke 1607 0 4648 3199 2 MP stroke 535 0 4648 3256 2 MP stroke 32 0 4632 3312 2 MP stroke 32 0 4632 3369 2 MP stroke 32 0 4096 3426 2 MP stroke 32 0 4096 3482 2 MP stroke 32 0 4096 3539 2 MP stroke 32 0 4096 3595 2 MP stroke 535 0 3577 3652 2 MP stroke 33 0 3560 3709 2 MP stroke 536 0 3041 3765 2 MP stroke 536 0 3041 3822 2 MP stroke 32 0 3025 3879 2 MP stroke 535 0 1970 3935 2 MP stroke 535 0 1970 3992 2 MP stroke 535 0 1970 4048 2 MP stroke 1607 0 1434 4105 2 MP stroke 32 0 1418 4162 2 MP stroke 32 0 1418 4218 2 MP stroke 2678 0 899 4275 2 MP stroke 535 0 899 4331 2 MP stroke 16 0 899 4388 2 MP stroke 16 0 899 4445 2 MP stroke 16 0 899 4501 2 MP stroke 16 0 899 4558 2 MP stroke gr 1100 2711 mt (VR Bootstrap for n50000Dct: k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 2716 2771 mt (min) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 2870 2711 mt ( = 10, k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 3266 2771 mt (max) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 3447 2711 mt ( = 20, k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 3843 2771 mt (step) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 4024 2711 mt ( = 1, T = 15000, S = 100 \(dimension 1\)) s end %%Color Dict eplot %%EndObject epage end showpage %%Trailer %%EOF ================================================ FILE: src/matlab/experimental/vietoris_rips_bootstrap/outputs/n50000Dct-samples-13-17-1-15000-1.100.eps ================================================ %!PS-Adobe-2.0 EPSF-1.2 %%Creator: MATLAB, The MathWorks, Inc. Version 7.11.0.584 (R2010b). Operating System: Linux 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:07:17 UTC 2011 x86_64. %%Title: outputs/n50000Dct-samples-13-17-1-15000-1.100.eps %%CreationDate: 07/26/2011 00:28:56 %%DocumentNeededFonts: Helvetica %%DocumentProcessColors: Cyan Magenta Yellow Black %%Pages: 1 %%BoundingBox: 90 215 546 606 %%EndComments %%BeginProlog % MathWorks dictionary /MathWorks 160 dict begin % definition operators /bdef {bind def} bind def /ldef {load def} bind def /xdef {exch def} bdef /xstore {exch store} bdef % operator abbreviations /c /clip ldef /cc /concat ldef /cp /closepath ldef /gr /grestore ldef /gs /gsave ldef /mt /moveto ldef /np /newpath ldef /cm /currentmatrix ldef /sm /setmatrix ldef /rm /rmoveto ldef /rl /rlineto ldef /s {show newpath} bdef /sc {setcmykcolor} bdef /sr /setrgbcolor ldef /sg /setgray ldef /w /setlinewidth ldef /j /setlinejoin ldef /cap /setlinecap ldef /rc {rectclip} bdef /rf {rectfill} bdef % page state control /pgsv () def /bpage {/pgsv save def} bdef /epage {pgsv restore} bdef /bplot /gsave ldef /eplot {stroke grestore} bdef % orientation switch /portraitMode 0 def /landscapeMode 1 def /rotateMode 2 def % coordinate system mappings /dpi2point 0 def % font control /FontSize 0 def /FMS {/FontSize xstore findfont [FontSize 0 0 FontSize neg 0 0] makefont setfont} bdef /reencode {exch dup where {pop load} {pop StandardEncoding} ifelse exch dup 3 1 roll findfont dup length dict begin { 1 index /FID ne {def}{pop pop} ifelse } forall /Encoding exch def currentdict end definefont pop} bdef /isroman {findfont /CharStrings get /Agrave known} bdef /FMSR {3 1 roll 1 index dup isroman {reencode} {pop pop} ifelse exch FMS} bdef /csm {1 dpi2point div -1 dpi2point div scale neg translate dup landscapeMode eq {pop -90 rotate} {rotateMode eq {90 rotate} if} ifelse} bdef % line types: solid, dotted, dashed, dotdash /SO { [] 0 setdash } bdef /DO { [.5 dpi2point mul 4 dpi2point mul] 0 setdash } bdef /DA { [6 dpi2point mul] 0 setdash } bdef /DD { [.5 dpi2point mul 4 dpi2point mul 6 dpi2point mul 4 dpi2point mul] 0 setdash } bdef % macros for lines and objects /L {lineto stroke} bdef /MP {3 1 roll moveto 1 sub {rlineto} repeat} bdef /AP {{rlineto} repeat} bdef /PDlw -1 def /W {/PDlw currentlinewidth def setlinewidth} def /PP {closepath eofill} bdef /DP {closepath stroke} bdef /MR {4 -2 roll moveto dup 0 exch rlineto exch 0 rlineto neg 0 exch rlineto closepath} bdef /FR {MR stroke} bdef /PR {MR fill} bdef /L1i {{currentfile picstr readhexstring pop} image} bdef /tMatrix matrix def /MakeOval {newpath tMatrix currentmatrix pop translate scale 0 0 1 0 360 arc tMatrix setmatrix} bdef /FO {MakeOval stroke} bdef /PO {MakeOval fill} bdef /PD {currentlinewidth 2 div 0 360 arc fill PDlw -1 eq not {PDlw w /PDlw -1 def} if} def /FA {newpath tMatrix currentmatrix pop translate scale 0 0 1 5 -2 roll arc tMatrix setmatrix stroke} bdef /PA {newpath tMatrix currentmatrix pop translate 0 0 moveto scale 0 0 1 5 -2 roll arc closepath tMatrix setmatrix fill} bdef /FAn {newpath tMatrix currentmatrix pop translate scale 0 0 1 5 -2 roll arcn tMatrix setmatrix stroke} bdef /PAn {newpath tMatrix currentmatrix pop translate 0 0 moveto scale 0 0 1 5 -2 roll arcn closepath tMatrix setmatrix fill} bdef /vradius 0 def /hradius 0 def /lry 0 def /lrx 0 def /uly 0 def /ulx 0 def /rad 0 def /MRR {/vradius xdef /hradius xdef /lry xdef /lrx xdef /uly xdef /ulx xdef newpath tMatrix currentmatrix pop ulx hradius add uly vradius add translate hradius vradius scale 0 0 1 180 270 arc tMatrix setmatrix lrx hradius sub uly vradius add translate hradius vradius scale 0 0 1 270 360 arc tMatrix setmatrix lrx hradius sub lry vradius sub translate hradius vradius scale 0 0 1 0 90 arc tMatrix setmatrix ulx hradius add lry vradius sub translate hradius vradius scale 0 0 1 90 180 arc tMatrix setmatrix closepath} bdef /FRR {MRR stroke } bdef /PRR {MRR fill } bdef /MlrRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lry uly sub 2 div def newpath tMatrix currentmatrix pop ulx rad add uly rad add translate rad rad scale 0 0 1 90 270 arc tMatrix setmatrix lrx rad sub lry rad sub translate rad rad scale 0 0 1 270 90 arc tMatrix setmatrix closepath} bdef /FlrRR {MlrRR stroke } bdef /PlrRR {MlrRR fill } bdef /MtbRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lrx ulx sub 2 div def newpath tMatrix currentmatrix pop ulx rad add uly rad add translate rad rad scale 0 0 1 180 360 arc tMatrix setmatrix lrx rad sub lry rad sub translate rad rad scale 0 0 1 0 180 arc tMatrix setmatrix closepath} bdef /FtbRR {MtbRR stroke } bdef /PtbRR {MtbRR fill } bdef /stri 6 array def /dtri 6 array def /smat 6 array def /dmat 6 array def /tmat1 6 array def /tmat2 6 array def /dif 3 array def /asub {/ind2 exch def /ind1 exch def dup dup ind1 get exch ind2 get sub exch } bdef /tri_to_matrix { 2 0 asub 3 1 asub 4 0 asub 5 1 asub dup 0 get exch 1 get 7 -1 roll astore } bdef /compute_transform { dmat dtri tri_to_matrix tmat1 invertmatrix smat stri tri_to_matrix tmat2 concatmatrix } bdef /ds {stri astore pop} bdef /dt {dtri astore pop} bdef /db {2 copy /cols xdef /rows xdef mul dup string currentfile exch readhexstring pop /bmap xdef pop pop} bdef /it {gs np dtri aload pop moveto lineto lineto cp c cols rows 8 compute_transform {bmap} image gr}bdef /il {newpath moveto lineto stroke}bdef currentdict end def %%EndProlog %%BeginSetup MathWorks begin 0 cap end %%EndSetup %%Page: 1 1 %%BeginPageSetup %%PageBoundingBox: 90 215 546 606 MathWorks begin bpage %%EndPageSetup %%BeginObject: obj1 bplot /dpi2point 12 def portraitMode 0216 7344 csm 864 70 5473 4691 MR c np 85 dict begin %Colortable dictionary /c0 { 0.000000 0.000000 0.000000 sr} bdef /c1 { 1.000000 1.000000 1.000000 sr} bdef /c2 { 0.900000 0.000000 0.000000 sr} bdef /c3 { 0.000000 0.820000 0.000000 sr} bdef /c4 { 0.000000 0.000000 0.800000 sr} bdef /c5 { 0.910000 0.820000 0.320000 sr} bdef /c6 { 1.000000 0.260000 0.820000 sr} bdef /c7 { 0.000000 0.820000 0.820000 sr} bdef c0 1 j 1 sg 0 0 6913 5186 PR 6 w 0 1755 5356 0 0 -1755 899 2158 4 MP PP -5356 0 0 1755 5356 0 0 -1755 899 2158 5 MP stroke 4 w DO 0 sg 899 2158 mt 899 403 L 899 403 mt 899 403 L 1568 2158 mt 1568 403 L 1568 403 mt 1568 403 L 2238 2158 mt 2238 403 L 2238 403 mt 2238 403 L 2907 2158 mt 2907 403 L 2907 403 mt 2907 403 L 3577 2158 mt 3577 403 L 3577 403 mt 3577 403 L 4246 2158 mt 4246 403 L 4246 403 mt 4246 403 L 4916 2158 mt 4916 403 L 4916 403 mt 4916 403 L 5585 2158 mt 5585 403 L 5585 403 mt 5585 403 L 6255 2158 mt 6255 403 L 6255 403 mt 6255 403 L SO 6 w 899 2158 mt 6255 2158 L 899 2158 mt 899 403 L 899 2158 mt 899 2104 L %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 866 2303 mt (0) s 1568 2158 mt 1568 2104 L 1485 2303 mt (0.5) s 2238 2158 mt 2238 2104 L 2205 2303 mt (1) s 2907 2158 mt 2907 2104 L 2824 2303 mt (1.5) s 3577 2158 mt 3577 2104 L 3544 2303 mt (2) s 4246 2158 mt 4246 2104 L 4163 2303 mt (2.5) s 4916 2158 mt 4916 2104 L 4883 2303 mt (3) s 5585 2158 mt 5585 2104 L 5502 2303 mt (3.5) s 6255 2158 mt 6255 2104 L 6222 2303 mt (4) s gs 899 403 5357 1756 MR c np 5356 0 899 1280 2 MP stroke gr 1100 254 mt (VR Bootstrap for n50000Dct: k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 2716 314 mt (min) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 2870 254 mt ( = 13, k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 3266 314 mt (max) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 3447 254 mt ( = 17, k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 3843 314 mt (step) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 4024 254 mt ( = 1, T = 15000, S = 100 \(dimension 0\)) s 1 sg 0 1755 5356 0 0 -1755 899 4615 4 MP PP -5356 0 0 1755 5356 0 0 -1755 899 4615 5 MP stroke 4 w DO 0 sg 899 4615 mt 899 2860 L 899 2860 mt 899 2860 L 1568 4615 mt 1568 2860 L 1568 2860 mt 1568 2860 L 2238 4615 mt 2238 2860 L 2238 2860 mt 2238 2860 L 2907 4615 mt 2907 2860 L 2907 2860 mt 2907 2860 L 3577 4615 mt 3577 2860 L 3577 2860 mt 3577 2860 L 4246 4615 mt 4246 2860 L 4246 2860 mt 4246 2860 L 4916 4615 mt 4916 2860 L 4916 2860 mt 4916 2860 L 5585 4615 mt 5585 2860 L 5585 2860 mt 5585 2860 L 6255 4615 mt 6255 2860 L 6255 2860 mt 6255 2860 L SO 6 w 899 4615 mt 6255 4615 L 899 4615 mt 899 2860 L 899 4615 mt 899 4561 L 866 4760 mt (0) s 1568 4615 mt 1568 4561 L 1485 4760 mt (0.5) s 2238 4615 mt 2238 4561 L 2205 4760 mt (1) s 2907 4615 mt 2907 4561 L 2824 4760 mt (1.5) s 3577 4615 mt 3577 4561 L 3544 4760 mt (2) s 4246 4615 mt 4246 4561 L 4163 4760 mt (2.5) s 4916 4615 mt 4916 4561 L 4883 4760 mt (3) s 5585 4615 mt 5585 4561 L 5502 4760 mt (3.5) s 6255 4615 mt 6255 4561 L 6222 4760 mt (4) s gs 899 2860 5357 1756 MR c np 18 0 6238 2952 2 MP stroke 18 0 6238 3044 2 MP stroke 18 0 6238 3137 2 MP stroke 18 0 6238 3229 2 MP stroke 33 0 4899 3321 2 MP stroke 33 0 4899 3414 2 MP stroke 33 0 4899 3506 2 MP stroke 33 0 4899 3598 2 MP stroke 1339 0 3577 3691 2 MP stroke 33 0 3560 3783 2 MP stroke 1339 0 2238 3876 2 MP stroke 1339 0 2238 3968 2 MP stroke 33 0 2221 4060 2 MP stroke 2678 0 899 4153 2 MP stroke 1339 0 899 4245 2 MP stroke 16 0 899 4337 2 MP stroke 16 0 899 4430 2 MP stroke 16 0 899 4522 2 MP stroke gr 1100 2711 mt (VR Bootstrap for n50000Dct: k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 2716 2771 mt (min) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 2870 2711 mt ( = 13, k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 3266 2771 mt (max) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 3447 2711 mt ( = 17, k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 3843 2771 mt (step) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 4024 2711 mt ( = 1, T = 15000, S = 100 \(dimension 1\)) s end %%Color Dict eplot %%EndObject epage end showpage %%Trailer %%EOF ================================================ FILE: src/matlab/experimental/vietoris_rips_bootstrap/outputs/n50000Dct-samples-15-45-5-15000-1.100.eps ================================================ %!PS-Adobe-2.0 EPSF-1.2 %%Creator: MATLAB, The MathWorks, Inc. Version 7.11.0.584 (R2010b). Operating System: Linux 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:07:17 UTC 2011 x86_64. %%Title: ./n50000Dct-samples-15-45-5-15000-1.100.eps %%CreationDate: 07/23/2011 12:50:31 %%DocumentNeededFonts: Helvetica %%DocumentProcessColors: Cyan Magenta Yellow Black %%Pages: 1 %%BoundingBox: 90 215 546 606 %%EndComments %%BeginProlog % MathWorks dictionary /MathWorks 160 dict begin % definition operators /bdef {bind def} bind def /ldef {load def} bind def /xdef {exch def} bdef /xstore {exch store} bdef % operator abbreviations /c /clip ldef /cc /concat ldef /cp /closepath ldef /gr /grestore ldef /gs /gsave ldef /mt /moveto ldef /np /newpath ldef /cm /currentmatrix ldef /sm /setmatrix ldef /rm /rmoveto ldef /rl /rlineto ldef /s {show newpath} bdef /sc {setcmykcolor} bdef /sr /setrgbcolor ldef /sg /setgray ldef /w /setlinewidth ldef /j /setlinejoin ldef /cap /setlinecap ldef /rc {rectclip} bdef /rf {rectfill} bdef % page state control /pgsv () def /bpage {/pgsv save def} bdef /epage {pgsv restore} bdef /bplot /gsave ldef /eplot {stroke grestore} bdef % orientation switch /portraitMode 0 def /landscapeMode 1 def /rotateMode 2 def % coordinate system mappings /dpi2point 0 def % font control /FontSize 0 def /FMS {/FontSize xstore findfont [FontSize 0 0 FontSize neg 0 0] makefont setfont} bdef /reencode {exch dup where {pop load} {pop StandardEncoding} ifelse exch dup 3 1 roll findfont dup length dict begin { 1 index /FID ne {def}{pop pop} ifelse } forall /Encoding exch def currentdict end definefont pop} bdef /isroman {findfont /CharStrings get /Agrave known} bdef /FMSR {3 1 roll 1 index dup isroman {reencode} {pop pop} ifelse exch FMS} bdef /csm {1 dpi2point div -1 dpi2point div scale neg translate dup landscapeMode eq {pop -90 rotate} {rotateMode eq {90 rotate} if} ifelse} bdef % line types: solid, dotted, dashed, dotdash /SO { [] 0 setdash } bdef /DO { [.5 dpi2point mul 4 dpi2point mul] 0 setdash } bdef /DA { [6 dpi2point mul] 0 setdash } bdef /DD { [.5 dpi2point mul 4 dpi2point mul 6 dpi2point mul 4 dpi2point mul] 0 setdash } bdef % macros for lines and objects /L {lineto stroke} bdef /MP {3 1 roll moveto 1 sub {rlineto} repeat} bdef /AP {{rlineto} repeat} bdef /PDlw -1 def /W {/PDlw currentlinewidth def setlinewidth} def /PP {closepath eofill} bdef /DP {closepath stroke} bdef /MR {4 -2 roll moveto dup 0 exch rlineto exch 0 rlineto neg 0 exch rlineto closepath} bdef /FR {MR stroke} bdef /PR {MR fill} bdef /L1i {{currentfile picstr readhexstring pop} image} bdef /tMatrix matrix def /MakeOval {newpath tMatrix currentmatrix pop translate scale 0 0 1 0 360 arc tMatrix setmatrix} bdef /FO {MakeOval stroke} bdef /PO {MakeOval fill} bdef /PD {currentlinewidth 2 div 0 360 arc fill PDlw -1 eq not {PDlw w /PDlw -1 def} if} def /FA {newpath tMatrix currentmatrix pop translate scale 0 0 1 5 -2 roll arc tMatrix setmatrix stroke} bdef /PA {newpath tMatrix currentmatrix pop translate 0 0 moveto scale 0 0 1 5 -2 roll arc closepath tMatrix setmatrix fill} bdef /FAn {newpath tMatrix currentmatrix pop translate scale 0 0 1 5 -2 roll arcn tMatrix setmatrix stroke} bdef /PAn {newpath tMatrix currentmatrix pop translate 0 0 moveto scale 0 0 1 5 -2 roll arcn closepath tMatrix setmatrix fill} bdef /vradius 0 def /hradius 0 def /lry 0 def /lrx 0 def /uly 0 def /ulx 0 def /rad 0 def /MRR {/vradius xdef /hradius xdef /lry xdef /lrx xdef /uly xdef /ulx xdef newpath tMatrix currentmatrix pop ulx hradius add uly vradius add translate hradius vradius scale 0 0 1 180 270 arc tMatrix setmatrix lrx hradius sub uly vradius add translate hradius vradius scale 0 0 1 270 360 arc tMatrix setmatrix lrx hradius sub lry vradius sub translate hradius vradius scale 0 0 1 0 90 arc tMatrix setmatrix ulx hradius add lry vradius sub translate hradius vradius scale 0 0 1 90 180 arc tMatrix setmatrix closepath} bdef /FRR {MRR stroke } bdef /PRR {MRR fill } bdef /MlrRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lry uly sub 2 div def newpath tMatrix currentmatrix pop ulx rad add uly rad add translate rad rad scale 0 0 1 90 270 arc tMatrix setmatrix lrx rad sub lry rad sub translate rad rad scale 0 0 1 270 90 arc tMatrix setmatrix closepath} bdef /FlrRR {MlrRR stroke } bdef /PlrRR {MlrRR fill } bdef /MtbRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lrx ulx sub 2 div def newpath tMatrix currentmatrix pop ulx rad add uly rad add translate rad rad scale 0 0 1 180 360 arc tMatrix setmatrix lrx rad sub lry rad sub translate rad rad scale 0 0 1 0 180 arc tMatrix setmatrix closepath} bdef /FtbRR {MtbRR stroke } bdef /PtbRR {MtbRR fill } bdef /stri 6 array def /dtri 6 array def /smat 6 array def /dmat 6 array def /tmat1 6 array def /tmat2 6 array def /dif 3 array def /asub {/ind2 exch def /ind1 exch def dup dup ind1 get exch ind2 get sub exch } bdef /tri_to_matrix { 2 0 asub 3 1 asub 4 0 asub 5 1 asub dup 0 get exch 1 get 7 -1 roll astore } bdef /compute_transform { dmat dtri tri_to_matrix tmat1 invertmatrix smat stri tri_to_matrix tmat2 concatmatrix } bdef /ds {stri astore pop} bdef /dt {dtri astore pop} bdef /db {2 copy /cols xdef /rows xdef mul dup string currentfile exch readhexstring pop /bmap xdef pop pop} bdef /it {gs np dtri aload pop moveto lineto lineto cp c cols rows 8 compute_transform {bmap} image gr}bdef /il {newpath moveto lineto stroke}bdef currentdict end def %%EndProlog %%BeginSetup MathWorks begin 0 cap end %%EndSetup %%Page: 1 1 %%BeginPageSetup %%PageBoundingBox: 90 215 546 606 MathWorks begin bpage %%EndPageSetup %%BeginObject: obj1 bplot /dpi2point 12 def portraitMode 0216 7344 csm 864 70 5473 4691 MR c np 85 dict begin %Colortable dictionary /c0 { 0.000000 0.000000 0.000000 sr} bdef /c1 { 1.000000 1.000000 1.000000 sr} bdef /c2 { 0.900000 0.000000 0.000000 sr} bdef /c3 { 0.000000 0.820000 0.000000 sr} bdef /c4 { 0.000000 0.000000 0.800000 sr} bdef /c5 { 0.910000 0.820000 0.320000 sr} bdef /c6 { 1.000000 0.260000 0.820000 sr} bdef /c7 { 0.000000 0.820000 0.820000 sr} bdef c0 1 j 1 sg 0 0 6913 5186 PR 6 w 0 1755 5356 0 0 -1755 899 2158 4 MP PP -5356 0 0 1755 5356 0 0 -1755 899 2158 5 MP stroke 4 w DO 0 sg 899 2158 mt 899 403 L 899 403 mt 899 403 L 1791 2158 mt 1791 403 L 1791 403 mt 1791 403 L 2684 2158 mt 2684 403 L 2684 403 mt 2684 403 L 3577 2158 mt 3577 403 L 3577 403 mt 3577 403 L 4469 2158 mt 4469 403 L 4469 403 mt 4469 403 L 5362 2158 mt 5362 403 L 5362 403 mt 5362 403 L 6255 2158 mt 6255 403 L 6255 403 mt 6255 403 L SO 6 w 899 2158 mt 6255 2158 L 899 2158 mt 899 403 L 899 2158 mt 899 2104 L %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 866 2303 mt (0) s 1791 2158 mt 1791 2104 L 1758 2303 mt (1) s 2684 2158 mt 2684 2104 L 2651 2303 mt (2) s 3577 2158 mt 3577 2104 L 3544 2303 mt (3) s 4469 2158 mt 4469 2104 L 4436 2303 mt (4) s 5362 2158 mt 5362 2104 L 5329 2303 mt (5) s 6255 2158 mt 6255 2104 L 6222 2303 mt (6) s gs 899 403 5357 1756 MR c np 5356 0 899 1280 2 MP stroke gr 1027 254 mt (Image Patch Data with Density Filtration: k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 3275 314 mt (min) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 3429 254 mt ( = 15, k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 3825 314 mt (max) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 4006 254 mt ( = 45, k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 4402 314 mt (step) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 4583 254 mt ( = 5, T = 15000 \(dimension 0\)) s 1 sg 0 1755 5356 0 0 -1755 899 4615 4 MP PP -5356 0 0 1755 5356 0 0 -1755 899 4615 5 MP stroke 4 w DO 0 sg 899 4615 mt 899 2860 L 899 2860 mt 899 2860 L 1791 4615 mt 1791 2860 L 1791 2860 mt 1791 2860 L 2684 4615 mt 2684 2860 L 2684 2860 mt 2684 2860 L 3577 4615 mt 3577 2860 L 3577 2860 mt 3577 2860 L 4469 4615 mt 4469 2860 L 4469 2860 mt 4469 2860 L 5362 4615 mt 5362 2860 L 5362 2860 mt 5362 2860 L 6255 4615 mt 6255 2860 L 6255 2860 mt 6255 2860 L SO 6 w 899 4615 mt 6255 4615 L 899 4615 mt 899 2860 L 899 4615 mt 899 4561 L 866 4760 mt (0) s 1791 4615 mt 1791 4561 L 1758 4760 mt (1) s 2684 4615 mt 2684 4561 L 2651 4760 mt (2) s 3577 4615 mt 3577 4561 L 3544 4760 mt (3) s 4469 4615 mt 4469 4561 L 4436 4760 mt (4) s 5362 4615 mt 5362 4561 L 5329 4760 mt (5) s 6255 4615 mt 6255 4561 L 6222 4760 mt (6) s gs 899 2860 5357 1756 MR c np 18 0 6238 2920 2 MP stroke 18 0 6238 2981 2 MP stroke 18 0 6238 3041 2 MP stroke 18 0 6238 3102 2 MP stroke 18 0 6238 3162 2 MP stroke 32 0 5346 3223 2 MP stroke 32 0 5346 3283 2 MP stroke 32 0 5346 3344 2 MP stroke 32 0 5346 3404 2 MP stroke 32 0 4453 3465 2 MP stroke 32 0 4453 3525 2 MP stroke 32 0 4453 3586 2 MP stroke 32 0 4453 3646 2 MP stroke 1785 0 3577 3707 2 MP stroke 33 0 3560 3767 2 MP stroke 33 0 3560 3828 2 MP stroke 33 0 3560 3888 2 MP stroke 32 0 2668 3949 2 MP stroke 32 0 2668 4009 2 MP stroke 1786 0 1791 4070 2 MP stroke 893 0 1791 4130 2 MP stroke 893 0 1791 4191 2 MP stroke 32 0 1775 4251 2 MP stroke 892 0 899 4312 2 MP stroke 16 0 899 4372 2 MP stroke 16 0 899 4433 2 MP stroke 16 0 899 4493 2 MP stroke 16 0 899 4554 2 MP stroke gr 1027 2711 mt (Image Patch Data with Density Filtration: k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 3275 2771 mt (min) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 3429 2711 mt ( = 15, k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 3825 2771 mt (max) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 4006 2711 mt ( = 45, k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 4402 2771 mt (step) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 4583 2711 mt ( = 5, T = 15000 \(dimension 1\)) s end %%Color Dict eplot %%EndObject epage end showpage %%Trailer %%EOF ================================================ FILE: src/matlab/experimental/vietoris_rips_bootstrap/outputs/n50000Dct-samples-15-450-15-15000-1.100.eps ================================================ %!PS-Adobe-2.0 EPSF-1.2 %%Creator: MATLAB, The MathWorks, Inc. Version 7.11.0.584 (R2010b). Operating System: Linux 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:07:17 UTC 2011 x86_64. %%Title: ./n50000Dct-samples-15-450-15-15000-1.100.eps %%CreationDate: 07/23/2011 12:48:17 %%DocumentNeededFonts: Helvetica %%DocumentProcessColors: Cyan Magenta Yellow Black %%Pages: 1 %%BoundingBox: 90 215 543 606 %%EndComments %%BeginProlog % MathWorks dictionary /MathWorks 160 dict begin % definition operators /bdef {bind def} bind def /ldef {load def} bind def /xdef {exch def} bdef /xstore {exch store} bdef % operator abbreviations /c /clip ldef /cc /concat ldef /cp /closepath ldef /gr /grestore ldef /gs /gsave ldef /mt /moveto ldef /np /newpath ldef /cm /currentmatrix ldef /sm /setmatrix ldef /rm /rmoveto ldef /rl /rlineto ldef /s {show newpath} bdef /sc {setcmykcolor} bdef /sr /setrgbcolor ldef /sg /setgray ldef /w /setlinewidth ldef /j /setlinejoin ldef /cap /setlinecap ldef /rc {rectclip} bdef /rf {rectfill} bdef % page state control /pgsv () def /bpage {/pgsv save def} bdef /epage {pgsv restore} bdef /bplot /gsave ldef /eplot {stroke grestore} bdef % orientation switch /portraitMode 0 def /landscapeMode 1 def /rotateMode 2 def % coordinate system mappings /dpi2point 0 def % font control /FontSize 0 def /FMS {/FontSize xstore findfont [FontSize 0 0 FontSize neg 0 0] makefont setfont} bdef /reencode {exch dup where {pop load} {pop StandardEncoding} ifelse exch dup 3 1 roll findfont dup length dict begin { 1 index /FID ne {def}{pop pop} ifelse } forall /Encoding exch def currentdict end definefont pop} bdef /isroman {findfont /CharStrings get /Agrave known} bdef /FMSR {3 1 roll 1 index dup isroman {reencode} {pop pop} ifelse exch FMS} bdef /csm {1 dpi2point div -1 dpi2point div scale neg translate dup landscapeMode eq {pop -90 rotate} {rotateMode eq {90 rotate} if} ifelse} bdef % line types: solid, dotted, dashed, dotdash /SO { [] 0 setdash } bdef /DO { [.5 dpi2point mul 4 dpi2point mul] 0 setdash } bdef /DA { [6 dpi2point mul] 0 setdash } bdef /DD { [.5 dpi2point mul 4 dpi2point mul 6 dpi2point mul 4 dpi2point mul] 0 setdash } bdef % macros for lines and objects /L {lineto stroke} bdef /MP {3 1 roll moveto 1 sub {rlineto} repeat} bdef /AP {{rlineto} repeat} bdef /PDlw -1 def /W {/PDlw currentlinewidth def setlinewidth} def /PP {closepath eofill} bdef /DP {closepath stroke} bdef /MR {4 -2 roll moveto dup 0 exch rlineto exch 0 rlineto neg 0 exch rlineto closepath} bdef /FR {MR stroke} bdef /PR {MR fill} bdef /L1i {{currentfile picstr readhexstring pop} image} bdef /tMatrix matrix def /MakeOval {newpath tMatrix currentmatrix pop translate scale 0 0 1 0 360 arc tMatrix setmatrix} bdef /FO {MakeOval stroke} bdef /PO {MakeOval fill} bdef /PD {currentlinewidth 2 div 0 360 arc fill PDlw -1 eq not {PDlw w /PDlw -1 def} if} def /FA {newpath tMatrix currentmatrix pop translate scale 0 0 1 5 -2 roll arc tMatrix setmatrix stroke} bdef /PA {newpath tMatrix currentmatrix pop translate 0 0 moveto scale 0 0 1 5 -2 roll arc closepath tMatrix setmatrix fill} bdef /FAn {newpath tMatrix currentmatrix pop translate scale 0 0 1 5 -2 roll arcn tMatrix setmatrix stroke} bdef /PAn {newpath tMatrix currentmatrix pop translate 0 0 moveto scale 0 0 1 5 -2 roll arcn closepath tMatrix setmatrix fill} bdef /vradius 0 def /hradius 0 def /lry 0 def /lrx 0 def /uly 0 def /ulx 0 def /rad 0 def /MRR {/vradius xdef /hradius xdef /lry xdef /lrx xdef /uly xdef /ulx xdef newpath tMatrix currentmatrix pop ulx hradius add uly vradius add translate hradius vradius scale 0 0 1 180 270 arc tMatrix setmatrix lrx hradius sub uly vradius add translate hradius vradius scale 0 0 1 270 360 arc tMatrix setmatrix lrx hradius sub lry vradius sub translate hradius vradius scale 0 0 1 0 90 arc tMatrix setmatrix ulx hradius add lry vradius sub translate hradius vradius scale 0 0 1 90 180 arc tMatrix setmatrix closepath} bdef /FRR {MRR stroke } bdef /PRR {MRR fill } bdef /MlrRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lry uly sub 2 div def newpath tMatrix currentmatrix pop ulx rad add uly rad add translate rad rad scale 0 0 1 90 270 arc tMatrix setmatrix lrx rad sub lry rad sub translate rad rad scale 0 0 1 270 90 arc tMatrix setmatrix closepath} bdef /FlrRR {MlrRR stroke } bdef /PlrRR {MlrRR fill } bdef /MtbRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lrx ulx sub 2 div def newpath tMatrix currentmatrix pop ulx rad add uly rad add translate rad rad scale 0 0 1 180 360 arc tMatrix setmatrix lrx rad sub lry rad sub translate rad rad scale 0 0 1 0 180 arc tMatrix setmatrix closepath} bdef /FtbRR {MtbRR stroke } bdef /PtbRR {MtbRR fill } bdef /stri 6 array def /dtri 6 array def /smat 6 array def /dmat 6 array def /tmat1 6 array def /tmat2 6 array def /dif 3 array def /asub {/ind2 exch def /ind1 exch def dup dup ind1 get exch ind2 get sub exch } bdef /tri_to_matrix { 2 0 asub 3 1 asub 4 0 asub 5 1 asub dup 0 get exch 1 get 7 -1 roll astore } bdef /compute_transform { dmat dtri tri_to_matrix tmat1 invertmatrix smat stri tri_to_matrix tmat2 concatmatrix } bdef /ds {stri astore pop} bdef /dt {dtri astore pop} bdef /db {2 copy /cols xdef /rows xdef mul dup string currentfile exch readhexstring pop /bmap xdef pop pop} bdef /it {gs np dtri aload pop moveto lineto lineto cp c cols rows 8 compute_transform {bmap} image gr}bdef /il {newpath moveto lineto stroke}bdef currentdict end def %%EndProlog %%BeginSetup MathWorks begin 0 cap end %%EndSetup %%Page: 1 1 %%BeginPageSetup %%PageBoundingBox: 90 215 543 606 MathWorks begin bpage %%EndPageSetup %%BeginObject: obj1 bplot /dpi2point 12 def portraitMode 0216 7344 csm 864 70 5441 4691 MR c np 85 dict begin %Colortable dictionary /c0 { 0.000000 0.000000 0.000000 sr} bdef /c1 { 1.000000 1.000000 1.000000 sr} bdef /c2 { 0.900000 0.000000 0.000000 sr} bdef /c3 { 0.000000 0.820000 0.000000 sr} bdef /c4 { 0.000000 0.000000 0.800000 sr} bdef /c5 { 0.910000 0.820000 0.320000 sr} bdef /c6 { 1.000000 0.260000 0.820000 sr} bdef /c7 { 0.000000 0.820000 0.820000 sr} bdef c0 1 j 1 sg 0 0 6913 5186 PR 6 w 0 1755 5356 0 0 -1755 899 2158 4 MP PP -5356 0 0 1755 5356 0 0 -1755 899 2158 5 MP stroke 4 w DO 0 sg 899 2158 mt 899 403 L 899 403 mt 899 403 L 1822 2158 mt 1822 403 L 1822 403 mt 1822 403 L 2745 2158 mt 2745 403 L 2745 403 mt 2745 403 L 3669 2158 mt 3669 403 L 3669 403 mt 3669 403 L 4592 2158 mt 4592 403 L 4592 403 mt 4592 403 L 5516 2158 mt 5516 403 L 5516 403 mt 5516 403 L SO 6 w 899 2158 mt 6255 2158 L 899 2158 mt 899 403 L 899 2158 mt 899 2104 L %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 866 2303 mt (0) s 1822 2158 mt 1822 2104 L 1789 2303 mt (5) s 2745 2158 mt 2745 2104 L 2679 2303 mt (10) s 3669 2158 mt 3669 2104 L 3603 2303 mt (15) s 4592 2158 mt 4592 2104 L 4526 2303 mt (20) s 5516 2158 mt 5516 2104 L 5450 2303 mt (25) s gs 899 403 5357 1756 MR c np 5356 0 899 1280 2 MP stroke gr 961 254 mt (Image Patch Data with Density Filtration: k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 3209 314 mt (min) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 3363 254 mt ( = 15, k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 3759 314 mt (max) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 3940 254 mt ( = 450, k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 4403 314 mt (step) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 4584 254 mt ( = 15, T = 15000 \(dimension 0\)) s 1 sg 0 1755 5356 0 0 -1755 899 4615 4 MP PP -5356 0 0 1755 5356 0 0 -1755 899 4615 5 MP stroke 4 w DO 0 sg 899 4615 mt 899 2860 L 899 2860 mt 899 2860 L 1822 4615 mt 1822 2860 L 1822 2860 mt 1822 2860 L 2745 4615 mt 2745 2860 L 2745 2860 mt 2745 2860 L 3669 4615 mt 3669 2860 L 3669 2860 mt 3669 2860 L 4592 4615 mt 4592 2860 L 4592 2860 mt 4592 2860 L 5516 4615 mt 5516 2860 L 5516 2860 mt 5516 2860 L SO 6 w 899 4615 mt 6255 4615 L 899 4615 mt 899 2860 L 899 4615 mt 899 4561 L 866 4760 mt (0) s 1822 4615 mt 1822 4561 L 1789 4760 mt (5) s 2745 4615 mt 2745 4561 L 2679 4760 mt (10) s 3669 4615 mt 3669 4561 L 3603 4760 mt (15) s 4592 4615 mt 4592 4561 L 4526 4760 mt (20) s 5516 4615 mt 5516 4561 L 5450 4760 mt (25) s gs 899 2860 5357 1756 MR c np 32 0 2729 2916 2 MP stroke 184 0 2561 2973 2 MP stroke 32 0 2360 3029 2 MP stroke 32 0 2360 3086 2 MP stroke 32 0 1991 3143 2 MP stroke 32 0 1991 3199 2 MP stroke 32 0 1991 3256 2 MP stroke 32 0 1806 3312 2 MP stroke 32 0 1806 3369 2 MP stroke 32 0 1806 3426 2 MP stroke 4618 0 1637 3482 2 MP stroke 32 0 1621 3539 2 MP stroke 32 0 1621 3595 2 MP stroke 32 0 1621 3652 2 MP stroke 32 0 1437 3709 2 MP stroke 32 0 1437 3765 2 MP stroke 185 0 1268 3822 2 MP stroke 185 0 1268 3879 2 MP stroke 32 0 1252 3935 2 MP stroke 32 0 1252 3992 2 MP stroke 554 0 1083 4048 2 MP stroke 32 0 1067 4105 2 MP stroke 32 0 1067 4162 2 MP stroke 32 0 1067 4218 2 MP stroke 32 0 1067 4275 2 MP stroke 16 0 899 4331 2 MP stroke 16 0 899 4388 2 MP stroke 16 0 899 4445 2 MP stroke 16 0 899 4501 2 MP stroke 16 0 899 4558 2 MP stroke gr 961 2711 mt (Image Patch Data with Density Filtration: k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 3209 2771 mt (min) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 3363 2711 mt ( = 15, k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 3759 2771 mt (max) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 3940 2711 mt ( = 450, k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 4403 2771 mt (step) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 4584 2711 mt ( = 15, T = 15000 \(dimension 1\)) s end %%Color Dict eplot %%EndObject epage end showpage %%Trailer %%EOF ================================================ FILE: src/matlab/experimental/vietoris_rips_bootstrap/outputs/n50000Dct-samples-2-400-1-15000-1.100.eps ================================================ %!PS-Adobe-2.0 EPSF-1.2 %%Creator: MATLAB, The MathWorks, Inc. Version 7.11.0.584 (R2010b). Operating System: Linux 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:07:17 UTC 2011 x86_64. %%Title: outputs/n50000Dct-samples-2-400-1-15000-1.100.eps %%CreationDate: 07/25/2011 20:18:30 %%DocumentNeededFonts: Helvetica %%DocumentProcessColors: Cyan Magenta Yellow Black %%Pages: 1 %%BoundingBox: 90 215 543 606 %%EndComments %%BeginProlog % MathWorks dictionary /MathWorks 160 dict begin % definition operators /bdef {bind def} bind def /ldef {load def} bind def /xdef {exch def} bdef /xstore {exch store} bdef % operator abbreviations /c /clip ldef /cc /concat ldef /cp /closepath ldef /gr /grestore ldef /gs /gsave ldef /mt /moveto ldef /np /newpath ldef /cm /currentmatrix ldef /sm /setmatrix ldef /rm /rmoveto ldef /rl /rlineto ldef /s {show newpath} bdef /sc {setcmykcolor} bdef /sr /setrgbcolor ldef /sg /setgray ldef /w /setlinewidth ldef /j /setlinejoin ldef /cap /setlinecap ldef /rc {rectclip} bdef /rf {rectfill} bdef % page state control /pgsv () def /bpage {/pgsv save def} bdef /epage {pgsv restore} bdef /bplot /gsave ldef /eplot {stroke grestore} bdef % orientation switch /portraitMode 0 def /landscapeMode 1 def /rotateMode 2 def % coordinate system mappings /dpi2point 0 def % font control /FontSize 0 def /FMS {/FontSize xstore findfont [FontSize 0 0 FontSize neg 0 0] makefont setfont} bdef /reencode {exch dup where {pop load} {pop StandardEncoding} ifelse exch dup 3 1 roll findfont dup length dict begin { 1 index /FID ne {def}{pop pop} ifelse } forall /Encoding exch def currentdict end definefont pop} bdef /isroman {findfont /CharStrings get /Agrave known} bdef /FMSR {3 1 roll 1 index dup isroman {reencode} {pop pop} ifelse exch FMS} bdef /csm {1 dpi2point div -1 dpi2point div scale neg translate dup landscapeMode eq {pop -90 rotate} {rotateMode eq {90 rotate} if} ifelse} bdef % line types: solid, dotted, dashed, dotdash /SO { [] 0 setdash } bdef /DO { [.5 dpi2point mul 4 dpi2point mul] 0 setdash } bdef /DA { [6 dpi2point mul] 0 setdash } bdef /DD { [.5 dpi2point mul 4 dpi2point mul 6 dpi2point mul 4 dpi2point mul] 0 setdash } bdef % macros for lines and objects /L {lineto stroke} bdef /MP {3 1 roll moveto 1 sub {rlineto} repeat} bdef /AP {{rlineto} repeat} bdef /PDlw -1 def /W {/PDlw currentlinewidth def setlinewidth} def /PP {closepath eofill} bdef /DP {closepath stroke} bdef /MR {4 -2 roll moveto dup 0 exch rlineto exch 0 rlineto neg 0 exch rlineto closepath} bdef /FR {MR stroke} bdef /PR {MR fill} bdef /L1i {{currentfile picstr readhexstring pop} image} bdef /tMatrix matrix def /MakeOval {newpath tMatrix currentmatrix pop translate scale 0 0 1 0 360 arc tMatrix setmatrix} bdef /FO {MakeOval stroke} bdef /PO {MakeOval fill} bdef /PD {currentlinewidth 2 div 0 360 arc fill PDlw -1 eq not {PDlw w /PDlw -1 def} if} def /FA {newpath tMatrix currentmatrix pop translate scale 0 0 1 5 -2 roll arc tMatrix setmatrix stroke} bdef /PA {newpath tMatrix currentmatrix pop translate 0 0 moveto scale 0 0 1 5 -2 roll arc closepath tMatrix setmatrix fill} bdef /FAn {newpath tMatrix currentmatrix pop translate scale 0 0 1 5 -2 roll arcn tMatrix setmatrix stroke} bdef /PAn {newpath tMatrix currentmatrix pop translate 0 0 moveto scale 0 0 1 5 -2 roll arcn closepath tMatrix setmatrix fill} bdef /vradius 0 def /hradius 0 def /lry 0 def /lrx 0 def /uly 0 def /ulx 0 def /rad 0 def /MRR {/vradius xdef /hradius xdef /lry xdef /lrx xdef /uly xdef /ulx xdef newpath tMatrix currentmatrix pop ulx hradius add uly vradius add translate hradius vradius scale 0 0 1 180 270 arc tMatrix setmatrix lrx hradius sub uly vradius add translate hradius vradius scale 0 0 1 270 360 arc tMatrix setmatrix lrx hradius sub lry vradius sub translate hradius vradius scale 0 0 1 0 90 arc tMatrix setmatrix ulx hradius add lry vradius sub translate hradius vradius scale 0 0 1 90 180 arc tMatrix setmatrix closepath} bdef /FRR {MRR stroke } bdef /PRR {MRR fill } bdef /MlrRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lry uly sub 2 div def newpath tMatrix currentmatrix pop ulx rad add uly rad add translate rad rad scale 0 0 1 90 270 arc tMatrix setmatrix lrx rad sub lry rad sub translate rad rad scale 0 0 1 270 90 arc tMatrix setmatrix closepath} bdef /FlrRR {MlrRR stroke } bdef /PlrRR {MlrRR fill } bdef /MtbRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lrx ulx sub 2 div def newpath tMatrix currentmatrix pop ulx rad add uly rad add translate rad rad scale 0 0 1 180 360 arc tMatrix setmatrix lrx rad sub lry rad sub translate rad rad scale 0 0 1 0 180 arc tMatrix setmatrix closepath} bdef /FtbRR {MtbRR stroke } bdef /PtbRR {MtbRR fill } bdef /stri 6 array def /dtri 6 array def /smat 6 array def /dmat 6 array def /tmat1 6 array def /tmat2 6 array def /dif 3 array def /asub {/ind2 exch def /ind1 exch def dup dup ind1 get exch ind2 get sub exch } bdef /tri_to_matrix { 2 0 asub 3 1 asub 4 0 asub 5 1 asub dup 0 get exch 1 get 7 -1 roll astore } bdef /compute_transform { dmat dtri tri_to_matrix tmat1 invertmatrix smat stri tri_to_matrix tmat2 concatmatrix } bdef /ds {stri astore pop} bdef /dt {dtri astore pop} bdef /db {2 copy /cols xdef /rows xdef mul dup string currentfile exch readhexstring pop /bmap xdef pop pop} bdef /it {gs np dtri aload pop moveto lineto lineto cp c cols rows 8 compute_transform {bmap} image gr}bdef /il {newpath moveto lineto stroke}bdef currentdict end def %%EndProlog %%BeginSetup MathWorks begin 0 cap end %%EndSetup %%Page: 1 1 %%BeginPageSetup %%PageBoundingBox: 90 215 543 606 MathWorks begin bpage %%EndPageSetup %%BeginObject: obj1 bplot /dpi2point 12 def portraitMode 0216 7344 csm 864 70 5441 4691 MR c np 85 dict begin %Colortable dictionary /c0 { 0.000000 0.000000 0.000000 sr} bdef /c1 { 1.000000 1.000000 1.000000 sr} bdef /c2 { 0.900000 0.000000 0.000000 sr} bdef /c3 { 0.000000 0.820000 0.000000 sr} bdef /c4 { 0.000000 0.000000 0.800000 sr} bdef /c5 { 0.910000 0.820000 0.320000 sr} bdef /c6 { 1.000000 0.260000 0.820000 sr} bdef /c7 { 0.000000 0.820000 0.820000 sr} bdef c0 1 j 1 sg 0 0 6913 5186 PR 6 w 0 1755 5356 0 0 -1755 899 2158 4 MP PP -5356 0 0 1755 5356 0 0 -1755 899 2158 5 MP stroke 4 w DO 0 sg 899 2158 mt 899 403 L 899 403 mt 899 403 L 1571 2158 mt 1571 403 L 1571 403 mt 1571 403 L 2244 2158 mt 2244 403 L 2244 403 mt 2244 403 L 2917 2158 mt 2917 403 L 2917 403 mt 2917 403 L 3590 2158 mt 3590 403 L 3590 403 mt 3590 403 L 4263 2158 mt 4263 403 L 4263 403 mt 4263 403 L 4936 2158 mt 4936 403 L 4936 403 mt 4936 403 L 5609 2158 mt 5609 403 L 5609 403 mt 5609 403 L SO 6 w 899 2158 mt 6255 2158 L 899 2158 mt 899 403 L 899 2158 mt 899 2104 L %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 866 2303 mt (0) s 1571 2158 mt 1571 2104 L 1505 2303 mt (50) s 2244 2158 mt 2244 2104 L 2144 2303 mt (100) s 2917 2158 mt 2917 2104 L 2817 2303 mt (150) s 3590 2158 mt 3590 2104 L 3490 2303 mt (200) s 4263 2158 mt 4263 2104 L 4163 2303 mt (250) s 4936 2158 mt 4936 2104 L 4836 2303 mt (300) s 5609 2158 mt 5609 2104 L 5509 2303 mt (350) s gs 899 403 5357 1756 MR c np 5356 0 899 1280 2 MP stroke gr 1100 254 mt (VR Bootstrap for n50000Dct: k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 2716 314 mt (min) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 2870 254 mt ( = 2, k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 3200 314 mt (max) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 3381 254 mt ( = 400, k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 3844 314 mt (step) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 4025 254 mt ( = 1, T = 15000, S = 100 \(dimension 0\)) s 1 sg 0 1755 5356 0 0 -1755 899 4615 4 MP PP -5356 0 0 1755 5356 0 0 -1755 899 4615 5 MP stroke 4 w DO 0 sg 899 4615 mt 899 2860 L 899 2860 mt 899 2860 L 1571 4615 mt 1571 2860 L 1571 2860 mt 1571 2860 L 2244 4615 mt 2244 2860 L 2244 2860 mt 2244 2860 L 2917 4615 mt 2917 2860 L 2917 2860 mt 2917 2860 L 3590 4615 mt 3590 2860 L 3590 2860 mt 3590 2860 L 4263 4615 mt 4263 2860 L 4263 2860 mt 4263 2860 L 4936 4615 mt 4936 2860 L 4936 2860 mt 4936 2860 L 5609 4615 mt 5609 2860 L 5609 2860 mt 5609 2860 L SO 6 w 899 4615 mt 6255 4615 L 899 4615 mt 899 2860 L 899 4615 mt 899 4561 L 866 4760 mt (0) s 1571 4615 mt 1571 4561 L 1505 4760 mt (50) s 2244 4615 mt 2244 4561 L 2144 4760 mt (100) s 2917 4615 mt 2917 4561 L 2817 4760 mt (150) s 3590 4615 mt 3590 4561 L 3490 4760 mt (200) s 4263 4615 mt 4263 4561 L 4163 4760 mt (250) s 4936 4615 mt 4936 4561 L 4836 4760 mt (300) s 5609 4615 mt 5609 4561 L 5509 4760 mt (350) s gs 899 2860 5357 1756 MR c np 32 0 4597 2864 2 MP stroke 32 0 4489 2868 2 MP stroke 14 0 4424 2873 2 MP stroke 32 0 4368 2877 2 MP stroke 32 0 4166 2881 2 MP stroke 32 0 3762 2886 2 MP stroke 32 0 3695 2890 2 MP stroke 32 0 3655 2895 2 MP stroke 32 0 3601 2899 2 MP stroke 33 0 3560 2903 2 MP stroke 32 0 3534 2908 2 MP stroke 32 0 3493 2912 2 MP stroke 32 0 3453 2916 2 MP stroke 32 0 3439 2921 2 MP stroke 33 0 3412 2925 2 MP stroke 32 0 3399 2930 2 MP stroke 32 0 3372 2934 2 MP stroke 32 0 3359 2938 2 MP stroke 32 0 3332 2943 2 MP stroke 14 0 3307 2947 2 MP stroke 32 0 3278 2951 2 MP stroke 32 0 3130 2956 2 MP stroke 32 0 3116 2960 2 MP stroke 32 0 3076 2965 2 MP stroke 32 0 3063 2969 2 MP stroke 32 0 3049 2973 2 MP stroke 32 0 3036 2978 2 MP stroke 32 0 3036 2982 2 MP stroke 32 0 3009 2986 2 MP stroke 32 0 2982 2991 2 MP stroke 32 0 2955 2995 2 MP stroke 32 0 2955 3000 2 MP stroke 13 0 2931 3004 2 MP stroke 32 0 2901 3008 2 MP stroke 32 0 2901 3013 2 MP stroke 32 0 2888 3017 2 MP stroke 32 0 2888 3021 2 MP stroke 32 0 2847 3026 2 MP stroke 32 0 2834 3030 2 MP stroke 33 0 2793 3035 2 MP stroke 33 0 2766 3039 2 MP stroke 32 0 2753 3043 2 MP stroke 32 0 2740 3048 2 MP stroke 32 0 2740 3052 2 MP stroke 32 0 2726 3056 2 MP stroke 13 0 2702 3061 2 MP stroke 32 0 2686 3065 2 MP stroke 32 0 2686 3070 2 MP stroke 32 0 2672 3074 2 MP stroke 27 0 2648 3078 2 MP stroke 13 0 2648 3083 2 MP stroke 33 0 2618 3087 2 MP stroke 32 0 2605 3091 2 MP stroke 32 0 2578 3096 2 MP stroke 32 0 2578 3100 2 MP stroke 32 0 2565 3105 2 MP stroke 14 0 2567 3109 2 MP stroke 32 0 2538 3113 2 MP stroke 32 0 2511 3118 2 MP stroke 32 0 2511 3122 2 MP stroke 32 0 2497 3126 2 MP stroke 32 0 2484 3131 2 MP stroke 32 0 2484 3135 2 MP stroke 33 0 2470 3140 2 MP stroke 32 0 2457 3144 2 MP stroke 13 0 2460 3148 2 MP stroke 33 0 2443 3153 2 MP stroke 32 0 2430 3157 2 MP stroke 32 0 2430 3161 2 MP stroke 32 0 2417 3166 2 MP stroke 14 0 2419 3170 2 MP stroke 32 0 2403 3175 2 MP stroke 27 0 2406 3179 2 MP stroke 32 0 2390 3183 2 MP stroke 32 0 2390 3188 2 MP stroke 32 0 2376 3192 2 MP stroke 32 0 2376 3196 2 MP stroke 32 0 2363 3201 2 MP stroke 32 0 2363 3205 2 MP stroke 32 0 2349 3210 2 MP stroke 32 0 2349 3214 2 MP stroke 32 0 2336 3218 2 MP stroke 32 0 2336 3223 2 MP stroke 32 0 2322 3227 2 MP stroke 32 0 2322 3232 2 MP stroke 13 0 2325 3236 2 MP stroke 13 0 2325 3240 2 MP stroke 32 0 2309 3245 2 MP stroke 32 0 2309 3249 2 MP stroke 33 0 2295 3253 2 MP stroke 33 0 2295 3258 2 MP stroke 33 0 2295 3262 2 MP stroke 14 0 2298 3267 2 MP stroke 32 0 2282 3271 2 MP stroke 32 0 2282 3275 2 MP stroke 32 0 2269 3280 2 MP stroke 14 0 2271 3284 2 MP stroke 27 0 2258 3288 2 MP stroke 13 0 2258 3293 2 MP stroke 4011 0 2244 3297 2 MP stroke 32 0 2228 3302 2 MP stroke 32 0 2228 3306 2 MP stroke 32 0 2215 3310 2 MP stroke 32 0 2215 3315 2 MP stroke 14 0 2217 3319 2 MP stroke 27 0 2204 3323 2 MP stroke 14 0 2190 3328 2 MP stroke 32 0 2174 3332 2 MP stroke 32 0 2161 3337 2 MP stroke 32 0 2161 3341 2 MP stroke 33 0 2147 3345 2 MP stroke 67 0 2150 3350 2 MP stroke 13 0 2150 3354 2 MP stroke 32 0 2134 3358 2 MP stroke 32 0 2134 3363 2 MP stroke 32 0 2121 3367 2 MP stroke 32 0 2121 3372 2 MP stroke 32 0 2121 3376 2 MP stroke 32 0 2107 3380 2 MP stroke 32 0 2107 3385 2 MP stroke 32 0 2107 3389 2 MP stroke 32 0 2107 3393 2 MP stroke 32 0 2094 3398 2 MP stroke 32 0 2094 3402 2 MP stroke 32 0 2094 3407 2 MP stroke 32 0 2080 3411 2 MP stroke 32 0 2080 3415 2 MP stroke 32 0 2080 3420 2 MP stroke 32 0 2080 3424 2 MP stroke 32 0 2067 3428 2 MP stroke 32 0 2067 3433 2 MP stroke 32 0 2067 3437 2 MP stroke 32 0 2067 3442 2 MP stroke 32 0 2053 3446 2 MP stroke 32 0 2053 3450 2 MP stroke 32 0 2053 3455 2 MP stroke 32 0 2053 3459 2 MP stroke 32 0 2040 3463 2 MP stroke 32 0 2040 3468 2 MP stroke 32 0 2040 3472 2 MP stroke 14 0 2042 3477 2 MP stroke 32 0 2026 3481 2 MP stroke 13 0 2029 3485 2 MP stroke 13 0 2029 3490 2 MP stroke 32 0 2013 3494 2 MP stroke 32 0 2013 3498 2 MP stroke 33 0 1999 3503 2 MP stroke 33 0 1999 3507 2 MP stroke 33 0 1999 3512 2 MP stroke 33 0 1999 3516 2 MP stroke 13 0 1989 3520 2 MP stroke 13 0 1989 3525 2 MP stroke 13 0 1989 3529 2 MP stroke 13 0 1989 3533 2 MP stroke 32 0 1959 3538 2 MP stroke 32 0 1959 3542 2 MP stroke 13 0 1962 3547 2 MP stroke 13 0 1962 3551 2 MP stroke 32 0 1932 3555 2 MP stroke 32 0 1932 3560 2 MP stroke 27 0 1935 3564 2 MP stroke 32 0 1919 3569 2 MP stroke 32 0 1919 3573 2 MP stroke 32 0 1905 3577 2 MP stroke 32 0 1905 3582 2 MP stroke 32 0 1905 3586 2 MP stroke 54 0 1908 3590 2 MP stroke 32 0 1892 3595 2 MP stroke 14 0 1894 3599 2 MP stroke 14 0 1894 3604 2 MP stroke 32 0 1878 3608 2 MP stroke 32 0 1878 3612 2 MP stroke 32 0 1865 3617 2 MP stroke 32 0 1865 3621 2 MP stroke 32 0 1865 3625 2 MP stroke 32 0 1865 3630 2 MP stroke 32 0 1851 3634 2 MP stroke 32 0 1851 3639 2 MP stroke 13 0 1854 3643 2 MP stroke 13 0 1854 3647 2 MP stroke 32 0 1838 3652 2 MP stroke 32 0 1838 3656 2 MP stroke 33 0 1824 3660 2 MP stroke 33 0 1824 3665 2 MP stroke 14 0 1827 3669 2 MP stroke 14 0 1827 3674 2 MP stroke 32 0 1811 3678 2 MP stroke 32 0 1811 3682 2 MP stroke 32 0 1798 3687 2 MP stroke 32 0 1798 3691 2 MP stroke 32 0 1798 3695 2 MP stroke 32 0 1798 3700 2 MP stroke 32 0 1784 3704 2 MP stroke 32 0 1784 3709 2 MP stroke 32 0 1784 3713 2 MP stroke 32 0 1784 3717 2 MP stroke 14 0 1773 3722 2 MP stroke 14 0 1773 3726 2 MP stroke 14 0 1773 3730 2 MP stroke 14 0 1773 3735 2 MP stroke 32 0 1744 3739 2 MP stroke 32 0 1744 3744 2 MP stroke 32 0 1744 3748 2 MP stroke 32 0 1744 3752 2 MP stroke 32 0 1730 3757 2 MP stroke 32 0 1730 3761 2 MP stroke 32 0 1730 3765 2 MP stroke 32 0 1730 3770 2 MP stroke 32 0 1717 3774 2 MP stroke 32 0 1717 3779 2 MP stroke 32 0 1717 3783 2 MP stroke 32 0 1717 3787 2 MP stroke 32 0 1703 3792 2 MP stroke 32 0 1703 3796 2 MP stroke 32 0 1703 3800 2 MP stroke 32 0 1703 3805 2 MP stroke 32 0 1690 3809 2 MP stroke 32 0 1690 3814 2 MP stroke 32 0 1690 3818 2 MP stroke 32 0 1690 3822 2 MP stroke 33 0 1676 3827 2 MP stroke 33 0 1676 3831 2 MP stroke 33 0 1676 3835 2 MP stroke 33 0 1676 3840 2 MP stroke 32 0 1663 3844 2 MP stroke 32 0 1663 3849 2 MP stroke 13 0 1666 3853 2 MP stroke 13 0 1666 3857 2 MP stroke 33 0 1649 3862 2 MP stroke 33 0 1649 3866 2 MP stroke 32 0 1636 3870 2 MP stroke 32 0 1636 3875 2 MP stroke 32 0 1636 3879 2 MP stroke 32 0 1636 3884 2 MP stroke 32 0 1623 3888 2 MP stroke 32 0 1623 3892 2 MP stroke 14 0 1625 3897 2 MP stroke 14 0 1625 3901 2 MP stroke 32 0 1609 3905 2 MP stroke 32 0 1609 3910 2 MP stroke 32 0 1596 3914 2 MP stroke 32 0 1596 3919 2 MP stroke 32 0 1582 3923 2 MP stroke 32 0 1582 3927 2 MP stroke 27 0 1585 3932 2 MP stroke 32 0 1569 3936 2 MP stroke 32 0 1569 3941 2 MP stroke 41 0 1571 3945 2 MP stroke 32 0 1555 3949 2 MP stroke 32 0 1555 3954 2 MP stroke 32 0 1555 3958 2 MP stroke 32 0 1542 3962 2 MP stroke 32 0 1542 3967 2 MP stroke 14 0 1544 3971 2 MP stroke 14 0 1544 3976 2 MP stroke 33 0 1528 3980 2 MP stroke 33 0 1528 3984 2 MP stroke 32 0 1515 3989 2 MP stroke 32 0 1515 3993 2 MP stroke 32 0 1515 3997 2 MP stroke 27 0 1504 4002 2 MP stroke 14 0 1504 4006 2 MP stroke 14 0 1504 4011 2 MP stroke 14 0 1504 4015 2 MP stroke 32 0 1475 4019 2 MP stroke 14 0 1477 4024 2 MP stroke 14 0 1477 4028 2 MP stroke 14 0 1477 4032 2 MP stroke 32 0 1461 4037 2 MP stroke 807 0 1464 4041 2 MP stroke 32 0 1448 4046 2 MP stroke 32 0 1448 4050 2 MP stroke 32 0 1448 4054 2 MP stroke 32 0 1448 4059 2 MP stroke 32 0 1434 4063 2 MP stroke 32 0 1434 4067 2 MP stroke 32 0 1434 4072 2 MP stroke 32 0 1434 4076 2 MP stroke 32 0 1421 4081 2 MP stroke 32 0 1421 4085 2 MP stroke 32 0 1421 4089 2 MP stroke 32 0 1421 4094 2 MP stroke 27 0 1423 4098 2 MP stroke 32 0 1407 4102 2 MP stroke 32 0 1407 4107 2 MP stroke 13 0 1410 4111 2 MP stroke 32 0 1394 4116 2 MP stroke 27 0 1396 4120 2 MP stroke 14 0 1396 4124 2 MP stroke 32 0 1380 4129 2 MP stroke 13 0 1383 4133 2 MP stroke 27 0 1356 4137 2 MP stroke 27 0 1356 4142 2 MP stroke 14 0 1356 4146 2 MP stroke 40 0 1343 4151 2 MP stroke 32 0 1327 4155 2 MP stroke 32 0 1327 4159 2 MP stroke 32 0 1327 4164 2 MP stroke 81 0 1329 4168 2 MP stroke 32 0 1313 4172 2 MP stroke 32 0 1313 4177 2 MP stroke 32 0 1313 4181 2 MP stroke 13 0 1316 4186 2 MP stroke 32 0 1300 4190 2 MP stroke 32 0 1300 4194 2 MP stroke 32 0 1300 4199 2 MP stroke 14 0 1302 4203 2 MP stroke 32 0 1286 4207 2 MP stroke 13 0 1289 4212 2 MP stroke 32 0 1273 4216 2 MP stroke 32 0 1273 4221 2 MP stroke 27 0 1275 4225 2 MP stroke 27 0 1275 4229 2 MP stroke 32 0 1259 4234 2 MP stroke 32 0 1259 4238 2 MP stroke 32 0 1259 4242 2 MP stroke 32 0 1246 4247 2 MP stroke 32 0 1246 4251 2 MP stroke 32 0 1246 4256 2 MP stroke 14 0 1248 4260 2 MP stroke 32 0 1232 4264 2 MP stroke 32 0 1232 4269 2 MP stroke 32 0 1232 4273 2 MP stroke 32 0 1219 4278 2 MP stroke 32 0 1219 4282 2 MP stroke 32 0 1219 4286 2 MP stroke 41 0 1221 4291 2 MP stroke 14 0 1221 4295 2 MP stroke 33 0 1205 4299 2 MP stroke 33 0 1205 4304 2 MP stroke 33 0 1205 4308 2 MP stroke 32 0 1192 4313 2 MP stroke 32 0 1192 4317 2 MP stroke 32 0 1192 4321 2 MP stroke 32 0 1192 4326 2 MP stroke 32 0 1192 4330 2 MP stroke 33 0 1178 4334 2 MP stroke 33 0 1178 4339 2 MP stroke 33 0 1178 4343 2 MP stroke 33 0 1178 4348 2 MP stroke 33 0 1178 4352 2 MP stroke 32 0 1165 4356 2 MP stroke 32 0 1165 4361 2 MP stroke 32 0 1165 4365 2 MP stroke 13 0 1168 4369 2 MP stroke 32 0 1152 4374 2 MP stroke 32 0 1152 4378 2 MP stroke 32 0 1152 4383 2 MP stroke 32 0 1138 4387 2 MP stroke 32 0 1138 4391 2 MP stroke 32 0 1138 4396 2 MP stroke 14 0 1127 4400 2 MP stroke 14 0 1127 4404 2 MP stroke 40 0 1114 4409 2 MP stroke 27 0 1114 4413 2 MP stroke 32 0 1098 4418 2 MP stroke 95 0 1100 4422 2 MP stroke 14 0 1100 4426 2 MP stroke 32 0 1084 4431 2 MP stroke 32 0 1084 4435 2 MP stroke 32 0 1071 4439 2 MP stroke 32 0 1071 4444 2 MP stroke 32 0 1071 4448 2 MP stroke 32 0 1071 4453 2 MP stroke 14 0 1073 4457 2 MP stroke 33 0 1057 4461 2 MP stroke 13 0 1060 4466 2 MP stroke 13 0 1060 4470 2 MP stroke 32 0 1044 4474 2 MP stroke 14 0 1033 4479 2 MP stroke 14 0 1033 4483 2 MP stroke 14 0 1033 4488 2 MP stroke 40 0 1020 4492 2 MP stroke 32 0 1004 4496 2 MP stroke 32 0 1004 4501 2 MP stroke 32 0 990 4505 2 MP stroke 32 0 990 4509 2 MP stroke 32 0 990 4514 2 MP stroke 13 0 993 4518 2 MP stroke 32 0 977 4523 2 MP stroke 32 0 977 4527 2 MP stroke 94 0 979 4531 2 MP stroke 32 0 963 4536 2 MP stroke 54 0 966 4540 2 MP stroke 13 0 966 4544 2 MP stroke 13 0 966 4549 2 MP stroke 32 0 936 4553 2 MP stroke 32 0 936 4558 2 MP stroke 32 0 936 4562 2 MP stroke 32 0 936 4566 2 MP stroke 32 0 923 4571 2 MP stroke 32 0 923 4575 2 MP stroke 41 0 925 4579 2 MP stroke 32 0 909 4584 2 MP stroke 32 0 909 4588 2 MP stroke 13 0 912 4593 2 MP stroke 29 0 899 4597 2 MP stroke 29 0 899 4601 2 MP stroke 16 0 899 4606 2 MP stroke 16 0 899 4610 2 MP stroke gr 1100 2711 mt (VR Bootstrap for n50000Dct: k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 2716 2771 mt (min) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 2870 2711 mt ( = 2, k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 3200 2771 mt (max) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 3381 2711 mt ( = 400, k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 3844 2771 mt (step) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 4025 2711 mt ( = 1, T = 15000, S = 100 \(dimension 1\)) s end %%Color Dict eplot %%EndObject epage end showpage %%Trailer %%EOF ================================================ FILE: src/matlab/experimental/vietoris_rips_bootstrap/outputs/n50000Dct-samples-25-350-25-15000-1.100.eps ================================================ %!PS-Adobe-2.0 EPSF-1.2 %%Creator: MATLAB, The MathWorks, Inc. Version 7.11.0.584 (R2010b). Operating System: Linux 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:07:17 UTC 2011 x86_64. %%Title: ./n50000Dct-samples-25-350-25-15000-1.100.eps %%CreationDate: 07/23/2011 12:34:52 %%DocumentNeededFonts: Helvetica %%DocumentProcessColors: Cyan Magenta Yellow Black %%Pages: 1 %%BoundingBox: 90 215 543 606 %%EndComments %%BeginProlog % MathWorks dictionary /MathWorks 160 dict begin % definition operators /bdef {bind def} bind def /ldef {load def} bind def /xdef {exch def} bdef /xstore {exch store} bdef % operator abbreviations /c /clip ldef /cc /concat ldef /cp /closepath ldef /gr /grestore ldef /gs /gsave ldef /mt /moveto ldef /np /newpath ldef /cm /currentmatrix ldef /sm /setmatrix ldef /rm /rmoveto ldef /rl /rlineto ldef /s {show newpath} bdef /sc {setcmykcolor} bdef /sr /setrgbcolor ldef /sg /setgray ldef /w /setlinewidth ldef /j /setlinejoin ldef /cap /setlinecap ldef /rc {rectclip} bdef /rf {rectfill} bdef % page state control /pgsv () def /bpage {/pgsv save def} bdef /epage {pgsv restore} bdef /bplot /gsave ldef /eplot {stroke grestore} bdef % orientation switch /portraitMode 0 def /landscapeMode 1 def /rotateMode 2 def % coordinate system mappings /dpi2point 0 def % font control /FontSize 0 def /FMS {/FontSize xstore findfont [FontSize 0 0 FontSize neg 0 0] makefont setfont} bdef /reencode {exch dup where {pop load} {pop StandardEncoding} ifelse exch dup 3 1 roll findfont dup length dict begin { 1 index /FID ne {def}{pop pop} ifelse } forall /Encoding exch def currentdict end definefont pop} bdef /isroman {findfont /CharStrings get /Agrave known} bdef /FMSR {3 1 roll 1 index dup isroman {reencode} {pop pop} ifelse exch FMS} bdef /csm {1 dpi2point div -1 dpi2point div scale neg translate dup landscapeMode eq {pop -90 rotate} {rotateMode eq {90 rotate} if} ifelse} bdef % line types: solid, dotted, dashed, dotdash /SO { [] 0 setdash } bdef /DO { [.5 dpi2point mul 4 dpi2point mul] 0 setdash } bdef /DA { [6 dpi2point mul] 0 setdash } bdef /DD { [.5 dpi2point mul 4 dpi2point mul 6 dpi2point mul 4 dpi2point mul] 0 setdash } bdef % macros for lines and objects /L {lineto stroke} bdef /MP {3 1 roll moveto 1 sub {rlineto} repeat} bdef /AP {{rlineto} repeat} bdef /PDlw -1 def /W {/PDlw currentlinewidth def setlinewidth} def /PP {closepath eofill} bdef /DP {closepath stroke} bdef /MR {4 -2 roll moveto dup 0 exch rlineto exch 0 rlineto neg 0 exch rlineto closepath} bdef /FR {MR stroke} bdef /PR {MR fill} bdef /L1i {{currentfile picstr readhexstring pop} image} bdef /tMatrix matrix def /MakeOval {newpath tMatrix currentmatrix pop translate scale 0 0 1 0 360 arc tMatrix setmatrix} bdef /FO {MakeOval stroke} bdef /PO {MakeOval fill} bdef /PD {currentlinewidth 2 div 0 360 arc fill PDlw -1 eq not {PDlw w /PDlw -1 def} if} def /FA {newpath tMatrix currentmatrix pop translate scale 0 0 1 5 -2 roll arc tMatrix setmatrix stroke} bdef /PA {newpath tMatrix currentmatrix pop translate 0 0 moveto scale 0 0 1 5 -2 roll arc closepath tMatrix setmatrix fill} bdef /FAn {newpath tMatrix currentmatrix pop translate scale 0 0 1 5 -2 roll arcn tMatrix setmatrix stroke} bdef /PAn {newpath tMatrix currentmatrix pop translate 0 0 moveto scale 0 0 1 5 -2 roll arcn closepath tMatrix setmatrix fill} bdef /vradius 0 def /hradius 0 def /lry 0 def /lrx 0 def /uly 0 def /ulx 0 def /rad 0 def /MRR {/vradius xdef /hradius xdef /lry xdef /lrx xdef /uly xdef /ulx xdef newpath tMatrix currentmatrix pop ulx hradius add uly vradius add translate hradius vradius scale 0 0 1 180 270 arc tMatrix setmatrix lrx hradius sub uly vradius add translate hradius vradius scale 0 0 1 270 360 arc tMatrix setmatrix lrx hradius sub lry vradius sub translate hradius vradius scale 0 0 1 0 90 arc tMatrix setmatrix ulx hradius add lry vradius sub translate hradius vradius scale 0 0 1 90 180 arc tMatrix setmatrix closepath} bdef /FRR {MRR stroke } bdef /PRR {MRR fill } bdef /MlrRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lry uly sub 2 div def newpath tMatrix currentmatrix pop ulx rad add uly rad add translate rad rad scale 0 0 1 90 270 arc tMatrix setmatrix lrx rad sub lry rad sub translate rad rad scale 0 0 1 270 90 arc tMatrix setmatrix closepath} bdef /FlrRR {MlrRR stroke } bdef /PlrRR {MlrRR fill } bdef /MtbRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lrx ulx sub 2 div def newpath tMatrix currentmatrix pop ulx rad add uly rad add translate rad rad scale 0 0 1 180 360 arc tMatrix setmatrix lrx rad sub lry rad sub translate rad rad scale 0 0 1 0 180 arc tMatrix setmatrix closepath} bdef /FtbRR {MtbRR stroke } bdef /PtbRR {MtbRR fill } bdef /stri 6 array def /dtri 6 array def /smat 6 array def /dmat 6 array def /tmat1 6 array def /tmat2 6 array def /dif 3 array def /asub {/ind2 exch def /ind1 exch def dup dup ind1 get exch ind2 get sub exch } bdef /tri_to_matrix { 2 0 asub 3 1 asub 4 0 asub 5 1 asub dup 0 get exch 1 get 7 -1 roll astore } bdef /compute_transform { dmat dtri tri_to_matrix tmat1 invertmatrix smat stri tri_to_matrix tmat2 concatmatrix } bdef /ds {stri astore pop} bdef /dt {dtri astore pop} bdef /db {2 copy /cols xdef /rows xdef mul dup string currentfile exch readhexstring pop /bmap xdef pop pop} bdef /it {gs np dtri aload pop moveto lineto lineto cp c cols rows 8 compute_transform {bmap} image gr}bdef /il {newpath moveto lineto stroke}bdef currentdict end def %%EndProlog %%BeginSetup MathWorks begin 0 cap end %%EndSetup %%Page: 1 1 %%BeginPageSetup %%PageBoundingBox: 90 215 543 606 MathWorks begin bpage %%EndPageSetup %%BeginObject: obj1 bplot /dpi2point 12 def portraitMode 0216 7344 csm 864 70 5441 4691 MR c np 85 dict begin %Colortable dictionary /c0 { 0.000000 0.000000 0.000000 sr} bdef /c1 { 1.000000 1.000000 1.000000 sr} bdef /c2 { 0.900000 0.000000 0.000000 sr} bdef /c3 { 0.000000 0.820000 0.000000 sr} bdef /c4 { 0.000000 0.000000 0.800000 sr} bdef /c5 { 0.910000 0.820000 0.320000 sr} bdef /c6 { 1.000000 0.260000 0.820000 sr} bdef /c7 { 0.000000 0.820000 0.820000 sr} bdef c0 1 j 1 sg 0 0 6913 5186 PR 6 w 0 1755 5356 0 0 -1755 899 2158 4 MP PP -5356 0 0 1755 5356 0 0 -1755 899 2158 5 MP stroke 4 w DO 0 sg 899 2158 mt 899 403 L 899 403 mt 899 403 L 1723 2158 mt 1723 403 L 1723 403 mt 1723 403 L 2547 2158 mt 2547 403 L 2547 403 mt 2547 403 L 3371 2158 mt 3371 403 L 3371 403 mt 3371 403 L 4195 2158 mt 4195 403 L 4195 403 mt 4195 403 L 5019 2158 mt 5019 403 L 5019 403 mt 5019 403 L 5843 2158 mt 5843 403 L 5843 403 mt 5843 403 L SO 6 w 899 2158 mt 6255 2158 L 899 2158 mt 899 403 L 899 2158 mt 899 2104 L %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 866 2303 mt (0) s 1723 2158 mt 1723 2104 L 1690 2303 mt (2) s 2547 2158 mt 2547 2104 L 2514 2303 mt (4) s 3371 2158 mt 3371 2104 L 3338 2303 mt (6) s 4195 2158 mt 4195 2104 L 4162 2303 mt (8) s 5019 2158 mt 5019 2104 L 4953 2303 mt (10) s 5843 2158 mt 5843 2104 L 5777 2303 mt (12) s gs 899 403 5357 1756 MR c np 5356 0 899 1280 2 MP stroke gr 961 254 mt (Image Patch Data with Density Filtration: k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 3209 314 mt (min) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 3363 254 mt ( = 25, k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 3759 314 mt (max) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 3940 254 mt ( = 350, k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 4403 314 mt (step) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 4584 254 mt ( = 25, T = 15000 \(dimension 0\)) s 1 sg 0 1755 5356 0 0 -1755 899 4615 4 MP PP -5356 0 0 1755 5356 0 0 -1755 899 4615 5 MP stroke 4 w DO 0 sg 899 4615 mt 899 2860 L 899 2860 mt 899 2860 L 1723 4615 mt 1723 2860 L 1723 2860 mt 1723 2860 L 2547 4615 mt 2547 2860 L 2547 2860 mt 2547 2860 L 3371 4615 mt 3371 2860 L 3371 2860 mt 3371 2860 L 4195 4615 mt 4195 2860 L 4195 2860 mt 4195 2860 L 5019 4615 mt 5019 2860 L 5019 2860 mt 5019 2860 L 5843 4615 mt 5843 2860 L 5843 2860 mt 5843 2860 L SO 6 w 899 4615 mt 6255 4615 L 899 4615 mt 899 2860 L 899 4615 mt 899 4561 L 866 4760 mt (0) s 1723 4615 mt 1723 4561 L 1690 4760 mt (2) s 2547 4615 mt 2547 4561 L 2514 4760 mt (4) s 3371 4615 mt 3371 4561 L 3338 4760 mt (6) s 4195 4615 mt 4195 4561 L 4162 4760 mt (8) s 5019 4615 mt 5019 4561 L 4953 4760 mt (10) s 5843 4615 mt 5843 4561 L 5777 4760 mt (12) s gs 899 2860 5357 1756 MR c np 33 0 3766 2963 2 MP stroke 33 0 3354 3066 2 MP stroke 412 0 2547 3169 2 MP stroke 33 0 2530 3272 2 MP stroke 33 0 2530 3376 2 MP stroke 33 0 2118 3479 2 MP stroke 33 0 1706 3582 2 MP stroke 824 0 1311 3685 2 MP stroke 824 0 1311 3789 2 MP stroke 824 0 1311 3892 2 MP stroke 33 0 1294 3995 2 MP stroke 5356 0 899 4098 2 MP stroke 16 0 899 4202 2 MP stroke 16 0 899 4305 2 MP stroke 16 0 899 4408 2 MP stroke 16 0 899 4511 2 MP stroke gr 961 2711 mt (Image Patch Data with Density Filtration: k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 3209 2771 mt (min) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 3363 2711 mt ( = 25, k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 3759 2771 mt (max) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 3940 2711 mt ( = 350, k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 4403 2771 mt (step) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 4584 2711 mt ( = 25, T = 15000 \(dimension 1\)) s end %%Color Dict eplot %%EndObject epage end showpage %%Trailer %%EOF ================================================ FILE: src/matlab/experimental/vietoris_rips_bootstrap/outputs/n50000Dct-samples-300-350-25-15000-1.100.eps ================================================ %!PS-Adobe-2.0 EPSF-1.2 %%Creator: MATLAB, The MathWorks, Inc. Version 7.11.0.584 (R2010b). Operating System: Linux 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:07:17 UTC 2011 x86_64. %%Title: ./n50000Dct-samples-300-350-25-15000-1.100.eps %%CreationDate: 07/23/2011 12:31:02 %%DocumentNeededFonts: Helvetica %%DocumentProcessColors: Cyan Magenta Yellow Black %%Pages: 1 %%BoundingBox: 90 215 546 606 %%EndComments %%BeginProlog % MathWorks dictionary /MathWorks 160 dict begin % definition operators /bdef {bind def} bind def /ldef {load def} bind def /xdef {exch def} bdef /xstore {exch store} bdef % operator abbreviations /c /clip ldef /cc /concat ldef /cp /closepath ldef /gr /grestore ldef /gs /gsave ldef /mt /moveto ldef /np /newpath ldef /cm /currentmatrix ldef /sm /setmatrix ldef /rm /rmoveto ldef /rl /rlineto ldef /s {show newpath} bdef /sc {setcmykcolor} bdef /sr /setrgbcolor ldef /sg /setgray ldef /w /setlinewidth ldef /j /setlinejoin ldef /cap /setlinecap ldef /rc {rectclip} bdef /rf {rectfill} bdef % page state control /pgsv () def /bpage {/pgsv save def} bdef /epage {pgsv restore} bdef /bplot /gsave ldef /eplot {stroke grestore} bdef % orientation switch /portraitMode 0 def /landscapeMode 1 def /rotateMode 2 def % coordinate system mappings /dpi2point 0 def % font control /FontSize 0 def /FMS {/FontSize xstore findfont [FontSize 0 0 FontSize neg 0 0] makefont setfont} bdef /reencode {exch dup where {pop load} {pop StandardEncoding} ifelse exch dup 3 1 roll findfont dup length dict begin { 1 index /FID ne {def}{pop pop} ifelse } forall /Encoding exch def currentdict end definefont pop} bdef /isroman {findfont /CharStrings get /Agrave known} bdef /FMSR {3 1 roll 1 index dup isroman {reencode} {pop pop} ifelse exch FMS} bdef /csm {1 dpi2point div -1 dpi2point div scale neg translate dup landscapeMode eq {pop -90 rotate} {rotateMode eq {90 rotate} if} ifelse} bdef % line types: solid, dotted, dashed, dotdash /SO { [] 0 setdash } bdef /DO { [.5 dpi2point mul 4 dpi2point mul] 0 setdash } bdef /DA { [6 dpi2point mul] 0 setdash } bdef /DD { [.5 dpi2point mul 4 dpi2point mul 6 dpi2point mul 4 dpi2point mul] 0 setdash } bdef % macros for lines and objects /L {lineto stroke} bdef /MP {3 1 roll moveto 1 sub {rlineto} repeat} bdef /AP {{rlineto} repeat} bdef /PDlw -1 def /W {/PDlw currentlinewidth def setlinewidth} def /PP {closepath eofill} bdef /DP {closepath stroke} bdef /MR {4 -2 roll moveto dup 0 exch rlineto exch 0 rlineto neg 0 exch rlineto closepath} bdef /FR {MR stroke} bdef /PR {MR fill} bdef /L1i {{currentfile picstr readhexstring pop} image} bdef /tMatrix matrix def /MakeOval {newpath tMatrix currentmatrix pop translate scale 0 0 1 0 360 arc tMatrix setmatrix} bdef /FO {MakeOval stroke} bdef /PO {MakeOval fill} bdef /PD {currentlinewidth 2 div 0 360 arc fill PDlw -1 eq not {PDlw w /PDlw -1 def} if} def /FA {newpath tMatrix currentmatrix pop translate scale 0 0 1 5 -2 roll arc tMatrix setmatrix stroke} bdef /PA {newpath tMatrix currentmatrix pop translate 0 0 moveto scale 0 0 1 5 -2 roll arc closepath tMatrix setmatrix fill} bdef /FAn {newpath tMatrix currentmatrix pop translate scale 0 0 1 5 -2 roll arcn tMatrix setmatrix stroke} bdef /PAn {newpath tMatrix currentmatrix pop translate 0 0 moveto scale 0 0 1 5 -2 roll arcn closepath tMatrix setmatrix fill} bdef /vradius 0 def /hradius 0 def /lry 0 def /lrx 0 def /uly 0 def /ulx 0 def /rad 0 def /MRR {/vradius xdef /hradius xdef /lry xdef /lrx xdef /uly xdef /ulx xdef newpath tMatrix currentmatrix pop ulx hradius add uly vradius add translate hradius vradius scale 0 0 1 180 270 arc tMatrix setmatrix lrx hradius sub uly vradius add translate hradius vradius scale 0 0 1 270 360 arc tMatrix setmatrix lrx hradius sub lry vradius sub translate hradius vradius scale 0 0 1 0 90 arc tMatrix setmatrix ulx hradius add lry vradius sub translate hradius vradius scale 0 0 1 90 180 arc tMatrix setmatrix closepath} bdef /FRR {MRR stroke } bdef /PRR {MRR fill } bdef /MlrRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lry uly sub 2 div def newpath tMatrix currentmatrix pop ulx rad add uly rad add translate rad rad scale 0 0 1 90 270 arc tMatrix setmatrix lrx rad sub lry rad sub translate rad rad scale 0 0 1 270 90 arc tMatrix setmatrix closepath} bdef /FlrRR {MlrRR stroke } bdef /PlrRR {MlrRR fill } bdef /MtbRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lrx ulx sub 2 div def newpath tMatrix currentmatrix pop ulx rad add uly rad add translate rad rad scale 0 0 1 180 360 arc tMatrix setmatrix lrx rad sub lry rad sub translate rad rad scale 0 0 1 0 180 arc tMatrix setmatrix closepath} bdef /FtbRR {MtbRR stroke } bdef /PtbRR {MtbRR fill } bdef /stri 6 array def /dtri 6 array def /smat 6 array def /dmat 6 array def /tmat1 6 array def /tmat2 6 array def /dif 3 array def /asub {/ind2 exch def /ind1 exch def dup dup ind1 get exch ind2 get sub exch } bdef /tri_to_matrix { 2 0 asub 3 1 asub 4 0 asub 5 1 asub dup 0 get exch 1 get 7 -1 roll astore } bdef /compute_transform { dmat dtri tri_to_matrix tmat1 invertmatrix smat stri tri_to_matrix tmat2 concatmatrix } bdef /ds {stri astore pop} bdef /dt {dtri astore pop} bdef /db {2 copy /cols xdef /rows xdef mul dup string currentfile exch readhexstring pop /bmap xdef pop pop} bdef /it {gs np dtri aload pop moveto lineto lineto cp c cols rows 8 compute_transform {bmap} image gr}bdef /il {newpath moveto lineto stroke}bdef currentdict end def %%EndProlog %%BeginSetup MathWorks begin 0 cap end %%EndSetup %%Page: 1 1 %%BeginPageSetup %%PageBoundingBox: 90 215 546 606 MathWorks begin bpage %%EndPageSetup %%BeginObject: obj1 bplot /dpi2point 12 def portraitMode 0216 7344 csm 864 70 5473 4691 MR c np 85 dict begin %Colortable dictionary /c0 { 0.000000 0.000000 0.000000 sr} bdef /c1 { 1.000000 1.000000 1.000000 sr} bdef /c2 { 0.900000 0.000000 0.000000 sr} bdef /c3 { 0.000000 0.820000 0.000000 sr} bdef /c4 { 0.000000 0.000000 0.800000 sr} bdef /c5 { 0.910000 0.820000 0.320000 sr} bdef /c6 { 1.000000 0.260000 0.820000 sr} bdef /c7 { 0.000000 0.820000 0.820000 sr} bdef c0 1 j 1 sg 0 0 6913 5186 PR 6 w 0 1755 5356 0 0 -1755 899 2158 4 MP PP -5356 0 0 1755 5356 0 0 -1755 899 2158 5 MP stroke 4 w DO 0 sg 899 2158 mt 899 403 L 899 403 mt 899 403 L 1434 2158 mt 1434 403 L 1434 403 mt 1434 403 L 1970 2158 mt 1970 403 L 1970 403 mt 1970 403 L 2505 2158 mt 2505 403 L 2505 403 mt 2505 403 L 3041 2158 mt 3041 403 L 3041 403 mt 3041 403 L 3577 2158 mt 3577 403 L 3577 403 mt 3577 403 L 4112 2158 mt 4112 403 L 4112 403 mt 4112 403 L 4648 2158 mt 4648 403 L 4648 403 mt 4648 403 L 5183 2158 mt 5183 403 L 5183 403 mt 5183 403 L 5719 2158 mt 5719 403 L 5719 403 mt 5719 403 L 6255 2158 mt 6255 403 L 6255 403 mt 6255 403 L SO 6 w 899 2158 mt 6255 2158 L 899 2158 mt 899 403 L 899 2158 mt 899 2104 L %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 866 2303 mt (0) s 1434 2158 mt 1434 2104 L 1351 2303 mt (0.2) s 1970 2158 mt 1970 2104 L 1887 2303 mt (0.4) s 2505 2158 mt 2505 2104 L 2422 2303 mt (0.6) s 3041 2158 mt 3041 2104 L 2958 2303 mt (0.8) s 3577 2158 mt 3577 2104 L 3544 2303 mt (1) s 4112 2158 mt 4112 2104 L 4029 2303 mt (1.2) s 4648 2158 mt 4648 2104 L 4565 2303 mt (1.4) s 5183 2158 mt 5183 2104 L 5100 2303 mt (1.6) s 5719 2158 mt 5719 2104 L 5636 2303 mt (1.8) s 6255 2158 mt 6255 2104 L 6222 2303 mt (2) s gs 899 403 5357 1756 MR c np 5356 0 899 1280 2 MP stroke gr 928 254 mt (Image Patch Data with Density Filtration: k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 3176 314 mt (min) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 3330 254 mt ( = 300, k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 3793 314 mt (max) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 3974 254 mt ( = 350, k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 4437 314 mt (step) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 4618 254 mt ( = 25, T = 15000 \(dimension 0\)) s 1 sg 0 1755 5356 0 0 -1755 899 4615 4 MP PP -5356 0 0 1755 5356 0 0 -1755 899 4615 5 MP stroke 4 w DO 0 sg 899 4615 mt 899 2860 L 899 2860 mt 899 2860 L 1434 4615 mt 1434 2860 L 1434 2860 mt 1434 2860 L 1970 4615 mt 1970 2860 L 1970 2860 mt 1970 2860 L 2505 4615 mt 2505 2860 L 2505 2860 mt 2505 2860 L 3041 4615 mt 3041 2860 L 3041 2860 mt 3041 2860 L 3577 4615 mt 3577 2860 L 3577 2860 mt 3577 2860 L 4112 4615 mt 4112 2860 L 4112 2860 mt 4112 2860 L 4648 4615 mt 4648 2860 L 4648 2860 mt 4648 2860 L 5183 4615 mt 5183 2860 L 5183 2860 mt 5183 2860 L 5719 4615 mt 5719 2860 L 5719 2860 mt 5719 2860 L 6255 4615 mt 6255 2860 L 6255 2860 mt 6255 2860 L SO 6 w 899 4615 mt 6255 4615 L 899 4615 mt 899 2860 L 899 4615 mt 899 4561 L 866 4760 mt (0) s 1434 4615 mt 1434 4561 L 1351 4760 mt (0.2) s 1970 4615 mt 1970 4561 L 1887 4760 mt (0.4) s 2505 4615 mt 2505 4561 L 2422 4760 mt (0.6) s 3041 4615 mt 3041 4561 L 2958 4760 mt (0.8) s 3577 4615 mt 3577 4561 L 3544 4760 mt (1) s 4112 4615 mt 4112 4561 L 4029 4760 mt (1.2) s 4648 4615 mt 4648 4561 L 4565 4760 mt (1.4) s 5183 4615 mt 5183 4561 L 5100 4760 mt (1.6) s 5719 4615 mt 5719 4561 L 5636 4760 mt (1.8) s 6255 4615 mt 6255 4561 L 6222 4760 mt (2) s gs 899 2860 5357 1756 MR c np 5356 0 899 3737 2 MP stroke gr 928 2711 mt (Image Patch Data with Density Filtration: k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 3176 2771 mt (min) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 3330 2711 mt ( = 300, k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 3793 2771 mt (max) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 3974 2711 mt ( = 350, k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 4437 2771 mt (step) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 4618 2711 mt ( = 25, T = 15000 \(dimension 1\)) s end %%Color Dict eplot %%EndObject epage end showpage %%Trailer %%EOF ================================================ FILE: src/matlab/experimental/vietoris_rips_bootstrap/outputs/n50000Dct-samples-400-800-25-15000-1.100.eps ================================================ %!PS-Adobe-2.0 EPSF-1.2 %%Creator: MATLAB, The MathWorks, Inc. Version 7.11.0.584 (R2010b). Operating System: Linux 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:07:17 UTC 2011 x86_64. %%Title: ./n50000Dct-samples-400-800-25-15000-1.100.eps %%CreationDate: 07/23/2011 16:16:26 %%DocumentNeededFonts: Helvetica %%DocumentProcessColors: Cyan Magenta Yellow Black %%Pages: 1 %%BoundingBox: 90 215 548 606 %%EndComments %%BeginProlog % MathWorks dictionary /MathWorks 160 dict begin % definition operators /bdef {bind def} bind def /ldef {load def} bind def /xdef {exch def} bdef /xstore {exch store} bdef % operator abbreviations /c /clip ldef /cc /concat ldef /cp /closepath ldef /gr /grestore ldef /gs /gsave ldef /mt /moveto ldef /np /newpath ldef /cm /currentmatrix ldef /sm /setmatrix ldef /rm /rmoveto ldef /rl /rlineto ldef /s {show newpath} bdef /sc {setcmykcolor} bdef /sr /setrgbcolor ldef /sg /setgray ldef /w /setlinewidth ldef /j /setlinejoin ldef /cap /setlinecap ldef /rc {rectclip} bdef /rf {rectfill} bdef % page state control /pgsv () def /bpage {/pgsv save def} bdef /epage {pgsv restore} bdef /bplot /gsave ldef /eplot {stroke grestore} bdef % orientation switch /portraitMode 0 def /landscapeMode 1 def /rotateMode 2 def % coordinate system mappings /dpi2point 0 def % font control /FontSize 0 def /FMS {/FontSize xstore findfont [FontSize 0 0 FontSize neg 0 0] makefont setfont} bdef /reencode {exch dup where {pop load} {pop StandardEncoding} ifelse exch dup 3 1 roll findfont dup length dict begin { 1 index /FID ne {def}{pop pop} ifelse } forall /Encoding exch def currentdict end definefont pop} bdef /isroman {findfont /CharStrings get /Agrave known} bdef /FMSR {3 1 roll 1 index dup isroman {reencode} {pop pop} ifelse exch FMS} bdef /csm {1 dpi2point div -1 dpi2point div scale neg translate dup landscapeMode eq {pop -90 rotate} {rotateMode eq {90 rotate} if} ifelse} bdef % line types: solid, dotted, dashed, dotdash /SO { [] 0 setdash } bdef /DO { [.5 dpi2point mul 4 dpi2point mul] 0 setdash } bdef /DA { [6 dpi2point mul] 0 setdash } bdef /DD { [.5 dpi2point mul 4 dpi2point mul 6 dpi2point mul 4 dpi2point mul] 0 setdash } bdef % macros for lines and objects /L {lineto stroke} bdef /MP {3 1 roll moveto 1 sub {rlineto} repeat} bdef /AP {{rlineto} repeat} bdef /PDlw -1 def /W {/PDlw currentlinewidth def setlinewidth} def /PP {closepath eofill} bdef /DP {closepath stroke} bdef /MR {4 -2 roll moveto dup 0 exch rlineto exch 0 rlineto neg 0 exch rlineto closepath} bdef /FR {MR stroke} bdef /PR {MR fill} bdef /L1i {{currentfile picstr readhexstring pop} image} bdef /tMatrix matrix def /MakeOval {newpath tMatrix currentmatrix pop translate scale 0 0 1 0 360 arc tMatrix setmatrix} bdef /FO {MakeOval stroke} bdef /PO {MakeOval fill} bdef /PD {currentlinewidth 2 div 0 360 arc fill PDlw -1 eq not {PDlw w /PDlw -1 def} if} def /FA {newpath tMatrix currentmatrix pop translate scale 0 0 1 5 -2 roll arc tMatrix setmatrix stroke} bdef /PA {newpath tMatrix currentmatrix pop translate 0 0 moveto scale 0 0 1 5 -2 roll arc closepath tMatrix setmatrix fill} bdef /FAn {newpath tMatrix currentmatrix pop translate scale 0 0 1 5 -2 roll arcn tMatrix setmatrix stroke} bdef /PAn {newpath tMatrix currentmatrix pop translate 0 0 moveto scale 0 0 1 5 -2 roll arcn closepath tMatrix setmatrix fill} bdef /vradius 0 def /hradius 0 def /lry 0 def /lrx 0 def /uly 0 def /ulx 0 def /rad 0 def /MRR {/vradius xdef /hradius xdef /lry xdef /lrx xdef /uly xdef /ulx xdef newpath tMatrix currentmatrix pop ulx hradius add uly vradius add translate hradius vradius scale 0 0 1 180 270 arc tMatrix setmatrix lrx hradius sub uly vradius add translate hradius vradius scale 0 0 1 270 360 arc tMatrix setmatrix lrx hradius sub lry vradius sub translate hradius vradius scale 0 0 1 0 90 arc tMatrix setmatrix ulx hradius add lry vradius sub translate hradius vradius scale 0 0 1 90 180 arc tMatrix setmatrix closepath} bdef /FRR {MRR stroke } bdef /PRR {MRR fill } bdef /MlrRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lry uly sub 2 div def newpath tMatrix currentmatrix pop ulx rad add uly rad add translate rad rad scale 0 0 1 90 270 arc tMatrix setmatrix lrx rad sub lry rad sub translate rad rad scale 0 0 1 270 90 arc tMatrix setmatrix closepath} bdef /FlrRR {MlrRR stroke } bdef /PlrRR {MlrRR fill } bdef /MtbRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lrx ulx sub 2 div def newpath tMatrix currentmatrix pop ulx rad add uly rad add translate rad rad scale 0 0 1 180 360 arc tMatrix setmatrix lrx rad sub lry rad sub translate rad rad scale 0 0 1 0 180 arc tMatrix setmatrix closepath} bdef /FtbRR {MtbRR stroke } bdef /PtbRR {MtbRR fill } bdef /stri 6 array def /dtri 6 array def /smat 6 array def /dmat 6 array def /tmat1 6 array def /tmat2 6 array def /dif 3 array def /asub {/ind2 exch def /ind1 exch def dup dup ind1 get exch ind2 get sub exch } bdef /tri_to_matrix { 2 0 asub 3 1 asub 4 0 asub 5 1 asub dup 0 get exch 1 get 7 -1 roll astore } bdef /compute_transform { dmat dtri tri_to_matrix tmat1 invertmatrix smat stri tri_to_matrix tmat2 concatmatrix } bdef /ds {stri astore pop} bdef /dt {dtri astore pop} bdef /db {2 copy /cols xdef /rows xdef mul dup string currentfile exch readhexstring pop /bmap xdef pop pop} bdef /it {gs np dtri aload pop moveto lineto lineto cp c cols rows 8 compute_transform {bmap} image gr}bdef /il {newpath moveto lineto stroke}bdef currentdict end def %%EndProlog %%BeginSetup MathWorks begin 0 cap end %%EndSetup %%Page: 1 1 %%BeginPageSetup %%PageBoundingBox: 90 215 548 606 MathWorks begin bpage %%EndPageSetup %%BeginObject: obj1 bplot /dpi2point 12 def portraitMode 0216 7344 csm 864 70 5507 4691 MR c np 85 dict begin %Colortable dictionary /c0 { 0.000000 0.000000 0.000000 sr} bdef /c1 { 1.000000 1.000000 1.000000 sr} bdef /c2 { 0.900000 0.000000 0.000000 sr} bdef /c3 { 0.000000 0.820000 0.000000 sr} bdef /c4 { 0.000000 0.000000 0.800000 sr} bdef /c5 { 0.910000 0.820000 0.320000 sr} bdef /c6 { 1.000000 0.260000 0.820000 sr} bdef /c7 { 0.000000 0.820000 0.820000 sr} bdef c0 1 j 1 sg 0 0 6913 5186 PR 6 w 0 1755 5356 0 0 -1755 899 2158 4 MP PP -5356 0 0 1755 5356 0 0 -1755 899 2158 5 MP stroke 4 w DO 0 sg 899 2158 mt 899 403 L 899 403 mt 899 403 L 1568 2158 mt 1568 403 L 1568 403 mt 1568 403 L 2238 2158 mt 2238 403 L 2238 403 mt 2238 403 L 2907 2158 mt 2907 403 L 2907 403 mt 2907 403 L 3577 2158 mt 3577 403 L 3577 403 mt 3577 403 L 4246 2158 mt 4246 403 L 4246 403 mt 4246 403 L 4916 2158 mt 4916 403 L 4916 403 mt 4916 403 L 5585 2158 mt 5585 403 L 5585 403 mt 5585 403 L 6255 2158 mt 6255 403 L 6255 403 mt 6255 403 L SO 6 w 899 2158 mt 6255 2158 L 899 2158 mt 899 403 L 899 2158 mt 899 2104 L %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 866 2303 mt (0) s 1568 2158 mt 1568 2104 L 1535 2303 mt (2) s 2238 2158 mt 2238 2104 L 2205 2303 mt (4) s 2907 2158 mt 2907 2104 L 2874 2303 mt (6) s 3577 2158 mt 3577 2104 L 3544 2303 mt (8) s 4246 2158 mt 4246 2104 L 4180 2303 mt (10) s 4916 2158 mt 4916 2104 L 4850 2303 mt (12) s 5585 2158 mt 5585 2104 L 5519 2303 mt (14) s 6255 2158 mt 6255 2104 L 6189 2303 mt (16) s gs 899 403 5357 1756 MR c np 5356 0 899 1280 2 MP stroke gr 1001 254 mt (VR Bootstrap for n50000Dct: k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 2617 314 mt (min) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 2771 254 mt ( = 400, k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 3234 314 mt (max) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 3415 254 mt ( = 800, k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 3878 314 mt (step) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 4059 254 mt ( = 25, T = 15000, S = 100 \(dimension 0\)) s 1 sg 0 1755 5356 0 0 -1755 899 4615 4 MP PP -5356 0 0 1755 5356 0 0 -1755 899 4615 5 MP stroke 4 w DO 0 sg 899 4615 mt 899 2860 L 899 2860 mt 899 2860 L 1568 4615 mt 1568 2860 L 1568 2860 mt 1568 2860 L 2238 4615 mt 2238 2860 L 2238 2860 mt 2238 2860 L 2907 4615 mt 2907 2860 L 2907 2860 mt 2907 2860 L 3577 4615 mt 3577 2860 L 3577 2860 mt 3577 2860 L 4246 4615 mt 4246 2860 L 4246 2860 mt 4246 2860 L 4916 4615 mt 4916 2860 L 4916 2860 mt 4916 2860 L 5585 4615 mt 5585 2860 L 5585 2860 mt 5585 2860 L 6255 4615 mt 6255 2860 L 6255 2860 mt 6255 2860 L SO 6 w 899 4615 mt 6255 4615 L 899 4615 mt 899 2860 L 899 4615 mt 899 4561 L 866 4760 mt (0) s 1568 4615 mt 1568 4561 L 1535 4760 mt (2) s 2238 4615 mt 2238 4561 L 2205 4760 mt (4) s 2907 4615 mt 2907 4561 L 2874 4760 mt (6) s 3577 4615 mt 3577 4561 L 3544 4760 mt (8) s 4246 4615 mt 4246 4561 L 4180 4760 mt (10) s 4916 4615 mt 4916 4561 L 4850 4760 mt (12) s 5585 4615 mt 5585 4561 L 5519 4760 mt (14) s 6255 4615 mt 6255 4561 L 6189 4760 mt (16) s gs 899 2860 5357 1756 MR c np 5356 0 899 3737 2 MP stroke gr 1001 2711 mt (VR Bootstrap for n50000Dct: k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 2617 2771 mt (min) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 2771 2711 mt ( = 400, k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 3234 2771 mt (max) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 3415 2711 mt ( = 800, k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 3878 2771 mt (step) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 4059 2711 mt ( = 25, T = 15000, S = 100 \(dimension 1\)) s end %%Color Dict eplot %%EndObject epage end showpage %%Trailer %%EOF ================================================ FILE: src/matlab/experimental/vietoris_rips_bootstrap/outputs/n50000Dct-samples-5-100-5-15000-1.100.eps ================================================ %!PS-Adobe-2.0 EPSF-1.2 %%Creator: MATLAB, The MathWorks, Inc. Version 7.11.0.584 (R2010b). Operating System: Linux 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:07:17 UTC 2011 x86_64. %%Title: ./n50000Dct-samples-5-100-5-15000-1.100.eps %%CreationDate: 07/23/2011 12:40:40 %%DocumentNeededFonts: Helvetica %%DocumentProcessColors: Cyan Magenta Yellow Black %%Pages: 1 %%BoundingBox: 90 215 543 606 %%EndComments %%BeginProlog % MathWorks dictionary /MathWorks 160 dict begin % definition operators /bdef {bind def} bind def /ldef {load def} bind def /xdef {exch def} bdef /xstore {exch store} bdef % operator abbreviations /c /clip ldef /cc /concat ldef /cp /closepath ldef /gr /grestore ldef /gs /gsave ldef /mt /moveto ldef /np /newpath ldef /cm /currentmatrix ldef /sm /setmatrix ldef /rm /rmoveto ldef /rl /rlineto ldef /s {show newpath} bdef /sc {setcmykcolor} bdef /sr /setrgbcolor ldef /sg /setgray ldef /w /setlinewidth ldef /j /setlinejoin ldef /cap /setlinecap ldef /rc {rectclip} bdef /rf {rectfill} bdef % page state control /pgsv () def /bpage {/pgsv save def} bdef /epage {pgsv restore} bdef /bplot /gsave ldef /eplot {stroke grestore} bdef % orientation switch /portraitMode 0 def /landscapeMode 1 def /rotateMode 2 def % coordinate system mappings /dpi2point 0 def % font control /FontSize 0 def /FMS {/FontSize xstore findfont [FontSize 0 0 FontSize neg 0 0] makefont setfont} bdef /reencode {exch dup where {pop load} {pop StandardEncoding} ifelse exch dup 3 1 roll findfont dup length dict begin { 1 index /FID ne {def}{pop pop} ifelse } forall /Encoding exch def currentdict end definefont pop} bdef /isroman {findfont /CharStrings get /Agrave known} bdef /FMSR {3 1 roll 1 index dup isroman {reencode} {pop pop} ifelse exch FMS} bdef /csm {1 dpi2point div -1 dpi2point div scale neg translate dup landscapeMode eq {pop -90 rotate} {rotateMode eq {90 rotate} if} ifelse} bdef % line types: solid, dotted, dashed, dotdash /SO { [] 0 setdash } bdef /DO { [.5 dpi2point mul 4 dpi2point mul] 0 setdash } bdef /DA { [6 dpi2point mul] 0 setdash } bdef /DD { [.5 dpi2point mul 4 dpi2point mul 6 dpi2point mul 4 dpi2point mul] 0 setdash } bdef % macros for lines and objects /L {lineto stroke} bdef /MP {3 1 roll moveto 1 sub {rlineto} repeat} bdef /AP {{rlineto} repeat} bdef /PDlw -1 def /W {/PDlw currentlinewidth def setlinewidth} def /PP {closepath eofill} bdef /DP {closepath stroke} bdef /MR {4 -2 roll moveto dup 0 exch rlineto exch 0 rlineto neg 0 exch rlineto closepath} bdef /FR {MR stroke} bdef /PR {MR fill} bdef /L1i {{currentfile picstr readhexstring pop} image} bdef /tMatrix matrix def /MakeOval {newpath tMatrix currentmatrix pop translate scale 0 0 1 0 360 arc tMatrix setmatrix} bdef /FO {MakeOval stroke} bdef /PO {MakeOval fill} bdef /PD {currentlinewidth 2 div 0 360 arc fill PDlw -1 eq not {PDlw w /PDlw -1 def} if} def /FA {newpath tMatrix currentmatrix pop translate scale 0 0 1 5 -2 roll arc tMatrix setmatrix stroke} bdef /PA {newpath tMatrix currentmatrix pop translate 0 0 moveto scale 0 0 1 5 -2 roll arc closepath tMatrix setmatrix fill} bdef /FAn {newpath tMatrix currentmatrix pop translate scale 0 0 1 5 -2 roll arcn tMatrix setmatrix stroke} bdef /PAn {newpath tMatrix currentmatrix pop translate 0 0 moveto scale 0 0 1 5 -2 roll arcn closepath tMatrix setmatrix fill} bdef /vradius 0 def /hradius 0 def /lry 0 def /lrx 0 def /uly 0 def /ulx 0 def /rad 0 def /MRR {/vradius xdef /hradius xdef /lry xdef /lrx xdef /uly xdef /ulx xdef newpath tMatrix currentmatrix pop ulx hradius add uly vradius add translate hradius vradius scale 0 0 1 180 270 arc tMatrix setmatrix lrx hradius sub uly vradius add translate hradius vradius scale 0 0 1 270 360 arc tMatrix setmatrix lrx hradius sub lry vradius sub translate hradius vradius scale 0 0 1 0 90 arc tMatrix setmatrix ulx hradius add lry vradius sub translate hradius vradius scale 0 0 1 90 180 arc tMatrix setmatrix closepath} bdef /FRR {MRR stroke } bdef /PRR {MRR fill } bdef /MlrRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lry uly sub 2 div def newpath tMatrix currentmatrix pop ulx rad add uly rad add translate rad rad scale 0 0 1 90 270 arc tMatrix setmatrix lrx rad sub lry rad sub translate rad rad scale 0 0 1 270 90 arc tMatrix setmatrix closepath} bdef /FlrRR {MlrRR stroke } bdef /PlrRR {MlrRR fill } bdef /MtbRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lrx ulx sub 2 div def newpath tMatrix currentmatrix pop ulx rad add uly rad add translate rad rad scale 0 0 1 180 360 arc tMatrix setmatrix lrx rad sub lry rad sub translate rad rad scale 0 0 1 0 180 arc tMatrix setmatrix closepath} bdef /FtbRR {MtbRR stroke } bdef /PtbRR {MtbRR fill } bdef /stri 6 array def /dtri 6 array def /smat 6 array def /dmat 6 array def /tmat1 6 array def /tmat2 6 array def /dif 3 array def /asub {/ind2 exch def /ind1 exch def dup dup ind1 get exch ind2 get sub exch } bdef /tri_to_matrix { 2 0 asub 3 1 asub 4 0 asub 5 1 asub dup 0 get exch 1 get 7 -1 roll astore } bdef /compute_transform { dmat dtri tri_to_matrix tmat1 invertmatrix smat stri tri_to_matrix tmat2 concatmatrix } bdef /ds {stri astore pop} bdef /dt {dtri astore pop} bdef /db {2 copy /cols xdef /rows xdef mul dup string currentfile exch readhexstring pop /bmap xdef pop pop} bdef /it {gs np dtri aload pop moveto lineto lineto cp c cols rows 8 compute_transform {bmap} image gr}bdef /il {newpath moveto lineto stroke}bdef currentdict end def %%EndProlog %%BeginSetup MathWorks begin 0 cap end %%EndSetup %%Page: 1 1 %%BeginPageSetup %%PageBoundingBox: 90 215 543 606 MathWorks begin bpage %%EndPageSetup %%BeginObject: obj1 bplot /dpi2point 12 def portraitMode 0216 7344 csm 864 70 5441 4691 MR c np 85 dict begin %Colortable dictionary /c0 { 0.000000 0.000000 0.000000 sr} bdef /c1 { 1.000000 1.000000 1.000000 sr} bdef /c2 { 0.900000 0.000000 0.000000 sr} bdef /c3 { 0.000000 0.820000 0.000000 sr} bdef /c4 { 0.000000 0.000000 0.800000 sr} bdef /c5 { 0.910000 0.820000 0.320000 sr} bdef /c6 { 1.000000 0.260000 0.820000 sr} bdef /c7 { 0.000000 0.820000 0.820000 sr} bdef c0 1 j 1 sg 0 0 6913 5186 PR 6 w 0 1755 5356 0 0 -1755 899 2158 4 MP PP -5356 0 0 1755 5356 0 0 -1755 899 2158 5 MP stroke 4 w DO 0 sg 899 2158 mt 899 403 L 899 403 mt 899 403 L 1462 2158 mt 1462 403 L 1462 403 mt 1462 403 L 2026 2158 mt 2026 403 L 2026 403 mt 2026 403 L 2590 2158 mt 2590 403 L 2590 403 mt 2590 403 L 3154 2158 mt 3154 403 L 3154 403 mt 3154 403 L 3717 2158 mt 3717 403 L 3717 403 mt 3717 403 L 4281 2158 mt 4281 403 L 4281 403 mt 4281 403 L 4845 2158 mt 4845 403 L 4845 403 mt 4845 403 L 5409 2158 mt 5409 403 L 5409 403 mt 5409 403 L 5973 2158 mt 5973 403 L 5973 403 mt 5973 403 L SO 6 w 899 2158 mt 6255 2158 L 899 2158 mt 899 403 L 899 2158 mt 899 2104 L %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 866 2303 mt (0) s 1462 2158 mt 1462 2104 L 1429 2303 mt (2) s 2026 2158 mt 2026 2104 L 1993 2303 mt (4) s 2590 2158 mt 2590 2104 L 2557 2303 mt (6) s 3154 2158 mt 3154 2104 L 3121 2303 mt (8) s 3717 2158 mt 3717 2104 L 3651 2303 mt (10) s 4281 2158 mt 4281 2104 L 4215 2303 mt (12) s 4845 2158 mt 4845 2104 L 4779 2303 mt (14) s 5409 2158 mt 5409 2104 L 5343 2303 mt (16) s 5973 2158 mt 5973 2104 L 5907 2303 mt (18) s gs 899 403 5357 1756 MR c np 5356 0 899 1280 2 MP stroke gr 1027 254 mt (Image Patch Data with Density Filtration: k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 3275 314 mt (min) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 3429 254 mt ( = 5, k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 3759 314 mt (max) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 3940 254 mt ( = 100, k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 4403 314 mt (step) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 4584 254 mt ( = 5, T = 15000 \(dimension 0\)) s 1 sg 0 1755 5356 0 0 -1755 899 4615 4 MP PP -5356 0 0 1755 5356 0 0 -1755 899 4615 5 MP stroke 4 w DO 0 sg 899 4615 mt 899 2860 L 899 2860 mt 899 2860 L 1462 4615 mt 1462 2860 L 1462 2860 mt 1462 2860 L 2026 4615 mt 2026 2860 L 2026 2860 mt 2026 2860 L 2590 4615 mt 2590 2860 L 2590 2860 mt 2590 2860 L 3154 4615 mt 3154 2860 L 3154 2860 mt 3154 2860 L 3717 4615 mt 3717 2860 L 3717 2860 mt 3717 2860 L 4281 4615 mt 4281 2860 L 4281 2860 mt 4281 2860 L 4845 4615 mt 4845 2860 L 4845 2860 mt 4845 2860 L 5409 4615 mt 5409 2860 L 5409 2860 mt 5409 2860 L 5973 4615 mt 5973 2860 L 5973 2860 mt 5973 2860 L SO 6 w 899 4615 mt 6255 4615 L 899 4615 mt 899 2860 L 899 4615 mt 899 4561 L 866 4760 mt (0) s 1462 4615 mt 1462 4561 L 1429 4760 mt (2) s 2026 4615 mt 2026 4561 L 1993 4760 mt (4) s 2590 4615 mt 2590 4561 L 2557 4760 mt (6) s 3154 4615 mt 3154 4561 L 3121 4760 mt (8) s 3717 4615 mt 3717 4561 L 3651 4760 mt (10) s 4281 4615 mt 4281 4561 L 4215 4760 mt (12) s 4845 4615 mt 4845 4561 L 4779 4760 mt (14) s 5409 4615 mt 5409 4561 L 5343 4760 mt (16) s 5973 4615 mt 5973 4561 L 5907 4760 mt (18) s gs 899 2860 5357 1756 MR c np 18 0 6238 2888 2 MP stroke 18 0 6238 2917 2 MP stroke 282 0 5973 2946 2 MP stroke 32 0 5957 2975 2 MP stroke 564 0 5691 3003 2 MP stroke 32 0 5675 3032 2 MP stroke 32 0 5393 3061 2 MP stroke 32 0 5393 3090 2 MP stroke 32 0 5393 3118 2 MP stroke 32 0 5111 3147 2 MP stroke 32 0 5111 3176 2 MP stroke 32 0 5111 3205 2 MP stroke 32 0 4829 3234 2 MP stroke 32 0 4829 3262 2 MP stroke 846 0 4563 3291 2 MP stroke 282 0 4563 3320 2 MP stroke 32 0 4265 3349 2 MP stroke 32 0 4265 3377 2 MP stroke 564 0 3999 3406 2 MP stroke 564 0 3999 3435 2 MP stroke 282 0 3717 3464 2 MP stroke 282 0 3717 3492 2 MP stroke 33 0 3701 3521 2 MP stroke 33 0 3701 3550 2 MP stroke 282 0 3154 3579 2 MP stroke 282 0 3154 3608 2 MP stroke 282 0 3154 3636 2 MP stroke 282 0 3154 3665 2 MP stroke 32 0 2856 3694 2 MP stroke 32 0 2856 3723 2 MP stroke 32 0 2856 3751 2 MP stroke 32 0 2856 3780 2 MP stroke 32 0 2574 3809 2 MP stroke 32 0 2574 3838 2 MP stroke 32 0 2574 3866 2 MP stroke 32 0 2574 3895 2 MP stroke 32 0 2292 3924 2 MP stroke 32 0 2292 3953 2 MP stroke 32 0 2292 3982 2 MP stroke 32 0 2292 4010 2 MP stroke 32 0 2010 4039 2 MP stroke 32 0 2010 4068 2 MP stroke 32 0 2010 4097 2 MP stroke 32 0 2010 4125 2 MP stroke 4511 0 1744 4154 2 MP stroke 32 0 1728 4183 2 MP stroke 32 0 1728 4212 2 MP stroke 32 0 1728 4240 2 MP stroke 282 0 1462 4269 2 MP stroke 32 0 1446 4298 2 MP stroke 32 0 1446 4327 2 MP stroke 32 0 1446 4356 2 MP stroke 282 0 1180 4384 2 MP stroke 32 0 1164 4413 2 MP stroke 32 0 1164 4442 2 MP stroke 32 0 1164 4471 2 MP stroke 281 0 899 4499 2 MP stroke 281 0 899 4528 2 MP stroke 16 0 899 4557 2 MP stroke 16 0 899 4586 2 MP stroke gr 1027 2711 mt (Image Patch Data with Density Filtration: k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 3275 2771 mt (min) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 3429 2711 mt ( = 5, k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 3759 2771 mt (max) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 3940 2711 mt ( = 100, k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 4403 2771 mt (step) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 4584 2711 mt ( = 5, T = 15000 \(dimension 1\)) s end %%Color Dict eplot %%EndObject epage end showpage %%Trailer %%EOF ================================================ FILE: src/matlab/experimental/vietoris_rips_bootstrap/outputs/n50000Dct-samples-5-25-1-15000-1.100.eps ================================================ %!PS-Adobe-2.0 EPSF-1.2 %%Creator: MATLAB, The MathWorks, Inc. Version 7.11.0.584 (R2010b). Operating System: Linux 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:07:17 UTC 2011 x86_64. %%Title: ./n50000Dct-samples-5-25-1-15000-1.100.eps %%CreationDate: 07/23/2011 12:43:18 %%DocumentNeededFonts: Helvetica %%DocumentProcessColors: Cyan Magenta Yellow Black %%Pages: 1 %%BoundingBox: 90 215 548 606 %%EndComments %%BeginProlog % MathWorks dictionary /MathWorks 160 dict begin % definition operators /bdef {bind def} bind def /ldef {load def} bind def /xdef {exch def} bdef /xstore {exch store} bdef % operator abbreviations /c /clip ldef /cc /concat ldef /cp /closepath ldef /gr /grestore ldef /gs /gsave ldef /mt /moveto ldef /np /newpath ldef /cm /currentmatrix ldef /sm /setmatrix ldef /rm /rmoveto ldef /rl /rlineto ldef /s {show newpath} bdef /sc {setcmykcolor} bdef /sr /setrgbcolor ldef /sg /setgray ldef /w /setlinewidth ldef /j /setlinejoin ldef /cap /setlinecap ldef /rc {rectclip} bdef /rf {rectfill} bdef % page state control /pgsv () def /bpage {/pgsv save def} bdef /epage {pgsv restore} bdef /bplot /gsave ldef /eplot {stroke grestore} bdef % orientation switch /portraitMode 0 def /landscapeMode 1 def /rotateMode 2 def % coordinate system mappings /dpi2point 0 def % font control /FontSize 0 def /FMS {/FontSize xstore findfont [FontSize 0 0 FontSize neg 0 0] makefont setfont} bdef /reencode {exch dup where {pop load} {pop StandardEncoding} ifelse exch dup 3 1 roll findfont dup length dict begin { 1 index /FID ne {def}{pop pop} ifelse } forall /Encoding exch def currentdict end definefont pop} bdef /isroman {findfont /CharStrings get /Agrave known} bdef /FMSR {3 1 roll 1 index dup isroman {reencode} {pop pop} ifelse exch FMS} bdef /csm {1 dpi2point div -1 dpi2point div scale neg translate dup landscapeMode eq {pop -90 rotate} {rotateMode eq {90 rotate} if} ifelse} bdef % line types: solid, dotted, dashed, dotdash /SO { [] 0 setdash } bdef /DO { [.5 dpi2point mul 4 dpi2point mul] 0 setdash } bdef /DA { [6 dpi2point mul] 0 setdash } bdef /DD { [.5 dpi2point mul 4 dpi2point mul 6 dpi2point mul 4 dpi2point mul] 0 setdash } bdef % macros for lines and objects /L {lineto stroke} bdef /MP {3 1 roll moveto 1 sub {rlineto} repeat} bdef /AP {{rlineto} repeat} bdef /PDlw -1 def /W {/PDlw currentlinewidth def setlinewidth} def /PP {closepath eofill} bdef /DP {closepath stroke} bdef /MR {4 -2 roll moveto dup 0 exch rlineto exch 0 rlineto neg 0 exch rlineto closepath} bdef /FR {MR stroke} bdef /PR {MR fill} bdef /L1i {{currentfile picstr readhexstring pop} image} bdef /tMatrix matrix def /MakeOval {newpath tMatrix currentmatrix pop translate scale 0 0 1 0 360 arc tMatrix setmatrix} bdef /FO {MakeOval stroke} bdef /PO {MakeOval fill} bdef /PD {currentlinewidth 2 div 0 360 arc fill PDlw -1 eq not {PDlw w /PDlw -1 def} if} def /FA {newpath tMatrix currentmatrix pop translate scale 0 0 1 5 -2 roll arc tMatrix setmatrix stroke} bdef /PA {newpath tMatrix currentmatrix pop translate 0 0 moveto scale 0 0 1 5 -2 roll arc closepath tMatrix setmatrix fill} bdef /FAn {newpath tMatrix currentmatrix pop translate scale 0 0 1 5 -2 roll arcn tMatrix setmatrix stroke} bdef /PAn {newpath tMatrix currentmatrix pop translate 0 0 moveto scale 0 0 1 5 -2 roll arcn closepath tMatrix setmatrix fill} bdef /vradius 0 def /hradius 0 def /lry 0 def /lrx 0 def /uly 0 def /ulx 0 def /rad 0 def /MRR {/vradius xdef /hradius xdef /lry xdef /lrx xdef /uly xdef /ulx xdef newpath tMatrix currentmatrix pop ulx hradius add uly vradius add translate hradius vradius scale 0 0 1 180 270 arc tMatrix setmatrix lrx hradius sub uly vradius add translate hradius vradius scale 0 0 1 270 360 arc tMatrix setmatrix lrx hradius sub lry vradius sub translate hradius vradius scale 0 0 1 0 90 arc tMatrix setmatrix ulx hradius add lry vradius sub translate hradius vradius scale 0 0 1 90 180 arc tMatrix setmatrix closepath} bdef /FRR {MRR stroke } bdef /PRR {MRR fill } bdef /MlrRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lry uly sub 2 div def newpath tMatrix currentmatrix pop ulx rad add uly rad add translate rad rad scale 0 0 1 90 270 arc tMatrix setmatrix lrx rad sub lry rad sub translate rad rad scale 0 0 1 270 90 arc tMatrix setmatrix closepath} bdef /FlrRR {MlrRR stroke } bdef /PlrRR {MlrRR fill } bdef /MtbRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lrx ulx sub 2 div def newpath tMatrix currentmatrix pop ulx rad add uly rad add translate rad rad scale 0 0 1 180 360 arc tMatrix setmatrix lrx rad sub lry rad sub translate rad rad scale 0 0 1 0 180 arc tMatrix setmatrix closepath} bdef /FtbRR {MtbRR stroke } bdef /PtbRR {MtbRR fill } bdef /stri 6 array def /dtri 6 array def /smat 6 array def /dmat 6 array def /tmat1 6 array def /tmat2 6 array def /dif 3 array def /asub {/ind2 exch def /ind1 exch def dup dup ind1 get exch ind2 get sub exch } bdef /tri_to_matrix { 2 0 asub 3 1 asub 4 0 asub 5 1 asub dup 0 get exch 1 get 7 -1 roll astore } bdef /compute_transform { dmat dtri tri_to_matrix tmat1 invertmatrix smat stri tri_to_matrix tmat2 concatmatrix } bdef /ds {stri astore pop} bdef /dt {dtri astore pop} bdef /db {2 copy /cols xdef /rows xdef mul dup string currentfile exch readhexstring pop /bmap xdef pop pop} bdef /it {gs np dtri aload pop moveto lineto lineto cp c cols rows 8 compute_transform {bmap} image gr}bdef /il {newpath moveto lineto stroke}bdef currentdict end def %%EndProlog %%BeginSetup MathWorks begin 0 cap end %%EndSetup %%Page: 1 1 %%BeginPageSetup %%PageBoundingBox: 90 215 548 606 MathWorks begin bpage %%EndPageSetup %%BeginObject: obj1 bplot /dpi2point 12 def portraitMode 0216 7344 csm 864 70 5507 4691 MR c np 85 dict begin %Colortable dictionary /c0 { 0.000000 0.000000 0.000000 sr} bdef /c1 { 1.000000 1.000000 1.000000 sr} bdef /c2 { 0.900000 0.000000 0.000000 sr} bdef /c3 { 0.000000 0.820000 0.000000 sr} bdef /c4 { 0.000000 0.000000 0.800000 sr} bdef /c5 { 0.910000 0.820000 0.320000 sr} bdef /c6 { 1.000000 0.260000 0.820000 sr} bdef /c7 { 0.000000 0.820000 0.820000 sr} bdef c0 1 j 1 sg 0 0 6913 5186 PR 6 w 0 1755 5356 0 0 -1755 899 2158 4 MP PP -5356 0 0 1755 5356 0 0 -1755 899 2158 5 MP stroke 4 w DO 0 sg 899 2158 mt 899 403 L 899 403 mt 899 403 L 1434 2158 mt 1434 403 L 1434 403 mt 1434 403 L 1970 2158 mt 1970 403 L 1970 403 mt 1970 403 L 2505 2158 mt 2505 403 L 2505 403 mt 2505 403 L 3041 2158 mt 3041 403 L 3041 403 mt 3041 403 L 3577 2158 mt 3577 403 L 3577 403 mt 3577 403 L 4112 2158 mt 4112 403 L 4112 403 mt 4112 403 L 4648 2158 mt 4648 403 L 4648 403 mt 4648 403 L 5183 2158 mt 5183 403 L 5183 403 mt 5183 403 L 5719 2158 mt 5719 403 L 5719 403 mt 5719 403 L 6255 2158 mt 6255 403 L 6255 403 mt 6255 403 L SO 6 w 899 2158 mt 6255 2158 L 899 2158 mt 899 403 L 899 2158 mt 899 2104 L %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 866 2303 mt (0) s 1434 2158 mt 1434 2104 L 1401 2303 mt (2) s 1970 2158 mt 1970 2104 L 1937 2303 mt (4) s 2505 2158 mt 2505 2104 L 2472 2303 mt (6) s 3041 2158 mt 3041 2104 L 3008 2303 mt (8) s 3577 2158 mt 3577 2104 L 3511 2303 mt (10) s 4112 2158 mt 4112 2104 L 4046 2303 mt (12) s 4648 2158 mt 4648 2104 L 4582 2303 mt (14) s 5183 2158 mt 5183 2104 L 5117 2303 mt (16) s 5719 2158 mt 5719 2104 L 5653 2303 mt (18) s 6255 2158 mt 6255 2104 L 6189 2303 mt (20) s gs 899 403 5357 1756 MR c np 5356 0 899 1280 2 MP stroke gr 1060 254 mt (Image Patch Data with Density Filtration: k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 3308 314 mt (min) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 3462 254 mt ( = 5, k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 3792 314 mt (max) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 3973 254 mt ( = 25, k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 4369 314 mt (step) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 4550 254 mt ( = 1, T = 15000 \(dimension 0\)) s 1 sg 0 1755 5356 0 0 -1755 899 4615 4 MP PP -5356 0 0 1755 5356 0 0 -1755 899 4615 5 MP stroke 4 w DO 0 sg 899 4615 mt 899 2860 L 899 2860 mt 899 2860 L 1434 4615 mt 1434 2860 L 1434 2860 mt 1434 2860 L 1970 4615 mt 1970 2860 L 1970 2860 mt 1970 2860 L 2505 4615 mt 2505 2860 L 2505 2860 mt 2505 2860 L 3041 4615 mt 3041 2860 L 3041 2860 mt 3041 2860 L 3577 4615 mt 3577 2860 L 3577 2860 mt 3577 2860 L 4112 4615 mt 4112 2860 L 4112 2860 mt 4112 2860 L 4648 4615 mt 4648 2860 L 4648 2860 mt 4648 2860 L 5183 4615 mt 5183 2860 L 5183 2860 mt 5183 2860 L 5719 4615 mt 5719 2860 L 5719 2860 mt 5719 2860 L 6255 4615 mt 6255 2860 L 6255 2860 mt 6255 2860 L SO 6 w 899 4615 mt 6255 4615 L 899 4615 mt 899 2860 L 899 4615 mt 899 4561 L 866 4760 mt (0) s 1434 4615 mt 1434 4561 L 1401 4760 mt (2) s 1970 4615 mt 1970 4561 L 1937 4760 mt (4) s 2505 4615 mt 2505 4561 L 2472 4760 mt (6) s 3041 4615 mt 3041 4561 L 3008 4760 mt (8) s 3577 4615 mt 3577 4561 L 3511 4760 mt (10) s 4112 4615 mt 4112 4561 L 4046 4760 mt (12) s 4648 4615 mt 4648 4561 L 4582 4760 mt (14) s 5183 4615 mt 5183 4561 L 5117 4760 mt (16) s 5719 4615 mt 5719 4561 L 5653 4760 mt (18) s 6255 4615 mt 6255 4561 L 6189 4760 mt (20) s gs 899 2860 5357 1756 MR c np 18 0 6238 2882 2 MP stroke 268 0 5987 2905 2 MP stroke 268 0 5987 2927 2 MP stroke 268 0 5987 2950 2 MP stroke 536 0 5719 2972 2 MP stroke 268 0 5719 2995 2 MP stroke 32 0 5703 3017 2 MP stroke 32 0 5703 3040 2 MP stroke 32 0 5703 3062 2 MP stroke 32 0 5435 3085 2 MP stroke 32 0 5435 3107 2 MP stroke 32 0 5435 3130 2 MP stroke 32 0 5435 3152 2 MP stroke 32 0 5167 3175 2 MP stroke 32 0 5167 3197 2 MP stroke 32 0 5167 3220 2 MP stroke 32 0 5167 3242 2 MP stroke 33 0 4899 3265 2 MP stroke 33 0 4899 3287 2 MP stroke 33 0 4899 3310 2 MP stroke 32 0 4632 3332 2 MP stroke 32 0 4632 3355 2 MP stroke 32 0 4632 3377 2 MP stroke 536 0 4380 3400 2 MP stroke 32 0 4364 3422 2 MP stroke 32 0 4364 3445 2 MP stroke 32 0 4364 3467 2 MP stroke 1339 0 4112 3490 2 MP stroke 32 0 4096 3512 2 MP stroke 32 0 4096 3535 2 MP stroke 32 0 4096 3557 2 MP stroke 32 0 4096 3580 2 MP stroke 32 0 3828 3602 2 MP stroke 32 0 3828 3625 2 MP stroke 32 0 3828 3647 2 MP stroke 32 0 3828 3670 2 MP stroke 267 0 3577 3692 2 MP stroke 33 0 3560 3715 2 MP stroke 33 0 3560 3737 2 MP stroke 33 0 3560 3760 2 MP stroke 268 0 3309 3782 2 MP stroke 32 0 3293 3805 2 MP stroke 32 0 3293 3827 2 MP stroke 268 0 3041 3850 2 MP stroke 268 0 3041 3872 2 MP stroke 32 0 3025 3895 2 MP stroke 32 0 3025 3917 2 MP stroke 268 0 2773 3940 2 MP stroke 32 0 2757 3962 2 MP stroke 32 0 2757 3985 2 MP stroke 32 0 2757 4007 2 MP stroke 268 0 2505 4030 2 MP stroke 32 0 2489 4052 2 MP stroke 32 0 2489 4075 2 MP stroke 32 0 2489 4097 2 MP stroke 33 0 2221 4120 2 MP stroke 33 0 2221 4142 2 MP stroke 33 0 2221 4165 2 MP stroke 33 0 2221 4187 2 MP stroke 268 0 1970 4210 2 MP stroke 32 0 1954 4232 2 MP stroke 32 0 1954 4255 2 MP stroke 32 0 1954 4277 2 MP stroke 268 0 1702 4300 2 MP stroke 32 0 1686 4322 2 MP stroke 32 0 1686 4345 2 MP stroke 32 0 1686 4367 2 MP stroke 32 0 1418 4390 2 MP stroke 32 0 1418 4412 2 MP stroke 32 0 1418 4435 2 MP stroke 32 0 1418 4457 2 MP stroke 268 0 1166 4480 2 MP stroke 32 0 1150 4502 2 MP stroke 803 0 899 4525 2 MP stroke 267 0 899 4547 2 MP stroke 267 0 899 4570 2 MP stroke 16 0 899 4592 2 MP stroke gr 1060 2711 mt (Image Patch Data with Density Filtration: k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 3308 2771 mt (min) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 3462 2711 mt ( = 5, k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 3792 2771 mt (max) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 3973 2711 mt ( = 25, k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 4369 2771 mt (step) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 4550 2711 mt ( = 1, T = 15000 \(dimension 1\)) s end %%Color Dict eplot %%EndObject epage end showpage %%Trailer %%EOF ================================================ FILE: src/matlab/experimental/vietoris_rips_bootstrap/outputs/n50000Dct-samples-5-400-5-15000-1.100.eps ================================================ %!PS-Adobe-2.0 EPSF-1.2 %%Creator: MATLAB, The MathWorks, Inc. Version 7.11.0.584 (R2010b). Operating System: Linux 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:07:17 UTC 2011 x86_64. %%Title: ./n50000Dct-samples-5-400-5-15000-1.100.eps %%CreationDate: 07/23/2011 15:14:09 %%DocumentNeededFonts: Helvetica %%DocumentProcessColors: Cyan Magenta Yellow Black %%Pages: 1 %%BoundingBox: 90 215 543 606 %%EndComments %%BeginProlog % MathWorks dictionary /MathWorks 160 dict begin % definition operators /bdef {bind def} bind def /ldef {load def} bind def /xdef {exch def} bdef /xstore {exch store} bdef % operator abbreviations /c /clip ldef /cc /concat ldef /cp /closepath ldef /gr /grestore ldef /gs /gsave ldef /mt /moveto ldef /np /newpath ldef /cm /currentmatrix ldef /sm /setmatrix ldef /rm /rmoveto ldef /rl /rlineto ldef /s {show newpath} bdef /sc {setcmykcolor} bdef /sr /setrgbcolor ldef /sg /setgray ldef /w /setlinewidth ldef /j /setlinejoin ldef /cap /setlinecap ldef /rc {rectclip} bdef /rf {rectfill} bdef % page state control /pgsv () def /bpage {/pgsv save def} bdef /epage {pgsv restore} bdef /bplot /gsave ldef /eplot {stroke grestore} bdef % orientation switch /portraitMode 0 def /landscapeMode 1 def /rotateMode 2 def % coordinate system mappings /dpi2point 0 def % font control /FontSize 0 def /FMS {/FontSize xstore findfont [FontSize 0 0 FontSize neg 0 0] makefont setfont} bdef /reencode {exch dup where {pop load} {pop StandardEncoding} ifelse exch dup 3 1 roll findfont dup length dict begin { 1 index /FID ne {def}{pop pop} ifelse } forall /Encoding exch def currentdict end definefont pop} bdef /isroman {findfont /CharStrings get /Agrave known} bdef /FMSR {3 1 roll 1 index dup isroman {reencode} {pop pop} ifelse exch FMS} bdef /csm {1 dpi2point div -1 dpi2point div scale neg translate dup landscapeMode eq {pop -90 rotate} {rotateMode eq {90 rotate} if} ifelse} bdef % line types: solid, dotted, dashed, dotdash /SO { [] 0 setdash } bdef /DO { [.5 dpi2point mul 4 dpi2point mul] 0 setdash } bdef /DA { [6 dpi2point mul] 0 setdash } bdef /DD { [.5 dpi2point mul 4 dpi2point mul 6 dpi2point mul 4 dpi2point mul] 0 setdash } bdef % macros for lines and objects /L {lineto stroke} bdef /MP {3 1 roll moveto 1 sub {rlineto} repeat} bdef /AP {{rlineto} repeat} bdef /PDlw -1 def /W {/PDlw currentlinewidth def setlinewidth} def /PP {closepath eofill} bdef /DP {closepath stroke} bdef /MR {4 -2 roll moveto dup 0 exch rlineto exch 0 rlineto neg 0 exch rlineto closepath} bdef /FR {MR stroke} bdef /PR {MR fill} bdef /L1i {{currentfile picstr readhexstring pop} image} bdef /tMatrix matrix def /MakeOval {newpath tMatrix currentmatrix pop translate scale 0 0 1 0 360 arc tMatrix setmatrix} bdef /FO {MakeOval stroke} bdef /PO {MakeOval fill} bdef /PD {currentlinewidth 2 div 0 360 arc fill PDlw -1 eq not {PDlw w /PDlw -1 def} if} def /FA {newpath tMatrix currentmatrix pop translate scale 0 0 1 5 -2 roll arc tMatrix setmatrix stroke} bdef /PA {newpath tMatrix currentmatrix pop translate 0 0 moveto scale 0 0 1 5 -2 roll arc closepath tMatrix setmatrix fill} bdef /FAn {newpath tMatrix currentmatrix pop translate scale 0 0 1 5 -2 roll arcn tMatrix setmatrix stroke} bdef /PAn {newpath tMatrix currentmatrix pop translate 0 0 moveto scale 0 0 1 5 -2 roll arcn closepath tMatrix setmatrix fill} bdef /vradius 0 def /hradius 0 def /lry 0 def /lrx 0 def /uly 0 def /ulx 0 def /rad 0 def /MRR {/vradius xdef /hradius xdef /lry xdef /lrx xdef /uly xdef /ulx xdef newpath tMatrix currentmatrix pop ulx hradius add uly vradius add translate hradius vradius scale 0 0 1 180 270 arc tMatrix setmatrix lrx hradius sub uly vradius add translate hradius vradius scale 0 0 1 270 360 arc tMatrix setmatrix lrx hradius sub lry vradius sub translate hradius vradius scale 0 0 1 0 90 arc tMatrix setmatrix ulx hradius add lry vradius sub translate hradius vradius scale 0 0 1 90 180 arc tMatrix setmatrix closepath} bdef /FRR {MRR stroke } bdef /PRR {MRR fill } bdef /MlrRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lry uly sub 2 div def newpath tMatrix currentmatrix pop ulx rad add uly rad add translate rad rad scale 0 0 1 90 270 arc tMatrix setmatrix lrx rad sub lry rad sub translate rad rad scale 0 0 1 270 90 arc tMatrix setmatrix closepath} bdef /FlrRR {MlrRR stroke } bdef /PlrRR {MlrRR fill } bdef /MtbRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lrx ulx sub 2 div def newpath tMatrix currentmatrix pop ulx rad add uly rad add translate rad rad scale 0 0 1 180 360 arc tMatrix setmatrix lrx rad sub lry rad sub translate rad rad scale 0 0 1 0 180 arc tMatrix setmatrix closepath} bdef /FtbRR {MtbRR stroke } bdef /PtbRR {MtbRR fill } bdef /stri 6 array def /dtri 6 array def /smat 6 array def /dmat 6 array def /tmat1 6 array def /tmat2 6 array def /dif 3 array def /asub {/ind2 exch def /ind1 exch def dup dup ind1 get exch ind2 get sub exch } bdef /tri_to_matrix { 2 0 asub 3 1 asub 4 0 asub 5 1 asub dup 0 get exch 1 get 7 -1 roll astore } bdef /compute_transform { dmat dtri tri_to_matrix tmat1 invertmatrix smat stri tri_to_matrix tmat2 concatmatrix } bdef /ds {stri astore pop} bdef /dt {dtri astore pop} bdef /db {2 copy /cols xdef /rows xdef mul dup string currentfile exch readhexstring pop /bmap xdef pop pop} bdef /it {gs np dtri aload pop moveto lineto lineto cp c cols rows 8 compute_transform {bmap} image gr}bdef /il {newpath moveto lineto stroke}bdef currentdict end def %%EndProlog %%BeginSetup MathWorks begin 0 cap end %%EndSetup %%Page: 1 1 %%BeginPageSetup %%PageBoundingBox: 90 215 543 606 MathWorks begin bpage %%EndPageSetup %%BeginObject: obj1 bplot /dpi2point 12 def portraitMode 0216 7344 csm 864 70 5441 4691 MR c np 85 dict begin %Colortable dictionary /c0 { 0.000000 0.000000 0.000000 sr} bdef /c1 { 1.000000 1.000000 1.000000 sr} bdef /c2 { 0.900000 0.000000 0.000000 sr} bdef /c3 { 0.000000 0.820000 0.000000 sr} bdef /c4 { 0.000000 0.000000 0.800000 sr} bdef /c5 { 0.910000 0.820000 0.320000 sr} bdef /c6 { 1.000000 0.260000 0.820000 sr} bdef /c7 { 0.000000 0.820000 0.820000 sr} bdef c0 1 j 1 sg 0 0 6913 5186 PR 6 w 0 1755 5356 0 0 -1755 899 2158 4 MP PP -5356 0 0 1755 5356 0 0 -1755 899 2158 5 MP stroke 4 w DO 0 sg 899 2158 mt 899 403 L 899 403 mt 899 403 L 1576 2158 mt 1576 403 L 1576 403 mt 1576 403 L 2254 2158 mt 2254 403 L 2254 403 mt 2254 403 L 2932 2158 mt 2932 403 L 2932 403 mt 2932 403 L 3610 2158 mt 3610 403 L 3610 403 mt 3610 403 L 4288 2158 mt 4288 403 L 4288 403 mt 4288 403 L 4966 2158 mt 4966 403 L 4966 403 mt 4966 403 L 5644 2158 mt 5644 403 L 5644 403 mt 5644 403 L SO 6 w 899 2158 mt 6255 2158 L 899 2158 mt 899 403 L 899 2158 mt 899 2104 L %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 866 2303 mt (0) s 1576 2158 mt 1576 2104 L 1510 2303 mt (10) s 2254 2158 mt 2254 2104 L 2188 2303 mt (20) s 2932 2158 mt 2932 2104 L 2866 2303 mt (30) s 3610 2158 mt 3610 2104 L 3544 2303 mt (40) s 4288 2158 mt 4288 2104 L 4222 2303 mt (50) s 4966 2158 mt 4966 2104 L 4900 2303 mt (60) s 5644 2158 mt 5644 2104 L 5578 2303 mt (70) s gs 899 403 5357 1756 MR c np 5356 0 899 1280 2 MP stroke gr 1100 254 mt (VR Bootstrap for n50000Dct: k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 2716 314 mt (min) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 2870 254 mt ( = 5, k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 3200 314 mt (max) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 3381 254 mt ( = 400, k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 3844 314 mt (step) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 4025 254 mt ( = 5, T = 15000, S = 100 \(dimension 0\)) s 1 sg 0 1755 5356 0 0 -1755 899 4615 4 MP PP -5356 0 0 1755 5356 0 0 -1755 899 4615 5 MP stroke 4 w DO 0 sg 899 4615 mt 899 2860 L 899 2860 mt 899 2860 L 1576 4615 mt 1576 2860 L 1576 2860 mt 1576 2860 L 2254 4615 mt 2254 2860 L 2254 2860 mt 2254 2860 L 2932 4615 mt 2932 2860 L 2932 2860 mt 2932 2860 L 3610 4615 mt 3610 2860 L 3610 2860 mt 3610 2860 L 4288 4615 mt 4288 2860 L 4288 2860 mt 4288 2860 L 4966 4615 mt 4966 2860 L 4966 2860 mt 4966 2860 L 5644 4615 mt 5644 2860 L 5644 2860 mt 5644 2860 L SO 6 w 899 4615 mt 6255 4615 L 899 4615 mt 899 2860 L 899 4615 mt 899 4561 L 866 4760 mt (0) s 1576 4615 mt 1576 4561 L 1510 4760 mt (10) s 2254 4615 mt 2254 4561 L 2188 4760 mt (20) s 2932 4615 mt 2932 4561 L 2866 4760 mt (30) s 3610 4615 mt 3610 4561 L 3544 4760 mt (40) s 4288 4615 mt 4288 4561 L 4222 4760 mt (50) s 4966 4615 mt 4966 4561 L 4900 4760 mt (60) s 5644 4615 mt 5644 4561 L 5578 4760 mt (70) s gs 899 2860 5357 1756 MR c np 32 0 4476 2881 2 MP stroke 32 0 4408 2903 2 MP stroke 32 0 3391 2925 2 MP stroke 32 0 3255 2947 2 MP stroke 32 0 3052 2969 2 MP stroke 32 0 2984 2991 2 MP stroke 32 0 2713 3013 2 MP stroke 32 0 2713 3035 2 MP stroke 32 0 2645 3057 2 MP stroke 33 0 2577 3079 2 MP stroke 68 0 2458 3101 2 MP stroke 32 0 2374 3123 2 MP stroke 32 0 2374 3145 2 MP stroke 68 0 2322 3167 2 MP stroke 32 0 2306 3189 2 MP stroke 33 0 2238 3211 2 MP stroke 33 0 2238 3232 2 MP stroke 67 0 2187 3254 2 MP stroke 32 0 2103 3276 2 MP stroke 32 0 2103 3298 2 MP stroke 136 0 2051 3320 2 MP stroke 136 0 2051 3342 2 MP stroke 32 0 1967 3364 2 MP stroke 32 0 1967 3386 2 MP stroke 136 0 1915 3408 2 MP stroke 136 0 1915 3430 2 MP stroke 33 0 1899 3452 2 MP stroke 33 0 1899 3474 2 MP stroke 32 0 1832 3496 2 MP stroke 32 0 1832 3518 2 MP stroke 32 0 1832 3540 2 MP stroke 68 0 1780 3562 2 MP stroke 32 0 1764 3583 2 MP stroke 68 0 1712 3605 2 MP stroke 68 0 1712 3627 2 MP stroke 4611 0 1644 3649 2 MP stroke 68 0 1644 3671 2 MP stroke 32 0 1628 3693 2 MP stroke 32 0 1628 3715 2 MP stroke 33 0 1560 3737 2 MP stroke 33 0 1560 3759 2 MP stroke 203 0 1509 3781 2 MP stroke 67 0 1509 3803 2 MP stroke 67 0 1509 3825 2 MP stroke 32 0 1493 3847 2 MP stroke 68 0 1441 3869 2 MP stroke 32 0 1425 3891 2 MP stroke 32 0 1425 3913 2 MP stroke 32 0 1425 3934 2 MP stroke 32 0 1425 3956 2 MP stroke 32 0 1357 3978 2 MP stroke 32 0 1357 4000 2 MP stroke 32 0 1357 4022 2 MP stroke 32 0 1357 4044 2 MP stroke 32 0 1289 4066 2 MP stroke 32 0 1289 4088 2 MP stroke 32 0 1289 4110 2 MP stroke 32 0 1289 4132 2 MP stroke 136 0 1237 4154 2 MP stroke 33 0 1221 4176 2 MP stroke 33 0 1221 4198 2 MP stroke 33 0 1221 4220 2 MP stroke 32 0 1154 4242 2 MP stroke 32 0 1154 4264 2 MP stroke 135 0 1102 4285 2 MP stroke 68 0 1102 4307 2 MP stroke 68 0 1102 4329 2 MP stroke 32 0 1086 4351 2 MP stroke 32 0 1018 4373 2 MP stroke 32 0 1018 4395 2 MP stroke 32 0 1018 4417 2 MP stroke 136 0 966 4439 2 MP stroke 68 0 966 4461 2 MP stroke 32 0 950 4483 2 MP stroke 32 0 950 4505 2 MP stroke 32 0 950 4527 2 MP stroke 67 0 899 4549 2 MP stroke 16 0 899 4571 2 MP stroke 16 0 899 4593 2 MP stroke gr 1100 2711 mt (VR Bootstrap for n50000Dct: k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 2716 2771 mt (min) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 2870 2711 mt ( = 5, k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 3200 2771 mt (max) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 3381 2711 mt ( = 400, k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 3844 2771 mt (step) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 4025 2711 mt ( = 5, T = 15000, S = 100 \(dimension 1\)) s end %%Color Dict eplot %%EndObject epage end showpage %%Trailer %%EOF ================================================ FILE: src/matlab/experimental/vietoris_rips_bootstrap/outputs/n50000Dct-samples-5-50-5-15000-1.100.eps ================================================ %!PS-Adobe-2.0 EPSF-1.2 %%Creator: MATLAB, The MathWorks, Inc. Version 7.11.0.584 (R2010b). Operating System: Linux 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:07:17 UTC 2011 x86_64. %%Title: ./n50000Dct-samples-5-50-5-15000-1.100.eps %%CreationDate: 07/23/2011 12:37:17 %%DocumentNeededFonts: Helvetica %%DocumentProcessColors: Cyan Magenta Yellow Black %%Pages: 1 %%BoundingBox: 90 215 546 606 %%EndComments %%BeginProlog % MathWorks dictionary /MathWorks 160 dict begin % definition operators /bdef {bind def} bind def /ldef {load def} bind def /xdef {exch def} bdef /xstore {exch store} bdef % operator abbreviations /c /clip ldef /cc /concat ldef /cp /closepath ldef /gr /grestore ldef /gs /gsave ldef /mt /moveto ldef /np /newpath ldef /cm /currentmatrix ldef /sm /setmatrix ldef /rm /rmoveto ldef /rl /rlineto ldef /s {show newpath} bdef /sc {setcmykcolor} bdef /sr /setrgbcolor ldef /sg /setgray ldef /w /setlinewidth ldef /j /setlinejoin ldef /cap /setlinecap ldef /rc {rectclip} bdef /rf {rectfill} bdef % page state control /pgsv () def /bpage {/pgsv save def} bdef /epage {pgsv restore} bdef /bplot /gsave ldef /eplot {stroke grestore} bdef % orientation switch /portraitMode 0 def /landscapeMode 1 def /rotateMode 2 def % coordinate system mappings /dpi2point 0 def % font control /FontSize 0 def /FMS {/FontSize xstore findfont [FontSize 0 0 FontSize neg 0 0] makefont setfont} bdef /reencode {exch dup where {pop load} {pop StandardEncoding} ifelse exch dup 3 1 roll findfont dup length dict begin { 1 index /FID ne {def}{pop pop} ifelse } forall /Encoding exch def currentdict end definefont pop} bdef /isroman {findfont /CharStrings get /Agrave known} bdef /FMSR {3 1 roll 1 index dup isroman {reencode} {pop pop} ifelse exch FMS} bdef /csm {1 dpi2point div -1 dpi2point div scale neg translate dup landscapeMode eq {pop -90 rotate} {rotateMode eq {90 rotate} if} ifelse} bdef % line types: solid, dotted, dashed, dotdash /SO { [] 0 setdash } bdef /DO { [.5 dpi2point mul 4 dpi2point mul] 0 setdash } bdef /DA { [6 dpi2point mul] 0 setdash } bdef /DD { [.5 dpi2point mul 4 dpi2point mul 6 dpi2point mul 4 dpi2point mul] 0 setdash } bdef % macros for lines and objects /L {lineto stroke} bdef /MP {3 1 roll moveto 1 sub {rlineto} repeat} bdef /AP {{rlineto} repeat} bdef /PDlw -1 def /W {/PDlw currentlinewidth def setlinewidth} def /PP {closepath eofill} bdef /DP {closepath stroke} bdef /MR {4 -2 roll moveto dup 0 exch rlineto exch 0 rlineto neg 0 exch rlineto closepath} bdef /FR {MR stroke} bdef /PR {MR fill} bdef /L1i {{currentfile picstr readhexstring pop} image} bdef /tMatrix matrix def /MakeOval {newpath tMatrix currentmatrix pop translate scale 0 0 1 0 360 arc tMatrix setmatrix} bdef /FO {MakeOval stroke} bdef /PO {MakeOval fill} bdef /PD {currentlinewidth 2 div 0 360 arc fill PDlw -1 eq not {PDlw w /PDlw -1 def} if} def /FA {newpath tMatrix currentmatrix pop translate scale 0 0 1 5 -2 roll arc tMatrix setmatrix stroke} bdef /PA {newpath tMatrix currentmatrix pop translate 0 0 moveto scale 0 0 1 5 -2 roll arc closepath tMatrix setmatrix fill} bdef /FAn {newpath tMatrix currentmatrix pop translate scale 0 0 1 5 -2 roll arcn tMatrix setmatrix stroke} bdef /PAn {newpath tMatrix currentmatrix pop translate 0 0 moveto scale 0 0 1 5 -2 roll arcn closepath tMatrix setmatrix fill} bdef /vradius 0 def /hradius 0 def /lry 0 def /lrx 0 def /uly 0 def /ulx 0 def /rad 0 def /MRR {/vradius xdef /hradius xdef /lry xdef /lrx xdef /uly xdef /ulx xdef newpath tMatrix currentmatrix pop ulx hradius add uly vradius add translate hradius vradius scale 0 0 1 180 270 arc tMatrix setmatrix lrx hradius sub uly vradius add translate hradius vradius scale 0 0 1 270 360 arc tMatrix setmatrix lrx hradius sub lry vradius sub translate hradius vradius scale 0 0 1 0 90 arc tMatrix setmatrix ulx hradius add lry vradius sub translate hradius vradius scale 0 0 1 90 180 arc tMatrix setmatrix closepath} bdef /FRR {MRR stroke } bdef /PRR {MRR fill } bdef /MlrRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lry uly sub 2 div def newpath tMatrix currentmatrix pop ulx rad add uly rad add translate rad rad scale 0 0 1 90 270 arc tMatrix setmatrix lrx rad sub lry rad sub translate rad rad scale 0 0 1 270 90 arc tMatrix setmatrix closepath} bdef /FlrRR {MlrRR stroke } bdef /PlrRR {MlrRR fill } bdef /MtbRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lrx ulx sub 2 div def newpath tMatrix currentmatrix pop ulx rad add uly rad add translate rad rad scale 0 0 1 180 360 arc tMatrix setmatrix lrx rad sub lry rad sub translate rad rad scale 0 0 1 0 180 arc tMatrix setmatrix closepath} bdef /FtbRR {MtbRR stroke } bdef /PtbRR {MtbRR fill } bdef /stri 6 array def /dtri 6 array def /smat 6 array def /dmat 6 array def /tmat1 6 array def /tmat2 6 array def /dif 3 array def /asub {/ind2 exch def /ind1 exch def dup dup ind1 get exch ind2 get sub exch } bdef /tri_to_matrix { 2 0 asub 3 1 asub 4 0 asub 5 1 asub dup 0 get exch 1 get 7 -1 roll astore } bdef /compute_transform { dmat dtri tri_to_matrix tmat1 invertmatrix smat stri tri_to_matrix tmat2 concatmatrix } bdef /ds {stri astore pop} bdef /dt {dtri astore pop} bdef /db {2 copy /cols xdef /rows xdef mul dup string currentfile exch readhexstring pop /bmap xdef pop pop} bdef /it {gs np dtri aload pop moveto lineto lineto cp c cols rows 8 compute_transform {bmap} image gr}bdef /il {newpath moveto lineto stroke}bdef currentdict end def %%EndProlog %%BeginSetup MathWorks begin 0 cap end %%EndSetup %%Page: 1 1 %%BeginPageSetup %%PageBoundingBox: 90 215 546 606 MathWorks begin bpage %%EndPageSetup %%BeginObject: obj1 bplot /dpi2point 12 def portraitMode 0216 7344 csm 864 70 5473 4691 MR c np 85 dict begin %Colortable dictionary /c0 { 0.000000 0.000000 0.000000 sr} bdef /c1 { 1.000000 1.000000 1.000000 sr} bdef /c2 { 0.900000 0.000000 0.000000 sr} bdef /c3 { 0.000000 0.820000 0.000000 sr} bdef /c4 { 0.000000 0.000000 0.800000 sr} bdef /c5 { 0.910000 0.820000 0.320000 sr} bdef /c6 { 1.000000 0.260000 0.820000 sr} bdef /c7 { 0.000000 0.820000 0.820000 sr} bdef c0 1 j 1 sg 0 0 6913 5186 PR 6 w 0 1755 5356 0 0 -1755 899 2158 4 MP PP -5356 0 0 1755 5356 0 0 -1755 899 2158 5 MP stroke 4 w DO 0 sg 899 2158 mt 899 403 L 899 403 mt 899 403 L 1494 2158 mt 1494 403 L 1494 403 mt 1494 403 L 2089 2158 mt 2089 403 L 2089 403 mt 2089 403 L 2684 2158 mt 2684 403 L 2684 403 mt 2684 403 L 3279 2158 mt 3279 403 L 3279 403 mt 3279 403 L 3874 2158 mt 3874 403 L 3874 403 mt 3874 403 L 4469 2158 mt 4469 403 L 4469 403 mt 4469 403 L 5064 2158 mt 5064 403 L 5064 403 mt 5064 403 L 5659 2158 mt 5659 403 L 5659 403 mt 5659 403 L 6255 2158 mt 6255 403 L 6255 403 mt 6255 403 L SO 6 w 899 2158 mt 6255 2158 L 899 2158 mt 899 403 L 899 2158 mt 899 2104 L %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 866 2303 mt (0) s 1494 2158 mt 1494 2104 L 1461 2303 mt (1) s 2089 2158 mt 2089 2104 L 2056 2303 mt (2) s 2684 2158 mt 2684 2104 L 2651 2303 mt (3) s 3279 2158 mt 3279 2104 L 3246 2303 mt (4) s 3874 2158 mt 3874 2104 L 3841 2303 mt (5) s 4469 2158 mt 4469 2104 L 4436 2303 mt (6) s 5064 2158 mt 5064 2104 L 5031 2303 mt (7) s 5659 2158 mt 5659 2104 L 5626 2303 mt (8) s 6255 2158 mt 6255 2104 L 6222 2303 mt (9) s gs 899 403 5357 1756 MR c np 5356 0 899 1280 2 MP stroke gr 1060 254 mt (Image Patch Data with Density Filtration: k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 3308 314 mt (min) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 3462 254 mt ( = 5, k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 3792 314 mt (max) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 3973 254 mt ( = 50, k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 4369 314 mt (step) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 4550 254 mt ( = 5, T = 15000 \(dimension 0\)) s 1 sg 0 1755 5356 0 0 -1755 899 4615 4 MP PP -5356 0 0 1755 5356 0 0 -1755 899 4615 5 MP stroke 4 w DO 0 sg 899 4615 mt 899 2860 L 899 2860 mt 899 2860 L 1494 4615 mt 1494 2860 L 1494 2860 mt 1494 2860 L 2089 4615 mt 2089 2860 L 2089 2860 mt 2089 2860 L 2684 4615 mt 2684 2860 L 2684 2860 mt 2684 2860 L 3279 4615 mt 3279 2860 L 3279 2860 mt 3279 2860 L 3874 4615 mt 3874 2860 L 3874 2860 mt 3874 2860 L 4469 4615 mt 4469 2860 L 4469 2860 mt 4469 2860 L 5064 4615 mt 5064 2860 L 5064 2860 mt 5064 2860 L 5659 4615 mt 5659 2860 L 5659 2860 mt 5659 2860 L 6255 4615 mt 6255 2860 L 6255 2860 mt 6255 2860 L SO 6 w 899 4615 mt 6255 4615 L 899 4615 mt 899 2860 L 899 4615 mt 899 4561 L 866 4760 mt (0) s 1494 4615 mt 1494 4561 L 1461 4760 mt (1) s 2089 4615 mt 2089 4561 L 2056 4760 mt (2) s 2684 4615 mt 2684 4561 L 2651 4760 mt (3) s 3279 4615 mt 3279 4561 L 3246 4760 mt (4) s 3874 4615 mt 3874 4561 L 3841 4760 mt (5) s 4469 4615 mt 4469 4561 L 4436 4760 mt (6) s 5064 4615 mt 5064 4561 L 5031 4760 mt (7) s 5659 4615 mt 5659 4561 L 5626 4760 mt (8) s 6255 4615 mt 6255 4561 L 6222 4760 mt (9) s gs 899 2860 5357 1756 MR c np 18 0 6238 2911 2 MP stroke 18 0 6238 2963 2 MP stroke 596 0 5659 3014 2 MP stroke 32 0 5643 3066 2 MP stroke 32 0 5643 3118 2 MP stroke 1191 0 5064 3169 2 MP stroke 32 0 5048 3221 2 MP stroke 32 0 5048 3272 2 MP stroke 595 0 4469 3324 2 MP stroke 32 0 4453 3376 2 MP stroke 32 0 4453 3427 2 MP stroke 32 0 4453 3479 2 MP stroke 2381 0 3874 3531 2 MP stroke 32 0 3858 3582 2 MP stroke 32 0 3858 3634 2 MP stroke 32 0 3858 3685 2 MP stroke 32 0 3858 3737 2 MP stroke 32 0 3263 3789 2 MP stroke 32 0 3263 3840 2 MP stroke 32 0 3263 3892 2 MP stroke 32 0 3263 3943 2 MP stroke 595 0 2684 3995 2 MP stroke 32 0 2668 4047 2 MP stroke 595 0 2089 4098 2 MP stroke 595 0 2089 4150 2 MP stroke 32 0 2073 4202 2 MP stroke 32 0 2073 4253 2 MP stroke 32 0 2073 4305 2 MP stroke 32 0 1478 4356 2 MP stroke 32 0 1478 4408 2 MP stroke 1785 0 899 4460 2 MP stroke 595 0 899 4511 2 MP stroke 595 0 899 4563 2 MP stroke gr 1060 2711 mt (Image Patch Data with Density Filtration: k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 3308 2771 mt (min) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 3462 2711 mt ( = 5, k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 3792 2771 mt (max) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 3973 2711 mt ( = 50, k) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 4369 2771 mt (step) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 4550 2711 mt ( = 5, T = 15000 \(dimension 1\)) s end %%Color Dict eplot %%EndObject epage end showpage %%Trailer %%EOF ================================================ FILE: src/matlab/experimental/vietoris_rips_bootstrap/outputs/nk300c30Dct_LW0.eps ================================================ %!PS-Adobe-2.0 EPSF-1.2 %%Creator: MATLAB, The MathWorks, Inc. Version 7.11.0.584 (R2010b). Operating System: Linux 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:07:17 UTC 2011 x86_64. %%Title: ./nk300c30Dct_LW0.eps %%CreationDate: 07/23/2011 11:24:31 %%DocumentNeededFonts: Helvetica %%DocumentProcessColors: Cyan Magenta Yellow Black %%Pages: 1 %%BoundingBox: 90 215 549 598 %%EndComments %%BeginProlog % MathWorks dictionary /MathWorks 160 dict begin % definition operators /bdef {bind def} bind def /ldef {load def} bind def /xdef {exch def} bdef /xstore {exch store} bdef % operator abbreviations /c /clip ldef /cc /concat ldef /cp /closepath ldef /gr /grestore ldef /gs /gsave ldef /mt /moveto ldef /np /newpath ldef /cm /currentmatrix ldef /sm /setmatrix ldef /rm /rmoveto ldef /rl /rlineto ldef /s {show newpath} bdef /sc {setcmykcolor} bdef /sr /setrgbcolor ldef /sg /setgray ldef /w /setlinewidth ldef /j /setlinejoin ldef /cap /setlinecap ldef /rc {rectclip} bdef /rf {rectfill} bdef % page state control /pgsv () def /bpage {/pgsv save def} bdef /epage {pgsv restore} bdef /bplot /gsave ldef /eplot {stroke grestore} bdef % orientation switch /portraitMode 0 def /landscapeMode 1 def /rotateMode 2 def % coordinate system mappings /dpi2point 0 def % font control /FontSize 0 def /FMS {/FontSize xstore findfont [FontSize 0 0 FontSize neg 0 0] makefont setfont} bdef /reencode {exch dup where {pop load} {pop StandardEncoding} ifelse exch dup 3 1 roll findfont dup length dict begin { 1 index /FID ne {def}{pop pop} ifelse } forall /Encoding exch def currentdict end definefont pop} bdef /isroman {findfont /CharStrings get /Agrave known} bdef /FMSR {3 1 roll 1 index dup isroman {reencode} {pop pop} ifelse exch FMS} bdef /csm {1 dpi2point div -1 dpi2point div scale neg translate dup landscapeMode eq {pop -90 rotate} {rotateMode eq {90 rotate} if} ifelse} bdef % line types: solid, dotted, dashed, dotdash /SO { [] 0 setdash } bdef /DO { [.5 dpi2point mul 4 dpi2point mul] 0 setdash } bdef /DA { [6 dpi2point mul] 0 setdash } bdef /DD { [.5 dpi2point mul 4 dpi2point mul 6 dpi2point mul 4 dpi2point mul] 0 setdash } bdef % macros for lines and objects /L {lineto stroke} bdef /MP {3 1 roll moveto 1 sub {rlineto} repeat} bdef /AP {{rlineto} repeat} bdef /PDlw -1 def /W {/PDlw currentlinewidth def setlinewidth} def /PP {closepath eofill} bdef /DP {closepath stroke} bdef /MR {4 -2 roll moveto dup 0 exch rlineto exch 0 rlineto neg 0 exch rlineto closepath} bdef /FR {MR stroke} bdef /PR {MR fill} bdef /L1i {{currentfile picstr readhexstring pop} image} bdef /tMatrix matrix def /MakeOval {newpath tMatrix currentmatrix pop translate scale 0 0 1 0 360 arc tMatrix setmatrix} bdef /FO {MakeOval stroke} bdef /PO {MakeOval fill} bdef /PD {currentlinewidth 2 div 0 360 arc fill PDlw -1 eq not {PDlw w /PDlw -1 def} if} def /FA {newpath tMatrix currentmatrix pop translate scale 0 0 1 5 -2 roll arc tMatrix setmatrix stroke} bdef /PA {newpath tMatrix currentmatrix pop translate 0 0 moveto scale 0 0 1 5 -2 roll arc closepath tMatrix setmatrix fill} bdef /FAn {newpath tMatrix currentmatrix pop translate scale 0 0 1 5 -2 roll arcn tMatrix setmatrix stroke} bdef /PAn {newpath tMatrix currentmatrix pop translate 0 0 moveto scale 0 0 1 5 -2 roll arcn closepath tMatrix setmatrix fill} bdef /vradius 0 def /hradius 0 def /lry 0 def /lrx 0 def /uly 0 def /ulx 0 def /rad 0 def /MRR {/vradius xdef /hradius xdef /lry xdef /lrx xdef /uly xdef /ulx xdef newpath tMatrix currentmatrix pop ulx hradius add uly vradius add translate hradius vradius scale 0 0 1 180 270 arc tMatrix setmatrix lrx hradius sub uly vradius add translate hradius vradius scale 0 0 1 270 360 arc tMatrix setmatrix lrx hradius sub lry vradius sub translate hradius vradius scale 0 0 1 0 90 arc tMatrix setmatrix ulx hradius add lry vradius sub translate hradius vradius scale 0 0 1 90 180 arc tMatrix setmatrix closepath} bdef /FRR {MRR stroke } bdef /PRR {MRR fill } bdef /MlrRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lry uly sub 2 div def newpath tMatrix currentmatrix pop ulx rad add uly rad add translate rad rad scale 0 0 1 90 270 arc tMatrix setmatrix lrx rad sub lry rad sub translate rad rad scale 0 0 1 270 90 arc tMatrix setmatrix closepath} bdef /FlrRR {MlrRR stroke } bdef /PlrRR {MlrRR fill } bdef /MtbRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lrx ulx sub 2 div def newpath tMatrix currentmatrix pop ulx rad add uly rad add translate rad rad scale 0 0 1 180 360 arc tMatrix setmatrix lrx rad sub lry rad sub translate rad rad scale 0 0 1 0 180 arc tMatrix setmatrix closepath} bdef /FtbRR {MtbRR stroke } bdef /PtbRR {MtbRR fill } bdef /stri 6 array def /dtri 6 array def /smat 6 array def /dmat 6 array def /tmat1 6 array def /tmat2 6 array def /dif 3 array def /asub {/ind2 exch def /ind1 exch def dup dup ind1 get exch ind2 get sub exch } bdef /tri_to_matrix { 2 0 asub 3 1 asub 4 0 asub 5 1 asub dup 0 get exch 1 get 7 -1 roll astore } bdef /compute_transform { dmat dtri tri_to_matrix tmat1 invertmatrix smat stri tri_to_matrix tmat2 concatmatrix } bdef /ds {stri astore pop} bdef /dt {dtri astore pop} bdef /db {2 copy /cols xdef /rows xdef mul dup string currentfile exch readhexstring pop /bmap xdef pop pop} bdef /it {gs np dtri aload pop moveto lineto lineto cp c cols rows 8 compute_transform {bmap} image gr}bdef /il {newpath moveto lineto stroke}bdef currentdict end def %%EndProlog %%BeginSetup MathWorks begin 0 cap end %%EndSetup %%Page: 1 1 %%BeginPageSetup %%PageBoundingBox: 90 215 549 598 MathWorks begin bpage %%EndPageSetup %%BeginObject: obj1 bplot /dpi2point 12 def portraitMode 0216 7344 csm 864 161 5509 4600 MR c np 85 dict begin %Colortable dictionary /c0 { 0.000000 0.000000 0.000000 sr} bdef /c1 { 1.000000 1.000000 1.000000 sr} bdef /c2 { 0.900000 0.000000 0.000000 sr} bdef /c3 { 0.000000 0.820000 0.000000 sr} bdef /c4 { 0.000000 0.000000 0.800000 sr} bdef /c5 { 0.910000 0.820000 0.320000 sr} bdef /c6 { 1.000000 0.260000 0.820000 sr} bdef /c7 { 0.000000 0.820000 0.820000 sr} bdef c0 1 j 1 sg 0 0 6913 5186 PR 6 w 0 1013 5356 0 0 -1013 899 1507 4 MP PP -5356 0 0 1013 5356 0 0 -1013 899 1507 5 MP stroke 4 w DO 0 sg 899 1507 mt 899 494 L 899 494 mt 899 494 L 1434 1507 mt 1434 494 L 1434 494 mt 1434 494 L 1970 1507 mt 1970 494 L 1970 494 mt 1970 494 L 2505 1507 mt 2505 494 L 2505 494 mt 2505 494 L 3041 1507 mt 3041 494 L 3041 494 mt 3041 494 L 3577 1507 mt 3577 494 L 3577 494 mt 3577 494 L 4112 1507 mt 4112 494 L 4112 494 mt 4112 494 L 4648 1507 mt 4648 494 L 4648 494 mt 4648 494 L 5183 1507 mt 5183 494 L 5183 494 mt 5183 494 L 5719 1507 mt 5719 494 L 5719 494 mt 5719 494 L 6255 1507 mt 6255 494 L 6255 494 mt 6255 494 L SO 6 w 899 1507 mt 6255 1507 L 899 1507 mt 899 494 L 899 1507 mt 899 1453 L %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 866 1652 mt (0) s 1434 1507 mt 1434 1453 L 1351 1652 mt (0.1) s 1970 1507 mt 1970 1453 L 1887 1652 mt (0.2) s 2505 1507 mt 2505 1453 L 2422 1652 mt (0.3) s 3041 1507 mt 3041 1453 L 2958 1652 mt (0.4) s 3577 1507 mt 3577 1453 L 3494 1652 mt (0.5) s 4112 1507 mt 4112 1453 L 4029 1652 mt (0.6) s 4648 1507 mt 4648 1453 L 4565 1652 mt (0.7) s 5183 1507 mt 5183 1453 L 5100 1652 mt (0.8) s 5719 1507 mt 5719 1453 L 5636 1652 mt (0.9) s 6255 1507 mt 6255 1453 L 6222 1652 mt (1) s gs 899 494 5357 1014 MR c np 12 w 5356 0 899 513 2 MP stroke 6255 513 PD gr 12 w gs 6182 440 147 147 MR c np 0 j 0 82 -71 -41 71 -41 6231 554 4 MP DP gr gs 899 494 5357 1014 MR c np 2195 0 899 533 2 MP stroke 2131 0 899 553 2 MP stroke 2131 0 899 573 2 MP stroke 2067 0 899 593 2 MP stroke 2056 0 899 613 2 MP stroke 2045 0 899 633 2 MP stroke 2035 0 899 652 2 MP stroke 2024 0 899 672 2 MP stroke 2024 0 899 692 2 MP stroke 2013 0 899 712 2 MP stroke 2003 0 899 732 2 MP stroke 2003 0 899 752 2 MP stroke 2003 0 899 772 2 MP stroke 1992 0 899 791 2 MP stroke 1981 0 899 811 2 MP stroke 1971 0 899 831 2 MP stroke 1971 0 899 851 2 MP stroke 1971 0 899 871 2 MP stroke 1971 0 899 891 2 MP stroke 1960 0 899 911 2 MP stroke 1960 0 899 930 2 MP stroke 1949 0 899 950 2 MP stroke 1949 0 899 970 2 MP stroke 1949 0 899 990 2 MP stroke 1949 0 899 1010 2 MP stroke 1938 0 899 1030 2 MP stroke 1938 0 899 1050 2 MP stroke 1938 0 899 1070 2 MP stroke 1928 0 899 1089 2 MP stroke 1928 0 899 1109 2 MP stroke 1928 0 899 1129 2 MP stroke 1917 0 899 1149 2 MP stroke 1906 0 899 1169 2 MP stroke 1906 0 899 1189 2 MP stroke 1906 0 899 1209 2 MP stroke 1896 0 899 1228 2 MP stroke 1885 0 899 1248 2 MP stroke 1885 0 899 1268 2 MP stroke 1874 0 899 1288 2 MP stroke 1863 0 899 1308 2 MP stroke 1863 0 899 1328 2 MP stroke 1853 0 899 1348 2 MP stroke 1853 0 899 1367 2 MP stroke 1842 0 899 1387 2 MP stroke 1842 0 899 1407 2 MP stroke 1842 0 899 1427 2 MP stroke 1821 0 899 1447 2 MP stroke 1821 0 899 1467 2 MP stroke 1746 0 899 1487 2 MP stroke gr 2737 345 mt (nk300c30Dct) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 3437 405 mt (L) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 3490 345 mt (W0 \(dimension 0\)) s 6 w 1 sg 0 1014 5356 0 0 -1014 899 3061 4 MP PP -5356 0 0 1014 5356 0 0 -1014 899 3061 5 MP stroke 4 w DO 0 sg 899 3061 mt 899 2047 L 899 2047 mt 899 2047 L 1434 3061 mt 1434 2047 L 1434 2047 mt 1434 2047 L 1970 3061 mt 1970 2047 L 1970 2047 mt 1970 2047 L 2505 3061 mt 2505 2047 L 2505 2047 mt 2505 2047 L 3041 3061 mt 3041 2047 L 3041 2047 mt 3041 2047 L 3577 3061 mt 3577 2047 L 3577 2047 mt 3577 2047 L 4112 3061 mt 4112 2047 L 4112 2047 mt 4112 2047 L 4648 3061 mt 4648 2047 L 4648 2047 mt 4648 2047 L 5183 3061 mt 5183 2047 L 5183 2047 mt 5183 2047 L 5719 3061 mt 5719 2047 L 5719 2047 mt 5719 2047 L 6255 3061 mt 6255 2047 L 6255 2047 mt 6255 2047 L SO 6 w 899 3061 mt 6255 3061 L 899 3061 mt 899 2047 L 899 3061 mt 899 3007 L 866 3206 mt (0) s 1434 3061 mt 1434 3007 L 1351 3206 mt (0.1) s 1970 3061 mt 1970 3007 L 1887 3206 mt (0.2) s 2505 3061 mt 2505 3007 L 2422 3206 mt (0.3) s 3041 3061 mt 3041 3007 L 2958 3206 mt (0.4) s 3577 3061 mt 3577 3007 L 3494 3206 mt (0.5) s 4112 3061 mt 4112 3007 L 4029 3206 mt (0.6) s 4648 3061 mt 4648 3007 L 4565 3206 mt (0.7) s 5183 3061 mt 5183 3007 L 5100 3206 mt (0.8) s 5719 3061 mt 5719 3007 L 5636 3206 mt (0.9) s 6255 3061 mt 6255 3007 L 6222 3206 mt (1) s gs 899 2047 5357 1015 MR c np 12 w 140 0 3244 2095 2 MP stroke 64 0 3116 2143 2 MP stroke 32 0 3116 2191 2 MP stroke 161 0 3094 2240 2 MP stroke 65 0 3094 2288 2 MP stroke 97 0 3062 2336 2 MP stroke 3117 0 3052 2385 2 MP stroke 215 0 3019 2433 2 MP stroke 86 0 3019 2481 2 MP stroke 128 0 3009 2529 2 MP stroke 32 0 3009 2578 2 MP stroke 268 0 2998 2626 2 MP stroke 54 0 2987 2674 2 MP stroke 54 0 2987 2723 2 MP stroke 32 0 2987 2771 2 MP stroke 128 0 2977 2819 2 MP stroke 247 0 2944 2867 2 MP stroke 65 0 2944 2916 2 MP stroke 182 0 2912 2964 2 MP stroke 246 0 2902 3012 2 MP stroke gr 12 w 2737 1898 mt (nk300c30Dct) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 3437 1958 mt (L) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 3490 1898 mt (W0 \(dimension 1\)) s 6 w 1 sg 0 1014 5356 0 0 -1014 899 4615 4 MP PP -5356 0 0 1014 5356 0 0 -1014 899 4615 5 MP stroke 4 w DO 0 sg 899 4615 mt 899 3601 L 899 3601 mt 899 3601 L 1434 4615 mt 1434 3601 L 1434 3601 mt 1434 3601 L 1970 4615 mt 1970 3601 L 1970 3601 mt 1970 3601 L 2505 4615 mt 2505 3601 L 2505 3601 mt 2505 3601 L 3041 4615 mt 3041 3601 L 3041 3601 mt 3041 3601 L 3577 4615 mt 3577 3601 L 3577 3601 mt 3577 3601 L 4112 4615 mt 4112 3601 L 4112 3601 mt 4112 3601 L 4648 4615 mt 4648 3601 L 4648 3601 mt 4648 3601 L 5183 4615 mt 5183 3601 L 5183 3601 mt 5183 3601 L 5719 4615 mt 5719 3601 L 5719 3601 mt 5719 3601 L 6255 4615 mt 6255 3601 L 6255 3601 mt 6255 3601 L SO 6 w 899 4615 mt 6255 4615 L 899 4615 mt 899 3601 L 899 4615 mt 899 4561 L 866 4760 mt (0) s 1434 4615 mt 1434 4561 L 1351 4760 mt (0.1) s 1970 4615 mt 1970 4561 L 1887 4760 mt (0.2) s 2505 4615 mt 2505 4561 L 2422 4760 mt (0.3) s 3041 4615 mt 3041 4561 L 2958 4760 mt (0.4) s 3577 4615 mt 3577 4561 L 3494 4760 mt (0.5) s 4112 4615 mt 4112 4561 L 4029 4760 mt (0.6) s 4648 4615 mt 4648 4561 L 4565 4760 mt (0.7) s 5183 4615 mt 5183 4561 L 5100 4760 mt (0.8) s 5719 4615 mt 5719 4561 L 5636 4760 mt (0.9) s 6255 4615 mt 6255 4561 L 6222 4760 mt (1) s gs 899 3601 5357 1015 MR c np 12 w 11 0 6244 3854 2 MP stroke 6255 3854 PD gr 12 w gs 6182 3781 147 147 MR c np 0 j 0 82 -71 -41 71 -41 6231 3895 4 MP DP gr gs 899 3601 5357 1015 MR c np 54 0 6201 4108 2 MP stroke 6255 4108 PD gr gs 6182 4035 147 147 MR c np 0 j 0 82 -71 -41 71 -41 6231 4149 4 MP DP gr gs 899 3601 5357 1015 MR c np 32 0 3427 4361 2 MP stroke gr 2737 3452 mt (nk300c30Dct) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 96 FMSR 3437 3512 mt (L) s %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 3490 3452 mt (W0 \(dimension 2\)) s 6 w end %%Color Dict eplot %%EndObject epage end showpage %%Trailer %%EOF ================================================ FILE: src/matlab/experimental/vietoris_rips_bootstrap/parfor_test.m ================================================ clc; clear all; close all; n = 100; k = 2000; %% tic(); for i = 1:n values = randn(k, k); end toc() %% tic(); parfor i = 1:n values = randn(k, k); end toc() ================================================ FILE: src/matlab/experimental/witness_bootstrap/circle_example.m ================================================ clc; clear; close all; num_samples = 11; sample_size = 40; max_dimension = 1; num_points = 1000; max_filtration_value = 0.3; n = num_points; maxDistance = max_filtration_value; points = examples.PointCloudExamples.getRandomSpherePoints(n, max_dimension); metricSpace = metric.impl.EuclideanMetricSpace(points); utility.RandomUtility.initializeWithSeed(0); bootstrapper = homology.zigzag.bootstrap.WitnessBootstrapper(metric.impl.EuclideanMetricSpace(points), maxDistance, max_dimension, num_samples, sample_size); barcodes = bootstrapper.performProjectionBootstrap() %% transformer = homology.filtration.IdentityConverter.getInstance(); filtration_value_intervals = transformer.transform(barcodes); options.caption = 'Landmark samples from random points on a circle' options.filename = 'circle'; options.file_format = 'eps'; options.min_dimension = 0; options.max_dimension = 1; plot_barcodes(filtration_value_intervals, options); ================================================ FILE: src/matlab/experimental/witness_bootstrap/circle_incremental.m ================================================ clc; clear; close all; utility.RandomUtility.initializeWithSeed(5); n = 300; max_sample_size = 82; increment_size = 1; initial_sample_size = 2; max_dimension = 1; maxDistance = 0.1; set = [1:n] - 1; sample_size = initial_sample_size; sample = []; points = examples.PointCloudExamples.getEquispacedCirclePoints(n); metricSpace = metric.impl.EuclideanMetricSpace(points); list = java.util.ArrayList; num_samples = 0; while (sample_size <= max_sample_size) sample = randsample(set, sample_size); list.add(metric.landmark.ExplicitLandmarkSelector(metricSpace, sample)); num_samples = num_samples + 1; sample_size = sample_size + increment_size; end bootstrapper = homology.zigzag.bootstrap.WitnessBootstrapper(metricSpace, list, max_dimension, maxDistance); barcodes = bootstrapper.performProjectionBootstrap() %% transformer = homology.filtration.IdentityConverter.getInstance(); filtration_value_intervals = transformer.transform(barcodes); options.caption = 'Incremental samples from random points on a circle'; options.filename = 'incremental-circle-barcodes'; options.file_format = 'eps'; options.min_dimension = 1; options.max_dimension = 1 plot_barcodes(filtration_value_intervals, options); ================================================ FILE: src/matlab/experimental/witness_bootstrap/circle_pairwise.m ================================================ clc; clear; close all; num_samples = 20; sample_size = 8; max_dimension = 1; num_points = 1000; max_filtration_value = 0.1; n = num_points; maxDistance = max_filtration_value; points = examples.PointCloudExamples.getRandomFigure8Points(n); %points = examples.PointCloudExamples.getRandomSpherePoints(n, 2); metricSpace = metric.impl.EuclideanMetricSpace(points); expected_betti_sequence = [1, 2]'; samples = cell(num_samples, 1); for i = 1:num_samples samples{i} = randsample(0:(num_points - 1), sample_size); end graph = zeros(num_samples, num_samples); for i = 1:num_samples for j = (i+1):num_samples list = java.util.ArrayList; list.add(metric.landmark.ExplicitLandmarkSelector(metricSpace, samples{i})); list.add(metric.landmark.ExplicitLandmarkSelector(metricSpace, samples{j})); bootstrapper = homology.zigzag.bootstrap.WitnessBootstrapper(metricSpace, list, max_dimension, maxDistance); barcodes = bootstrapper.performProjectionBootstrap(); betti_sequence = barcodes.getBettiSequence(); if (expected_betti_sequence == betti_sequence) graph(i, j) = 1; graph(j, i) = 1; end end end %% n = num_samples; points = [cos(2 * pi * (1:n) / n)' sin(2 * pi * (1:n) / n)']; g_handle = figure; gplot(graph, points, 'g-o'); axis equal; title('Connectivity graph for points in figure-8'); for K = 1:n text(cos(2 * pi * (K) / n), sin(2 * pi * (K) / n), sprintf('%d', K)) end set(gca,'XTickLabel',{''}) set(gca,'YTickLabel',{''}) saveas(g_handle, 'connectivity-figure-8', 'pdf'); ================================================ FILE: src/matlab/experimental/witness_bootstrap/figure8_example.m ================================================ clc; clear; close all; utility.RandomUtility.initializeWithSeed(0); num_samples = 41; sample_size = 20; max_dimension = 1; num_points = 1000; max_filtration_value = 0.1; n = num_points; maxDistance = max_filtration_value; points = examples.PointCloudExamples.getRandomFigure8Points(n); metricSpace = metric.impl.EuclideanMetricSpace(points); bootstrapper = homology.zigzag.bootstrap.WitnessBootstrapper(metric.impl.EuclideanMetricSpace(points), maxDistance, max_dimension, num_samples, sample_size); barcodes = bootstrapper.performProjectionBootstrap([1, 2]) %% transformer = homology.filtration.IdentityConverter.getInstance(); filtration_value_intervals = transformer.transform(barcodes); options.caption = 'Landmark samples from random points on a figure-8'; options.filename = 'figure-8-barcodes'; options.file_format = 'eps'; options.min_dimension = 1; options.max_dimension = 1 plot_barcodes(filtration_value_intervals, options); %% selections = []; indices = [6 7 10 15 16 17 21 22 23 24 25 26 27]; for i = 1:length(indices) index = indices(i); selections = [selections bootstrapper.getLandmarkSelector(index)]; end list = java.util.ArrayList; for i = 1:length(selections) list.add(selections(i)); end new_bootstrapper = homology.zigzag.bootstrap.WitnessBootstrapper(metricSpace, list, max_dimension, maxDistance); barcodes = new_bootstrapper.performProjectionBootstrap() transformer = homology.filtration.IdentityConverter.getInstance(); filtration_value_intervals = transformer.transform(barcodes); options.caption = 'Reselected landmark samples from random points on a figure-8'; options.filename = 'reselected-figure-8-barcodes'; options.file_format = 'eps'; options.min_dimension = 1; options.max_dimension = 1 plot_barcodes(filtration_value_intervals, options); %% n = length(selections); expected_betti_sequence = [1, 2]'; graph = zeros(n, n); for i = 1:n for j = (i+1):n list = java.util.ArrayList; list.add(selections(i)); list.add(selections(j)); graph_bootstrapper = homology.zigzag.bootstrap.WitnessBootstrapper(metricSpace, list, max_dimension, maxDistance); barcodes = graph_bootstrapper.performProjectionBootstrap(); betti_sequence = barcodes.getBettiSequence(); if (expected_betti_sequence == betti_sequence) graph(i, j) = 1; graph(j, i) = 1; end end end %% points = [cos(2 * pi * (1:n) / n)' sin(2 * pi * (1:n) / n)']; g_handle = figure; gplot(graph, points, 'g-o'); axis equal; title('Connectivity graph for reselected points in figure-8'); for K = 1:n text(cos(2 * pi * (K) / n), sin(2 * pi * (K) / n), sprintf('%d', indices(K))) end set(gca,'XTickLabel',{''}) set(gca,'YTickLabel',{''}) saveas(g_handle, 'reselected-connectivity-figure-8', 'eps'); ================================================ FILE: src/matlab/experimental/witness_bootstrap/figure8_incremental.m ================================================ clc; clear; close all; %utility.RandomUtility.initializeWithSeed(5); n = 200; max_sample_size = 82; increment_size = 1; initial_sample_size = 2; max_dimension = 1; maxDistance = 0.2; set = [1:n] - 1; sample_size = initial_sample_size; sample = []; points = examples.PointCloudExamples.getRandomFigure8Points(n); metricSpace = metric.impl.EuclideanMetricSpace(points); list = java.util.ArrayList; num_samples = 0; while (sample_size <= max_sample_size) sample = randsample(set, sample_size); list.add(metric.landmark.ExplicitLandmarkSelector(metricSpace, sample)); num_samples = num_samples + 1; sample_size = sample_size + increment_size; end bootstrapper = homology.zigzag.bootstrap.WitnessBootstrapper(metricSpace, list, max_dimension, maxDistance); barcodes = bootstrapper.performProjectionBootstrap() %% transformer = homology.filtration.IdentityConverter.getInstance(); filtration_value_intervals = transformer.transform(barcodes); options.caption = 'Incremental samples from random points on a figure-8'; options.filename = 'incremental-figure-8-barcodes'; options.file_format = 'eps'; options.min_filtration_value = 0; options.min_dimension = 1; options.max_dimension = 1 options.line_width = 2; plot_barcodes(filtration_value_intervals, options); ================================================ FILE: src/matlab/experimental/witness_bootstrap/figure8_pairwise.m ================================================ clc; clear; close all; utility.RandomUtility.initializeWithSeed(0); num_samples = 41; sample_size = 20; max_dimension = 1; num_points = 1000; max_filtration_value = 0.1; n = num_points; maxDistance = max_filtration_value; points = examples.PointCloudExamples.getRandomFigure8Points(n); metricSpace = metric.impl.EuclideanMetricSpace(points); expected_betti_sequence = [1, 2]'; samples = cell(num_samples, 1); for i = 1:num_samples samples{i} = randsample(0:(num_points - 1), sample_size); end graph = zeros(num_samples, num_samples); for i = 1:num_samples for j = (i+1):num_samples list = java.util.ArrayList; list.add(metric.landmark.ExplicitLandmarkSelector(metricSpace, samples{i})); list.add(metric.landmark.ExplicitLandmarkSelector(metricSpace, samples{j})); bootstrapper = homology.zigzag.bootstrap.WitnessBootstrapper(metricSpace, list, max_dimension, maxDistance); barcodes = bootstrapper.performProjectionBootstrap(); betti_sequence = barcodes.getBettiSequence(); if (expected_betti_sequence == betti_sequence) graph(i, j) = 1; graph(j, i) = 1; end end end %% n = num_samples; points = [cos(2 * pi * (1:n) / n)' sin(2 * pi * (1:n) / n)']; g_handle = figure; gplot(graph, points, 'g-o'); axis equal; title('Connectivity graph for points in figure-8'); for K = 1:n text(cos(2 * pi * (K) / n), sin(2 * pi * (K) / n), sprintf('%d', K)) end set(gca,'XTickLabel',{''}) set(gca,'YTickLabel',{''}) saveas(g_handle, 'connectivity-figure-8', 'pdf'); %% [max_degree, max_index] = max(sum(graph)) sample = samples{max_index}; selector = metric.landmark.ExplicitLandmarkSelector(metricSpace, sample); filename = 'figure-8-highest-degree.pov'; create_landmark_pov_file(selector, filename); render_pov_file(filename); %% [min_degree, min_index] = min(sum(graph)) sample = samples{min_index}; selector = metric.landmark.ExplicitLandmarkSelector(metricSpace, sample); filename = 'figure-8-lowest-degree.pov'; create_landmark_pov_file(selector, filename); render_pov_file(filename); ================================================ FILE: src/matlab/experimental/witness_bootstrap/figure8_samples.m ================================================ clc; clear; close all; %% utility.RandomUtility.initializeWithSeed(0); sample_size = 50; max_dimension = 1; num_points = 300; max_filtration_value = 0.1; n = num_points; maxDistance = max_filtration_value; points = examples.PointCloudExamples.getRandomFigure8Points(n); points = points * 0.8; metricSpace = metric.impl.EuclideanMetricSpace(points); %% sample = (utility.RandomUtility.randomSubset(sample_size, num_points / 2)); sample_0 = sample.toArray() sample = sample_0; selector = metric.landmark.ExplicitLandmarkSelector(metricSpace, sample); filename = 'figure-8-landmark-0.pov'; create_landmark_pov_file(selector, filename); render_pov_file(filename); %% sample = (utility.RandomUtility.randomSubset(sample_size, num_points / 2)); sample_1 = sample.toArray() + (num_points / 2); sample = sample_1; selector = metric.landmark.ExplicitLandmarkSelector(metricSpace, sample); filename = 'figure-8-landmark-1.pov'; create_landmark_pov_file(selector, filename); render_pov_file(filename); %% sample_01 = [sample_0; sample_1] sample = sample_01; selector = metric.landmark.ExplicitLandmarkSelector(metricSpace, sample); filename = 'figure-8-landmark-01.pov'; create_landmark_pov_file(selector, filename); render_pov_file(filename); ================================================ FILE: src/matlab/experimental/witness_bootstrap/image_patch_examples.m ================================================ clc; clear; close all; load pointsRange.mat size(pointsRange) num_samples = 51; sample_size = 30; max_dimension = 1; num_divisions = 500; m_space = metric.impl.EuclideanMetricSpace(pointsRange) r_max = metric.utility.MetricUtility.estimateDiameter(m_space) / 2 max_filtration_value = r_max / 8 bootstrapper = homology.zigzag.bootstrap.WitnessBootstrapper(metric.impl.EuclideanMetricSpace(pointsRange), max_filtration_value, max_dimension, num_samples, sample_size); barcodes = bootstrapper.performProjectionBootstrap([1, 1]) %% transformer = homology.filtration.IdentityConverter.getInstance(); filtration_value_intervals = transformer.transform(barcodes); options.caption = sprintf('Image patch dataset: %d samples of size %d', num_samples - 1, sample_size); options.filename = sprintf('image-patch-samples-constrained-%d-%d', num_samples - 1, sample_size); options.file_format = 'eps'; options.min_dimension = 0; options.max_dimension = 1 options.line_width = 2; plot_barcodes(filtration_value_intervals, options); ================================================ FILE: src/matlab/experimental/witness_bootstrap/torus_example.m ================================================ clc; clear; close all; num_samples = 41; sample_size = 30; max_dimension = 2; num_points = 10000; max_filtration_value = 0.1; n = num_points; maxDistance = max_filtration_value; points = examples.PointCloudExamples.getRandomSphereProductPoints(n, 1, 2); metricSpace = metric.impl.EuclideanMetricSpace(points); utility.RandomUtility.initializeWithSeed(0); bootstrapper = homology.zigzag.bootstrap.WitnessBootstrapper(metric.impl.EuclideanMetricSpace(points), maxDistance, max_dimension, num_samples, sample_size); barcodes = bootstrapper.performProjectionBootstrap([1, 2, 1]) %% transformer = homology.filtration.IdentityConverter.getInstance(); filtration_value_intervals = transformer.transform(barcodes); plot_barcodes(filtration_value_intervals, 1, 1, 'torus_1', 'Landmark samples from random points on a torus', 'eps', false, 2); ================================================ FILE: src/matlab/for_distribution/README ================================================ To run the MATLAB examples, perform the following steps: 1. Run the 'load_javaplex.m' script from the current directory. 2. Cd to the example directory of interest (e.g. 'basic_examples'), and run one of the scripts. Notes: - library files should be placed in 'lib' - common utility files are placed in the 'utilities' folder ================================================ FILE: src/matlab/for_distribution/basic_examples/barcode_plot_example.m ================================================ % This script shows how to plot barcodes directly to a file clc; clear; close all; import edu.stanford.math.plex4.*; max_dimension = 2; max_filtration_value = 4; num_divisions = 1000; % create the set of points point_cloud = examples.PointCloudExamples.getHouseExample(); % create a Vietoris-Rips stream stream = api.Plex4.createVietorisRipsStream(point_cloud, max_dimension + 1, max_filtration_value, num_divisions); % get the default persistence algorithm persistence = api.Plex4.getDefaultSimplicialAlgorithm(max_dimension); % this initially creates a set of intervals which contains the filtration values filtration_value_intervals = persistence.computeIntervals(stream) % set plot options - plot in eps format options.filename = 'house-barcodes'; options.file_format = 'eps'; options.caption = 'House Example' % create the barcode plots plot_barcodes(filtration_value_intervals, options) ================================================ FILE: src/matlab/for_distribution/basic_examples/boundary_extraction_example.m ================================================ % This script demonstrates an example of the ExplicitSimplexStream class %% Manual construction clc; clear; close all; import edu.stanford.math.plex4.*; % get a new ExplicitSimplexStream stream = api.Plex4.createExplicitSimplexStream(); % construct a triangle stream.addVertex(0); stream.addVertex(1); stream.addVertex(2); stream.addElement([0, 1]); stream.addElement([0, 2]); stream.addElement([1, 2]); % print out the total number of simplices in the complex size = stream.getSize() % get the default persistence computation persistence = api.Plex4.getDefaultSimplicialAlgorithm(3); % compute and print the intervals triangle_intervals = persistence.computeIntervals(stream) % compute boundary d_1 = streams.utility.StreamUtility.createBoundaryMatrixAsDoubleSum(stream, 1) % convert from sparse form to array converter = api.Plex4.createHomMatrixConverter(stream, stream); d_1_array = converter.toArray(d_1) ================================================ FILE: src/matlab/for_distribution/basic_examples/cellular_test.m ================================================ % This script computes various cellular homology examples clc; clear; close all; import edu.stanford.math.plex4.*; %% Cellular Sphere dimension = 100; % get the cellular sphere of the specified dimension stream = examples.CellStreamExamples.getCellularSphere(dimension); % get the total number of simplices in the complex size = stream.getSize(); Z2_persistence = api.Plex4.getModularCellularAlgorithm(dimension + 1, 2); % compute and print the intervals intervals = Z2_persistence.computeIntervals(stream) %% Klein Bottle % get the cellular sphere of the specified dimension stream = examples.CellStreamExamples.getCellularKleinBottle(); % get the total number of simplices in the complex size = stream.getSize(); % get cellular homology algorithm over Z/2Z Z2_persistence = api.Plex4.getModularCellularAlgorithm(dimension + 1, 2); % get cellular homology algorithm over Z/3Z Z3_persistence = api.Plex4.getModularCellularAlgorithm(dimension + 1, 3); % get cellular homology algorithm over Q Q_persistence = api.Plex4.getRationalCellularAlgorithm(dimension + 1); % compute over Z/2Z - should give (1, 2, 1) Z2_intervals = Z2_persistence.computeIntervals(stream) % compute over Z/3Z - should give (1, 1, 0) Z3_intervals = Z3_persistence.computeIntervals(stream) % compute over Q - should give (1, 1, 0) Q_intervals = Q_persistence.computeIntervals(stream) ================================================ FILE: src/matlab/for_distribution/basic_examples/dump_example.m ================================================ % This script demonstrates the use of plex on a simple "house" example clc; clear; close all; import edu.stanford.math.plex4.*; max_dimension = 2; max_filtration_value = 4; num_divisions = 1000; % create the set of points point_cloud = examples.PointCloudExamples.getHouseExample(); % create a Vietoris-Rips stream stream = api.Plex4.createVietorisRipsStream(point_cloud, max_dimension + 1, max_filtration_value, num_divisions); %% Dump Example: iterator = stream.iterator(); while (iterator.hasNext()) % the next line will print the current simplex simplex = iterator.next() % here you can do whatever is needed with the simplex filtration_value = stream.getFiltrationValue(simplex) end ================================================ FILE: src/matlab/for_distribution/basic_examples/endpoint_extraction_example.m ================================================ % This script demonstrates how to extract endpoints clc; clear; close all; import edu.stanford.math.plex4.*; max_dimension = 2; max_filtration_value = 4; num_divisions = 1000; % create the set of points point_cloud = examples.PointCloudExamples.getHouseExample(); % create a Vietoris-Rips stream stream = api.Plex4.createVietorisRipsStream(point_cloud, max_dimension + 1, max_filtration_value, num_divisions); % get the default persistence algorithm persistence = api.Plex4.getDefaultSimplicialAlgorithm(max_dimension); % this initially creates a set of intervals which contains the filtration % indices (which are integers). intervals = persistence.computeIntervals(stream); % The next line extracts the interval endpoints for the dimension 0 % barcode. Note that it ignores infinite intervals endpoints_dim_0 = homology.barcodes.BarcodeUtility.getEndpoints(intervals, 0, false) % The next line extracts the interval endpoints for the dimension 1 % barcode. Note that it ignores infinite intervals endpoints_dim_1 = homology.barcodes.BarcodeUtility.getEndpoints(intervals, 1, false) plot_barcodes(intervals); ================================================ FILE: src/matlab/for_distribution/basic_examples/ensure_faces_test.m ================================================ clc; clear; close all; import edu.stanford.math.plex4.*; stream = api.Plex4.createExplicitSimplexStream(); for i=1:4, stream.addVertex(i,0); end stream.addElement([1,2,3,4], 2); stream.addElement([1,2,3], 1) stream.ensureAllFaces(); stream.finalizeStream(); iterator = stream.iterator(); while (iterator.hasNext()) % the next line will print the current simplex simplex = iterator.next(); % here you can do whatever is needed with the simplex filtration_value = stream.getFiltrationIndex(simplex); display(sprintf('%s: %d', char(simplex.toString()), filtration_value)); end ================================================ FILE: src/matlab/for_distribution/basic_examples/explicit_metric_space_test.m ================================================ %% clc; clear; close all; import edu.stanford.math.plex4.*; distances = [0,2,sqrt(8),2,sqrt(10); 2,0,2,sqrt(8),sqrt(10); sqrt(8),2,0,2,sqrt(2); 2,sqrt(8),2,0,sqrt(2); sqrt(10),sqrt(10),sqrt(2),sqrt(2),0]; m_space = metric.impl.ExplicitMetricSpace(distances); max_dimension = 3; max_filtration_value = 4; stream = api.Plex4.createVietorisRipsStream(m_space, max_dimension, max_filtration_value); stream.finalizeStream(); persistence = api.Plex4.getDefaultSimplicialAlgorithm(max_dimension); filtration_value_intervals = persistence.computeIntervals(stream); %% num_landmark_points = 3; maxmin_selector = api.Plex4.createMaxMinSelector(m_space, num_landmark_points); maxmin_selector.getLandmarkPoints() % Computes R = max distance from a point to the set of landmarks maxmin_selector.getMaxDistanceFromPointsToLandmarks() ================================================ FILE: src/matlab/for_distribution/basic_examples/explicit_simplex_test.m ================================================ % This script demonstrates an example of the ExplicitSimplexStream class %% Manual construction clc; clear; close all; import edu.stanford.math.plex4.*; % get a new ExplicitSimplexStream stream = api.Plex4.createExplicitSimplexStream(); % construct a triangle stream.addVertex(0); stream.addVertex(1); stream.addVertex(2); stream.addElement([0, 1]); stream.addElement([0, 2]); stream.addElement([1, 2]); % print out the total number of simplices in the complex size = stream.getSize() % get the default persistence computation persistence = api.Plex4.getDefaultSimplicialAlgorithm(3); % compute and print the intervals triangle_intervals = persistence.computeIntervals(stream) %% Example of n-sphere % get a new ExplicitSimplexStream stream = api.Plex4.createExplicitSimplexStream(); dimension = 9; % construct simplicial sphere stream.addElement(0:(dimension + 1)); stream.ensureAllFaces(); stream.removeElementIfPresent(0:(dimension + 1)); stream.finalizeStream(); % print out the total number of simplices in the complex size = stream.getSize() % get the default persistence computation persistence = api.Plex4.getDefaultSimplicialAlgorithm(dimension + 1); % compute and print the intervals n_sphere_intervals = persistence.computeIntervals(stream) ================================================ FILE: src/matlab/for_distribution/basic_examples/explicit_simplex_test2.m ================================================ % This script demonstrates an example of the ExplicitSimplexStream class %% Manual construction clc; clear; close all; import edu.stanford.math.plex4.*; % get a new ExplicitSimplexStream stream = api.Plex4.createExplicitSimplexStream(10); % construct a triangle stream.addVertex(0, 0); stream.addVertex(1, 1); stream.addVertex(2, 2); stream.addElement([0, 1], 3.88); stream.addElement([0, 2], 4.12); stream.addElement([1, 2], 5); % print out the total number of simplices in the complex size = stream.getSize() iterator = stream.iterator(); while (iterator.hasNext()) % the next line will print the current simplex simplex = iterator.next() % here you can do whatever is needed with the simplex filtration_value = stream.getFiltrationValue(simplex) end ================================================ FILE: src/matlab/for_distribution/basic_examples/filter_long_intervals.m ================================================ clc; clear; close all; import edu.stanford.math.plex4.*; max_dimension = 2; num_points = 30; max_filtration_value = 0.9; num_divisions = 1000; % create the set of points point_cloud = examples.PointCloudExamples.getRandomSpherePoints(num_points, max_dimension); % create a Vietoris-Rips stream stream = api.Plex4.createVietorisRipsStream(point_cloud, max_dimension, max_filtration_value, num_divisions); num_simplices = stream.getSize() % get persistence algorithm over Z/2Z persistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension, 2); % compute the intervals and transform them to filtration values filtration_value_intervals = persistence.computeIntervals(stream) %% dim_0_intervals = filtration_value_intervals.getIntervalsAtDimension(0) minimum_length = 0.7; long_dim_0_intervals = homology.barcodes.BarcodeUtility.filterIntervalsByMinimumLength(dim_0_intervals, minimum_length) ================================================ FILE: src/matlab/for_distribution/basic_examples/house_example_test.m ================================================ % This script demonstrates the use of plex on a simple "house" example clc; clear; close all; import edu.stanford.math.plex4.*; max_dimension = 2; max_filtration_value = 4; num_divisions = 1000; % create the set of points point_cloud = examples.PointCloudExamples.getHouseExample(); % create a Vietoris-Rips stream stream = api.Plex4.createVietorisRipsStream(point_cloud, max_dimension + 1, max_filtration_value, num_divisions); % get the default persistence algorithm persistence = api.Plex4.getDefaultSimplicialAlgorithm(max_dimension); % this initially creates a set of intervals which contains the filtration % indices (which are integers). filtration_value_intervals = persistence.computeIntervals(stream) % create the barcode plots plot_barcodes(filtration_value_intervals) ================================================ FILE: src/matlab/for_distribution/basic_examples/landmark_test.m ================================================ % This script shows the difference between randomized and maxmin landmark % selection. clc; clear; close all; import edu.stanford.math.plex4.*; num_points = 1000; num_landmark_points = 100; % initialize the point cloud point_cloud = examples.PointCloudExamples.getRandomFigure8Points(num_points); % create the landmark selectors random_selector = api.Plex4.createRandomSelector(point_cloud, num_landmark_points); maxmin_selector = api.Plex4.createMaxMinSelector(point_cloud, num_landmark_points); % extract the subset of landmark points from the original point cloud % Note: we need to increment the indices by 1 since Java uses 0-based % arrays random_points = point_cloud(random_selector.getLandmarkPoints() + 1, :); maxmin_points = point_cloud(maxmin_selector.getLandmarkPoints() + 1, :); % Plot the landmark points subplot(1, 2, 1); scatter(random_points(:,1), random_points(:, 2)); title('Random landmark selection'); subplot(1, 2, 2); scatter(maxmin_points(:,1), maxmin_points(:, 2)); title('Maxmin landmark selection'); ================================================ FILE: src/matlab/for_distribution/basic_examples/representatives_example.m ================================================ % This script shows an example of computing a representative cycle for each barcode clc; clear; close all; import edu.stanford.math.plex4.*; % get a new ExplicitSimplexStream stream = api.Plex4.createExplicitSimplexStream(); dimension = 9; % construct simplicial sphere stream.addElement(0:(dimension + 1)); stream.ensureAllFaces(); stream.removeElementIfPresent(0:(dimension + 1)); stream.finalizeStream(); % get the default persistence computation over Z/2Z persistence = api.Plex4.getModularSimplicialAlgorithm(dimension + 1, 2); % compute and print the intervals n_sphere_intervals = persistence.computeAnnotatedIntervals(stream) ================================================ FILE: src/matlab/for_distribution/basic_examples/simplicial_sphere_test.m ================================================ % This script demonstrates the computation of the homology of a % high-dimensional sphere that is beyond the reach of the previous version % of plex. clc; clear; close all; import edu.stanford.math.plex4.*; dimension = 15; % get the simplicial sphere of the specified dimension stream = examples.SimplexStreamExamples.getSimplicialSphere(dimension); % print out the total number of simplices in the complex size = stream.getSize() % get the default persistence computation persistence = api.Plex4.getDefaultSimplicialAlgorithm(dimension + 1); % compute and print the intervals intervals = persistence.computeIntervals(stream) ================================================ FILE: src/matlab/for_distribution/basic_examples/sphere_test.m ================================================ % This script calculates the intervals for a Lazy-Witness complex generated % from random points on the 2-sphere clc; clear; close all; import edu.stanford.math.plex4.*; dimension = 2; num_points = 10000; num_landmark_points = 100; max_filtration_value = 0.1; % create the set of points point_cloud = examples.PointCloudExamples.getRandomSpherePoints(num_points, dimension); % create a randomized landmark selector landmark_selector = api.Plex4.createRandomSelector(point_cloud, num_landmark_points); % create a Lazy-Witness Stream - note that this sets the number of % divisions to the default value of 20 stream = api.Plex4.createLazyWitnessStream(landmark_selector, dimension + 1, max_filtration_value, 1000); % print out the size of the stream - will be quite large since the complex % construction is very sensitive to the maximum filtration value size = stream.getSize() % get the default persistence algorithm persistence = api.Plex4.getDefaultSimplicialAlgorithm(dimension + 1); % compute the intervals and transform them to filtration values filtration_value_intervals = persistence.computeIntervals(stream); %% Output % create the barcode plots plot_barcodes(filtration_value_intervals); ================================================ FILE: src/matlab/for_distribution/basic_examples/vietoris_rips_example.m ================================================ clc; clear; close all; import edu.stanford.math.plex4.*; dimension = 1; max_filtration_value = 1.3; num_divisions = 20; n = 20; % create the set of points point_cloud = examples.PointCloudExamples.getRandomSpherePoints(n, dimension); % create a Vietoris-Rips stream stream = api.Plex4.createVietorisRipsStream(point_cloud, dimension + 1, max_filtration_value, num_divisions); % get the default persistence algorithm persistence = api.Plex4.getDefaultSimplicialAlgorithm(dimension + 1); % compute intervals intervals = persistence.computeIntervals(stream); % create the barcode plots plot_barcodes(intervals) ================================================ FILE: src/matlab/for_distribution/benchmarks/rips_persistence.m ================================================ %% Rips-complex benchmark example % Note: make sure that you give matlab enough heap space to work with clc; clear; close all; import edu.stanford.math.plex4.*; max_dimension = 4; max_filtration_value = 0.3; num_divisions = 10; num_points = 220; % create the set of points point_cloud = examples.PointCloudExamples.getRandomFigure8Points(num_points); algorithms = api.PersistenceAlgorithmInterface.getAllSimplicialAbsoluteHomologyAlgorithms(max_dimension); filtration_limit = 0.5; num_sizes = 5; num_algorithms = algorithms.size(); max_filtration_values = linspace(0, filtration_limit, num_sizes); times = zeros(num_algorithms, num_sizes); sizes = zeros(num_sizes, 1); for f = 1:num_sizes max_filtration_value = max_filtration_values(f); stream = api.Plex4.createVietorisRipsStream(point_cloud, max_dimension + 1, max_filtration_value, num_divisions); sizes(f) = stream.getSize(); for i = 1:num_algorithms algorithm = algorithms.get(i - 1); algorithm.toString(); tic(); filtration_index_intervals = algorithm.computeIntervals(stream); times(i, f) = toc(); end end %% Produce plot algorithm_names = java_array('java.lang.String', num_algorithms); for i = 1:num_algorithms algorithm = algorithms.get(i - 1); algorithm_names(i) = algorithm.toString(); end h = figure; plot(sizes, times, '-o'); legend(cell(algorithm_names)); grid on; xlabel('Number of Simplices'); ylabel('Execution Time (s)'); ================================================ FILE: src/matlab/for_distribution/jython/basic_vr_example.jy ================================================ #!/usr/bin/env jython import sys # Todo: make sure that this points to the correct location libs = [ "../lib/javaplex.jar" ] for s in libs: sys.path.append(s) import edu.stanford.math.plex4 import edu.stanford.math.plex4.api import edu.stanford.math.plex4.examples import edu.stanford.math.plex4.io print("Starting") f8 = edu.stanford.math.plex4.examples.PointCloudExamples.getRandomFigure8Points(50) trefoil = edu.stanford.math.plex4.examples.PointCloudExamples.getRandomTrefoilKnotPoints(200) print("Created point sets") f8s = edu.stanford.math.plex4.api.Plex4.createVietorisRipsStream(f8, 2, 1.0) trefoils = edu.stanford.math.plex4.api.Plex4.createVietorisRipsStream(trefoil, 2, 1.0) print "Created simplex streams. Figure 8 has %d simplices and Trefoil has %d simplices" % (f8s.getSize(), trefoils.getSize()) pH = edu.stanford.math.plex4.api.PersistenceAlgorithmInterface.getBooleanSimplicialAbsoluteHomology(2) f8bc = pH.computeIntervals(f8s) print "Computed intervals for figure 8:\n%s" % repr(f8bc) tfbc = pH.computeIntervals(trefoils) print "Computed intervals for trefoil:\n%s" % repr(tfbc) edu.stanford.math.plex4.io.BarcodeWriter.getInstance().writeToFile(tfbc, 0, 3.0, "Trefoil Dimension 0", "trefoil_0.png") edu.stanford.math.plex4.io.BarcodeWriter.getInstance().writeToFile(tfbc, 1, 3.0, "Trefoil Dimension 1", "trefoil_1.png") ================================================ FILE: src/matlab/for_distribution/jython/cellular_example.jy ================================================ #!/usr/bin/env jython import sys # Todo: make sure that this points to the correct location libs = [ "../lib/javaplex.jar" ] for s in libs: sys.path.append(s) import edu.stanford.math.plex4 import edu.stanford.math.plex4.api import edu.stanford.math.plex4.examples import edu.stanford.math.plex4.io ## Cellular Sphere dimension = 100 # get the cellular sphere of the specified dimension stream = edu.stanford.math.plex4.examples.CellStreamExamples.getCellularSphere(dimension) # get the total number of simplices in the complex size = stream.getSize() Z2_persistence = edu.stanford.math.plex4.api.Plex4.getModularCellularAlgorithm(dimension + 1, 2) # compute and print the intervals intervals = Z2_persistence.computeIntervals(stream) print "Computed intervals for cellular sphere:\n%s" % repr(intervals) ## Klein Bottle # get the cellular sphere of the specified dimension stream = edu.stanford.math.plex4.examples.CellStreamExamples.getCellularKleinBottle() # get the total number of simplices in the complex size = stream.getSize() # get cellular homology algorithm over Z/2Z Z2_persistence = edu.stanford.math.plex4.api.Plex4.getModularCellularAlgorithm(dimension + 1, 2) # get cellular homology algorithm over Z/3Z Z3_persistence = edu.stanford.math.plex4.api.Plex4.getModularCellularAlgorithm(dimension + 1, 3) # get cellular homology algorithm over Q Q_persistence = edu.stanford.math.plex4.api.Plex4.getRationalCellularAlgorithm(dimension + 1) # compute over Z/2Z - should give (1, 2, 1) Z2_intervals = Z2_persistence.computeIntervals(stream) # compute over Z/3Z - should give (1, 1, 0) Z3_intervals = Z3_persistence.computeIntervals(stream) # compute over Q - should give (1, 1, 0) Q_intervals = Q_persistence.computeIntervals(stream) print "Computed intervals for Klein bottle (over Z/2Z):\n%s" % repr(Z2_intervals) print "Computed intervals for Klein bottle (over Z/3Z):\n%s" % repr(Z3_intervals) print "Computed intervals for Klein bottle (over Q):\n%s" % repr(Q_intervals) ================================================ FILE: src/matlab/for_distribution/jython/explicit_simplex_example.jy ================================================ #!/usr/bin/env jython import sys # Todo: make sure that this points to the correct location libs = [ "../lib/javaplex.jar" ] for s in libs: sys.path.append(s) import edu.stanford.math.plex4 import edu.stanford.math.plex4.api import edu.stanford.math.plex4.examples import edu.stanford.math.plex4.io ## Manual construction # get a new ExplicitSimplexStream stream = edu.stanford.math.plex4.api.Plex4.createExplicitSimplexStream() # construct a triangle stream.addVertex(0) stream.addVertex(1) stream.addVertex(2) stream.addElement([0, 1]) stream.addElement([0, 2]) stream.addElement([1, 2]) # print out the total number of simplices in the complex size = stream.getSize() # get the default persistence computation persistence = edu.stanford.math.plex4.api.Plex4.getDefaultSimplicialAlgorithm(3) # compute and print the intervals triangle_intervals = persistence.computeIntervals(stream) print "Triangle intervals: \n%s" % repr(triangle_intervals) ## Example of n-sphere # get a new ExplicitSimplexStream stream = edu.stanford.math.plex4.api.Plex4.createExplicitSimplexStream() dimension = 9 # construct simplicial sphere stream.addElement(range(0, dimension + 2)) stream.ensureAllFaces() stream.removeElementIfPresent(range(0, dimension + 2)) stream.finalizeStream() # print out the total number of simplices in the complex size = stream.getSize() # get the default persistence computation persistence = edu.stanford.math.plex4.api.Plex4.getDefaultSimplicialAlgorithm(dimension + 1) # compute and print the intervals n_sphere_intervals = persistence.computeIntervals(stream) print "n-Sphere intervals: \n%s" % repr(n_sphere_intervals) ================================================ FILE: src/matlab/for_distribution/jython/image_patch_example.jy ================================================ #!/usr/bin/env jython import sys # Todo: make sure that this points to the correct location libs = [ "../lib/javaplex.jar" ] for s in libs: sys.path.append(s) import edu.stanford.math.plex4 import edu.stanford.math.plex4.api import edu.stanford.math.plex4.examples import edu.stanford.math.plex4.io import csv from jarray import array import java file_reader = csv.reader(open('pointsRange.csv')) data = [] for row in file_reader: d_row = [] for entry in row: d_row.append(float(entry)) d_row_array = array(d_row, 'd') data.append(d_row_array) pointsRange = array(data, java.lang.Class.forName('[D')) max_dimension = 3 num_landmark_points = 50 nu = 1 num_divisions = 500 # create a sequential maxmin landmark selector landmark_selector = edu.stanford.math.plex4.api.Plex4.createMaxMinSelector(pointsRange, num_landmark_points) R = landmark_selector.getMaxDistanceFromPointsToLandmarks() max_filtration_value = R / 3 # create a lazy witness stream stream = edu.stanford.math.plex4.streams.impl.LazyWitnessStream(landmark_selector.getUnderlyingMetricSpace(), landmark_selector, max_dimension, max_filtration_value, nu, num_divisions) stream.finalizeStream() # print out the size of the stream - will be quite large since the complex # construction is very sensitive to the maximum filtration value num_simplices = stream.getSize() # get persistence algorithm over Z/2Z persistence = edu.stanford.math.plex4.api.Plex4.getModularSimplicialAlgorithm(max_dimension, 2) # compute the intervals intervals = persistence.computeIntervals(stream) # create the barcode plots edu.stanford.math.plex4.io.BarcodeWriter.getInstance().writeToFile(intervals, 0, max_filtration_value, "Lazy-Witness Image Patch Dataset", "lw_im_patch_0.png") edu.stanford.math.plex4.io.BarcodeWriter.getInstance().writeToFile(intervals, 1, max_filtration_value, "Lazy-Witness Image Patch Dataset", "lw_im_patch_1.png") edu.stanford.math.plex4.io.BarcodeWriter.getInstance().writeToFile(intervals, 2, max_filtration_value, "Lazy-Witness Image Patch Dataset", "lw_im_patch_2.png") ================================================ FILE: src/matlab/for_distribution/jython/pointsRange.csv ================================================ 0.28031,0.12463,-0.019927,-0.14002,-0.28013,0.27586,0.14242,-0.015479,-0.15559,-0.27569,0.31367,0.12463,0.0067609,-0.13335,-0.26679,0.2981,0.1402,-0.015479,-0.14002,-0.27569,0.29366,0.1491,-0.011031,-0.15337,-0.26679 0.28249,0.14508,-0.02823,-0.1469,-0.26868,0.28873,0.12791,-0.00012491,-0.15626,-0.264,0.32152,0.14196,-0.0032477,-0.1266,-0.27337,0.29029,0.12947,-0.021984,-0.14221,-0.27493,0.29498,0.12323,-0.012616,-0.15939,-0.26712 0.28765,0.13088,0.0031355,-0.15073,-0.26977,0.30217,0.13233,-0.022993,-0.13477,-0.28283,0.28765,0.16136,0.0016839,-0.13912,-0.25815,0.28039,0.13088,0.00023226,-0.15364,-0.27412,0.292,0.13668,-0.0288,-0.14638,-0.28573 0.30127,0.12476,-0.013919,-0.15512,-0.27363,0.29622,0.15502,-0.01644,-0.14504,-0.26102,0.28362,0.13989,-0.021483,-0.15512,-0.25346,0.29622,0.10963,-0.018962,-0.16017,-0.28624,0.29622,0.15502,-0.0063542,-0.12991,-0.26102 0.2793,0.11617,-0.0072747,-0.16159,-0.28283,0.29363,0.1283,-0.027115,-0.14505,-0.27622,0.29143,0.15585,0.0070542,-0.14285,-0.25527,0.29143,0.1305,0.0081564,-0.14836,-0.28063,0.30355,0.14263,-0.01499,-0.13623,-0.2696 0.29185,0.15461,-0.0052116,-0.13029,-0.26406,0.2849,0.13203,-0.015635,-0.16504,-0.27795,0.2988,0.12508,-0.0017372,-0.15114,-0.29185,0.29359,0.15288,-0.0086861,-0.13203,-0.25885,0.27969,0.12855,-0.0052116,-0.16851,-0.26579 0.29852,0.13683,-0.020258,-0.14048,-0.27662,0.28344,0.1473,-0.013555,-0.16645,-0.2607,0.32366,0.13473,0.0052948,-0.13504,-0.26741,0.29517,0.12887,-0.024028,-0.14425,-0.26824,0.27506,0.13306,-0.021514,-0.16478,-0.25861 0.30985,0.12919,-0.0052993,-0.1418,-0.26424,0.29981,0.12919,-0.017343,-0.13778,-0.27428,0.28375,0.13722,-0.025372,-0.14581,-0.26826,0.30985,0.12919,0.018788,-0.13377,-0.2803,0.27572,0.12919,-0.031394,-0.14581,-0.2803 0.28573,0.14192,-0.001886,-0.15866,-0.25885,0.29044,0.12777,-0.016031,-0.15159,-0.27417,0.26569,0.14546,-0.034891,-0.14333,-0.27771,0.30576,0.15017,0.0040077,-0.14687,-0.25885,0.3093,0.12777,-0.0054222,-0.14569,-0.28007 0.29172,0.11561,-0.004963,-0.16356,-0.26262,0.30823,0.12912,-0.031479,-0.14655,-0.27813,0.29572,0.15513,-0.0054633,-0.14255,-0.24611,0.29172,0.12161,-0.0034621,-0.15856,-0.26262,0.30973,0.12962,-0.027476,-0.14255,-0.27212 0.28564,0.13545,0.00017043,-0.15961,-0.27571,0.29949,0.14077,-0.025394,-0.13937,-0.2853,0.29096,0.14823,0.0054963,-0.14256,-0.24908,0.27818,0.12054,0.0076267,-0.15641,-0.27252,0.29629,0.1429,-0.025394,-0.13724,-0.28317 0.27647,0.1467,-0.021362,-0.17075,-0.26691,0.30448,0.14203,0.0075813,-0.14087,-0.26691,0.28768,0.13549,-0.024163,-0.14741,-0.26971,0.27461,0.1467,-0.021362,-0.17075,-0.26691,0.30448,0.14203,0.0038467,-0.13807,-0.26691 0.28307,0.13029,0.0019813,-0.16094,-0.26478,0.30157,0.13029,-0.024277,-0.14662,-0.27552,0.29858,0.16192,0.0025781,-0.149,-0.24628,0.28665,0.12253,0.00019097,-0.15975,-0.26836,0.29978,0.13089,-0.028455,-0.14483,-0.28149 0.30279,0.12239,-0.034476,-0.14341,-0.2785,0.29669,0.1468,0.002998,-0.1469,-0.25235,0.29059,0.11716,-0.005717,-0.15213,-0.28285,0.30279,0.12239,-0.035348,-0.1408,-0.27937,0.29669,0.1468,-0.0048455,-0.14167,-0.24974 0.28864,0.13355,0.0045162,-0.15677,-0.26223,0.29484,0.11742,-0.021539,-0.15305,-0.28457,0.27995,0.13727,-0.021539,-0.14189,-0.27712,0.30725,0.13355,0.016923,-0.14561,-0.25355,0.30973,0.1199,-0.0066502,-0.14189,-0.27712 0.31547,0.126,-0.0059549,-0.14468,-0.28002,0.27487,0.14292,-0.029639,-0.13791,-0.27663,0.31209,0.1463,0.007579,-0.14806,-0.25295,0.28841,0.12262,-0.012722,-0.13453,-0.28002,0.27826,0.13277,-0.026256,-0.13791,-0.28002 0.27264,0.14747,-0.015781,-0.16543,-0.25794,0.28624,0.13115,0.0032651,-0.14911,-0.29059,0.29984,0.14475,-0.0076185,-0.12734,-0.26338,0.28624,0.13115,-0.0076185,-0.15455,-0.26883,0.30529,0.12571,0.011428,-0.15727,-0.27971 0.29609,0.1238,-0.0044073,-0.14464,-0.25883,0.31011,0.1238,-0.020434,-0.13462,-0.27886,0.29609,0.15586,-0.002404,-0.13262,-0.26283,0.27806,0.11779,0.0056093,-0.15265,-0.27686,0.29609,0.12981,-0.028447,-0.14264,-0.29288 0.32063,0.13426,0.0028493,-0.13992,-0.26427,0.29822,0.12689,-0.029083,-0.14422,-0.26919,0.27089,0.13917,-0.021714,-0.17185,-0.26243,0.31449,0.13426,-0.0005281,-0.14177,-0.26366,0.28348,0.12843,-0.028161,-0.14545,-0.27133 0.29249,0.1031,-0.0013932,-0.15813,-0.26697,0.29249,0.13575,-0.03187,-0.14507,-0.27351,0.30555,0.15752,0.00078368,-0.14507,-0.24521,0.29902,0.12269,-0.005747,-0.14942,-0.26697,0.3012,0.12922,-0.023162,-0.14289,-0.28439 0.29762,0.11124,-0.032997,-0.13672,-0.27934,0.30734,0.13879,-0.011928,-0.14644,-0.24854,0.29924,0.1161,-0.0070661,-0.14806,-0.27772,0.3041,0.11286,-0.036238,-0.13996,-0.2761,0.30572,0.1469,-0.0038248,-0.13996,-0.25503 0.30224,0.15734,-0.020937,-0.13897,-0.26271,0.27782,0.1321,-0.018495,-0.16909,-0.26922,0.29735,0.11664,-0.011983,-0.1577,-0.28387,0.29735,0.16385,-0.019309,-0.13328,-0.25782,0.28351,0.14106,-0.011983,-0.15444,-0.25945 0.30172,0.12547,-0.030184,-0.14387,-0.28502,0.27501,0.14378,-0.021791,-0.1576,-0.2629,0.30477,0.1453,0.011018,-0.137,-0.26366,0.29714,0.13004,-0.020265,-0.13471,-0.28045,0.27807,0.15446,-0.0095832,-0.1576,-0.26213 0.29518,0.13064,-0.018761,-0.13602,-0.27597,0.27249,0.14956,-0.0036311,-0.15871,-0.26651,0.29896,0.14956,0.017172,-0.13602,-0.26651,0.2914,0.13443,-0.022543,-0.14547,-0.27975,0.27627,0.15145,-0.013087,-0.17006,-0.27407 0.3066,0.15062,0.0040964,-0.13928,-0.25114,0.29715,0.11123,-0.0022058,-0.144,-0.28265,0.3129,0.11911,-0.027414,-0.144,-0.27477,0.29242,0.14432,-0.0053568,-0.14558,-0.25744,0.27982,0.11123,-0.016386,-0.15188,-0.28738 0.29111,0.14517,-0.012209,-0.15338,-0.25162,0.30637,0.12037,-0.0045784,-0.14861,-0.27833,0.30733,0.15948,-0.01984,-0.13144,-0.25544,0.27871,0.12991,-0.017932,-0.15624,-0.26402,0.2997,0.10988,-0.013163,-0.15719,-0.28405 0.28342,0.14672,-0.0058923,-0.15453,-0.25406,0.2927,0.11355,-0.013855,-0.15984,-0.28724,0.30465,0.12682,-0.035088,-0.14656,-0.27529,0.29669,0.15203,0.0060516,-0.14258,-0.24742,0.30067,0.12284,-0.001911,-0.14656,-0.27529 0.3014,0.12848,-0.034073,-0.14404,-0.26834,0.27669,0.13884,-0.025308,-0.16316,-0.26197,0.32769,0.13247,0.00098808,-0.13208,-0.26356,0.3014,0.13008,-0.029292,-0.13686,-0.26914,0.28626,0.14442,-0.02212,-0.16236,-0.25639 0.30585,0.11761,-0.018177,-0.14702,-0.2774,0.27654,0.14075,-0.032064,-0.14547,-0.26814,0.31048,0.14384,0.014226,-0.1501,-0.25117,0.31048,0.11992,-0.015091,-0.14547,-0.27972,0.28117,0.14307,-0.028206,-0.14239,-0.26351 0.31068,0.14286,-0.023257,-0.13513,-0.28091,0.27847,0.131,-0.030037,-0.16056,-0.27074,0.29034,0.11235,-0.0096959,-0.15886,-0.26735,0.31068,0.14117,-0.0029156,-0.11988,-0.26396,0.28016,0.15303,-0.013086,-0.14191,-0.27244 0.32422,0.13413,-0.00059056,-0.13531,-0.26265,0.29838,0.13413,-0.022737,-0.14269,-0.26634,0.27808,0.13413,-0.031964,-0.17038,-0.26265,0.30576,0.1249,0.0031005,-0.13531,-0.26634,0.291,0.12675,-0.037501,-0.14823,-0.27188 0.31672,0.14335,-0.0080216,-0.12835,-0.27713,0.27403,0.14724,-0.019666,-0.14516,-0.27455,0.27662,0.11748,-0.0067278,-0.16328,-0.26808,0.30896,0.14594,-0.010609,-0.12576,-0.27584,0.27403,0.14594,-0.023547,-0.14905,-0.27455 0.29878,0.14702,-0.0080644,-0.14764,-0.25398,0.28992,0.10936,-0.011388,-0.15983,-0.28832,0.30654,0.116,-0.035758,-0.14321,-0.27392,0.3021,0.14702,-0.0014179,-0.14321,-0.24734,0.29546,0.12376,-0.0014179,-0.14653,-0.27392 0.30294,0.11635,-0.014602,-0.14788,-0.27072,0.27165,0.13026,-0.030827,-0.13976,-0.26956,0.31685,0.13606,0.0050992,-0.14324,-0.24986,0.31916,0.11404,-0.012284,-0.14788,-0.2742,0.29135,0.14185,-0.02735,-0.14324,-0.2742 0.2858,0.11896,-0.030419,-0.14294,-0.27486,0.2761,0.12866,-0.018779,-0.16622,-0.26904,0.33042,0.13642,0.0045007,-0.13518,-0.27098,0.30132,0.13642,-0.014899,-0.13906,-0.26904,0.2858,0.14224,0.00062079,-0.15846,-0.2574 0.27656,0.141,-0.036394,-0.15522,-0.27348,0.28827,0.10865,-0.0085016,-0.16414,-0.26623,0.3223,0.14881,-0.0090595,-0.12621,-0.26846,0.28883,0.15328,-0.022448,-0.1435,-0.26679,0.29776,0.12873,0.0015397,-0.15354,-0.26177 0.2798,0.11107,-0.014742,-0.16423,-0.28856,0.30496,0.12291,-0.031023,-0.14055,-0.2708,0.2946,0.15251,0.0030194,-0.14647,-0.24712,0.29164,0.12143,-0.0043811,-0.14795,-0.27376,0.3168,0.14067,-0.016222,-0.12723,-0.26636 0.28559,0.11383,-0.012208,-0.1679,-0.26552,0.30907,0.12866,-0.036922,-0.1469,-0.27294,0.29918,0.16079,-0.0072658,-0.14319,-0.24204,0.29424,0.12248,-0.0097371,-0.15431,-0.26181,0.3103,0.13237,-0.022094,-0.14072,-0.27294 0.30095,0.1242,-0.028808,-0.13961,-0.27943,0.27589,0.14399,-0.019575,-0.16467,-0.25964,0.31282,0.14003,0.013401,-0.13565,-0.2636,0.30755,0.12816,-0.024851,-0.13565,-0.27547,0.27589,0.14399,-0.015617,-0.16071,-0.2636 0.28433,0.14111,-0.015481,-0.14661,-0.24845,0.29006,0.10928,-0.015481,-0.15488,-0.27837,0.31043,0.12137,-0.037759,-0.14279,-0.27582,0.30597,0.14747,0.0042521,-0.1447,-0.25418,0.30597,0.12328,-0.0014768,-0.15106,-0.27646 0.28334,0.14337,-0.0026776,-0.15279,-0.26435,0.29551,0.12309,0.0013794,-0.14264,-0.29072,0.29551,0.16366,-0.0067346,-0.12844,-0.25624,0.27523,0.13323,-0.0067346,-0.16293,-0.26841,0.29957,0.11903,-0.0087631,-0.15481,-0.28667 0.28781,0.12349,0.009834,-0.1483,-0.26073,0.30634,0.12967,-0.021052,-0.12977,-0.28296,0.29151,0.15191,0.0024214,-0.14089,-0.25949,0.27916,0.12473,0.0061277,-0.16066,-0.27555,0.29892,0.12473,-0.017345,-0.14459,-0.29532 0.27612,0.11278,-0.022158,-0.14999,-0.27782,0.30452,0.14829,-0.00085222,-0.14052,-0.26362,0.28085,0.15065,-0.022158,-0.16183,-0.27309,0.28795,0.12225,-0.017423,-0.15946,-0.27309,0.31399,0.15775,-0.0055867,-0.13342,-0.25415 0.3087,0.1318,-0.023786,-0.13675,-0.27955,0.26927,0.13926,-0.039771,-0.14953,-0.26995,0.28632,0.12328,-0.006735,-0.16339,-0.2593,0.32469,0.14885,-0.003538,-0.13675,-0.26676,0.28313,0.14992,-0.023786,-0.14314,-0.2625 0.29946,0.12254,-0.0029246,-0.15096,-0.28906,0.29404,0.15865,-0.0074378,-0.12659,-0.25837,0.27148,0.13879,-0.010146,-0.15637,-0.2665,0.28592,0.11983,-0.0047298,-0.15998,-0.29448,0.28863,0.15865,-0.010146,-0.13381,-0.2665 0.31504,0.12462,-0.0036498,-0.14779,-0.26548,0.31108,0.12859,-0.035387,-0.13985,-0.2668,0.29388,0.14975,-0.0036498,-0.13985,-0.24697,0.29388,0.11536,-0.012906,-0.15705,-0.28003,0.29653,0.12065,-0.040676,-0.14382,-0.26548 0.30535,0.12632,-0.030274,-0.14093,-0.27925,0.28291,0.1378,-0.041757,-0.1545,-0.27247,0.28969,0.11692,-0.013571,-0.16077,-0.26151,0.32049,0.14458,-0.0093954,-0.11796,-0.26307,0.29282,0.14772,-0.021923,-0.1378,-0.25942 0.30063,0.11117,-0.010961,-0.15345,-0.27401,0.27245,0.13466,-0.031316,-0.14405,-0.28184,0.30689,0.13622,0.0062631,-0.14092,-0.25835,0.31629,0.1237,-0.010961,-0.15032,-0.27088,0.28497,0.15501,-0.026618,-0.12526,-0.26932 0.3038,0.12949,0.011034,-0.15142,-0.2665,0.29195,0.13288,-0.024504,-0.14635,-0.27835,0.26488,0.13457,-0.014351,-0.17173,-0.26988,0.29872,0.13626,0.019495,-0.13958,-0.26819,0.29703,0.14134,-0.017735,-0.1345,-0.27835 0.28813,0.11574,-0.0095529,-0.15251,-0.28201,0.31084,0.15947,-0.0095529,-0.12896,-0.25342,0.28729,0.13004,-0.024689,-0.15587,-0.26099,0.30579,0.1107,-0.012917,-0.16092,-0.28201,0.29234,0.15106,-0.024689,-0.13485,-0.25847 0.30832,0.12019,-0.0056704,-0.15406,-0.28654,0.29905,0.16126,-0.016269,-0.13286,-0.2521,0.27653,0.12947,-0.017594,-0.16333,-0.26137,0.2911,0.11622,-0.012295,-0.16068,-0.27727,0.29375,0.16126,-0.021569,-0.13816,-0.25739 0.30889,0.13423,-0.0089335,-0.14351,-0.27236,0.30603,0.12278,-0.04043,-0.13206,-0.28381,0.28599,0.14569,-0.017523,-0.15496,-0.25518,0.31462,0.13137,-0.0060702,-0.13206,-0.26663,0.28599,0.11419,-0.034703,-0.13206,-0.26949 0.31518,0.13723,-0.020304,-0.11949,-0.2741,0.28017,0.14598,-0.026138,-0.13699,-0.2741,0.28017,0.11972,-0.0028005,-0.1545,-0.2741,0.31518,0.13723,-0.0028005,-0.12824,-0.2741,0.27434,0.13723,-0.026138,-0.14575,-0.28286 0.30262,0.1575,-0.025276,-0.1309,-0.265,0.29435,0.13178,-0.030787,-0.15294,-0.2604,0.29711,0.10974,-0.020684,-0.14651,-0.2852,0.30262,0.16025,-0.023439,-0.12814,-0.25857,0.28884,0.12719,-0.023439,-0.15478,-0.26592 0.26708,0.1382,-0.010509,-0.15674,-0.27818,0.31417,0.14068,0.016755,-0.14435,-0.27323,0.28195,0.12581,-0.022901,-0.13195,-0.28314,0.27452,0.14316,-0.017944,-0.1493,-0.28314,0.30426,0.14068,0.0068406,-0.13939,-0.26331 0.30476,0.13045,-0.050562,-0.15173,-0.27363,0.29867,0.14142,-0.01826,-0.15905,-0.259,0.30537,0.11704,-0.028011,-0.15295,-0.27424,0.29257,0.14569,-0.031668,-0.13284,-0.26693,0.29379,0.14325,0.0042907,-0.13345,-0.24498 0.27976,0.13236,-0.017918,-0.15766,-0.25912,0.2989,0.11704,-0.0045178,-0.15192,-0.28114,0.30752,0.1649,-0.017918,-0.13374,-0.2486,0.28263,0.13331,-0.024618,-0.15862,-0.2553,0.3123,0.12566,-0.0083465,-0.15288,-0.2821 0.29547,0.11523,-0.032627,-0.14725,-0.27766,0.29713,0.15094,-0.0102,-0.14809,-0.24859,0.28052,0.11689,-0.0077083,-0.16636,-0.26604,0.3071,0.12852,-0.032627,-0.14642,-0.27517,0.31042,0.15676,-0.0027245,-0.14975,-0.24776 0.31048,0.10884,-0.016092,-0.15019,-0.27513,0.27912,0.13586,-0.028634,-0.14247,-0.2703,0.3124,0.13441,0.012368,-0.15019,-0.24956,0.3153,0.11656,-0.0069269,-0.14682,-0.27223,0.28057,0.14213,-0.025257,-0.14392,-0.2703 0.29326,0.13887,-8.8226e-05,-0.16551,-0.25153,0.30209,0.13446,-0.019939,-0.13904,-0.2758,0.28885,0.15651,-8.8226e-05,-0.13904,-0.24933,0.27341,0.12784,0.0021174,-0.1589,-0.28021,0.29326,0.13887,-0.026556,-0.15007,-0.29344 0.2864,0.15669,-0.019566,-0.1374,-0.28196,0.27056,0.14381,-0.019566,-0.15819,-0.28196,0.28937,0.12896,-0.0017427,-0.14334,-0.28791,0.28838,0.16461,-0.0037231,-0.12552,-0.27305,0.27353,0.14976,0.00023764,-0.15126,-0.26711 0.31287,0.11529,-0.036698,-0.14862,-0.27988,0.30458,0.14016,0.0019896,-0.14171,-0.25224,0.29629,0.10976,-0.0063005,-0.15276,-0.27988,0.30044,0.11943,-0.032553,-0.14585,-0.26882,0.29629,0.14016,0.0019896,-0.14585,-0.2481 0.28824,0.13798,-0.007481,-0.13057,-0.28242,0.27226,0.14917,0.00211,-0.16573,-0.26964,0.30103,0.14438,0.018095,-0.13696,-0.27443,0.29943,0.12679,-0.007481,-0.13696,-0.28722,0.26746,0.13798,-0.010678,-0.16254,-0.27283 0.2757,0.14562,-0.023495,-0.16059,-0.26065,0.31373,0.13461,0.004523,-0.13957,-0.26766,0.30172,0.1206,-0.032501,-0.13957,-0.27966,0.2737,0.13461,-0.020493,-0.16459,-0.26065,0.31973,0.1296,-0.001481,-0.13957,-0.26365 0.28772,0.1489,-0.011836,-0.13239,-0.27121,0.28772,0.13794,-0.0045299,-0.1397,-0.29313,0.28772,0.12333,-0.015489,-0.13604,-0.28582,0.28042,0.14525,0.0027764,-0.1397,-0.24199,0.29503,0.13794,-0.0045299,-0.16162,-0.29678 0.30664,0.13942,0.021843,-0.14538,-0.25773,0.2988,0.13942,-0.019962,-0.1297,-0.27079,0.27528,0.13419,-0.0095106,-0.16628,-0.26556,0.29096,0.12635,0.011392,-0.14538,-0.27602,0.28835,0.12635,-0.025187,-0.15583,-0.29169 0.32565,0.12757,-0.0078038,-0.13521,-0.26561,0.28783,0.12359,-0.027711,-0.14517,-0.27258,0.26991,0.14549,-0.024725,-0.17005,-0.25964,0.32167,0.13454,-0.0028269,-0.1382,-0.26362,0.28982,0.12956,-0.031693,-0.14517,-0.26561 0.27188,0.11999,-0.024302,-0.15341,-0.28251,0.29846,0.11999,-0.028099,-0.1572,-0.25973,0.30605,0.15417,-0.0053161,-0.13062,-0.25213,0.30605,0.11999,0.0022783,-0.13822,-0.28251,0.30605,0.13898,-0.024302,-0.13062,-0.27492 0.29331,0.12995,-0.020235,-0.1309,-0.28635,0.26169,0.13785,-0.014966,-0.16251,-0.26264,0.30384,0.14049,0.016652,-0.1388,-0.27054,0.30384,0.14049,-0.014966,-0.14407,-0.29162,0.2775,0.14839,-0.0044265,-0.14407,-0.26791 0.29917,0.12608,0.0011667,-0.12755,-0.26958,0.3182,0.12798,-0.022928,-0.13452,-0.27592,0.26208,0.13527,-0.017855,-0.15576,-0.26989,0.3182,0.13147,-0.0013696,-0.13516,-0.27433,0.28871,0.11974,-0.022294,-0.13959,-0.28131 0.28333,0.13328,-0.018824,-0.15867,-0.25157,0.32008,0.13736,0.0056757,-0.13826,-0.26177,0.31294,0.13225,-0.03924,-0.1403,-0.27402,0.27313,0.14042,-0.028011,-0.16276,-0.26586,0.30273,0.12103,-0.006574,-0.14847,-0.2679 0.291,0.13234,-0.015465,-0.15743,-0.25346,0.29685,0.11063,-0.01296,-0.1616,-0.27934,0.31438,0.12232,-0.032166,-0.14657,-0.26431,0.31271,0.14904,-0.018805,-0.1449,-0.23509,0.3077,0.1148,-0.013795,-0.15074,-0.26515 0.30781,0.14065,-0.017327,-0.13148,-0.26908,0.26602,0.14779,-0.020385,-0.15696,-0.265,0.31902,0.14065,0.0081539,-0.13148,-0.26908,0.29456,0.1325,-0.029558,-0.13454,-0.27519,0.27519,0.13658,-0.029558,-0.16715,-0.27213 0.2674,0.1361,-0.025497,-0.16802,-0.26116,0.31229,0.13498,0.0081698,-0.13772,-0.26902,0.30219,0.12376,-0.026619,-0.14333,-0.27351,0.2775,0.14171,-0.023252,-0.16577,-0.26229,0.31341,0.13723,0.010414,-0.13996,-0.26902 0.30313,0.16689,-0.011747,-0.14497,-0.24791,0.29708,0.1245,-0.023858,-0.15102,-0.26607,0.30616,0.1245,-0.026886,-0.1268,-0.27818,0.29405,0.14266,-0.014775,-0.14497,-0.25396,0.29405,0.10936,-0.023858,-0.17524,-0.27213 0.30204,0.12663,-0.031799,-0.13648,-0.28359,0.30204,0.14926,0.0049793,-0.13648,-0.24681,0.28789,0.12663,-0.0035081,-0.14779,-0.28925,0.28506,0.1238,-0.037458,-0.13648,-0.28642,0.29355,0.13795,0.0049793,-0.14214,-0.26662 0.28939,0.13523,0.003374,-0.14787,-0.26616,0.28939,0.11778,-0.026682,-0.14497,-0.28361,0.26612,0.14105,-0.032499,-0.13818,-0.27876,0.3049,0.14493,0.017917,-0.14303,-0.26034,0.31557,0.13038,-0.012139,-0.14497,-0.27682 0.27228,0.14736,-0.0011313,-0.15905,-0.26275,0.30763,0.14736,0.015367,-0.12841,-0.27218,0.30292,0.13557,-0.01763,-0.14255,-0.27925,0.27228,0.13557,-0.01763,-0.16848,-0.27925,0.29113,0.11672,0.0012256,-0.14019,-0.2769 0.29085,0.14394,-0.01549,-0.15421,-0.25681,0.29711,0.10878,-0.014045,-0.15855,-0.27896,0.30674,0.12564,-0.042945,-0.14361,-0.26885,0.29567,0.15598,-0.0048937,-0.14361,-0.24765,0.30626,0.11649,0.0018496,-0.14795,-0.27174 0.30257,0.13667,-0.02054,-0.13035,-0.27255,0.27413,0.1422,-0.01343,-0.15405,-0.26228,0.32706,0.13667,0.0086901,-0.13035,-0.27255,0.29704,0.12956,-0.02291,-0.13667,-0.28203,0.26465,0.1343,-0.01896,-0.16669,-0.27018 0.28648,0.1389,-0.016896,-0.13012,-0.27624,0.28938,0.1481,-0.014961,-0.15963,-0.26414,0.32761,0.1331,0.0043934,-0.13786,-0.26269,0.3097,0.11761,-0.030444,-0.14512,-0.27189,0.27051,0.1331,-0.025605,-0.16641,-0.25689 0.26607,0.14052,-0.017097,-0.16135,-0.26821,0.29546,0.1325,0.01496,-0.14265,-0.26821,0.29279,0.12716,-0.02244,-0.13998,-0.28691,0.27409,0.14853,-0.011754,-0.16135,-0.28157,0.30615,0.1512,0.01496,-0.13464,-0.26821 0.29104,0.11863,-0.0058072,-0.15488,-0.25987,0.31307,0.12771,-0.026547,-0.1484,-0.27543,0.304,0.15623,-0.0058072,-0.1471,-0.24173,0.29233,0.11734,-0.010992,-0.16265,-0.26247,0.31178,0.11734,-0.036917,-0.14062,-0.27024 0.30029,0.15424,-0.013729,-0.12875,-0.27298,0.26925,0.14146,-0.017381,-0.15979,-0.26568,0.27838,0.12137,0.0045277,-0.14883,-0.29671,0.31307,0.14146,-0.0027751,-0.13423,-0.26202,0.28569,0.1378,-0.013729,-0.16526,-0.26568 0.3199,0.14764,0.0035153,-0.11249,-0.25662,0.30232,0.14061,-0.014061,-0.1371,-0.26717,0.27771,0.13358,-0.014061,-0.15819,-0.25662,0.29177,0.14061,-0.021092,-0.16171,-0.27068,0.28123,0.11952,-0.035153,-0.16522,-0.28826 0.29094,0.14556,-0.037141,-0.15523,-0.27053,0.29428,0.10991,-0.013747,-0.16581,-0.2644,0.32436,0.14389,-0.0087339,-0.12626,-0.2644,0.28481,0.14946,-0.027672,-0.14631,-0.2644,0.29651,0.11715,0.00017824,-0.15523,-0.25716 0.29821,0.15047,-0.0090479,-0.14764,-0.2444,0.28514,0.11255,-0.0077404,-0.16072,-0.26663,0.30867,0.13216,-0.036505,-0.15549,-0.28232,0.29821,0.15831,-0.0051254,-0.14241,-0.25617,0.29298,0.11386,-0.0038179,-0.16333,-0.26924 0.31248,0.11002,-0.020648,-0.14773,-0.27839,0.28233,0.13371,-0.035007,-0.14126,-0.27768,0.31033,0.13946,0.010942,-0.14629,-0.25326,0.31679,0.11361,-0.014187,-0.14342,-0.27337,0.27802,0.14233,-0.022802,-0.1348,-0.26116 0.29395,0.11888,0.00075935,-0.149,-0.26923,0.29606,0.1115,-0.029826,-0.14162,-0.284,0.27181,0.13576,-0.021388,-0.1606,-0.26712,0.31821,0.13259,0.008142,-0.13529,-0.25658,0.3161,0.13576,-0.020334,-0.13318,-0.27134 0.29231,0.11575,-0.039253,-0.1532,-0.28459,0.27896,0.12909,-0.024882,-0.16038,-0.262,0.32926,0.12499,-0.0064054,-0.13061,-0.26611,0.30462,0.14141,-0.024882,-0.13472,-0.26611,0.29231,0.15065,-0.012564,-0.14396,-0.24969 0.30571,0.11884,-0.021321,-0.13387,-0.26978,0.2866,0.12521,-0.040433,-0.14449,-0.26553,0.27173,0.13795,-0.029815,-0.16785,-0.25916,0.3227,0.13795,-0.0043321,-0.15086,-0.25279,0.30571,0.15706,-0.01495,-0.14661,-0.26766 0.27923,0.14429,-0.016434,-0.13161,-0.27686,0.3119,0.13656,0.015368,-0.14536,-0.25795,0.30588,0.12281,-0.012136,-0.15052,-0.28718,0.26806,0.13312,-0.026748,-0.14536,-0.2846,0.29471,0.12882,0.010211,-0.15052,-0.26569 0.2967,0.12076,-0.011196,-0.14915,-0.2851,0.2847,0.17274,-0.017194,-0.12916,-0.25711,0.2807,0.13875,-0.013196,-0.16115,-0.26111,0.2927,0.12276,-0.011196,-0.14915,-0.2971,0.2847,0.15875,-0.011196,-0.13116,-0.26911 0.2992,0.1679,-0.0049918,-0.13109,-0.25718,0.2823,0.1406,-0.010192,-0.15969,-0.26888,0.294,0.1289,-0.001092,-0.15189,-0.28968,0.2862,0.1653,-0.017991,-0.13499,-0.26498,0.2667,0.1289,-0.021891,-0.16749,-0.27798 0.2997,0.13053,0.019232,-0.12545,-0.26569,0.30415,0.13053,-0.018609,-0.12991,-0.28572,0.26631,0.14166,-0.018609,-0.15884,-0.27459,0.29748,0.13053,0.0081025,-0.13658,-0.27459,0.29302,0.12608,-0.023061,-0.14994,-0.28572 0.31565,0.13542,-0.022671,-0.13808,-0.27641,0.26901,0.14965,-0.0076518,-0.15784,-0.26139,0.30854,0.13542,0.017643,-0.13571,-0.26456,0.29905,0.12594,-0.023461,-0.14045,-0.2772,0.26901,0.14017,-0.022671,-0.16812,-0.2693 0.3021,0.11591,-0.036425,-0.1346,-0.29201,0.29194,0.14638,0.0058903,-0.14644,-0.26662,0.28856,0.1176,-0.00088016,-0.15152,-0.28524,0.29194,0.12776,-0.016114,-0.12613,-0.28355,0.28856,0.14807,0.010968,-0.1346,-0.26154 0.28198,0.16657,-0.027698,-0.14118,-0.27582,0.27813,0.14734,-0.021927,-0.16234,-0.28159,0.29929,0.11656,0.0011541,-0.14887,-0.28159,0.29929,0.14926,0.005001,-0.13733,-0.25851,0.2839,0.1281,-0.0026928,-0.16042,-0.25659 0.30081,0.14833,-0.012291,-0.15662,-0.25905,0.29033,0.11574,-0.012291,-0.16826,-0.27069,0.30663,0.12273,-0.036734,-0.14265,-0.28465,0.3043,0.15182,-0.00065181,-0.13916,-0.24392,0.29033,0.11574,-0.00065181,-0.16244,-0.25672 0.26758,0.14249,-0.024691,-0.16381,-0.26201,0.29564,0.13547,0.004536,-0.12991,-0.26903,0.28278,0.13547,-0.020015,-0.14744,-0.28306,0.27693,0.14599,-0.0048166,-0.16381,-0.26903,0.30967,0.14599,0.020903,-0.13926,-0.28657 0.27787,0.11178,0.001049,-0.13882,-0.2816,0.30701,0.12635,-0.025177,-0.13882,-0.27869,0.28953,0.16714,0.015619,-0.13882,-0.25829,0.28953,0.12635,-0.0047789,-0.1563,-0.27869,0.29536,0.138,-0.028091,-0.13882,-0.27869 0.27345,0.14436,-0.017688,-0.14952,-0.25664,0.31739,0.13612,0.012524,-0.12755,-0.26488,0.28993,0.13612,-0.025928,-0.14678,-0.27312,0.28443,0.13612,-0.025928,-0.17424,-0.26763,0.30091,0.12513,-0.0012085,-0.13579,-0.2896 0.28806,0.12185,-0.032554,-0.14943,-0.28883,0.28806,0.15402,0.00068625,-0.14514,-0.25344,0.2784,0.12293,-0.00038602,-0.15801,-0.28025,0.29449,0.12721,-0.015398,-0.13978,-0.28775,0.30092,0.16045,0.012481,-0.14514,-0.25344 0.26926,0.13485,-0.026992,-0.16141,-0.25193,0.32138,0.13485,-0.0050473,-0.13397,-0.27387,0.29944,0.14034,-0.035222,-0.13946,-0.27387,0.27201,0.12662,-0.010534,-0.15592,-0.26564,0.32138,0.12937,0.0004389,-0.14495,-0.27113 0.30605,0.11003,-0.039318,-0.14702,-0.2777,0.2924,0.14665,-0.0055718,-0.14917,-0.25472,0.29456,0.11003,-0.0098799,-0.15564,-0.2777,0.30605,0.12223,-0.032856,-0.13769,-0.27052,0.30389,0.15311,0.0051984,-0.14702,-0.24539 0.325,0.12174,-0.018284,-0.13301,-0.27032,0.30783,0.14613,0.0033967,-0.14205,-0.24955,0.29067,0.10909,-0.011057,-0.14927,-0.28026,0.30241,0.1109,-0.036352,-0.14385,-0.27845,0.28705,0.12896,-0.011057,-0.14927,-0.26039 0.29572,0.12458,0.009855,-0.14813,-0.28166,0.31453,0.16031,0.00045137,-0.12932,-0.25533,0.27316,0.14151,-0.018356,-0.15565,-0.26661,0.28068,0.11329,-0.02964,-0.15377,-0.29106,0.29572,0.13962,-0.014594,-0.13684,-0.26849 0.29411,0.15468,-0.013203,-0.1569,-0.2565,0.287,0.12196,-0.0032439,-0.15975,-0.27072,0.30407,0.13334,-0.033122,-0.14979,-0.29207,0.29269,0.16607,-0.0032439,-0.14552,-0.24796,0.28131,0.12054,-0.0018211,-0.15975,-0.26219 0.3013,0.11713,-0.041038,-0.14937,-0.28046,0.29372,0.1453,0.00013,-0.14937,-0.25013,0.29264,0.11497,-0.0063701,-0.15587,-0.28046,0.3078,0.11497,-0.033454,-0.14179,-0.27071,0.3078,0.14855,0.00013,-0.14179,-0.24363 0.26969,0.13286,-0.024409,-0.16595,-0.26661,0.31215,0.12657,-0.00081782,-0.13135,-0.27133,0.29328,0.13286,-0.036991,-0.13607,-0.27133,0.27913,0.13758,-0.024409,-0.15809,-0.26661,0.32945,0.13758,0.00075491,-0.13293,-0.26504 0.28942,0.13664,-0.028651,-0.13133,-0.26658,0.26688,0.13414,-0.031156,-0.15137,-0.26157,0.29442,0.12913,-0.01112,-0.15137,-0.28912,0.31196,0.12913,-0.0086154,-0.12132,-0.28661,0.29693,0.15918,-0.0061109,-0.12633,-0.27659 0.27829,0.15405,-0.021592,-0.14726,-0.25579,0.27544,0.12264,-0.0044554,-0.15011,-0.27863,0.32827,0.14691,-0.013024,-0.13155,-0.26007,0.29828,0.14549,-0.020164,-0.16582,-0.25721,0.29257,0.11407,-0.017308,-0.15011,-0.28292 0.28593,0.11088,-0.010627,-0.15273,-0.28659,0.29417,0.115,-0.03328,-0.13007,-0.28453,0.29417,0.15619,0.0037894,-0.14243,-0.25158,0.29417,0.12941,0.0099676,-0.14449,-0.28247,0.3127,0.12736,-0.016805,-0.13007,-0.26806 0.28003,0.15183,-0.007023,-0.15194,-0.27456,0.28281,0.12675,-0.0014492,-0.14915,-0.28571,0.29117,0.16576,-0.0014492,-0.13801,-0.27178,0.26331,0.14347,-0.023744,-0.15751,-0.25227,0.29675,0.14626,0.0096984,-0.15751,-0.28571 0.32134,0.13082,0.0020245,-0.13624,-0.25886,0.30571,0.12012,-0.027603,-0.13706,-0.27861,0.27773,0.13206,-0.025546,-0.16093,-0.26051,0.31476,0.12259,-0.00044441,-0.14241,-0.26051,0.29912,0.11354,-0.038302,-0.14035,-0.27244 0.29958,0.14586,-0.007865,-0.14729,-0.26884,0.28171,0.14943,-0.022165,-0.16516,-0.26884,0.30673,0.14943,-0.000715,-0.13299,-0.27599,0.30316,0.13156,-0.036465,-0.14729,-0.26169,0.25311,0.14943,-0.007865,-0.16516,-0.26169 0.31875,0.15988,-0.0053077,-0.12626,-0.26618,0.27903,0.14363,-0.022458,-0.16057,-0.26437,0.28535,0.11294,-0.0080157,-0.14973,-0.28965,0.30431,0.14724,-0.017042,-0.12897,-0.26708,0.2682,0.13822,-0.026069,-0.15876,-0.26708 0.27942,0.11467,-0.0061509,-0.15626,-0.29173,0.29041,0.12199,-0.039102,-0.14528,-0.28807,0.30139,0.16227,0.0011716,-0.15626,-0.25511,0.28675,0.12931,0.0011716,-0.14528,-0.2661,0.30139,0.15128,-0.0061509,-0.12697,-0.25878 0.28771,0.14144,-0.01214,-0.15475,-0.27543,0.2804,0.15241,0.024427,-0.14744,-0.25714,0.28771,0.1195,0.0061434,-0.15475,-0.29005,0.28771,0.14144,-0.023111,-0.14378,-0.2864,0.2804,0.15241,0.0024866,-0.15475,-0.26446 0.28189,0.15202,-0.0016962,-0.14746,-0.26231,0.30839,0.13789,0.016856,-0.13245,-0.26496,0.30398,0.12464,-0.026433,-0.13775,-0.28086,0.26775,0.13789,-0.029966,-0.17043,-0.27291,0.30044,0.12199,-0.0025797,-0.14835,-0.27556 0.31762,0.14881,0.011849,-0.13785,-0.27481,0.28895,0.13607,-0.010447,-0.14741,-0.27481,0.26984,0.14881,-0.020003,-0.16333,-0.2557,0.29851,0.1297,0.011849,-0.13785,-0.27481,0.26984,0.1297,-0.029558,-0.14741,-0.28755 0.30769,0.12851,0.00078058,-0.15001,-0.28129,0.27398,0.14093,-0.015186,-0.1234,-0.26887,0.30769,0.13916,0.020295,-0.14114,-0.25646,0.30059,0.11787,-0.0063156,-0.15179,-0.28662,0.27398,0.12674,-0.02583,-0.14469,-0.28662 0.2854,0.10026,-0.0027947,-0.15475,-0.28925,0.29588,0.11947,-0.035981,-0.13903,-0.27702,0.29763,0.14567,0.004192,-0.14602,-0.25257,0.29938,0.12122,-0.0027947,-0.14777,-0.27527,0.32208,0.13519,-0.015021,-0.13379,-0.25431 0.2738,0.11011,-0.019064,-0.16048,-0.27184,0.29941,0.13572,-0.039107,-0.14935,-0.27184,0.30163,0.16467,-0.015723,-0.14935,-0.24845,0.29941,0.12792,-0.0012472,-0.16048,-0.25291,0.31054,0.14685,-0.026858,-0.13487,-0.2685 0.30753,0.13386,0.0088955,-0.1436,-0.25585,0.30753,0.11268,-0.01652,-0.14995,-0.28127,0.28211,0.14021,-0.044054,-0.14148,-0.26856,0.30753,0.13386,0.00042359,-0.14995,-0.25161,0.30329,0.10209,-0.014402,-0.14572,-0.27703 0.2778,0.14166,-0.020173,-0.13405,-0.27876,0.31119,0.13566,0.017502,-0.14005,-0.25992,0.30349,0.11426,-0.010754,-0.1469,-0.28903,0.27009,0.13566,-0.024454,-0.13919,-0.2839,0.30263,0.12796,0.0072267,-0.15289,-0.26506 0.28576,0.13211,-0.02541,-0.13516,-0.28235,0.28835,0.16181,-0.0021692,-0.13774,-0.2462,0.29351,0.11791,0.010743,-0.16227,-0.27332,0.29997,0.11791,-0.02541,-0.14807,-0.29656,0.28705,0.15148,0.00041318,-0.14549,-0.26686 0.26737,0.13682,-0.015791,-0.16588,-0.26426,0.32476,0.128,0.013218,-0.1394,-0.26679,0.30268,0.12232,-0.025882,-0.13498,-0.28192,0.27872,0.12863,-0.017053,-0.15832,-0.26931,0.3071,0.12673,0.012588,-0.14066,-0.26868 0.28396,0.14939,-0.010531,-0.1529,-0.25236,0.30541,0.12989,-0.0027304,-0.1529,-0.28942,0.29956,0.16694,-0.0085812,-0.13145,-0.24846,0.27616,0.13769,-0.014432,-0.16265,-0.26407,0.28981,0.11234,-0.012482,-0.1646,-0.28357 0.30177,0.1503,-0.015729,-0.13224,-0.27206,0.26681,0.15613,-0.024468,-0.16137,-0.27206,0.27847,0.12117,-0.015729,-0.14972,-0.2808,0.31633,0.15613,-0.018642,-0.12642,-0.26623,0.27264,0.14739,-0.0040779,-0.16137,-0.26623 0.28008,0.15818,-0.0053519,-0.15699,-0.27592,0.30089,0.12845,0.00059465,-0.1451,-0.28484,0.30684,0.16115,0.00059465,-0.12131,-0.26997,0.26819,0.14034,-0.011298,-0.15996,-0.25808,0.28008,0.11358,-0.011298,-0.15996,-0.27889 0.2895,0.12608,-0.042559,-0.15556,-0.29291,0.29298,0.1452,0.0043811,-0.16947,-0.26509,0.2895,0.13477,0.0095967,-0.15209,-0.28248,0.28602,0.13129,-0.002573,-0.13644,-0.26509,0.28602,0.15389,0.013074,-0.15035,-0.24771 0.31763,0.12114,-0.02982,-0.13945,-0.26679,0.30329,0.15487,0.0081297,-0.14114,-0.24824,0.28643,0.11776,-0.0078935,-0.15548,-0.28197,0.29655,0.11608,-0.039097,-0.14704,-0.27438,0.28811,0.14559,-0.0095802,-0.15463,-0.26005 0.29184,0.12709,0.016451,-0.13748,-0.26855,0.29184,0.11145,-0.0076002,-0.14349,-0.29982,0.29304,0.12949,-0.016018,-0.13748,-0.28299,0.29785,0.12949,0.011641,-0.14229,-0.25773,0.30867,0.11025,-0.0063976,-0.13988,-0.27938 0.29692,0.13502,0.014559,-0.15512,-0.26004,0.30858,0.13502,-0.017823,-0.14346,-0.28076,0.28656,0.16869,-0.0048702,-0.14605,-0.24708,0.2775,0.11559,-0.0022797,-0.16419,-0.27299,0.29433,0.12077,-0.02948,-0.14605,-0.28335 0.29635,0.15008,-0.014877,-0.15337,-0.25141,0.29947,0.12985,-0.00087144,-0.15337,-0.26697,0.31814,0.15474,-0.017989,-0.12848,-0.26075,0.28702,0.13451,-0.021101,-0.17049,-0.25452,0.28702,0.098722,-0.021101,-0.16115,-0.27942 0.28843,0.14708,-0.029178,-0.13214,-0.27,0.26749,0.16802,-0.023943,-0.16006,-0.26476,0.30937,0.15057,0.0022337,-0.14086,-0.26476,0.28843,0.14184,-0.034413,-0.13388,-0.28047,0.28319,0.14184,-0.027433,-0.15657,-0.27 0.27068,0.14114,-0.037617,-0.14643,-0.27337,0.2914,0.12301,-0.0065286,-0.15161,-0.27337,0.33544,0.13855,-0.019482,-0.1257,-0.28114,0.27586,0.1515,-0.024664,-0.15161,-0.26042,0.29658,0.13855,-0.0065286,-0.15161,-0.25265 0.29771,0.14737,-0.024155,-0.16491,-0.26026,0.28107,0.1282,-0.010534,-0.15482,-0.28347,0.3189,0.15494,-0.015074,-0.12203,-0.25622,0.27098,0.15343,-0.023146,-0.16289,-0.25723,0.28308,0.13123,-0.0039754,-0.14877,-0.27943 0.2745,0.13187,-0.037232,-0.14752,-0.2828,0.30685,0.13628,-0.00047055,-0.15193,-0.25927,0.30244,0.12599,-0.018116,-0.14752,-0.27839,0.2745,0.13775,-0.040173,-0.13722,-0.27692,0.31862,0.14216,0.012764,-0.13722,-0.24898 0.29436,0.15539,-0.019671,-0.14128,-0.26422,0.29035,0.11663,-0.00898,-0.16266,-0.26288,0.32644,0.15004,-0.011653,-0.12123,-0.26154,0.28367,0.14603,-0.03437,-0.15197,-0.26689,0.28635,0.11129,-0.018334,-0.15998,-0.27491 0.28707,0.14644,-0.029725,-0.12891,-0.29767,0.30631,0.1494,0.005803,-0.14667,-0.25622,0.29595,0.12275,-0.017883,-0.14223,-0.28435,0.26635,0.13459,-0.035647,-0.13927,-0.27102,0.29891,0.14052,0.005803,-0.14963,-0.26066 0.30248,0.11723,-0.037356,-0.13828,-0.27882,0.29609,0.14278,0.0073588,-0.14212,-0.24688,0.28715,0.11084,0.0035261,-0.15489,-0.27882,0.30248,0.1249,-0.027136,-0.14723,-0.28648,0.29609,0.14789,0.0086364,-0.15106,-0.25838 0.29297,0.11243,-0.0053973,-0.15363,-0.26006,0.30818,0.11433,-0.030103,-0.14413,-0.27146,0.31008,0.15424,0.00030407,-0.13843,-0.25245,0.29487,0.11243,0.00030407,-0.16123,-0.26386,0.31388,0.12003,-0.037705,-0.14413,-0.27146 0.30515,0.11684,-0.023788,-0.13343,-0.28122,0.30038,0.15617,0.0024313,-0.14654,-0.26691,0.29323,0.10612,-0.0047195,-0.16084,-0.28598,0.28369,0.11565,-0.026172,-0.13224,-0.27883,0.29323,0.15498,0.0024313,-0.13224,-0.25738 0.30585,0.14915,0.003134,-0.14466,-0.24794,0.30585,0.12244,-0.011111,-0.14644,-0.27643,0.26668,0.13847,-0.03426,-0.15,-0.26931,0.30585,0.13312,0.010257,-0.1411,-0.26219,0.30051,0.10641,-0.018234,-0.16247,-0.28356 0.28192,0.13862,-0.022735,-0.13593,-0.2708,0.31925,0.13622,0.014595,-0.14677,-0.26357,0.3036,0.11695,-0.01551,-0.14677,-0.28284,0.26506,0.13862,-0.026347,-0.15038,-0.28525,0.29637,0.1314,0.014595,-0.15038,-0.25996 0.30241,0.14842,0.018123,-0.1329,-0.26024,0.30241,0.12769,-0.020374,-0.1329,-0.27801,0.26687,0.13954,-0.029258,-0.16844,-0.26024,0.29648,0.12769,0.0092392,-0.13883,-0.27801,0.29648,0.12769,-0.029258,-0.14771,-0.28689 0.26955,0.11473,-0.0042959,-0.16842,-0.27581,0.2993,0.12309,-0.027542,-0.15121,-0.28186,0.29558,0.16075,0.002678,-0.15121,-0.24606,0.29186,0.12123,0.0073272,-0.15819,-0.26001,0.31836,0.13797,-0.0070855,-0.14238,-0.26837 0.28947,0.096894,-0.026906,-0.15483,-0.27451,0.31973,0.14366,-0.026906,-0.1342,-0.25938,0.2881,0.14504,-0.031033,-0.15621,-0.2525,0.29773,0.11478,-0.018653,-0.15071,-0.27588,0.31973,0.14366,-0.01315,-0.13282,-0.25112 0.31504,0.12064,0.002925,-0.13797,-0.26639,0.29542,0.12777,-0.034529,-0.14689,-0.27174,0.26867,0.13134,-0.030962,-0.15402,-0.26104,0.33288,0.1242,-0.0042091,-0.13441,-0.26817,0.30434,0.11885,-0.027395,-0.13797,-0.26639 0.32104,0.13836,-0.019692,-0.13241,-0.26973,0.2744,0.14225,-0.015806,-0.16479,-0.25419,0.31586,0.13836,0.0075142,-0.13629,-0.26196,0.3042,0.12282,-0.028761,-0.14018,-0.2788,0.26403,0.13318,-0.023579,-0.16998,-0.26585 0.32014,0.13414,-0.031141,-0.13795,-0.26549,0.30219,0.15486,0.0010865,-0.14532,-0.24753,0.29482,0.11296,-0.014567,-0.15591,-0.27607,0.29851,0.11066,-0.041731,-0.14854,-0.27423,0.28653,0.14335,-0.013186,-0.15545,-0.25213 0.29883,0.13809,-0.015233,-0.12404,-0.26995,0.29141,0.17024,-0.00039567,-0.13888,-0.25511,0.29141,0.12078,-0.015233,-0.16361,-0.27984,0.29883,0.1282,-0.035017,-0.15619,-0.28973,0.27657,0.14551,-0.010287,-0.15619,-0.25016 0.27825,0.12829,-0.040962,-0.15665,-0.26591,0.30824,0.13257,0.00617,-0.15237,-0.25734,0.31681,0.11329,-0.0066842,-0.15451,-0.28091,0.27397,0.14542,-0.025966,-0.13951,-0.27448,0.30824,0.13257,0.01474,-0.15022,-0.25306 0.29476,0.1565,-0.015536,-0.15274,-0.25829,0.2916,0.11006,-0.014481,-0.17069,-0.26884,0.30848,0.12378,-0.040867,-0.14324,-0.2794,0.30426,0.15545,-0.011314,-0.14324,-0.24246,0.29793,0.11745,-0.008148,-0.15274,-0.25829 0.31167,0.11564,-0.0089134,-0.14451,-0.26065,0.30799,0.11144,-0.03414,-0.14188,-0.27222,0.28067,0.12826,-0.026257,-0.16395,-0.25908,0.31956,0.12142,0.0010721,-0.13767,-0.25645,0.31798,0.1209,-0.029935,-0.13189,-0.26906 0.29394,0.11746,-0.005239,-0.17344,-0.27408,0.26912,0.13263,-0.021783,-0.16103,-0.2727,0.3091,0.14366,0.014063,-0.16103,-0.25478,0.31462,0.13125,0.0057905,-0.15689,-0.26719,0.27601,0.14504,-0.005239,-0.13897,-0.2603 0.32274,0.15203,-0.011571,-0.13249,-0.25578,0.29429,0.1378,-0.042394,-0.13723,-0.2629,0.26347,0.14729,-0.03291,-0.15857,-0.2629,0.31089,0.13069,-0.018684,-0.13249,-0.27001,0.29192,0.13069,-0.035281,-0.15146,-0.27712 0.27347,0.11514,-0.0012209,-0.1462,-0.29499,0.30209,0.13803,-0.0050361,-0.13857,-0.2721,0.28301,0.13803,-0.024112,-0.1462,-0.26447,0.28492,0.10751,-0.0069437,-0.1462,-0.28927,0.32307,0.1533,-0.0012209,-0.11949,-0.26256 0.28805,0.15236,-0.0091752,-0.15617,-0.25633,0.31228,0.14105,0.015055,-0.13517,-0.26763,0.30259,0.12652,-0.025329,-0.13517,-0.28702,0.26221,0.13136,-0.025329,-0.16748,-0.26763,0.30259,0.11682,0.00051692,-0.14648,-0.27248 0.27076,0.12936,-0.025726,-0.16256,-0.27888,0.31409,0.13392,0.0016421,-0.12607,-0.28344,0.28672,0.12936,-0.025726,-0.13292,-0.28344,0.27076,0.15444,-0.018884,-0.1466,-0.26063,0.32093,0.12936,0.0016421,-0.13292,-0.26519 0.30852,0.1102,-0.012498,-0.14518,-0.2793,0.29996,0.1473,-0.025339,-0.13662,-0.24648,0.27713,0.12447,-0.021059,-0.16373,-0.25647,0.3128,0.10735,-0.012498,-0.15517,-0.28358,0.3128,0.1473,-0.025339,-0.12806,-0.25647 0.29205,0.14017,-0.020396,-0.15058,-0.25907,0.28771,0.11847,0.0056414,-0.14624,-0.28511,0.31809,0.15319,-0.0073772,-0.11804,-0.26558,0.27903,0.15536,-0.016056,-0.15492,-0.26558,0.27469,0.1163,-0.00086791,-0.15926,-0.29162 0.30052,0.12255,-0.0028666,-0.145,-0.27519,0.3256,0.15719,-0.011228,-0.13067,-0.25847,0.2814,0.13927,-0.0172,-0.16053,-0.25847,0.27424,0.10463,-0.014811,-0.15695,-0.29072,0.29813,0.13807,-0.024366,-0.12828,-0.26683 0.30142,0.16418,-0.0098474,-0.14001,-0.24188,0.29152,0.12315,5.6594e-05,-0.15982,-0.27443,0.30567,0.12456,-0.0339,-0.14992,-0.28574,0.29293,0.15569,-0.0098474,-0.14426,-0.25037,0.27878,0.11607,-0.0098474,-0.17114,-0.27301 0.32399,0.15894,-0.013744,-0.13298,-0.25163,0.28581,0.1378,-0.021968,-0.16881,-0.25633,0.29169,0.10725,-0.013744,-0.16411,-0.2716,0.31518,0.13897,-0.018443,-0.13944,-0.25633,0.27877,0.1284,-0.027841,-0.16881,-0.26103 0.31244,0.17004,-0.015941,-0.13178,-0.24549,0.2795,0.1339,-0.015941,-0.15516,-0.26249,0.30288,0.11371,-0.013815,-0.15835,-0.28481,0.30288,0.15622,-0.022317,-0.1424,-0.25824,0.26887,0.13071,-0.025505,-0.16791,-0.27099 0.27972,0.15456,-0.0078823,-0.14103,-0.26086,0.28504,0.10929,-0.0052194,-0.14636,-0.28217,0.317,0.15456,-0.0052194,-0.12505,-0.26619,0.28238,0.13592,-0.010545,-0.15701,-0.26352,0.2877,0.11994,-0.0025564,-0.14636,-0.30613 0.31378,0.1378,-0.027779,-0.14699,-0.26195,0.28303,0.14063,-0.027779,-0.16781,-0.25201,0.33317,0.12455,-0.0012868,-0.13706,-0.25627,0.29911,0.1307,-0.032982,-0.14463,-0.26384,0.27546,0.1378,-0.030144,-0.16923,-0.25627 0.2786,0.15326,-0.022799,-0.1541,-0.27048,0.2786,0.11149,-0.01683,-0.16007,-0.27645,0.30844,0.13238,-0.028767,-0.14813,-0.2854,0.30247,0.1652,-0.0019098,-0.13918,-0.24661,0.30247,0.11447,0.0070425,-0.14216,-0.26153 0.26972,0.13206,-0.0014182,-0.16201,-0.26838,0.30726,0.13415,0.019438,-0.13281,-0.2663,0.29683,0.13206,-0.026446,-0.14116,-0.28715,0.26137,0.14875,-0.013932,-0.16201,-0.27255,0.30517,0.13832,0.015267,-0.15367,-0.27255 0.29077,0.14128,-0.037871,-0.1399,-0.26566,0.31568,0.13416,0.0048406,-0.14346,-0.25143,0.31924,0.10806,-0.021261,-0.14346,-0.27397,0.27772,0.12348,-0.040244,-0.14821,-0.27753,0.30857,0.12704,9.4914e-05,-0.15295,-0.25499 0.31234,0.12123,-0.022445,-0.14172,-0.2759,0.27303,0.12665,-0.029222,-0.15256,-0.27726,0.29336,0.10496,-0.011602,-0.16476,-0.26642,0.3286,0.14291,-0.010247,-0.11732,-0.26371,0.29472,0.14562,-0.017024,-0.13901,-0.25422 0.28252,0.15256,-0.022526,-0.13985,-0.27703,0.26086,0.1309,-0.015306,-0.16151,-0.27703,0.29515,0.12548,-0.0098914,-0.15068,-0.29147,0.30057,0.17422,-0.015306,-0.13444,-0.25718,0.28974,0.15256,-0.0044764,-0.15068,-0.25718 0.27158,0.10158,-0.011753,-0.16496,-0.30138,0.30516,0.14356,-0.0096543,-0.12509,-0.2678,0.28627,0.13726,-0.015951,-0.15237,-0.2657,0.29047,0.12677,-0.0012593,-0.14817,-0.2783,0.30516,0.16035,-0.003358,-0.12089,-0.26151 0.31079,0.13741,-0.010692,-0.12989,-0.29124,0.29514,0.15788,0.0025526,-0.14434,-0.24909,0.27948,0.12296,-0.0046717,-0.1624,-0.28522,0.27587,0.11935,-0.035977,-0.14434,-0.27558,0.28551,0.16028,-0.0070798,-0.13832,-0.26836 0.30704,0.14238,-0.011107,-0.12413,-0.28041,0.27494,0.14517,-0.011107,-0.15483,-0.26367,0.31681,0.14238,0.015405,-0.12832,-0.26786,0.29448,0.12285,-0.023666,-0.13669,-0.2846,0.2596,0.13262,-0.023666,-0.16739,-0.27623 0.29622,0.12294,-0.010551,-0.1588,-0.25892,0.32831,0.15567,-0.012476,-0.12286,-0.26534,0.27569,0.1499,-0.030447,-0.14661,-0.27112,0.28211,0.10497,-0.014402,-0.16715,-0.26534,0.30136,0.1377,-0.02082,-0.13698,-0.27304 0.2888,0.11699,-0.037642,-0.14698,-0.27974,0.26537,0.13573,-0.024366,-0.16416,-0.26646,0.32082,0.13495,-0.004061,-0.1376,-0.26334,0.31769,0.13339,-0.022804,-0.13136,-0.27193,0.29426,0.15525,-0.013432,-0.15635,-0.24303 0.30365,0.16893,-0.0037145,-0.13581,-0.26137,0.28141,0.13492,-0.0076382,-0.17374,-0.27184,0.29972,0.11661,-0.0037145,-0.15805,-0.29146,0.28795,0.15716,-0.010254,-0.13581,-0.25483,0.26572,0.13362,-0.010254,-0.1659,-0.2653 0.33181,0.13342,0.0071762,-0.13331,-0.25196,0.29384,0.12868,-0.028895,-0.1409,-0.26905,0.27391,0.13058,-0.024148,-0.15989,-0.26335,0.32042,0.11919,-0.0042146,-0.13901,-0.2643,0.2891,0.12298,-0.040285,-0.15419,-0.27759 0.28559,0.15098,-0.02048,-0.15108,-0.23922,0.2896,0.12775,-0.025287,-0.15829,-0.26806,0.30402,0.13977,-0.050125,-0.15348,-0.26325,0.30082,0.16541,-0.01407,-0.15028,-0.24402,0.30001,0.13336,-0.024486,-0.15909,-0.27607 0.31061,0.13924,0.0088421,-0.13397,-0.2594,0.29695,0.11564,-0.029656,-0.1377,-0.28796,0.26591,0.14172,-0.024688,-0.16378,-0.26313,0.31186,0.14421,0.0013909,-0.14267,-0.26188,0.29944,0.12061,-0.034623,-0.14639,-0.27058 0.31295,0.13387,-0.030295,-0.1329,-0.25602,0.28124,0.13946,-0.02843,-0.15901,-0.24855,0.32041,0.13573,0.0014177,-0.14222,-0.25602,0.30922,0.12454,-0.035891,-0.14409,-0.2728,0.27751,0.14506,-0.037757,-0.17394,-0.26348 0.29336,0.13677,-0.028428,-0.13512,-0.28139,0.26927,0.15398,-0.03359,-0.16781,-0.26074,0.31401,0.14709,0.00082599,-0.13856,-0.26762,0.29164,0.15054,-0.035311,-0.13856,-0.2745,0.27443,0.15742,-0.021544,-0.14888,-0.25729 0.29514,0.15563,-0.03254,-0.14041,-0.26289,0.27972,0.12968,-0.029296,-0.1688,-0.26451,0.30487,0.11345,-0.016319,-0.15826,-0.28235,0.30649,0.16293,-0.021996,-0.13068,-0.24991,0.28946,0.14509,-0.016319,-0.15582,-0.25234 0.29771,0.1089,-0.01485,-0.15263,-0.26872,0.31301,0.11783,-0.03271,-0.14115,-0.2802,0.30408,0.14972,-0.0097466,-0.14115,-0.24065,0.29771,0.1089,-0.0097466,-0.1488,-0.25469,0.32067,0.12165,-0.035261,-0.13732,-0.27255 0.32741,0.13329,-0.021532,-0.14062,-0.27043,0.27501,0.13448,-0.041777,-0.15253,-0.26686,0.29049,0.10471,-0.010813,-0.16444,-0.25971,0.32622,0.13805,-0.010813,-0.12276,-0.26686,0.28334,0.14162,-0.021532,-0.14062,-0.26329 0.3197,0.13428,-0.0243,-0.13531,-0.2701,0.30384,0.15502,0.0019274,-0.14141,-0.24631,0.28859,0.11354,-0.0072216,-0.16092,-0.26522,0.30018,0.11598,-0.041987,-0.14994,-0.28535,0.28188,0.14343,-0.02003,-0.15726,-0.25302 0.29106,0.14752,-0.0021593,-0.16165,-0.2414,0.29351,0.12789,-0.013201,-0.16533,-0.2598,0.30578,0.12175,-0.043873,-0.15184,-0.26593,0.30946,0.14997,-0.004613,-0.15797,-0.24508,0.30088,0.10949,-0.0095205,-0.15797,-0.27698 0.27781,0.13969,-0.015483,-0.13826,-0.27638,0.31192,0.13969,0.0118,-0.14849,-0.25421,0.30851,0.12434,-0.0035468,-0.15361,-0.27638,0.26076,0.12946,-0.03083,-0.14849,-0.28661,0.3051,0.13116,0.0118,-0.16043,-0.25933 0.2933,0.14015,0.015787,-0.14147,-0.28434,0.29227,0.14426,-0.020186,-0.13222,-0.28022,0.2933,0.16585,0.0055091,-0.13941,-0.25145,0.2861,0.12782,-0.012992,-0.15175,-0.28536,0.27788,0.12474,-0.045882,-0.14866,-0.27303 0.30799,0.13242,0.0049841,-0.1451,-0.27537,0.291,0.12675,-0.028998,-0.1451,-0.2782,0.26268,0.13808,-0.017671,-0.15643,-0.24705,0.30799,0.15224,-0.00067965,-0.13661,-0.26121,0.30233,0.13525,-0.04599,-0.13944,-0.28387 0.30576,0.15984,-0.0038186,-0.15384,-0.25203,0.28667,0.11347,-0.0065462,-0.16066,-0.2684,0.30031,0.12574,-0.032458,-0.14974,-0.28067,0.30167,0.1612,-0.0065462,-0.14702,-0.24112,0.28667,0.10938,-0.0092738,-0.16747,-0.27112 0.31066,0.15041,-0.022132,-0.12332,-0.26719,0.28785,0.13286,-0.022132,-0.15548,-0.25901,0.2978,0.15275,-0.027396,-0.14671,-0.28825,0.28493,0.14514,-0.034414,-0.1163,-0.25433,0.28844,0.13578,-0.03149,-0.17595,-0.26252 0.26842,0.13436,-0.022251,-0.16508,-0.27032,0.3035,0.13436,0.010324,-0.14503,-0.26656,0.29598,0.12684,-0.028516,-0.13626,-0.28661,0.26842,0.14689,-0.01724,-0.16383,-0.27032,0.31478,0.14313,0.0216,-0.13125,-0.26531 0.28284,0.11807,-0.031449,-0.16571,-0.2603,0.29504,0.10484,-0.012124,-0.15248,-0.27657,0.32657,0.1496,-0.016192,-0.12197,-0.25521,0.29199,0.14654,-0.022295,-0.15859,-0.25114,0.3103,0.12315,-0.0060213,-0.14638,-0.2725 0.31075,0.14579,-0.011392,-0.12967,-0.27595,0.27184,0.1419,-0.013726,-0.15846,-0.27128,0.2734,0.11778,0.0033926,-0.15145,-0.29696,0.31075,0.14423,-0.0028324,-0.11722,-0.26895,0.27184,0.14423,-0.0082792,-0.16079,-0.26895 0.30176,0.14218,0.010125,-0.15128,-0.25583,0.30176,0.13485,-0.026559,-0.13661,-0.28334,0.29442,0.16053,0.00095376,-0.14394,-0.24299,0.27608,0.11651,0.0027879,-0.15862,-0.27784,0.28525,0.12384,-0.028393,-0.15128,-0.29435 0.30318,0.13064,-0.017678,-0.1433,-0.28859,0.30015,0.15637,0.0095652,-0.14784,-0.24167,0.28351,0.13064,0.011079,-0.16297,-0.27043,0.27745,0.1261,-0.025245,-0.15389,-0.29616,0.27745,0.14578,0.0035113,-0.13876,-0.26892 0.29021,0.11341,-0.028031,-0.14858,-0.28841,0.26771,0.13591,-0.024817,-0.16947,-0.26109,0.31754,0.13913,0.015366,-0.13733,-0.2627,0.30789,0.14234,-0.023209,-0.1309,-0.27555,0.28218,0.15199,-0.0039218,-0.15179,-0.25787 0.27183,0.1342,-0.028097,-0.14365,-0.2657,0.31727,0.12901,0.016048,-0.14885,-0.24752,0.30689,0.12901,-0.022904,-0.16443,-0.2709,0.27443,0.1342,-0.033291,-0.16053,-0.27609,0.31208,0.13939,0.0069594,-0.14885,-0.26051 0.31494,0.13755,-0.0080055,-0.12627,-0.26955,0.28765,0.11935,-0.0262,-0.14674,-0.28319,0.26718,0.1239,-0.030748,-0.16493,-0.26727,0.32631,0.12845,0.0056402,-0.13536,-0.2559,0.30357,0.12845,-0.019377,-0.14219,-0.26727 0.29539,0.10831,-0.047055,-0.15962,-0.28486,0.29381,0.14795,0.0036781,-0.15011,-0.26108,0.28746,0.11307,-0.0058343,-0.14693,-0.28486,0.30173,0.1321,-0.02803,-0.13108,-0.26742,0.30807,0.15429,0.0036781,-0.14059,-0.24206 0.30754,0.14534,-0.0073278,-0.15617,-0.2535,0.29418,0.10144,-0.0073278,-0.15617,-0.26304,0.31899,0.10717,-0.035952,-0.14282,-0.27449,0.30563,0.14724,-0.0054195,-0.15236,-0.25731,0.28655,0.12053,0.00030533,-0.16572,-0.25731 0.29414,0.13214,0.013593,-0.15237,-0.26696,0.27439,0.10843,-0.014067,-0.16817,-0.29067,0.306,0.12423,-0.018018,-0.13656,-0.26696,0.29019,0.15584,0.0096415,-0.14051,-0.2551,0.2981,0.12423,0.0096415,-0.14051,-0.29067 0.26913,0.1603,-0.044771,-0.16162,-0.26817,0.28861,0.12593,-0.017276,-0.16735,-0.26129,0.31381,0.15686,-0.0069654,-0.12955,-0.26473,0.28517,0.15457,-0.029878,-0.14673,-0.26817,0.29777,0.12936,-9.165e-05,-0.15704,-0.25786 0.26509,0.1253,0.0077519,-0.14792,-0.29089,0.29368,0.1253,-0.020841,-0.12886,-0.29089,0.29051,0.15707,0.017283,-0.14157,-0.26547,0.28733,0.11895,0.010929,-0.14792,-0.27183,0.30639,0.13166,-0.0081332,-0.13839,-0.28453 0.30412,0.12377,-0.0052393,-0.15004,-0.27181,0.31333,0.12509,-0.034859,-0.13688,-0.26391,0.30543,0.15931,2.6328e-05,-0.14544,-0.24088,0.29227,0.11653,-0.010505,-0.15202,-0.27379,0.29885,0.10995,-0.047365,-0.14807,-0.26786 0.2694,0.13097,-0.02875,-0.16895,-0.26834,0.32442,0.1292,0.0014198,-0.13523,-0.26656,0.30312,0.11855,-0.035849,-0.13168,-0.26834,0.28182,0.13275,-0.019877,-0.16185,-0.25946,0.32442,0.13097,0.0014198,-0.14588,-0.25769 0.31451,0.12814,-0.026867,-0.11544,-0.28336,0.29975,0.1429,-0.019486,-0.14681,-0.26122,0.31266,0.13183,0.0063477,-0.13758,-0.26122,0.30528,0.12444,-0.039784,-0.13205,-0.28336,0.25915,0.12814,-0.025022,-0.15235,-0.2686 0.31222,0.12367,0.0071872,-0.15839,-0.27435,0.27305,0.13463,-0.0069156,-0.15055,-0.28061,0.2976,0.12628,0.024946,-0.15421,-0.24144,0.30387,0.11426,0.0066649,-0.15421,-0.27905,0.27932,0.14508,-0.024675,-0.14638,-0.278 0.27535,0.12954,-0.03369,-0.15339,-0.27744,0.31018,0.12301,-0.016279,-0.15557,-0.29485,0.29059,0.17089,-0.018456,-0.13598,-0.25133,0.28406,0.14912,-0.0053974,-0.15774,-0.26003,0.27535,0.15348,0.0076608,-0.13816,-0.27091 0.31323,0.12392,-0.0067278,-0.13894,-0.28014,0.27333,0.12431,-0.036846,-0.14832,-0.28092,0.26473,0.14113,-0.022374,-0.15536,-0.26449,0.3281,0.13135,0.0010952,-0.12485,-0.2641,0.29719,0.14699,-0.020809,-0.12838,-0.2731 0.2782,0.13927,-0.013215,-0.13775,-0.28091,0.30531,0.12233,0.0020332,-0.14283,-0.28261,0.30531,0.13927,0.029142,-0.14113,-0.26397,0.27227,0.13927,-0.018298,-0.13266,-0.286,0.2926,0.10538,0.001186,-0.14452,-0.28769 0.33007,0.12945,0.0033474,-0.12963,-0.25688,0.29453,0.13174,-0.034483,-0.14224,-0.26376,0.27275,0.13403,-0.025312,-0.16746,-0.26032,0.32319,0.12257,-0.0058236,-0.1388,-0.26261,0.29109,0.12257,-0.041361,-0.15256,-0.27408 0.29262,0.12919,-0.0065876,-0.17254,-0.26305,0.30519,0.14805,0.0022126,-0.12476,-0.26682,0.27376,0.15056,-0.040531,-0.14111,-0.27311,0.28508,0.12542,-0.030474,-0.17631,-0.26557,0.30771,0.14302,-0.0053304,-0.12853,-0.26808 0.30405,0.12769,0.016124,-0.13144,-0.2754,0.30405,0.1025,-0.019867,-0.13863,-0.28979,0.26806,0.13849,-0.0018715,-0.16023,-0.279,0.31124,0.14209,0.0053266,-0.14583,-0.2646,0.28245,0.12409,-0.0054705,-0.14583,-0.2682 0.27923,0.11087,0.0072529,-0.15464,-0.27768,0.28895,0.16591,-0.0089366,-0.1255,-0.25825,0.26952,0.13677,-0.0089366,-0.16112,-0.2712,0.29866,0.12705,-0.0056987,-0.15464,-0.28739,0.28895,0.17238,-0.0056987,-0.14817,-0.27768 0.29327,0.13103,-0.032927,-0.12515,-0.29764,0.27278,0.13103,-0.015849,-0.13881,-0.27203,0.32231,0.13444,-0.0004782,-0.11661,-0.28057,0.29669,0.13444,-0.024388,-0.12003,-0.28227,0.27961,0.14127,-0.015849,-0.14735,-0.2669 0.30414,0.13912,-0.013201,-0.13855,-0.29087,0.26764,0.14864,-0.022721,-0.14807,-0.28452,0.27558,0.12484,-0.0052678,-0.16076,-0.27024,0.31048,0.15181,0.0090124,-0.11792,-0.27818,0.26606,0.15181,-0.013201,-0.13379,-0.27183 0.28927,0.14345,-0.019673,-0.16302,-0.252,0.33375,0.12615,-0.019673,-0.12595,-0.26435,0.28927,0.13356,-0.041917,-0.15066,-0.26435,0.26455,0.1385,-0.027088,-0.16549,-0.25941,0.31892,0.13603,-0.01473,-0.13583,-0.2693 0.32222,0.11686,-0.018334,-0.14065,-0.26747,0.28166,0.13874,-0.033785,-0.14065,-0.26103,0.31385,0.13231,0.002266,-0.14837,-0.24494,0.32415,0.10913,-0.023484,-0.14644,-0.27326,0.28166,0.13231,-0.044085,-0.14451,-0.26811 0.27945,0.14111,-0.018285,-0.13558,-0.29196,0.27945,0.10502,-0.0092629,-0.16565,-0.26189,0.31554,0.14712,-0.0002406,-0.11452,-0.27693,0.28547,0.15915,-0.018285,-0.14159,-0.27693,0.29148,0.12306,0.0087817,-0.15061,-0.27392 0.29194,0.13458,0.0071206,-0.15808,-0.2599,0.29693,0.11678,-0.014953,-0.15737,-0.2955,0.26987,0.14099,-0.029907,-0.15024,-0.27984,0.29907,0.14312,0.02065,-0.15309,-0.2364,0.30547,0.13102,-0.0042724,-0.14597,-0.27201 0.28562,0.14079,-0.0082661,-0.16495,-0.28183,0.27546,0.15858,-0.023511,-0.15055,-0.27844,0.28223,0.16112,0.023917,-0.1514,-0.25557,0.28223,0.14334,-0.0057253,-0.15563,-0.27336,0.27546,0.16112,-0.025205,-0.14547,-0.26997 0.31561,0.14033,-0.0010177,-0.11693,-0.25828,0.28734,0.15164,-0.015153,-0.13389,-0.26676,0.27603,0.11489,-0.0038448,-0.16216,-0.28089,0.31278,0.14881,-0.015153,-0.13672,-0.26959,0.26472,0.13185,-0.032115,-0.15933,-0.2922 0.27855,0.10368,-0.013958,-0.15624,-0.29057,0.31353,0.14422,-0.017137,-0.12842,-0.26514,0.27617,0.13468,-0.021907,-0.15624,-0.25957,0.29366,0.11243,-0.0044195,-0.15068,-0.28262,0.32068,0.15455,-0.0068041,-0.11888,-0.25957 0.2774,0.1281,-0.027016,-0.14012,-0.29588,0.27804,0.15137,-0.0069802,-0.14012,-0.26357,0.27287,0.15007,-0.0089191,-0.15499,-0.29136,0.28257,0.15201,-0.019906,-0.12978,-0.28619,0.29162,0.17593,-0.002456,-0.13237,-0.26034 0.29987,0.13054,-0.0088107,-0.16914,-0.27403,0.29987,0.13354,-0.044773,-0.14217,-0.27104,0.28638,0.13354,0.010669,-0.14067,-0.25156,0.29987,0.10057,-0.0058139,-0.14667,-0.26804,0.32234,0.12904,-0.02829,-0.12719,-0.26804 0.30047,0.14762,-0.028212,-0.13711,-0.25799,0.2695,0.14062,-0.033208,-0.16708,-0.26198,0.28248,0.11565,-0.008232,-0.16108,-0.28296,0.32344,0.1616,-0.01023,-0.13311,-0.26198,0.28248,0.15361,-0.018222,-0.15809,-0.25799 0.2712,0.12414,-0.011614,-0.15113,-0.26803,0.28628,0.12791,-0.026697,-0.11343,-0.29066,0.31645,0.14676,-0.019156,-0.12474,-0.24163,0.29759,0.13545,-0.034239,-0.15868,-0.27934,0.30891,0.13545,-0.011614,-0.13605,-0.28311 0.27123,0.1292,-0.014852,-0.17108,-0.27659,0.29558,0.13935,-0.047315,-0.15485,-0.27253,0.28949,0.16775,-0.0087651,-0.14876,-0.24818,0.28949,0.14341,0.0034086,-0.15688,-0.26035,0.29761,0.16167,-0.022968,-0.1447,-0.26035 0.28777,0.1008,-0.0076943,-0.16235,-0.26391,0.32162,0.14388,-0.01385,-0.13157,-0.26699,0.27238,0.15312,-0.032316,-0.15004,-0.27469,0.28238,0.12003,-0.0084637,-0.16312,-0.26699,0.307,0.16081,-0.010772,-0.12696,-0.27007 0.27901,0.15822,-0.015663,-0.1338,-0.2745,0.27901,0.11044,-0.0076986,-0.15238,-0.27582,0.31617,0.14229,-0.0023892,-0.11521,-0.2798,0.28299,0.12902,-0.020972,-0.13512,-0.2745,0.31617,0.10645,-0.0023892,-0.15105,-0.27848 0.32168,0.12752,-0.037298,-0.14115,-0.26081,0.2991,0.11736,-0.012463,-0.16034,-0.25178,0.31039,0.15574,-0.016978,-0.14567,-0.23824,0.30362,0.12187,-0.041813,-0.14906,-0.26646,0.29797,0.11058,-0.01472,-0.16825,-0.26081 0.26711,0.16361,-0.028061,-0.13156,-0.25807,0.28245,0.13678,-0.012727,-0.16606,-0.26957,0.29778,0.12144,0.0026067,-0.13923,-0.29257,0.29011,0.15594,-0.0050601,-0.12006,-0.26573,0.29011,0.14828,-0.012727,-0.1699,-0.2849 0.3051,0.15491,-0.0060075,-0.14547,-0.25453,0.30331,0.12809,-0.0042196,-0.14904,-0.27956,0.31582,0.15133,-0.011371,-0.12938,-0.25632,0.28006,0.13166,-0.013159,-0.15798,-0.25811,0.26755,0.095906,-0.011371,-0.15798,-0.29923 0.28945,0.096155,-0.021944,-0.16881,-0.26773,0.31166,0.1547,-0.015888,-0.13298,-0.26975,0.28037,0.14158,-0.026991,-0.15115,-0.26773,0.29753,0.11029,-0.0047845,-0.16225,-0.25915,0.32277,0.13754,-0.0078127,-0.1249,-0.26016 0.29594,0.13445,-0.016279,-0.15624,-0.26821,0.26364,0.14952,-0.0055123,-0.16485,-0.27036,0.32824,0.12584,0.0074072,-0.12394,-0.27036,0.30025,0.13014,-0.033504,-0.13686,-0.27036,0.27226,0.14952,-0.011972,-0.16485,-0.2639 0.2916,0.13717,-0.01222,-0.13811,-0.28079,0.28153,0.13046,-0.037399,-0.13811,-0.30094,0.2765,0.15228,-0.032363,-0.15322,-0.26401,0.30671,0.15564,0.01128,-0.1314,-0.2489,0.28321,0.15228,-0.027327,-0.13811,-0.27576 0.27413,0.10356,-0.00057455,-0.14421,-0.28964,0.30465,0.15024,-0.00057455,-0.12805,-0.28426,0.27593,0.14127,-0.014938,-0.15319,-0.2663,0.27772,0.12152,-0.0041655,-0.15857,-0.28605,0.31184,0.16102,-0.0059609,-0.12267,-0.26271 0.2726,0.15638,-0.0018079,-0.15677,-0.26653,0.3178,0.14347,0.011105,-0.13094,-0.26976,0.28551,0.14992,-0.021178,-0.15031,-0.27622,0.26614,0.1467,-0.017949,-0.16645,-0.26976,0.29197,0.10796,0.0014205,-0.1374,-0.2859 0.32801,0.15016,-0.01302,-0.12439,-0.25908,0.28484,0.14498,-0.022517,-0.16066,-0.25476,0.28484,0.10353,-0.0087027,-0.1572,-0.28412,0.31938,0.13375,-0.0182,-0.13648,-0.25994,0.27448,0.13375,-0.032014,-0.16497,-0.26167 0.28196,0.15167,-0.026536,-0.13885,-0.27962,0.26548,0.12771,-0.020546,-0.15682,-0.27962,0.29543,0.11873,-0.0085659,-0.14784,-0.29759,0.31041,0.16964,-0.0085659,-0.11938,-0.25716,0.29094,0.14119,-0.0085659,-0.14784,-0.25566 0.27802,0.10402,-0.01972,-0.16666,-0.26784,0.31733,0.13495,-0.01972,-0.13186,-0.26848,0.27802,0.13882,-0.033898,-0.15119,-0.27041,0.29606,0.11626,-0.0055423,-0.15635,-0.25752,0.33409,0.14655,-0.0081201,-0.12412,-0.26268 0.29949,0.13169,-0.012618,-0.1737,-0.27774,0.27935,0.13169,-0.032754,-0.14014,-0.27774,0.28606,0.16525,-0.015974,-0.16028,-0.23076,0.29949,0.1384,0.0075173,-0.16028,-0.24754,0.29949,0.1384,-0.022686,-0.14686,-0.27774 0.29501,0.15849,-0.012157,-0.13567,-0.26082,0.29989,0.11786,-0.0024053,-0.15518,-0.26082,0.32589,0.15199,-0.00078011,-0.1243,-0.26894,0.27551,0.13249,-0.028409,-0.1503,-0.27707,0.28038,0.099984,-0.015407,-0.16493,-0.28032 0.30721,0.14428,0.01791,-0.14117,-0.25022,0.30849,0.12183,-0.0077489,-0.14887,-0.27652,0.26231,0.13402,-0.023786,-0.14438,-0.27717,0.30465,0.1276,0.0057219,-0.15015,-0.25856,0.30144,0.10643,-0.018012,-0.15914,-0.28615 0.30322,0.15285,-0.02222,-0.15576,-0.24666,0.28976,0.11806,-0.015487,-0.16923,-0.26462,0.30996,0.12816,-0.046909,-0.14903,-0.27472,0.30322,0.16295,-0.018853,-0.14454,-0.23993,0.29312,0.12479,-0.02222,-0.1625,-0.2534 0.30562,0.1199,-0.022286,-0.14706,-0.27619,0.27515,0.1199,-0.026639,-0.16447,-0.26894,0.29111,0.10104,-0.0034241,-0.14271,-0.28635,0.33028,0.14022,-0.0063259,-0.11805,-0.26604,0.29401,0.14747,-0.0019732,-0.13836,-0.25588 0.28856,0.15263,-0.024405,-0.13189,-0.27099,0.2696,0.13366,-0.0054375,-0.1635,-0.28996,0.30121,0.12102,-0.014921,-0.15718,-0.29312,0.30121,0.1716,-0.0054375,-0.13505,-0.25202,0.2696,0.14314,-0.0022761,-0.14454,-0.2615 0.29851,0.12796,0.011604,-0.15098,-0.24502,0.3017,0.10883,-0.020275,-0.15576,-0.27371,0.27938,0.13434,-0.039402,-0.15098,-0.26574,0.31445,0.14868,0.006822,-0.15257,-0.24661,0.31126,0.11043,-0.015493,-0.15576,-0.28168 0.27544,0.131,-0.018849,-0.16689,-0.268,0.27724,0.11475,-0.0080161,-0.15426,-0.28425,0.29168,0.12739,-0.035097,-0.1362,-0.28425,0.29891,0.1635,0.0064273,-0.13259,-0.24994,0.31877,0.13281,0.010038,-0.13078,-0.27883 0.28617,0.118,-0.02086,-0.12732,-0.29549,0.2692,0.13034,-0.014688,-0.15509,-0.28006,0.33091,0.12571,-0.00080229,-0.11806,-0.26772,0.3016,0.13188,-0.017774,-0.12269,-0.2816,0.28309,0.14731,-0.0085166,-0.14892,-0.26463 0.31794,0.13883,-0.027883,-0.12481,-0.26593,0.28925,0.14348,-0.044942,-0.14729,-0.26283,0.29623,0.10471,-0.027883,-0.16125,-0.25818,0.32182,0.1365,-0.025557,-0.12481,-0.25818,0.29623,0.1365,-0.044942,-0.14419,-0.26283 0.29382,0.11013,0.00051354,-0.14663,-0.25132,0.3195,0.11803,-0.033064,-0.14268,-0.26712,0.30567,0.15161,-0.0054119,-0.14762,-0.24243,0.29777,0.11408,-0.016275,-0.15849,-0.26613,0.31555,0.11803,-0.043927,-0.14861,-0.27502 0.30713,0.131,-0.011682,-0.13876,-0.2703,0.29598,0.13323,-0.040665,-0.12984,-0.26361,0.31159,0.15107,0.015071,-0.14099,-0.26361,0.31159,0.11094,-0.0094529,-0.14545,-0.28368,0.25139,0.12877,-0.011682,-0.16329,-0.27476 0.28668,0.14615,-0.018358,-0.15108,-0.25202,0.31234,0.106,-0.0099934,-0.15276,-0.27265,0.31401,0.17013,-0.016685,-0.13547,-0.25035,0.28111,0.13723,-0.022262,-0.1667,-0.25815,0.29561,0.106,-0.011109,-0.15945,-0.27823 0.2889,0.16149,0.0015989,-0.14705,-0.26696,0.27391,0.12151,-0.0021485,-0.16703,-0.2832,0.29389,0.13526,-0.023384,-0.1383,-0.29444,0.2814,0.17273,0.0053462,-0.13456,-0.25697,0.27641,0.13026,0.0090936,-0.16329,-0.27446 0.29736,0.15005,-0.025978,-0.16217,-0.25574,0.30106,0.11577,-0.01764,-0.1529,-0.27798,0.33442,0.15005,-0.024125,-0.12696,-0.24833,0.28624,0.14171,-0.025978,-0.15661,-0.25204,0.28902,0.10095,-0.024125,-0.14735,-0.26871 0.29133,0.16315,-0.041726,-0.1506,-0.26538,0.29509,0.12346,-0.018664,-0.16669,-0.25679,0.3219,0.15242,-0.021346,-0.13022,-0.26162,0.28061,0.15618,-0.037436,-0.14899,-0.26591,0.28597,0.12078,-0.010619,-0.15972,-0.25518 0.29057,0.13393,-0.017119,-0.1346,-0.28285,0.27379,0.13672,-0.0087271,-0.16816,-0.26607,0.32693,0.12833,0.024839,-0.11502,-0.27166,0.28497,0.14512,-0.014321,-0.14019,-0.27725,0.27938,0.13393,-0.028307,-0.16537,-0.26886 0.32656,0.15763,-0.01129,-0.11898,-0.25975,0.28292,0.14848,-0.026774,-0.14572,-0.26679,0.28503,0.10907,-0.018328,-0.16543,-0.26186,0.31389,0.14004,-0.022551,-0.13024,-0.26679,0.27166,0.1337,-0.038036,-0.1591,-0.27734 0.31441,0.12616,-0.024792,-0.1349,-0.2752,0.26468,0.12794,-0.035447,-0.15443,-0.2823,0.28777,0.10663,-0.010584,-0.15799,-0.25744,0.33394,0.14214,-0.0070326,-0.12424,-0.26809,0.29665,0.14392,-0.014136,-0.14023,-0.25744 0.29249,0.14338,0.016089,-0.13084,-0.28722,0.26994,0.1412,-0.025371,-0.13957,-0.28941,0.25903,0.13611,-0.022461,-0.16066,-0.27559,0.31286,0.13611,0.0059062,-0.12647,-0.27413,0.30195,0.13756,-0.01737,-0.13084,-0.27268 0.25947,0.12163,-0.021305,-0.16594,-0.27655,0.2918,0.11142,0.00081679,-0.14893,-0.29187,0.30711,0.16417,-0.0059898,-0.13361,-0.25443,0.28669,0.13865,-0.0059898,-0.15914,-0.26634,0.31392,0.12674,0.016132,-0.13872,-0.26974 0.29756,0.15004,0.00081394,-0.1518,-0.24845,0.29756,0.11782,0.0042053,-0.14671,-0.28406,0.31791,0.14325,-0.0042732,-0.12636,-0.26372,0.2823,0.13817,-0.016143,-0.1518,-0.26372,0.2823,0.090686,-0.011056,-0.15858,-0.29593 0.30942,0.16164,0.012842,-0.13392,-0.23686,0.29617,0.12393,-0.0065228,-0.15227,-0.27355,0.30331,0.1168,-0.039137,-0.14004,-0.27049,0.29108,0.1433,-0.0085611,-0.1543,-0.25826,0.28292,0.1117,-0.018753,-0.16653,-0.29393 0.27713,0.10819,-0.007492,-0.1599,-0.29946,0.28631,0.16144,-0.014837,-0.13603,-0.26273,0.27713,0.13574,-0.022182,-0.15256,-0.27742,0.29366,0.12839,-0.0001469,-0.14154,-0.28844,0.30467,0.16879,-0.0056557,-0.12501,-0.24804 0.26379,0.14201,-0.011656,-0.16533,-0.26246,0.28989,0.14636,-5.7989e-05,-0.15518,-0.2842,0.28119,0.17391,-0.011656,-0.12618,-0.26536,0.27394,0.15361,-0.013105,-0.17547,-0.26101,0.29713,0.13912,0.0057409,-0.15518,-0.27985 0.28538,0.1111,-0.021734,-0.16387,-0.2936,0.29583,0.16261,-0.017474,-0.12824,-0.26688,0.27376,0.13899,-0.017861,-0.15612,-0.26727,0.30087,0.11536,-0.0066302,-0.14644,-0.28547,0.29932,0.16765,-0.012439,-0.11855,-0.24829 0.31104,0.14616,-0.027629,-0.14795,-0.27718,0.28431,0.11943,-0.054366,-0.14795,-0.27272,0.29767,0.14171,-0.027629,-0.12567,-0.28163,0.29767,0.14616,-0.036541,-0.13458,-0.25935,0.29322,0.15062,-0.0098037,-0.14795,-0.23707 0.31526,0.14269,0.017921,-0.13925,-0.24215,0.30878,0.12081,-0.012056,-0.1506,-0.27375,0.26746,0.13459,-0.028259,-0.14412,-0.27375,0.30473,0.1273,0.0017176,-0.15222,-0.25592,0.29581,0.10947,-0.021778,-0.16356,-0.28914 0.29795,0.12953,-0.02645,-0.16234,-0.29057,0.28456,0.17068,0.0070431,-0.13841,-0.25612,0.27499,0.12762,0.0041723,-0.16234,-0.27525,0.28264,0.13336,-0.020708,-0.14224,-0.28865,0.27977,0.16877,0.0003445,-0.1432,-0.25516 0.27688,0.13733,-0.023246,-0.12839,-0.2775,0.27211,0.16505,-0.0012617,-0.14368,-0.24787,0.2788,0.14498,-0.0012617,-0.14942,-0.27367,0.296,0.1488,-0.020378,-0.16184,-0.29279,0.27784,0.16792,-0.0012617,-0.16949,-0.27367 0.31065,0.14448,-0.0052591,-0.12578,-0.27369,0.2723,0.15178,-0.0089112,-0.14952,-0.29013,0.27413,0.12074,-0.0070851,-0.16413,-0.26456,0.29422,0.16274,-0.003433,-0.1203,-0.27187,0.26683,0.15178,-0.025346,-0.155,-0.28465 0.34146,0.14292,-0.015915,-0.13186,-0.27084,0.30175,0.11592,-0.02068,-0.16442,-0.25575,0.29222,0.13974,-0.046093,-0.14933,-0.26131,0.30175,0.14292,-0.027033,-0.13186,-0.26369,0.27236,0.11909,-0.02068,-0.15648,-0.25416 0.29707,0.11718,-0.016698,-0.15813,-0.28034,0.28608,0.12542,-0.010518,-0.1753,-0.2673,0.34101,0.1213,0.012139,-0.13479,-0.26524,0.29913,0.1268,-0.017384,-0.14303,-0.26043,0.28059,0.13366,-0.011205,-0.15676,-0.24327 0.31446,0.14506,-0.011611,-0.10466,-0.25815,0.29617,0.12995,-0.021155,-0.15635,-0.26531,0.29458,0.095753,-0.012407,-0.15556,-0.27485,0.31366,0.14029,-0.014792,-0.12931,-0.26451,0.28662,0.12836,-0.033879,-0.17624,-0.2661 0.27805,0.15055,-0.016532,-0.15723,-0.27594,0.29124,0.14175,0.0010552,-0.15283,-0.30232,0.27805,0.13736,-0.025325,-0.13964,-0.24516,0.27366,0.15055,0.0098488,-0.14844,-0.25396,0.30004,0.13736,0.005452,-0.13524,-0.30232 0.31598,0.1278,-0.014386,-0.14402,-0.27784,0.28253,0.16543,0.0023418,-0.16075,-0.24857,0.27416,0.1278,0.0023418,-0.16911,-0.27784,0.28671,0.11943,-0.0060219,-0.1273,-0.29039,0.27416,0.15289,0.0065237,-0.14402,-0.27784 0.31535,0.13348,-0.01281,-0.1446,-0.27244,0.25473,0.16775,-0.02599,-0.13933,-0.27508,0.29427,0.1572,0.01223,-0.15251,-0.25136,0.30613,0.12294,-0.01281,-0.15383,-0.26981,0.27318,0.13875,-0.029943,-0.16437,-0.27113 0.28724,0.10544,-0.013051,-0.16076,-0.27439,0.31809,0.15414,-0.029283,-0.1283,-0.25816,0.28562,0.13791,-0.02279,-0.1705,-0.25491,0.28887,0.10869,-0.0098042,-0.15589,-0.27763,0.31971,0.14927,-0.01792,-0.13317,-0.24842 0.26621,0.1447,-0.012669,-0.17004,-0.26566,0.30207,0.13872,0.0072509,-0.12223,-0.26167,0.28613,0.14669,-0.024621,-0.13817,-0.27761,0.26821,0.15466,-0.028605,-0.17601,-0.26964,0.30605,0.15068,0.0032669,-0.15809,-0.26964 0.29104,0.12896,-0.030607,-0.15876,-0.24672,0.31115,0.10383,-0.01553,-0.15374,-0.26933,0.3124,0.15409,-0.023068,-0.13489,-0.24169,0.30361,0.12394,-0.034376,-0.16128,-0.24923,0.32245,0.11011,-0.020555,-0.15248,-0.26933 0.28616,0.14616,-0.02184,-0.14784,-0.29624,0.27776,0.13216,-0.02184,-0.16464,-0.28224,0.32536,0.13216,0.00056001,-0.14784,-0.25144,0.31136,0.12376,-0.01624,-0.14224,-0.25984,0.26376,0.15456,-0.0050401,-0.15344,-0.24304 0.28427,0.12534,-0.048661,-0.1619,-0.2698,0.29058,0.10541,-0.022901,-0.17017,-0.26203,0.32947,0.13943,-0.020471,-0.12934,-0.263,0.29933,0.15061,-0.025332,-0.14295,-0.25328,0.31197,0.12777,0.0023718,-0.15218,-0.24453 0.31631,0.1167,-0.00046287,-0.15162,-0.25793,0.32354,0.12104,-0.032285,-0.13354,-0.27167,0.30257,0.14852,-0.010588,-0.13715,-0.24202,0.28811,0.10802,-0.014204,-0.15885,-0.26227,0.30402,0.10802,-0.040964,-0.14294,-0.28035 0.3058,0.10989,0.0097523,-0.14045,-0.258,0.2775,0.12513,-0.025077,-0.13174,-0.29065,0.27097,0.12948,-0.0098393,-0.1361,-0.26671,0.32104,0.12948,0.0097523,-0.13174,-0.28195,0.30363,0.13383,-0.0229,-0.1361,-0.29501 0.27079,0.13002,-0.037457,-0.16988,-0.26391,0.32198,0.12668,-0.0096368,-0.14095,-0.26391,0.29694,0.12724,-0.041908,-0.1454,-0.26614,0.27969,0.14226,-0.027442,-0.1582,-0.25111,0.337,0.13558,-0.0046292,-0.13038,-0.25723 0.2867,0.14133,-0.024228,-0.14941,-0.25843,0.29477,0.12922,0.0080759,-0.15344,-0.26651,0.30689,0.15344,-0.016152,-0.12114,-0.27054,0.27054,0.16152,-0.024228,-0.18171,-0.25035,0.2867,0.12922,0,-0.16556,-0.2867 0.27855,0.12939,-0.013609,-0.15414,-0.28111,0.29211,0.099801,0.0048816,-0.14921,-0.3033,0.31923,0.13802,0.0024161,-0.11346,-0.26139,0.29087,0.13678,-0.016075,-0.14428,-0.25522,0.2995,0.11829,-4.9309e-05,-0.13688,-0.28111 0.32987,0.13441,0.016672,-0.12697,-0.26591,0.28512,0.13441,-0.025715,-0.1411,-0.28239,0.26393,0.13441,-0.021005,-0.16936,-0.26355,0.30632,0.13441,0.0072529,-0.13168,-0.26826,0.28512,0.12029,-0.025715,-0.14581,-0.28475 0.2981,0.12093,-0.0099119,-0.15929,-0.26118,0.25873,0.13946,-0.028439,-0.15929,-0.26118,0.31199,0.14294,0.02251,-0.16392,-0.25308,0.32126,0.12788,-0.00064844,-0.1616,-0.26582,0.2842,0.14294,-0.024965,-0.15697,-0.26466 0.28903,0.14307,-0.028485,-0.15612,-0.25122,0.33958,0.13043,-0.0057374,-0.13211,-0.25722,0.29693,0.11779,-0.033855,-0.14096,-0.26701,0.27418,0.1298,-0.036699,-0.16876,-0.26196,0.31778,0.12,-0.011108,-0.13875,-0.26859 0.3064,0.10817,0.0068951,-0.13963,-0.2883,0.32148,0.15126,0.0025857,-0.1267,-0.26029,0.26762,0.13402,-0.023271,-0.16333,-0.26029,0.2827,0.1017,-0.0060332,-0.16333,-0.27968,0.30209,0.1448,-0.016807,-0.13532,-0.26675 0.30083,0.13895,0.021882,-0.13999,-0.26429,0.30083,0.12089,-0.0034109,-0.14216,-0.29175,0.26253,0.13678,-0.025091,-0.12915,-0.28669,0.29721,0.13317,0.015378,-0.13349,-0.26646,0.29143,0.11583,-0.0091922,-0.14939,-0.29464 0.28333,0.13271,-0.048859,-0.15409,-0.27582,0.29984,0.11414,-0.0096562,-0.16028,-0.25931,0.33285,0.1389,0.00066025,-0.12107,-0.27376,0.28952,0.14096,-0.026162,-0.13345,-0.25312,0.30809,0.10589,-0.015846,-0.15615,-0.25931 0.27698,0.14662,-0.0030968,-0.13972,-0.28773,0.26673,0.14263,-0.016759,-0.1363,-0.29114,0.25705,0.15288,-0.0099279,-0.16647,-0.27691,0.30487,0.15174,0.015689,-0.13858,-0.27862,0.2895,0.14434,-0.0030968,-0.1215,-0.27919 0.30671,0.15281,-0.032745,-0.14299,-0.24886,0.28925,0.12334,-0.025104,-0.17027,-0.25323,0.30999,0.10806,-0.024013,-0.15936,-0.27178,0.31981,0.15281,-0.02947,-0.13971,-0.24559,0.29361,0.12989,-0.030562,-0.16482,-0.24777 0.30126,0.14098,-0.031455,-0.16843,-0.24129,0.29981,0.13126,-0.021741,-0.16746,-0.26217,0.31001,0.15555,-0.026112,-0.15386,-0.23789,0.30224,0.13078,-0.028055,-0.16649,-0.23983,0.30661,0.11135,-0.019312,-0.16649,-0.25926 0.26866,0.13572,-0.0064924,-0.15489,-0.28319,0.29958,0.14964,-0.046684,-0.13943,-0.25692,0.2903,0.16819,-0.018859,-0.14716,-0.25073,0.28721,0.14809,-0.01113,-0.14716,-0.27701,0.29649,0.15118,-0.04823,-0.13634,-0.27083 0.31512,0.1624,-0.0052147,-0.12068,-0.25478,0.28532,0.1475,-0.020114,-0.17656,-0.26595,0.28532,0.10653,-0.020114,-0.15421,-0.2734,0.2965,0.14005,-0.027564,-0.13186,-0.26968,0.27787,0.15868,-0.027564,-0.16538,-0.26223 0.30952,0.13387,0.013938,-0.12205,-0.26747,0.2963,0.13198,0.0035507,-0.1636,-0.29014,0.2623,0.13765,-0.001171,-0.16926,-0.26181,0.30007,0.15559,-0.020058,-0.13149,-0.27125,0.26513,0.13481,-0.006837,-0.15699,-0.28258 0.28886,0.16131,0.0054257,-0.14034,-0.25979,0.31315,0.12892,-0.00064784,-0.15249,-0.28205,0.30505,0.15726,-0.0046969,-0.13022,-0.25371,0.26861,0.13499,-0.012795,-0.16463,-0.26181,0.27266,0.10665,-0.016844,-0.17071,-0.29218 0.31304,0.17042,-0.0069512,-0.15077,-0.25144,0.28907,0.11529,-0.015341,-0.16994,-0.26223,0.31664,0.12968,-0.035715,-0.15077,-0.27421,0.29147,0.15604,-0.016539,-0.14597,-0.24665,0.27829,0.1105,-0.020134,-0.16515,-0.25863 0.28071,0.11997,-0.011168,-0.15499,-0.28613,0.29763,0.17496,-0.015398,-0.1423,-0.26498,0.27648,0.11997,-0.0027073,-0.13384,-0.25229,0.28917,0.10728,-0.023858,-0.12538,-0.29459,0.31879,0.14958,-0.0069375,-0.14653,-0.27344 0.26743,0.10729,-0.0057461,-0.17059,-0.29069,0.29333,0.12849,-0.024586,-0.14233,-0.29069,0.29569,0.1591,-0.0057461,-0.13056,-0.25301,0.28391,0.14026,0.015448,-0.1494,-0.26243,0.30982,0.14497,-0.019876,-0.12114,-0.27892 0.30451,0.14171,-0.014217,-0.12887,-0.28938,0.26782,0.12566,-0.011924,-0.1518,-0.26186,0.32056,0.13483,0.011006,-0.11052,-0.2825,0.29993,0.12336,-0.011924,-0.13345,-0.29167,0.26324,0.12795,-0.0004586,-0.15638,-0.27562 0.30996,0.14846,0.018656,-0.14586,-0.2485,0.30694,0.11978,-0.01455,-0.14888,-0.27567,0.26015,0.14242,-0.032662,-0.14435,-0.28019,0.29939,0.13035,0.0095994,-0.15643,-0.25303,0.30241,0.11223,-0.022097,-0.15794,-0.28019 0.30166,0.14617,-0.016774,-0.15573,-0.2525,0.30001,0.10646,-0.016774,-0.16234,-0.26408,0.3273,0.15857,-0.02339,-0.13009,-0.2525,0.28512,0.14203,-0.032489,-0.1458,-0.24836,0.29422,0.1015,-0.021736,-0.15573,-0.28476 0.27467,0.11455,-0.02005,-0.17437,-0.2672,0.30136,0.12615,-0.040936,-0.15465,-0.27184,0.31064,0.16676,-0.0061264,-0.15,-0.23935,0.30368,0.12615,-0.0061264,-0.15929,-0.25559,0.3118,0.13543,-0.030493,-0.14536,-0.24979 0.33022,0.15057,0.0095367,-0.12646,-0.25742,0.28153,0.1405,-0.017327,-0.15836,-0.24903,0.30336,0.12371,-0.032438,-0.1315,-0.27589,0.30672,0.12035,-0.00053728,-0.15333,-0.26918,0.26139,0.13042,-0.039154,-0.16844,-0.27925 0.31177,0.12794,-0.0054094,-0.1414,-0.25554,0.31705,0.12794,-0.040443,-0.14291,-0.25366,0.30537,0.15243,-0.011437,-0.15082,-0.24009,0.29633,0.114,-0.023491,-0.16136,-0.26571,0.30311,0.11589,-0.058524,-0.15835,-0.2627 0.30619,0.15931,0.0078486,-0.13673,-0.25148,0.29012,0.13694,-0.035755,-0.14361,-0.275,0.26602,0.14784,-0.052966,-0.13845,-0.27041,0.29643,0.14382,-0.026575,-0.15165,-0.2532,0.30733,0.13636,-0.032886,-0.15165,-0.27787 0.29215,0.12651,0.019167,-0.13605,-0.25072,0.30257,0.11376,-0.0067029,-0.13605,-0.282,0.27323,0.13037,-0.023692,-0.13257,-0.27775,0.30566,0.12728,0.0064249,-0.14647,-0.26424,0.31184,0.11531,-0.015583,-0.14454,-0.30787 0.31236,0.15569,-0.0009724,-0.11712,-0.27919,0.27994,0.14759,-0.025282,-0.14953,-0.27108,0.26374,0.13138,-0.014478,-0.14953,-0.26568,0.30695,0.14489,-0.0036735,-0.12522,-0.27108,0.26374,0.15299,-0.036087,-0.15494,-0.29539 0.27317,0.10594,-0.020178,-0.16,-0.30531,0.30607,0.14432,-0.014695,-0.14629,-0.26418,0.27317,0.13609,-0.020178,-0.14629,-0.26692,0.29511,0.11964,0.0044962,-0.13533,-0.28611,0.31156,0.16077,0.0072379,-0.11888,-0.25322 0.26604,0.10684,-0.01477,-0.16512,-0.28894,0.30362,0.12674,-0.01477,-0.12532,-0.28673,0.2793,0.14222,-0.010348,-0.15628,-0.27789,0.28815,0.12232,-0.0037146,-0.14301,-0.2602,0.32795,0.1599,0.0029186,-0.1209,-0.25799 0.27735,0.1029,-0.0048893,-0.15379,-0.29824,0.30625,0.14512,-0.0060005,-0.12712,-0.26491,0.27513,0.13623,-0.011556,-0.15935,-0.26935,0.2818,0.11179,-0.0015557,-0.15268,-0.28824,0.31958,0.15957,-0.0026669,-0.11712,-0.25824 0.28721,0.11542,-0.041812,-0.15246,-0.28639,0.28721,0.14745,0.01351,-0.14663,-0.2631,0.28721,0.11542,-0.012695,-0.14954,-0.28639,0.30468,0.13289,-0.018518,-0.14081,-0.28639,0.29303,0.15909,0.022245,-0.14081,-0.23981 0.32509,0.12214,0.0061697,-0.15967,-0.25709,0.30654,0.13374,-0.032101,-0.14575,-0.27332,0.28102,0.16969,-0.0089066,-0.15503,-0.23621,0.28566,0.11866,-0.011226,-0.15851,-0.26056,0.2903,0.12794,-0.040219,-0.14923,-0.27912 0.26101,0.13288,-0.031527,-0.16934,-0.27088,0.30937,0.13046,0.002321,-0.12823,-0.26846,0.2997,0.12079,-0.017021,-0.13791,-0.2733,0.27794,0.13771,-0.024274,-0.16934,-0.26121,0.32871,0.13529,0.014409,-0.1234,-0.27571 0.31991,0.13407,-0.014791,-0.1115,-0.25562,0.27345,0.13786,-0.028065,-0.13521,-0.267,0.28103,0.10088,-0.0091022,-0.15227,-0.26605,0.3218,0.14165,-0.0091022,-0.13236,-0.28596,0.28672,0.14545,-0.031858,-0.15701,-0.28691 0.30498,0.1241,0.014471,-0.13352,-0.2733,0.28305,0.11861,-0.02938,-0.1253,-0.287,0.26935,0.14602,-0.015676,-0.16915,-0.25959,0.31046,0.12958,0.01173,-0.12804,-0.2733,0.30224,0.12958,-0.023898,-0.13626,-0.28974 0.27143,0.13485,-0.016274,-0.16739,-0.26136,0.32278,0.13097,-0.00077497,-0.14318,-0.26427,0.31987,0.12031,-0.043399,-0.14608,-0.27008,0.27725,0.12903,-0.031774,-0.1703,-0.24974,0.32278,0.12903,-0.007556,-0.14027,-0.24586 0.29398,0.11678,-0.049269,-0.15212,-0.26117,0.2853,0.13165,-0.035638,-0.16947,-0.25497,0.33363,0.13289,-0.0071376,-0.14468,-0.24877,0.31009,0.14032,-0.029442,-0.13849,-0.25869,0.29522,0.14776,-0.025725,-0.16575,-0.2463 0.3184,0.10535,-0.039653,-0.1521,-0.26751,0.30657,0.1379,-0.0041428,-0.16098,-0.24087,0.29473,0.099427,-0.015979,-0.16098,-0.26159,0.31249,0.11718,-0.015979,-0.1521,-0.26159,0.31249,0.1379,-0.010061,-0.15802,-0.24087 0.29406,0.10433,-0.037339,-0.14865,-0.28272,0.289,0.15492,-0.019631,-0.14865,-0.24098,0.29279,0.11571,-0.013306,-0.16383,-0.27007,0.31682,0.13342,-0.038604,-0.14106,-0.26628,0.30291,0.1701,-0.012042,-0.14865,-0.24225 0.30438,0.14367,-0.0095681,-0.14786,-0.29362,0.27448,0.15115,0.0016445,-0.14412,-0.24877,0.27448,0.12498,-0.002093,-0.15907,-0.29362,0.2857,0.14367,-0.0058306,-0.12169,-0.3011,0.27822,0.15115,0.0016445,-0.15907,-0.24877 0.26665,0.13845,-0.0075494,-0.19628,-0.26038,0.28089,0.13133,0.0031337,-0.15711,-0.27819,0.30226,0.16694,0.0066947,-0.13575,-0.27107,0.29158,0.13489,0.0031337,-0.16423,-0.27819,0.28445,0.13845,-0.0075494,-0.12862,-0.26394 0.26312,0.14867,-0.0021073,-0.15289,-0.27641,0.294,0.13959,0.025142,-0.12745,-0.27823,0.28855,0.13414,-0.020273,-0.1329,-0.29276,0.26493,0.13959,-0.01664,-0.1656,-0.28368,0.30127,0.13959,0.021509,-0.1329,-0.27823 0.27005,0.13539,0.00073147,-0.15554,-0.26692,0.27503,0.10879,0.00073147,-0.15554,-0.29518,0.30163,0.12209,-0.02088,-0.12894,-0.28687,0.30163,0.15534,0.015693,-0.14556,-0.25362,0.30662,0.12209,0.015693,-0.14058,-0.28188 0.30341,0.13651,-0.0036941,-0.1272,-0.26629,0.30341,0.12872,-0.038188,-0.12053,-0.28854,0.2678,0.13984,-0.03485,-0.15502,-0.26406,0.31009,0.13651,-0.014821,-0.12832,-0.26406,0.30341,0.13317,-0.049315,-0.12832,-0.27964 0.27856,0.12398,-0.020557,-0.15707,-0.28956,0.26049,0.14004,-0.0044968,-0.1651,-0.26346,0.31068,0.13603,0.025616,-0.14101,-0.26949,0.30466,0.128,-0.0065043,-0.14101,-0.28354,0.28257,0.15209,0.019593,-0.16309,-0.25744 0.29744,0.10688,-0.022867,-0.16072,-0.29046,0.31365,0.14742,0.0014596,-0.12828,-0.25803,0.28122,0.13526,-0.026922,-0.14856,-0.29046,0.265,0.12715,-0.0025949,-0.13639,-0.25803,0.29744,0.15958,0.0014596,-0.12828,-0.28235 0.29187,0.12681,0.012977,-0.1388,-0.25643,0.32032,0.1363,0.0015937,-0.11034,-0.28109,0.27669,0.14388,-0.026864,-0.1388,-0.2754,0.27669,0.11353,-0.004098,-0.16536,-0.28678,0.30135,0.11922,-0.011687,-0.13121,-0.29437 0.28427,0.18037,0.0063378,-0.13393,-0.2664,0.26868,0.144,-0.004052,-0.16509,-0.27159,0.27907,0.12582,0.0011429,-0.1573,-0.29757,0.28946,0.1518,-0.009247,-0.12094,-0.27159,0.27388,0.1518,-0.019637,-0.1625,-0.27679 0.25887,0.1318,-0.026485,-0.14687,-0.28732,0.29677,0.12957,0.015873,-0.1647,-0.25834,0.30123,0.12065,0.0024969,-0.15133,-0.28955,0.27225,0.14295,-0.017567,-0.14241,-0.2784,0.31015,0.15186,0.029249,-0.14241,-0.25834 0.33955,0.11748,-0.00056057,-0.14016,-0.2733,0.28458,0.13743,-0.020504,-0.13531,-0.27007,0.30991,0.13743,0.012915,-0.14609,-0.25282,0.29805,0.10562,-0.01188,-0.14609,-0.27923,0.26355,0.12826,-0.039369,-0.13963,-0.27977 0.28798,0.12839,-0.019102,-0.13033,-0.29837,0.2638,0.15015,-0.00096717,-0.16539,-0.27178,0.30369,0.14774,0.023212,-0.13154,-0.26936,0.28314,0.13927,-0.007012,-0.13154,-0.29112,0.2638,0.15983,-0.008221,-0.14725,-0.27903 0.25926,0.11895,-0.017988,-0.16676,-0.28341,0.3066,0.12402,0.0073708,-0.13633,-0.27157,0.3066,0.11388,-0.017988,-0.13126,-0.28341,0.27955,0.13754,-0.012916,-0.14478,-0.27157,0.33027,0.12909,0.017514,-0.13126,-0.26143 0.34026,0.12626,-0.03096,-0.1356,-0.25706,0.30556,0.14992,-0.0036176,-0.14611,-0.24391,0.29977,0.11153,-0.0094015,-0.15663,-0.27283,0.29557,0.11259,-0.042527,-0.15242,-0.27178,0.27664,0.13625,-0.016237,-0.16136,-0.2539 0.2977,0.12614,0.0028308,-0.13549,-0.27703,0.31915,0.15295,0.00068625,-0.10868,-0.2588,0.27733,0.14115,-0.015398,-0.15479,-0.26845,0.2709,0.10255,-0.013253,-0.16015,-0.30169,0.29877,0.13579,-0.022903,-0.13227,-0.27703 0.27069,0.14926,0.0091367,-0.15211,-0.27711,0.28782,0.15348,-0.013994,-0.12075,-0.28356,0.28026,0.15882,0.0042436,-0.14744,-0.26132,0.25824,0.15415,0.0035764,-0.15967,-0.28111,0.2807,0.15704,-0.020889,-0.157,-0.29245 0.27716,0.10472,-0.019478,-0.16244,-0.29646,0.30933,0.1476,-0.016798,-0.13474,-0.2634,0.27716,0.15118,-0.019478,-0.16958,-0.25447,0.28073,0.12348,-0.00071479,-0.15529,-0.28216,0.31201,0.16011,0.0028592,-0.11866,-0.25268 0.30932,0.16215,0.017141,-0.13003,-0.26205,0.28335,0.15349,-0.019652,-0.156,-0.26421,0.2682,0.12968,-0.00017314,-0.14734,-0.29235,0.30715,0.14267,-0.010994,-0.12787,-0.27071,0.25954,0.13401,-0.034801,-0.17331,-0.2772 0.29734,0.15803,0.0027863,-0.13852,-0.25396,0.2854,0.11822,0.014728,-0.14648,-0.28779,0.32322,0.15604,-0.0071649,-0.13852,-0.2659,0.27147,0.13414,-0.011145,-0.15444,-0.26789,0.2655,0.11026,-0.0031844,-0.17037,-0.29177 0.32797,0.1194,-0.036624,-0.14255,-0.26573,0.30908,0.1506,0.0019708,-0.14912,-0.24356,0.29923,0.10133,-0.013631,-0.15898,-0.27148,0.30826,0.1194,-0.043193,-0.14912,-0.26573,0.28445,0.13171,-0.011989,-0.15569,-0.24602 0.28124,0.12488,0.015428,-0.15657,-0.28166,0.3073,0.12488,-0.026269,-0.15657,-0.2556,0.31252,0.14573,-0.026269,-0.15136,-0.28166,0.26561,0.12488,-0.015845,-0.15136,-0.26081,0.30209,0.13009,0.036276,-0.13572,-0.27124 0.296,0.14718,-0.03353,-0.15046,-0.24006,0.27778,0.1244,-0.036568,-0.16109,-0.25069,0.31119,0.11074,-0.024419,-0.16109,-0.27043,0.32182,0.15781,-0.018345,-0.14135,-0.24461,0.3036,0.13959,-0.027456,-0.16868,-0.26132 0.28985,0.14569,-0.038506,-0.13621,-0.27396,0.26743,0.16331,-0.028895,-0.16024,-0.26595,0.30747,0.1553,0.0015377,-0.13781,-0.26595,0.28344,0.1537,-0.030497,-0.14903,-0.26915,0.27063,0.16652,-0.022488,-0.16825,-0.25794 0.30641,0.13644,-0.010081,-0.10972,-0.30899,0.27711,0.13058,-0.015942,-0.1273,-0.27383,0.27125,0.13644,0.019224,-0.14488,-0.27383,0.29469,0.13644,-0.015942,-0.1273,-0.29141,0.28297,0.15403,-0.033525,-0.13902,-0.27383 0.31011,0.12684,-0.031157,-0.13385,-0.27289,0.30063,0.15844,-0.016937,-0.14649,-0.24919,0.29747,0.12842,-0.013777,-0.17493,-0.25709,0.30221,0.11736,-0.054856,-0.15597,-0.26499,0.29905,0.1458,-0.023257,-0.15755,-0.23339 0.2857,0.10898,-0.041779,-0.14421,-0.27188,0.27344,0.12917,-0.034566,-0.16513,-0.26034,0.34196,0.1299,-0.010041,-0.12762,-0.25818,0.31095,0.13567,-0.028074,-0.13339,-0.269,0.29796,0.15226,-0.016533,-0.15214,-0.25313 0.29151,0.15102,-0.012042,-0.12493,-0.27294,0.28147,0.146,-0.032111,-0.15754,-0.288,0.27646,0.10587,0.015554,-0.15754,-0.26291,0.3191,0.15102,0.015554,-0.12995,-0.27294,0.27395,0.13597,-0.022076,-0.15253,-0.27796 0.29733,0.15683,0.0083771,-0.14008,-0.24082,0.31324,0.12502,-0.0075288,-0.14803,-0.27263,0.31324,0.11442,-0.026086,-0.14538,-0.26202,0.28938,0.13828,-0.015482,-0.14803,-0.25142,0.29733,0.087907,-0.026086,-0.16659,-0.29118 0.27454,0.14768,-0.037013,-0.15268,-0.27021,0.30812,0.15141,0.011492,-0.15268,-0.25902,0.32864,0.11783,-0.016492,-0.15081,-0.27394,0.25588,0.14955,-0.033282,-0.14708,-0.26648,0.282,0.15141,0.00029849,-0.16014,-0.25902 0.30347,0.16229,0.010252,-0.13744,-0.24604,0.28826,0.12537,0.0059078,-0.15916,-0.26776,0.3013,0.11885,-0.044048,-0.13744,-0.28948,0.28826,0.16012,-0.0049521,-0.15482,-0.24821,0.28175,0.11451,-0.017984,-0.16785,-0.28514 0.27442,0.12685,-0.022404,-0.16942,-0.26109,0.28169,0.097779,-0.014019,-0.15992,-0.28569,0.32752,0.15088,-0.0073116,-0.12526,-0.25383,0.29622,0.14921,-0.015137,-0.16271,-0.25159,0.30852,0.12349,0.0077812,-0.14594,-0.27004 0.28337,0.099937,-0.011669,-0.15864,-0.28019,0.32315,0.14193,-0.011669,-0.1288,-0.25698,0.28337,0.13088,-0.021614,-0.15974,-0.25477,0.28668,0.10436,-0.0072489,-0.1498,-0.2835,0.3342,0.14193,-0.020509,-0.1288,-0.25588 0.28247,0.13933,-0.011158,-0.16899,-0.28644,0.29716,0.13199,0.018205,-0.13595,-0.2791,0.28247,0.13566,-0.011158,-0.13962,-0.30112,0.26045,0.12465,0.014535,-0.15797,-0.27176,0.29716,0.15401,0.010864,-0.12127,-0.26442 0.27374,0.12337,-0.033991,-0.14589,-0.26479,0.27724,0.11988,-0.013009,-0.17037,-0.27179,0.34019,0.14785,-0.013009,-0.12491,-0.27179,0.30522,0.12687,-0.026997,-0.12841,-0.27878,0.30172,0.11288,0.014967,-0.1389,-0.2613 0.29562,0.16328,-0.035237,-0.12622,-0.27097,0.26667,0.12606,0.0061209,-0.17999,-0.27097,0.28735,0.12192,-0.010422,-0.13449,-0.29165,0.29976,0.15914,-0.0021506,-0.16345,-0.24616,0.28735,0.13847,0.0061209,-0.15517,-0.27097 0.31524,0.12818,0.014504,-0.1337,-0.24738,0.30516,0.12098,-0.034419,-0.14378,-0.27184,0.27207,0.12674,-0.025785,-0.16536,-0.25889,0.32099,0.11811,0.0029929,-0.13946,-0.26464,0.31092,0.11379,-0.040174,-0.14665,-0.2776 0.26229,0.13911,-0.032468,-0.17985,-0.28103,0.29089,0.11051,0.0093268,-0.15565,-0.29203,0.31069,0.15231,-0.0060712,-0.11826,-0.26344,0.28209,0.15231,-0.01267,-0.14905,-0.25244,0.30409,0.13031,0.0093268,-0.14465,-0.26564 0.28282,0.15241,-0.011251,-0.14934,-0.26697,0.30584,0.093592,-0.02148,-0.15445,-0.26185,0.31351,0.11661,-0.062395,-0.13911,-0.26185,0.30584,0.14985,-0.016366,-0.14934,-0.24907,0.31095,0.12939,-0.0086943,-0.14678,-0.26185 0.30673,0.15172,-0.020607,-0.13458,-0.27682,0.28029,0.15446,-0.025166,-0.17197,-0.26953,0.30308,0.14717,0.027719,-0.14644,-0.25403,0.27938,0.13166,-0.025166,-0.15282,-0.26679,0.26844,0.14078,-0.0069297,-0.18382,-0.25676 0.31614,0.13791,0.01384,-0.12246,-0.26924,0.29867,0.14315,-0.026351,-0.12246,-0.28148,0.26896,0.13092,-0.015867,-0.17488,-0.26575,0.31265,0.13441,-0.0053821,-0.13993,-0.27973,0.25324,0.13441,-0.012372,-0.14343,-0.28497 0.29548,0.097436,-0.032191,-0.15462,-0.29505,0.27207,0.13524,-0.03039,-0.14381,-0.28424,0.30628,0.13524,0.014619,-0.14381,-0.25004,0.31708,0.12624,0.0020164,-0.14021,-0.26624,0.29008,0.15505,-0.019588,-0.12041,-0.26624 0.28259,0.16285,-0.0086732,-0.1446,-0.27405,0.31172,0.14343,0.020453,-0.1446,-0.2611,0.29877,0.11754,-0.015146,-0.14136,-0.29994,0.2567,0.12725,-0.024855,-0.13489,-0.28699,0.28906,0.13049,0.013981,-0.15754,-0.2611 0.31488,0.10983,-0.040486,-0.14918,-0.27945,0.28251,0.1399,-0.0019426,-0.15149,-0.2571,0.28867,0.10212,-0.0050261,-0.15535,-0.27791,0.32028,0.11292,-0.033548,-0.13993,-0.26943,0.30795,0.153,0.006537,-0.13916,-0.2386 0.29103,0.15122,-0.01712,-0.13696,-0.28247,0.29959,0.12554,0.011413,-0.15978,-0.26535,0.32527,0.14552,0,-0.11413,-0.26535,0.27677,0.14266,-0.045652,-0.14266,-0.26821,0.28533,0.097011,-0.02568,-0.15408,-0.27391 0.27216,0.13136,-0.030148,-0.15438,-0.29518,0.29701,0.15621,-0.0053007,-0.13782,-0.25377,0.25974,0.12722,0.0029817,-0.17095,-0.2869,0.29701,0.1355,-0.0094419,-0.12954,-0.29104,0.29701,0.16035,0.011264,-0.12125,-0.26205 0.25868,0.11407,-0.012787,-0.1574,-0.2944,0.29674,0.15973,-0.015324,-0.13457,-0.26903,0.2739,0.14197,-0.012787,-0.15486,-0.25888,0.28405,0.12168,0.0075097,-0.1574,-0.28425,0.32211,0.16227,-0.0026385,-0.11934,-0.26903 0.28895,0.12445,-0.032853,-0.16494,-0.2634,0.33699,0.12085,-0.014842,-0.13492,-0.2634,0.30817,0.12085,-0.041259,-0.13852,-0.2634,0.28175,0.12805,-0.032853,-0.16014,-0.25139,0.33098,0.11244,-0.011239,-0.13012,-0.25019 0.31405,0.14666,0.021787,-0.12169,-0.26516,0.29545,0.14932,-0.023381,-0.14029,-0.28642,0.27154,0.14401,-0.028695,-0.17217,-0.25985,0.29279,0.12009,0.0085022,-0.12966,-0.26516,0.27419,0.12806,-0.028695,-0.14826,-0.29704 0.27813,0.14255,-0.027891,-0.1441,-0.27193,0.31687,0.14255,0.022467,-0.12861,-0.26419,0.2975,0.11156,-0.031764,-0.1441,-0.29518,0.27813,0.1348,-0.020143,-0.12086,-0.29518,0.28975,0.12706,0.010846,-0.14023,-0.26806 0.2806,0.15591,-0.0052119,-0.15512,-0.26861,0.29741,0.1475,0.028413,-0.13131,-0.27281,0.29181,0.13769,-0.015019,-0.14111,-0.28402,0.25118,0.13489,-0.008014,-0.16353,-0.28402,0.29181,0.12228,0.014403,-0.1299,-0.29523 0.2932,0.12124,-0.0045172,-0.14054,-0.28941,0.31887,0.15718,0.0057491,-0.10975,-0.28171,0.29064,0.13151,-0.014783,-0.15081,-0.25861,0.26241,0.10841,-0.0070837,-0.15594,-0.30224,0.29577,0.13151,-0.0096503,-0.13028,-0.26117 0.30472,0.15264,-0.016512,-0.14842,-0.24153,0.27368,0.12781,-0.0056487,-0.17014,-0.26791,0.2923,0.13246,-0.035134,-0.14687,-0.30205,0.29386,0.17126,-0.011856,-0.14842,-0.23222,0.29541,0.12936,-0.016512,-0.16238,-0.26791 0.28759,0.14484,-0.021698,-0.14065,-0.27388,0.26855,0.14484,-0.035972,-0.15493,-0.27388,0.33517,0.14484,0.016368,-0.14065,-0.26437,0.28759,0.14484,-0.021698,-0.12162,-0.25961,0.26855,0.14484,-0.035972,-0.1692,-0.27388 0.28803,0.10855,-0.017359,-0.15398,-0.29596,0.27731,0.14069,0.0067506,-0.16201,-0.26917,0.30946,0.13533,0.020145,-0.13791,-0.27453,0.3041,0.13533,-0.03611,-0.11647,-0.28524,0.27195,0.15409,-0.0066435,-0.14326,-0.25309 0.27991,0.11666,-0.018283,-0.16194,-0.26206,0.31473,0.16237,-0.011754,-0.11188,-0.26206,0.26903,0.15149,-0.031343,-0.14017,-0.27512,0.28426,0.12319,-0.02046,-0.17935,-0.26206,0.31909,0.14061,-0.01393,-0.13147,-0.27947 0.3381,0.14201,0.015584,-0.12116,-0.24759,0.29166,0.13685,-0.015378,-0.13664,-0.27081,0.27618,0.12911,0.0001032,-0.15986,-0.25533,0.29682,0.13943,-0.015378,-0.14954,-0.27597,0.27102,0.11363,-0.041179,-0.16502,-0.29661 0.28829,0.14872,-0.031784,-0.13227,-0.26068,0.27526,0.11151,-0.011314,-0.16949,-0.26068,0.30318,0.10964,0.001712,-0.16019,-0.29417,0.32737,0.15803,-0.0094534,-0.12483,-0.25323,0.29573,0.11709,-0.0075925,-0.15833,-0.26254 0.30876,0.15207,-0.0078777,-0.1428,-0.23311,0.3044,0.10746,-0.015494,-0.15695,-0.25487,0.31528,0.1129,-0.044873,-0.15259,-0.27119,0.30876,0.14663,-0.023111,-0.15259,-0.24508,0.30223,0.099843,-0.023111,-0.16891,-0.26575 0.25332,0.14182,-0.027651,-0.15699,-0.30416,0.27116,0.1552,-0.014271,-0.14807,-0.27294,0.30238,0.1106,0.0035679,-0.12131,-0.26848,0.30684,0.14628,-0.00089197,-0.13915,-0.28632,0.289,0.16412,-0.0053518,-0.14361,-0.2551 0.29391,0.14287,-0.02041,-0.15104,-0.29391,0.29799,0.14287,0.0040821,-0.14287,-0.26125,0.28575,0.14287,0,-0.16737,-0.27758,0.26942,0.11838,-0.02041,-0.15104,-0.28166,0.26533,0.17145,0.032657,-0.13471,-0.26533 0.29577,0.13401,-0.025526,-0.12745,-0.28256,0.26696,0.14066,-0.038821,-0.16069,-0.28034,0.28026,0.11629,-0.0077996,-0.16291,-0.26705,0.32679,0.14731,0.0054952,-0.10973,-0.27591,0.28026,0.15617,-0.010015,-0.12745,-0.2737 0.28106,0.12837,0.0067862,-0.16004,-0.26466,0.28672,0.11141,0.001131,-0.1459,-0.29011,0.26127,0.13968,-0.015834,-0.14025,-0.28728,0.30651,0.12272,0.018096,-0.14307,-0.25335,0.3263,0.12837,0.012441,-0.14873,-0.28163 0.31407,0.14782,0.023618,-0.13689,-0.24581,0.30642,0.11534,0.0045096,-0.14836,-0.27065,0.27203,0.13827,-0.026064,-0.14263,-0.27448,0.29114,0.13636,0.0045096,-0.16938,-0.25346,0.28923,0.11343,-0.031797,-0.15982,-0.29741 0.29724,0.10891,0.0033769,-0.13949,-0.29048,0.28749,0.16086,-0.014482,-0.11839,-0.26613,0.27126,0.12514,-0.012858,-0.14923,-0.28561,0.29724,0.10891,-0.0063642,-0.133,-0.30672,0.29724,0.16086,-0.014482,-0.12001,-0.26126 0.28976,0.14664,0.0035321,-0.14872,-0.25224,0.32021,0.13446,-0.017782,-0.13654,-0.27051,0.28671,0.15273,0.0035321,-0.13654,-0.24006,0.28062,0.10706,0.0065771,-0.1548,-0.28878,0.28976,0.1162,-0.029962,-0.1548,-0.30705 0.33381,0.15995,0.0064125,-0.11551,-0.27357,0.27962,0.13511,-0.013909,-0.12906,-0.26905,0.27962,0.11253,-0.0026192,-0.15616,-0.27808,0.31123,0.13286,-0.0048771,-0.13358,-0.27357,0.26156,0.11931,-0.038746,-0.16293,-0.28034 0.30412,0.15537,-0.015829,-0.11687,-0.25719,0.28447,0.15537,-0.010216,-0.14212,-0.26,0.32096,0.14134,0.012237,-0.1337,-0.26561,0.27605,0.12169,-0.027055,-0.14212,-0.29368,0.26483,0.1245,-0.032668,-0.1758,-0.28806 0.29417,0.13347,-0.017771,-0.12805,-0.273,0.31308,0.15868,0.0074362,-0.12805,-0.24779,0.28472,0.10827,-0.0020166,-0.15956,-0.2919,0.29732,0.12717,-0.030375,-0.13751,-0.30451,0.26896,0.14608,-0.0083184,-0.15641,-0.25409 0.27712,0.13289,-0.0010302,-0.16328,-0.26372,0.29257,0.12259,0.0015453,-0.15813,-0.28948,0.29257,0.17667,-0.006181,-0.12465,-0.256,0.26939,0.14834,0.0041207,-0.16843,-0.26372,0.28999,0.12259,0.011847,-0.15298,-0.29463 0.30938,0.14618,0.017952,-0.11611,-0.26182,0.28898,0.15492,-0.022848,-0.13651,-0.27348,0.26275,0.14618,-0.01702,-0.15691,-0.27056,0.29773,0.14327,0.0062949,-0.14233,-0.28222,0.27733,0.11995,-0.051991,-0.14525,-0.29388 0.32115,0.11989,0.0085192,-0.12826,-0.2709,0.28207,0.15116,-0.0090663,-0.13607,-0.26894,0.30357,0.13553,0.018289,-0.1478,-0.25136,0.30943,0.10817,-0.014928,-0.1478,-0.28848,0.25081,0.12771,-0.024698,-0.1517,-0.2963 0.27795,0.1215,-0.023143,-0.14417,-0.28881,0.26024,0.14216,-0.017239,-0.16778,-0.26519,0.32518,0.13331,0.018183,-0.13236,-0.26519,0.31632,0.13626,-0.029046,-0.12646,-0.27405,0.27204,0.15987,-0.0083833,-0.15598,-0.26519 0.29881,0.14448,-0.030725,-0.14676,-0.26163,0.29881,0.13984,-0.040008,-0.13516,-0.25351,0.2814,0.16421,0.0017637,-0.17229,-0.24074,0.2814,0.1352,-0.014481,-0.15604,-0.286,0.29185,0.16421,-0.050451,-0.14444,-0.26975 0.31994,0.16049,-0.011895,-0.11532,-0.27047,0.26823,0.14756,-0.0075849,-0.1498,-0.2834,0.27254,0.11308,-0.016204,-0.17566,-0.2834,0.30271,0.13032,-0.020514,-0.13256,-0.25754,0.27685,0.1648,-0.020514,-0.14118,-0.27047 0.26505,0.158,-0.0059622,-0.15502,-0.26749,0.31654,0.14445,0.015718,-0.12656,-0.28239,0.2935,0.14038,-0.011382,-0.13198,-0.28917,0.26098,0.12006,-0.0059622,-0.15637,-0.28104,0.2935,0.11193,0.013008,-0.13198,-0.28781 0.3121,0.1501,-0.0083312,-0.1098,-0.27536,0.27828,0.14654,-0.026133,-0.14362,-0.2896,0.27472,0.1145,-0.006551,-0.15074,-0.27002,0.31744,0.13586,-0.013672,-0.10446,-0.27536,0.27116,0.1412,-0.033254,-0.15252,-0.28248 0.32043,0.13621,0.015258,-0.14105,-0.26572,0.31856,0.12877,-0.031261,-0.14105,-0.26386,0.30554,0.14365,-0.0052102,-0.14105,-0.23409,0.29065,0.11202,-0.012653,-0.15779,-0.27502,0.27949,0.10644,-0.055451,-0.15779,-0.27502 0.30006,0.11977,0.016742,-0.15068,-0.27946,0.30006,0.1584,-0.015454,-0.1056,-0.26658,0.26143,0.14553,-0.0090148,-0.1378,-0.26658,0.28719,0.13265,-0.034771,-0.16355,-0.30522,0.28719,0.15196,-0.021893,-0.1378,-0.26658 0.3166,0.13959,-0.01633,-0.14739,-0.24456,0.32564,0.11323,-0.01633,-0.15041,-0.27017,0.31735,0.15315,-0.026122,-0.13609,-0.24155,0.27819,0.11699,-0.029888,-0.15719,-0.25134,0.29852,0.094396,-0.027629,-0.15945,-0.27921 0.31598,0.13649,-0.022753,-0.15501,-0.24138,0.30519,0.13514,-0.0065588,-0.14556,-0.24543,0.30046,0.13177,-0.044346,-0.15973,-0.25218,0.29507,0.12705,-0.049744,-0.18133,-0.24543,0.31733,0.12435,-0.020054,-0.16581,-0.25353 0.29985,0.17115,-0.023481,-0.14277,-0.27147,0.26846,0.13034,-0.014063,-0.1616,-0.27775,0.28102,0.12406,0.014189,-0.14277,-0.28089,0.27474,0.17115,-0.004646,-0.13649,-0.2652,0.26846,0.15545,0.014189,-0.16474,-0.28717 0.28754,0.13939,0.01843,-0.13651,-0.27175,0.2957,0.14347,-0.015549,-0.1304,-0.29553,0.2855,0.16726,0.010955,-0.1338,-0.26359,0.26376,0.13328,0.016391,-0.15554,-0.28466,0.27123,0.12648,-0.023704,-0.14671,-0.30165 0.2857,0.11258,0.0037592,-0.13474,-0.28066,0.31785,0.13731,0.0012861,-0.10259,-0.29055,0.28076,0.13731,-0.028392,-0.14216,-0.2856,0.27581,0.10763,-0.0061335,-0.15205,-0.27818,0.30301,0.14226,-0.0061335,-0.11495,-0.28313 0.31757,0.13735,-0.0068243,-0.1534,-0.28076,0.27191,0.13735,-0.021242,-0.13418,-0.27114,0.31757,0.14216,0.022011,-0.12937,-0.25913,0.30555,0.10852,-0.0044213,-0.14619,-0.28556,0.25029,0.12293,-0.016436,-0.13658,-0.28796 0.2762,0.099046,-0.022294,-0.17114,-0.27711,0.31422,0.13464,-0.014205,-0.1315,-0.27468,0.27135,0.13949,-0.027148,-0.14606,-0.27468,0.29157,0.11442,-0.0077334,-0.15334,-0.26174,0.33687,0.15244,0.0035917,-0.1129,-0.25931 0.25569,0.12366,-0.029506,-0.17739,-0.27421,0.30499,0.13422,0.0039435,-0.14922,-0.26717,0.28738,0.12718,-0.033027,-0.14218,-0.28301,0.28034,0.14654,-0.0066194,-0.15626,-0.27245,0.32611,0.15182,0.023309,-0.12281,-0.25133 0.33847,0.13797,0.006936,-0.12558,-0.27386,0.31876,0.13108,-0.025577,-0.13445,-0.27681,0.29216,0.1296,-0.01868,-0.15563,-0.26056,0.29265,0.11433,-0.0019311,-0.12706,-0.26893,0.26802,0.099548,-0.042818,-0.14233,-0.27533 0.31116,0.10385,-0.019356,-0.15443,-0.25735,0.32749,0.13848,-0.031726,-0.13365,-0.2435,0.29879,0.1271,-0.038653,-0.16235,-0.24498,0.30622,0.098898,-0.028757,-0.16037,-0.26378,0.32007,0.13353,-0.036674,-0.13712,-0.2529 0.27934,0.12968,-0.011181,-0.15204,-0.25768,0.32116,0.15829,-0.024386,-0.13003,-0.27089,0.26834,0.15389,-0.03319,-0.15424,-0.26649,0.30575,0.098866,-0.028788,-0.16745,-0.25108,0.31896,0.13848,-0.028788,-0.13003,-0.26649 0.28148,0.17806,-0.011021,-0.16075,-0.285,0.2784,0.13716,-0.0033032,-0.13528,-0.29195,0.30001,0.1688,-0.017967,-0.11598,-0.2688,0.27454,0.15182,-0.024913,-0.13759,-0.26648,0.27068,0.1225,-0.022598,-0.13759,-0.28423 0.27711,0.13686,-0.037542,-0.14003,-0.29106,0.27711,0.15484,0.021792,-0.1652,-0.27128,0.30588,0.13147,0.0092058,-0.15801,-0.28387,0.2843,0.12967,-0.015966,-0.14003,-0.27848,0.27711,0.14226,0.036176,-0.14722,-0.2551 0.26855,0.11311,-0.022489,-0.16305,-0.28211,0.3132,0.14783,-0.012568,-0.12998,-0.29038,0.2702,0.15114,-0.015875,-0.14486,-0.27715,0.27682,0.12138,-0.00099218,-0.14982,-0.26888,0.31981,0.13791,0.017198,-0.10682,-0.27219 0.28924,0.10245,-0.021481,-0.16337,-0.30167,0.28564,0.15633,-0.021481,-0.14002,-0.25317,0.27307,0.13118,-0.016093,-0.15978,-0.26574,0.29642,0.13118,-0.0089084,-0.15798,-0.27472,0.31259,0.17968,-0.0089084,-0.12206,-0.2424 0.31951,0.13757,-0.021136,-0.12178,-0.2592,0.28467,0.12403,-0.034684,-0.14501,-0.26501,0.29241,0.093058,-0.028877,-0.13339,-0.28823,0.33499,0.14338,-0.028877,-0.12178,-0.26501,0.29241,0.12209,-0.017265,-0.14888,-0.26501 0.33773,0.1024,-0.015265,-0.12339,-0.26331,0.29957,0.1024,-0.043885,-0.14565,-0.28239,0.29321,0.11512,-0.024805,-0.15519,-0.26331,0.31865,0.1342,-0.0089043,-0.12657,-0.25695,0.29639,0.13102,-0.024805,-0.13293,-0.26331 0.28047,0.11216,-0.021265,-0.15674,-0.25937,0.32358,0.1491,-0.015107,-0.11979,-0.25937,0.27637,0.15116,-0.045897,-0.14648,-0.26348,0.301,0.09984,-0.023318,-0.16084,-0.26758,0.32152,0.15526,-0.029476,-0.13827,-0.26348 0.30589,0.11303,-0.0080733,-0.13366,-0.30409,0.26552,0.16685,-0.0080733,-0.13366,-0.26373,0.26104,0.13097,-0.0080733,-0.16057,-0.2727,0.28795,0.13545,-0.0080733,-0.14711,-0.29961,0.3014,0.16685,-0.0035881,-0.13366,-0.25027 0.28264,0.098987,-0.016187,-0.17286,-0.28389,0.28887,0.16332,-0.019299,-0.13966,-0.26002,0.26397,0.14257,-0.015149,-0.16041,-0.26314,0.29509,0.12804,-0.0016602,-0.149,-0.27662,0.30858,0.18511,-0.012036,-0.12306,-0.26417 0.28291,0.14001,-0.057721,-0.14813,-0.26887,0.30566,0.13943,-0.043139,-0.15046,-0.25953,0.32841,0.12834,-0.019808,-0.15863,-0.26362,0.2905,0.14701,-0.023308,-0.15863,-0.24612,0.2905,0.14876,-0.0087258,-0.16679,-0.22804 0.26789,0.11564,-0.034667,-0.17911,-0.27281,0.31669,0.12735,-0.011243,-0.14203,-0.2689,0.31474,0.12539,-0.032715,-0.13812,-0.27281,0.26984,0.14491,-0.019051,-0.15569,-0.24743,0.3284,0.1332,0.018036,-0.13031,-0.25719 0.30621,0.14488,0.024956,-0.12638,-0.25201,0.30621,0.12489,0.0049683,-0.12923,-0.28771,0.26623,0.13203,-0.017875,-0.14066,-0.28628,0.29336,0.13346,0.0092514,-0.14208,-0.27486,0.27623,0.10919,-0.013592,-0.15493,-0.30627 0.328,0.14728,-0.02402,-0.12756,-0.25933,0.29412,0.15105,-0.010843,-0.16332,-0.24615,0.31671,0.13975,-0.0033132,-0.13697,-0.26686,0.30353,0.10775,-0.037198,-0.14638,-0.27062,0.2527,0.12281,-0.03155,-0.1765,-0.26309 0.29358,0.14051,0.014802,-0.1794,-0.24261,0.29517,0.11826,0.013919,-0.1757,-0.2615,0.30611,0.12974,0.00774,-0.16669,-0.25373,0.29375,0.13768,-0.02757,-0.17499,-0.25214,0.29552,0.12674,-0.013799,-0.16157,-0.2638 0.32918,0.15171,0.023924,-0.13048,-0.25294,0.30788,0.13396,-0.015121,-0.13048,-0.26891,0.26529,0.14283,-0.02222,-0.16597,-0.26891,0.29724,0.12331,-0.0044724,-0.14468,-0.26891,0.27239,0.10556,-0.032868,-0.15178,-0.29553 0.29988,0.13134,-0.043006,-0.17086,-0.27547,0.29988,0.11972,-0.025571,-0.14761,-0.25803,0.28244,0.11972,-0.0023246,-0.13599,-0.27547,0.29988,0.10228,-0.019759,-0.14761,-0.28709,0.32312,0.15459,0.01511,-0.12437,-0.23479 0.29171,0.11543,-0.017466,-0.1368,-0.2724,0.28087,0.14255,-0.039163,-0.14494,-0.2724,0.31612,0.15068,-0.0039054,-0.13409,-0.26156,0.32155,0.12899,-0.044587,-0.13137,-0.28325,0.28629,0.13441,-0.052723,-0.11239,-0.26156 0.29184,0.1593,-0.0022366,-0.12028,-0.26939,0.26906,0.13237,-0.01052,-0.13271,-0.26939,0.28355,0.13445,-0.0043076,-0.13063,-0.32116,0.28355,0.1593,-0.0043076,-0.11821,-0.27767,0.27113,0.14066,-0.012591,-0.15134,-0.30045 0.34372,0.11243,0.00024929,-0.13201,-0.25528,0.30771,0.12213,-0.031605,-0.13755,-0.25874,0.28001,0.12628,-0.031605,-0.16318,-0.25666,0.32918,0.1152,-0.01083,-0.13963,-0.25805,0.28971,0.11243,-0.043377,-0.14863,-0.2719 0.31994,0.12393,0.00015208,-0.14264,-0.26008,0.32037,0.11675,-0.039136,-0.13672,-0.25754,0.31023,0.14463,0.0014194,-0.14813,-0.23895,0.29291,0.10576,-0.013366,-0.157,-0.27317,0.30093,0.10069,-0.050542,-0.15024,-0.27021 0.26276,0.13939,-0.014375,-0.16099,-0.27721,0.29852,0.13939,0.023172,-0.12881,-0.27184,0.28779,0.13045,-0.017951,-0.12702,-0.29866,0.26276,0.13939,0.0035044,-0.17172,-0.279,0.29852,0.14833,0.021384,-0.12344,-0.28436 0.26129,0.105,-0.010443,-0.17917,-0.26797,0.29681,0.13874,-0.010443,-0.14009,-0.27507,0.27905,0.14762,-0.021099,-0.1543,-0.26797,0.29326,0.14052,0.012645,-0.17029,-0.26442,0.29859,0.17249,0.017974,-0.12056,-0.28218 0.30521,0.11999,0.0032212,-0.11355,-0.28266,0.28105,0.12804,-0.028991,-0.14173,-0.28266,0.28508,0.1522,-0.020938,-0.16187,-0.26253,0.30924,0.1361,0.019327,-0.1216,-0.28669,0.26092,0.14415,-0.020938,-0.12563,-0.29474 0.32542,0.1311,0.019163,-0.14829,-0.25486,0.32542,0.1114,-0.0094922,-0.15098,-0.28172,0.26542,0.13379,-0.032775,-0.14292,-0.27277,0.29676,0.12841,0.012,-0.1474,-0.25486,0.28691,0.10244,-0.011283,-0.15367,-0.27724 0.27224,0.1373,0.012903,-0.15366,-0.28017,0.27645,0.17103,-0.0039638,-0.14101,-0.25486,0.25959,0.14784,-0.0081806,-0.16209,-0.27595,0.28489,0.14152,-0.012397,-0.14734,-0.29703,0.2891,0.18368,-0.025048,-0.14734,-0.26751 0.2657,0.15358,0.0046074,-0.12901,-0.27645,0.29641,0.13515,0.038395,-0.13976,-0.26877,0.28873,0.12594,0.0046074,-0.14437,-0.29641,0.26416,0.13822,-0.012287,-0.14283,-0.29641,0.29027,0.13054,0.013822,-0.15819,-0.28566 0.29718,0.13622,-0.031641,-0.15811,-0.26849,0.31558,0.13162,-0.022443,-0.15351,-0.28458,0.31328,0.15462,-0.017844,-0.11672,-0.2248,0.27189,0.13392,0.00055187,-0.17421,-0.26159,0.29258,0.10403,-0.008646,-0.15351,-0.27538 0.30349,0.11148,-0.013938,-0.1462,-0.26022,0.29802,0.11422,-0.044039,-0.1421,-0.27025,0.25789,0.14387,-0.033093,-0.16627,-0.25612,0.32767,0.13794,0.0015689,-0.13982,-0.25384,0.3304,0.1352,-0.033093,-0.13982,-0.26296 0.32347,0.11164,-0.012172,-0.15239,-0.24637,0.32496,0.10717,-0.043499,-0.14643,-0.26129,0.28319,0.13402,-0.039024,-0.16731,-0.24637,0.32347,0.12507,-0.0062056,-0.13748,-0.25532,0.30109,0.1191,-0.031565,-0.13897,-0.26875 0.25036,0.13582,-0.0046684,-0.1538,-0.29428,0.29359,0.12501,0.021267,-0.13867,-0.28131,0.29359,0.12285,-0.011152,-0.13435,-0.2986,0.27198,0.1423,-0.011152,-0.14731,-0.26835,0.31736,0.14014,0.027751,-0.1257,-0.27267 0.31389,0.10477,-0.012193,-0.14333,-0.27093,0.3068,0.12958,-0.022826,-0.12916,-0.24258,0.28553,0.12958,-0.012193,-0.16814,-0.24612,0.3068,0.087049,-0.015737,-0.17169,-0.28865,0.32098,0.14021,-0.0051039,-0.14333,-0.25321 0.32736,0.1506,0.023333,-0.12515,-0.24711,0.27787,0.14,-0.01202,-0.16404,-0.25772,0.30439,0.12939,-0.026161,-0.13575,-0.27893,0.30439,0.11702,0.0021212,-0.14106,-0.2754,0.26019,0.12232,-0.036767,-0.17994,-0.27893 0.29824,0.14382,-0.012224,-0.14064,-0.24467,0.28036,0.11456,-0.021976,-0.17152,-0.26905,0.29987,0.15845,-0.033355,-0.11463,-0.25767,0.30962,0.16658,-0.033355,-0.16014,-0.25117,0.29662,0.11944,-0.028478,-0.18127,-0.26742 0.30036,0.11609,-0.01218,-0.14946,-0.24232,0.31179,0.11641,-0.037447,-0.14737,-0.27789,0.26785,0.13749,-0.035355,-0.1707,-0.25648,0.32193,0.16067,-0.0017188,-0.14125,-0.25568,0.30728,0.12848,-0.041953,-0.12757,-0.27097 0.29835,0.13833,-0.054314,-0.14831,-0.25706,0.30923,0.10959,-0.034117,-0.15996,-0.25162,0.32554,0.136,-0.035671,-0.12345,-0.25395,0.30612,0.14299,-0.0481,-0.14831,-0.25395,0.31234,0.11425,-0.026349,-0.15219,-0.24541 0.28579,0.11676,-0.037072,-0.15102,-0.29536,0.2573,0.13385,-0.019979,-0.16622,-0.28587,0.31048,0.14525,0.021803,-0.12823,-0.27257,0.31048,0.13955,-0.0066851,-0.12633,-0.27637,0.28199,0.14905,0.0028108,-0.14533,-0.24408 0.28376,0.14936,-0.0025711,-0.10775,-0.25384,0.27207,0.10261,-0.025945,-0.16034,-0.27137,0.2896,0.13767,-0.020101,-0.13697,-0.2889,0.31297,0.14936,0.0032723,-0.18372,-0.25384,0.30129,0.14936,-0.014258,-0.16034,-0.27137 0.28944,0.14098,0.015105,-0.14627,-0.29796,0.2959,0.13775,0.0021947,-0.12045,-0.30442,0.28299,0.15711,0.0086497,-0.12691,-0.26569,0.27653,0.11838,0.0086497,-0.14627,-0.27537,0.26362,0.12807,-0.013943,-0.12691,-0.30119 0.30464,0.1329,0.034991,-0.16083,-0.23466,0.28779,0.12808,-0.0067413,-0.14799,-0.27158,0.29903,0.1321,-0.04125,-0.14638,-0.27318,0.30063,0.1313,0.010112,-0.15922,-0.25713,0.28618,0.11444,-0.00032101,-0.17447,-0.28843 0.25144,0.1477,-0.019185,-0.13946,-0.28681,0.30707,0.1462,0.0048713,-0.13946,-0.26275,0.29204,0.12365,-0.013171,-0.14999,-0.29432,0.25896,0.1477,-0.034219,-0.13044,-0.28681,0.32211,0.14169,0.0048713,-0.12894,-0.26275 0.28744,0.14483,-0.02235,-0.14441,-0.2975,0.32128,0.13355,-0.0022076,-0.12951,-0.28702,0.30436,0.11583,-0.031616,-0.12548,-0.29347,0.25884,0.15208,-0.027587,-0.14119,-0.25157,0.2955,0.12832,-0.012279,-0.12185,-0.25399 0.26219,0.13468,0.017958,-0.15085,-0.30529,0.27117,0.14366,-0.0035916,-0.11493,-0.28014,0.28014,0.16342,0,-0.1275,-0.255,0.29092,0.14366,-0.025141,-0.13828,-0.28733,0.30169,0.14546,-0.030529,-0.15264,-0.28374 0.29775,0.1479,0.0082972,-0.12263,-0.27248,0.3017,0.12187,-0.013787,-0.13367,-0.27169,0.30485,0.13843,-0.011421,-0.10133,-0.30009,0.26936,0.13134,-0.020885,-0.12815,-0.29693,0.28987,0.10215,-0.020885,-0.13209,-0.28747 0.27692,0.11436,-0.013974,-0.16798,-0.27065,0.27264,0.15429,-0.018252,-0.12662,-0.26779,0.28405,0.15714,-0.023956,-0.19079,-0.26637,0.30401,0.13147,-0.021104,-0.15657,-0.26494,0.30829,0.1771,-0.018252,-0.12377,-0.24926 0.26117,0.13656,-0.032192,-0.13863,-0.26584,0.25338,0.15213,-0.034788,-0.14642,-0.28921,0.30011,0.12358,-0.0062307,-0.13863,-0.27882,0.32088,0.15992,-0.014019,-0.12046,-0.27103,0.28973,0.16771,-0.0010384,-0.1594,-0.26844 0.2911,0.13234,0.02121,-0.14707,-0.23915,0.31015,0.13234,0.0021591,-0.12167,-0.27725,0.26887,0.15457,-0.029592,-0.13755,-0.28995,0.2784,0.11964,-0.0041912,-0.17247,-0.28995,0.29427,0.13551,-0.010541,-0.12802,-0.29313 0.34224,0.11871,-0.0039432,-0.14723,-0.263,0.31358,0.14164,-0.025723,-0.12545,-0.24466,0.25856,0.12329,-0.037186,-0.15755,-0.26759,0.30097,0.11986,-0.031454,-0.14723,-0.27676,0.29982,0.14737,-0.041771,-0.13806,-0.25842 0.26665,0.13623,-0.033887,-0.16204,-0.25957,0.29387,0.10561,-0.016875,-0.1575,-0.28339,0.33923,0.15097,-0.016875,-0.12575,-0.24823,0.2882,0.1453,-0.027082,-0.1575,-0.23802,0.31201,0.12035,-0.010071,-0.14049,-0.28112 0.29188,0.098208,-0.0064559,-0.14242,-0.29012,0.32319,0.14516,-0.0035214,-0.10818,-0.27056,0.2733,0.1256,-0.0084122,-0.14633,-0.27056,0.2821,0.092339,0.0033258,-0.14731,-0.28915,0.31536,0.13929,-0.0035214,-0.12579,-0.27741 0.32091,0.14807,-0.029503,-0.16196,-0.25802,0.29981,0.15098,-0.045514,-0.1514,-0.24965,0.29108,0.16226,-0.038964,-0.16778,-0.23473,0.2878,0.14298,-0.033142,-0.17542,-0.25074,0.28089,0.13788,-0.013129,-0.15977,-0.25293 0.30223,0.11597,-0.024403,-0.13238,-0.28355,0.28063,0.13756,-0.029801,-0.15667,-0.25925,0.32382,0.14836,-0.0028074,-0.13238,-0.26735,0.28063,0.16186,-0.051397,-0.14588,-0.27005,0.26443,0.16995,-0.019004,-0.15397,-0.25655 0.30146,0.12546,-0.022388,-0.12799,-0.2336,0.26626,0.1325,-0.022388,-0.14207,-0.28288,0.29442,0.1677,-0.0047874,-0.16671,-0.2688,0.26978,0.14658,0.012813,-0.17023,-0.29696,0.30146,0.1501,-0.022388,-0.13503,-0.27232 0.29378,0.14298,0.014521,-0.13441,-0.28707,0.30495,0.13367,-0.0040957,-0.13069,-0.27963,0.28074,0.15415,0.025692,-0.13441,-0.26287,0.26585,0.11878,0.014521,-0.14931,-0.30011,0.27516,0.11878,-0.026436,-0.13441,-0.30011 0.28356,0.13436,-0.02336,-0.15125,-0.28766,0.30488,0.14289,0.0022167,-0.12141,-0.22371,0.29635,0.10026,-0.006309,-0.16403,-0.26208,0.29209,0.15994,-0.031886,-0.15977,-0.29618,0.28783,0.15142,-0.019098,-0.13846,-0.27061 0.28388,0.1175,-0.041232,-0.15407,-0.29558,0.26667,0.14045,-0.018283,-0.17128,-0.27455,0.30683,0.14045,0.018053,-0.1292,-0.26307,0.30492,0.15575,-0.014458,-0.13303,-0.27837,0.26667,0.1634,0.010404,-0.14833,-0.25351 0.25571,0.12974,-0.0091037,-0.17371,-0.26246,0.27861,0.14978,-0.0033781,-0.14795,-0.26246,0.26286,0.16982,-0.032006,-0.1594,-0.27678,0.29722,0.1369,0.0066417,-0.1594,-0.26819,0.32298,0.15264,-0.0033781,-0.12218,-0.2825 0.29074,0.12698,-0.032858,-0.11802,-0.30275,0.25406,0.13615,-0.0014149,-0.14815,-0.26737,0.31171,0.1296,0.022167,-0.13374,-0.27654,0.30909,0.1165,0.0012053,-0.12588,-0.28833,0.28419,0.13484,0.0064459,-0.14946,-0.27916 0.31242,0.12559,-0.029371,-0.14233,-0.27268,0.27187,0.12994,-0.045302,-0.14233,-0.27123,0.27187,0.13718,-0.03806,-0.15827,-0.25385,0.35587,0.13718,-0.0090951,-0.13654,-0.25095,0.29504,0.14297,-0.032267,-0.14378,-0.25385 0.29465,0.13039,-0.013347,-0.16735,-0.26231,0.27669,0.094453,-0.00051333,-0.18275,-0.27258,0.30749,0.12525,-0.023613,-0.15965,-0.27258,0.31775,0.16632,-0.00051333,-0.13655,-0.23921,0.29979,0.13039,-0.01078,-0.15965,-0.24178 0.27941,0.17615,-0.00067489,-0.14105,-0.27063,0.26928,0.13768,-0.00067489,-0.16535,-0.27063,0.28008,0.12958,0.0087736,-0.164,-0.2983,0.27536,0.17615,0.0053992,-0.13363,-0.27063,0.26388,0.14915,0.0060741,-0.16062,-0.28076 0.30665,0.10383,-0.030098,-0.15164,-0.26311,0.31129,0.13866,-0.022357,-0.14544,-0.23911,0.31671,0.1077,-0.05487,-0.14235,-0.25692,0.31594,0.10692,-0.036291,-0.15318,-0.26079,0.31981,0.14176,-0.027001,-0.14699,-0.23911 0.26218,0.13024,-0.048661,-0.16047,-0.27564,0.28342,0.10229,-0.024062,-0.16495,-0.26558,0.33374,0.13583,-0.015117,-0.12805,-0.26558,0.29684,0.16155,-0.027417,-0.14147,-0.25216,0.32256,0.13359,0.0038911,-0.14929,-0.24769 0.31274,0.15522,0.0095898,-0.15189,-0.24105,0.3167,0.11559,0.0076084,-0.13307,-0.26186,0.27905,0.12154,-0.024093,-0.14496,-0.29752,0.2959,0.11856,0.011571,-0.16873,-0.25294,0.29193,0.11064,-0.033009,-0.16576,-0.27176 0.31379,0.13622,0.022069,-0.1555,-0.25063,0.30111,0.10451,0.012557,-0.1555,-0.29502,0.27891,0.12988,0.0030441,-0.13648,-0.27917,0.27257,0.12671,0.0030441,-0.14282,-0.26648,0.31062,0.10451,-0.01281,-0.13648,-0.28868 0.28744,0.14514,-0.0064344,-0.13017,-0.27247,0.2596,0.12658,0.0090329,-0.15492,-0.26628,0.29672,0.1204,0.0090329,-0.15801,-0.30959,0.28126,0.17917,0.002846,-0.12708,-0.26628,0.27198,0.15133,-0.00024748,-0.1642,-0.28484 0.31442,0.11482,-0.02671,-0.14647,-0.29163,0.25998,0.14748,0.0023226,-0.16461,-0.28437,0.32168,0.12571,0.016839,-0.12106,-0.25534,0.29627,0.13297,-0.02671,-0.12469,-0.26622,0.27087,0.15111,-0.02671,-0.15372,-0.26622 0.24701,0.15177,-0.014133,-0.15853,-0.2845,0.26852,0.11798,-0.0018434,-0.14931,-0.28757,0.31153,0.15792,0.0043012,-0.11859,-0.26299,0.29617,0.1487,-0.0018434,-0.15853,-0.26606,0.2931,0.12412,0.010446,-0.12781,-0.29986 0.29482,0.15697,0.0037986,-0.10648,-0.27497,0.28563,0.13246,-0.023772,-0.13712,-0.26271,0.30707,0.12633,-0.029898,-0.14018,-0.27497,0.30707,0.13859,-0.036025,-0.10648,-0.29335,0.26418,0.13859,-0.039088,-0.13712,-0.29335 0.29744,0.15501,0.0018274,-0.14598,-0.25616,0.284,0.11201,-0.014297,-0.16748,-0.28572,0.31625,0.13082,-0.068045,-0.12986,-0.26423,0.30819,0.14695,-0.0035474,-0.12717,-0.25079,0.29207,0.10395,-0.019672,-0.13523,-0.28035 0.31443,0.098299,-0.029511,-0.15836,-0.26539,0.30924,0.14922,-0.037823,-0.14485,-0.2446,0.29053,0.13051,-0.036784,-0.16148,-0.24564,0.31443,0.10557,-0.027432,-0.15732,-0.26123,0.3082,0.16584,-0.031589,-0.14381,-0.24045 0.29283,0.12713,-0.002121,-0.14794,-0.26061,0.31271,0.15032,-0.002121,-0.1148,-0.25067,0.263,0.15364,-0.022005,-0.16782,-0.2573,0.27294,0.11387,-0.022005,-0.18771,-0.26724,0.31934,0.15032,-0.008749,-0.16782,-0.27719 0.28857,0.1184,-0.011464,-0.13685,-0.26224,0.27961,0.15423,-0.011464,-0.15029,-0.24433,0.34231,0.11392,0.0019704,-0.12342,-0.27567,0.27961,0.14079,-0.024898,-0.14581,-0.28015,0.27066,0.14527,0.0019704,-0.18163,-0.28911 0.31767,0.16529,0.002743,-0.10393,-0.25123,0.2872,0.13227,-0.025195,-0.1598,-0.26647,0.29482,0.11703,-0.0099559,-0.15472,-0.28679,0.29736,0.16529,-0.017575,-0.1344,-0.26647,0.25926,0.11703,-0.025195,-0.18266,-0.27155 0.2683,0.11368,-0.0359,-0.16914,-0.25085,0.30098,0.10237,-0.022073,-0.16034,-0.26719,0.31481,0.14637,-0.022073,-0.13143,-0.24959,0.30475,0.13631,-0.018302,-0.16034,-0.24708,0.34497,0.11494,0.00055309,-0.14903,-0.26468 0.31932,0.12284,0.0054517,-0.14974,-0.24326,0.28102,0.12085,-0.029368,-0.14775,-0.26166,0.32977,0.10394,-0.012455,-0.1577,-0.27111,0.33275,0.11886,0.011421,-0.15919,-0.25022,0.27406,0.11787,-0.033844,-0.15422,-0.26763 0.33016,0.14703,-0.003401,-0.12767,-0.24758,0.29746,0.11869,-0.016482,-0.14511,-0.2672,0.32362,0.10779,-0.016482,-0.13857,-0.29336,0.29092,0.14267,-0.016482,-0.12331,-0.2672,0.23859,0.13395,-0.020842,-0.16255,-0.28464 0.30045,0.11565,-0.053746,-0.13845,-0.2809,0.2889,0.158,-0.007546,-0.13845,-0.26935,0.2889,0.1503,-0.022946,-0.13075,-0.2963,0.29275,0.15415,-0.022946,-0.13075,-0.2886,0.26195,0.1657,-0.022946,-0.1269,-0.24625 0.32732,0.11838,-0.021511,-0.12325,-0.26678,0.30007,0.13474,-0.026962,-0.14142,-0.25225,0.26737,0.11112,0.0093749,-0.15051,-0.2686,0.32369,0.1093,-0.032412,-0.15777,-0.26678,0.3255,0.10567,-0.01061,-0.16141,-0.25225 0.26201,0.13402,-0.0081766,-0.14682,-0.27303,0.28867,0.11803,0.0078211,-0.13616,-0.3068,0.28867,0.1678,-0.002844,-0.10772,-0.27125,0.278,0.12869,-0.0063991,-0.14149,-0.28547,0.30644,0.12514,0.0060435,-0.12549,-0.29969 0.32156,0.14236,-0.0019911,-0.12145,-0.27576,0.31658,0.15232,0.0029866,-0.14137,-0.22599,0.28671,0.12245,-0.0019911,-0.15132,-0.26581,0.27676,0.12245,-0.031857,-0.14137,-0.30563,0.2668,0.12245,-0.021902,-0.16128,-0.28572 0.27241,0.11381,0.019075,-0.13527,-0.28536,0.2969,0.12978,-0.0043429,-0.12463,-0.31516,0.27561,0.15958,0.0084304,-0.12675,-0.2662,0.27561,0.13723,0.012688,-0.14911,-0.28536,0.28412,0.14149,-0.0064718,-0.13208,-0.296 0.29597,0.12998,-0.016546,-0.13844,-0.30831,0.26744,0.13258,-0.020437,-0.15011,-0.28756,0.27652,0.10016,0.0029047,-0.16437,-0.272,0.31671,0.14425,0.010685,-0.1125,-0.272,0.2843,0.165,0.0029047,-0.13066,-0.25644 0.29373,0.17159,-0.0078409,-0.18878,-0.26116,0.29373,0.10977,0.0027141,-0.19029,-0.26568,0.29976,0.11731,-0.013872,-0.1541,-0.26116,0.28468,0.15802,0.0072377,-0.14355,-0.25211,0.2877,0.12636,-0.0048251,-0.14656,-0.26267 0.2983,0.15184,-0.013357,-0.14341,-0.23128,0.29361,0.11435,-0.0086701,-0.17504,-0.24651,0.32642,0.11787,-0.032103,-0.15747,-0.27815,0.31353,0.13544,-0.0028119,-0.15044,-0.24768,0.29596,0.094434,-0.012185,-0.17621,-0.26643 0.24857,0.13746,-0.03551,-0.16037,-0.30584,0.28752,0.14089,0.018328,-0.15235,-0.27721,0.2921,0.12257,0.0011455,-0.1535,-0.28523,0.27721,0.1512,-0.017182,-0.13059,-0.27033,0.30928,0.15579,0.028637,-0.13402,-0.24857 0.32616,0.14415,-0.0060064,-0.11066,-0.27447,0.29886,0.1487,-0.024207,-0.13796,-0.26992,0.26246,0.12595,-0.015107,-0.13796,-0.29267,0.29431,0.1214,-0.0060064,-0.10611,-0.29267,0.25791,0.1396,-0.0060064,-0.14706,-0.29267 0.29106,0.14847,-0.028591,-0.15906,-0.25971,0.28547,0.12518,-0.026727,-0.16558,-0.27555,0.30038,0.13915,-0.051889,-0.14788,-0.28394,0.29292,0.15966,0.0021621,-0.13856,-0.2448,0.28826,0.12331,0.04503,-0.15813,-0.26064 0.25893,0.14193,-0.034766,-0.17565,-0.28071,0.29714,0.13954,0.024929,-0.14938,-0.27116,0.29714,0.13238,-0.02044,-0.14699,-0.27355,0.25893,0.16581,-0.015664,-0.1661,-0.26161,0.31863,0.13238,0.020153,-0.13267,-0.25922 0.30055,0.12909,-0.023661,-0.16706,-0.22785,0.31068,0.10026,-0.0088534,-0.16316,-0.26682,0.33562,0.12909,-0.020544,-0.1507,-0.2411,0.29198,0.12909,-0.023661,-0.1694,-0.24422,0.31146,0.10415,-0.0041773,-0.16005,-0.27072 0.29566,0.16335,0.033308,-0.14464,-0.26555,0.29566,0.14966,-0.028289,-0.12182,-0.27468,0.25232,0.13597,-0.039696,-0.16973,-0.25414,0.3162,0.13369,-0.014601,-0.15148,-0.26555,0.2911,0.12228,-0.026007,-0.14692,-0.28608 0.30838,0.12617,-0.038376,-0.13599,-0.26707,0.27491,0.1271,-0.043024,-0.14714,-0.26893,0.3028,0.10014,-0.02629,-0.13227,-0.27079,0.33441,0.14476,-0.019783,-0.10717,-0.27544,0.29072,0.15499,-0.038376,-0.13041,-0.26335 0.25034,0.1374,-0.044404,-0.14082,-0.28681,0.29441,0.14566,0.018952,-0.14908,-0.2813,0.29717,0.12087,0.0079333,-0.14357,-0.30334,0.28064,0.14291,-0.025122,-0.14082,-0.27579,0.30268,0.14291,0.02997,-0.12704,-0.25376 0.27043,0.10388,-0.014679,-0.16147,-0.28003,0.3156,0.13776,-0.02597,-0.13889,-0.25745,0.28455,0.13493,-0.031616,-0.13889,-0.24898,0.30431,0.11235,-0.037262,-0.14735,-0.28285,0.33818,0.16316,-0.031616,-0.12477,-0.24333 0.30253,0.14221,0.020629,-0.11431,-0.288,0.27581,0.12484,-0.0060924,-0.14371,-0.29735,0.26245,0.1382,-0.027469,-0.15306,-0.26796,0.32525,0.1382,0.0099402,-0.11565,-0.27464,0.28517,0.11816,-0.028805,-0.15707,-0.26929 0.33153,0.097322,-0.051472,-0.12862,-0.28017,0.29847,0.12212,-0.018406,-0.1176,-0.26089,0.29571,0.10559,-0.018406,-0.13965,-0.27742,0.31776,0.10559,-0.018406,-0.13414,-0.2664,0.31225,0.13314,-0.0073846,-0.15342,-0.24711 0.28991,0.17066,0.0031552,-0.11609,-0.26225,0.29409,0.12426,0.0096513,-0.14625,-0.26225,0.321,0.14514,-0.0014848,-0.12166,-0.27896,0.26949,0.1405,-0.033501,-0.14486,-0.28406,0.27042,0.10106,-0.018653,-0.17688,-0.29242 0.28753,0.095502,-0.024707,-0.15021,-0.28478,0.32987,0.13406,-0.026219,-0.12677,-0.25908,0.29056,0.13103,-0.035291,-0.15172,-0.25378,0.29282,0.098526,-0.020171,-0.14265,-0.27798,0.33819,0.1386,-0.017903,-0.11619,-0.24925 0.26085,0.13669,-0.011115,-0.15892,-0.26534,0.30815,0.12487,0.018446,-0.1471,-0.26534,0.29632,0.11304,-0.0052028,-0.17075,-0.30081,0.29632,0.13078,-0.034764,-0.1471,-0.27125,0.30815,0.13078,0.036183,-0.13527,-0.2476 0.31191,0.093807,-0.046704,-0.1458,-0.28421,0.31191,0.12998,-0.022062,-0.1437,-0.24961,0.3051,0.097477,-0.012625,-0.15471,-0.26429,0.3224,0.10639,-0.030975,-0.13374,-0.26953,0.31506,0.13523,-0.0073821,-0.13216,-0.23178 0.30514,0.12601,-0.046114,-0.1602,-0.26327,0.29814,0.16504,-0.011088,-0.15519,-0.23525,0.28913,0.116,-0.020095,-0.17221,-0.24826,0.30514,0.13102,-0.048115,-0.15319,-0.26828,0.29914,0.16704,-0.019094,-0.1612,-0.24025 0.30363,0.171,0.0084282,-0.14131,-0.25255,0.28438,0.13357,0.012706,-0.14131,-0.28249,0.30363,0.15924,-0.0044066,-0.12099,-0.26752,0.26619,0.13999,-0.017241,-0.16591,-0.27073,0.26299,0.10148,-0.010824,-0.16591,-0.30603 0.32514,0.14588,0.020677,-0.1178,-0.26861,0.28056,0.13639,-0.016314,-0.11875,-0.28284,0.27961,0.12785,-0.022005,-0.16617,-0.26007,0.30427,0.11458,-0.0058805,-0.12729,-0.27714,0.2891,0.11363,-0.04382,-0.13013,-0.30086 0.25721,0.12257,-0.03899,-0.13234,-0.27774,0.30926,0.092054,-0.0066779,-0.14849,-0.26159,0.31465,0.14232,0.005888,-0.13054,-0.27774,0.29311,0.16565,-0.04258,-0.12695,-0.27774,0.30926,0.13693,-0.022834,-0.13413,-0.27056 0.29545,0.15485,0.03219,-0.13534,-0.258,0.29545,0.14587,-0.024651,-0.13534,-0.28791,0.28648,0.1728,-0.0037096,-0.13534,-0.24603,0.27451,0.11596,-0.012684,-0.17124,-0.27595,0.28648,0.11596,-0.042601,-0.15329,-0.2939 0.24828,0.13402,0.02028,-0.1656,-0.2577,0.28074,0.14935,-0.0052247,-0.13996,-0.26491,0.27894,0.14368,-0.011279,-0.1616,-0.26646,0.31269,0.12526,-0.0048382,-0.18659,-0.26362,0.33072,0.13596,-0.014113,-0.15285,-0.26517 0.25624,0.13752,-0.024149,-0.15803,-0.28181,0.25624,0.15015,0.011216,-0.14035,-0.29697,0.28656,0.17541,-0.0089928,-0.13024,-0.26918,0.27645,0.1552,-0.0089928,-0.13782,-0.27928,0.30677,0.14005,-0.0039407,-0.11761,-0.29444 0.28999,0.13764,-0.0068295,-0.14605,-0.27344,0.32676,0.14289,-0.0068295,-0.098765,-0.27607,0.25978,0.14946,-0.01471,-0.13554,-0.27344,0.25322,0.12845,-0.0042027,-0.17231,-0.28395,0.29524,0.13764,0.0076175,-0.14079,-0.29577 0.30477,0.11891,-0.057057,-0.15164,-0.26712,0.30477,0.1541,-0.027363,-0.14504,-0.23522,0.29158,0.11011,-0.022964,-0.16044,-0.25392,0.30807,0.13981,-0.046059,-0.15164,-0.27372,0.29488,0.1761,-0.018564,-0.15164,-0.24072 0.31578,0.15941,0.00058641,-0.13869,-0.23887,0.30845,0.1081,0.00058641,-0.16068,-0.25353,0.32311,0.10565,-0.045838,-0.13869,-0.27552,0.29624,0.12764,-0.011631,-0.16068,-0.24864,0.28891,0.098322,-0.016517,-0.17045,-0.27307 0.28532,0.14075,-0.043238,-0.16727,-0.28884,0.30503,0.11858,-0.0062755,-0.17631,-0.27241,0.30339,0.15143,-0.0013471,-0.11963,-0.27241,0.27218,0.17033,-0.0087397,-0.14181,-0.26994,0.25411,0.14404,0.024116,-0.14098,-0.26009 0.32463,0.12712,0.0081695,-0.13772,-0.25891,0.31789,0.075501,-0.016519,-0.1422,-0.27911,0.31565,0.12039,-0.029985,-0.12874,-0.26564,0.29769,0.12039,0.0036808,-0.13772,-0.24993,0.28872,0.10692,-0.023252,-0.14894,-0.28809 0.25536,0.10569,-0.017247,-0.17226,-0.30589,0.29456,0.15024,-0.01012,-0.1295,-0.28273,0.27318,0.15024,-0.01012,-0.158,-0.27203,0.28387,0.12885,0.011261,-0.1384,-0.27738,0.31237,0.16627,0.011261,-0.11168,-0.25778 0.30659,0.1475,-0.0080608,-0.13534,-0.252,0.29599,0.11921,0.0096163,-0.14241,-0.28736,0.31013,0.16164,-0.029273,-0.099982,-0.26615,0.26417,0.14043,-0.0080608,-0.16715,-0.26615,0.27831,0.10507,-0.015132,-0.16008,-0.3015 0.31034,0.10741,-0.059808,-0.1491,-0.26274,0.30547,0.13825,-0.024092,-0.15721,-0.24326,0.30547,0.11228,-0.028962,-0.16046,-0.25137,0.32008,0.12364,-0.048444,-0.15884,-0.25137,0.31034,0.15286,-0.0078575,-0.15072,-0.23189 0.28413,0.15347,0.034684,-0.13953,-0.25039,0.29996,0.12179,0.014887,-0.13161,-0.26623,0.28413,0.11783,-0.012828,-0.14745,-0.28999,0.296,0.14555,0.010928,-0.16329,-0.27019,0.27225,0.11387,-0.00095025,-0.1712,-0.30582 0.2731,0.11476,-0.024963,-0.13674,-0.29508,0.29639,0.16133,-0.0016766,-0.13208,-0.26714,0.26379,0.12407,-0.0063339,-0.13674,-0.26248,0.30105,0.12407,0.0029807,-0.15071,-0.31371,0.30105,0.16133,-0.020306,-0.099479,-0.27646 0.28496,0.13314,-0.021981,-0.19855,-0.24476,0.31301,0.11664,0.0060728,-0.18205,-0.25961,0.31631,0.15624,-0.01373,-0.13585,-0.25301,0.28661,0.12984,-0.0087791,-0.1672,-0.25466,0.29981,0.11004,-0.0054787,-0.15235,-0.25466 0.26129,0.13858,-0.038668,-0.17774,-0.29909,0.28856,0.12767,-0.042758,-0.14229,-0.28545,0.29129,0.15631,-0.016852,-0.13002,-0.24728,0.30492,0.13313,-0.026396,-0.12593,-0.25137,0.33083,0.13449,-0.0059447,-0.11775,-0.25955 0.28752,0.10451,-0.042346,-0.17385,-0.28673,0.28971,0.15053,-0.036866,-0.14755,-0.2692,0.28533,0.12642,-0.019332,-0.1629,-0.25495,0.30506,0.12204,-0.0072768,-0.14098,-0.27139,0.31382,0.18341,-0.0083727,-0.11468,-0.23194 0.28968,0.14033,-0.037328,-0.13787,-0.31651,0.31604,0.14326,-0.0070673,-0.14275,-0.27355,0.30139,0.14326,-0.005115,-0.14373,-0.27355,0.26821,0.11202,-0.033423,-0.14275,-0.25501,0.31311,0.10128,0.010503,-0.13397,-0.23646 0.29572,0.15282,-0.019502,-0.12563,-0.28324,0.2726,0.15282,0.00046233,-0.14349,-0.27483,0.31358,0.13496,0.019376,-0.10671,-0.28639,0.27996,0.12235,-0.0079436,-0.11722,-0.3011,0.2621,0.11604,-0.0079436,-0.16135,-0.28744 0.25066,0.14803,-0.027897,-0.14518,-0.29179,0.29673,0.15013,0.020274,-0.1389,-0.26875,0.28835,0.14594,0.0014242,-0.14518,-0.29598,0.25484,0.15222,-0.0069533,-0.14518,-0.29598,0.28626,0.14594,0.030746,-0.14309,-0.26666 0.27849,0.17783,0.00074563,-0.12415,-0.23972,0.27849,0.13496,0.0082019,-0.14652,-0.28446,0.2934,0.1275,-0.025351,-0.18007,-0.29564,0.28968,0.17224,-0.010439,-0.14652,-0.25836,0.2729,0.1275,-0.0067107,-0.16888,-0.27514 0.25929,0.11974,-0.0036783,-0.20695,-0.26423,0.3214,0.13507,-0.027878,-0.14,-0.27471,0.30124,0.15846,-0.0036783,-0.13678,-0.24083,0.28188,0.11893,0.0027749,-0.15452,-0.26261,0.3085,0.13829,-0.013358,-0.14404,-0.27229 0.32749,0.12874,-0.015109,-0.16335,-0.24351,0.28796,0.14631,-0.03158,-0.15566,-0.2479,0.31651,0.13752,-0.0019326,-0.16445,-0.23143,0.3187,0.11446,-0.028286,-0.16774,-0.25229,0.28137,0.12435,-0.05464,-0.16884,-0.25668 0.27228,0.10355,-0.060212,-0.15946,-0.27857,0.27724,0.13333,-0.038708,-0.16443,-0.26533,0.33018,0.1234,-0.0072784,-0.13631,-0.26037,0.31198,0.1416,-0.027129,-0.13796,-0.2521,0.31198,0.16807,-0.0023159,-0.14458,-0.23886 0.32256,0.1543,-0.049664,-0.13635,-0.25872,0.30981,0.1288,-0.01907,-0.16949,-0.26127,0.29452,0.1186,-0.026719,-0.14145,-0.27657,0.28177,0.17469,-0.034367,-0.13635,-0.25362,0.27157,0.1492,-0.039466,-0.15929,-0.24343 0.30751,0.1546,-0.029824,-0.12283,-0.25997,0.30751,0.10416,-0.015637,-0.15435,-0.25051,0.33903,0.14672,-0.014061,-0.12125,-0.25997,0.2744,0.13569,-0.037705,-0.14962,-0.26942,0.29017,0.097857,-0.029824,-0.17642,-0.26627 0.29527,0.14087,-0.029495,-0.10669,-0.29037,0.26865,0.12756,-0.037481,-0.1413,-0.2744,0.26066,0.12756,0.015759,-0.15727,-0.27174,0.30592,0.15685,0.015759,-0.13864,-0.28505,0.28462,0.17016,-0.018847,-0.13331,-0.28505 0.24011,0.15776,-0.01458,-0.15641,-0.25859,0.27214,0.1242,0.0052463,-0.15489,-0.29062,0.28739,0.17148,0.0052463,-0.12286,-0.26012,0.29959,0.16691,-0.02068,-0.15489,-0.27079,0.29654,0.13335,-0.0023791,-0.15794,-0.2952 0.28208,0.13346,-0.011911,-0.15674,-0.25996,0.29343,0.13833,-0.050821,-0.15026,-0.25456,0.30532,0.16481,-0.01029,-0.15512,-0.23619,0.31558,0.11671,-0.0238,-0.15999,-0.25888,0.32747,0.11022,-0.056226,-0.15242,-0.25024 0.25997,0.11545,-0.046077,-0.15659,-0.27561,0.31097,0.1367,0.0006801,-0.14809,-0.28836,0.30672,0.12395,-0.020573,-0.13109,-0.29686,0.26422,0.14945,0.0049307,-0.15659,-0.27136,0.30672,0.14945,0.026184,-0.12259,-0.2416 0.28289,0.10428,-0.048567,-0.17909,-0.27698,0.31552,0.11115,-0.010785,-0.14646,-0.27354,0.29491,0.1163,-0.033111,-0.13787,-0.26324,0.29491,0.13863,-0.010785,-0.15161,-0.25122,0.34299,0.12832,0.014976,-0.11898,-0.24263 0.2881,0.11105,0.018509,-0.15451,-0.2712,0.2881,0.11105,0.0084497,-0.16457,-0.29131,0.25389,0.13318,-0.0056332,-0.14646,-0.28327,0.29212,0.14123,0.034604,-0.14043,-0.26717,0.31827,0.13318,0.010462,-0.13238,-0.28528 0.29619,0.13784,0.02106,-0.12937,-0.28772,0.29223,0.17545,0.0052255,-0.1175,-0.25803,0.2764,0.12993,0.0012668,-0.14916,-0.26793,0.27838,0.10617,0.0032462,-0.14916,-0.31345,0.27838,0.12597,-0.022486,-0.13729,-0.29564 0.26572,0.14608,-0.015433,-0.16498,-0.28163,0.25674,0.11916,-0.015433,-0.17096,-0.28163,0.29264,0.13711,-0.015433,-0.14105,-0.30257,0.3046,0.17599,0.017467,-0.14105,-0.24275,0.29264,0.14309,0.017467,-0.13208,-0.26368 0.28427,0.1143,-0.030017,-0.17433,-0.25451,0.33558,0.10468,-0.020396,-0.14868,-0.26413,0.30351,0.12071,-0.010775,-0.14226,-0.27054,0.27144,0.13354,-0.010775,-0.18395,-0.26092,0.30351,0.15599,0.027708,-0.12302,-0.26092 0.29887,0.094327,-0.03166,-0.15024,-0.28363,0.2796,0.10767,-0.044999,-0.15024,-0.28067,0.27664,0.12842,-0.021284,-0.15616,-0.26436,0.33148,0.13286,0.011324,-0.12652,-0.25251,0.33148,0.15065,-0.0079446,-0.12652,-0.24658 0.30531,0.11757,0.0031681,-0.12297,-0.29604,0.29064,0.14104,0.0061015,-0.1259,-0.26084,0.29357,0.094103,0.0090349,-0.12883,-0.2843,0.29944,0.09997,-0.017366,-0.1523,-0.30191,0.28771,0.13517,0.023702,-0.14937,-0.2667 0.25296,0.16723,0.0045721,-0.13391,-0.2636,0.26615,0.17602,-0.015211,-0.13391,-0.28118,0.29252,0.16723,0.011166,-0.1471,-0.2614,0.29912,0.12107,-0.015211,-0.15369,-0.29437,0.27714,0.14085,-0.03939,-0.1493,-0.28778 0.31189,0.13138,0.033277,-0.15116,-0.26103,0.28442,0.12746,-0.013813,-0.13938,-0.28458,0.25695,0.1353,-0.013813,-0.12761,-0.29635,0.31189,0.11961,0.01758,-0.13938,-0.25318,0.30012,0.10391,-0.0059647,-0.15116,-0.29635 0.31518,0.1358,0.019194,-0.13328,-0.31267,0.29276,0.15373,0.010225,-0.13777,-0.25437,0.2793,0.14476,-0.003229,-0.18262,-0.25885,0.2793,0.10889,-0.016683,-0.14674,-0.29473,0.27034,0.12683,-0.0077136,-0.11983,-0.26782 0.28782,0.1317,-0.041772,-0.1181,-0.25341,0.29476,0.14905,-0.04871,-0.12504,-0.24994,0.28088,0.15945,-0.05218,-0.13891,-0.26034,0.29823,0.12476,-0.020955,-0.12851,-0.28116,0.31211,0.16292,-0.024425,-0.17361,-0.28463 0.27054,0.10822,-0.016232,-0.18126,-0.30571,0.29489,0.15691,0,-0.13527,-0.26242,0.27324,0.1488,0,-0.16773,-0.27324,0.27595,0.12445,0.010822,-0.1488,-0.28407,0.30841,0.15421,0.0081162,-0.1028,-0.25701 0.2681,0.13031,-0.0074919,-0.13258,-0.29178,0.27747,0.12763,-0.00013378,-0.14997,-0.29044,0.27479,0.16509,0.0072243,-0.1085,-0.2958,0.29018,0.17646,-0.0081608,-0.13191,-0.29312,0.26342,0.13967,0.0058865,-0.13124,-0.28509 0.24517,0.11624,-0.038765,-0.17638,-0.27634,0.3089,0.12348,-0.001101,-0.14741,-0.2633,0.3147,0.12203,-0.038765,-0.13872,-0.27779,0.29152,0.14086,-0.01269,-0.16045,-0.24882,0.33353,0.13942,0.024974,-0.12858,-0.25171 0.25373,0.13165,-0.015348,-0.16235,-0.27197,0.31104,0.11172,0.0045844,-0.13992,-0.27197,0.31104,0.10424,-0.027805,-0.13245,-0.27696,0.27367,0.12916,-0.022822,-0.16484,-0.25702,0.3509,0.13913,0.01455,-0.13494,-0.25702 0.27547,0.14255,-0.047327,-0.18262,-0.26213,0.29445,0.15086,-0.0010443,-0.16244,-0.26331,0.28971,0.15917,-0.03902,-0.15413,-0.26331,0.26479,0.17341,-0.030713,-0.17312,-0.25026,0.2992,0.16391,0.0060761,-0.14939,-0.24077 0.3109,0.098305,-0.02075,-0.14065,-0.25886,0.28114,0.10936,-0.044561,-0.14831,-0.26226,0.29475,0.12467,-0.037757,-0.16191,-0.25206,0.35597,0.12467,-0.010545,-0.13555,-0.25121,0.32111,0.13062,-0.034356,-0.1381,-0.25461 0.32895,0.13169,-0.042083,-0.14882,-0.25082,0.32112,0.15591,-0.025508,-0.15283,-0.23552,0.29252,0.12076,-0.029151,-0.16667,-0.24955,0.30564,0.11639,-0.05957,-0.15829,-0.25283,0.2907,0.14462,-0.036801,-0.15829,-0.24154 0.26204,0.17346,0.015373,-0.1577,-0.264,0.27022,0.14075,0.0085585,-0.16588,-0.28445,0.26886,0.15438,-0.020061,-0.14953,-0.28445,0.27294,0.17482,0.016735,-0.14817,-0.25855,0.27431,0.15438,-0.00098123,-0.1577,-0.29535 0.26267,0.16159,0.0012548,-0.13119,-0.27758,0.28009,0.17553,0.03611,-0.15559,-0.28107,0.26615,0.14765,0.0012548,-0.14862,-0.28456,0.26615,0.14416,-0.026629,-0.15211,-0.2985,0.28009,0.14416,0.011711,-0.14862,-0.2741 0.29098,0.10339,0.0059444,-0.12561,-0.26448,0.30804,0.13263,0.010817,-0.15485,-0.24742,0.32996,0.12045,0.0083806,-0.12074,-0.26691,0.30073,0.13019,-0.02329,-0.18408,-0.26448,0.28124,0.10339,-0.015982,-0.17921,-0.27909 0.30113,0.11048,-0.03373,-0.15105,-0.28549,0.29135,0.16181,0.00048885,-0.1535,-0.27327,0.28646,0.12759,0.00048885,-0.15839,-0.29282,0.27669,0.14714,-0.023954,-0.13883,-0.28549,0.25713,0.16914,0.039597,-0.12417,-0.24882 0.25219,0.13043,-0.033528,-0.16448,-0.26676,0.30738,0.12611,0.016797,-0.14392,-0.26946,0.30089,0.11691,-0.031905,-0.145,-0.28678,0.28357,0.13801,-0.024329,-0.16394,-0.25647,0.32903,0.13855,0.044936,-0.14392,-0.25431 0.2749,0.14125,0.0016632,-0.10823,-0.27455,0.27045,0.15462,-0.016157,-0.13644,-0.28049,0.28678,0.086308,0.0061182,-0.16466,-0.27603,0.31203,0.15165,-0.0027918,-0.12308,-0.29088,0.27936,0.16947,-0.031007,-0.14684,-0.28346 0.31313,0.12585,-0.041618,-0.15755,-0.26953,0.30916,0.15359,-0.013873,-0.16548,-0.23782,0.29232,0.10999,-0.015855,-0.17341,-0.25367,0.30718,0.12089,-0.052518,-0.16548,-0.24773,0.30718,0.15161,-0.019818,-0.15458,-0.22196 0.30355,0.15663,0.03291,-0.1403,-0.27021,0.2618,0.14735,-0.018125,-0.16195,-0.29341,0.25097,0.13807,0.0066191,-0.18051,-0.26248,0.31129,0.13653,0.015898,-0.14185,-0.26402,0.27881,0.13189,-0.011939,-0.1403,-0.28722 0.31266,0.14261,-0.022583,-0.11295,-0.2762,0.29323,0.13678,-0.016752,-0.12267,-0.2694,0.32626,0.091108,-0.021611,-0.12656,-0.28009,0.3078,0.12803,-0.036187,-0.10907,-0.27134,0.28837,0.095967,-0.040074,-0.13433,-0.283 0.30253,0.10961,-0.058642,-0.1551,-0.27732,0.30362,0.15674,-0.017538,-0.1562,-0.24169,0.29705,0.10852,-0.012057,-0.16223,-0.25101,0.32281,0.11783,-0.05645,-0.15017,-0.25978,0.30965,0.15017,-0.0087689,-0.14195,-0.22964 0.32863,0.1473,0.010911,-0.14253,-0.25412,0.28989,0.14885,-0.023186,-0.13323,-0.27426,0.26199,0.13955,-0.015437,-0.21382,-0.25877,0.30539,0.13335,-0.0014879,-0.15957,-0.25412,0.27749,0.12405,-0.032485,-0.13788,-0.26651 0.28499,0.10891,-0.010891,-0.15611,-0.23779,0.32855,0.12525,-0.056271,-0.13251,-0.26865,0.28499,0.13977,-0.0036304,-0.14522,-0.24505,0.30677,0.11073,-0.012706,-0.167,-0.26139,0.34307,0.11073,-0.030859,-0.14703,-0.26865 0.321,0.15021,-0.020588,-0.14638,-0.26524,0.31177,0.17444,-0.0055855,-0.15561,-0.25139,0.27254,0.11213,0.00018464,-0.18331,-0.25601,0.291,0.11674,-0.04136,-0.16715,-0.25601,0.28638,0.14328,-0.025204,-0.17061,-0.23524 0.2829,0.097094,-0.050375,-0.16835,-0.29222,0.27111,0.14428,-0.020882,-0.1831,-0.25388,0.3183,0.14723,0.0027134,-0.15065,-0.26863,0.2947,0.15608,-0.014983,-0.13591,-0.26273,0.2888,0.16788,0.0027134,-0.14181,-0.23029 0.33626,0.16997,0.0070567,-0.10605,-0.25461,0.27801,0.1514,-0.0064489,-0.15163,-0.26221,0.27295,0.1151,-0.0039166,-0.15417,-0.2926,0.30165,0.13789,-0.019955,-0.13053,-0.27741,0.24931,0.12523,-0.030084,-0.17274,-0.28247 0.30313,0.12268,0.0015552,-0.15995,-0.26911,0.30861,0.12019,-0.03234,-0.143,-0.26163,0.29515,0.19795,0.0050444,-0.15247,-0.24419,0.29316,0.092275,-0.0044263,-0.15546,-0.27061,0.29665,0.10773,-0.03882,-0.1415,-0.27061 0.30145,0.15105,-0.017058,-0.14092,-0.27895,0.28199,0.12273,-0.01175,-0.16924,-0.25771,0.3333,0.17582,-0.040062,-0.125,-0.27187,0.29084,0.15105,-0.04714,-0.14269,-0.26833,0.25899,0.10858,-0.0046715,-0.15331,-0.24709 0.33327,0.10862,-0.025418,-0.12471,-0.28109,0.27245,0.11731,-0.026659,-0.15077,-0.26992,0.33451,0.12228,0.0031276,-0.11354,-0.26123,0.32334,0.11235,-0.031624,-0.12471,-0.2724,0.27245,0.12352,-0.025418,-0.15698,-0.25875 0.29591,0.16213,-0.025004,-0.14206,-0.25912,0.28715,0.15974,-0.027393,-0.17312,-0.25912,0.27839,0.11674,-0.01306,-0.16914,-0.27345,0.27521,0.17965,-0.017837,-0.1333,-0.25992,0.26645,0.18602,-0.021819,-0.17073,-0.26231 0.24962,0.1811,0.0086784,-0.14091,-0.24368,0.27702,0.14913,0.0041108,-0.16489,-0.26994,0.28159,0.15027,-0.035855,-0.14434,-0.2905,0.29986,0.17197,-0.013018,-0.16032,-0.26423,0.28844,0.12287,-0.0095919,-0.17631,-0.27109 0.28608,0.13372,-0.064228,-0.14497,-0.22701,0.29259,0.10897,-0.012137,-0.13976,-0.27129,0.30952,0.11549,-0.048601,-0.14236,-0.2765,0.31603,0.14674,0.0060946,-0.14627,-0.24524,0.31734,0.12069,0.0021878,-0.14497,-0.29213 0.30097,0.14505,-0.015518,-0.15567,-0.24941,0.31861,0.10792,-0.0545,-0.15195,-0.26426,0.28241,0.13391,-0.05914,-0.14453,-0.26054,0.31954,0.13484,-0.0025245,-0.14174,-0.24291,0.33067,0.094929,-0.030368,-0.14453,-0.25126 0.26427,0.14741,-0.002838,-0.15309,-0.31586,0.28097,0.16411,0.026377,-0.12805,-0.27829,0.27679,0.14741,-0.002838,-0.15309,-0.27412,0.26427,0.10567,0.0055091,-0.14891,-0.29081,0.29349,0.16411,0.0013355,-0.12805,-0.26577 0.30097,0.11904,-0.020215,-0.15722,-0.26279,0.31894,0.11006,-0.053906,-0.13252,-0.25156,0.30771,0.16621,-0.031445,-0.12353,-0.23359,0.29423,0.10556,-0.031445,-0.13926,-0.27177,0.32343,0.13252,-0.049413,-0.15722,-0.26279 0.27082,0.14223,0.030862,-0.15973,-0.29062,0.29953,0.1606,0.023973,-0.13792,-0.27225,0.26738,0.15831,-0.028841,-0.15858,-0.26995,0.26394,0.13075,-0.031138,-0.1448,-0.28947,0.29608,0.15831,-0.032286,-0.12414,-0.26306 0.26038,0.095943,-0.02027,-0.18313,-0.27009,0.3094,0.12836,-0.017108,-0.14439,-0.27167,0.28094,0.14338,-0.021061,-0.15704,-0.26139,0.29358,0.11492,0.0066091,-0.16811,-0.25428,0.34497,0.15365,0.016886,-0.12542,-0.25507 0.32535,0.15035,-0.01026,-0.15889,-0.2308,0.30857,0.1096,-0.029438,-0.16128,-0.25478,0.27261,0.15275,-0.043821,-0.15409,-0.25478,0.30617,0.15515,-0.015054,-0.16128,-0.238,0.29419,0.12638,-0.060602,-0.15409,-0.27395 0.24812,0.16753,-0.032895,-0.15481,-0.26638,0.28118,0.15927,-0.0039672,-0.13621,-0.27052,0.27291,0.1634,-0.037028,-0.13828,-0.27465,0.27291,0.17167,-0.030829,-0.1734,-0.26638,0.30184,0.1696,-0.0039672,-0.14861,-0.27052 0.29805,0.10907,-0.038189,-0.14863,-0.28117,0.31278,0.11398,-0.006283,-0.14372,-0.24681,0.30787,0.084527,-0.006283,-0.14127,-0.26644,0.31278,0.11398,-0.03328,-0.14372,-0.25908,0.34959,0.10416,-0.0087374,-0.14127,-0.2419 0.31074,0.13481,0.00027597,-0.13426,-0.27225,0.33144,0.16241,-0.010073,-0.12046,-0.25155,0.28315,0.13136,-0.051469,-0.16876,-0.27569,0.27625,0.11066,-0.044569,-0.13426,-0.29639,0.28315,0.13826,-0.030771,-0.12046,-0.25155 0.29581,0.13198,0.017678,-0.14996,-0.24712,0.27104,0.13198,-0.0089917,-0.16139,-0.26236,0.25771,0.15674,-0.031852,-0.18425,-0.2414,0.3282,0.16055,-0.024232,-0.15568,-0.26236,0.28247,0.15674,-0.016612,-0.14996,-0.29474 0.2796,0.11962,-0.02127,-0.15398,-0.26397,0.33869,0.12053,-0.0076355,-0.11308,-0.27488,0.31233,0.099625,-0.033996,-0.11035,-0.27669,0.28597,0.1169,-0.033087,-0.13762,-0.27669,0.3296,0.10508,-0.013998,-0.12308,-0.2676 0.28632,0.15132,-0.033906,-0.15949,-0.2882,0.3083,0.14504,0.022604,-0.14065,-0.28506,0.28004,0.12621,-0.015069,-0.14065,-0.31332,0.2769,0.12621,-0.0025116,-0.12809,-0.27565,0.30516,0.10737,-0.0087905,-0.11553,-0.22855 0.31744,0.1153,-0.019049,-0.14182,-0.26542,0.28809,0.13721,-0.0083007,-0.16456,-0.25344,0.35134,0.12481,0.010715,-0.13645,-0.2617,0.31083,0.095458,-0.014915,-0.1443,-0.26418,0.28231,0.081816,-0.021529,-0.16456,-0.25509 0.32235,0.10606,-0.0028251,-0.13819,-0.26473,0.31647,0.098701,-0.033724,-0.13084,-0.27062,0.27674,0.11636,-0.027839,-0.15438,-0.26326,0.32824,0.11194,0.010417,-0.12495,-0.25885,0.32383,0.10606,-0.044024,-0.13819,-0.26473 0.31359,0.13245,-0.019006,-0.1467,-0.26549,0.31359,0.12948,-0.019006,-0.13185,-0.28627,0.28984,0.14432,0.0047514,-0.117,-0.2447,0.26014,0.11463,0.040387,-0.18234,-0.2744,0.28687,0.12057,-0.013066,-0.15858,-0.29221 0.28432,0.14233,0.0045104,-0.14166,-0.26277,0.29268,0.17156,0.0086868,-0.14166,-0.27948,0.28432,0.15903,-0.033077,-0.13331,-0.27113,0.30938,0.12145,-0.0038422,-0.17507,-0.23772,0.29268,0.083861,-0.020548,-0.18342,-0.27113 0.30856,0.16833,-0.00046743,-0.1355,-0.26405,0.26701,0.17742,-0.030331,-0.15238,-0.25885,0.2709,0.13327,-0.010855,-0.17705,-0.25626,0.29038,0.16833,-0.019944,-0.14589,-0.26924,0.26181,0.16313,-0.048509,-0.16926,-0.27054 0.32074,0.14763,-0.027199,-0.15366,-0.24937,0.29724,0.082675,-0.015106,-0.15539,-0.26215,0.32039,0.08924,-0.037219,-0.14675,-0.28081,0.31037,0.14314,-0.0047405,-0.13742,-0.24729,0.31037,0.094077,-0.00024877,-0.14156,-0.25697 0.31145,0.14798,0.014626,-0.11873,-0.2865,0.25123,0.14798,-0.011185,-0.11873,-0.26929,0.31145,0.13077,0.014626,-0.13164,-0.26929,0.29424,0.12217,-0.011185,-0.13164,-0.30801,0.25123,0.14798,-0.041297,-0.16175,-0.2865 0.32796,0.14999,0.021111,-0.1139,-0.25198,0.30034,0.16226,-0.012642,-0.13538,-0.25812,0.27886,0.13771,-0.018779,-0.163,-0.27653,0.30034,0.12544,0.0027002,-0.14765,-0.27653,0.25431,0.094754,-0.052532,-0.15379,-0.29494 0.28728,0.09905,-0.026776,-0.15763,-0.28145,0.2591,0.12119,-0.033822,-0.14002,-0.26987,0.34114,0.13076,0.0099654,-0.14555,-0.24974,0.34466,0.11314,-0.0096634,-0.14153,-0.26987,0.28426,0.14485,-0.020233,-0.13197,-0.25729 0.3033,0.15576,-0.016123,-0.13933,-0.27014,0.27592,0.16792,-0.014602,-0.18344,-0.25493,0.30938,0.16032,0.0097347,-0.14693,-0.25645,0.27592,0.14967,-0.028291,-0.15758,-0.2671,0.23637,0.16032,-0.028291,-0.17735,-0.26405 0.24859,0.12287,-0.014707,-0.15703,-0.29224,0.28417,0.13711,0.01613,-0.15466,-0.27089,0.2818,0.13711,-0.0028465,-0.1428,-0.29224,0.27231,0.15134,0.0066418,-0.12857,-0.29224,0.29366,0.17031,0.049339,-0.1594,-0.26377 0.27959,0.14552,-0.0019664,-0.1271,-0.24777,0.30194,0.13658,0.011441,-0.15839,-0.25671,0.29747,0.1187,-0.015374,-0.13604,-0.31034,0.30194,0.16339,-0.0019664,-0.1718,-0.22989,0.28406,0.10082,-0.019843,-0.18073,-0.28352 0.26844,0.1186,-0.010477,-0.14333,-0.27586,0.26404,0.17526,-0.028736,-0.13703,-0.27649,0.28481,0.15795,0.031393,-0.15183,-0.25823,0.2908,0.14032,-0.033773,-0.15718,-0.28594,0.27065,0.18187,0.015338,-0.1556,-0.28499 0.28554,0.16051,0.0027387,-0.15503,-0.25625,0.30042,0.1099,0.0206,-0.14908,-0.30387,0.30935,0.15158,0.0027387,-0.11336,-0.25327,0.26172,0.14265,-0.0091686,-0.17289,-0.2622,0.26768,0.11883,0.0057155,-0.16694,-0.29792 0.25475,0.14631,-0.021295,-0.15193,-0.28748,0.27694,0.11673,0.0008873,-0.147,-0.3072,0.30158,0.17342,0.010746,-0.11249,-0.27763,0.26954,0.1537,0.0008873,-0.13714,-0.26037,0.28186,0.13152,0.025534,-0.14207,-0.29981 0.31339,0.11203,-0.0065042,-0.15011,-0.24661,0.31111,0.091514,-0.036138,-0.14707,-0.26181,0.27843,0.14546,-0.054374,-0.14479,-0.25573,0.3301,0.13331,-0.00042551,-0.15011,-0.23749,0.32706,0.10291,-0.028539,-0.15543,-0.27017 0.23981,0.13435,-0.038724,-0.15501,-0.29833,0.27226,0.12894,-0.017091,-0.16312,-0.28751,0.30471,0.15598,-0.0062738,-0.11174,-0.28481,0.27496,0.17491,-0.0062738,-0.13608,-0.27129,0.30471,0.15057,0.026177,-0.13337,-0.25777 0.26782,0.13123,-0.014457,-0.17626,-0.28062,0.30634,0.13123,0.01286,-0.13493,-0.28763,0.29163,0.12983,-0.0074527,-0.12022,-0.29533,0.25801,0.13894,0.01216,-0.14054,-0.28693,0.30004,0.12003,0.031772,-0.10271,-0.28483 0.28501,0.14256,-0.0037475,-0.16674,-0.23989,0.3017,0.10021,-0.017865,-0.17059,-0.26941,0.32351,0.12331,-0.048666,-0.16417,-0.23861,0.31838,0.14769,-0.016581,-0.16417,-0.2232,0.31068,0.11304,-0.017865,-0.16802,-0.25657 0.27058,0.092858,-0.024195,-0.16883,-0.26504,0.31777,0.12902,-0.023582,-0.12531,-0.26688,0.27733,0.13269,-0.035226,-0.14738,-0.27056,0.30061,0.1045,-0.008874,-0.1578,-0.26014,0.35883,0.14618,-0.0045841,-0.11612,-0.25585 0.30635,0.13962,-0.0025146,-0.11185,-0.32231,0.28175,0.12868,0.0084185,-0.12551,-0.27038,0.26808,0.09315,0.0029519,-0.13371,-0.29771,0.30088,0.11502,0.0029519,-0.14738,-0.27858,0.28995,0.15875,-0.0025146,-0.15558,-0.24851 0.30549,0.16005,-0.0042632,-0.11639,-0.26405,0.30771,0.15561,0.026823,-0.12639,-0.24518,0.2966,0.12563,0.00017763,-0.14304,-0.28182,0.24775,0.12563,-0.033129,-0.15414,-0.30069,0.28106,0.10787,-0.0042632,-0.17746,-0.28959 0.24317,0.17458,-0.012374,-0.14822,-0.24371,0.28218,0.1423,-0.012374,-0.18184,-0.25582,0.31849,0.12212,-0.0043039,-0.17512,-0.28944,0.31042,0.15575,-0.0043039,-0.12132,-0.26523,0.27276,0.13423,-0.0083389,-0.15629,-0.27733 0.2679,0.12766,-0.03514,-0.18344,-0.26887,0.28402,0.095425,-0.022244,-0.17376,-0.28499,0.30336,0.13733,-0.033528,-0.15442,-0.26887,0.30336,0.16796,0.011606,-0.1383,-0.23502,0.31303,0.14701,0.022889,-0.13347,-0.24952 0.297,0.1292,0.013843,-0.13298,-0.28819,0.25296,0.14389,-0.026009,-0.13927,-0.29658,0.24247,0.15857,-0.017619,-0.16234,-0.27561,0.30329,0.16067,0.018038,-0.12459,-0.27141,0.28442,0.15228,-0.00083899,-0.12459,-0.29658 0.31265,0.15678,-0.0057756,-0.1253,-0.25057,0.31552,0.12523,0.0028304,-0.14921,-0.25439,0.33751,0.14053,-0.0038632,-0.12339,-0.27448,0.26579,0.13479,-0.035419,-0.15208,-0.27734,0.25336,0.092716,-0.029681,-0.17885,-0.27734 0.29338,0.17281,-0.012181,-0.15389,-0.25797,0.29905,0.13261,-0.01888,-0.16831,-0.29456,0.29235,0.12901,-0.062164,-0.15904,-0.24303,0.29029,0.16456,-0.0029062,-0.15955,-0.22603,0.28308,0.13416,-0.0039368,-0.17656,-0.25231 0.26758,0.11039,-0.026848,-0.16159,-0.3088,0.28255,0.15779,-0.024353,-0.14911,-0.26888,0.25511,0.13035,-0.0093818,-0.16408,-0.27387,0.29752,0.14282,0.01058,-0.14412,-0.27886,0.31,0.18275,0.023055,-0.11917,-0.24143 0.25851,0.11333,-0.014037,-0.18683,-0.2759,0.28523,0.12758,-0.025616,-0.16545,-0.28391,0.28879,0.15697,0.010902,-0.15031,-0.25719,0.27811,0.14272,0.030497,-0.17258,-0.26432,0.30572,0.16054,0.030497,-0.12537,-0.26788 0.26484,0.16221,-0.0072772,-0.15033,-0.28561,0.2835,0.17154,0.014492,-0.14878,-0.25452,0.28972,0.16377,-0.0057222,-0.14411,-0.29339,0.23841,0.16532,-0.022827,-0.16277,-0.2825,0.26795,0.15288,0.012937,-0.15966,-0.27006 0.29868,0.088996,-0.020486,-0.14296,-0.28027,0.32466,0.13353,-0.013064,-0.10956,-0.25615,0.29126,0.11497,-0.029764,-0.15224,-0.25615,0.29868,0.087141,-0.026053,-0.14296,-0.28955,0.3358,0.14095,-0.022342,-0.11512,-0.25801 0.33448,0.1353,-0.0043187,-0.11973,-0.28727,0.28794,0.14088,-0.024796,-0.11229,-0.27796,0.31773,0.14088,0.0012658,-0.11973,-0.25562,0.29911,0.10551,-0.019211,-0.13835,-0.29472,0.24326,0.1111,-0.041549,-0.14021,-0.28169 0.28688,0.13793,-0.024366,-0.15553,-0.25335,0.34246,0.11347,-0.017696,-0.11996,-0.25335,0.30911,0.11569,-0.046598,-0.14664,-0.26669,0.28021,0.10902,-0.042151,-0.16443,-0.25558,0.34023,0.10013,0.0023121,-0.12441,-0.26669 0.2987,0.12402,-0.039739,-0.12708,-0.26537,0.28414,0.1131,-0.039739,-0.14164,-0.27992,0.32781,0.12402,-0.017905,-0.090687,-0.26537,0.29142,0.13858,-0.039739,-0.13072,-0.28356,0.29506,0.16041,-0.003348,-0.18167,-0.25081 0.29659,0.14233,0.0086385,-0.16619,-0.24846,0.28631,0.1629,-0.0016454,-0.14562,-0.2896,0.26574,0.14233,-0.032497,-0.16619,-0.26903,0.26574,0.12176,-0.042781,-0.15591,-0.2896,0.29659,0.17318,0.029206,-0.12505,-0.25874 0.35274,0.12493,-0.016211,-0.13672,-0.2432,0.31808,0.12081,-0.0451,-0.14167,-0.25475,0.28424,0.11998,-0.036021,-0.16478,-0.2465,0.33128,0.10925,-0.022814,-0.14167,-0.25475,0.29579,0.10017,-0.051703,-0.1425,-0.25888 0.29403,0.12481,-0.044413,-0.14659,-0.25754,0.31958,0.16073,-0.03244,-0.13222,-0.25275,0.2645,0.15435,-0.027651,-0.17293,-0.25275,0.26689,0.14157,-0.038826,-0.17133,-0.26951,0.34113,0.13838,-0.028449,-0.13142,-0.24716 0.26101,0.15496,0.022402,-0.17975,-0.29574,0.3074,0.14833,-0.010737,-0.15324,-0.2858,0.28421,0.13508,-0.010737,-0.12673,-0.29574,0.28089,0.12845,-0.017365,-0.13998,-0.27586,0.27426,0.12514,0.038972,-0.11016,-0.25929 0.25683,0.12777,-0.011699,-0.15117,-0.27086,0.2995,0.11528,0.016403,-0.14909,-0.26253,0.33385,0.13818,-0.0033722,-0.096005,-0.27294,0.29118,0.11424,-0.03876,-0.1418,-0.28439,0.32657,0.094464,-0.01274,-0.14284,-0.27607 0.31383,0.086757,-0.014165,-0.14392,-0.27278,0.31383,0.096669,-0.032187,-0.1277,-0.26737,0.29761,0.1228,0.0038567,-0.14392,-0.25746,0.29581,0.099373,-0.0033521,-0.14212,-0.27548,0.35258,0.10298,-0.016868,-0.13491,-0.25386 0.30286,0.091269,-0.011666,-0.15463,-0.269,0.34289,0.14845,-0.017385,-0.10888,-0.26328,0.2857,0.14845,-0.017385,-0.16035,-0.25185,0.27998,0.079831,-0.03454,-0.15463,-0.28616,0.30286,0.14845,-0.011666,-0.13176,-0.25757 0.29461,0.12177,-0.012043,-0.11798,-0.29081,0.25558,0.099466,-0.012043,-0.16258,-0.27966,0.32806,0.11619,0.010259,-0.14028,-0.27966,0.31133,0.099466,-0.017618,-0.12355,-0.27966,0.30018,0.17195,-0.0064675,-0.14028,-0.24621 0.31813,0.17164,-0.02639,-0.14098,-0.22813,0.2829,0.1379,-0.03084,-0.16694,-0.23518,0.31071,0.11379,-0.034919,-0.16694,-0.27004,0.32666,0.15718,-0.034919,-0.15174,-0.25075,0.27214,0.1149,-0.039369,-0.17733,-0.25149 0.29262,0.12195,-0.010476,-0.13113,-0.27532,0.27791,0.17197,-0.031075,-0.14878,-0.25472,0.30734,0.18963,-0.039903,-0.13701,-0.23707,0.30734,0.13077,-0.0045907,-0.13996,-0.27826,0.2632,0.11312,-0.039903,-0.14584,-0.30181 0.26721,0.1247,-0.040081,-0.14696,-0.28948,0.27612,0.15142,-0.0044535,-0.16032,-0.2583,0.28502,0.1247,0.0089069,-0.15587,-0.30284,0.26275,0.15142,-0.0044535,-0.1336,-0.29393,0.31174,0.16032,0.048988,-0.1336,-0.24939 0.28663,0.11716,-0.033047,-0.12548,-0.29688,0.28086,0.11139,-0.015714,-0.13319,-0.26799,0.29241,0.095981,-0.0080113,-0.13896,-0.28918,0.30974,0.1499,-0.013789,-0.12548,-0.25836,0.35789,0.10176,-0.011863,-0.13704,-0.24873 0.34166,0.15744,-0.014668,-0.12537,-0.26289,0.30966,0.17733,-0.00083028,-0.13143,-0.23954,0.28285,0.11247,-0.0060195,-0.15997,-0.26548,0.27679,0.10123,-0.044074,-0.15478,-0.2897,0.26382,0.13063,-0.027641,-0.16343,-0.26808 0.30509,0.15871,0.023421,-0.103,-0.28043,0.27182,0.15428,0.0056778,-0.16732,-0.26934,0.26961,0.13653,-0.0076295,-0.17619,-0.2893,0.27848,0.15871,0.014549,-0.13848,-0.27599,0.24743,0.1454,-0.0098474,-0.17841,-0.27378 0.25234,0.14,0.012682,-0.11963,-0.27691,0.25484,0.16497,-0.0047932,-0.16207,-0.27691,0.25484,0.13501,0.0051926,-0.16207,-0.29938,0.30726,0.16497,-0.0047932,-0.11963,-0.27691,0.29478,0.16497,-0.0047932,-0.16706,-0.27691 0.28994,0.16777,0.0066571,-0.14207,-0.27485,0.2864,0.14653,-0.00042492,-0.15092,-0.29964,0.28817,0.1359,-0.014589,-0.13852,-0.30318,0.26338,0.16069,0.029674,-0.13675,-0.26423,0.23328,0.13413,0.019051,-0.14561,-0.29079 0.31229,0.13609,0.024109,-0.11093,-0.27396,0.30735,0.1295,-0.026941,-0.11422,-0.2789,0.29747,0.15256,0.010935,-0.1241,-0.25419,0.281,0.096566,-0.0071799,-0.15045,-0.29042,0.27606,0.11962,-0.059876,-0.15704,-0.29536 0.27511,0.17466,-0.026252,-0.12336,-0.26065,0.26842,0.16796,-0.032949,-0.15015,-0.25395,0.29521,0.13448,-0.0061613,-0.10997,-0.29413,0.26842,0.15457,-0.012858,-0.14345,-0.30418,0.26842,0.17466,-0.019555,-0.16354,-0.28074 0.28425,0.151,-0.015574,-0.15091,-0.28001,0.27176,0.1739,0.0073292,-0.14467,-0.24878,0.27384,0.1385,0.005247,-0.18006,-0.28001,0.25094,0.16141,-0.019739,-0.17382,-0.2925,0.28634,0.15308,0.038561,-0.14675,-0.26335 0.29177,0.15767,0.01163,-0.1384,-0.28311,0.27318,0.14174,-0.013595,-0.13309,-0.29772,0.24796,0.16299,-0.024217,-0.13707,-0.28444,0.25194,0.17626,0.02889,-0.15433,-0.26187,0.2838,0.15502,-0.0096124,-0.15433,-0.29108 0.27729,0.20009,-0.023633,-0.13235,-0.25209,0.28202,0.16701,-0.031511,-0.1481,-0.27729,0.28832,0.16386,-0.061446,-0.14337,-0.27572,0.27729,0.15755,-0.023633,-0.1481,-0.25366,0.27257,0.13392,-0.01418,-0.15283,-0.28202 0.31517,0.12463,0.018914,-0.11469,-0.25062,0.31517,0.12347,-0.027557,-0.12398,-0.28431,0.30006,0.14555,-0.020587,-0.14373,-0.21925,0.28612,0.10024,-0.0066453,-0.16116,-0.27966,0.29309,0.11999,-0.049631,-0.15303,-0.30754 0.25715,0.10955,-0.033947,-0.19794,-0.28814,0.28585,0.15055,-0.017548,-0.14054,-0.25944,0.28175,0.14235,-0.013448,-0.16514,-0.27994,0.30225,0.11775,0.015252,-0.15694,-0.25124,0.31864,0.17515,0.019352,-0.12825,-0.24304 0.2803,0.096729,-0.023174,-0.1696,-0.3033,0.30895,0.12962,-0.023174,-0.12292,-0.27147,0.2803,0.13705,-0.021052,-0.15581,-0.26829,0.28348,0.11795,-0.0040746,-0.1314,-0.28526,0.31425,0.17419,-0.0061967,-0.078351,-0.25874 0.25589,0.15252,-0.059045,-0.18165,-0.25858,0.28955,0.16454,-0.025387,-0.1504,-0.2706,0.28955,0.15252,-0.04462,-0.15521,-0.27541,0.27032,0.17656,-0.015771,-0.15761,-0.25378,0.29917,0.16454,0.013078,-0.12396,-0.25618 0.29412,0.084909,-0.024676,-0.15265,-0.29672,0.32707,0.13472,-0.023909,-0.11357,-0.2653,0.29412,0.12476,-0.023909,-0.14959,-0.2653,0.29641,0.084909,-0.013181,-0.13886,-0.2791,0.32937,0.13472,-0.0078165,-0.10667,-0.24384 0.28289,0.16296,-0.019283,-0.16155,-0.26384,0.33345,0.15708,-0.0051734,-0.16743,-0.23092,0.2923,0.11828,-0.027513,-0.15685,-0.27442,0.26643,0.14415,-0.056907,-0.1298,-0.27207,0.29935,0.10652,0.020693,-0.15802,-0.26031 0.28287,0.14885,-0.0077037,-0.15975,-0.26449,0.3099,0.14209,-0.041492,-0.14173,-0.26224,0.31891,0.18151,-0.024598,-0.13722,-0.2307,0.27499,0.11281,-0.025724,-0.15074,-0.269,0.31216,0.088029,-0.047123,-0.12484,-0.28476 0.32056,0.14215,-0.026003,-0.1675,-0.24132,0.2693,0.16676,0.017062,-0.1757,-0.24132,0.26519,0.1401,-0.011648,-0.18391,-0.25568,0.30416,0.1319,-0.034205,-0.1757,-0.25773,0.2898,0.15446,-0.0034451,-0.1716,-0.25568 0.29307,0.10721,-0.052017,-0.15424,-0.25523,0.30236,0.081805,-0.031572,-0.16415,-0.24965,0.32157,0.14748,-0.03467,-0.12388,-0.25399,0.30794,0.16482,-0.050158,-0.14805,-0.25213,0.31166,0.15739,-0.026616,-0.15362,-0.24531 0.30311,0.16692,-0.049587,-0.11943,-0.23466,0.27168,0.132,-0.049587,-0.16133,-0.22768,0.28914,0.11803,-0.014666,-0.15784,-0.29752,0.32057,0.14597,-0.025143,-0.14736,-0.28355,0.28565,0.15993,-0.018159,-0.13689,-0.26958 0.29714,0.15849,0.014505,-0.16148,-0.2628,0.31848,0.14783,0.035837,-0.11348,-0.27347,0.28648,0.13716,-0.0014932,-0.14548,-0.2788,0.23848,0.12649,-0.022824,-0.15081,-0.28947,0.26515,0.12649,-0.006826,-0.14015,-0.30546 0.29104,0.13329,0.014986,-0.1329,-0.26106,0.2516,0.16287,-0.044168,-0.16248,-0.27092,0.26146,0.13329,-0.014591,-0.18219,-0.27092,0.30089,0.14315,0.0051266,-0.1329,-0.29064,0.31075,0.17273,-0.034309,-0.11318,-0.27092 0.28013,0.16725,-0.0020771,-0.11722,-0.28429,0.2711,0.1221,0.018242,-0.14431,-0.28429,0.26659,0.16048,0.011469,-0.10819,-0.29783,0.26659,0.16499,-0.0065924,-0.1398,-0.30235,0.26659,0.13113,0.011469,-0.14883,-0.30235 0.29289,0.19899,-0.043792,-0.14686,-0.26138,0.28373,0.16234,-0.057534,-0.15144,-0.27512,0.26999,0.14402,-0.023178,-0.16289,-0.24763,0.32038,0.12111,-0.0025652,-0.13312,-0.2568,0.28602,0.11653,-0.018598,-0.13999,-0.27512 0.31771,0.15906,0.010006,-0.13462,-0.25859,0.30148,0.17972,-0.0077037,-0.12429,-0.22907,0.2727,0.14504,-0.020986,-0.15676,-0.25121,0.28303,0.10593,-0.030579,-0.16561,-0.30582,0.26753,0.1384,-0.046075,-0.16561,-0.28368 0.30888,0.14118,-0.0080029,-0.095896,-0.2844,0.30078,0.16084,0.0070315,-0.10515,-0.24046,0.28228,0.10649,-0.003377,-0.13869,-0.29019,0.28922,0.11343,-0.033446,-0.14331,-0.31679,0.27418,0.13078,-0.016098,-0.1595,-0.27978 0.28909,0.1108,-0.064183,-0.13682,-0.25237,0.33861,0.13721,-0.027866,-0.15002,-0.23917,0.32541,0.097595,-0.041072,-0.15993,-0.24907,0.29569,0.13391,-0.050977,-0.13682,-0.25898,0.32871,0.12401,-0.021262,-0.15002,-0.24247 0.33621,0.13824,-0.0044812,-0.12725,-0.22701,0.31166,0.10448,0.00012277,-0.15488,-0.2577,0.32086,0.10755,-0.041313,-0.15181,-0.26691,0.29938,0.14591,-0.029036,-0.17022,-0.23621,0.2825,0.10448,-0.038243,-0.18557,-0.26077 0.33294,0.12445,-0.0026062,-0.13292,-0.24368,0.35249,0.13748,-0.0026062,-0.11337,-0.26648,0.28082,0.1277,-0.015637,-0.13943,-0.26974,0.25476,0.10164,-0.025411,-0.17853,-0.27952,0.28082,0.12445,-0.022153,-0.13943,-0.28603 0.29344,0.14672,-0.033345,-0.13338,-0.2801,0.27343,0.16006,-0.040014,-0.14672,-0.30678,0.25342,0.12671,0.020007,-0.17339,-0.29344,0.29344,0.16006,0.020007,-0.14672,-0.26009,0.27343,0.16006,0.013338,-0.13338,-0.24675 0.2977,0.099233,-0.014176,-0.11341,-0.2977,0.2977,0.17011,-0.014176,-0.11341,-0.241,0.26935,0.12759,-0.014176,-0.15594,-0.241,0.32605,0.14176,0,-0.14176,-0.2977,0.28352,0.12759,-0.056705,-0.15594,-0.28352 0.27727,0.12893,0.014833,-0.12494,-0.3018,0.24874,0.15175,0.017686,-0.13065,-0.28754,0.28868,0.14605,0.026243,-0.13635,-0.28754,0.27727,0.12323,0.0062756,-0.13065,-0.30465,0.26586,0.15746,0.003423,-0.11924,-0.31036 0.2665,0.12331,0.025044,-0.13499,-0.26414,0.30581,0.13735,0.016621,-0.12376,-0.26414,0.26088,0.13735,0.0053906,-0.16868,-0.27537,0.26088,0.13173,-0.0030322,-0.14061,-0.32029,0.30019,0.17104,-0.014263,-0.12938,-0.30345 0.3161,0.093172,-0.026865,-0.16691,-0.27837,0.26465,0.12175,-0.0011432,-0.14404,-0.26408,0.27323,0.11604,0.013147,-0.14976,-0.2898,0.32753,0.12175,-0.029724,-0.14976,-0.28409,0.3161,0.16176,0.0017148,-0.12404,-0.21835 0.31326,0.18909,-0.016012,-0.16903,-0.23488,0.30616,0.1157,-0.035596,-0.1729,-0.25081,0.28206,0.15056,-0.050876,-0.16193,-0.25188,0.28378,0.15293,-0.006112,-0.16494,-0.24198,0.28141,0.14583,-0.037533,-0.16838,-0.25791 0.31697,0.1017,0.013839,-0.14157,-0.29094,0.30819,0.14893,0.0023064,-0.12345,-0.25305,0.29775,0.10006,-0.0042834,-0.15036,-0.26403,0.30544,0.069852,-0.00098848,-0.15036,-0.30028,0.30489,0.10335,-0.0075783,-0.13169,-0.2547 0.32707,0.12351,-0.042423,-0.15019,-0.23059,0.31338,0.14574,-0.045844,-0.16388,-0.24085,0.33904,0.11495,-0.020185,-0.15361,-0.24427,0.30996,0.10811,-0.056108,-0.14164,-0.24427,0.29286,0.11837,-0.044134,-0.16559,-0.24941 0.28071,0.12036,-0.0032069,-0.14001,-0.29227,0.27629,0.15199,0.036511,-0.15325,-0.26138,0.27114,0.12625,0.030627,-0.17532,-0.2908,0.27629,0.13801,0.010768,-0.16134,-0.28197,0.27629,0.16155,0.037247,-0.17164,-0.26285 0.27091,0.16509,0.029027,-0.11459,-0.2431,0.28603,0.12729,0.0063496,-0.15995,-0.28845,0.27091,0.12729,-0.039004,-0.18263,-0.27333,0.33139,0.14997,0.0063496,-0.15995,-0.27333,0.27091,0.12729,-0.016327,-0.13727,-0.28089 0.32712,0.11452,0.0053437,-0.15554,-0.23599,0.33142,0.085787,-0.01764,-0.15985,-0.26184,0.28977,0.12457,-0.032005,-0.15554,-0.24748,0.33142,0.11595,-0.023386,-0.15267,-0.23886,0.31562,0.091533,-0.043497,-0.15554,-0.25322 0.24814,0.11297,0.020862,-0.12866,-0.27221,0.25771,0.16082,-0.026986,-0.13584,-0.2758,0.27924,0.16201,0.022058,-0.13584,-0.27101,0.29719,0.12732,-0.00066988,-0.13584,-0.29972,0.32948,0.14766,-0.042537,-0.15498,-0.28537 0.2837,0.10104,-0.016909,-0.18391,-0.26533,0.31605,0.15323,-0.013778,-0.10772,-0.26846,0.28578,0.15949,-0.023172,-0.18496,-0.26533,0.28578,0.12191,-0.0022963,-0.19226,-0.25384,0.28996,0.16471,-0.012734,-0.12546,-0.24549 0.30881,0.14867,-0.022961,-0.15682,-0.23647,0.35315,0.13882,-0.010643,-0.13875,-0.24387,0.29731,0.11172,-0.04267,-0.14696,-0.26111,0.25543,0.13307,-0.052524,-0.1716,-0.25701,0.32195,0.11336,-0.032815,-0.15846,-0.24961 0.2647,0.15601,-0.0028426,-0.15751,-0.27456,0.2647,0.13511,0.005518,-0.17423,-0.29964,0.2647,0.12675,-0.011203,-0.11989,-0.308,0.2647,0.17691,0.018059,-0.14079,-0.24948,0.31486,0.14765,0.018059,-0.14497,-0.27456 0.26297,0.088051,-0.016447,-0.18001,-0.29814,0.28796,0.13121,-0.032349,-0.14593,-0.27088,0.28115,0.13349,-0.011904,-0.17092,-0.26861,0.29023,0.1403,0.0199,-0.14366,-0.27088,0.3334,0.16983,0.0199,-0.11186,-0.2368 0.33569,0.14503,0.02826,-0.12989,-0.24222,0.29135,0.1332,-0.011647,-0.14911,-0.26144,0.25736,0.10807,-0.0027787,-0.15945,-0.24813,0.31057,0.13468,-0.0042568,-0.15502,-0.27031,0.31205,0.090338,-0.055988,-0.16832,-0.28804 0.34978,0.16107,-0.015391,-0.12568,-0.25312,0.30812,0.14146,-0.030096,-0.14038,-0.24822,0.2689,0.082642,-0.01294,-0.14528,-0.29724,0.29096,0.13901,-0.027645,-0.11588,-0.27518,0.27381,0.13656,-0.032547,-0.17469,-0.25802 0.34508,0.12605,0.001912,-0.12722,-0.23067,0.31154,0.1339,-0.035187,-0.1422,-0.2485,0.27587,0.1339,-0.058017,-0.16432,-0.2535,0.32724,0.14103,-0.018778,-0.14149,-0.25921,0.27801,0.097513,-0.052309,-0.15861,-0.28204 0.27334,0.18451,-0.01981,-0.15528,-0.26855,0.28001,0.17118,0.0068402,-0.15972,-0.25744,0.28445,0.14675,-0.015368,-0.13974,-0.27299,0.26446,0.16674,-0.068669,-0.13974,-0.27521,0.28223,0.16674,-0.033135,-0.17083,-0.25078 0.31825,0.12255,-0.025913,-0.14513,-0.23061,0.3205,0.12255,-0.052906,-0.14513,-0.25535,0.28676,0.12705,-0.052906,-0.18112,-0.23961,0.33174,0.12705,-0.010167,-0.15413,-0.23511,0.32275,0.10455,-0.048408,-0.15413,-0.25311 0.31365,0.14351,0.016844,-0.12211,-0.25539,0.27206,0.1506,-0.005369,-0.1188,-0.25775,0.29995,0.13642,0.027242,-0.13392,-0.25917,0.28955,0.11421,-0.005369,-0.15377,-0.31116,0.24985,0.13027,-0.034199,-0.16512,-0.32203 0.30616,0.1486,-0.014705,-0.11902,-0.24852,0.29968,0.11551,-0.0067913,-0.14852,-0.27298,0.33493,0.16155,-0.0053525,-0.11255,-0.26578,0.26515,0.14788,-0.022619,-0.19456,-0.27513,0.24932,0.10328,-0.0060719,-0.14564,-0.29384 0.31112,0.11735,-0.030465,-0.1332,-0.25068,0.27644,0.10522,-0.037401,-0.16008,-0.25111,0.34753,0.084842,-0.0066237,-0.15531,-0.27148,0.34363,0.10868,-0.019195,-0.13017,-0.24808,0.30982,0.11692,-0.024397,-0.15618,-0.24721 0.27369,0.15182,0.0038303,-0.16157,-0.25297,0.30851,0.15182,0.043003,-0.1311,-0.27038,0.27369,0.15182,0.0038303,-0.12675,-0.30956,0.26063,0.12135,-0.039695,-0.17027,-0.28344,0.27369,0.13876,0.016888,-0.13545,-0.29214 0.31927,0.12437,-0.038798,-0.11585,-0.27902,0.29207,0.15157,-0.04333,-0.12491,-0.23369,0.25581,0.11531,-0.0252,-0.15211,-0.28355,0.30567,0.14703,-0.029733,-0.18837,-0.27449,0.2966,0.16516,0.015592,-0.15211,-0.24729 0.23497,0.14487,-0.048188,-0.14601,-0.28372,0.26586,0.18091,-0.025021,-0.14343,-0.25798,0.2813,0.12428,-0.01215,-0.15373,-0.2657,0.31863,0.14745,-0.037892,-0.137,-0.27729,0.32635,0.17576,-0.022447,-0.14343,-0.2464 0.32951,0.16126,-0.029547,-0.12683,-0.25727,0.3158,0.17563,-0.0087641,-0.14849,-0.24202,0.27114,0.146,-0.019377,-0.17082,-0.26368,0.27092,0.13671,-0.057183,-0.1779,-0.26214,0.26185,0.14666,-0.03419,-0.1695,-0.24776 0.23533,0.15112,-0.064215,-0.1498,-0.27127,0.30572,0.16769,-0.009,-0.16912,-0.24918,0.3071,0.13318,-0.025564,-0.16084,-0.25747,0.26707,0.16631,-0.042129,-0.1498,-0.26713,0.30849,0.16493,0.013086,-0.1498,-0.25471 0.32625,0.12001,-0.013533,-0.14105,-0.25341,0.33185,0.10921,-0.032433,-0.14334,-0.24573,0.31773,0.12417,-0.013118,-0.15871,-0.22932,0.31129,0.084912,-0.023502,-0.16494,-0.2584,0.32022,0.08325,-0.053409,-0.14272,-0.25528 0.28054,0.1754,0.023521,-0.11862,-0.26952,0.25231,0.14132,0.0098914,-0.12446,-0.31041,0.28444,0.13548,-0.0047121,-0.14393,-0.30068,0.26497,0.15885,0.0089179,-0.15269,-0.27926,0.2601,0.13938,0.025469,-0.16243,-0.29386 0.31565,0.14362,-0.036242,-0.13292,-0.23885,0.31636,0.10807,-0.024867,-0.14999,-0.2488,0.36293,0.12833,-0.026289,-0.12048,-0.26302,0.2858,0.12975,-0.046905,-0.14217,-0.26586,0.28046,0.082834,-0.03091,-0.16172,-0.2648 0.26673,0.10327,0.0034439,-0.14629,-0.31599,0.25737,0.12635,0.011555,-0.16626,-0.28542,0.30292,0.13072,0.033391,-0.13132,-0.2823,0.29793,0.13259,0.017794,-0.12134,-0.29353,0.27484,0.16192,0.025281,-0.14193,-0.26172 0.32442,0.090908,-0.0014119,-0.15075,-0.26751,0.27012,0.14793,-0.023134,-0.12903,-0.28109,0.28641,0.16151,-0.017704,-0.16161,-0.25122,0.26469,0.12621,0.025741,-0.18334,-0.26751,0.3027,0.14521,-0.012273,-0.10188,-0.29738 0.27013,0.11194,-0.060893,-0.18686,-0.26986,0.29064,0.11097,-0.038434,-0.17905,-0.28158,0.2965,0.16077,-0.023787,-0.13999,-0.23959,0.29943,0.151,-0.013046,-0.15171,-0.23861,0.33263,0.151,0.019178,-0.12632,-0.24447 0.32961,0.14705,-0.036624,-0.16698,-0.26524,0.29109,0.17664,-0.01513,-0.15945,-0.24347,0.27406,0.11132,0.0083185,-0.18848,-0.2591,0.31035,0.14342,-0.03439,-0.1695,-0.25575,0.26038,0.14119,-0.008151,-0.16,-0.23119 0.3036,0.16957,-0.01677,-0.12628,-0.25133,0.28889,0.18755,-0.0012422,-0.13364,-0.23416,0.27009,0.13688,-0.019222,-0.16224,-0.29137,0.27009,0.11563,-0.024126,-0.16306,-0.29955,0.25783,0.17529,-0.0094149,-0.1647,-0.2783 0.30646,0.083564,-0.036625,-0.159,-0.28137,0.2715,0.11197,-0.045366,-0.14152,-0.26389,0.32394,0.11853,0.0027097,-0.15244,-0.24204,0.34361,0.10542,-0.021328,-0.13278,-0.25952,0.32176,0.14475,-0.030069,-0.12622,-0.24204 0.23926,0.14336,-0.029484,-0.13654,-0.24805,0.30171,0.14448,-0.012757,-0.12873,-0.26366,0.29613,0.10991,-0.048441,-0.13877,-0.29488,0.29056,0.13444,-0.021678,-0.16553,-0.26031,0.36193,0.12329,0.0095455,-0.13988,-0.26589 0.34304,0.11319,-0.028365,-0.15262,-0.24775,0.31436,0.086333,-0.022903,-0.15763,-0.26186,0.31436,0.091794,-0.050212,-0.14443,-0.26868,0.31436,0.14732,-0.021082,-0.14079,-0.235,0.30981,0.09316,-0.0069729,-0.14761,-0.24183 0.25808,0.17367,0.0020259,-0.14429,-0.25684,0.29185,0.14834,-0.0092293,-0.13304,-0.27091,0.2609,0.13427,-0.045809,-0.13866,-0.27935,0.24683,0.16804,-0.023298,-0.13866,-0.29342,0.31717,0.15678,0.021723,-0.14429,-0.30186 0.30578,0.14838,-0.030011,-0.12533,-0.29147,0.26992,0.1886,0.00059462,-0.12445,-0.25999,0.25243,0.14225,0.0075902,-0.13844,-0.28622,0.25681,0.15887,-0.023015,-0.14369,-0.30371,0.25943,0.17024,0.0040924,-0.15156,-0.2871 0.31786,0.13049,-0.055106,-0.16396,-0.28888,0.28574,0.16439,-0.022985,-0.14969,-0.23178,0.2786,0.11621,-0.0212,-0.16218,-0.26211,0.30715,0.13227,-0.055106,-0.14969,-0.24427,0.31965,0.16261,-0.047968,-0.13541,-0.22464 0.27256,0.081207,-0.011481,-0.15948,-0.2731,0.28153,0.10064,-0.029421,-0.14154,-0.28207,0.30396,0.20678,-0.015966,-0.13556,-0.24918,0.29349,0.15147,-0.011481,-0.14752,-0.26413,0.30097,0.16493,-0.029421,-0.12958,-0.27759 0.31332,0.17822,-0.0037497,-0.11128,-0.25465,0.3078,0.12308,-0.00099256,-0.13885,-0.26016,0.32435,0.14789,-0.017535,-0.11679,-0.27119,0.26369,0.13411,-0.031321,-0.14161,-0.28773,0.25818,0.078964,-0.025807,-0.17469,-0.29325 0.27821,0.12379,-0.036814,-0.148,-0.31478,0.32145,0.14849,0.006424,-0.16962,-0.26227,0.29674,0.10525,0.006424,-0.11711,-0.26227,0.29983,0.1454,-0.024461,-0.16653,-0.25609,0.306,0.083635,0.012601,-0.14491,-0.23139 0.28488,0.075409,-0.036633,-0.14867,-0.2802,0.29462,0.14848,-0.0074045,-0.15842,-0.23149,0.28488,0.11438,-0.012276,-0.16816,-0.26072,0.33359,0.12412,-0.041504,-0.14867,-0.28507,0.30436,0.18258,0.0072096,-0.13893,-0.23636 0.27855,0.17499,0.020633,-0.15326,-0.23533,0.28832,0.15154,0.028449,-0.18648,-0.28417,0.30199,0.16327,0.0050019,-0.13177,-0.25682,0.27073,0.13982,-0.032122,-0.1728,-0.26463,0.26291,0.10856,-0.014537,-0.1728,-0.29003 0.2694,0.12575,-0.01789,-0.12889,-0.24641,0.28246,0.10943,-0.011361,-0.11256,-0.28559,0.26287,0.14534,-0.01789,-0.11583,-0.31171,0.31184,0.15187,0.014756,-0.19092,-0.25621,0.3249,0.12902,0.0016976,-0.155,-0.27906 0.29842,0.13085,-0.031862,-0.10715,-0.26014,0.28385,0.10656,-0.022148,-0.16543,-0.25772,0.35913,0.10414,-0.014863,-0.13143,-0.265,0.34213,0.12113,-0.036719,-0.13143,-0.27229,0.27413,0.11871,-0.046433,-0.146,-0.25043 0.33237,0.11875,-0.053826,-0.16727,-0.24813,0.30944,0.14168,-0.011586,-0.16486,-0.23485,0.30823,0.099445,-0.020034,-0.16968,-0.24813,0.32513,0.10307,-0.048998,-0.16124,-0.24209,0.29978,0.12479,0.0028964,-0.16365,-0.23123 0.29777,0.074915,-0.015106,-0.15782,-0.25992,0.32961,0.11224,-0.0052256,-0.12379,-0.26431,0.32082,0.084795,-0.031573,-0.14575,-0.26541,0.32192,0.090284,-0.021693,-0.14794,-0.25443,0.32961,0.12322,-0.017301,-0.11501,-0.25992 0.30966,0.12514,-0.019638,-0.14972,-0.24171,0.29877,0.10555,-0.016916,-0.15843,-0.26021,0.37551,0.11154,-0.043042,-0.14591,-0.27001,0.31347,0.13548,-0.015828,-0.14755,-0.24171,0.25033,0.1148,-0.014195,-0.15843,-0.25695 0.26008,0.18126,-0.022268,-0.17691,-0.27069,0.26407,0.1633,0.0096576,-0.14798,-0.27568,0.26407,0.16729,-0.026259,-0.15197,-0.27967,0.27005,0.18226,-0.010296,-0.17192,-0.26471,0.26706,0.16929,0.014646,-0.14299,-0.27169 0.3103,0.092291,-0.033746,-0.16092,-0.24381,0.33301,0.12295,-0.031475,-0.13367,-0.25062,0.30576,0.12068,-0.051914,-0.14048,-0.25403,0.31938,0.086613,-0.033746,-0.15865,-0.24608,0.34436,0.11273,-0.033746,-0.12913,-0.24608 0.2562,0.13167,-0.025338,-0.17616,-0.25428,0.30028,0.11698,0.0063732,-0.16069,-0.27052,0.28327,0.14095,0.011014,-0.15141,-0.27594,0.26007,0.15101,0.015655,-0.17384,-0.28444,0.29874,0.15565,0.058968,-0.12357,-0.29063 0.33508,0.19601,0.013602,-0.14595,-0.24168,0.32365,0.13314,-0.014498,-0.15547,-0.26597,0.27793,0.12457,-0.035453,-0.15404,-0.26216,0.29222,0.10886,-0.012116,-0.16547,-0.24787,0.27412,0.079803,-0.030691,-0.16262,-0.26501 0.28513,0.087989,-0.0053956,-0.18179,-0.3063,0.28513,0.15025,-0.0053956,-0.10916,-0.29593,0.29551,0.13987,0.015357,-0.12991,-0.24405,0.27476,0.10874,-0.0053956,-0.10916,-0.28555,0.30589,0.171,-0.026148,-0.15066,-0.2648 0.27972,0.12874,-0.014696,-0.1229,-0.32925,0.25204,0.14132,-0.0046302,-0.15058,-0.27137,0.28979,0.14384,0.018018,-0.10025,-0.27137,0.30489,0.13629,-0.009663,-0.10529,-0.30157,0.26463,0.1539,0.0079519,-0.1531,-0.28647 0.29277,0.13247,-0.019137,-0.15831,-0.24654,0.32384,0.093945,-0.0067103,-0.14092,-0.27388,0.3462,0.1101,0.0069589,-0.11855,-0.26145,0.30644,0.10761,-0.015409,-0.15583,-0.2453,0.30644,0.064121,-0.022865,-0.14962,-0.27637 0.23713,0.16223,-0.027229,-0.18254,-0.28388,0.27348,0.16003,0.022339,-0.1506,-0.28278,0.27348,0.15342,-0.0018946,-0.14619,-0.2993,0.25916,0.16994,-0.0040976,-0.1539,-0.27066,0.29111,0.16003,0.028948,-0.12196,-0.26626 0.26106,0.091853,-0.047135,-0.1831,-0.27375,0.32149,0.10998,-0.019942,-0.13174,-0.26166,0.29731,0.12811,-0.032028,-0.13476,-0.2677,0.28825,0.14624,-0.019942,-0.14987,-0.27375,0.3517,0.12811,0.028402,-0.11361,-0.24353 0.38014,0.1379,-0.02463,-0.11527,-0.23874,0.30043,0.13634,-0.038695,-0.15747,-0.25124,0.2723,0.1129,-0.029318,-0.13246,-0.26999,0.28324,0.12696,-0.030881,-0.12309,-0.26843,0.29262,0.1129,-0.034007,-0.15903,-0.28249 0.27844,0.13009,-0.054776,-0.17346,-0.2328,0.32409,0.12553,-0.025106,-0.14607,-0.2328,0.32637,0.12553,-0.052494,-0.14607,-0.2579,0.29214,0.13009,-0.052494,-0.18259,-0.24193,0.33779,0.13009,-0.0091293,-0.1552,-0.23736 0.24923,0.096095,-0.011296,-0.11869,-0.26188,0.30491,0.12593,0.016546,-0.13659,-0.26585,0.30093,0.11996,-0.0033411,-0.13261,-0.29767,0.25917,0.13786,-0.029195,-0.12266,-0.30165,0.32679,0.16968,0.018535,-0.15647,-0.28773 0.31365,0.13291,-0.018534,-0.18125,-0.28086,0.26362,0.14328,-0.018534,-0.17448,-0.25877,0.2492,0.12164,-0.018083,-0.18801,-0.26778,0.31545,0.14373,-0.023041,-0.11544,-0.27139,0.29968,0.16671,0.034652,-0.13167,-0.23668 0.29503,0.073098,-0.029198,-0.14363,-0.27193,0.3245,0.12685,-0.0049241,-0.14016,-0.24593,0.33144,0.093904,-0.017061,-0.1575,-0.25633,0.34011,0.10604,-0.050004,-0.12456,-0.27193,0.28983,0.13898,-0.02573,-0.13669,-0.24419 0.30482,0.13541,-0.01569,-0.11795,-0.30364,0.29515,0.1639,0.012291,-0.11693,-0.22885,0.27429,0.11913,0.0041513,-0.14694,-0.25734,0.28905,0.11506,-0.027899,-0.13881,-0.34281,0.27429,0.14049,-0.015181,-0.14135,-0.27464 0.31111,0.16259,0.0079906,-0.10579,-0.25518,0.2729,0.14696,-0.0033005,-0.14748,-0.25778,0.2729,0.11482,0.0019108,-0.1414,-0.28731,0.292,0.14696,-0.0076432,-0.11969,-0.26647,0.25553,0.1374,-0.019803,-0.15964,-0.35159 0.25205,0.14699,-0.021105,-0.14951,-0.25223,0.29407,0.11897,0.01158,-0.15651,-0.26624,0.27539,0.13998,-0.058459,-0.14484,-0.28725,0.27539,0.15633,-0.037447,-0.18219,-0.25223,0.34543,0.161,0.025587,-0.1355,-0.25924 0.27905,0.14434,0.0096225,-0.11547,-0.24056,0.27905,0.15396,-0.019245,-0.18283,-0.25981,0.26943,0.16358,0,-0.15396,-0.31754,0.28868,0.16358,0.019245,-0.12509,-0.25981,0.27905,0.13472,-0.048113,-0.18283,-0.27905 0.25441,0.092657,-0.029864,-0.17894,-0.29543,0.2864,0.15301,-0.018396,-0.12764,-0.28818,0.26588,0.16629,-0.026242,-0.14514,-0.28456,0.2864,0.13008,0.0057458,-0.14514,-0.26404,0.32442,0.17534,0.015403,-0.098065,-0.25438 0.31284,0.10183,0.00091743,-0.11835,-0.30642,0.26239,0.12477,0.010092,-0.14128,-0.26972,0.32202,0.12936,0.033028,-0.16881,-0.2789,0.26697,0.16147,0.010092,-0.12294,-0.2789,0.26697,0.14771,-0.044954,-0.15963,-0.26055 0.30805,0.10416,-0.0065246,-0.14051,-0.2978,0.2731,0.15659,-0.06478,-0.15216,-0.2745,0.24397,0.13911,-0.035652,-0.15216,-0.28615,0.3197,0.13329,0.016777,-0.12303,-0.23955,0.31388,0.15659,-0.01235,-0.11721,-0.26285 0.31964,0.15127,-0.017111,-0.094472,-0.25375,0.26958,0.12851,-0.039864,-0.15818,-0.27195,0.28324,0.11941,-0.021661,-0.15818,-0.24465,0.33784,0.13761,-0.017111,-0.12178,-0.2674,0.28324,0.14671,-0.08082,-0.13998,-0.29015 0.27537,0.15288,0.033542,-0.16118,-0.25853,0.26595,0.1466,0.017839,-0.19572,-0.27738,0.28793,0.12148,0.011557,-0.1863,-0.28994,0.28793,0.15917,0.0021356,-0.13919,-0.22713,0.29421,0.12776,-0.010427,-0.17374,-0.26482 0.27147,0.17364,-0.0052549,-0.13104,-0.27918,0.2519,0.15966,-0.01364,-0.13942,-0.27918,0.25749,0.14289,-0.010845,-0.13104,-0.28477,0.29662,0.19041,-0.047182,-0.12265,-0.28477,0.27706,0.17364,-0.038797,-0.1534,-0.27359 0.27756,0.096036,-0.058087,-0.16769,-0.27728,0.27756,0.14741,-0.016988,-0.14714,-0.25673,0.28098,0.10974,-0.027263,-0.17111,-0.25331,0.33578,0.14399,-0.044387,-0.12659,-0.25673,0.33921,0.17138,-0.0067129,-0.14371,-0.22591 0.31867,0.16452,-0.0058411,-0.11131,-0.26139,0.27405,0.16858,-0.0058411,-0.14376,-0.24922,0.31867,0.14424,0.010384,-0.12347,-0.26545,0.28621,0.12802,-0.022066,-0.15187,-0.28978,0.22943,0.11991,-0.054517,-0.18432,-0.29384 0.31157,0.12459,-0.048014,-0.14216,-0.24546,0.31157,0.11674,-0.048014,-0.16308,-0.24154,0.32072,0.078821,-0.048014,-0.15262,-0.2533,0.32203,0.13505,-0.037554,-0.1317,-0.23631,0.33511,0.13112,-0.048014,-0.15785,-0.23369 0.28217,0.091652,-0.058222,-0.16237,-0.28684,0.27201,0.11705,-0.058222,-0.15475,-0.2716,0.30503,0.15516,0.0052837,-0.15983,-0.23858,0.33043,0.12721,-0.022659,-0.14967,-0.24874,0.31519,0.17294,0.0052837,-0.13697,-0.23096 0.30689,0.11976,-0.033683,-0.14222,-0.31812,0.28443,0.15719,-0.029941,-0.18713,-0.25824,0.30315,0.11976,0.048653,-0.15345,-0.23952,0.29566,0.11976,0.0037426,-0.13099,-0.26572,0.25824,0.15719,-0.0037426,-0.15345,-0.25824 0.23664,0.1106,-0.0023107,-0.15986,-0.29378,0.29441,0.15524,-0.018066,-0.13885,-0.24389,0.2734,0.11848,-0.0075623,-0.14148,-0.25701,0.32592,0.11585,-0.012814,-0.19137,-0.26489,0.32066,0.18675,-0.0023107,-0.1336,-0.27014 0.26671,0.1786,-0.025797,-0.14209,-0.2161,0.29843,0.14336,-0.036369,-0.14914,-0.25487,0.28433,0.15041,-0.036369,-0.18086,-0.26896,0.29843,0.18213,-0.022273,-0.15619,-0.27954,0.29138,0.094024,0.0059206,-0.13505,-0.29011 0.29436,0.13249,0.032872,-0.1539,-0.26597,0.26945,0.15739,-0.029386,-0.16635,-0.24106,0.34416,0.14494,-0.0044826,-0.16635,-0.22861,0.26945,0.12003,-0.016934,-0.16635,-0.25352,0.28191,0.13249,-0.029386,-0.14145,-0.31577 0.28989,0.11261,0.035816,-0.1815,-0.28035,0.31113,0.11669,0.0015032,-0.17169,-0.26973,0.29969,0.13957,0.030914,-0.16189,-0.24522,0.2809,0.11506,0.022744,-0.18313,-0.25176,0.28989,0.11506,0.01049,-0.17333,-0.25339 0.29334,0.17248,0.03722,-0.15335,-0.26626,0.27477,0.17551,-0.041585,-0.16737,-0.25489,0.27023,0.13724,-0.016201,-0.16813,-0.28027,0.29334,0.17513,-0.023778,-0.13327,-0.26323,0.25053,0.15732,-0.041206,-0.17192,-0.25565 0.29351,0.1377,0.059322,-0.12718,-0.27874,0.2836,0.16178,0.013995,-0.11349,-0.2575,0.25527,0.16084,-0.0030029,-0.1607,-0.27591,0.27604,0.11456,-0.0048916,-0.16543,-0.31274,0.26943,0.14714,-0.028027,-0.15315,-0.29244 0.33913,0.13551,0.0036986,-0.12319,-0.27664,0.27322,0.13452,-0.0071217,-0.15467,-0.27369,0.28502,0.083375,0.0096005,-0.17729,-0.26779,0.33322,0.10895,0.025339,-0.135,-0.26779,0.24961,0.1237,0.013535,-0.16352,-0.27173 0.33085,0.10058,-0.041248,-0.16139,-0.24231,0.32251,0.090572,-0.015384,-0.13469,-0.24899,0.32751,0.09808,-0.047922,-0.13636,-0.25233,0.33252,0.10309,-0.038745,-0.16139,-0.24398,0.31834,0.099749,-0.015384,-0.13469,-0.24899 0.30398,0.13373,-0.059214,-0.17596,-0.23757,0.28939,0.16778,-0.041379,-0.16623,-0.23271,0.29588,0.10941,-0.023543,-0.17271,-0.23919,0.33155,0.12076,-0.049486,-0.15974,-0.25541,0.3056,0.16292,-0.021922,-0.15001,-0.23595 0.27366,0.13333,-0.055732,-0.18373,-0.26064,0.33824,0.13039,-0.021677,-0.15261,-0.24479,0.29714,0.11748,-0.057493,-0.14556,-0.23187,0.30301,0.13274,-0.027549,-0.18197,-0.23422,0.34353,0.1163,-0.0099345,-0.135,-0.24303 0.35603,0.11419,-0.0041038,-0.12345,-0.25222,0.32881,0.11315,-0.052261,-0.13706,-0.25536,0.30473,0.099538,-0.042839,-0.15276,-0.25117,0.3309,0.089069,-0.034464,-0.12868,-0.25431,0.29007,0.10163,-0.039698,-0.14125,-0.2585 0.30265,0.11565,-0.042578,-0.15765,-0.27273,0.28826,0.17319,0.00057538,-0.12888,-0.27273,0.30265,0.14442,-0.013809,-0.12888,-0.27273,0.30265,0.13004,0.058113,-0.14327,-0.25834,0.2595,0.086882,-0.013809,-0.17204,-0.28711 0.30868,0.097045,-0.069362,-0.14019,-0.26052,0.27284,0.11326,-0.03352,-0.15897,-0.25028,0.34367,0.11411,-0.002799,-0.15043,-0.2443,0.34367,0.11155,-0.036934,-0.13678,-0.25881,0.3138,0.14057,-0.031814,-0.15726,-0.22723 0.31828,0.12385,-0.072416,-0.15496,-0.23566,0.26142,0.11284,-0.02656,-0.12744,-0.26501,0.30544,0.096334,-0.033897,-0.13661,-0.24667,0.31094,0.11468,-0.0027147,-0.13478,-0.27968,0.32928,0.16787,0.0046223,-0.13661,-0.29252 0.26966,0.11284,-0.051732,-0.16728,-0.24081,0.31042,0.078574,-0.017217,-0.15503,-0.25582,0.33293,0.13785,-0.033975,-0.13777,-0.24156,0.34019,0.12309,-0.04623,-0.15803,-0.23731,0.33543,0.11384,-0.010214,-0.15278,-0.24907 0.27277,0.097655,-0.026257,-0.11125,-0.26589,0.25229,0.12326,-0.0088479,-0.13686,-0.26794,0.31476,0.14271,0.024946,-0.11637,-0.27101,0.30144,0.14476,-0.010896,-0.14095,-0.28739,0.30349,0.16524,-0.009872,-0.21366,-0.27613 0.30794,0.14966,-0.0075637,-0.16372,-0.24021,0.30901,0.10292,-0.019249,-0.17116,-0.2264,0.35044,0.14222,-0.016062,-0.15735,-0.24552,0.2952,0.12523,-0.035184,-0.17222,-0.24977,0.29413,0.077421,-0.020311,-0.18603,-0.2434 0.27607,0.15091,-0.010013,-0.16646,-0.26927,0.28947,0.12409,0.025747,-0.13517,-0.29162,0.28947,0.20008,0.0078671,-0.11282,-0.2648,0.25372,0.12856,-0.014483,-0.14411,-0.25586,0.2716,0.13303,0.0033972,-0.16646,-0.32291 0.28318,0.14874,-0.0040331,-0.20263,-0.2943,0.30762,0.14263,0.02041,-0.14153,-0.27291,0.2954,0.12429,-0.010144,-0.15069,-0.29124,0.22818,0.13652,0.0020777,-0.15069,-0.25152,0.29234,0.13652,0.038743,-0.11403,-0.27291 0.34933,0.14001,-0.004671,-0.11484,-0.25365,0.23769,0.14001,-0.004671,-0.15082,-0.28082,0.28176,0.10035,-0.0017333,-0.1589,-0.27054,0.35594,0.13414,-0.040658,-0.14568,-0.26466,0.27588,0.11137,-0.026704,-0.15376,-0.25438 0.27977,0.14581,-0.015175,-0.12662,-0.28085,0.26514,0.18296,0.0231,-0.13,-0.23807,0.26176,0.13455,0.0039626,-0.14351,-0.31012,0.27752,0.15256,-0.0084206,-0.14464,-0.33038,0.26626,0.14243,0.014094,-0.13,-0.29211 0.22602,0.099463,-0.047611,-0.1468,-0.24941,0.30126,0.13025,-0.030509,-0.15706,-0.24257,0.33205,0.15077,0.013955,-0.12286,-0.25625,0.31152,0.13025,-0.027089,-0.1639,-0.25625,0.32863,0.15077,-0.030509,-0.15364,-0.29045 0.29435,0.12992,0.033369,-0.11447,-0.27588,0.29887,0.13595,0.0092323,-0.16123,-0.24873,0.31094,0.12841,0.039403,-0.13559,-0.27286,0.31245,0.10427,0.0016896,-0.15218,-0.29097,0.23099,0.12388,-0.031498,-0.17934,-0.29097 0.38209,0.12701,-0.0049772,-0.13207,-0.25028,0.2901,0.11723,-0.040973,-0.13785,-0.26272,0.26032,0.12834,-0.035196,-0.16585,-0.24895,0.33365,0.1159,-0.016087,-0.14274,-0.25206,0.28388,0.11056,-0.047639,-0.14896,-0.26272 0.29139,0.065056,-0.026468,-0.16375,-0.28187,0.30438,0.12071,-0.033889,-0.14149,-0.24353,0.30314,0.10278,-0.024612,-0.15757,-0.25095,0.33468,0.095358,-0.016573,-0.14396,-0.2695,0.34705,0.14978,-0.0141,-0.11119,-0.23487 0.26028,0.18158,0.012514,-0.13129,-0.27897,0.26416,0.15729,0.0076564,-0.16432,-0.28869,0.26708,0.14854,0.017373,-0.15169,-0.31298,0.26028,0.17575,0.008628,-0.1274,-0.27606,0.24473,0.16409,0.0076564,-0.16432,-0.28189 0.28254,0.17264,0.0026127,-0.13994,-0.18971,0.27969,0.15165,-0.0030896,-0.14253,-0.30609,0.27632,0.15165,-0.015012,-0.14072,-0.30583,0.26828,0.15994,-0.013198,-0.14279,-0.29002,0.26673,0.14491,-0.019419,-0.14927,-0.29935 0.32022,0.16566,0.031141,-0.11483,-0.21787,0.32881,0.11701,0.0082431,-0.14345,-0.26366,0.29732,0.10556,-0.043276,-0.14631,-0.28084,0.28588,0.11987,-0.00893,-0.14918,-0.26366,0.27156,0.094109,-0.031828,-0.18066,-0.30087 0.2379,0.15224,-0.039774,-0.14256,-0.26748,0.27216,0.18365,-0.022642,-0.15113,-0.24036,0.31071,0.12583,-0.02978,-0.16469,-0.25606,0.34426,0.12797,-0.053336,-0.14899,-0.27176,0.30286,0.15581,-0.033349,-0.14899,-0.2425 0.2787,0.11628,-0.023748,-0.17217,-0.28419,0.30111,0.12748,0.0014563,-0.13017,-0.25619,0.2619,0.12188,-0.020948,-0.17778,-0.25059,0.2591,0.13308,0.0070572,-0.16097,-0.27019,0.35152,0.20029,-0.023748,-0.13857,-0.25059 0.25705,0.12045,0.015188,-0.18908,-0.2768,0.28462,0.14802,0.020201,-0.16903,-0.29058,0.25705,0.15178,0.011429,-0.17279,-0.28557,0.27835,0.13173,0.032733,-0.17028,-0.26552,0.29715,0.15554,0.030226,-0.10887,-0.26301 0.32363,0.1057,-0.036564,-0.15158,-0.25147,0.35389,0.10872,-0.024457,-0.13948,-0.24239,0.31757,0.10872,-0.036564,-0.14856,-0.25147,0.31152,0.069374,-0.03051,-0.14856,-0.24239,0.31757,0.11175,-0.042617,-0.12131,-0.26055 0.31664,0.16747,-0.021812,-0.1409,-0.23115,0.34798,0.15243,-0.0080226,-0.13212,-0.23993,0.3204,0.12736,-0.040615,-0.13964,-0.25497,0.25021,0.11357,-0.045629,-0.18602,-0.26625,0.27778,0.10354,-0.029333,-0.17349,-0.2675 0.31673,0.1446,0.0093447,-0.19968,-0.23657,0.31673,0.12,-0.027542,-0.12591,-0.27345,0.27985,0.16919,-0.027542,-0.1382,-0.24886,0.27985,0.12,-0.027542,-0.17509,-0.26116,0.27985,0.16919,-0.064429,-0.1505,-0.24886 0.32314,0.12328,0.00048158,-0.14399,-0.25235,0.28702,0.13292,0.012521,-0.16807,-0.27883,0.33518,0.13051,0.031784,-0.11028,-0.2692,0.2822,0.11847,-0.026005,-0.12473,-0.2981,0.24368,0.10402,-0.033229,-0.11991,-0.3005 0.3366,0.073124,-0.028838,-0.16058,-0.27698,0.33119,0.086659,-0.042373,-0.13621,-0.26525,0.31946,0.12726,-0.011694,-0.14163,-0.24359,0.31495,0.092975,-0.014401,-0.14343,-0.25171,0.30773,0.11283,-0.029741,-0.11275,-0.24359 0.30619,0.10991,0.036677,-0.15374,-0.28557,0.31791,0.15679,0.027889,-0.11859,-0.27385,0.25639,0.14507,0.010312,-0.16839,-0.27385,0.24174,0.095267,0.0073823,-0.15667,-0.29728,0.28861,0.14507,-0.0072651,-0.12444,-0.28557 0.29926,0.11144,0.021008,-0.14595,-0.30246,0.27144,0.13231,0.0070955,-0.15638,-0.30246,0.29231,0.15318,0.048834,-0.14595,-0.2816,0.28535,0.13231,0.014052,-0.13203,-0.30246,0.24361,0.1184,0.01753,-0.11116,-0.26768 0.28074,0.16584,0.022214,-0.13099,-0.24589,0.33819,0.12754,-0.063961,-0.13099,-0.29376,0.29031,0.17541,-0.035236,-0.15971,-0.24589,0.27116,0.12754,-0.016086,-0.14056,-0.26504,0.29031,0.11796,-0.063961,-0.15014,-0.26504 0.29841,0.16219,0.0032692,-0.11933,-0.29641,0.27571,0.13495,-0.033056,-0.15111,-0.27825,0.27571,0.16219,0.048675,-0.16927,-0.30095,0.27117,0.16219,0.0078099,-0.11933,-0.27825,0.23938,0.14403,-0.014893,-0.17382,-0.25101 0.28601,0.15942,-0.0082107,-0.12111,-0.28532,0.28601,0.11837,-0.042422,-0.11427,-0.2819,0.27916,0.10469,-0.011632,-0.169,-0.25795,0.34417,0.10811,-0.0013685,-0.13479,-0.27848,0.32706,0.091002,-0.032159,-0.10058,-0.2648 0.3019,0.10698,0.013411,-0.15812,-0.25949,0.27851,0.10698,0.0056139,-0.17372,-0.29847,0.27071,0.14596,0.036802,-0.14253,-0.25949,0.3097,0.11477,0.029005,-0.11134,-0.29067,0.3019,0.099178,-0.0021832,-0.12694,-0.29847 0.2361,0.1393,-0.022782,-0.1556,-0.29067,0.27437,0.1438,0.031246,-0.1601,-0.27491,0.29463,0.1348,0.022241,-0.16235,-0.30643,0.26086,0.1348,0.017739,-0.13309,-0.29967,0.29238,0.16632,0.044753,-0.13309,-0.25465 0.25959,0.16713,-0.024892,-0.16358,-0.28448,0.2667,0.081788,0.028448,-0.16358,-0.2987,0.31293,0.15291,-0.007112,-0.13513,-0.24892,0.28448,0.15291,-0.01778,-0.14935,-0.22758,0.30226,0.13868,0.028448,-0.17069,-0.28448 0.27445,0.17719,-0.0079828,-0.14996,-0.24545,0.2656,0.1782,0.022837,-0.17118,-0.26667,0.32573,0.14334,-0.059265,-0.15299,-0.27071,0.27596,0.17491,-0.02314,-0.16031,-0.25176,0.26485,0.12136,-0.029203,-0.17699,-0.25883 0.29046,0.15089,0.0023527,-0.13123,-0.24887,0.25856,0.13694,0.0043465,-0.14818,-0.26183,0.2775,0.10503,0.016309,-0.1422,-0.35354,0.30342,0.14192,0.014316,-0.1103,-0.29572,0.27052,0.13394,0.012322,-0.14419,-0.28276 0.25183,0.13109,-0.048296,-0.17249,-0.24493,0.29323,0.15869,0.020698,-0.15869,-0.24493,0.29323,0.11039,-0.013799,-0.14489,-0.26908,0.30012,0.15524,0.0068994,-0.18628,-0.27943,0.29323,0.13109,0.058645,-0.15869,-0.28288 0.33863,0.13392,-0.017093,-0.15692,-0.27885,0.3006,0.16524,-0.017093,-0.15021,-0.27885,0.32856,0.13951,0.0097544,-0.14126,-0.24417,0.29612,0.10036,-0.0059063,-0.13119,-0.27214,0.22117,0.10819,-0.056244,-0.12672,-0.26543 0.26353,0.09971,-0.020423,-0.17878,-0.30983,0.24441,0.12701,-0.020423,-0.15694,-0.2798,0.29629,0.14885,0.036913,-0.13509,-0.24704,0.31813,0.13247,0.025992,-0.13509,-0.29072,0.28537,0.1707,0.017801,-0.11871,-0.27434 0.28237,0.15811,-0.0025709,-0.16861,-0.25216,0.2588,0.1399,0.0017139,-0.15789,-0.3025,0.36056,0.15275,-0.018639,-0.1279,-0.25966,0.25237,0.16025,-0.010069,-0.18467,-0.25323,0.25666,0.12704,0.0070699,-0.16004,-0.25966 0.3105,0.12798,-0.00085891,-0.13506,-0.28269,0.28902,0.14945,-0.0277,-0.1297,-0.31222,0.2756,0.13335,0.012562,-0.17533,-0.25048,0.25413,0.15482,-0.011595,-0.15922,-0.29611,0.2595,0.16556,0.047455,-0.16459,-0.23438 0.32243,0.18657,0.004356,-0.13366,-0.24256,0.28685,0.17633,0.0054342,-0.18056,-0.25226,0.27121,0.12781,0.004356,-0.18487,-0.26951,0.28685,0.14506,-0.02799,-0.15953,-0.25334,0.24695,0.1359,-0.048477,-0.18811,-0.25927 0.29928,0.17542,-0.026424,-0.15487,-0.25579,0.28093,0.12955,-0.031011,-0.16863,-0.24662,0.28093,0.13872,-0.026424,-0.13193,-0.30167,0.27176,0.18919,0.014863,-0.15487,-0.26497,0.31763,0.083675,-0.012661,-0.17322,-0.23286 0.3077,0.15536,0.019253,-0.12407,-0.25927,0.27615,0.14184,-0.030322,-0.11415,-0.2773,0.25992,0.15626,-0.0086893,-0.16643,-0.26829,0.29508,0.13914,0.022859,-0.22682,-0.27189,0.27344,0.13733,-0.035731,-0.12497,-0.2764 0.27681,0.11873,0.030913,-0.17107,-0.31159,0.28559,0.1363,0.0045666,-0.14473,-0.26768,0.27681,0.20655,0.022131,-0.15351,-0.26768,0.29437,0.1363,0.0045666,-0.15351,-0.28524,0.25046,0.1363,-0.030561,-0.15351,-0.24133 0.24753,0.13195,-0.046231,-0.17144,-0.24849,0.29087,0.1175,0.021189,-0.16662,-0.29183,0.28124,0.1464,-0.026968,-0.13773,-0.30628,0.26679,0.18011,-0.0028894,-0.15699,-0.25331,0.31976,0.15121,0.040452,-0.1281,-0.25812 0.30434,0.12767,0.0057864,-0.17519,-0.24167,0.29695,0.12336,-0.044691,-0.1598,-0.24044,0.28833,0.14675,-0.0089874,-0.17088,-0.23182,0.30188,0.12213,-0.036688,-0.17273,-0.24167,0.35297,0.12767,-0.066851,-0.17211,-0.23429 0.3047,0.21049,-0.01472,-0.14573,-0.24288,0.26201,0.13248,-0.020608,-0.16486,-0.26349,0.26937,0.13984,-0.04416,-0.1575,-0.27085,0.26349,0.19136,-0.033856,-0.15309,-0.24877,0.31648,0.12512,-0.025024,-0.16192,-0.2679 0.35015,0.094414,-0.043937,-0.13198,-0.24098,0.30823,0.12795,-0.035552,-0.13617,-0.29548,0.2663,0.11538,-0.01459,-0.14875,-0.2326,0.31661,0.11538,-0.0062048,-0.13198,-0.27452,0.325,0.094414,-0.031359,-0.11102,-0.27871 0.32264,0.10163,-0.02119,-0.119,-0.26012,0.32526,0.098648,-0.039856,-0.13879,-0.26945,0.33608,0.087448,-0.02231,-0.15297,-0.25564,0.3484,0.12441,-0.02343,-0.12124,-0.259,0.24462,0.12851,-0.035376,-0.13655,-0.26273 0.29808,0.10955,-0.058586,-0.162,-0.24993,0.30722,0.16653,-0.035371,-0.15074,-0.23516,0.3016,0.11447,-0.038888,-0.16481,-0.24008,0.31707,0.12643,-0.067028,-0.15496,-0.2443,0.31285,0.17989,-0.040999,-0.162,-0.22883 0.24443,0.16995,0.014219,-0.13474,-0.2363,0.28506,0.16318,0.00067709,-0.1449,-0.29047,0.29521,0.15979,-0.05349,-0.18552,-0.27693,0.25797,0.18688,-0.033177,-0.14151,-0.25662,0.29521,0.1361,-0.026407,-0.14151,-0.28709 0.29606,0.088757,-0.036649,-0.14926,-0.24139,0.27303,0.093876,-0.023853,-0.17997,-0.24139,0.29862,0.11435,-0.0084969,-0.17485,-0.26187,0.34213,0.16042,-0.0033783,-0.14414,-0.23628,0.31654,0.17577,-0.028971,-0.17485,-0.25419 0.25393,0.16899,0.012518,-0.11713,-0.27807,0.26287,0.16899,0.0035765,-0.16631,-0.26913,0.2897,0.15111,0.043812,-0.11266,-0.28701,0.26287,0.14664,-0.0098354,-0.13501,-0.3049,0.25393,0.14217,0.0035765,-0.17078,-0.31384 0.30245,0.15505,0.035535,-0.10788,-0.25926,0.28253,0.17895,-0.01227,-0.11585,-0.2752,0.26261,0.13911,-0.01227,-0.15569,-0.2752,0.27855,0.167,0.0036651,-0.13975,-0.29113,0.24269,0.11919,-0.04414,-0.1517,-0.32699 0.34248,0.15301,-0.017515,-0.15014,-0.23014,0.29827,0.11301,-0.01541,-0.16909,-0.23646,0.32985,0.08564,-0.023831,-0.16488,-0.2533,0.32985,0.13617,-0.040673,-0.14804,-0.23435,0.28143,0.091956,-0.055409,-0.1712,-0.25119 0.27738,0.13182,-0.028379,-0.19499,-0.25998,0.28196,0.10344,-0.018309,-0.19407,-0.25632,0.31766,0.11992,-0.04211,-0.16661,-0.24168,0.33139,0.15746,-0.0036618,-0.15562,-0.22886,0.32132,0.11809,0.0091544,-0.15929,-0.21971 0.25746,0.11025,-0.040579,-0.16821,-0.24435,0.3278,0.11388,-0.016649,-0.14428,-0.24362,0.32199,0.1117,-0.050731,-0.15008,-0.25595,0.27704,0.13273,-0.034778,-0.16821,-0.24652,0.37856,0.12983,-0.012299,-0.14137,-0.24362 0.25657,0.10098,-0.016439,-0.16615,-0.29532,0.28299,0.10685,-0.019375,-0.15735,-0.30706,0.25657,0.15382,-0.010568,-0.13093,-0.28358,0.30941,0.14502,0.027594,-0.12799,-0.24835,0.32702,0.13621,0.045208,-0.11038,-0.27477 0.27656,0.17229,-0.029051,-0.1513,-0.27354,0.25139,0.16151,-0.0038831,-0.19085,-0.25916,0.30533,0.17229,0.024881,-0.15849,-0.26635,0.26218,0.1651,-0.0074785,-0.16208,-0.24837,0.26218,0.17229,-0.036242,-0.18366,-0.25556 0.34725,0.12637,-0.022535,-0.12181,-0.23845,0.27528,0.12141,-0.0026803,-0.16896,-0.24341,0.32988,0.11645,0.032065,-0.14414,-0.24838,0.32492,0.12141,-0.047353,-0.14911,-0.27568,0.26039,0.11148,-0.064725,-0.16896,-0.27071 0.34776,0.15425,0.0043235,-0.14212,-0.21359,0.30941,0.13856,-0.051463,-0.15258,-0.23451,0.28849,0.12636,-0.04972,-0.16827,-0.23451,0.32161,0.11241,-0.04972,-0.14735,-0.26066,0.29197,0.10544,-0.06541,-0.15606,-0.27461 0.30163,0.20312,-0.023288,-0.16884,-0.24823,0.30163,0.14284,-0.04093,-0.15855,-0.25999,0.30163,0.1943,-0.04093,-0.13796,-0.24823,0.27516,0.14284,-0.029169,-0.16149,-0.25117,0.26487,0.085507,-0.018877,-0.16002,-0.26587 0.2876,0.1664,-0.047727,-0.13392,-0.25041,0.26875,0.17246,-0.031567,-0.16287,-0.2531,0.30511,0.17044,-0.016753,-0.13863,-0.25714,0.27683,0.16573,-0.052441,-0.14132,-0.26185,0.26673,0.17785,-0.060521,-0.18981,-0.25983 0.259,0.14631,-0.0094823,-0.12622,-0.26944,0.25676,0.14452,0.0003951,-0.16168,-0.27931,0.27202,0.1315,0.0048848,-0.15675,-0.29952,0.2837,0.19211,0.069088,-0.14373,-0.27393,0.28549,0.12701,0.0071297,-0.17964,-0.28021 0.32528,0.1561,0.014644,-0.12403,-0.22388,0.31974,0.14361,-0.013091,-0.12958,-0.24746,0.29755,0.16164,-0.0061573,-0.14483,-0.2433,0.27397,0.11033,-0.015865,-0.1698,-0.27935,0.26288,0.092304,-0.068562,-0.17396,-0.31818 0.28715,0.10416,-0.019707,-0.13513,-0.21959,0.31531,0.14358,-0.019707,-0.10979,-0.23085,0.28715,0.12669,-0.042229,-0.13513,-0.28715,0.28715,0.11542,-0.028152,-0.13513,-0.28715,0.32938,0.13232,-0.016891,-0.12387,-0.33783 0.30361,0.11568,-0.047012,-0.1536,-0.23214,0.32605,0.056773,-0.030182,-0.15641,-0.28824,0.29239,0.11287,-0.024572,-0.11994,-0.29666,0.32605,0.14934,-0.0021318,-0.11714,-0.25178,0.29239,0.13251,-0.0021318,-0.11433,-0.27141 0.2995,0.13446,0.039582,-0.1455,-0.27112,0.27745,0.12711,0.028892,-0.15285,-0.28047,0.25206,0.13313,0.031564,-0.17824,-0.27913,0.29683,0.13045,0.041587,-0.16488,-0.27245,0.26008,0.12778,0.031564,-0.18091,-0.28648 0.31309,0.087088,0.0051605,-0.15869,-0.2312,0.34511,0.10404,-0.0099066,-0.13798,-0.23591,0.29803,0.12099,-0.029682,-0.16434,-0.24815,0.31874,0.077671,-0.01744,-0.18977,-0.2491,0.33193,0.10215,-0.024974,-0.13986,-0.26699 0.29109,0.14,0.014101,-0.1118,-0.28806,0.29109,0.14,-0.099211,-0.14957,-0.25029,0.27849,0.16518,0.026691,-0.12439,-0.28806,0.29109,0.12741,-0.02367,-0.1118,-0.28806,0.29109,0.11482,-0.011079,-0.13698,-0.28806 0.24932,0.17924,0.0069781,-0.15069,-0.27842,0.2588,0.17486,-0.019299,-0.13974,-0.27842,0.26099,0.20406,0.011358,-0.15288,-0.26018,0.26464,0.16099,0.0025986,-0.16748,-0.28937,0.26756,0.16099,-0.029518,-0.15434,-0.28207 0.28346,0.16386,-0.022831,-0.11034,-0.29217,0.29416,0.19011,-0.0072732,-0.14243,-0.27175,0.24554,0.15025,-0.01408,-0.16674,-0.28925,0.26498,0.1483,-0.036444,-0.14729,-0.29703,0.25332,0.19595,-0.021858,-0.12104,-0.24939 0.25984,0.13368,0.047891,-0.15523,-0.26121,0.2712,0.13242,0.018874,-0.15018,-0.27382,0.27877,0.15765,0.03906,-0.14766,-0.25616,0.2712,0.12611,0.03906,-0.17794,-0.29149,0.29012,0.13368,0.0037344,-0.17415,-0.31546 0.23824,0.11401,-0.061976,-0.16895,-0.28973,0.27965,0.11747,0.0035888,-0.16205,-0.27248,0.31071,0.11056,-0.017116,-0.14825,-0.27593,0.28655,0.14162,-0.020567,-0.13099,-0.26212,0.34867,0.17268,0.048449,-0.12409,-0.23797 0.28217,0.12874,-0.040129,-0.16269,-0.2326,0.36116,0.11784,-0.020155,-0.14363,-0.23805,0.32848,0.10786,-0.044668,-0.15362,-0.24622,0.28581,0.11058,-0.045576,-0.1745,-0.24168,0.343,0.097871,-0.027418,-0.1518,-0.24077 0.32088,0.10068,-0.0084003,-0.1603,-0.24899,0.33719,0.090487,0.011989,-0.13889,-0.24695,0.327,0.08539,-0.0043225,-0.1603,-0.25205,0.28316,0.090487,-0.0094198,-0.18069,-0.25511,0.32394,0.10068,0.011989,-0.16234,-0.25613 0.33127,0.12043,-0.066759,-0.1505,-0.24508,0.31945,0.14408,-0.032276,-0.15543,-0.22341,0.31354,0.10369,-0.05001,-0.15838,-0.25001,0.33127,0.10664,-0.069715,-0.14755,-0.24213,0.30566,0.13127,-0.042128,-0.14952,-0.2244 0.31907,0.10511,0.0075076,-0.12763,-0.25526,0.32658,0.11261,-0.0037538,-0.14264,-0.24775,0.31907,0.10511,-0.022523,-0.13889,-0.244,0.28904,0.097598,-0.045045,-0.16892,-0.22147,0.34159,0.11261,-0.063814,-0.18769,-0.26652 0.28576,0.19703,-0.0098333,-0.13755,-0.24907,0.26478,0.17904,-0.011032,-0.16153,-0.25986,0.26658,0.16225,-0.001439,-0.18311,-0.27605,0.26118,0.17784,-0.020626,-0.15973,-0.26706,0.24799,0.17364,-0.027821,-0.18072,-0.27065 0.3179,0.10851,-0.064413,-0.16708,-0.23868,0.3152,0.0977,-0.048202,-0.15898,-0.25625,0.3152,0.18416,-0.053605,-0.14277,-0.23193,0.30575,0.15039,-0.046851,-0.15628,-0.22653,0.30034,0.12742,-0.030639,-0.15493,-0.24544 0.32782,0.1034,0.0078131,-0.1044,-0.29141,0.27795,0.12833,-0.021278,-0.12102,-0.33297,0.26964,0.1034,-0.012966,-0.14596,-0.25401,0.30288,0.15743,0.0036572,-0.1044,-0.2831,0.29457,0.10755,-0.021278,-0.11271,-0.27894 0.2741,0.14115,0.0065036,-0.18573,-0.27888,0.2741,0.16232,0.0098909,-0.16286,-0.26363,0.28596,0.12506,0.0081972,-0.18234,-0.24924,0.29104,0.12591,-0.015514,-0.19165,-0.23823,0.28765,0.19111,0.00481,-0.19335,-0.22637 0.21404,0.17747,-0.019783,-0.16027,-0.25553,0.24868,0.15823,-0.0063122,-0.16123,-0.27862,0.27851,0.1871,-0.0082367,-0.13525,-0.26515,0.3016,0.17362,-0.023632,-0.16508,-0.25553,0.31892,0.13706,-0.018821,-0.16219,-0.27958 0.26768,0.11236,-0.019131,-0.16062,-0.24674,0.28306,0.080062,0.012395,-0.15293,-0.26211,0.35457,0.10082,0.011626,-0.1437,-0.24981,0.3292,0.10313,-0.0022145,-0.15369,-0.26135,0.33919,0.090827,-0.011442,-0.14831,-0.27288 0.27331,0.18755,-0.017415,-0.13225,-0.23619,0.28204,0.10978,0.0051168,-0.16423,-0.26381,0.27331,0.17883,-0.013781,-0.17586,-0.25945,0.27331,0.1999,-0.007966,-0.14679,-0.27108,0.26096,0.15848,-0.039946,-0.18022,-0.29361 0.34609,0.15779,-0.023722,-0.11496,-0.22756,0.30629,0.13352,-0.042164,-0.14505,-0.23241,0.3092,0.088871,-0.039252,-0.15088,-0.25959,0.3325,0.1209,-0.048959,-0.14311,-0.25182,0.28882,0.097607,-0.067401,-0.18096,-0.25376 0.29425,0.10013,0.038824,-0.13486,-0.26768,0.29425,0.13078,0.0081735,-0.16551,-0.28812,0.23294,0.16143,-0.053128,-0.1553,-0.28812,0.29425,0.16143,0.038824,-0.13486,-0.25746,0.30446,0.11034,0.0081735,-0.14508,-0.28812 0.33892,0.13368,-0.031414,-0.16319,-0.23741,0.35936,0.15716,-0.032171,-0.14577,-0.22605,0.27606,0.13217,-0.047318,-0.15864,-0.22983,0.27076,0.098846,-0.041259,-0.16016,-0.26164,0.31317,0.11551,-0.052619,-0.15031,-0.25785 0.2719,0.10163,-0.0059149,-0.16275,-0.30166,0.2719,0.11955,-0.050724,-0.14034,-0.30166,0.2719,0.13299,-0.014877,-0.17619,-0.27925,0.29879,0.1554,0.047857,-0.11346,-0.26133,0.31671,0.14644,0.025452,-0.091053,-0.26133 0.32113,0.072106,-0.02343,-0.14872,-0.2286,0.32426,0.10969,-0.042224,-0.16125,-0.23956,0.27727,0.15198,-0.054753,-0.14559,-0.24739,0.32113,0.16138,-0.040657,-0.16125,-0.23956,0.32739,0.13162,-0.059451,-0.15499,-0.25052 0.30224,0.16395,-0.00064759,-0.12882,-0.28734,0.28605,0.168,-0.014814,-0.1531,-0.29274,0.25772,0.14776,0.013519,-0.16389,-0.28127,0.24153,0.17542,0.013519,-0.1214,-0.28667,0.21994,0.17609,-0.0040205,-0.14366,-0.28734 0.33058,0.15486,0.0018139,-0.094549,-0.2561,0.27956,0.08684,0.010316,-0.13423,-0.2561,0.29374,0.13786,0.018819,-0.13139,-0.2561,0.2824,0.13786,-0.018025,-0.12289,-0.30144,0.26256,0.12085,-0.02086,-0.20508,-0.32128 0.28811,0.12576,-0.023053,-0.12046,-0.27469,0.22858,0.17717,-0.017641,-0.16105,-0.27469,0.26917,0.16635,0.020239,-0.13128,-0.25034,0.30975,0.15282,-0.023053,-0.10964,-0.30174,0.27458,0.1447,0.020239,-0.19351,-0.29633 0.30978,0.11895,-0.0082694,-0.1673,-0.24681,0.34159,0.11895,-0.040075,-0.10369,-0.26271,0.30978,0.10305,-0.055977,-0.1673,-0.215,0.27798,0.10305,-0.055977,-0.15139,-0.26271,0.32569,0.13485,0.023536,-0.1673,-0.26271 0.31561,0.16237,-0.018093,-0.14994,-0.2534,0.19348,0.16237,-0.035595,-0.17094,-0.25378,0.30472,0.14059,-0.024705,-0.17016,-0.2744,0.30939,0.1542,-0.025094,-0.12544,-0.2534,0.30822,0.15459,-0.032483,-0.16783,-0.25028 0.32807,0.12701,0.028084,-0.12191,-0.30701,0.29296,0.13021,0.0089357,-0.15063,-0.31977,0.2419,0.14616,0.0025531,-0.13467,-0.29105,0.25148,0.13978,0.034466,-0.11553,-0.28786,0.25786,0.13978,-0.0038296,-0.1251,-0.2719 0.29013,0.13646,-0.0018441,-0.10941,-0.27845,0.22866,0.12109,-0.047945,-0.094047,-0.24772,0.3055,0.12109,0.02889,-0.15551,-0.30919,0.3055,0.15183,-0.017211,-0.12478,-0.26308,0.32086,0.13646,-0.032578,-0.17088,-0.29382 0.2648,0.1805,0.0030171,-0.14729,-0.23991,0.27034,0.16885,0.029084,-0.16004,-0.29814,0.27755,0.18438,-0.0047476,-0.15671,-0.2754,0.23929,0.17883,-0.018058,-0.16892,-0.28039,0.2526,0.15443,-0.0053022,-0.17668,-0.27208 0.32314,0.12918,-0.0080331,-0.099715,-0.28807,0.29383,0.12294,-0.018012,-0.092854,-0.30241,0.27262,0.09737,-0.0042909,-0.13464,-0.29306,0.32564,0.09238,0.0044406,-0.10969,-0.28931,0.29258,0.09238,-0.012399,-0.11344,-0.28058 0.26103,0.19885,0.0087413,-0.1405,-0.27375,0.24682,0.16864,0.0051879,-0.18314,-0.27908,0.24682,0.15443,0.010518,-0.15649,-0.3004,0.26814,0.18819,0.0051879,-0.1405,-0.27375,0.25925,0.15798,0.0051879,-0.15827,-0.27908 0.27018,0.11667,0.014328,-0.13918,-0.26711,0.27018,0.12946,0.0015351,-0.10081,-0.30549,0.29576,0.16784,0.02712,-0.15198,-0.24152,0.33414,0.10388,0.014328,-0.20315,-0.29269,0.27018,0.12946,-0.036843,-0.13918,-0.26711 0.29066,0.15934,0.0061283,-0.11425,-0.23463,0.29066,0.10462,-0.0048151,-0.14708,-0.34406,0.25783,0.15934,0.017072,-0.14708,-0.28934,0.27971,0.13745,0.0061283,-0.15802,-0.31123,0.26877,0.13745,0.0061283,-0.11425,-0.25651 0.30244,0.14322,-0.022795,-0.16648,-0.23832,0.35583,0.12574,-0.0033785,-0.1558,-0.23832,0.33545,0.11409,-0.052892,-0.15774,-0.23929,0.26846,0.11409,-0.054833,-0.18493,-0.23444,0.31506,0.10536,-0.034446,-0.16842,-0.22764 0.28542,0.11256,-0.032826,-0.17498,-0.26545,0.27411,0.17234,-0.015056,-0.15075,-0.25737,0.26765,0.16103,0.017253,-0.18791,-0.27191,0.27249,0.14326,0.033407,-0.17822,-0.30099,0.27088,0.16426,0.023715,-0.087751,-0.27514 0.29034,0.13966,-0.050257,-0.15856,-0.25195,0.28484,0.22677,-0.0094488,-0.16641,-0.24724,0.28484,0.14594,-0.027499,-0.17111,-0.27157,0.27778,0.1632,-0.050257,-0.15385,-0.24567,0.27229,0.15849,-0.027499,-0.17661,-0.23625 0.33985,0.18973,0.011447,-0.10349,-0.22782,0.28825,0.178,-0.014356,-0.15745,-0.24893,0.2859,0.09824,-0.01201,-0.15276,-0.30054,0.28825,0.1217,-0.021393,-0.14806,-0.26301,0.24837,0.11701,-0.05658,-0.1809,-0.27943 0.29236,0.13649,-0.0123,-0.11999,-0.29429,0.3207,0.098228,0.017458,-0.12424,-0.28295,0.31787,0.067054,0.0089556,-0.137,-0.31271,0.2626,0.10106,-0.010883,-0.13275,-0.25886,0.31503,0.11948,0.028794,-0.1455,-0.25461 0.284,0.072905,-0.04175,-0.17211,-0.24395,0.35347,0.10624,-0.036121,-0.1413,-0.24514,0.31081,0.12283,-0.039824,-0.15448,-0.24573,0.29985,0.10846,-0.035232,-0.16026,-0.23684,0.36191,0.13438,-0.034343,-0.13137,-0.2364 0.26395,0.11411,-0.048492,-0.17279,-0.23068,0.34397,0.10986,-0.014438,-0.15491,-0.23153,0.34397,0.10645,-0.050194,-0.16002,-0.24089,0.2963,0.12263,-0.039127,-0.17534,-0.23663,0.34738,0.11752,-0.013587,-0.15916,-0.23834 0.26185,0.13233,-0.00079153,-0.12132,-0.3156,0.23487,0.14852,-0.018781,-0.13031,-0.31201,0.25466,0.16651,-0.015183,-0.17889,-0.28322,0.31222,0.15392,0.0082031,-0.11233,-0.27243,0.30683,0.15392,-0.018781,-0.094336,-0.25984 0.32752,0.17814,0.026002,-0.092944,-0.24785,0.30539,0.13665,0.0011065,-0.13167,-0.26445,0.27773,0.14218,-0.021023,-0.15657,-0.26998,0.29709,0.10346,-0.0016597,-0.14274,-0.25892,0.26666,0.081326,-0.076347,-0.16486,-0.31424 0.26104,0.15244,-0.072331,-0.1582,-0.26932,0.29134,0.12719,-0.059703,-0.1582,-0.25164,0.35701,0.16254,-0.04455,-0.13799,-0.25164,0.30397,0.15749,-0.057178,-0.13799,-0.24407,0.2964,0.12719,-0.024346,-0.1481,-0.22134 0.36596,0.15756,-0.05601,-0.13524,-0.23858,0.31946,0.11278,-0.045676,-0.14729,-0.26958,0.28845,0.078331,-0.035342,-0.15074,-0.28852,0.27812,0.14378,-0.021563,-0.1094,-0.25752,0.27984,0.14722,-0.035342,-0.14213,-0.23858 0.30043,0.13639,0.007499,-0.14482,-0.27371,0.26528,0.1481,-0.015935,-0.10967,-0.29715,0.26528,0.19497,-0.027652,-0.10967,-0.30886,0.24184,0.13639,-0.027652,-0.12139,-0.29715,0.28871,0.18326,-0.027652,-0.15654,-0.25028 0.2697,0.154,0.011235,-0.13246,-0.2463,0.26224,0.13067,0.016833,-0.14739,-0.27243,0.28463,0.13907,-0.0046282,-0.12873,-0.28736,0.27623,0.16893,0.029897,-0.12966,-0.28456,0.27064,0.13347,0.026164,-0.2351,-0.30509 0.28235,0.1703,-0.05378,-0.16582,-0.28907,0.30475,0.1479,-0.020168,-0.13221,-0.27786,0.25994,0.12549,-0.031372,-0.19943,-0.24425,0.30475,0.10308,0.0022408,-0.1098,-0.30027,0.28235,0.1591,0.035853,-0.1098,-0.24425 0.28124,0.14875,0.019272,-0.11623,-0.25173,0.27522,0.11864,0.034327,-0.19753,-0.30292,0.28425,0.15477,0.010238,-0.1072,-0.31196,0.26017,0.1608,-0.0078291,-0.14935,-0.28185,0.26017,0.1337,0.034327,-0.18549,-0.26378 0.21569,0.090889,-0.051125,-0.13289,-0.2706,0.27594,0.13392,0.01773,-0.16732,-0.28351,0.33619,0.15974,0.0091233,-0.1458,-0.24048,0.28885,0.13392,0.01773,-0.13719,-0.2706,0.31036,0.15544,0.0091233,-0.1458,-0.30933 0.27364,0.17529,-0.027507,-0.14492,-0.25851,0.26907,0.19359,-0.038181,-0.14949,-0.25928,0.28203,0.18368,-0.0015858,-0.15559,-0.23717,0.27974,0.14784,-0.042755,-0.1533,-0.27605,0.26678,0.18139,-0.07935,-0.15559,-0.27376 0.32696,0.13568,0.027232,-0.1264,-0.23033,0.32847,0.16731,-0.0059043,-0.12489,-0.21978,0.2878,0.11308,-0.037534,-0.16255,-0.24689,0.2863,0.073924,-0.043559,-0.16104,-0.29208,0.29985,0.12212,-0.055609,-0.17912,-0.28304 0.34676,0.14456,-0.045794,-0.14234,-0.22886,0.3085,0.12817,-0.057635,-0.1642,-0.23251,0.3167,0.090824,-0.048527,-0.156,-0.24161,0.33583,0.12634,-0.058546,-0.13961,-0.23433,0.29757,0.11359,-0.056724,-0.16602,-0.23615 0.32867,0.11502,-0.036143,-0.14592,-0.24642,0.34893,0.10826,-0.011654,-0.1265,-0.24135,0.32782,0.075326,-0.051344,-0.12481,-0.24557,0.30755,0.089682,-0.04881,-0.16535,-0.25317,0.32529,0.089682,-0.026854,-0.13326,-0.25908 0.30036,0.12306,-0.054231,-0.13766,-0.27324,0.26907,0.13349,0.018772,-0.10638,-0.28367,0.30036,0.13349,0.018772,-0.10638,-0.28367,0.34208,0.13349,-0.064661,-0.11681,-0.26281,0.26907,0.13349,-0.064661,-0.13766,-0.28367 0.28468,0.1175,0.010031,-0.15714,-0.28054,0.31652,0.16128,-0.089479,-0.14918,-0.29248,0.27671,0.18119,-0.013852,-0.1253,-0.22481,0.29264,0.14536,-0.033753,-0.14122,-0.24471,0.3006,0.12546,-0.065596,-0.13326,-0.26063 0.29317,0.12735,0.042867,-0.12839,-0.25011,0.28601,0.12506,-0.038754,-0.1808,-0.25269,0.31665,0.12019,0.058332,-0.1788,-0.26242,0.30405,0.13422,-0.066534,-0.14844,-0.2524,0.29775,0.13107,-0.055078,-0.16734,-0.25498 0.26926,0.1239,-0.038392,-0.14625,-0.24482,0.34195,0.10034,-0.020802,-0.13763,-0.26308,0.3456,0.15111,-0.030759,-0.12236,-0.24051,0.26893,0.11859,-0.054323,-0.14294,-0.24682,0.34991,0.095689,-0.065275,-0.14825,-0.26308 0.27156,0.10074,-0.0047231,-0.15375,-0.27412,0.29792,0.10533,-0.03109,-0.13885,-0.34864,0.29563,0.14087,0.0033016,-0.12165,-0.21107,0.29104,0.11565,0.020497,-0.12739,-0.2661,0.32544,0.12482,-0.0047231,-0.11134,-0.29934 0.30033,0.1566,0.0048104,-0.18145,-0.27897,0.25193,0.14267,0.010677,-0.19025,-0.26284,0.26806,0.1478,0.037075,-0.19025,-0.26578,0.2798,0.1632,0.031942,-0.15211,-0.25404,0.26073,0.13387,0.033409,-0.18658,-0.26064 0.30807,0.13615,-0.062163,-0.17376,-0.23182,0.31561,0.10146,-0.049344,-0.18733,-0.23936,0.34125,0.16028,-0.039542,-0.1353,-0.24539,0.2945,0.16631,-0.059147,-0.15265,-0.23936,0.28469,0.12635,-0.04105,-0.15039,-0.22805 0.24695,0.080735,0.045117,-0.19234,-0.27545,0.31819,0.15197,-0.0023746,-0.10923,-0.28732,0.28257,0.15197,0.0094983,-0.14485,-0.22796,0.29445,0.1401,-0.037993,-0.13298,-0.27545,0.29445,0.1401,-0.0023746,-0.18047,-0.28732 0.25036,0.13337,-0.064614,-0.1726,-0.31209,0.25036,0.097371,-0.0016199,-0.1861,-0.2716,0.32235,0.13337,-0.0016199,-0.10061,-0.2716,0.29085,0.16486,0.0073793,-0.11861,-0.28059,0.31785,0.15137,0.025378,-0.12311,-0.2401 0.29244,0.20413,0.016805,-0.10362,-0.23474,0.27103,0.15596,0.0061013,-0.14911,-0.28023,0.28441,0.15596,-0.0046028,-0.17052,-0.29629,0.2523,0.18272,-0.015307,-0.15446,-0.2615,0.24962,0.11582,-0.036715,-0.1946,-0.28559 0.2794,0.13796,0.051011,-0.14608,-0.27824,0.27708,0.16231,0.048692,-0.15999,-0.26085,0.28752,0.12985,0.020868,-0.17506,-0.27824,0.26897,0.12521,0.015071,-0.19593,-0.27708,0.25853,0.1368,0.025505,-0.19477,-0.25853 0.22469,0.092103,-0.010299,-0.13697,-0.24411,0.32059,0.079081,-0.0014206,-0.16716,-0.26483,0.29691,0.12052,-0.015627,-0.16775,-0.2518,0.34959,0.15011,-0.0043802,-0.14526,-0.24589,0.34959,0.11696,-0.013259,-0.16302,-0.26838 0.28151,0.17349,0.015621,-0.1921,-0.25027,0.28151,0.12364,0.048857,-0.13394,-0.2835,0.31474,0.11533,-0.017615,-0.11732,-0.27519,0.2732,0.19011,-0.00099707,-0.16718,-0.25027,0.25658,0.11533,-0.042542,-0.17549,-0.2835 0.30144,0.11375,-0.054141,-0.16259,-0.23663,0.35358,0.10749,-0.029114,-0.14799,-0.2335,0.33586,0.087676,-0.054141,-0.14799,-0.23871,0.29519,0.11792,-0.04997,-0.16885,-0.2335,0.34628,0.1054,-0.025986,-0.14799,-0.2335 0.29019,0.15251,-0.032984,-0.19095,-0.22863,0.28874,0.11484,-0.032984,-0.18515,-0.23732,0.30468,0.13802,-0.066316,-0.17646,-0.24747,0.30758,0.18005,-0.018492,-0.17935,-0.21124,0.30758,0.14382,-0.0097967,-0.17501,-0.23587 0.30656,0.16801,-0.045197,-0.1654,-0.22677,0.30656,0.10538,-0.040769,-0.17363,-0.23436,0.31479,0.11803,-0.068606,-0.1635,-0.24132,0.31858,0.16358,-0.040769,-0.15781,-0.22361,0.32238,0.097784,-0.037605,-0.1711,-0.2312 0.25268,0.14814,0.03365,-0.10573,-0.28991,0.25268,0.2029,0.013739,-0.11071,-0.25507,0.27259,0.15312,-0.016128,-0.17044,-0.28991,0.27259,0.15312,0.013739,-0.17044,-0.30982,0.26761,0.14814,-0.016128,-0.17044,-0.27996 0.25723,0.1705,0.043305,-0.13593,-0.28914,0.25578,0.17195,-0.010176,-0.15616,-0.29781,0.26445,0.17628,0.0086147,-0.16628,-0.28047,0.24711,0.17195,0.024514,-0.13882,-0.27324,0.24566,0.17195,-0.021739,-0.13882,-0.3007 0.31312,0.14175,0.029108,-0.13367,-0.26864,0.25748,0.1809,0.026704,-0.13161,-0.25284,0.25405,0.14484,0.0085031,-0.14329,-0.26383,0.27225,0.1105,0.013654,-0.21953,-0.30435,0.26675,0.14484,0.011937,-0.16046,-0.29817 0.30462,0.13284,-0.058249,-0.16624,-0.2471,0.30994,0.13927,-0.083709,-0.13127,-0.24262,0.30182,0.17508,-0.056291,-0.1503,-0.22556,0.29651,0.14151,-0.048737,-0.16456,-0.23814,0.32476,0.13647,-0.063005,-0.15197,-0.23507 0.23613,0.13952,-0.036942,-0.15158,-0.28296,0.26962,0.10088,0.010717,-0.14772,-0.26364,0.30053,0.098305,-0.016333,-0.14643,-0.29455,0.26962,0.14983,-0.017621,-0.12968,-0.27266,0.38554,0.15756,0.018445,-0.13226,-0.24432 0.28916,0.15341,-0.038096,-0.14449,-0.25822,0.33171,0.17102,-0.043966,-0.14669,-0.25088,0.35226,0.14974,-0.041031,-0.13568,-0.24942,0.24513,0.1314,-0.05644,-0.16137,-0.23914,0.3031,0.091044,-0.049103,-0.17311,-0.23034 0.31458,0.11453,-0.051164,-0.15826,-0.25324,0.258,0.090285,-0.026916,-0.17443,-0.24313,0.36308,0.090285,-0.022874,-0.15018,-0.23909,0.34894,0.10645,-0.032978,-0.1421,-0.24111,0.32469,0.1307,-0.024895,-0.15422,-0.22697 0.28743,0.16007,0.042046,-0.15749,-0.27041,0.28233,0.15073,-0.07088,-0.15409,-0.27126,0.26026,0.16771,-0.015691,-0.19824,-0.27041,0.2662,0.15412,0.051386,-0.15579,-0.27466,0.25856,0.14733,0.01997,-0.13711,-0.27211 0.30881,0.17931,-0.015939,-0.14146,-0.29287,0.24904,0.17134,-0.035862,-0.14146,-0.259,0.23709,0.14743,-0.027893,-0.14345,-0.29486,0.24306,0.17931,-0.035862,-0.11555,-0.25103,0.31678,0.17333,-0.011954,-0.16935,-0.26896 0.26856,0.10991,-0.045145,-0.14611,-0.24257,0.3488,0.09368,0.024267,-0.14611,-0.23896,0.30913,0.097286,0.0044352,-0.1398,-0.28313,0.27397,0.1081,-0.015397,-0.16774,-0.25699,0.36412,0.090976,0.009844,-0.14521,-0.27592 0.30934,0.077325,-0.02739,-0.15674,-0.23477,0.3617,0.1071,-0.032523,-0.128,-0.24709,0.31037,0.1112,-0.044843,-0.1475,-0.24811,0.31755,0.068085,-0.028417,-0.15982,-0.24709,0.34425,0.10504,-0.03047,-0.12697,-0.25222 0.25527,0.16725,0.032894,-0.16632,-0.27519,0.24369,0.13945,0.018995,-0.15011,-0.30763,0.26222,0.14872,0.0074127,-0.15011,-0.29141,0.26917,0.18115,0.037527,-0.18949,-0.27288,0.26222,0.15335,0.037527,-0.13157,-0.28214 0.26797,0.14784,-0.0092403,-0.17557,-0.24949,0.32341,0.092403,0.018481,-0.14784,-0.28645,0.28645,0.18481,-0.0092403,-0.16632,-0.24949,0.29569,0.14784,-0.055442,-0.18481,-0.25873,0.24949,0.14784,0.046201,-0.16632,-0.24949 0.32039,0.10664,-0.018342,-0.15539,-0.22779,0.32729,0.10233,-0.058852,-0.15797,-0.23813,0.26868,0.11698,-0.047647,-0.17349,-0.2321,0.3497,0.11267,-0.01317,-0.15539,-0.23296,0.3497,0.10922,-0.049371,-0.16056,-0.24244 0.30953,0.17038,-0.011133,-0.14061,-0.21321,0.30106,0.11955,-0.025653,-0.14908,-0.2362,0.30227,0.11471,-0.049854,-0.14666,-0.24467,0.32768,0.12197,-0.042594,-0.16602,-0.24104,0.3422,0.057841,-0.052275,-0.17691,-0.27129 0.24258,0.15205,-0.0052306,-0.11954,-0.30974,0.2691,0.16303,0.046893,-0.14788,-0.25122,0.26453,0.13651,0.024032,-0.15063,-0.31523,0.25813,0.1612,0.0094005,-0.13965,-0.30151,0.2691,0.15663,0.041406,-0.1744,-0.27957 0.30122,0.19155,0.0087734,-0.093583,-0.23981,0.24273,0.14769,-0.042405,-0.12283,-0.26174,0.27198,0.17693,-0.020471,-0.11552,-0.30561,0.2866,0.14769,-0.020471,-0.13014,-0.30561,0.25735,0.14037,-0.027782,-0.18132,-0.30561 0.23148,0.12464,-0.026709,-0.14245,-0.2849,0.2938,0.20477,0.017806,-0.14245,-0.25819,0.24929,0.12464,0.0089031,-0.14245,-0.32941,0.27599,0.12464,0.0089031,-0.14245,-0.2938,0.2938,0.18696,0.0089031,-0.12464,-0.26709 0.31774,0.067206,-0.0073017,-0.15818,-0.28577,0.31401,0.067206,-0.02686,-0.13117,-0.25504,0.30935,0.12122,0.0075998,-0.13583,-0.23921,0.29166,0.092352,0.012256,-0.16563,-0.30999,0.32798,0.13426,0.0085311,-0.11068,-0.24573 0.32634,0.1672,0.033525,-0.12349,-0.23595,0.28602,0.16084,-0.015277,-0.12561,-0.25292,0.25844,0.16296,-0.038617,-0.17654,-0.24019,0.30088,0.1375,-0.061958,-0.16381,-0.25717,0.28602,0.12264,-0.085298,-0.19139,-0.27414 0.28567,0.10564,-0.0094998,-0.1573,-0.27371,0.295,0.11434,0.097585,-0.16663,-0.26184,0.28843,0.12027,0.01425,-0.17108,-0.27393,0.27868,0.13575,-0.016922,-0.17214,-0.26502,0.29076,0.14424,0.031426,-0.18084,-0.25315 0.29034,0.1593,-0.0078625,-0.13806,-0.27667,0.2433,0.16014,-0.051543,-0.14562,-0.26659,0.23154,0.16014,-0.042303,-0.16242,-0.25147,0.38022,0.14502,-0.017943,-0.12882,-0.26659,0.28278,0.14334,-0.039783,-0.13554,-0.26491 0.22815,0.15744,-0.042277,-0.18223,-0.25366,0.25366,0.13776,-0.027699,-0.16911,-0.27188,0.28063,0.20774,-0.03353,-0.14432,-0.24564,0.30833,0.15672,-0.034988,-0.15088,-0.23981,0.34842,0.14068,-0.018952,-0.13703,-0.26751 0.31124,0.11417,-0.047202,-0.16513,-0.22797,0.31589,0.073053,-0.048754,-0.16591,-0.24349,0.33606,0.099432,-0.060391,-0.15504,-0.23496,0.33296,0.13745,-0.027806,-0.15194,-0.21866,0.34149,0.10564,-0.033237,-0.15194,-0.23496 0.2787,0.079444,-0.03717,-0.15531,-0.27193,0.31084,0.15351,-0.043291,-0.13573,-0.2502,0.27105,0.15535,-0.046046,-0.15593,-0.24714,0.28451,0.087402,-0.025845,-0.14827,-0.26489,0.38919,0.15657,-0.026457,-0.12409,-0.23428 0.25767,0.11286,-0.036661,-0.15145,-0.268,0.25001,0.086956,-0.024888,-0.16204,-0.28213,0.34832,0.10403,-0.037839,-0.1226,-0.28448,0.34479,0.14052,-0.011938,-0.11142,-0.23975,0.34655,0.11286,-0.0025194,-0.11672,-0.25211 0.35598,0.14692,0.0019956,-0.11204,-0.26884,0.29896,0.14929,-0.0075073,-0.1548,-0.26884,0.28708,0.11128,0.018626,-0.15005,-0.3021,0.23007,0.16117,-0.0075073,-0.11917,-0.28309,0.21106,0.15642,-0.0098831,-0.15718,-0.28784 0.32103,0.20721,-0.0022963,-0.10787,-0.26393,0.28012,0.20787,-0.013844,-0.13196,-0.2669,0.2854,0.11516,-0.010215,-0.14615,-0.28505,0.2534,0.16003,-0.025391,-0.1445,-0.27548,0.23459,0.093713,-0.03133,-0.1567,-0.29692 0.36605,0.10546,-0.032497,-0.14321,-0.24029,0.28941,0.11568,-0.042716,-0.16535,-0.24199,0.27578,0.079914,-0.029091,-0.16705,-0.23518,0.37457,0.12249,-0.023981,-0.14491,-0.23518,0.29281,0.12931,-0.041013,-0.15853,-0.25051 0.28743,0.14659,0.038677,-0.1178,-0.28184,0.27124,0.14929,-0.020677,-0.11187,-0.28885,0.25289,0.16008,-0.037944,-0.13021,-0.28291,0.29066,0.1698,-0.039562,-0.10215,-0.29964,0.26854,0.15361,-0.063304,-0.10323,-0.30881 0.22888,0.17,-0.027502,-0.13877,-0.308,0.24928,0.19828,-0.028893,-0.1244,-0.27647,0.26134,0.16351,-0.032139,-0.13506,-0.2825,0.28962,0.12318,-0.017303,-0.12996,-0.29641,0.31373,0.18808,-0.019157,-0.11745,-0.2519 0.27855,0.082456,-0.079318,-0.15122,-0.25743,0.29652,0.1323,-0.04582,-0.15203,-0.23619,0.29489,0.097162,-0.037649,-0.16511,-0.25171,0.33901,0.12004,-0.040917,-0.13978,-0.2607,0.36188,0.17315,-0.0090528,-0.12507,-0.22393 0.28303,0.11302,-0.022473,-0.10014,-0.28742,0.28562,0.098348,-0.044911,-0.094102,-0.30122,0.27872,0.1415,-0.038007,-0.10101,-0.28137,0.32187,0.13373,-0.017295,-0.096691,-0.28742,0.32359,0.12424,-0.037144,-0.098417,-0.29605 0.2351,0.10659,0.00084593,-0.13743,-0.24805,0.30018,0.09032,-0.0040345,-0.12767,-0.27896,0.34735,0.11472,0.0024727,-0.11466,-0.25781,0.31807,0.093573,-0.010542,-0.16997,-0.25293,0.36037,0.088693,-0.010542,-0.16346,-0.28222 0.25362,0.16353,-0.02793,-0.14055,-0.29822,0.28741,0.16353,0.039643,-0.14055,-0.29822,0.28741,0.084691,-0.016668,-0.11803,-0.26443,0.26489,0.084691,-0.016668,-0.12929,-0.30948,0.33246,0.16353,0.017118,-0.14055,-0.24191 0.26675,0.20382,0.042668,-0.12923,-0.25048,0.26061,0.15931,0.015041,-0.15379,-0.28885,0.25908,0.16085,-0.023329,-0.13691,-0.29499,0.25754,0.18694,0.015041,-0.15532,-0.26276,0.24833,0.13629,-0.021794,-0.18295,-0.31187 0.30596,0.18158,-0.0049749,-0.16044,-0.31591,0.27486,0.13494,0.026118,-0.14489,-0.25372,0.25932,0.088304,0.041665,-0.1138,-0.25372,0.25932,0.16604,-0.020521,-0.17599,-0.31591,0.29041,0.1194,0.010572,-0.12935,-0.26927 0.27333,0.074199,-0.050661,-0.12494,-0.29654,0.24964,0.16704,-0.036574,-0.13582,-0.26068,0.32712,0.15232,-0.019926,-0.11149,-0.27029,0.31624,0.10429,-0.036574,-0.11469,-0.27797,0.28998,0.20674,-0.023128,-0.1339,-0.26773 0.34,0.14346,-0.029063,-0.15357,-0.22293,0.32578,0.09811,-0.040624,-0.15357,-0.24428,0.3489,0.090106,-0.066414,-0.14823,-0.23983,0.31421,0.12034,-0.037067,-0.15357,-0.22471,0.30888,0.073209,-0.048628,-0.15979,-0.24072 0.2942,0.14564,-0.076666,-0.16393,-0.26158,0.27342,0.14564,-0.080821,-0.16497,-0.25223,0.2703,0.16642,-0.052773,-0.17639,-0.25431,0.30251,0.16227,0.0428,-0.14938,-0.23976,0.29939,0.17473,-0.017452,-0.15146,-0.23561 0.29221,0.12992,0.056558,-0.14131,-0.3036,0.24997,0.12103,-0.0034682,-0.16131,-0.31249,0.24997,0.12103,0.018764,-0.14575,-0.28581,0.31667,0.13215,0.040995,-0.11463,-0.28359,0.30555,0.094352,0.0032014,-0.10796,-0.27247 0.26493,0.12201,0.035141,-0.16382,-0.29833,0.25792,0.15844,0.035141,-0.11899,-0.28292,0.25792,0.13462,0.035141,-0.18204,-0.28432,0.27474,0.12902,0.040745,-0.17503,-0.29693,0.26353,0.16965,0.037943,-0.12739,-0.28712 0.30986,0.16715,-0.066388,-0.15721,-0.25601,0.28591,0.1921,-0.006507,-0.1622,-0.24304,0.25896,0.15916,-0.008503,-0.17717,-0.262,0.25996,0.15916,-0.032455,-0.18515,-0.263,0.24599,0.18112,0.026427,-0.17717,-0.24902 0.28178,0.17378,-0.05896,-0.19434,-0.26127,0.26505,0.17378,-0.017889,-0.18978,-0.24758,0.31524,0.17834,0.017098,-0.15175,-0.24302,0.2544,0.16921,-0.0072407,-0.16544,-0.25975,0.24223,0.16617,-0.013325,-0.17153,-0.25519 0.35686,0.17439,0.025602,-0.09511,-0.2467,0.32598,0.15474,-0.022121,-0.1288,-0.24951,0.26141,0.12947,-0.038965,-0.1681,-0.25793,0.30071,0.090169,-0.022121,-0.14283,-0.27758,0.2558,0.07894,-0.050194,-0.1681,-0.286 0.32235,0.16086,0.03088,-0.13061,-0.26453,0.31447,0.13329,0.019064,-0.13849,-0.26453,0.22782,0.14117,0.019064,-0.15424,-0.30392,0.29084,0.14904,0.038758,-0.18575,-0.25665,0.25145,0.09784,-0.055773,-0.17,-0.27241 0.32381,0.096966,-0.014234,-0.10319,-0.24998,0.32381,0.13255,-0.063162,-0.13433,-0.27667,0.34161,0.14589,-0.040922,-0.13433,-0.23219,0.30602,0.14145,-0.054266,-0.18326,-0.25887,0.22151,0.15034,-0.027578,-0.15212,-0.25887 0.31122,0.10898,-0.02189,-0.11707,-0.25983,0.22794,0.19225,0.0138,-0.14086,-0.30742,0.25174,0.10898,-0.0099934,-0.14086,-0.28362,0.33502,0.10898,-0.033787,-0.14086,-0.28362,0.29933,0.18036,0.0019035,-0.16465,-0.23603 0.2881,0.07615,-0.033682,-0.13131,-0.24178,0.2804,0.074223,-0.011201,-0.14351,-0.26041,0.37931,0.09606,-0.042031,-0.13837,-0.27711,0.28875,0.14231,-0.0092746,-0.13645,-0.24435,0.35041,0.11148,-0.0015672,-0.14865,-0.26747 0.31198,0.092474,-0.017277,-0.17895,-0.2533,0.33204,0.10546,-0.081003,-0.15771,-0.2356,0.32024,0.16564,-0.055041,-0.16007,-0.21672,0.31316,0.11018,-0.018457,-0.15535,-0.23206,0.32614,0.11372,-0.0515,-0.15889,-0.21908 0.2539,0.17038,0.012621,-0.10802,-0.28434,0.26318,0.15182,-0.0059392,-0.14514,-0.3493,0.28174,0.1611,0.012621,-0.09874,-0.27506,0.27246,0.1147,0.049741,-0.1637,-0.2565,0.28174,0.12398,-0.015219,-0.15442,-0.29362 0.26769,0.17132,-0.021415,-0.11778,-0.25698,0.24627,0.14991,-0.021415,-0.10708,-0.29981,0.31052,0.19274,-0.010708,-0.096368,-0.26769,0.2784,0.10708,0.010708,-0.14991,-0.28911,0.29981,0.10708,-0.053538,-0.12849,-0.32123 0.40974,0.11574,0.0083113,-0.12738,-0.24753,0.26981,0.11715,-0.021372,-0.15848,-0.24753,0.28253,0.11998,-0.03692,-0.14152,-0.26449,0.32635,0.11998,-0.014305,-0.13728,-0.26025,0.24719,0.11432,-0.03692,-0.17686,-0.26025 0.26042,0.10587,-0.047174,-0.1177,-0.29925,0.32944,0.10887,-0.0096629,-0.1312,-0.25124,0.33844,0.096869,-0.027668,-0.1327,-0.29475,0.28743,0.12838,-0.057678,-0.1372,-0.26324,0.34595,0.11487,0.0023407,-0.15371,-0.19572 0.22304,0.15021,0.026395,-0.17025,-0.26785,0.25655,0.15312,0.039505,-0.13675,-0.28679,0.25655,0.15167,0.010371,-0.13675,-0.2999,0.25218,0.16478,0.023481,-0.16734,-0.2999,0.29442,0.16478,0.038048,-0.13092,-0.30864 0.25876,0.056779,-0.014288,-0.12556,-0.30323,0.26717,0.17647,-0.014288,-0.11995,-0.28827,0.26343,0.15964,-0.0058724,-0.14427,-0.29294,0.2812,0.1587,0.0016084,-0.14053,-0.30323,0.28681,0.20265,0.0072189,-0.10312,-0.26489 0.276,0.22253,-0.018077,-0.10465,-0.28924,0.26836,0.16906,-0.032081,-0.13011,-0.2676,0.28364,0.087586,-0.039719,-0.11483,-0.30833,0.29382,0.14997,-0.015531,-0.10337,-0.28287,0.27473,0.10923,0.0048376,-0.14538,-0.28796 0.29107,0.18832,0.0482,-0.13551,-0.2943,0.26616,0.16652,0.010836,-0.13551,-0.30987,0.24436,0.16652,0.0046082,-0.15419,-0.29119,0.26304,0.12293,0.041972,-0.12617,-0.29119,0.23502,0.12293,-0.0078465,-0.12617,-0.30053 0.31895,0.13216,0.052372,-0.1054,-0.23597,0.29356,0.1231,0.034238,-0.12535,-0.27767,0.25185,0.12491,-0.00021761,-0.13985,-0.30125,0.26455,0.13216,0.030611,-0.15617,-0.294,0.26636,0.11766,-0.0056579,-0.15799,-0.34296 0.29257,0.14742,-0.035997,-0.14948,-0.22601,0.32028,0.039216,-0.037316,-0.15739,-0.25768,0.35195,0.1395,-0.039955,-0.13232,-0.25768,0.29916,0.14082,-0.065026,-0.14024,-0.23789,0.3216,0.12367,-0.045234,-0.1508,-0.24316 0.33546,0.095038,-0.0092634,-0.13773,-0.24321,0.34725,0.07736,-0.035192,-0.14008,-0.26678,0.29834,0.092681,-0.026942,-0.16365,-0.23378,0.33311,0.086789,-0.0057278,-0.14421,-0.23437,0.34195,0.070289,-0.040495,-0.14656,-0.25028 0.28905,0.15535,0.031686,-0.12541,-0.3059,0.27568,0.17541,-0.0084229,-0.13543,-0.29587,0.2222,0.14199,0.018316,-0.16886,-0.29587,0.269,0.15535,0.048398,-0.12541,-0.28584,0.23557,0.14533,0.018316,-0.12875,-0.3059 0.32018,0.076981,-0.03151,-0.17249,-0.23823,0.33386,0.082491,-0.0094696,-0.14817,-0.23595,0.33576,0.086481,-0.03854,-0.15406,-0.24374,0.32702,0.091041,-0.0031996,-0.17705,-0.23367,0.33462,0.093511,-0.0012996,-0.15558,-0.23899 0.29266,0.087455,-0.035669,-0.12894,-0.31176,0.27774,0.10984,-0.0394,-0.14387,-0.31923,0.30385,0.13223,-0.024476,-0.16252,-0.26326,0.3449,0.13969,0.012835,-0.084172,-0.23341,0.29639,0.094917,0.012835,-0.10656,-0.25207 0.26186,0.18084,-0.004704,-0.18293,-0.2629,0.26081,0.18868,-0.012544,-0.16778,-0.2467,0.24618,0.18189,-0.012544,-0.18973,-0.25297,0.26342,0.17718,-0.006272,-0.18241,-0.27283,0.27074,0.1913,-0.011499,-0.16412,-0.25297 0.28129,0.14757,-0.027733,-0.16595,-0.28169,0.31387,0.094751,-0.018743,-0.16595,-0.33338,0.25207,0.10824,-0.020991,-0.12437,-0.23,0.29028,0.11947,-0.020991,-0.14123,-0.23562,0.36894,0.12959,0.029576,-0.13673,-0.23225 0.2698,0.16257,0.011186,-0.10025,-0.29999,0.28872,0.14996,0.036417,-0.11707,-0.27897,0.28452,0.12052,0.015391,-0.11076,-0.33364,0.24037,0.12472,-0.011943,-0.12128,-0.32523,0.2677,0.12472,0.015391,-0.11707,-0.29579 0.2643,0.16723,0.030877,-0.11473,-0.2765,0.24119,0.15799,0.047055,-0.16557,-0.2765,0.2643,0.13257,0.049366,-0.17481,-0.31811,0.26892,0.17648,0.014699,-0.15864,-0.2765,0.25044,0.14875,0.0031432,-0.17019,-0.28575 0.30972,0.086877,-0.061174,-0.15733,-0.22907,0.35093,0.12656,-0.061174,-0.14665,-0.22602,0.3204,0.12503,-0.059648,-0.14665,-0.24128,0.31124,0.092982,-0.036753,-0.17565,-0.23517,0.3433,0.1174,-0.045911,-0.12528,-0.2367 0.28518,0.13773,0.017278,-0.13225,-0.2797,0.33087,0.13565,0.035969,-0.094865,-0.28593,0.3101,0.1045,0.021432,-0.11148,-0.29216,0.26649,0.10035,0.015202,-0.17586,-0.29008,0.2478,0.083734,0.023509,-0.15509,-0.29839 0.34397,0.10634,-0.070584,-0.15567,-0.23869,0.34242,0.10219,-0.047236,-0.13492,-0.23558,0.32062,0.11257,-0.063839,-0.13751,-0.23869,0.30662,0.10634,-0.064876,-0.15827,-0.22935,0.33567,0.1079,-0.044123,-0.13284,-0.23246 0.24607,0.15158,0.044969,-0.13675,-0.26758,0.24122,0.16369,-0.0059118,-0.14159,-0.28939,0.24364,0.16854,-0.0010661,-0.17551,-0.29181,0.26303,0.18065,0.042546,-0.13675,-0.29666,0.26787,0.18792,-0.01318,-0.13675,-0.30877 0.32825,0.093096,-0.011527,-0.15015,-0.23575,0.29708,0.087632,-0.038644,-0.15035,-0.25416,0.2734,0.093096,-0.055035,-0.14731,-0.25295,0.36629,0.10119,-0.0026227,-0.14347,-0.2319,0.3671,0.094108,-0.026907,-0.14893,-0.25153 0.29082,0.13922,-0.032652,-0.20917,-0.22437,0.31025,0.14429,-0.013226,-0.19608,-0.22648,0.28787,0.15316,-0.030963,-0.19355,-0.22606,0.28365,0.154,-0.023361,-0.19355,-0.22606,0.30265,0.15907,-0.013226,-0.1851,-0.23113 0.3094,0.15425,-0.0526,-0.12401,-0.24222,0.31925,0.13948,-0.059988,-0.12401,-0.23483,0.31925,0.14194,-0.064913,-0.16095,-0.24961,0.32417,0.058215,-0.057525,-0.15849,-0.26192,0.32417,0.10747,-0.0526,-0.12155,-0.23237 0.25857,0.14615,0.045198,-0.12917,-0.26798,0.2666,0.1668,0.017666,-0.08902,-0.28633,0.24366,0.16909,0.0084891,-0.13491,-0.30354,0.24595,0.14156,0.021108,-0.17162,-0.30584,0.27004,0.15992,0.013078,-0.16129,-0.32419 0.27588,0.18296,-0.010586,-0.14984,-0.23231,0.29155,0.16456,-0.0026352,-0.13553,-0.25434,0.28656,0.16706,-0.045344,-0.14575,-0.25162,0.29201,0.18206,-0.032622,-0.19437,-0.21618,0.28497,0.069606,-0.025125,-0.19596,-0.305 0.22644,0.096718,-0.024698,-0.17517,-0.26961,0.28455,0.081152,-0.01017,-0.17517,-0.2748,0.32191,0.13096,-0.0039435,-0.11395,-0.26442,0.2804,0.18181,0.0012453,-0.15546,-0.26338,0.30116,0.22436,0.014736,-0.15546,-0.25923 0.26961,0.13633,-0.0007616,-0.17593,-0.30921,0.28484,0.15156,-0.023609,-0.10739,-0.29778,0.30007,0.16679,0.010662,-0.084537,-0.29778,0.25818,0.10205,0.0030464,-0.099769,-0.3054,0.25818,0.14394,-0.0007616,-0.084537,-0.29778 0.22118,0.13764,-0.010892,-0.13157,-0.26308,0.26605,0.12371,0.021598,-0.19036,-0.25689,0.2939,0.19643,-0.013986,-0.11455,-0.25689,0.30628,0.14692,-0.083609,-0.16406,-0.27391,0.33567,0.14382,-0.0062505,-0.1718,-0.25534 0.27542,0.15834,0.0068183,-0.13093,-0.27556,0.26337,0.13251,-0.0017907,-0.12748,-0.31172,0.26337,0.20138,-0.017287,-0.12232,-0.3186,0.24959,0.19622,0.010262,-0.1292,-0.28244,0.22721,0.15317,0.010262,-0.13265,-0.29794 0.36564,0.18616,0.0025757,-0.11936,-0.25499,0.29987,0.19849,0.0039457,-0.13991,-0.24677,0.27384,0.12588,-0.012495,-0.14813,-0.25088,0.26699,0.11492,-0.050856,-0.1632,-0.28924,0.22178,0.11218,-0.048116,-0.17553,-0.2728 0.32899,0.14522,0.0064507,-0.094811,-0.30483,0.23898,0.15647,0.0027003,-0.10981,-0.29358,0.29148,0.13021,0.021452,-0.11731,-0.33859,0.25398,0.12646,-0.0048005,-0.13231,-0.31234,0.24648,0.14147,0.010201,-0.14732,-0.24483 0.26748,0.16106,0.0049665,-0.13516,-0.34446,0.30296,0.13977,0.019157,-0.12629,-0.3285,0.28167,0.12736,-0.019866,-0.1121,-0.32141,0.25861,0.1309,-0.016319,-0.13516,-0.22562,0.28877,0.12381,0.0067403,-0.12274,-0.22562 0.31999,0.16667,0.043028,-0.16222,-0.27844,0.31999,0.16172,-0.013848,-0.14738,-0.27597,0.25569,0.10238,-0.043522,-0.21662,-0.25619,0.26558,0.092485,-0.031158,-0.17211,-0.23888,0.29773,0.15183,0.018299,-0.13502,-0.22404 0.2786,0.13902,0.041315,-0.12618,-0.2518,0.26464,0.18089,-0.042432,-0.11222,-0.29367,0.29255,0.1111,0.013399,-0.18201,-0.29367,0.26464,0.13902,-0.042432,-0.20992,-0.23784,0.29255,0.18089,-0.014516,-0.11222,-0.27971 0.27795,0.21042,-0.0013142,-0.14551,-0.28423,0.24875,0.19946,-0.014091,-0.13456,-0.30613,0.24145,0.15748,-0.0086152,-0.15646,-0.27693,0.27065,0.12645,0.040667,-0.12178,-0.29336,0.2597,0.1155,0.020589,-0.12726,-0.29883 0.29643,0.096714,-0.051869,-0.1937,-0.27764,0.27907,0.12662,-0.017135,-0.15704,-0.24966,0.24819,0.12469,-0.027748,-0.16861,-0.2458,0.33985,0.17583,-0.060552,-0.13195,-0.24194,0.33213,0.1903,-0.042221,-0.12713,-0.21685 0.18476,0.12196,-0.040766,-0.12926,-0.28057,0.31322,0.16192,-0.043621,-0.14068,-0.24631,0.29895,0.11054,-0.026492,-0.14925,-0.28057,0.33606,0.12766,-0.040766,-0.12641,-0.28342,0.3275,0.17905,-0.0036541,-0.11784,-0.25202 0.33555,0.2008,-0.030201,-0.11789,-0.22912,0.30774,0.15802,-0.0066733,-0.15212,-0.24623,0.31416,0.15802,-0.043034,-0.12217,-0.27403,0.26282,0.14519,-0.070839,-0.14356,-0.27403,0.24571,0.076743,-0.062284,-0.16067,-0.27189 0.36849,0.1108,0.0040009,-0.11976,-0.20791,0.31933,0.095547,-0.016343,-0.13162,-0.25368,0.28372,0.08368,-0.014647,-0.14349,-0.29098,0.30068,0.095547,-0.0061709,-0.11467,-0.32489,0.30237,0.090461,-0.019733,-0.15197,-0.25877 0.33428,0.1957,0.01193,-0.1146,-0.25318,0.31319,0.14147,-0.0061457,-0.13268,-0.23812,0.31922,0.1475,-0.024221,-0.11159,-0.26824,0.26499,0.12641,-0.072423,-0.1628,-0.25619,0.24691,0.06917,-0.05736,-0.17786,-0.29536 0.32172,0.10758,-0.005482,-0.094564,-0.28815,0.29431,0.10073,-0.0209,-0.091138,-0.29671,0.27033,0.11444,-0.024326,-0.11683,-0.29671,0.32344,0.10416,-0.005482,-0.082573,-0.29329,0.29774,0.10587,-0.024326,-0.094564,-0.30528 0.33341,0.17739,-0.018515,-0.11387,-0.25429,0.2398,0.17218,-0.016782,-0.15201,-0.24909,0.271,0.16352,0.0074893,-0.12427,-0.24736,0.27794,0.15485,-0.021983,-0.13814,-0.29416,0.22073,0.15832,-0.015048,-0.20401,-0.3271 0.26978,0.11572,0.01301,-0.10682,-0.24376,0.26978,0.081483,0.01301,-0.15817,-0.32936,0.30402,0.16707,-0.021227,-0.20953,-0.26088,0.2869,0.11572,0.030128,-0.15817,-0.24376,0.32114,0.16707,-0.021227,-0.15817,-0.24376 0.28271,0.13403,0.0027182,-0.095381,-0.30793,0.273,0.10082,0.0047619,-0.10509,-0.31355,0.29855,0.10695,-0.01261,-0.090782,-0.30844,0.29037,0.1376,0.0027182,-0.092315,-0.29822,0.28731,0.10388,0.0098712,-0.10202,-0.30895 0.34654,0.1673,-0.029021,-0.13998,-0.2168,0.33801,0.13315,-0.046092,-0.15705,-0.24241,0.3124,0.090476,-0.020485,-0.14852,-0.25948,0.3124,0.099012,-0.01195,-0.16559,-0.2168,0.26972,0.10755,-0.080234,-0.19973,-0.24241 0.24708,0.15919,-0.0030648,-0.12476,-0.2487,0.25384,0.069049,-0.00081128,-0.19011,-0.23518,0.28764,0.13666,0.010456,-0.16757,-0.31405,0.30116,0.19074,0.023978,-0.16307,-0.28476,0.28764,0.18173,0.010456,-0.16532,-0.26222 0.25841,0.088962,-0.038127,-0.1864,-0.32761,0.26547,0.12779,-0.016945,-0.13697,-0.27112,0.26547,0.13486,-0.0098847,-0.16169,-0.27465,0.29372,0.12779,0.014827,-0.12991,-0.28524,0.32902,0.21252,0.032478,-0.09461,-0.21817 0.34957,0.089474,-0.027571,-0.18363,-0.31368,0.32356,0.14149,0.037454,-0.13161,-0.24865,0.27154,0.11548,0.024449,-0.17063,-0.28767,0.24553,0.11548,-0.0015606,-0.11861,-0.24865,0.27154,0.1675,-0.040575,-0.13161,-0.24865 0.25119,0.13989,-0.029993,-0.12665,-0.24381,0.2922,0.1311,-0.053425,-0.15008,-0.25552,0.38006,0.090095,-0.032922,-0.15594,-0.24674,0.35956,0.098882,-0.024135,-0.13251,-0.24967,0.3127,0.081309,-0.044638,-0.13837,-0.2526 0.30308,0.16021,0.023834,-0.071955,-0.22457,0.27223,0.14722,0.0027275,-0.11417,-0.2684,0.29983,0.13261,0.0092217,-0.10767,-0.31549,0.26736,0.13099,-0.034614,-0.12391,-0.3236,0.25438,0.12936,-0.049226,-0.1856,-0.31386 0.28049,0.18426,0.019894,-0.10444,-0.30032,0.25495,0.13997,0.0045648,-0.10104,-0.32417,0.27368,0.13657,-0.0090614,-0.10104,-0.3148,0.25665,0.16041,0.014784,-0.10955,-0.28584,0.24984,0.12039,0.006268,-0.13085,-0.32161 0.30273,0.11884,-0.05031,-0.16741,-0.22466,0.35477,0.1119,-0.026022,-0.14399,-0.22813,0.32441,0.093681,-0.061587,-0.1518,-0.23247,0.30013,0.11016,-0.064189,-0.17609,-0.229,0.35998,0.098018,-0.038166,-0.14833,-0.23247 0.35035,0.10236,0.012507,-0.15282,-0.26064,0.29644,0.11314,-0.016245,-0.1025,-0.23189,0.26769,0.15268,0.012507,-0.1061,-0.23189,0.27488,0.15987,-0.016245,-0.18876,-0.29658,0.31082,0.073607,-0.052186,-0.1672,-0.30377 0.32147,0.18994,-0.024802,-0.15096,-0.28517,0.29731,0.13357,-0.014065,-0.15365,-0.23417,0.37784,0.13894,-0.054329,-0.13486,-0.23149,0.25168,0.13894,-0.054329,-0.15096,-0.25028,0.24631,0.095989,-0.030171,-0.17244,-0.25028 0.36423,0.12784,-0.011764,-0.14578,-0.2314,0.3605,0.12039,0.0068497,-0.12717,-0.25746,0.34189,0.086887,-0.030377,-0.13275,-0.28166,0.22649,0.11667,-0.039684,-0.15695,-0.26863,0.25255,0.10736,-0.022932,-0.1495,-0.2556 0.22792,0.17238,0.010418,-0.15248,-0.27476,0.25032,0.17238,0.033755,-0.12494,-0.28223,0.24612,0.17658,0.0029498,-0.14314,-0.29623,0.24612,0.18545,0.00014936,-0.17301,-0.29343,0.26526,0.18545,0.016952,-0.14687,-0.3051 0.28873,0.14282,0.053482,-0.089454,-0.28897,0.28873,0.16068,-0.023942,-0.13412,-0.29195,0.28278,0.13091,-0.017986,-0.1103,-0.29493,0.3066,0.05646,-0.0060748,-0.10434,-0.3247,0.27682,0.11006,-0.020964,-0.11328,-0.27706 0.29441,0.21521,-0.0017355,-0.16978,-0.27171,0.29096,0.17251,0.016859,-0.1622,-0.29237,0.27719,0.18353,-0.012066,-0.13052,-0.25518,0.26548,0.083664,0.0099724,-0.15532,-0.25931,0.27375,0.055427,-0.0079339,-0.14154,-0.27928 0.23774,0.16938,-0.039099,-0.16897,-0.24074,0.26508,0.16596,0.019003,-0.14163,-0.23049,0.26508,0.14888,-0.025428,-0.14163,-0.27492,0.31293,0.17622,-0.086947,-0.1929,-0.27492,0.3266,0.15913,-0.02201,-0.16897,-0.23733 0.27469,0.10076,-0.03176,-0.16317,-0.27029,0.25094,0.14051,-0.041147,-0.14219,-0.24379,0.28407,0.12671,-0.031208,-0.16152,-0.24931,0.31058,0.086954,-0.015748,-0.15103,-0.25759,0.41438,0.16039,-0.026239,-0.13004,-0.23495 0.25611,0.11077,-0.08091,-0.16659,-0.23133,0.35385,0.10315,-0.031404,-0.16088,-0.2307,0.33735,0.090455,-0.047906,-0.15898,-0.23704,0.32021,0.13108,-0.058061,-0.14438,-0.23323,0.34814,0.12981,-0.018076,-0.15073,-0.2307 0.3646,0.11832,0.0073613,-0.13608,-0.22268,0.33483,0.091258,-0.049472,-0.14149,-0.25245,0.278,0.12103,-0.081948,-0.14419,-0.2335,0.32942,0.14539,-0.049472,-0.15502,-0.24433,0.29423,0.091258,-0.06571,-0.13066,-0.26869 0.36903,0.16027,-0.029004,-0.14104,-0.23776,0.3078,0.1046,-0.056838,-0.148,-0.23916,0.30084,0.090685,-0.037354,-0.15008,-0.23916,0.36486,0.11922,-0.033179,-0.1473,-0.24333,0.24308,0.11713,-0.073539,-0.15217,-0.24959 0.26649,0.16619,-0.069111,-0.16338,-0.23201,0.29892,0.14884,-0.058552,-0.16413,-0.23804,0.30193,0.19032,-0.054782,-0.15131,-0.22748,0.29213,0.17674,-0.055536,-0.17243,-0.23276,0.2959,0.16166,-0.054028,-0.18299,-0.24257 0.24729,0.0896,0.024907,-0.13278,-0.23387,0.28772,0.1179,0.0087336,-0.12065,-0.22578,0.27964,0.14216,0.01682,-0.19748,-0.29452,0.28368,0.15429,0.032994,-0.17322,-0.31878,0.29177,0.16238,0.032994,-0.17322,-0.3026 0.26753,0.13973,-0.044872,-0.087472,-0.25787,0.33853,0.12553,0.040328,-0.11587,-0.27207,0.28173,0.13973,0.011928,-0.17267,-0.27207,0.25333,0.11133,-0.030672,-0.20107,-0.32887,0.29593,0.15393,-0.016472,-0.11587,-0.24367 0.2287,0.1422,0.047054,-0.16919,-0.28163,0.28059,0.1422,0.021105,-0.19514,-0.29893,0.28059,0.1768,-0.0048438,-0.10864,-0.31623,0.28059,0.11625,0.012455,-0.09999,-0.24703,0.26329,0.15085,0.021105,-0.13459,-0.30758 0.2828,0.20336,-0.054812,-0.12432,-0.27326,0.27287,0.11399,0.014696,-0.12432,-0.27326,0.31258,0.16364,-0.064741,-0.15411,-0.31298,0.2828,0.15371,0.044485,-0.13425,-0.22362,0.27287,0.084203,-0.025023,-0.16404,-0.27326 0.30518,0.19126,-0.05975,-0.1495,-0.24616,0.26968,0.16661,-0.051367,-0.17367,-0.23334,0.36535,0.174,-0.026216,-0.15542,-0.23087,0.2751,0.11828,-0.062216,-0.15641,-0.25307,0.25192,0.13554,-0.041997,-0.16627,-0.24666 0.23437,0.13461,-0.056218,-0.15519,-0.22804,0.31514,0.14015,-0.06572,-0.16469,-0.22804,0.35631,0.12748,-0.042757,-0.14728,-0.23754,0.33414,0.14094,-0.062552,-0.15203,-0.23675,0.31118,0.14807,-0.056218,-0.1742,-0.23517 0.23314,0.17632,-0.011819,-0.16586,-0.29213,0.23188,0.15233,-0.032021,-0.16334,-0.30097,0.21546,0.16243,-0.028233,-0.13809,-0.27572,0.31521,0.16748,0.023536,-0.13809,-0.25173,0.34047,0.1599,0.0083841,-0.12293,-0.26562 0.33573,0.092141,-0.042708,-0.13571,-0.24409,0.3368,0.065672,-0.02697,-0.15002,-0.24051,0.3368,0.085703,-0.03162,-0.12212,-0.24624,0.33573,0.08928,-0.044855,-0.14072,-0.24695,0.33573,0.064599,-0.011232,-0.14966,-0.2448 0.26271,0.12662,-0.008678,-0.1804,-0.27886,0.28913,0.12782,0.081384,-0.12396,-0.29287,0.27792,0.12421,0.051363,-0.13396,-0.30528,0.26911,0.11901,0.038154,-0.15678,-0.28967,0.28673,0.099397,0.028948,-0.11635,-0.29568 0.25387,0.13884,0.023809,-0.18241,-0.29493,0.25638,0.17272,0.04054,-0.17488,-0.27025,0.25345,0.1426,0.04807,-0.18199,-0.27025,0.26893,0.1472,0.027574,-0.17446,-0.27569,0.26516,0.17397,0.04807,-0.18408,-0.25226 0.26756,0.14439,0.046489,-0.086156,-0.31144,0.24967,0.14334,0.028592,-0.12827,-0.31039,0.24862,0.13176,0.03912,-0.18301,-0.29565,0.28862,0.15597,0.0033267,-0.10405,-0.29986,0.2623,0.14229,-0.012464,-0.11879,-0.30197 0.35822,0.11406,0.012251,-0.17152,-0.26556,0.37203,0.14857,-0.0084552,-0.10681,-0.26901,0.22967,0.13045,-0.035201,-0.1465,-0.25693,0.27108,0.075234,-0.019671,-0.18015,-0.2647,0.2754,0.12182,-0.012769,-0.1025,-0.26901 0.39401,0.13376,-4.9104e-05,-0.11544,-0.24434,0.2688,0.14481,0.0085441,-0.13754,-0.23452,0.28476,0.11166,-0.0037319,-0.18542,-0.25171,0.28353,0.14481,-0.052836,-0.1756,-0.27135,0.22706,0.16322,-0.036877,-0.18665,-0.2689 0.30415,0.17168,-0.031439,-0.14624,-0.24339,0.28648,0.17168,-0.04027,-0.17274,-0.25222,0.28648,0.14518,-0.049101,-0.18157,-0.21689,0.29532,0.15402,-0.075595,-0.1904,-0.21689,0.28648,0.18051,-0.049101,-0.1904,-0.22573 0.25571,0.13069,0.0018044,-0.12579,-0.34748,0.25571,0.15389,0.039182,-0.11033,-0.27402,0.25185,0.13327,0.032738,-0.14771,-0.30624,0.26989,0.13843,0.023715,-0.11291,-0.32686,0.27247,0.15389,0.039182,-0.11935,-0.28175 0.25512,0.12379,-0.0070382,-0.21748,-0.23827,0.29569,0.12683,0.039613,-0.19567,-0.24232,0.29772,0.1172,-0.051154,-0.17285,-0.24232,0.3038,0.13139,0.024401,-0.19111,-0.24334,0.32358,0.13494,0.043162,-0.17082,-0.24486 0.32296,0.12198,-0.063256,-0.16721,-0.22581,0.32863,0.10181,-0.038054,-0.14957,-0.22581,0.33241,0.090474,-0.068927,-0.14705,-0.234,0.33871,0.10812,-0.066406,-0.16343,-0.22392,0.3406,0.094254,-0.037424,-0.14705,-0.22203 0.31847,0.11466,-0.024458,-0.14416,-0.29622,0.25701,0.14054,-0.043869,-0.11181,-0.24769,0.25377,0.11142,-0.037399,-0.16034,-0.2768,0.25053,0.13083,0.0078939,-0.14416,-0.26386,0.40906,0.1276,0.0078939,-0.12475,-0.25416 0.30384,0.088738,-0.062155,-0.11031,-0.28368,0.29742,0.20431,-0.023629,-0.13921,-0.2612,0.291,0.169,0.03416,-0.12957,-0.27084,0.28137,0.12084,-0.062155,-0.14242,-0.31899,0.23321,0.14332,0.027739,-0.12957,-0.2612 0.27786,0.16756,-0.024406,-0.19854,-0.25134,0.27856,0.15841,-0.056323,-0.18821,-0.25815,0.27856,0.17601,-0.057027,-0.17742,-0.24688,0.27739,0.18117,0.048813,-0.17085,-0.22646,0.27457,0.1692,-0.034263,-0.16568,-0.23257 0.25564,0.19641,-0.03966,-0.1504,-0.27573,0.24534,0.1801,-0.0053223,-0.19418,-0.28517,0.25393,0.19899,0.011846,-0.11177,-0.26543,0.24878,0.19384,-0.014765,-0.15126,-0.27573,0.25564,0.16894,0.0049789,-0.17014,-0.27487 0.33892,0.068426,-0.024245,-0.14822,-0.23714,0.33517,0.12353,-0.043029,-0.14697,-0.22023,0.33704,0.085958,-0.046786,-0.16137,-0.22461,0.33266,0.065921,-0.03802,-0.162,-0.24903,0.33266,0.10099,-0.041777,-0.14572,-0.23213 0.23724,0.15609,-0.019748,-0.16853,-0.29703,0.28459,0.10199,0.034356,-0.16853,-0.27674,0.29811,0.12227,-0.033274,-0.18882,-0.29027,0.23048,0.15609,0.007304,-0.11443,-0.27674,0.33869,0.16285,0.047882,-0.1009,-0.24293 0.305,0.15957,-0.0078975,-0.11279,-0.30758,0.27944,0.17015,0.038817,-0.11807,-0.24412,0.27592,0.11991,0.0026795,-0.11102,-0.31727,0.24683,0.13577,-0.039628,-0.10573,-0.33314,0.23802,0.14547,-0.0017276,-0.10926,-0.30934 0.34215,0.14745,0.015444,-0.13636,-0.26506,0.36855,0.10785,-0.004356,-0.12316,-0.30136,0.28935,0.15405,-0.030756,-0.12316,-0.26836,0.26295,0.10785,0.002244,-0.13306,-0.24196,0.21015,0.081445,-0.0076561,-0.14956,-0.30466 0.27443,0.10881,-0.015059,-0.074209,-0.29411,0.2786,0.1102,-0.03524,-0.076297,-0.30942,0.27234,0.13943,-0.033848,-0.099261,-0.30246,0.30574,0.13943,-0.008796,-0.092302,-0.30246,0.3134,0.14082,-0.033848,-0.1097,-0.2962 0.28699,0.093791,-0.035832,-0.15885,-0.23563,0.35634,0.083883,-0.036658,-0.12582,-0.23728,0.31836,0.085534,-0.049868,-0.13243,-0.24389,0.33322,0.097093,-0.048216,-0.16298,-0.24059,0.3712,0.090488,-0.037483,-0.12417,-0.24719 0.27077,0.10866,0.015327,-0.10945,-0.28728,0.23835,0.12045,0.034977,-0.13696,-0.29121,0.28748,0.12733,0.050696,-0.094712,-0.2971,0.29828,0.12733,0.015327,-0.10355,-0.32363,0.26488,0.14502,0.029082,-0.16643,-0.32363 0.2733,0.21926,-0.023021,-0.17253,-0.24819,0.24538,0.1391,-0.019419,-0.17433,-0.27521,0.276,0.21926,-0.035631,-0.10498,-0.27521,0.25889,0.17963,-0.032028,-0.1248,-0.26891,0.26159,0.1445,-0.02122,-0.14461,-0.29683 0.33508,0.1723,0.021298,-0.10519,-0.20129,0.29978,0.18505,0.0075699,-0.12971,-0.23169,0.26546,0.10955,0.0056088,-0.17874,-0.26208,0.2733,0.084053,-0.022827,-0.18756,-0.31699,0.27036,0.12328,-0.0444,-0.17089,-0.30131 0.24916,0.14069,0.0094598,-0.14986,-0.25122,0.27369,0.13073,-0.048153,-0.14702,-0.26687,0.28863,0.13535,0.0048366,-0.14133,-0.23628,0.28721,0.1005,-0.01828,-0.15911,-0.25798,0.42199,0.093034,-0.042463,-0.14631,-0.27042 0.28286,0.11813,-0.058361,-0.10543,-0.27016,0.25933,0.15343,0.03577,-0.16426,-0.31722,0.31816,0.18873,0.03577,-0.10543,-0.29369,0.24756,0.11813,-0.011296,-0.19956,-0.24662,0.25933,0.1652,0.00047065,-0.14073,-0.27016 0.22843,0.14543,-0.016847,-0.18284,-0.27327,0.23338,0.12685,-0.00074326,-0.17912,-0.30672,0.27178,0.15782,-0.013131,-0.13825,-0.32282,0.28169,0.19498,0.033942,-0.1209,-0.25593,0.28541,0.18012,0.05624,-0.12462,-0.26088 0.27526,0.17796,0.018488,-0.10855,-0.2464,0.27256,0.12931,0.013082,-0.11395,-0.29775,0.26175,0.14552,-0.013947,-0.10314,-0.29775,0.25634,0.17796,0.0022704,-0.10855,-0.28153,0.25364,0.13741,-0.013947,-0.16261,-0.37343 0.27044,0.1551,-0.040105,-0.11996,-0.31516,0.21721,0.10186,-0.057851,-0.1732,-0.26192,0.27932,0.11961,0.013132,-0.12883,-0.24418,0.32368,0.11073,-0.0046138,-0.11109,-0.27967,0.33255,0.20833,0.022005,-0.13771,-0.27967 0.30285,0.074003,-0.025914,-0.16129,-0.21608,0.34152,0.099788,-0.04203,-0.12261,-0.2322,0.29318,0.099788,-0.045253,-0.15806,-0.24509,0.32863,0.074003,-0.035583,-0.15484,-0.23864,0.3802,0.13847,-0.054922,-0.14195,-0.25798 0.23594,0.12086,0.048713,-0.14882,-0.29482,0.24625,0.14834,0.028101,-0.14023,-0.28452,0.25312,0.16208,0.064172,-0.16256,-0.27077,0.26171,0.14834,0.053866,-0.17458,-0.29997,0.28575,0.1638,0.017795,-0.15913,-0.30341 0.23556,0.074287,-0.041629,-0.18022,-0.3289,0.2658,0.11209,-0.029029,-0.1525,-0.30874,0.28596,0.1524,0.011289,-0.13991,-0.24322,0.30108,0.14484,0.033968,-0.10715,-0.2785,0.33384,0.16248,0.028929,-0.081947,-0.25078 0.32435,0.017931,-0.033139,-0.16081,-0.25728,0.34138,0.13426,0.0065824,-0.13244,-0.23742,0.30165,0.097374,-0.013278,-0.16649,-0.24593,0.313,0.077513,-0.010441,-0.15514,-0.27147,0.33003,0.14844,-0.047325,-0.13812,-0.22323 0.33846,0.12972,-0.031312,-0.13792,-0.20725,0.35263,0.11481,-0.013419,-0.12897,-0.22216,0.34368,0.097663,-0.059641,-0.14836,-0.24304,0.25124,0.10586,-0.05815,-0.18116,-0.24751,0.33548,0.08648,-0.049204,-0.16998,-0.25795 0.23169,0.12381,-0.012438,-0.14961,-0.19248,0.24084,0.14044,-0.03029,-0.15296,-0.26846,0.33773,0.15174,-0.044785,-0.14869,-0.26785,0.34231,0.1525,-0.017168,-0.15403,-0.25458,0.35878,0.07743,-0.034104,-0.15647,-0.27335 0.34276,0.1515,0.02149,-0.11282,-0.21167,0.34276,0.10315,-0.019341,-0.11712,-0.23746,0.28796,0.10852,-0.047277,-0.12571,-0.27077,0.3202,0.089182,-0.033309,-0.14505,-0.2525,0.29548,0.050501,-0.059096,-0.16547,-0.3159 0.36233,0.11712,0.016155,-0.2002,-0.24347,0.24694,0.11712,0.016155,-0.2002,-0.24347,0.24694,0.16039,-0.027117,-0.15693,-0.24347,0.31905,0.11712,0.016155,-0.2002,-0.24347,0.29021,0.16039,-0.027117,-0.15693,-0.24347 0.24436,0.13841,0.037275,-0.14573,-0.28539,0.24917,0.16249,0.027643,-0.13369,-0.26612,0.24436,0.16249,0.025235,-0.15536,-0.27576,0.24676,0.15526,0.032459,-0.16499,-0.31187,0.26121,0.19379,0.034867,-0.1361,-0.34077 0.17463,0.10991,0.00070111,-0.18536,-0.25278,0.32429,0.10452,0.010139,-0.17862,-0.26896,0.32968,0.12609,-0.004692,-0.15435,-0.24738,0.32025,0.12205,0.00070111,-0.16918,-0.25008,0.34317,0.12474,0.022274,-0.14626,-0.25547 0.2501,0.20559,0.00070511,-0.16228,-0.26285,0.24807,0.17698,-0.011721,-0.1906,-0.26602,0.25472,0.17496,-0.0044965,-0.18164,-0.2692,0.25732,0.19635,-0.0099872,-0.15997,-0.25735,0.24865,0.19577,0.012264,-0.18713,-0.25822 0.2855,0.18872,-0.049913,-0.19989,-0.242,0.29658,0.18724,-0.041048,-0.17034,-0.25087,0.2855,0.18281,-0.012235,-0.14817,-0.24865,0.2227,0.15769,-0.0033689,-0.19472,-0.24126,0.26777,0.1636,0.0025415,-0.19398,-0.24422 0.2895,0.1012,-0.062398,-0.14998,-0.2347,0.33353,0.10231,-0.028982,-0.15045,-0.22093,0.33606,0.092805,-0.053846,-0.15552,-0.23914,0.28887,0.10167,-0.063506,-0.15029,-0.24009,0.39545,0.12099,-0.034841,-0.14982,-0.22789 0.33901,0.045791,-0.056106,-0.14657,-0.2443,0.34524,0.059308,-0.019714,-0.14968,-0.22767,0.33173,0.068666,-0.026992,-0.13825,-0.25782,0.31509,0.11754,-0.042589,-0.13513,-0.2599,0.32029,0.13625,0.0042007,-0.13097,-0.24742 0.3421,0.077067,-0.046603,-0.084219,-0.2723,0.27322,0.12087,0.019183,-0.13042,-0.25701,0.27752,0.057142,-0.029942,-0.15739,-0.26887,0.34588,0.096304,-0.045057,-0.14434,-0.2656,0.34382,0.12911,0.019183,-0.14846,-0.25117 0.34027,0.16258,-0.012775,-0.1022,-0.22297,0.32052,0.11962,-0.0069679,-0.13239,-0.27407,0.34375,0.13007,-0.022065,-0.11149,-0.25317,0.28801,0.098712,-0.055743,-0.15097,-0.26943,0.27988,0.01742,-0.052259,-0.15097,-0.28336 0.25842,0.17976,0.022438,-0.13489,-0.27158,0.24553,0.17202,0.035333,-0.19163,-0.27545,0.25327,0.15526,0.034044,-0.1826,-0.28705,0.24553,0.19137,0.032754,-0.15165,-0.27158,0.24553,0.17073,-0.00077372,-0.20065,-0.27416 0.22106,0.15066,-0.0059842,-0.16615,-0.31047,0.24218,0.11194,0.045057,-0.17143,-0.29111,0.27034,0.15946,0.032737,-0.11687,-0.29463,0.26506,0.18234,0.041537,-0.14855,-0.29111,0.27738,0.15418,0.062658,-0.13271,-0.28759 0.2704,0.20708,-0.077891,-0.17288,-0.2837,0.23874,0.15958,0.0012665,-0.10955,-0.2837,0.25457,0.14375,0.03293,-0.17288,-0.25204,0.25457,0.14375,-0.030396,-0.12539,-0.31536,0.3179,0.15958,0.03293,-0.14122,-0.25204 0.25911,0.18433,0.022754,-0.20426,-0.27636,0.28048,0.17365,-0.03333,-0.19624,-0.26969,0.2738,0.15495,-0.040007,-0.17488,-0.26835,0.25644,0.13626,0.053467,-0.16419,-0.26568,0.26579,0.183,0.010736,-0.15351,-0.20826 0.2861,0.10248,-0.019351,-0.1606,-0.35246,0.29375,0.11013,0.010076,-0.1606,-0.30244,0.28904,0.10248,0.0012477,-0.1553,-0.30715,0.28963,0.1319,0.0036018,-0.14647,-0.22357,0.29434,0.14662,0.040091,-0.069377,-0.20415 0.31697,0.14542,0.061845,-0.089908,-0.25926,0.31257,0.13882,0.020058,-0.1141,-0.27245,0.28617,0.15202,0.033254,-0.13169,-0.27245,0.25318,0.10363,0.0046625,-0.15589,-0.32084,0.23999,0.086037,-0.063516,-0.15589,-0.31864 0.24415,0.19545,-0.0050342,-0.16504,-0.26686,0.24415,0.16889,0.010144,-0.18528,-0.25927,0.25869,0.2043,0.008247,-0.15366,-0.26433,0.25933,0.21,-0.018315,-0.18401,-0.25927,0.25237,0.17205,-0.012623,-0.19224,-0.2618 0.28798,0.1821,-0.0061171,-0.10023,-0.27668,0.20563,0.13505,-0.041408,-0.14728,-0.28845,0.27621,0.12328,-0.029645,-0.088463,-0.26492,0.37032,0.15857,-0.017881,-0.12375,-0.30021,0.25268,0.14681,-0.029645,-0.12375,-0.30021 0.27169,0.16272,0.017435,-0.11877,-0.30038,0.27169,0.18088,-0.018887,-0.19142,-0.21866,0.25353,0.16272,0.044676,-0.19142,-0.2913,0.27169,0.14456,0.035595,-0.15509,-0.31854,0.23537,0.16272,-0.00072644,-0.17326,-0.23682 0.26635,0.099281,-0.070624,-0.18673,-0.27309,0.27202,0.14317,-0.025316,-0.18248,-0.23628,0.27627,0.10353,-0.013989,-0.18248,-0.2377,0.35839,0.11769,-0.038059,-0.15274,-0.22071,0.37254,0.16016,0.0001699,-0.14142,-0.20796 0.2962,0.17399,0.01646,-0.11816,-0.20313,0.31911,0.15872,0.030781,-0.11243,-0.22605,0.2857,0.13867,-0.016956,-0.13057,-0.26519,0.25706,0.11957,-0.043689,-0.22414,-0.29479,0.27806,0.094749,-0.028413,-0.17544,-0.33011 0.28262,0.19241,-0.053638,-0.14249,-0.25662,0.26144,0.18831,-0.075508,-0.14454,-0.26004,0.2464,0.19241,-0.065256,-0.16846,-0.24979,0.29356,0.18899,-0.037235,-0.13292,-0.25662,0.27442,0.176,-0.055688,-0.13565,-0.26209 0.31601,0.11107,-0.02656,-0.12105,-0.23753,0.32161,0.10589,-0.048563,-0.14262,-0.24314,0.36519,0.067926,-0.038208,-0.15513,-0.23495,0.38331,0.093813,-0.036483,-0.1314,-0.24832,0.26207,0.090361,-0.052877,-0.14995,-0.25048 0.30413,0.11991,0.036174,-0.16479,-0.24853,0.25389,0.13666,0.036174,-0.19829,-0.29877,0.25389,0.086417,0.019427,-0.14805,-0.28203,0.25389,0.20365,-0.014068,-0.14805,-0.23178,0.30413,0.17015,-0.014068,-0.11455,-0.31552 0.30498,0.094844,-0.031921,-0.14082,-0.24461,0.31519,0.074425,0.02423,-0.13486,-0.25823,0.3237,0.2348,-0.021712,-0.12933,-0.25057,0.30371,0.084634,-0.054466,-0.14465,-0.24972,0.29775,0.077403,-0.022137,-0.18251,-0.27014 0.33224,0.078435,-0.02796,-0.1296,-0.2354,0.37028,0.10697,-0.030932,-0.12484,-0.2039,0.32451,0.093889,-0.042225,-0.14862,-0.23183,0.32451,0.063575,-0.045197,-0.15575,-0.27166,0.3257,0.082596,-0.049952,-0.151,-0.25383 0.28406,0.20266,0.037303,-0.14586,-0.25066,0.26473,0.16043,-0.019171,-0.13212,-0.26644,0.24081,0.19808,-0.004925,-0.2181,-0.27051,0.24641,0.1823,0.004233,-0.14993,-0.28017,0.22759,0.17162,-0.02782,-0.15705,-0.29747 0.23795,0.13522,-0.012901,-0.14669,-0.31153,0.23078,0.13522,0.053993,-0.13952,-0.28764,0.29051,0.17106,0.015768,-0.13952,-0.31153,0.23556,0.18778,-0.012901,-0.13952,-0.30437,0.25945,0.2045,0.046825,-0.14669,-0.25181 0.26492,0.14716,0.06152,-0.1966,-0.27035,0.26492,0.13884,-0.011038,-0.16805,-0.27748,0.2447,0.15311,0.052004,-0.18232,-0.27035,0.26849,0.15549,0.071036,-0.17519,-0.27035,0.26492,0.14597,0.040109,-0.174,-0.27748 0.27209,0.15436,0.023546,-0.13343,-0.30348,0.23284,0.16744,0.023546,-0.14651,-0.31656,0.33749,0.14128,0.023546,-0.14651,-0.25116,0.27209,0.10203,-0.028778,-0.054941,-0.26424,0.27209,0.10203,-0.0026162,-0.15959,-0.31656 0.29316,0.080147,-0.013483,-0.095409,-0.22649,0.34231,0.08717,-0.022846,-0.076683,-0.26863,0.29082,0.10356,-0.03689,-0.095409,-0.27565,0.3072,0.096533,-0.039231,-0.16329,-0.28267,0.35402,0.096533,-0.0064605,-0.13754,-0.31076 0.23932,0.089101,-0.043949,-0.20275,-0.3358,0.26936,0.12344,-0.043949,-0.15125,-0.31434,0.27365,0.15777,0.011846,-0.1255,-0.2285,0.3037,0.1449,0.024722,-0.1255,-0.26284,0.33374,0.17494,-0.0010301,-0.082577,-0.2285 0.26995,0.14622,-0.044992,-0.12373,-0.31494,0.2587,0.078736,-0.05624,-0.12373,-0.2587,0.2812,0.17997,0,-0.078736,-0.29245,0.32619,0.12373,0,-0.078736,-0.23621,0.31494,0.14622,-0.033744,-0.19122,-0.29245 0.24423,0.1285,0.082211,-0.16776,-0.29274,0.3044,0.15165,0.0081471,-0.11221,-0.27885,0.29052,0.16553,0.035921,-0.13072,-0.23719,0.24423,0.082211,-0.019627,-0.18627,-0.26496,0.29977,0.13313,-0.00574,-0.13998,-0.3344 0.27465,0.12049,-0.064173,-0.18784,-0.21664,0.2882,0.10185,-0.016738,-0.18784,-0.2285,0.32717,0.14759,-0.023514,-0.1709,-0.21495,0.28651,0.16792,-0.033679,-0.2014,-0.22511,0.35258,0.13404,0.00020329,-0.2014,-0.2285 0.24799,0.12292,-0.055744,-0.16294,-0.28801,0.35519,0.10506,-0.055744,-0.16294,-0.28801,0.28372,0.14079,-0.002144,-0.12721,-0.25228,0.35519,0.14079,0.033589,-0.16294,-0.23441,0.26586,0.069323,0.033589,-0.10934,-0.25228 0.26308,0.12775,0.0059546,-0.21058,-0.26471,0.31722,0.14129,-0.0075785,-0.19704,-0.22411,0.27662,0.18188,0.060087,-0.15644,-0.22411,0.26308,0.15482,0.033021,-0.16998,-0.26471,0.26308,0.11422,0.0059546,-0.18351,-0.30531 0.35337,0.14632,-0.080455,-0.18102,-0.25201,0.31985,0.079272,-0.068623,-0.18694,-0.23427,0.35337,0.11477,-0.048904,-0.14158,-0.22835,0.29421,0.1266,-0.037072,-0.1475,-0.21455,0.29027,0.12265,-0.027213,-0.14947,-0.20271 0.28759,0.097133,0.0019046,-0.14094,-0.29569,0.25188,0.14475,0.073326,-0.14094,-0.25997,0.28759,0.13284,0.073326,-0.14094,-0.30759,0.29949,0.073326,0.025712,-0.11713,-0.30759,0.27569,0.12094,-0.009999,-0.11713,-0.30759 0.33705,0.062511,-0.040266,-0.16135,-0.25427,0.29341,0.089262,-0.055753,-0.14727,-0.24441,0.35817,0.09067,-0.0092922,-0.14586,-0.23174,0.37507,0.072367,-0.033227,-0.14304,-0.23878,0.31171,0.097709,-0.026187,-0.13037,-0.22611 0.23927,0.12761,0.047855,-0.17547,-0.27118,0.31903,0.14356,-0.015952,-0.20737,-0.17547,0.28713,0.11166,-0.015952,-0.17547,-0.27118,0.33498,0.11166,-0.015952,-0.12761,-0.25523,0.27118,0.17547,0,-0.17547,-0.28713 0.32367,0.15751,-0.00864,-0.058486,-0.30772,0.29044,0.15751,-0.025255,-0.17479,-0.27449,0.25721,0.15751,0.041206,-0.17479,-0.27449,0.24059,0.17413,-0.041871,-0.12495,-0.25787,0.22398,0.15751,-0.025255,-0.12495,-0.30772 0.23343,0.17248,0.035349,-0.086544,-0.25415,0.2639,0.18772,-0.025598,-0.11702,-0.25415,0.2639,0.17248,-0.025598,-0.11702,-0.34557,0.30961,0.12677,-0.025598,-0.17796,-0.25415,0.2639,0.15724,-0.025598,-0.17796,-0.29986 0.33458,0.13463,0.001333,-0.081979,-0.28193,0.23461,0.084645,0.001333,-0.1153,-0.28193,0.30126,0.13463,-0.031992,-0.13197,-0.23194,0.26793,0.16796,0.017995,-0.098641,-0.28193,0.31792,0.084645,-0.015329,-0.19862,-0.33192 0.23018,0.11435,-0.019683,-0.22168,-0.3021,0.28188,0.1153,0.0032933,-0.18147,-0.29444,0.28188,0.10956,-0.012982,-0.12691,-0.28678,0.27805,0.14211,0.00042123,-0.12116,-0.2504,0.35751,0.16126,0.048288,-0.073294,-0.23317 0.3106,0.1105,-0.001757,-0.12377,-0.27995,0.21787,0.081213,0.017765,-0.14329,-0.26043,0.3106,0.071451,-0.001757,-0.13841,-0.25555,0.37893,0.13002,0.0080041,-0.14817,-0.25067,0.34476,0.071451,-0.021279,-0.15305,-0.27507 0.32716,0.16551,-0.0052311,-0.099682,-0.2014,0.30537,0.17459,-0.01068,-0.13601,-0.22864,0.34351,0.13463,-0.0088638,-0.12329,-0.25952,0.27812,0.096485,-0.054273,-0.15599,-0.29585,0.2309,0.08922,-0.052457,-0.21048,-0.30311 0.32592,0.068922,-0.040202,-0.16119,-0.23473,0.34885,0.083946,-0.022805,-0.14537,-0.23631,0.34489,0.075248,-0.052063,-0.14537,-0.24896,0.30852,0.089481,-0.039411,-0.15802,-0.23156,0.36308,0.076039,-0.0093625,-0.13509,-0.22445 0.2708,0.17625,-0.094943,-0.1671,-0.24174,0.29568,0.16381,-0.060111,-0.1671,-0.23676,0.28075,0.1663,-0.092455,-0.15466,-0.25169,0.2708,0.17625,-0.040207,-0.17705,-0.22432,0.31061,0.16879,0.02697,-0.15963,-0.23925 0.23073,0.12846,-0.031773,-0.18859,-0.31132,0.23755,0.15232,0.015955,-0.16473,-0.32155,0.24778,0.19323,0.012546,-0.12723,-0.27382,0.258,0.17959,0.03641,-0.13405,-0.27382,0.27846,0.18982,0.050046,-0.11018,-0.27382 0.23991,0.16221,-0.0082877,-0.20325,-0.2608,0.25142,0.2061,-0.0018129,-0.17232,-0.25433,0.25718,0.21185,-0.035626,-0.18023,-0.2608,0.26006,0.18164,-0.0082877,-0.19246,-0.24857,0.27588,0.18524,-0.0097265,-0.14354,-0.25145 0.2583,0.14012,-0.002303,-0.11442,-0.25684,0.27648,0.14012,0.04012,-0.11442,-0.21442,0.28557,0.13103,0.021939,-0.14169,-0.2629,0.25223,0.14012,0.015878,-0.14169,-0.32048,0.2886,0.14012,0.018909,-0.21442,-0.36593 0.32567,0.069729,-0.075372,-0.17009,-0.25272,0.31157,0.10802,-0.018944,-0.19428,-0.27489,0.33172,0.081821,-0.051189,-0.15598,-0.28698,0.33978,0.1322,0.025393,-0.11366,-0.21846,0.27327,0.12213,0.017332,-0.11366,-0.21241 0.24293,0.18752,0.032361,-0.089547,-0.25578,0.24293,0.098856,0.010196,-0.16712,-0.27795,0.32051,0.17643,0.021278,-0.16712,-0.28903,0.25401,0.10994,-0.023052,-0.20037,-0.3112,0.28726,0.16535,0.010196,-0.10063,-0.27795 0.24911,0.16341,0.013903,-0.1556,-0.32225,0.2434,0.14532,0.034853,-0.16036,-0.30987,0.26054,0.15865,0.043423,-0.094655,-0.31463,0.2434,0.16531,0.031996,-0.11275,-0.29844,0.24626,0.14532,0.043423,-0.12132,-0.29844 0.22284,0.12576,0.027432,-0.14931,-0.28249,0.25023,0.13074,0.048592,-0.14558,-0.31858,0.26143,0.1631,0.044858,-0.11446,-0.28622,0.25023,0.1631,0.044858,-0.15055,-0.28996,0.27761,0.16061,0.048592,-0.15429,-0.32854 0.27183,0.18895,-0.02652,-0.15912,-0.24199,0.23868,0.089504,0.0066299,-0.14254,-0.30829,0.30498,0.10608,0.056354,-0.15912,-0.25857,0.30498,0.12265,-0.02652,-0.14254,-0.24199,0.3547,0.072929,0.0066299,-0.10939,-0.30829 0.36791,0.068177,-0.031736,-0.13917,-0.27077,0.35663,0.12619,-0.037644,-0.12305,-0.21867,0.32387,0.082143,-0.040867,-0.14508,-0.23639,0.32118,0.057971,-0.039256,-0.14347,-0.274,0.29432,0.096646,-0.044627,-0.12252,-0.2278 0.24457,0.19351,0.032832,-0.14403,-0.2935,0.24582,0.19101,0.0029394,-0.15275,-0.30595,0.23834,0.18603,0.01664,-0.17019,-0.27855,0.23336,0.17731,0.02785,-0.12286,-0.29474,0.23212,0.16735,0.0079216,-0.1241,-0.31093 0.23529,0.152,0.0062467,-0.1529,-0.32542,0.23975,0.19365,0.0062467,-0.11423,-0.28973,0.24273,0.17283,0.016658,-0.14843,-0.29568,0.25165,0.16985,0.030044,-0.14843,-0.31947,0.23975,0.19811,0.022607,-0.10828,-0.27485 0.22735,0.065973,-0.057111,-0.1884,-0.32242,0.26291,0.11247,-0.051641,-0.16105,-0.28687,0.28479,0.16718,0.0030634,-0.15011,-0.24857,0.30667,0.1617,0.02221,-0.13096,-0.25952,0.33949,0.18906,0.033151,-0.10087,-0.21849 0.27986,0.16832,0.026364,-0.10799,-0.26516,0.24437,0.15565,-0.044616,-0.16123,-0.24488,0.30014,0.12776,0.001014,-0.2246,-0.25755,0.27479,0.18353,0.066924,-0.18911,-0.25755,0.24944,0.15818,-0.014196,-0.20178,-0.26769 0.2258,0.11816,-0.02157,-0.1908,-0.3062,0.23667,0.13938,0.0027531,-0.13128,-0.29792,0.2465,0.14248,0.0063757,-0.12455,-0.30568,0.29152,0.16732,-0.010185,-0.11472,-0.28757,0.3055,0.19578,0.094352,-0.11886,-0.26325 0.31594,0.12473,-0.051775,-0.21357,-0.30182,0.34536,0.11002,-0.0076485,-0.12532,-0.21357,0.28653,0.16886,-0.051775,-0.15474,-0.21357,0.25711,0.080604,0.021769,-0.15474,-0.2724,0.27182,0.15415,0.051186,-0.15474,-0.2724 0.30175,0.024883,-0.059759,-0.14899,-0.28207,0.29716,0.10443,-0.033245,-0.15256,-0.27952,0.29971,0.24159,-0.015909,-0.11687,-0.26372,0.28442,0.13961,0.0019376,-0.1291,-0.27493,0.27881,0.14267,0.010096,-0.11381,-0.25658 0.30603,0.11907,-0.047371,-0.10184,-0.35235,0.31074,0.15841,-0.05376,-0.093774,-0.3231,0.2909,0.13185,-0.03493,-0.12303,-0.22659,0.2909,0.11268,-0.049725,-0.10487,-0.24273,0.29628,0.13757,-0.060149,-0.099154,-0.24105 0.3124,0.14272,-0.015501,-0.16684,-0.21729,0.28947,0.14501,-0.10034,-0.16455,-0.2127,0.26425,0.16106,-0.054482,-0.20124,-0.23563,0.3124,0.15648,0.037239,-0.18977,-0.2448,0.28718,0.12896,0.021188,-0.19436,-0.26086 0.26317,0.048699,-0.064179,-0.15609,-0.29155,0.27607,0.11965,-0.039991,-0.14319,-0.25446,0.29219,0.1003,-0.028703,-0.15932,-0.26091,0.36476,0.11965,-0.033541,-0.13997,-0.26413,0.35669,0.18899,0.00032251,-0.10449,-0.18996 0.24116,0.15511,-0.064175,-0.18076,-0.28901,0.2703,0.16482,-0.018375,-0.16965,-0.26958,0.27169,0.16621,-0.03503,-0.16271,-0.28068,0.2592,0.17593,-0.0031088,-0.14745,-0.25987,0.27169,0.17593,0.11902,-0.14606,-0.2446 0.26006,0.17526,0.0056535,-0.10742,-0.29115,0.31659,0.11872,-0.0084802,-0.093282,-0.23462,0.24593,0.14699,-0.065015,-0.20635,-0.31942,0.28833,0.11872,-0.050881,-0.13568,-0.22049,0.34486,0.11872,-0.0084802,-0.10742,-0.29115 0.33353,0.14876,0.0013107,-0.076055,-0.20348,0.3135,0.12692,-0.0077912,-0.11883,-0.23989,0.32443,0.13147,0.0022208,-0.12703,-0.25627,0.2953,0.10871,-0.057851,-0.14159,-0.28904,0.27346,0.055011,-0.075145,-0.21895,-0.30269 0.32481,0.060609,-0.060897,-0.15602,-0.23676,0.3372,0.090586,-0.0573,-0.12964,-0.23676,0.3376,0.10178,-0.062496,-0.14203,-0.23356,0.34319,0.069003,-0.04411,-0.14963,-0.22717,0.35478,0.11017,-0.042511,-0.12125,-0.22957 0.25944,0.08,-0.058318,-0.17794,-0.33495,0.2557,0.14355,-0.03215,-0.13682,-0.26766,0.27065,0.12112,-0.002243,-0.17794,-0.28262,0.30056,0.15103,-0.013458,-0.10318,-0.28262,0.33047,0.19963,0.046355,-0.091963,-0.19664 0.22483,0.070215,-0.026801,-0.14807,-0.27237,0.32791,0.10205,-0.020737,-0.11169,-0.25267,0.34156,0.083858,-0.046507,-0.11169,-0.25721,0.35368,0.10811,-0.046507,-0.14807,-0.24357,0.37491,0.094469,-0.020737,-0.12382,-0.25115 0.33319,0.097125,-0.037332,-0.12236,-0.26959,0.33395,0.048301,-0.02562,-0.11475,-0.26959,0.33988,0.091041,-0.017558,-0.10532,-0.26107,0.32315,0.094387,-0.015733,-0.12677,-0.25666,0.32452,0.030657,-0.0029568,-0.12981,-0.26107 0.34273,0.081737,-0.029467,-0.15593,-0.20013,0.34747,0.083667,0.018768,-0.15874,-0.23223,0.33274,0.073669,0.022451,-0.15821,-0.25012,0.30923,0.081737,-0.036133,-0.16505,-0.25995,0.32519,0.08735,-0.057356,-0.16505,-0.23837 0.28577,0.088792,-0.050608,-0.16728,-0.23971,0.29789,0.12698,-0.051517,-0.15516,-0.22668,0.2885,0.12091,-0.052124,-0.17243,-0.22062,0.31456,0.099701,-0.040911,-0.17183,-0.2294,0.4185,0.14485,-0.038487,-0.15455,-0.21516 0.35581,0.22132,-0.014025,-0.11009,-0.23016,0.3462,0.16369,-0.0044188,-0.16772,-0.27339,0.28376,0.10125,-0.042843,-0.15812,-0.23496,0.26455,0.10605,-0.014025,-0.15812,-0.23496,0.23093,0.086839,-0.052449,-0.19174,-0.27339 0.31495,0.13155,-0.036489,-0.20933,-0.30055,0.28039,0.10178,-0.021125,-0.22277,-0.2727,0.31111,0.11427,-0.0038409,-0.19205,-0.25638,0.30919,0.16036,-0.0028807,-0.091222,-0.21125,0.26022,0.15268,0.017284,-0.14403,-0.18916 0.212,0.16064,-0.0028018,-0.17324,-0.30866,0.23068,0.17464,0.048564,-0.1499,-0.28998,0.23301,0.16531,0.039225,-0.1499,-0.29932,0.25403,0.19332,0.018212,-0.13589,-0.28065,0.27037,0.19799,0.020546,-0.13589,-0.29232 0.2889,0.16145,-0.093469,-0.11471,-0.26341,0.33139,0.11896,0.012746,-0.13595,-0.34838,0.2889,0.1402,0.012746,-0.1572,-0.26341,0.22518,0.1402,0.033989,-0.11471,-0.24217,0.26766,0.16145,-0.050983,-0.11471,-0.28466 0.30948,0.13961,0.031504,-0.20014,-0.2928,0.24771,0.12416,0.00061773,-0.10749,-0.27736,0.2786,0.15505,0.016061,-0.12293,-0.21559,0.26315,0.12416,0.062391,-0.13837,-0.30825,0.32493,0.10872,-0.092042,-0.15382,-0.27736 0.23558,0.11226,0.046794,-0.1327,-0.27502,0.23304,0.11183,0.059042,-0.13185,-0.3067,0.21911,0.15238,-0.0089534,-0.13016,-0.3029,0.29724,0.16927,0.035814,-0.14579,-0.27756,0.31413,0.18954,0.0066728,-0.15635,-0.31472 0.20296,0.12062,-0.023934,-0.15202,-0.29658,0.2359,0.17186,0.03462,-0.16117,-0.33317,0.27799,0.17369,0.023641,-0.13738,-0.25449,0.27433,0.20296,-0.034913,-0.1447,-0.29658,0.27433,0.18101,0.049259,-0.14287,-0.24534 0.26303,0.16633,-0.04035,-0.12757,-0.2603,0.31423,0.22511,-0.013804,-0.1655,-0.2641,0.23459,0.11324,0.016534,-0.17308,-0.26789,0.25166,0.19477,-0.025181,-0.13516,-0.27737,0.2327,0.21373,-0.04035,-0.15602,-0.27927 0.38237,0.073756,-0.019869,-0.16984,-0.24787,0.37891,0.1015,-0.014668,-0.1473,-0.24006,0.33296,0.084159,-0.015535,-0.16724,-0.24353,0.27228,0.074623,-0.005999,-0.16378,-0.2444,0.26187,0.10496,-0.017269,-0.1395,-0.23053 0.27234,0.18789,-0.027371,-0.087864,-0.30195,0.24445,0.17925,-0.014015,-0.12754,-0.30666,0.2421,0.16196,0.00091132,-0.10122,-0.31255,0.25427,0.17532,0.0040538,-0.092185,-0.31216,0.23071,0.16589,0.0001257,-0.12125,-0.31452 0.3139,0.12828,0.014849,-0.057334,-0.2017,0.30358,0.1489,-0.016087,-0.16045,-0.25326,0.29327,0.12828,0.025161,-0.13983,-0.2842,0.25202,0.15922,0.025161,-0.16045,-0.32544,0.27265,0.076721,-0.03671,-0.22233,-0.2842 0.30124,0.14104,0.0090132,-0.086048,-0.35187,0.25899,0.1428,0.0019716,-0.12478,-0.30082,0.26603,0.11112,0.0072528,-0.11245,-0.37299,0.29068,0.13928,-0.0085907,-0.10365,-0.23216,0.26955,0.134,-0.019153,-0.13006,-0.2304 0.24772,0.15759,0.00309,-0.15141,-0.26729,0.23484,0.13184,0.041715,-0.13854,-0.30591,0.28634,0.15759,0.015965,-0.11279,-0.29304,0.23484,0.15759,0.02884,-0.17716,-0.31879,0.32497,0.08034,0.08034,-0.15141,-0.26729 0.27256,0.16053,-0.079377,-0.1566,-0.25155,0.27383,0.2099,-0.056589,-0.1585,-0.22939,0.27573,0.1447,-0.054057,-0.17053,-0.24522,0.28776,0.17255,-0.074313,-0.1547,-0.25155,0.29092,0.22319,-0.051525,-0.15027,-0.2275 0.2636,0.11623,-0.0023066,-0.1602,-0.23251,0.38488,0.10433,-0.024274,-0.15929,-0.23983,0.24483,0.10982,-0.023359,-0.19498,-0.23983,0.39723,0.10891,-0.0050526,-0.13915,-0.24212,0.28282,0.091972,-0.028851,-0.15883,-0.25402 0.29033,0.11955,-0.014639,-0.20982,-0.23422,0.38792,0.10735,-0.051235,-0.16102,-0.23422,0.31473,0.11955,-0.051235,-0.16102,-0.18542,0.29033,0.13175,-0.026837,-0.14882,-0.25861,0.29033,0.10735,0.009759,-0.20982,-0.22202 0.25593,0.14952,0.013097,-0.1015,-0.29795,0.25457,0.15771,0.019918,-0.13424,-0.27339,0.2573,0.16043,0.041746,-0.097407,-0.27612,0.26275,0.14406,0.013097,-0.11241,-0.28704,0.26685,0.16043,0.00081855,-0.26112,-0.31705 0.21906,0.14971,-0.021361,-0.10227,-0.24444,0.38666,0.11156,-0.02714,-0.12423,-0.24098,0.34274,0.066486,-0.022516,-0.13348,-0.28259,0.34274,0.12197,-0.02714,-0.13232,-0.26063,0.2572,0.10116,-0.037543,-0.1566,-0.28606 0.33053,0.18459,-0.0077835,-0.1692,-0.32841,0.29736,0.19344,0.020962,-0.14488,-0.28418,0.26198,0.13373,0.036441,-0.16257,-0.3063,0.24429,0.11383,0.0010614,-0.1095,-0.28861,0.20891,0.1072,0.0010614,-0.11613,-0.21785 0.25359,0.22009,-0.011962,-0.17942,-0.26076,0.2488,0.18899,-0.0095693,-0.17942,-0.27033,0.24641,0.18182,-0.04067,-0.1555,-0.25837,0.25598,0.23206,-0.011962,-0.1555,-0.23923,0.26316,0.16029,-0.043062,-0.16746,-0.26794 0.20792,0.098207,-0.057053,-0.20196,-0.31582,0.2721,0.12305,-0.0052996,-0.16056,-0.29719,0.29073,0.12926,-0.01151,-0.12951,-0.29098,0.27831,0.1748,0.019542,-0.14193,-0.25165,0.32799,0.18722,0.065085,-0.083965,-0.2268 0.34374,0.098731,-0.080124,-0.17708,-0.22993,0.34348,0.10713,-0.036286,-0.1741,-0.21523,0.26665,0.099868,-0.02876,-0.17585,-0.22914,0.34873,0.10512,-0.071724,-0.15188,-0.22608,0.34671,0.11326,-0.02701,-0.14645,-0.20377 0.28118,0.15321,0.042313,-0.11977,-0.29039,0.22999,0.12762,-0.042995,-0.16243,-0.28186,0.29824,0.076436,-0.017403,-0.18802,-0.2392,0.33236,0.17028,-0.00034123,-0.068588,-0.30745,0.26411,0.17028,-0.042995,-0.09418,-0.29039 0.33598,0.090888,-0.03166,-0.12722,-0.23066,0.32249,0.052662,-0.077756,-0.17107,-0.22391,0.30788,0.10663,-0.062016,-0.18007,-0.22616,0.35847,0.10101,-0.03166,-0.12498,-0.22279,0.35285,0.11562,-0.057519,-0.13622,-0.24078 0.29408,0.15993,-0.031711,-0.16384,-0.31009,0.28601,0.18111,0.030824,-0.15981,-0.28084,0.24869,0.16598,0.005608,-0.15275,-0.299,0.21641,0.19826,0.0025821,-0.13963,-0.28387,0.19826,0.16396,0.064109,-0.1356,-0.25865 0.40071,0.067322,-0.048407,-0.13195,-0.23848,0.28039,0.088015,-0.059137,-0.15494,-0.23618,0.29418,0.090314,-0.042275,-0.14344,-0.25381,0.37772,0.12557,-0.03921,-0.12811,-0.23541,0.29418,0.11177,-0.039976,-0.15111,-0.22775 0.26553,0.1852,-0.0090233,-0.13612,-0.3496,0.25893,0.17529,-0.029381,-0.12787,-0.32539,0.26278,0.16814,-0.023879,-0.13942,-0.20985,0.26608,0.15934,-0.0090233,-0.12512,-0.20655,0.27158,0.15219,-0.033783,-0.11356,-0.32649 0.30022,0.18915,-0.009424,-0.15415,-0.28709,0.29349,0.17737,0.027599,-0.096932,-0.26522,0.27666,0.13867,0.014136,-0.1003,-0.27195,0.24973,0.09323,0.024233,-0.14069,-0.27531,0.26151,0.073036,0.024233,-0.24671,-0.29551 0.20818,0.099753,-0.047708,-0.20818,-0.3036,0.25155,0.099753,-0.0043371,-0.16915,-0.3036,0.3036,0.15614,-0.0086742,-0.1171,-0.28191,0.29059,0.1865,0.017348,-0.13879,-0.25155,0.31227,0.18216,0.060719,-0.086742,-0.24721 0.24947,0.07858,-0.067048,-0.15175,-0.2476,0.28142,0.11573,-0.09231,-0.15398,-0.24388,0.3416,0.17591,-0.080422,-0.1302,-0.24091,0.32748,0.15139,-0.050702,-0.13912,-0.24091,0.32971,0.19597,-0.041786,-0.14358,-0.22308 0.26273,0.12834,-0.0060474,-0.17403,-0.25802,0.26273,0.11154,0.044348,-0.12364,-0.32522,0.27953,0.16194,0.010751,-0.039644,-0.24122,0.29632,0.11154,-0.039644,-0.12364,-0.34202,0.27953,0.16194,-0.0060474,-0.12364,-0.30842 0.27812,0.10558,-0.052141,-0.17616,-0.26648,0.28082,0.22959,-0.044053,-0.15324,-0.24221,0.26599,0.17298,-0.049445,-0.16403,-0.24491,0.26195,0.1595,-0.029225,-0.16133,-0.26378,0.25925,0.24847,-0.027877,-0.13976,-0.2476 0.26583,0.15488,0.019672,-0.20481,-0.23165,0.26325,0.14714,0.030509,-0.19965,-0.29151,0.27822,0.12908,0.026897,-0.19243,-0.30286,0.27615,0.17707,0.030509,-0.19294,-0.22029,0.25912,0.15281,0.032574,-0.19449,-0.21307 0.27346,0.11912,-0.073173,-0.23763,-0.29836,0.28105,0.15454,-0.0099183,-0.16173,-0.28318,0.26334,0.18997,-0.03016,-0.15667,-0.26041,0.27093,0.14189,0.035625,-0.12631,-0.24269,0.27599,0.19503,0.043215,-0.17185,-0.19209 0.21098,0.12382,0.01553,-0.10332,-0.29349,0.2189,0.13438,0.020813,-0.14822,-0.30141,0.25588,0.13967,0.039301,-0.16407,-0.32518,0.27701,0.18985,0.047225,-0.10861,-0.27764,0.29286,0.18721,0.03666,-0.16671,-0.30141 0.29796,0.13717,0.010528,-0.11061,-0.27029,0.31888,0.056781,0.021541,-0.11612,-0.23395,0.32108,0.036958,-0.0070921,-0.12933,-0.28241,0.28584,0.093122,-0.078674,-0.13264,-0.30333,0.31888,0.18783,-0.025813,-0.12713,-0.26919 0.37606,0.13996,-0.062838,-0.14759,-0.24445,0.30341,0.12483,-0.099161,-0.14759,-0.22629,0.34276,0.11575,-0.017435,-0.1597,-0.19299,0.29736,0.13088,-0.080999,-0.14154,-0.23537,0.2792,0.12483,-0.087053,-0.15364,-0.2384 0.28798,0.09589,0.034105,-0.27107,-0.27107,0.28986,0.11761,0.031858,-0.1505,-0.25422,0.28686,0.16629,-0.066248,-0.16024,-0.24898,0.28948,0.095515,0.039347,-0.16698,-0.24112,0.30072,0.14494,0.034105,-0.14339,-0.24074 0.31696,0.087407,-0.049442,-0.11125,-0.23927,0.29489,0.082993,-0.053857,-0.13773,-0.22161,0.36552,0.078578,-0.018541,-0.14656,-0.22161,0.36994,0.091822,-0.062686,-0.098002,-0.279,0.31255,0.096236,-0.053857,-0.11125,-0.29224 0.29855,0.14492,0.029701,-0.20074,-0.12393,0.29855,0.14492,0.0040967,-0.13673,-0.26475,0.27294,0.11932,0.0040967,-0.16233,-0.26475,0.31135,0.13212,-0.03431,-0.18794,-0.31596,0.27294,0.14492,-0.047112,-0.17513,-0.26475 0.26009,0.18675,0.034656,-0.17991,-0.24781,0.2628,0.17317,0.012928,-0.17991,-0.26954,0.24651,0.18675,0.040088,-0.15547,-0.24781,0.24107,0.15688,0.023792,-0.20164,-0.26954,0.27095,0.16503,-0.025096,-0.23695,-0.24781 0.2998,0.18598,0.057599,-0.14754,-0.28386,0.31701,0.14892,0.040393,-0.15548,-0.31431,0.22568,0.14627,0.015247,-0.13828,-0.30504,0.20715,0.16083,0.040393,-0.13563,-0.27725,0.20848,0.12642,0.027158,-0.15151,-0.29842 0.23044,0.093519,0.020577,-0.18673,-0.31854,0.23172,0.13959,0.023137,-0.17521,-0.29422,0.26244,0.15366,0.0884,-0.15986,-0.25967,0.28163,0.16262,0.062806,-0.15474,-0.27759,0.27395,0.19205,0.021857,-0.1381,-0.27375 0.26383,0.20636,-0.064707,-0.1559,-0.27957,0.25133,0.16014,0.001499,-0.12717,-0.27582,0.22885,0.12017,-0.018488,-0.17089,-0.3033,0.28381,0.17638,0.0027482,-0.16214,-0.31579,0.33378,0.11143,0.0089941,-0.059711,-0.21586 0.27439,0.13989,0.022194,-0.12913,-0.39814,0.29121,0.1567,-0.011433,-0.12913,-0.23001,0.29121,0.19033,-0.011433,-0.12913,-0.28045,0.25758,0.089447,-0.011433,-0.17957,-0.28045,0.24077,0.1567,0.022194,-0.11231,-0.23001 0.29405,0.1303,0.014135,-0.055142,-0.30006,0.25696,0.124,0.0092371,-0.23219,-0.28467,0.26815,0.096709,0.014135,-0.090831,-0.30776,0.30944,0.1324,0.0078375,-0.078235,-0.29027,0.27165,0.1282,0.00083973,-0.10763,-0.31126 0.30852,0.12202,-0.037832,-0.23765,-0.27761,0.22859,0.18863,-0.024511,-0.1444,-0.30425,0.26855,0.13534,0.042095,-0.064474,-0.25097,0.26855,0.095379,-0.01119,-0.13108,-0.29093,0.29519,0.18863,0.028774,-0.13108,-0.26429 0.26179,0.18214,-0.05405,-0.12546,-0.23806,0.31397,0.19313,-0.045811,-0.18863,-0.26278,0.23433,0.20686,-0.023839,-0.14743,-0.26278,0.22883,0.18214,-0.05405,-0.14194,-0.27926,0.27827,0.19862,-0.056797,-0.15018,-0.24905 0.27106,0.068089,-0.029132,-0.20822,-0.29862,0.27959,0.080028,-0.017193,-0.17411,-0.29862,0.23695,0.13972,-0.015487,-0.14853,-0.28327,0.28641,0.16872,0.057855,-0.11782,-0.2321,0.34952,0.17554,0.056149,-0.1093,-0.23722 0.27652,0.15427,0.051739,-0.15332,-0.32684,0.26469,0.1661,0.028078,-0.12178,-0.33867,0.25286,0.1661,0.043852,-0.11783,-0.26769,0.24103,0.11878,0.051739,-0.13361,-0.31107,0.21737,0.13061,0.020191,-0.106,-0.30712 0.24687,0.12063,-0.023144,-0.10204,-0.27913,0.35382,0.1294,0.059263,-0.11607,-0.28439,0.26791,0.12764,-0.016131,-0.11782,-0.33349,0.23284,0.1294,-0.0091174,-0.11081,-0.33875,0.27492,0.12063,0.06277,-0.11958,-0.27563 0.31514,0.1847,0.020349,-0.086612,-0.1727,0.29949,0.15079,-0.037045,-0.15444,-0.21444,0.28905,0.082959,-0.024001,-0.17009,-0.26923,0.32819,0.15079,-0.060524,-0.16748,-0.27444,0.26297,0.1247,-0.086612,-0.21183,-0.27966 0.21384,0.15552,0.01944,-0.13608,-0.31105,0.31105,0.13608,0.038881,-0.13608,-0.21384,0.23328,0.1944,0.01944,-0.17496,-0.33049,0.29161,0.15552,-0.077762,-0.13608,-0.25273,0.27217,0.15552,0.01944,-0.17496,-0.27217 0.29802,0.12435,-0.014589,-0.1709,-0.223,0.26329,0.12435,0.0027788,-0.1709,-0.223,0.31539,0.14172,0.089616,-0.13616,-0.3272,0.31539,0.12435,-0.049323,-0.084058,-0.25773,0.28066,0.10698,-0.049323,-0.223,-0.25773 0.27629,0.11223,-0.035603,-0.12804,-0.24802,0.25823,0.12631,-0.022442,-0.14457,-0.2367,0.32098,0.12662,0.012145,-0.11977,-0.23425,0.29833,0.12815,-0.0074438,-0.12192,-0.23455,0.287,0.1508,0.0081662,-0.14579,-0.42616 0.37344,0.081203,-0.057546,-0.13646,-0.23879,0.30667,0.085539,-0.06882,-0.14426,-0.23358,0.33269,0.061258,-0.052343,-0.15554,-0.22578,0.37084,0.096812,-0.049742,-0.12779,-0.22838,0.32055,0.10375,-0.060148,-0.13386,-0.21971 0.24021,0.1846,0.059496,-0.16292,-0.27413,0.26801,0.1707,0.073397,-0.093414,-0.30193,0.28191,0.129,-0.010009,-0.19072,-0.28803,0.28191,0.1707,-0.051711,-0.10732,-0.30193,0.24021,0.1012,0.017793,-0.17682,-0.26022 0.30943,0.058812,-0.0080198,-0.14168,-0.29205,0.30943,0.10894,-0.0080198,-0.14168,-0.29205,0.27602,0.15906,0.042104,-0.10827,-0.29205,0.32614,0.058812,-0.0080198,-0.074852,-0.32547,0.22589,0.17577,0.0086881,-0.10827,-0.25864 0.25655,0.15492,0.019422,-0.12737,-0.27416,0.25655,0.1888,0.019422,-0.12737,-0.31933,0.23396,0.20009,0.019422,-0.16124,-0.30804,0.22267,0.15492,0.053297,-0.12737,-0.30804,0.25655,0.1888,-0.070912,-0.13866,-0.26287 0.24789,0.2068,-0.070028,-0.14356,-0.26575,0.26086,0.21437,-0.025693,-0.14464,-0.24196,0.26086,0.19598,-0.03975,-0.15221,-0.26899,0.26411,0.19598,-0.062458,-0.15545,-0.26575,0.25005,0.20247,-0.050564,-0.16194,-0.25061 0.30426,0.1626,-0.010736,-0.072244,-0.29777,0.28189,0.19243,0.0079028,-0.1002,-0.32387,0.27071,0.12533,-0.016328,-0.11698,-0.33878,0.27071,0.099233,-0.020055,-0.11511,-0.33132,0.24461,0.13278,-0.034966,-0.11698,-0.19712 0.25658,0.21414,-0.046928,-0.1823,-0.26126,0.25497,0.19051,-0.025441,-0.17102,-0.27523,0.24852,0.21683,-0.029738,-0.14899,-0.25106,0.2367,0.2034,-0.0077139,-0.17478,-0.25482,0.23241,0.18621,0.023443,-0.16135,-0.27308 0.27446,0.2013,-0.05335,-0.15043,-0.32066,0.25336,0.19849,-0.04913,-0.17294,-0.24891,0.24914,0.17176,-0.029433,-0.16028,-0.32348,0.26883,0.19145,-0.018177,-0.13354,-0.21796,0.24351,0.18583,0.0015195,-0.15324,-0.20811 0.3174,0.051335,-0.049526,-0.11561,-0.23212,0.38174,0.10524,-0.035614,-0.15213,-0.23212,0.31218,0.089592,-0.099956,-0.15213,-0.23386,0.33827,0.12263,-0.026919,-0.087783,-0.23734,0.30349,0.12089,-0.065177,-0.16604,-0.25646 0.24504,0.28875,0.022011,-0.14946,-0.28059,0.25064,0.15314,-0.012732,-0.18084,-0.28731,0.26858,0.15538,0.001838,-0.17636,-0.30188,0.25401,0.15986,-0.02506,-0.12481,-0.25369,0.24616,0.14193,-0.0037657,-0.13601,-0.25481 0.23286,0.16272,0.022444,-0.16793,-0.19799,0.26292,0.17274,-0.027655,-0.19799,-0.25811,0.2529,0.19278,-0.017635,-0.19799,-0.19799,0.28296,0.17274,-0.017635,-0.19799,-0.26813,0.31302,0.17274,-0.017635,-0.19799,-0.27815 0.24321,0.10809,0.046676,-0.063872,-0.29725,0.32919,0.16951,-0.01474,-0.13757,-0.27269,0.24321,0.083525,-0.027023,-0.16214,-0.32182,0.24321,0.14494,0.058959,-0.13757,-0.28497,0.28006,0.18179,0.034393,-0.14985,-0.29725 0.32767,0.16765,-0.031328,-0.12446,-0.26078,0.2447,0.18627,-0.026248,-0.10076,-0.21083,0.26332,0.17442,-0.018627,-0.21167,-0.24724,0.2684,0.15325,-0.017781,-0.22522,-0.24978,0.27348,0.16426,-0.023707,-0.23284,-0.24216 0.32221,0.14882,0.0082956,-0.1277,-0.20249,0.32788,0.11936,0.0014959,-0.14243,-0.23083,0.29955,0.15109,-0.020036,-0.13336,-0.21156,0.27348,0.10009,-0.031369,-0.1583,-0.24556,0.28368,0.06496,-0.031369,-0.16283,-0.40309 0.26257,0.19604,-0.025725,-0.15878,-0.29184,0.30692,0.040805,0.018628,-0.13661,-0.24749,0.26257,0.15169,-0.0035482,-0.22531,-0.22531,0.28475,0.15169,-0.025725,-0.13661,-0.22531,0.28475,0.17386,0.018628,-0.11443,-0.3362 0.30042,0.17707,0.09484,-0.11074,-0.24779,0.2456,0.12225,-0.014802,-0.12444,-0.30261,0.20448,0.14966,-0.055917,-0.13815,-0.24779,0.31412,0.10855,-0.042212,-0.15185,-0.30261,0.32783,0.13596,-0.014802,-0.11074,-0.31632 0.26248,0.11605,-0.01713,-0.18931,-0.25185,0.2485,0.13077,-0.011243,-0.18563,-0.24155,0.25291,0.10649,-0.0083,-0.18416,-0.22978,0.44128,0.14033,-0.0097716,-0.15841,-0.2342,0.28676,0.15137,-0.0097716,-0.17018,-0.23567 0.30529,0.092847,-0.068266,-0.14241,-0.20799,0.34949,0.092847,-0.044028,-0.14526,-0.21797,0.36802,0.055777,-0.052583,-0.15096,-0.23508,0.31242,0.1014,-0.07397,-0.15096,-0.22938,0.36375,0.1071,-0.051157,-0.15524,-0.22368 0.30377,0.039705,-0.024666,-0.15633,-0.25143,0.30231,0.22331,-0.02686,-0.1439,-0.25801,0.28548,0.20721,-0.028323,-0.15633,-0.26459,0.29646,0.057992,-0.012962,-0.16511,-0.24045,0.33522,0.070427,-0.019545,-0.13658,-0.2368 0.24629,0.16097,0.07565,-0.10921,-0.32251,0.27473,0.07565,-0.066549,-0.10921,-0.27985,0.24629,0.16097,-0.023889,-0.10921,-0.27985,0.31739,0.11831,0.07565,-0.15187,-0.27985,0.31739,0.11831,-0.023889,-0.15187,-0.27985 0.36721,0.19411,-0.026562,-0.15613,-0.26647,0.33684,0.14046,-0.0063165,-0.16929,-0.26647,0.34595,0.11718,-0.011378,-0.16119,-0.25027,0.16982,0.13742,-0.029598,-0.14702,-0.22901,0.23258,0.11819,-0.035672,-0.16625,-0.23812 0.27606,0.14608,0.078994,-0.15162,-0.29417,0.28025,0.10415,0.024487,-0.20193,-0.29417,0.2509,0.10415,0.011908,-0.16419,-0.31933,0.26768,0.17124,0.045451,-0.12646,-0.2816,0.23832,0.16285,0.011908,-0.055179,-0.28579 0.29594,0.15434,-0.010856,-0.14066,-0.18786,0.27234,0.13074,-0.058056,-0.069856,-0.32946,0.27234,0.17794,-0.010856,-0.18786,-0.29406,0.23694,0.14254,0.048144,-0.16426,-0.31766,0.29594,0.11894,0.036344,-0.16426,-0.24686 0.30227,0.16506,0.017309,-0.098785,-0.28876,0.2706,0.10174,-0.014353,-0.16211,-0.2782,0.21783,0.18617,0.027862,-0.16211,-0.33097,0.22839,0.19673,-0.056569,-0.141,-0.24654,0.2706,0.19673,0.027862,-0.18322,-0.24654 0.28575,0.094853,-0.015441,-0.2233,-0.24027,0.27302,0.17121,-0.023925,-0.15967,-0.24876,0.25605,0.19666,-0.015441,-0.19785,-0.24451,0.2603,0.1797,0.022738,-0.19361,-0.27845,0.23908,0.22636,0.014253,-0.11725,-0.26148 0.34646,0.049978,-0.013553,-0.14062,-0.22533,0.28293,0.13469,0.0076238,-0.20415,-0.26768,0.28293,0.17704,-0.034731,-0.11944,-0.28886,0.34646,0.13469,0.028801,-0.11944,-0.28886,0.24057,0.049978,0.028801,-0.16179,-0.2465 0.30941,0.16128,-0.073441,-0.14855,-0.22053,0.3261,0.014187,-0.052577,-0.16629,-0.22158,0.33341,0.16545,-0.050491,-0.13708,-0.2247,0.30941,0.16128,-0.074484,-0.15168,-0.23618,0.30733,0.13207,-0.057793,-0.16629,-0.23827 0.27019,0.10243,-0.012362,-0.1713,-0.3479,0.30551,0.12892,0.049447,-0.12715,-0.29492,0.28785,0.12009,0.040617,-0.14481,-0.23311,0.27019,0.093597,0.084767,-0.091831,-0.30375,0.27902,0.084767,0.022958,-0.11832,-0.29492 0.37558,0.18984,0.021455,-0.094849,-0.24761,0.32003,0.19331,0.01972,-0.13651,-0.23719,0.29052,0.11172,-0.016734,-0.1747,-0.24761,0.27316,0.085683,-0.072282,-0.16949,-0.27017,0.21067,0.085683,-0.065339,-0.17643,-0.26844 0.29474,0.054611,-0.074737,-0.17128,-0.23627,0.382,0.097314,-0.064835,-0.15272,-0.22884,0.33435,0.10722,-0.069786,-0.15891,-0.22327,0.32321,0.078128,-0.03389,-0.15829,-0.21337,0.34116,0.1394,-0.019656,-0.13848,-0.2078 0.30002,0.17605,-0.009918,-0.13389,-0.21654,0.27936,0.11406,-0.009918,-0.051243,-0.25787,0.32068,0.11406,-0.009918,-0.19588,-0.31986,0.34135,0.05207,-0.009918,-0.13389,-0.21654,0.2587,0.11406,-0.009918,-0.17522,-0.31986 0.21641,0.15764,-0.022565,-0.19102,-0.29288,0.22816,0.17723,0.044033,-0.15184,-0.29679,0.24775,0.16939,0.01661,-0.15184,-0.28896,0.23599,0.19682,0.032281,-0.17927,-0.28504,0.29476,0.14197,0.079291,-0.093081,-0.28504 0.15671,0.1176,-0.021046,-0.15258,-0.28768,0.19937,0.17093,0.0002844,-0.15258,-0.26279,0.30602,0.13538,0.0038395,-0.17391,-0.28768,0.32024,0.17804,0.01095,-0.11703,-0.28768,0.32735,0.20648,0.0073945,-0.13125,-0.26634 0.27956,0.20788,-0.054957,-0.16248,-0.28195,0.32735,0.1362,0.028673,-0.16248,-0.24611,0.27956,0.17204,-0.019115,-0.16248,-0.32974,0.17204,0.17204,-0.019115,-0.16248,-0.24611,0.24372,0.17204,0.028673,-0.12664,-0.24611 0.24044,0.20242,0.047624,-0.164,-0.26942,0.24083,0.20164,-0.051135,-0.18477,-0.26276,0.24671,0.19302,-0.055054,-0.15852,-0.26551,0.25024,0.17852,0.042137,-0.16439,-0.26982,0.24906,0.17342,0.037826,-0.18752,-0.27099 0.2293,0.063092,-0.08955,-0.20488,-0.29307,0.24965,0.11736,-0.048845,-0.18792,-0.26933,0.3141,0.13093,0.015603,-0.13704,-0.25237,0.30732,0.17842,-0.0081409,-0.12347,-0.24558,0.33445,0.21913,0.032564,-0.11669,-0.21505 0.26247,0.1525,0.033723,-0.066035,-0.26555,0.25412,0.12466,0.039754,-0.24374,-0.27251,0.27453,0.13394,0.019339,-0.19317,-0.27668,0.27314,0.16225,0.042538,-0.1876,-0.25673,0.26386,0.14369,0.049962,-0.19827,-0.27019 0.23705,0.13785,0.010298,-0.20228,-0.29676,0.26067,0.16383,0.08352,-0.18102,-0.30149,0.25595,0.14729,0.064624,-0.13615,-0.29912,0.23233,0.16147,0.017384,-0.16213,-0.31566,0.25122,0.16855,0.050452,-0.10308,-0.2448 0.33994,0.080252,-0.042911,-0.15583,-0.21109,0.34982,0.05884,-0.057369,-0.154,-0.22775,0.33921,0.093978,-0.065787,-0.14649,-0.22482,0.35,0.0905,-0.04529,-0.14777,-0.21421,0.34689,0.073298,-0.056088,-0.14558,-0.22775 0.2295,0.20353,-0.017169,-0.15673,-0.28818,0.23436,0.20353,0.03476,-0.15998,-0.27519,0.23274,0.19542,0.009607,-0.16728,-0.29142,0.22625,0.20191,-0.013924,-0.15348,-0.29142,0.23274,0.20272,0.033138,-0.15673,-0.2687 0.36882,0.12766,-0.0054611,-0.14114,-0.2564,0.35989,0.11575,-0.0058864,-0.16028,-0.25555,0.37137,0.11958,0.00091869,-0.1305,-0.2615,0.17658,0.11958,-0.013967,-0.159,-0.2564,0.21018,0.12001,-0.019071,-0.16581,-0.25938 0.30053,0.1819,-0.094905,-0.094905,-0.29263,0.32031,0.16213,0.0039544,-0.13445,-0.23331,0.22145,0.12259,-0.075133,-0.13445,-0.3124,0.32031,0.16213,-0.03559,-0.17399,-0.21354,0.32031,0.083042,-0.03559,-0.15422,-0.21354 0.26317,0.18888,-0.095877,-0.19988,-0.25683,0.25821,0.17155,-0.051306,-0.17511,-0.24692,0.28793,0.21117,-0.046354,-0.16026,-0.23207,0.27307,0.21364,-0.046354,-0.16026,-0.22711,0.25326,0.18888,-0.01664,-0.16026,-0.23454 0.25029,0.11877,0.060654,-0.1556,-0.35936,0.32739,0.16554,0.022682,-0.14125,-0.26188,0.24241,0.19402,0.0011484,-0.15699,-0.25934,0.22158,0.1322,0.017588,-0.14935,-0.3119,0.22134,0.19194,0.01643,-0.13801,-0.25031 0.27083,0.22524,-0.036931,-0.16232,-0.18511,0.30503,0.16824,0.042859,-0.13952,-0.2535,0.27083,0.15684,-0.025533,-0.19651,-0.2535,0.27083,0.12265,-0.036931,-0.2535,-0.24211,0.25943,0.15684,-0.025533,-0.17371,-0.2649 0.26,0.022229,-0.045509,-0.17269,-0.2819,0.38442,0.063701,-0.052421,-0.15195,-0.2819,0.27936,0.11761,-0.02892,-0.14366,-0.25149,0.33189,0.13144,0.00011059,-0.11325,-0.23352,0.34848,0.12867,-0.0026542,-0.096658,-0.2114 0.32315,0.033136,-0.059407,-0.15969,-0.23196,0.3199,0.14905,-0.067919,-0.15597,-0.23227,0.31634,0.17582,-0.062503,-0.15721,-0.20983,0.32191,0.13202,-0.062503,-0.15922,-0.21602,0.32949,0.13419,-0.097632,-0.15272,-0.21014 0.35908,0.086421,-0.051164,-0.16111,-0.26163,0.24851,0.10087,-0.0097001,-0.15105,-0.23901,0.1882,0.094588,-0.0059306,-0.14917,-0.26665,0.37164,0.11218,-0.028547,-0.12467,-0.27231,0.37039,0.13982,0.022969,-0.12153,-0.2522 0.31588,0.079357,-0.042981,-0.14697,-0.21425,0.2649,0.11606,-0.071527,-0.16532,-0.21222,0.35462,0.11606,-0.024631,-0.17144,-0.19998,0.37908,0.09159,-0.057254,-0.17551,-0.22445,0.34238,0.1181,-0.071527,-0.17348,-0.22649 0.23301,0.19908,0.018098,-0.16288,-0.30993,0.2217,0.15383,0.052031,-0.12895,-0.30993,0.25563,0.18777,-0.072392,-0.14026,-0.26468,0.28957,0.18777,0.018098,-0.16288,-0.26468,0.23301,0.15383,0.018098,-0.095014,-0.30993 0.30997,0.14502,0.019828,-0.061378,-0.2627,0.27021,0.1484,0.0088312,-0.066454,-0.283,0.26345,0.11203,0.014752,-0.20941,-0.29146,0.27444,0.13487,0.0062935,-0.0673,-0.30246,0.25076,0.12979,-0.0021655,-0.23394,-0.30838 0.3468,0.16477,0.063644,-0.074566,-0.2684,0.2895,0.12601,0.036676,-0.11165,-0.26334,0.28276,0.073757,0.013079,-0.14704,-0.27514,0.31309,0.072071,-0.024001,-0.10996,-0.29536,0.27096,0.058587,-0.084678,-0.14704,-0.31053 0.2969,0.10698,-0.051277,-0.098755,-0.30449,0.28107,0.17029,-0.03545,-0.11458,-0.33615,0.31272,0.15446,0.012028,-0.13041,-0.32032,0.28107,0.13864,-0.03545,-0.067103,-0.28867,0.28107,0.059506,-0.0037983,-0.13041,-0.17789 0.32045,0.11777,-0.044367,-0.12544,-0.1844,0.3573,0.1104,-0.066477,-0.14018,-0.20651,0.32045,0.14725,-0.062792,-0.17703,-0.19914,0.30571,0.080922,-0.062792,-0.16966,-0.2581,0.34993,0.088292,-0.081217,-0.1844,-0.23599 0.24532,0.16401,-0.038751,-0.16119,-0.24935,0.3276,0.1072,-0.029935,-0.17099,-0.26307,0.27666,0.10426,-0.01916,-0.16217,-0.2758,0.24532,0.25707,-0.026996,-0.1416,-0.25033,0.2414,0.2414,-0.011324,-0.1563,-0.25327 0.32546,0.14807,-0.10058,-0.17412,-0.22036,0.29969,0.16323,-0.12029,-0.16578,-0.24993,0.28983,0.21099,-0.044485,-0.16426,-0.20444,0.27467,0.15034,-0.044485,-0.16578,-0.22718,0.26709,0.17309,-0.028565,-0.14683,-0.24538 0.31548,0.074339,-0.023961,-0.16987,-0.31425,0.38306,0.10352,-0.050071,-0.16219,-0.30043,0.25097,0.14038,0.031333,-0.14991,-0.26971,0.27555,0.11888,0.019046,-0.16066,-0.26203,0.2479,0.1665,0.0021503,-0.10229,-0.16373 0.25771,0.19376,-0.062029,-0.10999,-0.23789,0.28968,0.12981,-0.014068,-0.12598,-0.28585,0.25771,0.09784,-0.046042,-0.14196,-0.26986,0.25771,0.11383,0.017905,-0.14196,-0.38177,0.33764,0.1458,0.065866,-0.10999,-0.23789 0.33662,0.0452,-0.099278,-0.18842,-0.28372,0.30895,0.043971,-0.071612,-0.16445,-0.25236,0.30834,0.15402,0.0027789,-0.14354,-0.22593,0.32801,0.15402,0.0009345,-0.10174,-0.23146,0.27391,0.17861,-0.010747,-0.1208,-0.2413 0.25152,0.13569,0.0695,-0.17871,-0.278,0.31771,0.086047,-0.029786,-0.14562,-0.29455,0.30117,0.16879,-0.013238,-0.11252,-0.22836,0.30117,0.15224,0.052952,-0.095976,-0.278,0.23498,0.13569,-0.11252,-0.12907,-0.31109 0.30713,0.19442,-0.059173,-0.18597,-0.2705,0.32122,0.12398,-0.059173,-0.18597,-0.21415,0.32122,0.12398,0.011271,-0.1437,-0.25641,0.30713,0.081714,-0.059173,-0.17188,-0.20006,0.27896,0.16625,-0.073261,-0.18597,-0.17188 0.26314,0.21048,-0.082622,-0.15603,-0.22997,0.26102,0.19452,-0.059748,-0.16454,-0.23635,0.26633,0.19984,-0.051237,-0.16029,-0.26455,0.26687,0.20995,-0.055493,-0.16135,-0.23103,0.26261,0.19452,-0.048045,-0.1805,-0.24753 0.35789,0.20258,0.026277,-0.10175,-0.17311,0.30752,0.13122,0.005289,-0.13113,-0.21719,0.30122,0.11023,-0.040885,-0.16891,-0.25706,0.28233,0.12282,-0.04928,-0.1899,-0.26756,0.25925,0.072451,-0.070268,-0.23188,-0.28015 0.2971,0.14522,0.0063053,-0.14233,-0.3212,0.2791,0.15458,0.037256,-0.14017,-0.30608,0.24923,0.14774,0.032937,-0.13333,-0.31652,0.21504,0.15854,0.026459,-0.12469,-0.30752,0.20029,0.14054,0.10276,-0.11534,-0.28593 0.3644,0.096967,-0.00080518,-0.12158,-0.23373,0.36728,0.079713,-0.026686,-0.14459,-0.25674,0.21774,0.079713,-0.04394,-0.16184,-0.23948,0.34715,0.06821,-0.015183,-0.13308,-0.24811,0.35865,0.062459,-0.032437,-0.12733,-0.25674 0.32055,0.09074,-0.083475,-0.16132,-0.23452,0.29461,0.075913,-0.076061,-0.16224,-0.22896,0.34465,0.067573,-0.060308,-0.1539,-0.22433,0.36689,0.14634,-0.055674,-0.13444,-0.20858,0.36133,0.098153,-0.041774,-0.13815,-0.20302 0.2754,0.15246,-0.016598,-0.13955,-0.27786,0.38298,0.16782,-0.047335,-0.078072,-0.3086,0.2293,0.090982,-0.016598,-0.12418,-0.32397,0.24467,0.090982,-0.016598,-0.17028,-0.26249,0.2754,0.19856,0.014139,-0.12418,-0.21639 0.21244,0.12268,0.047873,-0.14661,-0.31118,0.27228,0.10771,0.077794,-0.13165,-0.23637,0.28724,0.12268,0.0029921,-0.10173,-0.25133,0.33212,0.077794,0.0029921,-0.17653,-0.2663,0.34708,0.1526,-0.07181,-0.19149,-0.28126 0.30837,0.12844,0.0036773,-0.054109,-0.32465,0.26371,0.12976,-0.019962,-0.069868,-0.32071,0.26634,0.089043,-0.018649,-0.085628,-0.30364,0.31887,0.1245,-0.023902,-0.069868,-0.30232,0.27685,0.12319,-0.043602,-0.096135,-0.2997 0.34481,0.072769,0.00013122,-0.11,-0.24004,0.34317,0.062693,-0.070866,-0.12218,-0.2534,0.215,0.11729,-0.065008,-0.18521,-0.24449,0.36988,0.088936,-0.0040864,-0.14093,-0.24028,0.35699,0.11495,-0.028221,-0.13975,-0.24215 0.32395,0.14709,-0.0095772,-0.12018,-0.23201,0.31607,0.011114,-0.10835,-0.13422,-0.23546,0.32075,0.10029,0.0059414,-0.12141,-0.26773,0.31878,0.11038,0.049295,-0.1224,-0.25591,0.31927,0.1062,-0.06574,-0.19506,-0.26108 0.30534,0.12596,-0.073345,-0.053414,-0.29258,0.24555,0.12596,-0.053414,-0.11321,-0.23279,0.30534,0.20568,-0.053414,-0.11321,-0.29258,0.30534,0.20568,-0.053414,-0.173,-0.23279,0.24555,0.12596,0.0063778,-0.173,-0.29258 0.1961,0.091542,-0.036245,-0.19307,-0.30634,0.27451,0.10897,-0.013011,-0.12628,-0.25987,0.25418,0.12058,-0.0072025,-0.15532,-0.26568,0.29194,0.12058,0.047978,-0.1408,-0.25987,0.41101,0.18738,0.010223,-0.074,-0.2773 0.23596,0.22059,0.010504,-0.13297,-0.28157,0.23084,0.16935,0.0066613,-0.13809,-0.30078,0.22315,0.19881,-0.030488,-0.12528,-0.30334,0.24365,0.22187,0.0015372,-0.13809,-0.26748,0.22828,0.19625,-0.0010248,-0.16499,-0.30334 0.2595,0.16236,-0.093655,-0.1908,-0.24254,0.26495,0.14965,0.067944,-0.18898,-0.26343,0.26858,0.17507,0.052511,-0.18172,-0.25072,0.25042,0.15782,0.047064,-0.20351,-0.26252,0.26495,0.14965,0.052511,-0.17809,-0.26706 0.3598,0.073835,-0.043384,-0.14128,-0.25077,0.34305,0.068683,-0.035655,-0.14128,-0.21084,0.34949,0.058378,-0.022774,-0.13742,-0.21084,0.34949,0.058378,-0.043384,-0.14257,-0.24047,0.33404,0.05709,-0.038232,-0.15416,-0.23918 0.37788,0.1628,-0.035736,-0.15155,-0.16809,0.26206,0.1628,0.013897,-0.15155,-0.2839,0.27861,0.11316,-0.035736,-0.15155,-0.25081,0.26206,0.1628,0.013897,-0.25081,-0.30045,0.26206,0.11316,-0.035736,-0.15155,-0.21773 0.32318,0.057589,-0.03245,-0.18357,-0.2252,0.34671,0.084284,-0.027021,-0.1605,-0.22203,0.33042,0.099668,-0.09127,-0.16502,-0.21615,0.33585,0.073425,-0.012542,-0.16457,-0.21072,0.36028,0.12139,-0.074529,-0.14149,-0.20574 0.23966,0.11662,0.02155,-0.094029,-0.33824,0.24339,0.14272,0.056969,-0.15741,-0.30654,0.24339,0.14645,0.071883,-0.1164,-0.31214,0.23779,0.16509,0.04392,-0.10335,-0.32705,0.25084,0.16882,0.047648,-0.1425,-0.29909 0.26728,0.20326,-0.061909,-0.18376,-0.23614,0.27273,0.19707,-0.057907,-0.17831,-0.24087,0.26546,0.21344,-0.058999,-0.16812,-0.22596,0.26037,0.20035,-0.057907,-0.17576,-0.22777,0.26655,0.1898,-0.055725,-0.17576,-0.23141 0.25925,0.20889,0.037458,-0.14255,-0.24862,0.23461,0.18425,-0.0086146,-0.13612,-0.3097,0.22068,0.18853,0.0085288,-0.15219,-0.29362,0.22282,0.18211,0.050316,-0.12648,-0.31398,0.21746,0.17461,0.0074574,-0.12648,-0.33863 0.25711,0.12898,-0.0205,-0.21269,-0.31946,0.25711,0.086271,0.00085417,-0.10592,-0.29811,0.36388,0.19304,-0.0205,-0.12727,-0.21269,0.23575,0.15033,-0.0205,-0.19133,-0.23404,0.27846,0.12898,0.086271,-0.12727,-0.27675 0.28445,0.26438,-0.042965,-0.13274,-0.22568,0.28973,0.093282,-0.040853,-0.15703,-0.23202,0.29396,0.2158,-0.042965,-0.14436,-0.24153,0.29818,0.1313,-0.076763,-0.16654,-0.24575,0.30241,0.063709,-0.065145,-0.17499,-0.24786 0.2844,0.1862,0.0094277,-0.12806,-0.20662,0.2844,0.12727,-0.049495,-0.18698,-0.26555,0.38261,0.087991,-0.049495,-0.18698,-0.28519,0.26476,0.20584,0.0094277,-0.18698,-0.26555,0.24512,0.06835,0.0094277,-0.1477,-0.20662 0.35706,0.27669,0.02124,-0.087829,-0.19116,0.28243,0.10161,-0.033295,-0.15384,-0.29448,0.28243,0.13892,-0.024684,-0.13949,-0.26865,0.26521,0.11596,-0.018943,-0.17681,-0.26865,0.22503,0.081514,-0.036165,-0.15958,-0.29448 0.25719,0.1244,-0.056503,-0.20854,-0.27397,0.24564,0.18598,-0.064201,-0.19314,-0.25473,0.26489,0.19368,-0.071899,-0.16235,-0.2451,0.27836,0.14749,-0.035334,-0.14695,-0.22009,0.36111,0.21293,-0.035334,-0.11616,-0.18737 0.29037,0.18846,-0.056141,-0.15456,-0.25124,0.32182,0.17623,-0.033428,-0.18077,-0.2425,0.29387,-0.027605,-0.029934,-0.18659,-0.25124,0.3061,0.15526,-0.027605,-0.15456,-0.23901,0.2962,0.1605,-0.021198,-0.10273,-0.22969 0.32427,0.15499,-0.033104,-0.20239,-0.25881,0.32427,0.13618,-0.070723,-0.14596,-0.29643,0.24903,0.13618,-0.033104,-0.051913,-0.29643,0.24903,0.09856,0.0045142,-0.033104,-0.29643,0.28665,0.11737,0.042133,-0.12715,-0.27762 0.27025,0.13745,0.021248,-0.12815,-0.34395,0.22045,0.20385,-0.028552,-0.12815,-0.29415,0.30345,0.087647,-0.028552,-0.17795,-0.29415,0.32005,0.087647,-0.028552,-0.12815,-0.22775,0.35324,0.087647,0.021248,-0.12815,-0.17795 0.29447,0.22469,-0.074008,-0.17509,-0.22335,0.27882,0.19077,-0.058356,-0.17901,-0.2227,0.30164,0.15229,-0.06553,-0.16336,-0.23314,0.32708,0.15882,-0.090312,-0.14836,-0.21944,0.27425,0.11577,-0.098138,-0.15488,-0.21292 0.21852,0.17248,-0.027008,-0.14977,-0.27254,0.35663,0.049719,-0.042354,-0.11908,-0.27254,0.29525,0.1111,-0.027008,-0.11908,-0.34926,0.24921,0.20317,0.049719,-0.13443,-0.24185,0.26456,0.18783,-0.011663,-0.14977,-0.24185 0.20184,0.11019,0.00035042,-0.29144,-0.30425,0.26249,0.13715,-0.015823,-0.12432,-0.30088,0.32786,0.13917,0.033371,-0.12701,-0.22405,0.33392,0.11289,0.011806,-0.1223,-0.23753,0.30562,0.13311,0.0023721,-0.11893,-0.24562 0.24958,0.051968,-0.065759,-0.18348,-0.32644,0.24958,0.094013,-0.040531,-0.17508,-0.30121,0.27481,0.11924,-0.015304,-0.15826,-0.25917,0.34208,0.14447,0.039354,-0.1078,-0.23394,0.35049,0.19072,0.03515,-0.065759,-0.20871 0.28117,0.14673,0.043311,-0.14905,-0.31141,0.28531,0.16017,0.017457,-0.13457,-0.30314,0.30599,0.17569,0.050551,-0.14284,-0.27832,0.17155,0.16017,0.030901,-0.1356,-0.31141,0.17052,0.17258,0.018491,-0.12423,-0.30004 0.24779,0.11528,-0.03379,-0.10004,-0.23255,0.1981,0.14841,-0.017226,-0.13317,-0.33193,0.21466,0.18154,-0.017226,-0.14973,-0.31537,0.34717,0.13185,-0.03379,-0.14973,-0.29881,0.33061,0.18154,0.065592,-0.10004,-0.24912 0.24773,0.18554,-0.026868,-0.15761,-0.28048,0.23761,0.18554,-0.020125,-0.17859,-0.27,0.25634,0.18329,0.14171,-0.14974,-0.27599,0.24286,0.18105,-0.023121,-0.14974,-0.28048,0.2305,0.18105,-0.0081367,-0.18009,-0.27224 0.26008,0.12415,0.077924,-0.15156,-0.31225,0.23641,0.13791,0.072971,-0.15486,-0.30399,0.25787,0.13791,0.082877,-0.16201,-0.27923,0.26118,0.12415,0.072971,-0.16476,-0.30014,0.23806,0.13571,0.065817,-0.16916,-0.28803 0.26502,0.089511,0.045633,-0.1445,-0.29077,0.3089,0.089511,0.0017551,-0.17376,-0.29077,0.29428,0.16264,0.11876,-0.1445,-0.32002,0.27965,0.13339,0.045633,-0.11525,-0.26151,0.2504,0.089511,-0.056749,-0.086001,-0.29077 0.30448,0.16182,-0.092932,-0.13369,-0.24578,0.33505,0.1822,-0.10312,-0.082742,-0.25597,0.26372,0.15163,-0.041983,-0.10312,-0.26616,0.26372,0.14144,-0.072553,-0.1235,-0.2254,0.29429,0.1822,-0.082742,-0.20502,-0.24578 0.22625,0.20332,0.0024423,-0.15713,-0.30194,0.22194,0.1779,0.039214,-0.17324,-0.29037,0.22943,0.17972,0.041711,-0.12603,-0.29354,0.22988,0.17722,0.03422,-0.15917,-0.29718,0.24668,0.14726,0.10481,-0.17619,-0.28719 0.2471,0.1333,0.035764,-0.11054,-0.30562,0.32838,0.1333,-0.11054,-0.11054,-0.24059,0.23084,0.19833,-0.013005,-0.17557,-0.28936,0.27961,0.14956,0.068277,-0.14306,-0.22434,0.29587,0.14956,-0.061774,-0.20808,-0.25685 0.23608,0.17508,0.097175,-0.14725,-0.28615,0.25009,0.16312,0.10253,-0.10891,-0.29769,0.22866,0.16024,-0.002572,-0.1254,-0.31047,0.22783,0.16189,0.0077324,-0.16414,-0.30964,0.24638,0.15158,0.012679,-0.14601,-0.32283 0.33186,0.25255,-0.0066543,-0.17881,-0.20203,0.31252,0.12875,0.0010833,-0.16721,-0.2175,0.32799,0.15003,-0.018261,-0.14593,-0.23685,0.27963,0.095868,-0.03567,-0.18462,-0.25812,0.24481,0.010755,-0.039539,-0.16721,-0.27747 0.20172,0.17753,0.0082236,-0.12481,-0.20946,0.25009,0.14125,0.020317,-0.088525,-0.25783,0.21381,0.16544,0.044504,-0.19737,-0.3183,0.29847,0.18963,0.020317,-0.16109,-0.28202,0.29847,0.14125,-0.0038699,-0.17318,-0.35458 0.22498,0.20864,-0.018248,-0.14531,-0.29476,0.22619,0.19715,-0.014618,-0.1683,-0.29294,0.22801,0.20078,0.013819,-0.15499,-0.3117,0.21409,0.22196,0.0071638,-0.12111,-0.27237,0.23406,0.21409,0.016845,-0.13926,-0.27418 0.34718,0.094938,-0.049099,-0.14747,-0.21632,0.35069,0.085804,-0.072988,-0.13833,-0.21773,0.34788,0.1111,-0.056828,-0.14676,-0.20438,0.34366,0.053483,-0.062449,-0.15379,-0.22475,0.34647,0.052781,-0.077906,-0.14536,-0.21983 0.40233,0.062049,0.010561,-0.17487,-0.24262,0.27961,0.073663,0.012884,-0.16945,-0.22868,0.28542,0.091083,0.0066896,-0.17952,-0.2341,0.38414,0.078308,0.0086252,-0.17332,-0.24417,0.25871,0.087986,0.012109,-0.17332,-0.2341 0.30615,0.16414,-0.0073772,-0.086682,-0.20841,0.29509,0.082993,0.035042,-0.097748,-0.21394,0.2914,0.10697,-0.042419,-0.21763,-0.28587,0.27664,0.18259,-0.073772,-0.22316,-0.24345,0.28955,0.15677,-0.0018443,-0.23423,-0.25082 0.35166,0.11056,-0.092534,-0.13897,-0.21261,0.34227,0.11056,-0.082215,-0.15351,-0.20135,0.33149,0.091333,-0.067205,-0.16242,-0.20933,0.3404,0.096962,-0.08972,-0.16102,-0.21261,0.3404,0.08805,-0.059701,-0.15539,-0.20511 0.36775,0.18313,0.055958,-0.087629,-0.25378,0.2898,0.17083,0.014933,-0.13686,-0.22301,0.26108,0.084675,-0.017887,-0.10814,-0.32147,0.28159,0.11544,-0.0096818,-0.083526,-0.30711,0.21185,0.068265,-0.054809,-0.17583,-0.32557 0.34894,0.033297,-0.067878,-0.15451,-0.26478,0.35439,0.081764,-0.069696,-0.13028,-0.23146,0.33803,0.057531,-0.06182,-0.13755,-0.23509,0.34773,0.064195,-0.026681,-0.12059,-0.22419,0.33925,0.11084,-0.031528,-0.10908,-0.21086 0.23697,0.21342,0.028595,-0.14335,-0.26819,0.2343,0.21031,-0.036717,-0.14601,-0.27797,0.22764,0.21209,-0.026498,-0.18067,-0.27219,0.23164,0.21031,0.025041,-0.15445,-0.27219,0.22897,0.20765,-0.042048,-0.15934,-0.2873 0.23622,0.21079,0.016404,-0.13451,-0.29445,0.21899,0.19931,0.010663,-0.1788,-0.29691,0.21899,0.18947,0.036089,-0.1583,-0.31988,0.22227,0.19931,0.03937,-0.11975,-0.28625,0.20833,0.19111,0.033628,-0.15584,-0.28625 0.32639,0.06817,-0.035118,-0.0092959,-0.29334,0.24892,0.14564,-0.0092959,-0.19005,-0.29334,0.24892,0.17146,0.06817,-0.16423,-0.29334,0.27475,0.14564,0.042348,-0.16423,-0.24169,0.27475,0.11981,0.016526,-0.16423,-0.29334 0.37979,0.15944,0.016595,-0.15361,-0.27518,0.33116,0.18983,0.018114,-0.1065,-0.27974,0.25518,0.19287,-0.012279,-0.13081,-0.2767,0.19591,0.12905,-0.033554,-0.15968,-0.27518,0.16856,0.12297,-0.054829,-0.11561,-0.28581 0.30291,0.087419,-0.033627,-0.20256,-0.19724,0.35478,0.13398,-0.036287,-0.19591,-0.19724,0.2936,0.13131,-0.049589,-0.20123,-0.20256,0.31089,0.084759,-0.032297,-0.20256,-0.20256,0.35478,0.12998,-0.033627,-0.19857,-0.19857 0.28095,0.13616,0.0096857,-0.19584,-0.39055,0.2693,0.15031,0.029656,-0.094327,-0.32399,0.2693,0.11536,0.018007,-0.10431,-0.34396,0.27013,0.12368,-0.011949,-0.10098,-0.22164,0.26098,0.13866,0.019671,-0.10431,-0.2 0.25443,0.233,0.067455,-0.11,-0.21361,0.26515,0.21275,-0.018293,-0.13501,-0.25053,0.26396,0.1925,-0.050448,-0.16835,-0.26005,0.27587,0.16869,-0.040921,-0.17192,-0.27077,0.25681,0.084128,-0.099277,-0.18502,-0.30055 0.34632,0.034547,-0.025674,-0.15069,-0.24026,0.33946,0.031879,-0.023006,-0.15983,-0.25855,0.34746,0.066562,-0.021481,-0.10914,-0.2677,0.34518,0.085238,-0.015383,-0.11257,-0.21891,0.34098,0.046743,-0.014239,-0.12782,-0.23911 0.33383,0.21134,0.056606,-0.059442,-0.21256,0.29354,0.17265,0.040488,-0.12714,-0.25447,0.27258,0.12591,0.00019341,-0.1497,-0.28348,0.25808,0.13719,-0.040101,-0.1497,-0.29154,0.19683,0.080782,-0.064278,-0.21578,-0.33183 0.23322,0.10071,-0.053888,-0.16432,-0.29683,0.27739,0.21114,-0.0097176,-0.14223,-0.25266,0.32156,0.14488,0.034453,-0.098059,-0.31891,0.21114,0.18905,-0.098059,-0.098059,-0.23057,0.29948,0.14488,0.012368,-0.098059,-0.31891 0.22972,0.15637,0.010556,-0.17461,-0.33295,0.25298,0.15368,0.042759,-0.086055,-0.33474,0.24314,0.14921,0.024868,-0.088738,-0.33831,0.23419,0.14831,0.030235,-0.099473,-0.31058,0.26103,0.14205,0.046337,-0.060113,-0.29985 0.30792,0.18416,0.010891,-0.13762,-0.21188,0.25842,0.010891,-0.038614,-0.11287,-0.28614,0.33267,0.13465,-0.063366,-0.13762,-0.31089,0.25842,0.18416,0.085149,-0.16238,-0.28614,0.25842,0.13465,-0.013861,-0.11287,-0.28614 0.35515,0.053645,-0.055994,-0.14606,-0.22045,0.35515,0.083013,-0.071657,-0.12843,-0.21262,0.33557,0.06735,-0.057952,-0.16563,-0.21262,0.30816,0.06735,-0.048163,-0.14997,-0.23612,0.38452,0.086928,-0.036416,-0.12648,-0.22828 0.27813,0.15183,0.012232,-0.14066,-0.23373,0.25154,0.13189,0.025527,-0.13402,-0.28691,0.26484,0.15848,0.012232,-0.080835,-0.23373,0.28478,0.16513,-0.014359,-0.11407,-0.22708,0.27813,0.16513,-0.080835,-0.28691,-0.34674 0.2856,0.075438,-0.072176,-0.18176,-0.2353,0.2901,0.078941,-0.069674,-0.18626,-0.2348,0.30962,0.085947,-0.030644,-0.16124,-0.24231,0.34715,0.25508,-0.023138,-0.13422,-0.21829,0.34765,0.078941,-0.0066251,-0.14623,-0.21178 0.27683,0.16399,0.055855,-0.066386,-0.2709,0.26272,0.1875,0.079362,-0.18157,-0.2427,0.25567,0.14989,0.055855,-0.21449,-0.2615,0.26272,0.14989,-0.042878,-0.19568,-0.28501,0.24392,0.14989,-0.071088,-0.20508,-0.2568 0.21807,0.21098,0.001112,-0.16787,-0.27471,0.2306,0.22406,-0.034865,-0.15915,-0.26654,0.23932,0.2306,0.0049278,-0.16406,-0.24909,0.2475,0.24205,-0.0076097,-0.16787,-0.27144,0.25459,0.13521,-0.051764,-0.15533,-0.26872 0.32453,0.15046,0.0061137,-0.10852,-0.13399,0.34576,0.12924,-0.0066231,-0.12975,-0.20617,0.34576,0.14197,-0.032097,-0.14248,-0.24438,0.26934,0.10801,-0.074553,-0.19343,-0.28683,0.26085,0.057061,-0.05757,-0.21041,-0.31231 0.25261,0.15205,-0.0088494,-0.14964,-0.2502,0.31295,0.011263,-0.0088494,-0.16975,-0.20997,0.31295,0.15205,-0.049074,-0.10941,-0.29042,0.31295,0.19227,-0.028962,-0.069186,-0.31053,0.31295,0.0716,0.011263,-0.20997,-0.23008 0.24633,0.17507,0.123,-0.16203,-0.26983,0.24907,0.17325,0.017029,-0.15107,-0.28719,0.24268,0.18238,0.058139,-0.15929,-0.26526,0.23263,0.15863,0.064534,-0.18395,-0.28719,0.23172,0.14949,-0.053315,-0.17391,-0.31094 0.18766,0.11803,0.056447,-0.14171,-0.28095,0.20908,0.17159,0.037703,-0.16313,-0.28095,0.2305,0.19837,0.045736,-0.16313,-0.31844,0.24121,0.21443,0.021636,-0.14706,-0.28363,0.27602,0.21443,0.021636,-0.16848,-0.29702 0.28662,0.16649,-0.08084,-0.17506,-0.25279,0.27955,0.19475,-0.076129,-0.1515,-0.24572,0.24422,0.19475,-0.08084,-0.16093,-0.22924,0.27013,0.21124,-0.071418,-0.16093,-0.22924,0.26542,0.23244,-0.066707,-0.13266,-0.23159 0.22984,0.13286,0.004061,-0.094434,-0.37628,0.24651,0.12832,0.028306,-0.10959,-0.32022,0.26924,0.14499,0.028306,-0.065643,-0.32779,0.25106,0.16165,0.022245,-0.085343,-0.31719,0.25409,0.14195,0.037398,-0.085343,-0.299 0.29201,0.17209,0.037176,-0.1577,-0.29261,0.21706,0.12712,-0.067756,-0.20267,-0.24764,0.33698,0.12712,0.037176,-0.067756,-0.24764,0.21706,0.17209,-0.022785,-0.11273,-0.33758,0.26203,0.17209,0.037176,-0.20267,-0.24764 0.33678,0.18769,0.035147,-0.16226,-0.23474,0.2933,0.18217,-0.1312,-0.15398,-0.23405,0.27604,0.21944,0.01444,-0.15812,-0.23336,0.26845,0.086225,0.0054667,-0.17124,-0.25061,0.26224,0.081394,-0.093929,-0.17124,-0.25407 0.24958,0.20778,-0.04306,-0.14758,-0.25209,0.28094,0.11371,-0.084866,-0.22074,-0.21028,0.32274,0.20778,-0.10577,-0.13712,-0.23119,0.32274,0.17642,-0.032609,-0.15803,-0.25209,0.22868,0.17642,-0.04306,-0.12667,-0.24164 0.35907,0.1949,0.010202,-0.064555,-0.2126,0.30483,0.16558,-0.0044561,-0.12172,-0.2126,0.32682,0.11867,-0.011785,-0.12026,-0.25071,0.28724,0.074699,-0.061623,-0.17596,-0.28589,0.21542,0.074699,-0.082145,-0.23019,-0.29762 0.21367,0.21828,0.022358,-0.14936,-0.2842,0.22059,0.19984,0.039646,-0.17356,-0.27844,0.22289,0.21367,0.028121,-0.13784,-0.2842,0.22059,0.20906,0.0039185,-0.16319,-0.29342,0.22174,0.19062,0.014291,-0.18394,-0.29112 0.25574,0.17061,0.068017,-0.20265,-0.2987,0.22736,0.15751,0.05492,-0.21357,-0.28124,0.24264,0.14442,0.074565,-0.16773,-0.27687,0.24701,0.15751,0.057103,-0.11097,-0.27032,0.23173,0.15751,0.057103,-0.19611,-0.2856 0.31511,0.14124,0.03424,-0.099509,-0.30013,0.28836,0.11449,-0.01926,-0.16638,-0.31351,0.30174,0.10111,0.03424,-0.086134,-0.20651,0.30174,0.12786,0.047614,-0.086134,-0.34026,0.16799,0.11449,0.0074899,-0.15301,-0.32688 0.2252,0.11512,0.036485,-0.15223,-0.35667,0.27238,0.11512,0.0050324,-0.16796,-0.21513,0.2881,0.083664,-0.02642,-0.073599,-0.34094,0.33528,0.09939,-0.042146,-0.057873,-0.26231,0.31956,0.14657,0.052211,-0.1365,-0.26231 0.27147,0.20338,-0.046304,-0.091701,-0.31868,0.29417,0.089885,0.089885,-0.18249,-0.22789,0.33957,0.13528,-0.046304,-0.1371,-0.25059,0.24877,0.18068,-0.091701,-0.1144,-0.22789,0.29417,0.067187,-0.023606,-0.18249,-0.27329 0.27093,0.035084,-0.063901,-0.15342,-0.23347,0.27179,0.21928,-0.076812,-0.14567,-0.23863,0.25457,0.21842,-0.057876,-0.1517,-0.21969,0.29158,0.18227,-0.035497,-0.17235,-0.25412,0.31654,0.20809,-0.058737,-0.14567,-0.26101 0.26955,0.2206,-0.040465,-0.18731,-0.28521,0.26955,0.13902,0.024801,-0.10573,-0.18731,0.28586,0.17165,-0.024148,-0.18731,-0.26889,0.33481,0.1227,-0.056781,-0.18731,-0.20363,0.3185,0.07375,-0.10573,-0.171,-0.21994 0.39092,0.22051,0.045991,-0.13263,-0.25788,0.31085,0.17329,0.031619,-0.14085,-0.28457,0.23078,0.15276,-0.0012319,-0.13469,-0.27636,0.20408,0.1199,0.0049276,-0.15522,-0.25582,0.18971,0.072682,-0.02587,-0.17575,-0.30715 0.23349,0.12837,0.060101,-0.129,-0.35072,0.22987,0.14529,0.067955,-0.14531,-0.31689,0.24074,0.14166,0.067955,-0.11631,-0.31508,0.24135,0.14347,0.066142,-0.11208,-0.3187,0.23953,0.16039,0.067955,-0.13564,-0.29453 0.26458,0.15106,-0.07147,-0.17098,-0.22599,0.36359,0.13906,-0.039966,-0.14898,-0.23399,0.36309,0.030544,-0.013962,-0.14798,-0.22749,0.27458,0.17957,-0.021963,-0.17098,-0.22749,0.33959,0.015542,-0.032465,-0.14748,-0.23999 0.35696,0.057297,-0.026013,-0.11548,-0.22057,0.35644,0.066012,-0.021912,-0.16879,-0.22262,0.35696,0.062936,-0.013965,-0.17315,-0.22468,0.35952,0.051657,-0.025501,-0.17033,-0.22698,0.29979,0.058066,-0.024475,-0.1711,-0.22006 0.26281,0.23561,-0.056363,-0.14341,-0.2232,0.25193,0.20478,-0.074497,-0.18331,-0.23227,0.25737,0.17213,-0.056363,-0.17787,-0.24678,0.25918,0.22654,-0.063617,-0.15792,-0.23408,0.27006,0.19752,-0.056363,-0.19237,-0.23952 0.21185,0.15641,0.042604,-0.14474,-0.27839,0.23695,0.16633,0.039102,-0.12489,-0.28889,0.27663,0.19026,-0.16049,-0.13306,-0.2708,0.28714,0.14299,0.047273,-0.12664,-0.30056,0.27722,0.15641,0.031515,-0.15232,-0.28189 0.25471,0.21363,-0.053407,-0.09449,-0.2999,0.29579,0.19309,-0.012325,-0.09449,-0.23828,0.31633,0.049299,0.049299,-0.1972,-0.25882,0.23417,0.06984,0.049299,-0.13557,-0.27936,0.29579,0.152,-0.053407,-0.15611,-0.2999 0.25317,0.18642,-0.072021,-0.16444,-0.25858,0.24975,0.18128,-0.092559,-0.17471,-0.24831,0.26686,0.17786,-0.085713,-0.17129,-0.24831,0.28398,0.20867,-0.061752,-0.1439,-0.24146,0.26686,0.18813,0.09742,-0.16102,-0.23633 0.20912,0.12458,0.0029436,-0.13572,-0.30358,0.22615,0.10998,0.03761,-0.16248,-0.30115,0.23831,0.14708,0.052815,-0.11322,-0.30358,0.24561,0.16229,0.094171,-0.1491,-0.3048,0.30582,0.1708,0.10998,-0.1637,-0.29993 0.30569,0.19612,-0.12539,-0.14052,-0.24973,0.27181,0.14494,0.046178,-0.16071,-0.24829,0.28118,0.12583,0.055549,-0.19783,-0.23027,0.32371,0.14097,-0.1052,-0.10989,-0.23027,0.27685,0.13917,-0.085739,-0.18486,-0.23928 0.39839,0.087267,0.00020485,-0.09838,-0.21489,0.34077,0.075744,-0.033084,-0.12015,-0.22385,0.34461,0.069343,-0.0061968,-0.14703,-0.21745,0.34461,0.053979,-0.062531,-0.17008,-0.24434,0.28188,0.048857,-0.079175,-0.17136,-0.25714 0.26658,0.21107,0.036587,-0.095593,-0.33087,0.24543,0.18199,0.036587,-0.11674,-0.3203,0.26394,0.17934,0.036587,-0.074444,-0.32823,0.21371,0.14498,0.0022206,-0.11674,-0.3203,0.19785,0.10532,0.010151,-0.13789,-0.29122 0.22782,0.15603,-0.035417,-0.179,-0.32258,0.29961,0.1321,-0.035417,-0.13114,-0.37044,0.25175,0.17996,-0.011487,-0.13114,-0.22686,0.27568,0.20389,0.012444,-0.179,-0.179,0.29961,0.1321,-0.059347,-0.059347,-0.25079 0.33374,0.18517,-0.062005,-0.1593,-0.18428,0.339,0.12206,-0.051487,-0.1593,-0.18033,0.36267,0.13916,-0.065949,-0.15404,-0.20006,0.28904,0.11943,-0.10145,-0.15667,-0.2303,0.27852,0.060269,-0.081726,-0.14878,-0.2934 0.22485,0.20065,-0.0072775,-0.1677,-0.2654,0.22485,0.16839,-0.043127,-0.20445,-0.27257,0.24009,0.16839,0.058148,-0.18473,-0.27974,0.23919,0.20692,0.058148,-0.16053,-0.2654,0.24009,0.19707,0.083243,-0.18742,-0.27167 0.32493,0.21228,0.049385,-0.092193,-0.20332,0.32493,0.17726,0.050907,-0.092193,-0.23986,0.29296,0.12702,-0.017598,-0.13025,-0.28705,0.21989,0.10267,-0.045001,-0.18658,-0.29619,0.22598,0.064608,-0.054135,-0.19876,-0.32968 0.25649,0.19838,-0.014723,-0.15033,-0.26657,0.31461,0.14026,-0.034096,-0.18908,-0.26657,0.179,0.14026,-0.034096,-0.1697,-0.22782,0.29524,0.21775,0.024022,-0.092213,-0.28594,0.21775,0.23712,-0.034096,-0.1697,-0.28594 0.29598,0.18967,-0.022964,-0.10802,-0.27812,0.35977,0.14714,0.040825,-0.10802,-0.27812,0.25345,0.062088,0.040825,-0.15054,-0.23559,0.35977,0.040825,-0.022964,-0.21433,-0.23559,0.25345,0.062088,-0.044227,-0.12928,-0.27812 0.24929,0.2296,0.021708,-0.13585,-0.25183,0.23179,0.20334,0.050156,-0.18181,-0.30216,0.18802,0.16614,0.037026,-0.1643,-0.32405,0.19459,0.17708,0.028273,-0.13804,-0.29998,0.24929,0.18802,0.028273,-0.15773,-0.28685 0.38306,0.11575,-0.028904,-0.15623,-0.21889,0.38773,0.068421,-0.027571,-0.16689,-0.22689,0.39373,0.073087,-0.058902,-0.15289,-0.23355,0.25974,0.10375,-0.031571,-0.15289,-0.21222,0.24574,0.060422,-0.03757,-0.16089,-0.22555 0.23535,0.14542,-0.0087356,-0.098661,-0.25282,0.24819,0.18396,-0.034429,-0.15005,-0.26566,0.31243,0.18396,0.068343,-0.21428,-0.25282,0.20965,0.18396,-0.047275,-0.11151,-0.25282,0.31243,0.18396,-0.098661,-0.21428,-0.26566 0.30117,0.15059,0.066927,-0.11712,-0.26771,0.31791,0.16732,0.016732,-0.11712,-0.23425,0.26771,0.11712,0.066927,-0.15059,-0.31791,0.20078,0.10039,0.050196,-0.18405,-0.35137,0.26771,0.066927,-0.033464,-0.083659,-0.30117 0.23082,0.21665,-0.024103,-0.18309,-0.25572,0.23356,0.21665,0.012901,-0.16161,-0.25572,0.23356,0.21802,-0.050143,-0.1671,-0.26852,0.23219,0.2194,-0.040093,-0.18628,-0.25846,0.23356,0.2194,0.0092466,-0.16664,-0.25846 0.22264,0.18556,0.068232,-0.15551,-0.27671,0.21901,0.17659,0.070656,-0.17611,-0.29877,0.22798,0.17659,0.050779,-0.15793,-0.32204,0.22337,0.17877,0.05999,-0.16811,-0.27962,0.21755,0.17125,0.061445,-0.18144,-0.29416 0.304,0.144,-0.036,-0.176,-0.256,0.404,0.104,-0.036,-0.176,-0.276,0.284,0.224,0.024,-0.176,-0.256,0.264,0.084,0.024,-0.136,-0.196,0.224,0.104,-0.096,-0.136,-0.236 0.24524,0.12051,-0.0506,-0.22105,-0.27657,0.27137,0.14989,-0.04211,-0.20342,-0.26089,0.25961,0.16492,-0.043417,-0.20799,-0.25371,0.27398,0.15838,0.080668,-0.19885,-0.23346,0.28704,0.19496,0.086546,-0.072805,-0.22824 0.28876,0.16881,0.0015151,-0.11843,-0.28888,0.2856,0.11831,0.017298,-0.13421,-0.27626,0.32032,0.14356,-0.0079544,-0.12474,-0.28257,0.30138,0.14356,0.017298,-0.14368,-0.22575,0.30454,-0.071084,-0.03005,-0.11212,-0.2952 0.24936,0.155,0.02823,-0.06898,-0.2723,0.26289,0.12544,0.022533,-0.071473,-0.28227,0.25826,0.1347,0.022533,-0.21569,-0.29082,0.26289,0.13612,0.08093,-0.22494,-0.27444,0.27606,0.12188,0.071672,-0.21925,-0.28833 0.3214,0.13476,0.022771,-0.10788,-0.21987,0.31207,0.20942,-0.014558,-0.098549,-0.21987,0.29341,0.21875,-0.014558,-0.16388,-0.27586,0.31207,0.097429,-0.023891,-0.18254,-0.30386,0.20008,0.013438,-0.06122,-0.18254,-0.26653 0.25289,0.20227,-0.017589,-0.15509,-0.23518,0.25062,0.1932,0.0088547,-0.13469,-0.2314,0.2476,0.17734,-0.029677,-0.13545,-0.42104,0.23551,0.18716,-0.02741,-0.16945,-0.24047,0.24004,0.19018,0.0043216,-0.143,-0.24953 0.24173,0.16695,-0.028058,-0.17857,-0.25904,0.24363,0.15559,-0.055511,-0.18141,-0.28365,0.26256,0.15464,-0.064031,-0.17573,-0.26472,0.26729,0.1802,0.12056,-0.17479,-0.24105,0.26824,0.16127,0.11488,-0.16627,-0.26472 0.35693,0.036215,-0.069506,-0.10569,-0.25824,0.28242,0.096526,-0.075892,-0.11137,-0.24192,0.37608,0.096526,-0.066668,-0.10711,-0.25257,0.36544,0.064596,-0.060282,-0.10356,-0.2476,0.32358,0.099364,-0.070926,-0.10782,-0.21851 0.31506,0.19668,-0.095043,-0.21131,-0.25359,0.25587,0.15863,0.0085403,-0.2409,-0.27896,0.26644,0.12481,0.038135,-0.082359,-0.2557,0.25376,0.1079,-0.0083712,-0.099271,-0.2092,0.36368,0.086756,-0.042194,-0.14366,-0.2557 0.34051,0.15092,0.03716,-0.13347,-0.27567,0.26467,0.14144,0.04664,-0.095555,-0.22827,0.30259,0.15092,-0.019718,-0.13347,-0.27567,0.31207,0.12248,0.05612,-0.10504,-0.30411,0.1604,0.04664,-0.029197,-0.18087,-0.35151 0.26602,0.18353,0.01856,-0.17735,-0.19797,0.30727,0.19385,-0.063928,-0.21859,-0.20828,0.26602,0.19385,-0.053617,-0.16704,-0.28046,0.23509,0.16291,0.01856,-0.17735,-0.27015,0.27633,0.090736,0.059803,-0.2289,-0.2289 0.27042,0.20446,0.039574,-0.12532,-0.19127,0.28691,0.18797,0.039574,-0.14181,-0.29021,0.3034,0.039574,-0.042871,-0.17478,-0.25723,0.3034,0.17149,0.056063,-0.17478,-0.24074,0.23744,0.072552,-0.075849,-0.17478,-0.32318 0.28271,0.15872,0.052433,-0.14242,-0.33727,0.24728,0.19414,0.017005,-0.16013,-0.26642,0.22957,0.12329,-0.036136,-0.16013,-0.28413,0.19414,0.21186,0.08786,-0.19556,-0.31956,0.265,0.141,0.034719,-0.10699,-0.23099 0.33357,0.18639,0.070839,-0.082418,-0.22838,0.34086,0.19126,0.025835,-0.086067,-0.22351,0.26667,0.13774,-0.013088,-0.15053,-0.26487,0.23261,0.068406,-0.034982,-0.17486,-0.3269,0.22288,0.079353,-0.066606,-0.17729,-0.3269 0.2022,0.1839,0.054635,-0.13897,-0.29834,0.20692,0.18803,0.016858,-0.14251,-0.30779,0.20987,0.20161,0.022761,-0.17734,-0.29362,0.22876,0.20751,0.058176,-0.14133,-0.29185,0.23526,0.21164,0.010955,-0.14192,-0.30543 0.36235,0.074287,0.018053,-0.10675,-0.32733,0.35618,0.067394,0.0010013,-0.11909,-0.32878,0.27528,0.064491,-0.012422,-0.1423,-0.21595,0.36307,0.06558,-0.011334,-0.11292,-0.2174,0.26439,0.065942,-0.022943,-0.11909,-0.24171 0.23364,0.21384,0.066901,-0.13562,-0.27616,0.22661,0.20617,0.0036542,-0.18034,-0.28191,0.22022,0.20042,0.0017377,-0.17395,-0.30683,0.21384,0.19212,0.041346,-0.14839,-0.28063,0.20234,0.18637,0.049013,-0.18289,-0.2915 0.21198,0.061952,-0.053458,-0.20349,-0.28658,0.24891,0.075801,-0.053458,-0.17579,-0.31197,0.26507,0.14274,-0.039608,-0.13194,-0.27504,0.32278,0.17044,0.055027,-0.11347,-0.2335,0.37356,0.19121,0.06426,-0.081156,-0.22426 0.23539,0.1957,0.030301,-0.1384,-0.31042,0.23539,0.17916,0.050148,-0.11856,-0.31703,0.22547,0.19239,0.043532,-0.075553,-0.32365,0.20893,0.16593,0.030301,-0.13179,-0.31042,0.20893,0.14608,0.050148,-0.1351,-0.33688 0.34223,0.12228,-0.052307,-0.12237,-0.31131,0.1487,0.11022,-0.050584,-0.11892,-0.27858,0.34683,0.12515,-0.028186,-0.10284,-0.2981,0.33419,0.13491,-0.043692,-0.12467,-0.16257,0.33534,0.11539,-0.027038,-0.12409,-0.26996 0.29156,0.18706,-0.10903,-0.16128,-0.23966,0.2306,0.20447,-0.021945,-0.16999,-0.23095,0.28285,0.16964,-0.082904,-0.19611,-0.21353,0.27414,0.21318,-0.039362,-0.16999,-0.22224,0.25672,0.22189,-0.056779,-0.18741,-0.23095 0.33183,0.045769,-0.045577,-0.17539,-0.22106,0.34625,0.045769,-0.057596,-0.16817,-0.22106,0.35106,0.067404,-0.069616,-0.16096,-0.19942,0.36067,0.10587,-0.047981,-0.15615,-0.19221,0.35106,0.11308,-0.055192,-0.15615,-0.19221 0.31085,0.21245,0.048437,-0.063635,-0.23038,0.32999,0.17691,0.067571,-0.11284,-0.22491,0.28352,0.12497,0.0074351,-0.15657,-0.28505,0.22338,0.11677,-0.058168,-0.17297,-0.29325,0.22338,0.064838,-0.058168,-0.21398,-0.32058 0.27692,0.099894,-0.023393,-0.14668,-0.21939,0.26428,0.13467,-0.023393,-0.13087,-0.21306,0.31169,0.13941,0.022444,-0.14036,-0.19252,0.31802,0.12992,0.0018967,-0.12929,-0.24468,0.30537,0.18999,-0.15458,-0.24151,-0.33477 0.25734,0.18799,0.072853,-0.20322,-0.26341,0.24164,0.17884,0.061077,-0.18491,-0.27257,0.24033,0.16706,0.044068,-0.19014,-0.27519,0.2194,0.17491,0.047993,-0.20584,-0.27126,0.20108,0.16706,0.066311,-0.18491,-0.2765 0.2585,0.17954,-0.092509,-0.18998,-0.24982,0.27639,0.17522,-0.088808,-0.17209,-0.24797,0.26652,0.17214,-0.098678,-0.17147,-0.24858,0.2585,0.18016,0.071584,-0.18258,-0.23748,0.27392,0.17399,0.083305,-0.15111,-0.23871 0.26288,0.17224,0.065803,-0.18712,-0.30305,0.23337,0.15222,0.054211,-0.17869,-0.29356,0.23969,0.14695,0.10163,-0.1671,-0.27776,0.24391,0.12798,0.090042,-0.16394,-0.29883,0.22177,0.12377,0.071073,-0.14286,-0.29462 0.28375,0.10719,-0.089749,-0.14272,-0.22693,0.29462,0.10719,-0.087033,-0.13593,-0.22149,0.44266,0.1099,-0.044929,-0.14408,-0.21199,0.37339,0.10311,-0.049003,-0.14136,-0.231,0.26338,0.080025,-0.062585,-0.15223,-0.22421 0.44268,0.072829,-0.046095,-0.094853,-0.29821,0.27024,0.083532,-0.044905,-0.11269,-0.24707,0.29997,0.074018,-0.03777,-0.10793,-0.22805,0.33089,0.088289,-0.069879,-0.11269,-0.2661,0.31305,0.10732,-0.066312,-0.14837,-0.20188 0.17648,0.14899,-0.098412,-0.13965,-0.22211,0.27269,0.16274,-0.015944,-0.13965,-0.26335,0.2452,0.19023,-0.015944,-0.057178,-0.30458,0.28644,0.19023,-0.057178,-0.19462,-0.26335,0.32767,0.20397,0.02529,-0.19462,-0.26335 0.22415,0.14294,-0.046562,-0.15485,-0.23606,0.30536,0.11586,-0.073634,-0.20899,-0.2902,0.25122,0.1294,-0.019491,-0.15485,-0.26313,0.29183,0.1294,0.048187,-0.2496,-0.2496,0.3189,0.21061,0.088793,-0.11424,-0.19545 0.24678,0.21704,0.046085,-0.13726,-0.32309,0.23439,0.16749,0.026263,-0.1447,-0.36273,0.222,0.16253,0.041129,-0.1001,-0.28344,0.22448,0.15262,0.063428,-0.12735,-0.2884,0.21209,0.13776,0.070861,-0.15213,-0.30574 0.29632,0.17216,-0.034764,-0.15892,-0.24169,0.3584,0.089392,-0.014071,-0.24169,-0.26238,0.31701,0.19286,0.027314,-0.13823,-0.2003,0.21355,0.15147,-0.11753,-0.13823,-0.221,0.23424,0.17216,-0.014071,-0.17961,-0.26238 0.34377,0.05028,-0.097432,-0.16212,-0.22197,0.34667,0.061865,-0.051091,-0.15922,-0.20846,0.34957,0.0609,-0.041437,-0.16501,-0.21039,0.36308,0.053176,-0.056884,-0.1457,-0.21425,0.33895,0.14103,-0.037575,-0.14184,-0.19591 0.33943,0.10642,-0.081434,-0.16007,-0.22269,0.34088,0.042348,-0.069784,-0.15862,-0.21104,0.39768,0.10642,-0.065415,-0.13968,-0.21104,0.31612,0.1006,-0.065415,-0.1426,-0.20522,0.34088,0.051086,-0.061046,-0.14697,-0.20085 0.27466,0.071416,-0.048324,-0.11915,-0.2435,0.38567,0.06944,-0.02576,-0.11618,-0.23213,0.38979,0.058734,-0.039101,-0.12129,-0.2491,0.26066,0.066145,-0.055242,-0.13084,-0.24976,0.39292,0.064993,-0.029877,-0.14254,-0.23164 0.23874,0.20589,0.015981,-0.16318,-0.28979,0.2256,0.18858,0.032703,-0.19065,-0.28979,0.22082,0.18081,0.066744,-0.17513,-0.30532,0.21605,0.18619,0.0763,-0.14407,-0.28262,0.20231,0.16946,0.070925,-0.17632,-0.28024 0.35816,0.037793,-0.041451,-0.14711,-0.23448,0.3717,0.052694,-0.067188,-0.14101,-0.22771,0.36899,0.070304,-0.040096,-0.13898,-0.20197,0.33377,0.068949,-0.050256,-0.14372,-0.22094,0.3331,0.071659,-0.066511,-0.13085,-0.21484 0.27689,0.20315,-0.06656,-0.14577,-0.21268,0.2646,0.2052,-0.078168,-0.15123,-0.23385,0.26187,0.20793,-0.09319,-0.18059,-0.23385,0.2728,0.20656,-0.091142,-0.15942,-0.22702,0.2646,0.20588,-0.089776,-0.16967,-0.23658 0.26005,0.15887,0.096457,-0.18251,-0.30639,0.22979,0.16076,0.062413,-0.13617,-0.30545,0.20237,0.17873,0.054848,-0.12199,-0.27329,0.23263,0.14752,0.066196,-0.1409,-0.30828,0.23547,0.13712,0.02175,-0.11159,-0.3584 0.18279,0.11632,0.059347,-0.14481,-0.29199,0.23027,0.1543,0.10682,-0.13768,-0.28249,0.2635,0.1638,0.059347,-0.16142,-0.30386,0.23976,0.20178,0.026113,-0.15193,-0.30386,0.23027,0.19228,0.047477,-0.18279,-0.31335 0.30236,0.16238,0.022397,-0.19757,-0.27756,0.26237,0.16238,0.042395,-0.17758,-0.17758,0.28236,0.14238,-0.097588,-0.21757,-0.21757,0.22237,0.10239,0.042395,-0.15758,-0.29756,0.28236,0.16238,0.082389,-0.15758,-0.29756 0.26265,0.24769,-0.056283,-0.16674,-0.2186,0.25886,0.1874,-0.046586,-0.18192,-0.22323,0.26286,0.16822,-0.064926,-0.17834,-0.2342,0.26582,0.2498,-0.074201,-0.17307,-0.22661,0.26244,0.17538,-0.072304,-0.19267,-0.23146 0.31667,0.16793,-0.053228,-0.17789,-0.21661,0.30833,0.079779,-0.057793,-0.17112,-0.23235,0.31447,0.083557,-0.068181,-0.16656,-0.23267,0.29385,0.28803,-0.047247,-0.16577,-0.19111,0.28991,0.08151,-0.048978,-0.15711,-0.23739 0.24834,0.12083,0.051901,-0.19968,-0.26343,0.23972,0.15012,-0.12817,-0.19279,-0.25482,0.27591,0.14754,0.072579,-0.18589,-0.2419,0.28539,0.15357,0.071717,-0.18762,-0.25223,0.27936,0.18114,0.057071,-0.18245,-0.2462 0.34916,0.19066,0.079597,-0.078903,-0.21426,0.31098,0.15248,0.012495,-0.097413,-0.24319,0.29016,0.15942,0.017123,-0.14022,-0.24666,0.24619,0.088852,-0.033782,-0.17724,-0.30797,0.21496,0.056458,-0.099727,-0.19807,-0.33111 0.2653,0.16959,-0.07076,-0.1787,-0.22518,0.27478,0.17326,-0.086967,-0.16647,-0.22732,0.27081,0.24053,-0.071371,-0.16433,-0.21784,0.26897,0.17448,-0.069537,-0.17748,-0.22365,0.2757,0.24268,-0.086049,-0.16127,-0.22916 0.2643,0.18678,-0.077834,-0.18784,-0.22768,0.26647,0.17899,-0.092559,-0.17528,-0.22292,0.25608,0.19155,-0.060511,-0.17268,-0.20689,0.26604,0.16253,-0.068739,-0.17138,-0.21556,0.39033,0.16469,-0.084764,-0.15752,-0.20559 0.32551,0.16901,0.071205,-0.22222,-0.22222,0.19836,0.13967,-0.0070422,-0.15376,-0.25156,0.20814,0.18858,-0.026604,-0.17332,-0.30047,0.25704,0.20814,0.01252,-0.19288,-0.25156,0.25704,0.15923,0.071205,-0.20266,-0.26135 0.25092,0.15703,0.088094,-0.14842,-0.30769,0.24141,0.14514,0.044118,-0.14842,-0.33027,0.20338,0.14158,0.033421,-0.12228,-0.32314,0.25449,0.14158,0.10473,-0.12941,-0.29342,0.23191,0.1285,0.082151,-0.12584,-0.31957 0.22848,0.12283,0.031233,-0.18234,-0.30386,0.23029,0.15956,0.051638,-0.1574,-0.27393,0.23029,0.1523,0.07431,-0.18642,-0.28617,0.24072,0.15321,0.10152,-0.17962,-0.30204,0.24435,0.18223,0.11421,-0.16601,-0.27937 0.27065,0.22034,-0.0060368,-0.1318,-0.20726,0.34611,0.094576,-0.03119,-0.1318,-0.28272,0.37126,0.094576,-0.081497,-0.1318,-0.25757,0.2455,0.094576,-0.1318,-0.1318,-0.25757,0.2958,0.17004,-0.081497,-0.1318,-0.20726 0.24064,0.14485,0.010729,-0.065909,-0.33414,0.33644,0.14485,0.010729,-0.065909,-0.33414,0.2598,0.16401,-0.046749,-0.16171,-0.2575,0.18316,0.087367,-0.046749,-0.14255,-0.29582,0.29812,0.18316,0.068208,-0.10423,-0.27666 0.30775,0.065007,-0.077085,-0.16885,-0.2251,0.34327,0.11237,-0.080045,-0.14517,-0.23102,0.28703,0.11533,-0.071164,-0.17477,-0.19846,0.31959,0.076848,-0.068204,-0.16885,-0.20734,0.40248,0.1775,-0.074125,-0.14221,-0.17477 0.30169,0.26331,0.0042222,-0.13972,-0.22608,0.2921,0.20573,0.0042222,-0.12052,-0.20689,0.26331,0.16735,-0.053353,-0.15891,-0.28365,0.25371,0.11937,-0.08214,-0.19729,-0.23567,0.2825,0.10018,-0.12052,-0.20689,-0.22608 0.24866,0.15522,-0.13166,-0.15575,-0.29299,0.25669,0.12091,0.062516,-0.18203,-0.27693,0.28443,0.14354,0.055946,-0.16232,-0.28788,0.26399,0.15157,0.044266,-0.015593,-0.28788,0.26837,0.13697,0.050836,-0.17181,-0.27912 0.26028,0.091024,0.034604,-0.11585,-0.28511,0.22267,0.20386,0.034604,-0.13465,-0.2663,0.27909,0.14744,0.034604,-0.13465,-0.2663,0.3167,0.053411,-0.021816,-0.021816,-0.34153,0.27909,0.18506,-0.078235,-0.19107,-0.28511 0.29241,0.18718,-0.062473,-0.17737,-0.20314,0.29671,0.18342,-0.10489,-0.17307,-0.2026,0.28705,0.21027,-0.092002,-0.18005,-0.19777,0.28275,0.16034,-0.094687,-0.18274,-0.20475,0.29886,0.16571,-0.10059,-0.18381,-0.20475 0.17006,0.07368,-0.011994,-0.15121,-0.26902,0.19505,0.11295,-0.019134,-0.20119,-0.27973,0.30928,0.15578,0.030843,-0.14051,-0.31542,0.32356,0.19148,0.052261,-0.11195,-0.32256,0.295,0.18434,0.07011,-0.083389,-0.25831 0.26101,0.18571,-0.07867,-0.16684,-0.24557,0.25704,0.25403,-0.044716,-0.16739,-0.23324,0.25581,0.18133,-0.06224,-0.16095,-0.24584,0.2554,0.18598,-0.090444,-0.15739,-0.24173,0.25362,0.25115,-0.057175,-0.1626,-0.22626 0.203,0.16622,0.0072044,-0.086907,-0.3303,0.24627,0.16974,0.014777,-0.085285,-0.32516,0.2844,0.16622,0.032355,-0.076901,-0.32002,0.25925,0.16135,0.0042296,-0.075279,-0.34193,0.24411,0.084008,-0.00090867,-0.075279,-0.32516 0.26559,0.21376,-0.0884,-0.1637,-0.23704,0.26364,0.21572,-0.075688,-0.18521,-0.23215,0.27048,0.20985,-0.077643,-0.15587,-0.21846,0.26168,0.2079,-0.0884,-0.15685,-0.22921,0.25483,0.2079,-0.07471,-0.16174,-0.22628 0.21222,0.18959,0.047968,-0.15483,-0.31489,0.20803,0.19378,0.025342,-0.14729,-0.30819,0.21222,0.19127,0.084841,-0.14813,-0.28305,0.21557,0.19462,0.052996,-0.15567,-0.30819,0.21054,0.19714,0.032884,-0.1431,-0.30568 0.31747,0.12661,0.015269,-0.12788,-0.30283,0.36518,0.094795,0.031174,-0.096067,-0.30283,0.20613,0.14251,0.047079,-0.11197,-0.31874,0.25385,0.094795,-0.016541,-0.11197,-0.22331,0.31747,0.07889,-0.016541,-0.25512,-0.2074 0.30147,0.19916,0.011595,-0.090713,-0.29533,0.30147,0.148,0.011595,-0.10776,-0.31238,0.21621,0.148,0.062749,-0.15892,-0.36353,0.19916,0.19916,0.011595,-0.17597,-0.26123,0.19916,0.148,0.011595,-0.19302,-0.21007 0.419,0.044117,-0.041726,-0.13662,-0.24782,0.36648,0.071644,-0.026513,-0.13445,-0.22645,0.34149,0.063676,-0.025427,-0.14423,-0.24347,0.31831,0.060778,-0.050057,-0.1359,-0.24999,0.20276,0.16763,-0.027238,-0.13626,-0.22971 0.29049,0.14629,-0.011011,-0.1421,-0.2994,0.29049,0.14629,-0.011011,-0.12899,-0.24697,0.14629,0.12008,0.041424,-0.12899,-0.2863,0.23806,0.14629,-0.011011,-0.20764,-0.33873,0.36914,0.17251,-0.011011,-0.037229,-0.24697 0.23006,0.16844,0.045191,-0.13968,-0.28347,0.20952,0.18898,0.024649,-0.18076,-0.22184,0.37385,0.1479,-0.036974,-0.2013,-0.24239,0.29169,0.12736,0.065732,-0.2013,-0.30401,0.23006,0.065732,0.045191,-0.11914,-0.28347 0.36333,0.059166,-0.072991,-0.14537,-0.22393,0.35761,0.075199,-0.054667,-0.14583,-0.20767,0.35371,0.04634,-0.053522,-0.1488,-0.22118,0.35119,0.052524,-0.0636,-0.13918,-0.21591,0.35211,0.062601,-0.040009,-0.13918,-0.20194 0.29333,0.18601,-0.15382,-0.20747,-0.2969,0.3291,0.23967,0.0071543,-0.10016,-0.24325,0.23967,0.11447,-0.028617,-0.10016,-0.26113,0.27544,0.078697,0.0071543,-0.15382,-0.26113,0.27544,0.13235,0.0071543,-0.1717,-0.20747 0.21936,0.24238,-0.041419,-0.19482,-0.20249,0.2884,0.20402,-0.018408,-0.17948,-0.20249,0.28073,0.19635,-0.026078,-0.19482,-0.23317,0.28073,0.19635,-0.064429,-0.19482,-0.24084,0.25772,0.14266,-0.087439,-0.20249,-0.2255 0.21262,0.055616,-0.091679,-0.19689,-0.34904,0.22234,0.10579,-0.041502,-0.18232,-0.29401,0.29841,0.1414,0.020006,-0.12729,-0.26325,0.32107,0.15597,0.020006,-0.091679,-0.24221,0.33888,0.21586,0.055616,-0.086823,-0.19689 0.2396,0.12075,0.0019016,-0.18826,-0.30711,0.31091,0.096982,-0.021869,-0.021869,-0.25957,0.26337,0.073212,-0.021869,-0.069409,-0.33088,0.35845,0.12075,0.025672,-0.093179,-0.2358,0.31091,0.096982,-0.045639,-0.093179,-0.33088 0.37976,0.033889,-0.067651,-0.12953,-0.22472,0.35914,0.07038,-0.064478,-0.13746,-0.20886,0.39245,0.1148,-0.042266,-0.13905,-0.2279,0.3274,0.068794,-0.069238,-0.13587,-0.22472,0.24808,0.12908,-0.075584,-0.16126,-0.2152 0.26749,0.11888,0.0033023,-0.1453,-0.24437,0.26749,0.052837,0.052837,-0.16181,-0.26088,0.284,0.13539,-0.079255,-0.1453,-0.24437,0.35004,0.11888,0.0033023,-0.1453,-0.19484,0.33353,0.052837,0.10237,-0.16181,-0.35995 0.27231,0.14248,0.025663,-0.051007,-0.25317,0.24699,0.14537,0.023131,-0.30308,-0.30308,0.26616,0.12439,0.037597,-0.23473,-0.25245,0.28605,0.14609,0.038682,-0.14287,-0.24811,0.26037,0.1479,0.032896,-0.1548,-0.25281 0.26095,0.1875,-0.059562,-0.17976,-0.23985,0.23424,0.1875,-0.059562,-0.21982,-0.25988,0.22757,0.22089,-0.06624,-0.17976,-0.21314,0.25427,0.22757,0.020566,-0.18643,-0.2265,0.28098,0.19418,0.020566,-0.19979,-0.2265 0.30839,0.16045,0.079499,-0.11869,-0.24989,0.30281,0.113,-0.029366,-0.16614,-0.22476,0.31398,0.16603,0.012505,-0.11311,-0.21918,0.28606,0.15766,-0.062862,-0.16894,-0.28338,0.30839,-0.040531,-0.096359,-0.16614,-0.26943 0.2802,0.13577,0.015406,-0.12903,-0.22531,0.25612,0.15984,-0.032738,-0.05681,-0.29753,0.35241,0.11169,-0.0086659,-0.1531,-0.29753,0.2802,0.087622,-0.0086659,-0.20124,-0.27346,0.32834,-0.0086659,0.039478,-0.05681,-0.29753 0.44277,0.12767,-0.054356,-0.15671,-0.25786,0.24374,0.18794,-0.065098,-0.14805,-0.26055,0.23777,0.19063,-0.060921,-0.15492,-0.25398,0.23569,0.20227,-0.035557,-0.10807,-0.2504,0.2333,0.11901,-0.054953,-0.10389,-0.25548 0.33355,0.18253,-0.064132,-0.099369,-0.24535,0.31341,0.17246,-0.064132,-0.13209,-0.24032,0.31089,0.0013088,-0.04903,-0.12202,-0.25039,0.35872,0.039063,-0.054064,-0.1044,-0.24535,0.33606,0.049131,-0.056581,-0.12957,-0.24032 0.28802,0.14077,0.05242,-0.1979,-0.22735,0.25857,0.15549,0.022971,-0.18318,-0.28625,0.25857,0.17022,-0.035928,-0.16845,-0.2568,0.25857,0.15549,0.11132,-0.10955,-0.2568,0.17022,0.19967,0.022971,-0.21263,-0.33042 0.3124,0.14299,0.0074542,-0.11114,-0.1789,0.24463,0.07522,0.0074542,-0.077253,-0.24667,0.32934,0.26158,-0.0094872,-0.12808,-0.31443,0.29546,0.058279,-0.04337,-0.19584,-0.24667,0.27852,0.07522,-0.026429,-0.19584,-0.31443 0.21337,0.20848,0.046982,-0.14388,-0.29682,0.21704,0.21337,0.0078303,-0.14388,-0.29682,0.20726,0.21582,0.0066068,-0.1708,-0.28825,0.20481,0.21337,0.040864,-0.14143,-0.28703,0.21215,0.21582,-0.003181,-0.15,-0.30171 0.27352,0.080739,-0.051429,-0.17081,-0.23064,0.38619,0.089216,-0.0207,-0.14644,-0.22012,0.38485,0.10794,-0.056021,-0.14771,-0.23856,0.38266,0.1251,-0.058281,-0.17208,-0.21871,0.17123,0.13987,-0.037725,-0.15315,-0.21892 0.3121,0.092311,0.037364,-0.20074,-0.20074,0.3121,0.14726,-0.035899,-0.14579,-0.36558,0.3121,0.2022,0.019048,-0.12748,-0.34726,0.22052,0.092311,0.019048,-0.12748,-0.23737,0.27547,0.05568,0.00073263,-0.10916,-0.20074 0.34391,0.053467,-0.046021,-0.15032,-0.23697,0.3744,0.067909,-0.044417,-0.12465,-0.23216,0.33267,0.050257,-0.042812,-0.12144,-0.24339,0.35354,0.024583,-0.031579,-0.12946,-0.22895,0.36316,0.03742,-0.036393,-0.107,-0.22574 0.20054,0.18687,-0.019519,-0.21498,-0.29562,0.21011,0.20328,0.040623,-0.19584,-0.27512,0.22515,0.21011,0.022854,-0.17534,-0.26008,0.23198,0.21968,0.044723,-0.1685,-0.26692,0.23881,0.23061,0.002351,-0.15484,-0.24095 0.29507,0.19864,0.086141,-0.090641,-0.36385,0.26292,0.13435,0.037928,-0.12278,-0.34778,0.23078,0.11828,0.037928,-0.07457,-0.33171,0.23078,0.13435,0.021857,-0.171,-0.26742,0.21471,0.13435,0.021857,-0.15493,-0.23528 0.28666,0.11467,-0.038222,-0.13378,-0.28666,0.30578,0.21022,0.057333,-0.13378,-0.15289,0.22933,0.13378,0.076444,-0.21022,-0.32489,0.22933,0.11467,0.019111,-0.19111,-0.28666,0.28666,0.11467,0,-0.095555,-0.32489 0.2227,0.10908,0.033329,-0.09923,-0.2886,0.27951,0.033329,0.071203,-0.09923,-0.38328,0.29845,0.18482,-0.023482,-0.09923,-0.30754,0.27951,0.16589,0.052266,-0.11817,-0.26966,0.24164,0.10908,0.033329,-0.11817,-0.30754 0.26964,0.071982,-0.055675,-0.13392,-0.21216,0.33553,0.067864,-0.022731,-0.14215,-0.21216,0.33965,0.080218,-0.063911,-0.096855,-0.26569,0.28612,0.084336,-0.055675,-0.10921,-0.27805,0.42613,0.0761,-0.018613,-0.063911,-0.30687 0.27746,0.20717,-0.11564,-0.17551,-0.22758,0.26574,0.21238,-0.11043,-0.17161,-0.22237,0.28006,0.20977,-0.064874,-0.15859,-0.21847,0.27225,0.19936,-0.092208,-0.15859,-0.22107,0.25142,0.20457,-0.068779,-0.15989,-0.21456 0.15573,0.17767,-0.036364,-0.10807,-0.29588,0.24241,0.19907,-0.03904,-0.12412,-0.30337,0.23599,0.23064,-0.022987,-0.12198,-0.28518,0.27559,0.21513,-0.022987,-0.1086,-0.29267,0.24456,0.22155,-0.025663,-0.11556,-0.29588 0.29822,0.16055,-0.011863,-0.14632,-0.2055,0.35419,0.1361,-0.019583,-0.16112,-0.21129,0.3677,0.1271,-0.039526,-0.17527,-0.21901,0.36706,0.11552,-0.055609,-0.18299,-0.21901,0.22424,-0.022156,-0.065903,-0.18685,-0.22866 0.27977,0.0133,-0.063429,-0.19096,-0.29741,0.29187,0.19302,-0.07518,-0.099373,-0.27737,0.36445,0.18715,-0.0043272,-0.091078,-0.27149,0.25316,0.057539,-0.0039816,-0.098336,-0.27115,0.3406,0.076894,-0.0015622,-0.098682,-0.21343 0.27773,0.085096,0.048449,-0.068069,-0.27432,0.28618,0.090734,0.042341,-0.28137,-0.27432,0.28524,0.084626,0.013681,-0.088272,-0.2701,0.29229,0.088854,0.051268,-0.10425,-0.27761,0.30404,0.1053,0.040462,-0.12022,-0.33775 0.26487,0.12166,-0.08345,-0.17677,-0.2128,0.3508,0.15031,-0.08345,-0.16938,-0.20911,0.26118,0.1346,-0.082526,-0.17677,-0.20356,0.27781,0.11704,-0.068667,-0.16383,-0.20541,0.43673,0.1346,-0.061276,-0.1509,-0.20171 0.33913,0.15123,-0.0098288,-0.071775,-0.24729,0.335,0.043858,-0.082099,-0.16882,-0.2349,0.31436,0.19872,-0.088294,-0.21012,-0.22871,0.3061,0.15123,-0.084164,-0.17708,-0.19567,0.27099,0.12026,-0.088294,-0.15643,-0.18741 0.25247,0.20738,0.02705,-0.15328,-0.31108,0.27501,0.20738,0.049592,-0.19837,-0.22091,0.27501,0.22993,-0.018033,-0.085659,-0.24345,0.27501,0.049592,-0.063117,-0.15328,-0.22091,0.25247,0.13976,-0.085659,-0.19837,-0.28853 0.27612,0.056171,0.0054141,-0.21453,-0.31605,0.27612,0.10693,-0.062262,-0.16378,-0.18069,0.36071,0.10693,-0.062262,-0.11302,-0.26529,0.32687,0.10693,0.0054141,-0.079181,-0.34988,0.2592,0.1746,0.022333,-0.062262,-0.21453 0.3033,0.08562,-0.0050791,-0.023219,-0.29532,0.32144,0.15818,0.013061,-0.1502,-0.2409,0.26702,0.15818,-0.041359,-0.16834,-0.29532,0.2126,0.15818,0.14004,-0.16834,-0.27718,0.24888,0.10376,-0.023219,-0.18648,-0.29532 0.25075,0.14522,-0.065854,-0.065854,-0.31914,0.20854,0.14522,-0.0025328,-0.065854,-0.23471,0.31407,0.16632,-0.044747,-0.15028,-0.2136,0.33518,0.103,-0.044747,-0.10807,-0.27692,0.29297,0.16632,-0.065854,-0.086961,-0.38246 0.36991,0.19786,-0.060219,-0.21076,-0.21076,0.26238,0.17635,0.025808,-0.10323,-0.21076,0.28389,0.090328,-0.060219,-0.081725,-0.3398,0.24087,0.15485,-0.017205,-0.14625,-0.21076,0.24087,0.11183,0.025808,-0.23227,-0.29679 0.26433,0.078836,0.0092748,-0.19941,-0.29216,0.33389,0.1484,0.032462,-0.17622,-0.17622,0.33389,0.12521,-0.060286,-0.12985,-0.15303,0.31071,0.17158,-0.060286,-0.19941,-0.29216,0.28752,0.032462,-0.013912,-0.083473,-0.29216 0.28812,0.126,0.010191,-0.12878,-0.31406,0.26496,0.079674,-0.01297,-0.15194,-0.2909,0.33445,0.19548,-0.082453,-0.059292,-0.33723,0.31128,0.056513,0.033352,-0.15194,-0.1751,0.31128,0.10284,-0.059292,-0.1751,-0.1751 0.30464,0.14121,-0.0058837,-0.13663,-0.26738,0.33733,0.1739,0.026803,-0.054914,-0.30007,0.30464,0.12486,-0.038571,-0.12029,-0.25104,0.1739,0.20658,0.043147,-0.15298,-0.31641,0.1739,0.092178,0.026803,-0.15298,-0.33275 0.34943,0.045308,-0.048085,-0.15345,-0.23846,0.35782,0.072847,-0.043296,-0.11035,-0.24086,0.365,0.065663,-0.057664,-0.13669,-0.24565,0.27879,0.058478,-0.040901,-0.14747,-0.23727,0.25125,0.26083,-0.040901,-0.11993,-0.24445 0.26415,0.083719,-0.024538,-0.1328,-0.29518,0.26415,0.13785,-0.078667,-0.078667,-0.29518,0.31828,0.26415,-0.024538,-0.18692,-0.24105,0.31828,0.13785,-0.024538,-0.18692,-0.18692,0.31828,0.047633,-0.024538,-0.18692,-0.18692 0.33134,0.15388,-0.0089218,-0.10986,-0.23197,0.30692,0.16365,0.0057308,-0.11637,-0.21406,0.29553,0.12946,-0.059392,-0.13917,-0.24011,0.30855,0.13598,-0.15056,-0.16522,-0.23848,0.28739,0.1376,-0.18313,-0.18475,-0.21406 0.25688,0.093657,0.085214,-0.17369,-0.33129,0.23999,0.099285,0.065515,-0.16806,-0.32285,0.21748,0.1218,0.073957,-0.16244,-0.2947,0.28502,0.13587,0.093657,-0.11178,-0.2947,0.26251,0.13024,0.085214,-0.10052,-0.28626 0.19987,0.19412,0.050285,-0.17698,-0.28917,0.27467,0.14234,0.073299,-0.17698,-0.31506,0.25453,0.18261,0.070422,-0.18273,-0.34095,0.2344,0.14809,0.038778,-0.082044,-0.32657,0.19987,0.12796,0.041655,-0.093551,-0.24889 0.2978,0.20626,0.043531,-0.22091,-0.21074,0.24695,0.20626,0.0028478,-0.1904,-0.21074,0.2978,0.21643,-0.058177,-0.1904,-0.21074,0.23678,0.16558,0.0028478,-0.1904,-0.26159,0.23678,0.1249,-0.088689,-0.22091,-0.23108 0.23466,0.097199,-0.00035474,-0.10234,-0.30632,0.22136,0.13711,0.0085138,-0.08904,-0.34179,0.2657,0.13267,0.057291,-0.084606,-0.27528,0.26127,0.13711,0.039554,-0.08904,-0.35953,0.2657,0.16371,0.048422,-0.053566,-0.3684 0.18343,0.18343,-0.00079236,-0.12097,-0.29264,0.19994,0.19796,0.031562,-0.14144,-0.26557,0.21446,0.21579,0.014395,-0.15596,-0.30057,0.23097,0.23097,-0.015979,-0.16124,-0.30255,0.2422,0.24748,0.021658,-0.17709,-0.27944 0.24378,0.16847,0.041207,-0.1271,-0.25587,0.24039,0.18429,0.022757,-0.10978,-0.24947,0.22344,0.17826,0.026522,-0.17605,-0.25399,0.23888,0.15115,0.021628,-0.14818,-0.25512,0.24453,0.17111,0.014474,-0.13877,-0.45656 0.26512,0.21087,-0.11214,-0.16886,-0.23666,0.27375,0.21087,-0.10721,-0.16269,-0.22434,0.26142,0.21087,-0.094883,-0.17625,-0.21694,0.25156,0.20594,-0.062828,-0.15899,-0.22927,0.27005,0.22074,-0.072691,-0.14543,-0.21201 0.24843,0.1121,-0.11513,-0.22116,-0.3272,0.21813,0.17269,-0.039385,-0.16057,-0.23631,0.23328,0.18784,0.021207,-0.13027,-0.25146,0.27872,0.23328,0.021207,-0.069681,-0.26661,0.27872,0.18784,0.066651,-0.19087,-0.25146 0.2448,0.058718,-0.003308,-0.16871,-0.27209,0.2448,0.12074,-0.023983,-0.18939,-0.29276,0.30682,0.20344,-0.086009,-0.086009,-0.33411,0.26547,0.18277,0.079393,-0.14804,-0.18939,0.34817,0.12074,-0.065334,-0.065334,-0.25141 0.32781,0.21266,0.07301,-0.09114,-0.19404,0.32781,0.17836,0.04606,-0.07644,-0.22344,0.27391,0.12691,-0.01274,-0.14259,-0.28959,0.22491,0.10731,-0.04214,-0.20139,-0.30919,0.21756,0.05586,-0.05684,-0.20384,-0.32879 0.32265,0.13668,0.020456,-0.095771,-0.32823,0.18317,0.13668,-0.026035,-0.11902,-0.212,0.34589,0.11344,0.043702,-0.11902,-0.28174,0.25291,0.25291,0.020456,-0.11902,-0.28174,0.25291,0.066947,-0.095771,-0.16551,-0.30498 0.27931,0.20293,-0.12618,-0.14075,-0.21813,0.28282,0.1763,-0.1111,-0.14075,-0.21361,0.29086,0.20796,-0.11663,-0.13522,-0.21964,0.28383,0.1964,-0.10859,-0.14778,-0.22466,0.28835,0.17329,-0.097035,-0.16034,-0.22164 0.276,0.090767,-0.0018524,-0.18709,-0.31058,0.26057,0.21426,-0.063598,-0.20253,-0.27971,0.26057,0.2297,0.059894,-0.12534,-0.26427,0.19882,0.21426,0.044457,-0.079035,-0.27971,0.21426,0.12164,0.044457,-0.15622,-0.27971 0.192,0.15972,0.074177,-0.23893,-0.30187,0.2275,0.15487,0.072563,-0.20342,-0.29219,0.23557,0.19038,0.033828,-0.13079,-0.27444,0.24041,0.16617,0.061266,-0.19697,-0.24377,0.2614,0.18231,0.067721,-0.19051,-0.247 0.26584,0.22105,-0.099585,-0.16678,-0.22689,0.26466,0.21869,-0.076009,-0.16088,-0.221,0.26113,0.21398,-0.077188,-0.16442,-0.23043,0.24934,0.22105,-0.08426,-0.1597,-0.22689,0.24462,0.22341,-0.097227,-0.16913,-0.22336 0.37239,0.041082,-0.10801,-0.1577,-0.30679,0.27299,0.057647,-0.0086139,-0.1577,-0.2074,0.27299,0.20673,-0.041744,-0.12457,-0.27366,0.35582,0.15704,0.0079513,-0.09144,-0.30679,0.2233,0.12391,0.0079513,-0.10801,-0.2074 0.23875,0.12222,0.062664,-0.16693,-0.29295,0.22753,0.16624,0.073885,-0.11514,-0.29554,0.21976,0.14121,0.061801,-0.16348,-0.31453,0.21803,0.16365,0.092012,-0.14276,-0.34992,0.21026,0.18782,0.080791,-0.10047,-0.32489 0.30268,0.16181,-0.039446,-0.1602,-0.26082,0.22218,0.14168,-0.01932,-0.1602,-0.26082,0.36306,0.18193,-0.099822,-0.079696,-0.34133,0.26243,0.14168,0.081306,-0.11995,-0.1602,0.22218,0.14168,-0.039446,-0.20045,-0.28095 0.24544,0.11301,0.024721,-0.10771,-0.28429,0.24544,0.17923,-0.08564,-0.08564,-0.26222,0.31166,0.15715,-0.063568,-0.10771,-0.28429,0.39995,0.090937,-0.063568,-0.08564,-0.17393,0.26751,0.13508,-0.041496,-0.24014,-0.28429 0.27483,0.074225,-0.076232,-0.1431,-0.31028,0.27483,0.090943,0.057508,-0.1431,-0.29356,0.20797,0.20797,0.040791,-0.12638,-0.32699,0.2414,0.1411,0.0073557,-0.17654,-0.1431,0.35842,0.17453,0.024073,-0.15982,-0.27684 0.21945,0.20245,0.047591,-0.11199,-0.30934,0.21284,0.20434,0.052312,-0.16581,-0.28856,0.20528,0.19584,0.084417,-0.12615,-0.29612,0.20056,0.18356,0.030594,-0.14221,-0.31973,0.19962,0.19017,0.033427,-0.18847,-0.31406 0.21772,0.20125,0.058611,-0.12754,-0.29784,0.21772,0.18385,0.061407,-0.13438,-0.28603,0.22736,0.18136,0.060475,-0.13717,-0.29349,0.20125,0.17794,0.045869,-0.13748,-0.38858,0.19442,0.16831,0.050841,-0.14121,-0.30468 0.34211,0.10649,0.003575,-0.12101,-0.23746,0.33128,0.0442,-0.0018417,-0.072258,-0.21038,0.32045,0.063158,0.0089916,-0.091216,-0.24288,0.34211,0.057741,-0.018092,-0.22121,-0.38371,0.26628,0.095658,-0.034341,-0.11559,-0.23205 0.24277,0.090563,0.01446,-0.1758,-0.27093,0.24277,0.14764,0.033486,-0.099695,-0.30898,0.31887,0.033486,0.12861,-0.11872,-0.2519,0.2618,0.20472,-0.0045662,-0.1758,-0.27093,0.28082,0.10959,0.071537,-0.19482,-0.30898 0.22918,0.20116,-0.0089655,-0.16306,-0.24711,0.20116,0.20116,-0.0089655,-0.16306,-0.28914,0.21517,0.24319,0.03306,-0.12103,-0.30315,0.27121,0.21517,-0.0089655,-0.16306,-0.31716,0.17315,0.17315,0.075086,-0.16306,-0.27513 0.40939,0.12015,-0.01335,-0.10235,-0.23585,0.1869,0.1869,-0.0356,-0.057849,-0.2581,0.20915,0.16465,0.0088999,-0.14685,-0.3471,0.2314,0.1424,-0.057849,-0.10235,-0.28035,0.29815,0.16465,-0.01335,-0.19135,-0.28035 0.24317,0.21151,0.0056994,-0.057627,-0.27927,0.27484,0.14818,0.037363,-0.21594,-0.23178,0.24317,0.24317,0.037363,-0.10512,-0.21594,0.25901,0.11652,-0.041796,-0.24761,-0.2951,0.24317,0.13235,-0.025964,-0.15262,-0.32677 0.19701,0.043833,-0.079234,-0.21932,-0.32406,0.26509,0.11846,-0.054359,-0.16826,-0.27954,0.26116,0.13941,-0.028174,-0.15779,-0.25336,0.30699,0.15904,0.025504,-0.10673,-0.24681,0.37114,0.22843,0.056925,-0.055668,-0.19968 0.22817,0.20054,0.007182,-0.13093,-0.29667,0.15911,0.20054,0.07624,-0.19999,-0.31048,0.2696,0.13149,0.07624,-0.18618,-0.29667,0.22817,0.17292,-0.0066295,-0.10331,-0.26905,0.22817,0.20054,0.07624,-0.15856,-0.29667 0.32472,0.21502,-0.064226,-0.17393,-0.20385,0.21502,0.20505,-0.054253,-0.16396,-0.26369,0.30478,0.24494,-0.10412,-0.14401,-0.27366,0.27486,0.13523,-0.064226,-0.12406,-0.23377,0.24494,0.14521,-0.10412,-0.10412,-0.23377 0.33578,0.13234,0.031388,-0.01909,-0.27913,0.32966,0.084925,0.020681,-0.084864,-0.25006,0.36638,0.10328,-0.0037935,-0.10781,-0.25618,0.27001,0.091043,-0.071097,-0.16134,-0.24547,0.28072,0.026799,-0.1124,-0.21335,-0.26842 0.26859,0.10299,-0.042337,-0.14714,-0.25483,0.24775,0.11515,-0.055075,-0.1564,-0.24673,0.25006,0.097783,0.068833,-0.15814,-0.4048,0.39424,0.12152,0.069991,-0.12166,-0.2363,0.24254,0.14352,0.0642,-0.13324,-0.23051 0.21984,0.23327,0.04843,-0.19142,-0.25601,0.21728,0.2256,0.038196,-0.19142,-0.26625,0.21664,0.21536,0.026044,-0.18246,-0.25665,0.22048,0.21664,0.028602,-0.20421,-0.26177,0.21728,0.14884,0.013892,-0.19973,-0.27648 0.25732,0.22498,-0.062985,-0.15115,-0.21613,0.24931,0.22383,-0.086744,-0.15344,-0.22815,0.24473,0.2244,-0.085885,-0.17491,-0.23645,0.25246,0.22383,-0.072718,-0.15287,-0.24218,0.24616,0.22498,-0.095904,-0.16432,-0.24819 0.34369,0.1758,-0.018207,-0.14879,-0.1749,0.35861,0.041487,-0.10775,-0.15625,-0.23087,0.3213,0.030295,-0.11521,-0.14879,-0.24952,0.29145,0.071334,0.022833,-0.17117,-0.22713,0.31757,0.14222,0.030295,-0.15625,-0.24206 0.42721,0.15185,0.016431,-0.09642,-0.25893,0.36853,0.12477,-0.046766,-0.10545,-0.29504,0.18345,0.057058,-0.024195,-0.13705,-0.25893,0.32339,0.066086,-0.0016251,-0.09642,-0.28601,0.24213,0.057058,-0.028709,-0.13253,-0.2499 0.17483,0.13492,0.095,-0.22433,-0.26424,0.35445,0.17483,-0.044706,-0.16445,-0.22433,0.25466,0.15487,-0.064664,-0.16445,-0.30416,0.25466,0.15487,0.055084,-0.18441,-0.2842,0.29458,0.15487,-0.044706,-0.064664,-0.22433 0.23827,0.17105,-0.029289,-0.17342,-0.23172,0.24055,0.17789,-0.031948,-0.15994,-0.21975,0.24131,0.17637,-0.08227,-0.17855,-0.22222,0.24321,0.17371,-0.074104,-0.17646,-0.23134,0.43956,0.17978,-0.088536,-0.16184,-0.22032 0.34061,0.039412,-0.077543,-0.14964,-0.22173,0.37105,0.069852,-0.063124,-0.14323,-0.21052,0.35663,0.057035,-0.085553,-0.13842,-0.20571,0.34061,0.057035,-0.059919,-0.15765,-0.20091,0.37746,0.073057,-0.032683,-0.14804,-0.18809 0.22119,0.089528,-0.091503,-0.058588,-0.30545,0.2541,0.056613,0.040156,-0.17379,-0.32191,0.30347,0.15536,0.056613,-0.12442,-0.30545,0.35285,0.1389,0.040156,-0.10796,-0.30545,0.22119,0.15536,0.056613,-0.075045,-0.27253 0.24472,0.032997,-0.087449,-0.19663,-0.26913,0.2375,0.036463,-0.050189,-0.17901,-0.23851,0.36314,0.11301,-0.036036,-0.12153,-0.22205,0.36834,0.11734,-0.022171,-0.10796,-0.19952,0.39376,0.14218,0.04224,-0.087738,-0.27375 0.19612,0.19247,0.029484,-0.17121,-0.30866,0.19491,0.2022,0.075705,-0.12742,-0.31231,0.19734,0.19247,0.016104,-0.13351,-0.31231,0.21923,0.21437,0.018537,-0.16513,-0.29771,0.22045,0.22167,0.048946,-0.12256,-0.2892 0.31339,0.059165,-0.12573,-0.19506,-0.24128,0.29028,0.036054,-0.033281,-0.079504,-0.24128,0.26717,0.17472,0.036054,-0.14884,-0.31062,0.38273,0.15161,0.012942,-0.14884,-0.2644,0.22095,0.19783,-0.010169,-0.12573,-0.21817 0.21748,0.019355,-0.097913,-0.21086,-0.27937,0.28043,0.084161,-0.086803,-0.15593,-0.22506,0.29031,0.098974,-0.03681,-0.13001,-0.22876,0.344,0.14958,0.060091,-0.12322,-0.25592,0.37857,0.22735,0.016887,-0.096061,-0.24049 0.20249,0.116,0.052955,-0.15816,-0.34142,0.21862,0.12772,0.058819,-0.14057,-0.35461,0.22595,0.15411,0.070548,-0.11271,-0.32823,0.24208,0.16144,0.094005,-0.11271,-0.28571,0.26114,0.14972,0.092539,-0.089255,-0.30477 0.22107,0.17233,0.090456,-0.17662,-0.2741,0.22302,0.15674,0.090456,-0.20197,-0.28774,0.22497,0.14114,0.10215,-0.20392,-0.28969,0.22497,0.16843,0.078759,-0.18052,-0.27994,0.22107,0.15674,0.098254,-0.20781,-0.26825 0.25113,0.073454,-0.070145,-0.097938,-0.26734,0.35701,0.19025,-0.10952,-0.1168,-0.24815,0.34609,0.074777,-0.10456,-0.11845,-0.26271,0.31003,0.17205,-0.096945,-0.12275,-0.25345,0.32392,0.057572,0.028786,-0.12805,-0.18827 0.24141,0.24141,-0.017679,-0.15484,-0.17008,0.30237,0.22617,-0.0024385,-0.20056,-0.24628,0.18045,0.18045,-0.0024385,-0.17008,-0.27676,0.30237,0.10424,-0.12436,-0.1396,-0.29201,0.30237,0.11948,-0.0024385,-0.1396,-0.26152 0.34379,0.077475,0.0048422,-0.14042,-0.18884,0.24695,0.19853,0.0048422,-0.14042,-0.33411,0.24695,0.19853,-0.14042,-0.06779,-0.18884,0.29537,0.077475,-0.019369,-0.14042,-0.3099,0.29537,0.15011,-0.019369,-0.16463,-0.28569 0.22745,0.16751,0.019002,-0.042728,-0.29233,0.23461,0.18988,0.033316,-0.027519,-0.27981,0.23371,0.16125,0.030632,-0.20466,-0.29233,0.24266,0.16393,0.013634,-0.20555,-0.30307,0.24535,0.18362,0.02437,-0.23776,-0.28517 0.23687,0.12291,0.004807,-0.090505,-0.39302,0.24723,0.14985,0.025527,-0.069785,-0.29149,0.24516,0.13949,0.025527,-0.082217,-0.30806,0.24723,0.12913,0.031743,-0.080145,-0.39302,0.25345,0.16228,0.023455,-0.061497,-0.27491 0.27523,0.19491,-0.019277,-0.072824,-0.23347,0.27523,0.14136,-0.046051,-0.20669,-0.28701,0.32878,0.11459,0.061044,-0.099598,-0.26024,0.16814,0.11459,0.11459,-0.17992,-0.28701,0.27523,0.16814,-0.072824,-0.15314,-0.31379 0.36563,0.046215,-0.042879,-0.14809,-0.25424,0.39596,0.085075,-0.040983,-0.11681,-0.22296,0.42439,0.066119,-0.041931,-0.1206,-0.22675,0.25473,0.043372,-0.027714,-0.17462,-0.24666,0.25473,0.083179,-0.017288,-0.11207,-0.22581 0.23621,0.19724,0.080297,-0.09511,-0.3095,0.23621,0.17775,0.021828,-0.07562,-0.32899,0.2557,0.13877,0.060808,-0.23154,-0.27052,0.27519,0.15826,-0.036641,-0.09511,-0.32899,0.17775,0.13877,0.060808,-0.17307,-0.27052 0.27599,0.13695,0.050054,-0.14112,-0.21064,0.31075,0.18909,-0.036845,-0.28016,-0.31492,0.24123,0.067434,-0.0020856,-0.14112,-0.3323,0.25861,0.084813,-0.019465,-0.10636,-0.19326,0.29337,0.18909,0.050054,-0.088984,-0.28016 0.31669,0.2986,-0.0089244,-0.12349,-0.19585,0.32272,0.15992,-0.033044,-0.17173,-0.23203,0.32272,0.093585,-0.087314,-0.1657,-0.23203,0.30463,0.075495,-0.045104,-0.17776,-0.20791,0.25639,0.033285,-0.081284,-0.17173,-0.25012 0.37204,0.03631,-0.018443,-0.15821,-0.2706,0.36195,0.029106,-0.022766,-0.16685,-0.23025,0.3461,0.034869,0.00028818,-0.13948,-0.25043,0.34754,0.040633,-0.022766,-0.11066,-0.2072,0.32881,0.063687,-0.051584,-0.11354,-0.19855 0.26008,0.19356,0.013699,-0.15877,-0.20804,0.25023,0.2108,0.013699,-0.18833,-0.22283,0.26008,0.20095,-0.033114,-0.17355,-0.22776,0.26008,0.20834,-0.11442,-0.1908,-0.22776,0.25023,0.2108,-0.12674,-0.20558,-0.25486 0.25921,0.13187,0.052693,-0.11354,-0.35339,0.25735,0.10548,0.041117,-0.12557,-0.29227,0.27541,0.16752,0.035561,-0.10474,-0.35802,0.25457,0.16706,0.030467,-0.12465,-0.36218,0.25411,0.061028,0.026763,-0.13669,-0.14919 0.28919,0.1991,0.018919,-0.20631,-0.20631,0.35676,0.086486,-0.0036036,-0.16126,-0.38649,0.26667,0.15405,0.086486,-0.16126,-0.18378,0.24414,0.086486,-0.048649,-0.16126,-0.25135,0.28919,0.086486,-0.026126,-0.16126,-0.20631 0.26513,0.16962,0.035911,-0.17421,-0.30792,0.26513,0.035911,0.035911,-0.15511,-0.38433,0.26513,0.16962,0.035911,-0.19331,-0.28882,0.26513,0.093217,0.074115,-0.1169,-0.19331,0.24603,0.20783,0.01681,-0.15511,-0.21241 0.23735,0.18474,-0.10757,-0.2011,-0.21864,0.26658,0.21981,-0.025723,-0.19526,-0.21864,0.2432,0.18474,-0.054953,-0.19526,-0.2011,0.26073,0.21981,-0.054953,-0.17772,-0.21864,0.28996,0.2315,-0.043261,-0.20695,-0.21864 0.26678,0.1543,0.034153,-0.12605,-0.22915,0.26423,0.13385,0.0077373,-0.13286,-0.25727,0.25144,0.15515,0.00092029,-0.12264,-0.25301,0.24974,0.15686,0.038414,-0.12605,-0.23,0.24377,0.1347,0.016258,-0.13798,-0.49331 0.33115,0.0095979,-0.057393,-0.18285,-0.22913,0.35673,0.04492,-0.086625,-0.15605,-0.24497,0.38353,0.079024,-0.04034,-0.15362,-0.21452,0.35673,0.065626,-0.014762,-0.12195,-0.19381,0.33968,0.065626,-0.025724,-0.12073,-0.19016 0.21885,0.15908,0.018379,-0.10863,-0.33276,0.21138,0.1678,0.066941,-0.12357,-0.29416,0.21387,0.16033,0.065695,-0.12233,-0.34895,0.21263,0.17154,0.063205,-0.10863,-0.3477,0.21138,0.17527,0.10803,-0.12357,-0.31408 0.29573,0.14719,-0.068868,-0.14044,-0.20525,0.32543,0.16474,-0.014854,-0.12018,-0.22146,0.26197,0.16339,-0.010803,-0.12558,-0.23496,0.23361,0.15799,-0.052663,-0.16474,-0.25386,0.34299,0.16879,-0.21605,-0.1931,-0.23901 0.2409,0.22343,-0.084169,-0.17854,-0.22748,0.24789,0.21294,-0.056206,-0.18554,-0.23098,0.25838,0.21993,-0.059701,-0.18554,-0.21699,0.25139,0.23391,-0.094655,-0.18204,-0.23447,0.24789,0.21294,-0.010766,-0.18554,-0.21699 0.22841,0.18773,0.10423,-0.19339,-0.27047,0.23698,0.17167,0.11386,-0.18803,-0.27689,0.22199,0.16097,0.083889,-0.18482,-0.28974,0.19844,0.15669,0.073183,-0.21159,-0.28117,0.20379,0.14384,0.08496,-0.18696,-0.28759 0.33995,0.12342,-0.038975,-0.093107,-0.14724,0.28582,0.1956,-0.093107,-0.20137,-0.27355,0.26777,0.17755,-0.038975,-0.20137,-0.27355,0.1956,0.23169,-0.020931,-0.14724,-0.27355,0.24973,0.1956,-0.075063,-0.14724,-0.23746 0.26996,0.097946,-0.10442,-0.23596,-0.17525,0.25478,0.16371,-0.079125,-0.19043,-0.21066,0.33573,0.082768,-0.04877,-0.17525,-0.21066,0.33573,0.16371,-0.063948,-0.17525,-0.22078,0.3509,0.20925,-0.05383,-0.14489,-0.17525 0.32176,0.13765,-0.1031,-0.18099,-0.18807,0.33592,0.14473,-0.13142,-0.16683,-0.19515,0.32176,0.12349,-0.1031,-0.15975,-0.19515,0.30052,0.15182,-0.1031,-0.17391,-0.18099,0.32176,0.16598,-0.1031,-0.1385,-0.20223 0.29791,0.012795,-0.08456,-0.16569,-0.23407,0.28979,0.233,-0.082242,-0.15642,-0.21784,0.27241,0.21214,-0.079924,-0.17148,-0.22248,0.27589,0.20982,-0.059062,-0.16105,-0.23407,0.27936,0.21214,-0.063698,-0.14251,-0.22016 0.21782,0.21399,0.073441,-0.16037,-0.26003,0.19226,0.18843,0.073441,-0.16548,-0.29453,0.19482,0.18971,0.014668,-0.16548,-0.31753,0.21015,0.20887,0.044054,-0.1706,-0.24853,0.22165,0.20632,0.03,-0.15654,-0.34053 0.2444,0.15179,0.027996,-0.28588,-0.30051,0.24537,0.13425,0.027021,-0.24202,-0.28978,0.23757,0.15862,0.0094749,-0.083129,-0.27029,0.23562,0.18396,0.060163,-0.090927,-0.25177,0.24147,0.18591,0.065037,-0.092877,-0.30148 0.18341,0.16414,0.067815,-0.16337,-0.24043,0.26047,0.12561,0.029284,-0.10558,-0.37529,0.22194,0.14488,-0.067044,-0.10558,-0.33676,0.26047,0.14488,0.048549,-0.047779,-0.24043,0.33753,0.14488,0.029284,-0.16337,-0.3175 0.24664,0.055282,-0.0085049,-0.15734,-0.26365,0.31043,0.14033,0.055282,-0.029767,-0.24239,0.35295,0.097806,-0.093554,-0.11482,-0.30618,0.33169,0.16159,0.034019,-0.11482,-0.32744,0.24664,0.097806,-0.11482,-0.11482,-0.24239 0.30703,0.11147,-0.0026075,-0.067794,-0.27965,0.32332,0.11147,0.029986,-0.08409,-0.26335,0.27443,0.14406,0.029986,-0.14928,-0.23076,0.25814,0.062579,0.013689,-0.08409,-0.26335,0.24184,0.22554,-0.14928,-0.21446,-0.34484 0.22869,0.085138,-0.030663,-0.074687,-0.335,0.24879,0.060255,0.0018758,-0.10818,-0.31203,0.30717,0.10524,0.033458,-0.033534,-0.31969,0.27559,0.11002,0.059298,-0.092871,-0.31395,0.30908,0.13203,0.095665,-0.10818,-0.32352 0.25684,0.22591,-0.078182,-0.15812,-0.22171,0.25094,0.22591,-0.094864,-0.16541,-0.22588,0.24955,0.22591,-0.091041,-0.17445,-0.22137,0.2558,0.22418,-0.082352,-0.16298,-0.22276,0.25094,0.22418,-0.099034,-0.16611,-0.22588 0.26055,0.10026,-0.14497,-0.20336,-0.26705,0.30408,0.13741,-0.111,-0.18106,-0.22353,0.26162,0.13316,-0.05792,-0.14709,-0.22353,0.29771,0.12786,-0.00059449,-0.060043,-0.29465,0.34973,0.18624,0.038684,-0.025011,-0.2575 0.37578,0.15218,-0.025668,-0.13279,-0.19103,0.3581,0.088735,-0.066229,-0.14527,-0.20039,0.31962,0.084575,-0.10471,-0.14839,-0.21807,0.34666,0.046094,-0.068309,-0.15463,-0.20351,0.34458,0.0065729,-0.096389,-0.15775,-0.20975 0.24915,0.18814,-0.10141,-0.20309,-0.25054,0.27626,0.18911,-0.05299,-0.18953,-0.23408,0.27626,0.17652,-0.058801,-0.17307,-0.23699,0.25786,0.19201,0.095174,-0.15273,-0.23214,0.27626,0.19492,-0.13724,-0.14402,-0.20503 0.26536,0.20595,-0.011882,-0.1505,-0.24952,0.26536,0.14654,0.047527,-0.031685,-0.24952,0.24556,0.12674,-0.011882,-0.1307,-0.24952,0.22575,0.20595,0.047527,-0.19011,-0.28912,0.20595,0.18615,-0.031685,-0.17031,-0.40794 0.23642,0.1654,0.10149,-0.17016,-0.27492,0.22399,0.16185,0.089058,-0.2039,-0.26426,0.22932,0.1441,0.10149,-0.21277,-0.27847,0.22932,0.1512,0.090834,-0.19857,-0.26781,0.22044,0.16185,0.064201,-0.22875,-0.27136 0.1665,0.23152,0.058136,-0.13947,-0.27461,0.21622,0.1869,0.040287,-0.1484,-0.31031,0.17288,0.1869,0.017339,-0.1433,-0.31669,0.20857,0.20092,0.063235,-0.14202,-0.30139,0.26085,0.20092,0.045387,-0.17645,-0.30394 0.25332,0.22583,-0.090509,-0.16011,-0.22345,0.24949,0.22757,-0.088073,-0.17333,-0.21892,0.2568,0.22583,-0.078677,-0.15872,-0.2224,0.25088,0.22583,-0.095381,-0.16603,-0.22658,0.24949,0.22583,-0.091553,-0.17507,-0.22205 0.20691,0.24326,0.061541,-0.16863,-0.25343,0.23114,0.23114,0.025198,-0.18075,-0.24132,0.23114,0.1948,0.061541,-0.16863,-0.30189,0.1948,0.1948,-0.071718,-0.18075,-0.28978,0.25537,0.18269,-0.035374,-0.18075,-0.24132 0.2173,0.14242,0.031447,-0.17178,-0.33758,0.23869,0.12905,0.074233,-0.13034,-0.34293,0.21863,0.16649,0.05284,-0.12098,-0.3563,0.20927,0.18521,0.079581,-0.13167,-0.27741,0.21596,0.17317,0.096963,-0.071505,-0.29078 0.24923,0.21927,0.0095857,-0.14019,-0.2001,0.2642,0.24923,-0.050325,-0.23006,-0.23006,0.30914,0.18932,0.0095857,-0.2001,-0.24503,0.2642,0.12941,-0.065302,-0.2001,-0.24503,0.24923,0.14438,-0.095257,-0.21508,-0.17015 0.20256,0.18347,0.071027,-0.12203,-0.34478,0.20362,0.19619,0.069967,-0.12309,-0.32675,0.20362,0.18241,0.090121,-0.13264,-0.28856,0.20044,0.16543,0.063602,-0.14855,-0.32887,0.19938,0.18665,0.045569,-0.13264,-0.31614 0.26737,0.0012709,-0.094048,-0.16355,-0.28071,0.23957,0.058859,-0.078161,-0.18142,-0.26284,0.32297,0.11843,-0.048374,-0.15958,-0.26085,0.35872,0.20581,-0.01263,-0.10596,-0.22114,0.30708,0.21772,0.078717,-0.10596,-0.20128 0.24762,0.22245,-0.081414,-0.16233,-0.20458,0.25032,0.21166,-0.088606,-0.17221,-0.21267,0.26291,0.22515,-0.093101,-0.17221,-0.21447,0.26381,0.22874,-0.10029,-0.17941,-0.21267,0.2674,0.21706,-0.10029,-0.1812,-0.22166 0.20182,0.2067,0.064243,-0.18164,-0.288,0.20377,0.2106,-0.0030833,-0.17774,-0.30068,0.21353,0.2106,0.046679,-0.19921,-0.25873,0.22817,0.23792,0.045704,-0.20116,-0.24507,0.26134,0.16377,-0.036258,-0.18164,-0.22165 0.2878,0.10148,-0.041852,-0.18518,-0.25684,0.3308,0.058478,-0.099183,-0.070518,-0.27118,0.30214,0.11581,-0.12785,-0.14218,-0.25684,0.3308,0.20181,-0.099183,-0.041852,-0.24251,0.30214,0.14447,-0.041852,-0.056185,-0.24251 0.36417,0.065169,-0.048656,-0.10132,-0.23723,0.39985,0.065169,-0.075837,-0.097923,-0.24742,0.37096,0.10764,-0.046957,-0.094525,-0.22194,0.3166,0.026095,-0.05715,-0.10132,-0.26441,0.27753,0.026095,-0.060548,-0.10472,-0.25932 -0.26423,-0.14294,0.019761,0.14696,0.30079,-0.29677,-0.16365,-0.021654,0.13217,0.25938,-0.29085,-0.11928,0.0020116,0.14696,0.29783,-0.26719,-0.1459,0.019761,0.13513,0.286,-0.29381,-0.13407,-0.015738,0.14696,0.26234 0.28622,0.045293,-0.057272,-0.15355,-0.23458,0.28792,0.22623,-0.06985,-0.15451,-0.22781,0.29106,0.29566,-0.050257,-0.15814,-0.21717,0.29396,0.049647,-0.071544,-0.15621,-0.23168,0.29735,0.17108,-0.077349,-0.15403,-0.23047 0.21201,0.23177,0.08952,-0.098323,-0.2655,0.22083,0.1804,0.052438,-0.15607,-0.27978,0.19286,0.18223,0.06186,-0.16793,-0.29346,0.23177,0.18466,0.067332,-0.15091,-0.30805,0.23207,0.17128,-0.088596,-0.17826,-0.32416 0.3778,0.054915,-0.0091689,-0.12994,-0.22607,0.39259,0.049985,-0.041211,-0.12748,-0.2236,0.39998,0.064774,-0.026422,-0.12994,-0.21374,0.32111,0.035197,-0.028887,-0.16198,-0.22607,0.26442,0.025338,-0.065858,-0.13241,-0.24332 -0.27041,-0.14174,0.0067305,0.15025,0.31851,-0.26051,-0.13184,-0.0031673,0.11066,0.28387,-0.3001,-0.15658,-0.03781,0.13045,0.27397,-0.27536,-0.14174,-0.013065,0.1354,0.31851,-0.25556,-0.15658,0.011679,0.1354,0.26902 0.26827,0.22002,-0.037313,-0.19815,-0.24639,0.2361,0.22002,-0.037313,-0.19815,-0.23031,0.24414,0.2361,-0.061438,-0.1901,-0.20619,0.22002,0.17981,-0.037313,-0.17402,-0.22227,0.24414,0.25218,-0.045355,-0.20619,-0.23031 0.3041,0.20164,0.017213,-0.12623,-0.24918,0.3246,0.11967,-0.023771,-0.14672,-0.29017,0.20164,0.11967,0.037706,-0.2082,-0.31066,0.3246,0.20164,-0.044263,-0.10574,-0.24918,0.16066,0.07869,0.037706,-0.044263,-0.33115 0.15165,0.14866,0.049264,-0.1839,-0.27732,0.28916,0.1808,0.032076,-0.17344,-0.27807,0.34371,0.18378,0.073179,-0.1697,-0.26536,0.18528,0.17407,0.059727,-0.17045,-0.28629,0.17631,0.17781,0.04478,-0.16896,-0.29675 0.23087,0.15339,-0.079021,-0.23396,-0.23396,0.2696,0.075922,-0.040285,-0.11776,-0.31144,0.23087,0.17276,-0.0015494,-0.2146,-0.23396,0.30834,0.075922,-0.020917,-0.15649,-0.25333,0.34707,0.23087,0.11466,-0.098389,-0.2146 -0.28175,-0.16264,-0.0056307,0.12431,0.28132,-0.27092,-0.13016,-0.038115,0.14055,0.29756,-0.29799,-0.16264,-0.0056307,0.12972,0.27049,-0.27092,-0.15181,0.02144,0.12972,0.28673,-0.24927,-0.11933,-0.011045,0.17304,0.30297 0.38854,0.097343,0.055743,-0.15225,-0.27705,0.28454,0.11814,0.055743,-0.069055,-0.31865,0.22214,0.097343,0.014144,-0.069055,-0.27705,0.24294,0.014144,-0.0066559,-0.15225,-0.31865,0.28454,0.11814,0.055743,-0.089855,-0.31865 0.23418,0.22558,0.096529,-0.17878,-0.2519,0.22128,0.20837,0.040607,-0.17447,-0.26051,0.22558,0.22558,-0.019615,-0.17017,-0.2519,0.22988,0.21267,-0.028219,-0.20889,-0.26051,0.21697,0.19116,-0.071235,-0.20028,-0.2519 -0.27096,-0.15472,-0.030463,0.13388,0.26215,-0.27497,-0.11865,-0.0064134,0.15392,0.31425,-0.29101,-0.11865,0.025653,0.12185,0.29421,-0.29101,-0.15873,-0.022447,0.1419,0.27016,-0.27497,-0.12666,-0.01443,0.1419,0.29421 0.22543,0.21894,-0.077509,-0.16298,-0.2517,0.21786,0.22543,-0.060198,-0.18246,-0.24953,0.22759,0.233,-0.024495,-0.15,-0.24737,0.23625,0.23733,-0.05587,-0.16082,-0.24953,0.24599,0.2568,-0.043969,-0.16947,-0.23871 0.20794,0.12166,0.056946,-0.21268,-0.29896,0.22951,0.1648,0.078516,-0.094046,-0.29896,0.22951,0.20794,0.089301,-0.18033,-0.3421,0.22951,0.1648,0.089301,-0.16954,-0.28818,0.21872,0.13244,0.056946,-0.094046,-0.29896 0.22016,0.14937,0.1077,-0.17217,-0.2957,0.20763,0.15342,0.10733,-0.19466,-0.28574,0.2327,0.14789,0.1077,-0.16775,-0.29238,0.22311,0.14863,0.10364,-0.17659,-0.29975,0.21058,0.14752,0.1018,-0.19688,-0.28758 0.36399,0.32673,-0.050633,-0.19393,-0.23788,0.3038,0.13852,-0.075472,-0.17865,-0.24075,0.26272,0.15763,-0.02866,-0.15381,-0.21973,0.19298,0.12515,-0.025794,-0.1691,-0.2331,0.2331,0.13661,-0.046812,-0.14999,-0.23692 0.26862,0.21865,-0.087018,-0.1698,-0.19919,0.27009,0.21522,-0.10612,-0.16784,-0.20507,0.26715,0.22502,-0.094366,-0.17029,-0.20213,0.26127,0.20543,-0.10955,-0.17372,-0.21291,0.26372,0.20983,-0.11347,-0.1796,-0.21389 -0.25158,-0.14857,0.0059518,0.14616,0.28637,-0.29736,-0.13998,-0.022663,0.12327,0.28637,-0.27447,-0.13998,0.0059518,0.12327,0.3064,-0.26302,-0.13998,-0.0083554,0.15189,0.28637,-0.29164,-0.1314,-0.031247,0.11755,0.30068 0.18817,0.056195,-0.10132,-0.22052,-0.34398,0.24351,0.081738,-0.037463,-0.16944,-0.28864,0.2946,0.15837,0.0051086,-0.10984,-0.28864,0.2946,0.18817,0.013623,-0.10132,-0.23755,0.34994,0.20094,0.081738,-0.075778,-0.18221 0.2861,0.073649,-0.020773,-0.16241,-0.30404,0.23889,0.14447,0.050043,-0.11519,-0.37485,0.35691,0.073649,0.050043,-0.11519,-0.30404,0.21528,0.097254,0.097254,-0.067984,-0.23322,0.26249,0.12086,0.073649,-0.16241,-0.28043 0.33373,0.046031,-0.10888,-0.086751,-0.33019,0.2452,0.090292,0.0017704,-0.10888,-0.26379,0.3116,0.22307,-0.04249,-0.086751,-0.26379,0.26734,0.090292,0.023901,-0.1974,-0.17527,0.26734,0.20094,0.0017704,-0.10888,-0.33019 0.3654,0.045169,-0.1051,-0.13811,-0.17517,0.36019,0.11726,-0.091206,-0.14448,-0.19573,0.3489,0.054434,-0.093233,-0.14535,-0.21542,0.35092,0.059646,-0.099023,-0.14072,-0.21339,0.34571,0.086573,-0.030402,-0.14361,-0.20326 0.21842,0.15168,0.038084,-0.076934,-0.33537,0.2383,0.14032,0.045183,-0.067704,-0.34389,0.24114,0.15807,0.037374,-0.059184,-0.34105,0.22055,0.14529,0.033824,-0.084744,-0.34389,0.23688,0.13535,0.043053,-0.076934,-0.35383 0.35458,0.17788,-0.028272,-0.057723,-0.29333,0.23678,0.08953,-0.028272,-0.14607,-0.20498,0.29568,0.14843,0.08953,-0.087174,-0.32278,0.20733,0.14843,0.060079,-0.23443,-0.29333,0.23678,0.14843,-0.087174,-0.11662,-0.29333 0.21552,0.14137,0.017795,-0.15521,-0.27879,0.24024,0.26495,0.017795,-0.17993,-0.32822,0.21552,0.21552,0.042511,-0.10578,-0.25408,0.24024,0.24024,0.017795,-0.20464,-0.22936,0.21552,0.16609,-0.081067,-0.15521,-0.27879 0.26915,0.15825,0.061856,-0.043863,-0.31438,0.21732,0.13855,0.051491,-0.080139,-0.31749,0.22458,0.13752,0.051491,-0.087394,-0.37138,0.22251,0.15825,0.045273,-0.074957,-0.33822,0.21732,0.13337,0.046309,-0.17342,-0.332 0.25295,0.10416,-0.044639,-0.16864,-0.21823,0.27775,0.079358,0.079358,-0.16864,-0.26783,0.32735,0.054558,-0.019839,-0.094237,-0.29263,0.32735,0.10416,-0.019839,-0.11904,-0.14384,0.35215,0.079358,0.029759,-0.11904,-0.39183 0.33921,0.18535,-0.022807,-0.20382,-0.16762,0.33921,0.122,-0.11331,-0.16762,-0.24002,0.28491,0.1401,-0.14046,-0.16762,-0.23097,0.29396,0.16725,-0.086161,-0.16762,-0.16762,0.31206,0.11295,-0.10426,-0.14046,-0.17667 0.24589,0.17997,0.066707,-0.18678,-0.22939,0.24225,0.15411,0.064522,-0.21336,-0.24286,0.24007,0.14938,0.058694,-0.23485,-0.25415,0.23424,0.18398,0.064157,-0.2374,-0.25051,0.22841,0.16759,0.067435,-0.24068,-0.25743 -0.27944,-0.129,-0.011594,0.16452,0.27459,-0.27944,-0.13267,0.017758,0.14251,0.29661,-0.2831,-0.18404,-0.0079252,0.12049,0.2379,-0.2721,-0.13267,-0.033609,0.15718,0.30394,-0.2831,-0.13267,0.017758,0.1315,0.29661 0.248,0.13919,0.023981,-0.12536,-0.25764,0.2416,0.18826,0.021847,-0.082695,-0.23844,0.23306,0.16266,0.030381,-0.13817,-0.24484,0.21813,0.14772,0.023981,-0.11896,-0.40912,0.22666,0.18826,0.023981,-0.089095,-0.41339 0.18209,0.17966,0.047271,-0.11913,-0.33775,0.18938,0.18452,0.086137,-0.1252,-0.30495,0.19666,0.18938,0.055773,-0.13127,-0.34625,0.2161,0.19302,0.044842,-0.11913,-0.33046,0.2161,0.18452,0.07885,-0.13006,-0.3001 0.19893,0.064402,-0.089962,-0.19603,-0.27451,0.32398,0.054916,-0.055468,-0.18224,-0.24217,0.32398,0.1459,-0.057192,-0.15076,-0.19172,0.40849,0.13253,-0.030459,-0.11454,-0.25295,0.24421,0.22222,0.036375,-0.061073,-0.25683 0.38949,0.070275,-0.086183,-0.14818,-0.20244,0.34735,0.079479,-0.083761,-0.15061,-0.19517,0.39869,0.079963,-0.063416,-0.13898,-0.2005,0.36527,0.077057,-0.091026,-0.13268,-0.21116,0.24514,0.089651,-0.083276,-0.15061,-0.20437 0.23505,0.19143,0.067476,-0.029344,-0.23522,0.22973,0.19036,0.031302,-0.21607,-0.26767,0.2276,0.19409,0.010022,-0.22086,-0.26767,0.22228,0.19462,0.027578,-0.21288,-0.26767,0.22228,0.19143,0.0015108,-0.22032,-0.29906 0.36581,0.14901,-0.028382,-0.12693,-0.28461,0.20814,0.089877,0.070167,-0.14664,-0.30432,0.22785,0.14901,0.030747,-0.16635,-0.24519,0.22785,0.18843,-0.048092,-0.10722,-0.38316,0.32639,0.070167,0.011037,-0.048092,-0.22548 0.24002,0.16285,-0.049394,-0.20375,-0.28093,0.35579,0.24002,-0.010805,-0.14587,-0.26163,0.27861,0.12426,-0.030099,-0.087983,-0.35811,0.24002,0.085668,0.066373,-0.14587,-0.28093,0.16285,0.18214,0.047079,-0.12657,-0.20375 0.27434,0.074129,0.013553,-0.20206,-0.20719,0.2692,0.085423,0.013553,-0.19282,-0.23286,0.26099,0.26407,0.019713,-0.20616,-0.22875,0.25791,0.10493,0.032033,-0.23902,-0.25442,0.25483,0.24764,0.038194,-0.18666,-0.26058 0.17491,0.17491,-0.064038,-0.2313,-0.2313,0.24659,0.17491,-0.064038,-0.11183,-0.30299,0.27049,0.15101,0.031541,-0.15962,-0.2313,0.29438,0.12712,0.055436,-0.15962,-0.32688,0.38996,0.055436,0.031541,-0.064038,-0.2313 0.23192,0.18674,-0.062679,-0.18919,-0.2633,0.23011,0.19035,-0.0066511,-0.21992,-0.26872,0.23192,0.16866,0.13071,-0.18196,-0.27233,0.2283,0.16685,0.096368,-0.15847,-0.27233,0.21927,0.17408,0.096368,-0.17473,-0.28137 0.20795,0.053401,-0.085802,-0.19651,-0.31817,0.21343,0.089572,-0.057303,-0.18445,-0.30283,0.27371,0.10711,-0.001403,-0.15047,-0.27542,0.34715,0.17945,0.033672,-0.06936,-0.24035,0.35373,0.22329,0.055593,-0.050727,-0.20527 0.28061,0.1971,-0.011692,-0.2344,-0.20656,0.26669,0.16926,-0.05345,-0.19264,-0.17872,0.26669,0.16926,-0.039531,-0.20656,-0.20656,0.23886,0.1971,0.0022271,-0.20656,-0.29008,0.23886,0.25277,-0.05345,-0.20656,-0.19264 0.27144,0.061694,-0.047576,-0.14931,-0.19453,0.38322,0.070485,-0.042552,-0.13549,-0.19955,0.37192,0.069229,-0.14177,-0.15308,-0.22844,0.31917,0.086813,-0.11038,-0.14554,-0.22718,0.3895,0.079277,-0.0011053,-0.11917,-0.20709 0.36249,0.20992,-0.028837,-0.097553,-0.12783,0.32522,0.15693,-0.055625,-0.1488,-0.17442,0.31882,0.14878,-0.071348,-0.15288,-0.21635,0.2798,0.11209,-0.11328,-0.18549,-0.24896,0.23554,0.095201,-0.10046,-0.23615,-0.28681 -0.26329,-0.13362,0.0022229,0.12572,0.31714,-0.26947,-0.18919,0.0022229,0.13189,0.27391,-0.25094,-0.1645,-0.010127,0.15659,0.27391,-0.26329,-0.1398,-0.0039518,0.13189,0.32948,-0.27564,-0.17067,0.0022229,0.11954,0.26774 -0.25897,-0.14588,-0.032795,0.17453,0.27819,-0.27781,-0.14588,-0.0045234,0.15568,0.29704,-0.31551,-0.14588,0.014324,0.10856,0.26877,-0.28724,-0.14588,-0.013947,0.15568,0.27819,-0.26839,-0.11761,-0.0045234,0.19338,0.2405 0.36436,0.055722,-0.080755,-0.1434,-0.19931,0.36797,0.055722,-0.070889,-0.13814,-0.20079,0.36896,0.060655,-0.088976,-0.13321,-0.20095,0.33427,0.058353,-0.085852,-0.14998,-0.19487,0.37241,0.058353,-0.072533,-0.14225,-0.19487 -0.28161,-0.10765,0.015144,0.13794,0.30166,-0.25091,-0.16905,-0.005321,0.1277,0.30166,-0.28161,-0.10765,0.015144,0.13794,0.26073,-0.30207,-0.13835,-0.005321,0.1277,0.27096,-0.30207,-0.17928,0.015144,0.13794,0.2812 0.36681,0.21538,0.030287,-0.053844,-0.22211,0.24903,0.06394,-0.070671,-0.10432,-0.27259,0.2322,0.18172,0.06394,-0.18846,-0.28941,0.21538,0.21538,-0.087497,-0.1548,-0.30624,0.24903,0.11442,-0.037018,-0.10432,-0.30624 0.30837,-0.017248,-0.006203,-0.12152,-0.30177,0.29997,0.056092,-0.006203,-0.11931,-0.36363,0.38878,0.062719,0.0039586,-0.10163,-0.20192,0.27744,0.079066,-0.003994,-0.13433,-0.20369,0.3658,0.10116,-0.010179,-0.13035,-0.22136 0.28209,0.22691,0.061362,-0.21455,-0.23662,0.28209,0.1938,-0.004856,-0.18144,-0.22558,0.23794,0.1938,-0.071074,-0.1704,-0.21455,0.22691,0.1938,-0.071074,-0.23662,-0.24765,0.20483,0.22691,-0.071074,-0.14833,-0.23662 -0.28412,-0.14787,-0.038875,0.1337,0.30628,-0.26595,-0.15695,-0.011626,0.14279,0.28811,-0.2932,-0.13879,0.024706,0.11554,0.30628,-0.27503,-0.12062,-0.029792,0.12462,0.2972,-0.2387,-0.15695,0.0065398,0.1337,0.27903 0.34001,0.25244,-0.0026273,-0.16026,-0.21171,0.34768,0.14625,-0.025616,-0.16026,-0.23251,0.34439,0.12107,-0.059552,-0.14056,-0.21062,0.33563,0.052108,-0.080351,-0.16245,-0.21609,0.21193,-0.01248,-0.080351,-0.16902,-0.22704 0.32412,0.17544,-0.082093,-0.18298,-0.23608,0.29757,0.19934,-0.10864,-0.17236,-0.21484,0.3135,0.19137,-0.047578,-0.13785,-0.20953,0.30819,0.21527,-0.1113,-0.15112,-0.23874,0.24182,0.032073,-0.10333,-0.11395,-0.18829 0.23688,0.10926,0.052815,-0.12634,-0.28096,0.22461,0.11172,0.055269,-0.15088,-0.44294,0.24424,0.10681,0.052815,-0.14598,-0.33986,0.2786,0.16571,0.062631,-0.064987,-0.2466,0.25406,0.15098,0.052815,-0.11162,-0.24905 -0.29218,-0.14143,-0.038647,0.13951,0.26285,-0.29218,-0.14143,0.0024668,0.16692,0.28341,-0.29218,-0.16884,-0.0043854,0.16692,0.2697,-0.26477,-0.11402,0.016171,0.18063,0.2423,-0.29218,-0.14828,0.04358,0.15322,0.26285 0.3122,0.13069,0.017244,-0.11889,-0.18696,0.24413,0.08531,-0.050823,-0.14158,-0.36847,0.3122,0.108,0.017244,-0.14158,-0.34578,0.24413,0.17607,-0.0054453,-0.11889,-0.18696,0.19875,0.19875,0.108,-0.16427,-0.32309 0.24442,0.2362,-0.077372,-0.17202,-0.21844,0.24227,0.23513,-0.080229,-0.16987,-0.22952,0.2412,0.23763,-0.082729,-0.15987,-0.21809,0.2412,0.23549,-0.087729,-0.17666,-0.22094,0.23799,0.23549,-0.089872,-0.17344,-0.23023 0.33324,0.069833,-0.11139,-0.19462,-0.22518,0.32692,0.085638,-0.059761,-0.19252,-0.21359,0.35852,0.06878,-0.078726,-0.17777,-0.19041,0.34272,0.10039,-0.11033,-0.16091,-0.1725,0.32692,0.18468,-0.036581,-0.12508,-0.14826 0.21535,0.15204,0.11443,-0.16081,-0.30669,0.2025,0.14562,0.10709,-0.19843,-0.30211,0.21443,0.14379,0.11626,-0.17825,-0.31678,0.21994,0.14929,0.1181,-0.12962,-0.29477,0.20893,0.14562,0.10433,-0.17916,-0.2911 0.11109,0.073049,-0.060113,-0.13621,-0.34546,0.24426,0.11109,-0.0030437,-0.13621,-0.25034,0.30133,0.11109,0.054026,-0.13621,-0.25034,0.30133,0.16816,-0.0030437,-0.11718,-0.28839,0.43449,0.16816,-0.0030437,-0.11718,-0.23132 0.37531,0.049336,-0.027017,-0.12393,-0.18854,0.36356,0.025843,-0.071068,-0.13861,-0.21497,0.34594,0.040526,-0.071068,-0.15623,-0.21203,0.37824,0.0464,-0.053448,-0.13274,-0.21203,0.34888,0.043463,-0.059321,-0.1298,-0.22671 -0.26037,-0.12011,-0.019923,0.14324,0.33217,-0.27755,-0.16019,-0.014198,0.11461,0.27492,-0.25179,-0.14874,-0.014198,0.14897,0.28637,-0.27755,-0.11439,-0.022786,0.13752,0.32072,-0.2661,-0.18309,-0.014198,0.11175,0.27492 0.21974,0.16657,0.10863,-0.1584,-0.32686,0.20182,0.15941,0.10624,-0.17274,-0.32149,0.2054,0.14925,0.10564,-0.16378,-0.31969,0.2066,0.1606,0.09907,-0.13032,-0.28983,0.20062,0.15343,0.093096,-0.15362,-0.29938 0.29674,0.17251,-0.0014123,-0.09818,-0.21325,0.28497,0.16989,-0.0053353,-0.13479,-0.20933,0.28758,0.13851,-0.15179,-0.16356,-0.23025,0.31766,0.17382,-0.15179,-0.17795,-0.21064,0.29281,0.16989,-0.14918,-0.18841,-0.21848 0.18391,0.036148,-0.069621,-0.20494,-0.35271,0.24924,0.10459,-0.040068,-0.14739,-0.30605,0.26169,0.1357,-0.015181,-0.14117,-0.26249,0.3099,0.14503,0.036148,-0.10229,-0.25316,0.37523,0.2228,0.071923,-0.044734,-0.1925 0.22451,0.19517,0.09913,-0.18898,-0.27301,0.20717,0.18049,0.11514,-0.20765,-0.265,0.19917,0.16982,0.091127,-0.20765,-0.27701,0.2005,0.17382,0.085792,-0.20498,-0.27701,0.19116,0.16449,0.096462,-0.21565,-0.27701 0.26711,0.22569,-0.027429,-0.18851,-0.21152,0.26711,0.22109,-0.055043,-0.19771,-0.20231,0.26251,0.22109,-0.013623,-0.18851,-0.20231,0.26251,0.15206,-0.12408,-0.20692,-0.20231,0.28092,0.18427,-0.12868,-0.18851,-0.20692 0.23719,0.24142,-0.08325,-0.15834,-0.23765,0.23613,0.24036,-0.067387,-0.15622,-0.22073,0.23613,0.24459,-0.061041,-0.16891,-0.24928,0.22873,0.23719,-0.08325,-0.1668,-0.24928,0.2319,0.2319,-0.075847,-0.16257,-0.22496 0.15819,0.13138,0.050944,-0.12334,-0.28421,0.25204,0.15819,-0.0026812,-0.20377,-0.33784,0.3861,0.18501,-0.0026812,-0.029494,-0.24399,0.25204,0.077756,-0.0026812,-0.17696,-0.29762,0.29226,0.077756,0.050944,-0.083119,-0.28421 -0.28866,-0.13475,-0.03215,0.13458,0.27994,-0.25019,-0.15613,-0.0064983,0.16023,0.29704,-0.28866,-0.15186,-0.027874,0.11748,0.29704,-0.28011,-0.15186,0.0063273,0.11748,0.31842,-0.24591,-0.13903,0.014878,0.13458,0.27567 -0.25922,-0.14221,-0.043203,0.10081,0.28982,-0.27722,-0.15121,0.010801,0.15481,0.26282,-0.28622,-0.15121,-0.0072005,0.10981,0.28082,-0.25922,-0.12421,-0.016201,0.12781,0.32582,-0.28622,-0.13321,0.019801,0.12781,0.32582 -0.24463,-0.17406,-0.016465,0.13878,0.27991,-0.24933,-0.12937,-0.014113,0.12937,0.3152,-0.27991,-0.16936,-0.0070566,0.10114,0.29167,-0.25874,-0.16701,-0.0094088,0.14584,0.28697,-0.2658,-0.13643,-0.028226,0.13172,0.32931 0.26063,0.21526,-0.072045,-0.17285,-0.23166,0.27071,0.2203,-0.031721,-0.16445,-0.20814,0.26399,0.1783,-0.10565,-0.17957,-0.19974,0.27071,0.21022,-0.15269,-0.16613,-0.20142,0.26399,0.23206,-0.12245,-0.17789,-0.19974 0.34711,0.14376,8.8414e-05,-0.061801,-0.14579,0.32943,0.11503,-0.035277,-0.092746,-0.18558,0.34048,0.053137,-0.05517,-0.13695,-0.24747,0.34048,0.095133,-0.097167,-0.17674,-0.24084,0.30069,0.055347,-0.14137,-0.22095,-0.28284 0.38984,0.07164,-0.073822,-0.15565,-0.18292,0.33529,0.12619,-0.12837,-0.18292,-0.15565,0.29893,0.15346,-0.046548,-0.18292,-0.18292,0.31711,0.15346,-0.073822,-0.18292,-0.21929,0.24438,0.18074,-0.1011,-0.18292,-0.21929 0.20834,0.13868,-0.25605,-0.12466,-0.23509,0.32953,0.14604,0.017488,-0.13032,-0.27021,0.28932,0.15227,-0.011961,-0.12013,-0.25831,0.31368,0.14378,0.019753,-0.12353,-0.23679,0.30462,0.12226,-0.0085629,-0.13485,-0.2753 -0.24512,-0.19515,-0.026486,0.13593,0.26086,-0.27636,-0.13893,-0.013993,0.14842,0.31709,-0.25762,-0.13893,-0.032733,0.11094,0.28585,-0.24512,-0.14517,-0.007746,0.14842,0.28585,-0.27636,-0.15142,-0.026486,0.16092,0.32333 0.22551,0.18684,-0.04978,-0.15273,-0.2699,0.21243,0.19537,0.11346,-0.19141,-0.27161,0.21471,0.19366,0.11972,-0.13908,-0.27218,0.22722,0.19537,-0.070257,-0.13851,-0.279,0.26305,0.20333,-0.044661,-0.20278,-0.26876 0.34534,0.22447,0,-0.069068,-0.32807,0.32807,0.13814,-0.051801,-0.17267,-0.32807,0.27627,0.2072,0.051801,-0.1554,-0.22447,0.22447,0.1036,-0.017267,-0.1036,-0.24174,0.12087,0.12087,-0.017267,-0.18994,-0.24174 0.21963,0.15957,0.073781,-0.20719,-0.26724,0.21319,0.15528,0.10381,-0.20719,-0.26295,0.23464,0.16815,0.10595,-0.20504,-0.26724,0.21748,0.16601,0.084505,-0.22006,-0.25866,0.22177,0.15743,0.1081,-0.2222,-0.27153 0.32452,0.033971,-0.025569,-0.085108,-0.27897,0.33119,0.031113,-0.031761,-0.083203,-0.28707,0.32643,0.0354,-0.032237,-0.084156,-0.27373,0.35215,0.045403,-0.010803,-0.074153,-0.26563,0.36406,0.045403,-0.016519,-0.068437,-0.2723 0.26492,0.030586,-0.10508,-0.20375,-0.29008,0.26492,0.20325,-0.068079,-0.20375,-0.25308,0.26492,0.17859,0.00592,-0.22841,-0.25308,0.24025,0.21559,0.018253,-0.15441,-0.20375,0.28958,0.20325,0.055253,-0.043413,-0.22841 0.22507,0.21938,-0.034919,-0.093749,-0.29491,0.23267,0.22507,-0.044408,-0.078567,-0.3025,0.22507,0.20989,-0.02543,-0.10134,-0.29301,0.21179,0.20989,-0.021634,-0.095647,-0.31389,0.21938,0.22318,-0.082363,-0.11273,-0.3063 0.35047,0.16705,-0.0022575,-0.12924,-0.28444,0.3928,0.22349,0.011852,-0.12924,-0.19979,0.2376,0.096507,-0.072804,-0.24211,-0.19979,0.26582,0.04007,-0.086913,-0.18568,-0.17157,0.27993,0.096507,-0.058694,-0.14335,-0.25622 -0.27559,-0.133,-0.042259,0.15867,0.31422,-0.308,-0.13948,0.035518,0.1133,0.28181,-0.28207,-0.15244,-0.0098518,0.12626,0.22996,-0.28207,-0.11356,-0.0033704,0.12626,0.30774,-0.28855,-0.10059,0.0095926,0.13274,0.29478 -0.31107,-0.14694,-0.014069,0.10317,0.29857,-0.26418,-0.14694,0.0015632,0.15788,0.30638,-0.28762,-0.13912,0.009379,0.15006,0.30638,-0.25636,-0.13912,0.009379,0.1188,0.27512,-0.26418,-0.16257,0.017195,0.1188,0.25949 0.19181,0.04903,-0.090011,-0.094281,-0.15139,0.32951,0.20622,-0.089744,-0.088943,-0.29924,0.32524,0.14804,-0.081738,-0.097483,-0.2915,0.31884,0.13096,-0.056652,-0.10069,-0.29017,0.33031,0.13336,-0.055851,-0.091612,-0.28403 -0.27985,-0.18259,-0.014006,0.1481,0.26481,-0.24743,-0.13072,-0.039942,0.13513,0.31668,-0.27985,-0.15017,-0.0010374,0.13513,0.31668,-0.25391,-0.16962,-0.014006,0.12216,0.24536,-0.2604,-0.12423,-0.014006,0.16106,0.31668 0.22778,0.20617,0.060294,-0.10719,-0.3341,0.20076,0.18996,0.09271,-0.13961,-0.31789,0.271,0.17375,0.09271,-0.074773,-0.31789,0.19536,0.15754,0.060294,-0.11799,-0.3287,0.19536,0.09271,-0.020746,-0.14501,-0.31249 0.31213,0.14065,-0.11574,-0.16069,-0.19732,0.32378,0.13066,-0.077449,-0.16069,-0.18233,0.34709,0.12566,-0.06746,-0.14737,-0.16735,0.34542,0.11401,-0.10409,-0.18067,-0.184,0.35042,0.070723,-0.14404,-0.184,-0.18733 0.35691,0.047848,-0.032232,-0.13859,-0.20616,0.36191,0.045346,-0.052253,-0.11857,-0.21992,0.34064,0.26557,-0.040991,-0.13609,-0.22242,0.30686,0.03033,-0.058509,-0.15861,-0.24244,0.2981,0.022823,-0.071021,-0.14109,-0.23744 0.30397,0.24175,-0.018439,-0.16833,-0.21923,0.287,0.22478,-0.055205,-0.19661,-0.22489,0.31528,0.19367,-0.072173,-0.1457,-0.22772,0.31811,0.021154,-0.07783,-0.13439,-0.19661,0.287,0.018326,-0.083486,-0.1655,-0.22489 0.1917,0.15109,0.095703,-0.17937,-0.26244,0.22309,0.14924,0.10124,-0.15722,-0.28829,0.21385,0.15109,0.10124,-0.17752,-0.29567,0.21016,0.16216,0.099395,-0.22737,-0.2846,0.23416,0.16032,0.13447,-0.21814,-0.28829 0.26276,0.19006,0.12948,-0.16131,-0.3269,0.29103,0.14362,0.099192,-0.11284,-0.32286,0.25872,0.085056,0.048707,-0.09063,-0.3269,0.21834,0.07294,0.0022617,-0.12294,-0.30468,0.26276,0.064862,-0.0098546,-0.062358,-0.28853 0.25508,0.15247,-0.11209,-0.18213,-0.25976,0.25553,0.18281,0.086443,-0.16785,-0.2544,0.25062,0.17701,-0.14019,-0.18748,-0.25173,0.24883,0.16318,0.087781,-0.18302,-0.2495,0.25017,0.19976,0.08555,-0.16875,-0.23834 0.21295,0.24917,0.03187,-0.11299,-0.26993,0.22502,0.18881,0.080159,-0.18543,-0.26993,0.18881,0.16466,0.056014,-0.18543,-0.31822,0.2371,0.15259,0.056014,-0.13714,-0.29408,0.18881,0.16466,0.1043,-0.22164,-0.30615 -0.30947,-0.093254,0.010153,0.16996,0.24517,-0.30947,-0.14026,0.00075205,0.16056,0.24517,-0.26247,-0.14026,0.019553,0.16996,0.30157,-0.30007,-0.14966,-0.02745,0.13236,0.24517,-0.28127,-0.14966,0.019553,0.16996,0.27337 0.29616,0.12986,-0.033771,-0.20007,-0.23045,0.27164,0.24979,-0.092935,-0.19581,-0.23098,0.25938,0.11281,0.10694,-0.2006,-0.22246,0.26258,0.13413,0.10694,-0.2006,-0.23152,0.26898,0.14372,-0.074813,-0.19634,-0.23258 0.18903,0.060115,-0.089155,-0.2045,-0.34359,0.21956,0.080471,-0.048445,-0.20111,-0.28931,0.30438,0.1144,-0.0077349,-0.12987,-0.27914,0.33491,0.19921,0.03976,-0.075585,-0.21468,0.33491,0.21956,0.060115,-0.089155,-0.18415 -0.29163,-0.12889,0.0013019,0.1559,0.25355,-0.29977,-0.16144,0.0013019,0.098946,0.29423,-0.27536,-0.12889,0.03385,0.14777,0.2861,-0.27536,-0.10448,0.0013019,0.18032,0.2861,-0.31604,-0.12889,0.0013019,0.098946,0.26982 0.19944,0.081197,-0.037051,-0.13559,-0.19471,0.31769,0.16003,0.002365,-0.21442,-0.13559,0.27828,0.19944,-0.017343,-0.13559,-0.25384,0.31769,0.16003,-0.017343,-0.17501,-0.33267,0.19944,0.21915,0.022073,-0.1553,-0.35238 -0.29352,-0.14236,-0.011818,0.13934,0.26301,-0.27978,-0.14236,0.029407,0.1256,0.30424,-0.25229,-0.14236,0.0087946,0.18056,0.26301,-0.31413,-0.14236,-0.059913,0.11186,0.30424,-0.25229,-0.14236,0.036278,0.11873,0.2905 0.28329,0.18894,-0.11706,-0.16919,-0.19134,0.28537,0.20275,-0.12071,-0.16189,-0.18822,0.30909,0.18424,-0.12983,-0.16528,-0.19134,0.28303,0.17356,-0.12306,-0.17284,-0.18978,0.29528,0.19571,-0.12306,-0.16815,-0.18952 -0.30938,-0.1697,-0.03003,0.14456,0.27551,-0.257,-0.13479,-0.0038411,0.17948,0.24059,-0.257,-0.12606,0.0048886,0.17075,0.31916,-0.29192,-0.17843,0.022348,0.1271,0.26678,-0.26573,-0.14352,0.0048886,0.13583,0.27551 0.35664,0.055676,-0.086433,-0.16028,-0.19377,0.37596,0.054388,-0.074412,-0.14268,-0.19548,0.3605,0.055676,-0.083428,-0.14482,-0.1942,0.34805,0.058252,-0.083428,-0.14912,-0.18818,0.37252,0.054388,-0.061103,-0.14225,-0.19248 -0.29469,-0.1312,0.0016349,0.12425,0.26731,-0.22317,-0.16186,-0.02902,0.10382,0.3184,-0.27426,-0.12098,-0.039238,0.16513,0.28775,-0.29469,-0.1312,-0.049456,0.15491,0.28775,-0.27426,-0.14142,0.0016349,0.16513,0.28775 0.35681,0.12203,-0.049787,-0.15163,-0.19905,0.3607,0.01474,-0.04279,-0.14852,-0.21771,0.36381,0.030289,-0.069223,-0.14075,-0.2286,0.35992,0.023292,-0.021799,-0.14774,-0.2045,0.35448,0.016295,-0.044345,-0.13297,-0.20294 0.20437,0.1799,-0.010962,-0.2214,-0.27033,0.22884,0.16032,0.037976,-0.2214,-0.26544,0.21415,0.19947,0.057551,-0.2214,-0.23608,0.22884,0.21415,0.072233,-0.18225,-0.26055,0.21905,0.20926,0.11138,-0.19203,-0.25565 0.31463,0.1454,0.054153,-0.13613,-0.25077,0.32087,0.17035,0.056493,-0.13613,-0.22582,0.27641,0.19063,-0.088561,-0.14705,-0.23595,0.28655,0.15008,-0.10104,-0.14861,-0.25779,0.30995,-0.065945,-0.09558,-0.14081,-0.24531 0.26038,-0.024276,-0.056502,-0.16929,-0.21763,0.26575,0.077771,-0.035018,-0.17466,-0.21763,0.41614,0.24964,0.01332,-0.12632,-0.23374,0.35169,0.11537,-0.04576,-0.17466,-0.21226,0.26575,0.12074,-0.035018,-0.16392,-0.24985 0.20426,0.1804,0.013363,-0.15368,-0.17754,0.39516,0.1804,0.013363,-0.12981,-0.27299,0.25199,0.13268,0.037226,-0.082087,-0.32071,0.29971,0.013363,-0.082087,-0.12981,-0.27299,0.25199,0.13268,-0.058225,-0.082087,-0.34458 -0.30755,-0.13889,-0.039684,0.15874,0.26787,-0.30755,-0.11905,0.019842,0.12897,0.29763,-0.27779,-0.10913,-0.029763,0.11905,0.27779,-0.26787,-0.12897,-0.029763,0.15874,0.2381,-0.28771,-0.12897,0.029763,0.17858,0.29763 0.079237,0.14809,-0.0047755,-0.22334,-0.28398,0.41024,0.13861,0.034388,-0.15132,-0.26503,0.33191,0.14114,-0.052151,-0.12543,-0.25618,0.23716,0.16641,-0.043939,-0.14059,-0.23344,0.30411,0.14683,0.0015413,-0.1229,-0.2366 -0.24542,-0.18173,0.019956,0.12611,0.30656,-0.27727,-0.13927,-0.064964,0.15795,0.27472,-0.27727,-0.10742,-0.011889,0.15795,0.29595,-0.25604,-0.14989,0.030572,0.13672,0.28533,-0.27727,-0.17112,-0.043734,0.12611,0.28533 0.25219,0.24436,-0.097586,-0.19409,-0.26611,0.24436,0.24044,-0.092687,-0.18283,-0.25386,0.23799,0.2326,-0.029001,-0.14804,-0.23818,0.2277,0.22231,-0.062804,-0.14902,-0.22545,0.22672,0.21349,-0.062314,-0.10885,-0.23132 0.25533,0.25372,0.00076848,-0.16573,-0.22737,0.25693,0.26173,-0.052865,-0.16734,-0.22497,0.26333,0.27294,-0.024047,-0.16814,-0.22497,0.26813,0.069611,-0.043259,-0.17774,-0.24418,0.27614,0.061606,-0.091288,-0.18174,-0.24658 0.19204,0.1764,0.051294,-0.12073,-0.29275,0.19204,0.22331,-0.026898,-0.13637,-0.24583,0.30151,0.19204,0.035655,-0.12073,-0.29275,0.1764,0.20768,-0.089451,-0.12073,-0.29275,0.25459,0.25459,-0.042536,-0.18328,-0.29275 0.14078,0.1466,0.055365,-0.1077,-0.29018,0.16019,0.14272,0.06313,-0.082465,-0.31153,0.21649,0.17184,0.035952,-0.10188,-0.33871,0.27084,0.20096,0.020422,-0.15623,-0.32512,0.31355,0.18931,0.03207,-0.11352,-0.33289 0.20368,0.18473,0.058375,-0.21328,-0.2891,0.17841,0.17209,0.077328,-0.17538,-0.27646,0.23527,0.21632,0.077328,-0.15643,-0.31437,0.21,0.17209,0.064693,-0.19433,-0.31437,0.23527,0.19736,0.039422,-0.19433,-0.19433 -0.27025,-0.14514,-0.020019,0.15515,0.29277,-0.24523,-0.13262,-0.032531,0.19268,0.26775,-0.28277,-0.13262,-0.057554,0.18017,0.26775,-0.29528,-0.15765,0.030028,0.11761,0.24273,-0.25774,-0.15765,-0.032531,0.15515,0.3178 -0.29234,-0.1553,0.042633,0.16444,0.2558,-0.28473,-0.11724,-0.025884,0.14921,0.27864,-0.28473,-0.16292,0.019794,0.095924,0.3167,-0.25427,-0.14008,0.027407,0.1416,0.24818,-0.30756,-0.13247,-0.010658,0.13399,0.29386 -0.26363,-0.16916,0.012498,0.14329,0.33222,-0.26363,-0.12556,-0.0311,0.14329,0.25956,-0.27089,-0.1401,0.0052318,0.12876,0.31042,-0.24183,-0.15463,0.012498,0.13603,0.31042,-0.28543,-0.17643,-0.0311,0.092429,0.26682 0.30288,0.18589,-0.14553,-0.17545,-0.22493,0.29114,0.18015,-0.13882,-0.17615,-0.21794,0.28289,0.17442,-0.098847,-0.15895,-0.215,0.28108,0.18435,-0.10667,-0.16231,-0.20969,0.265,0.16142,0.083287,-0.15965,-0.20256 0.30973,0.18874,-0.061878,-0.18287,-0.17423,0.31838,0.21467,-0.087804,-0.18287,-0.21744,0.23195,0.18874,-0.13101,-0.15694,-0.19151,0.24924,0.2406,-0.087804,-0.15694,-0.20879,0.24924,0.18874,-0.13966,-0.15694,-0.24336 0.3004,0.067005,-0.14275,-0.2107,-0.2432,0.3004,0.18813,-0.12503,-0.19298,-0.22548,0.30926,0.12018,-0.077758,-0.19298,-0.19889,0.32108,0.072913,0.013826,-0.17821,-0.20184,0.32403,0.17927,0.04337,-0.062987,-0.18707 -0.25882,-0.16848,0.012196,0.159,0.26063,-0.27012,-0.15719,0.023488,0.091244,0.31709,-0.25882,-0.15719,-0.010389,0.091244,0.24934,-0.2927,-0.12331,0.023488,0.19288,0.29451,-0.30399,-0.15719,0.023488,0.13641,0.28322 -0.28993,-0.095779,-0.012573,0.13535,0.29251,-0.29917,-0.10502,0.0059169,0.13535,0.30176,-0.27144,-0.16974,-0.040309,0.11686,0.27402,-0.2437,-0.16049,-0.049554,0.13535,0.27402,-0.27144,-0.16049,0.042897,0.14459,0.31101 0.2863,0.078603,-0.017254,-0.3208,-0.19299,0.23837,0.09458,-0.0012781,-0.19299,-0.24092,0.27032,0.09458,0.078603,-0.20897,-0.20897,0.30227,0.20641,0.030675,-0.14506,-0.22495,0.31825,0.14251,0.046651,-0.14506,-0.28885 0.3538,0.18761,-0.10735,-0.15579,-0.21211,0.26165,0.20651,-0.11641,-0.14791,-0.20502,0.2711,0.20927,-0.12468,-0.1491,-0.19714,0.2648,0.18919,-0.1231,-0.1554,-0.21486,0.2522,0.19864,-0.12901,-0.15028,-0.20659 0.23351,0.21625,-0.10047,-0.17617,-0.23725,0.24148,0.22421,-0.091842,-0.16355,-0.21734,0.24812,0.23085,-0.095162,-0.1775,-0.21866,0.25741,0.23749,-0.093834,-0.17152,-0.21468,0.25941,0.24812,-0.084538,-0.1516,-0.20273 0.32249,0.041249,-0.0056248,-0.14625,-0.3103,0.32249,0.135,-0.029062,-0.23999,-0.28687,0.27562,0.20531,0.017812,-0.075935,-0.21656,0.25218,0.11156,0.041249,-0.19312,-0.26343,0.18187,0.18187,0.088122,-0.21656,-0.19312 0.19235,0.12213,0.035055,-0.21494,-0.33853,0.21202,0.15865,0.079997,-0.2037,-0.30482,0.21202,0.15022,0.096851,-0.18404,-0.2992,0.22887,0.16707,0.1137,-0.14191,-0.25707,0.25134,0.19235,0.12213,-0.15033,-0.24022 0.26681,0.19678,-0.11835,-0.13586,-0.17087,0.37186,0.12675,-0.11835,-0.15336,-0.2409,0.31933,0.14426,0.021709,-0.18838,-0.13586,0.30183,0.12675,-0.065828,-0.17087,-0.18838,0.30183,0.074231,-0.083335,-0.18838,-0.29342 0.32803,0.1141,-0.11568,-0.17907,-0.17907,0.30426,0.20126,-0.08399,-0.21077,-0.17907,0.31219,0.13787,-0.099837,-0.17907,-0.17115,0.29634,0.15372,-0.099837,-0.17907,-0.16322,0.28049,0.21711,-0.10776,-0.17907,-0.21869 0.24284,0.19847,-0.12689,-0.18235,-0.20453,0.25762,0.18922,-0.12134,-0.19344,-0.21932,0.27796,0.19662,-0.030761,-0.17865,-0.22672,0.26132,0.19477,-0.056642,-0.19159,-0.23411,0.26132,0.18922,0.11713,-0.18974,-0.23041 0.19572,0.18229,0.091012,-0.11034,-0.26203,0.20914,0.17424,0.081616,-0.11303,-0.29156,0.21988,0.17827,0.065507,-0.08618,-0.28082,0.2333,0.15276,0.044029,-0.16135,-0.31438,0.23733,0.1192,0.031948,-0.16404,-0.43251 -0.24985,-0.15109,0.03407,0.15751,0.20689,-0.26219,-0.15109,0.021726,0.14517,0.28095,-0.32391,-0.1264,0.0093816,0.13282,0.25627,-0.31157,-0.16344,-0.015307,0.13282,0.31799,-0.26219,-0.13875,0.0093816,0.13282,0.31799 0.17933,0.17897,0.032645,-0.12977,-0.31085,0.21848,0.2214,0.045448,-0.13453,-0.29292,0.21628,0.10178,0.05313,-0.11404,-0.3039,0.21957,0.073615,0.029718,-0.10709,-0.32292,0.40833,0.10361,0.03484,-0.091364,-0.30975 0.27813,0.082952,0.058554,-0.087831,-0.33181,0.30253,0.034157,0.009759,-0.16102,-0.3562,0.25373,0.10735,0.10735,-0.063434,-0.20982,0.37572,0.10735,-0.014639,-0.11223,-0.25861,0.20494,0.15614,-0.039036,-0.13663,-0.30741 0.22301,0.14112,0.11083,-0.0967,-0.31545,0.22077,0.13103,0.1142,-0.1326,-0.31433,0.24657,0.1243,0.11083,-0.12699,-0.32443,0.21741,0.11981,0.082789,-0.15279,-0.33452,0.21628,0.11757,0.10186,-0.15728,-0.3233 0.30979,0.090186,0.0023425,-0.07086,-0.26119,0.20731,0.046264,0.031624,-0.085501,-0.24655,0.30979,0.060905,-0.07086,-0.10014,-0.27583,0.383,0.046264,0.060905,-0.11478,-0.31975,0.383,0.060905,-0.041579,-0.11478,-0.29047 0.28211,-0.0252,-0.10605,-0.13932,-0.26024,0.27138,0.22165,-0.082798,-0.13861,-0.24915,0.28712,0.22058,-0.072066,-0.12859,-0.24593,0.28497,0.21414,-0.07457,-0.12609,-0.25452,0.27317,0.22165,-0.042014,-0.12466,-0.20694 -0.28906,-0.11112,-0.0023726,0.1558,0.31397,-0.26929,-0.15066,-0.0023726,0.16568,0.2942,-0.30883,-0.14077,-0.03203,0.10637,0.28431,-0.30883,-0.091344,-0.03203,0.11626,0.2942,-0.24952,-0.13089,-0.0023726,0.1558,0.23488 0.35991,0.21932,0.06359,-0.057533,-0.20677,0.32098,0.19336,0.050612,-0.096466,-0.20677,0.27339,0.1328,0.0030281,-0.16568,-0.25003,0.22581,0.07873,-0.068348,-0.17649,-0.32141,0.18471,0.076567,-0.096466,-0.21759,-0.31925 0.40659,0.046475,-0.064029,-0.12052,-0.21407,0.3268,0.0493,-0.075327,-0.12899,-0.21407,0.33103,0.030588,-0.061205,-0.13146,-0.21125,0.4087,0.048594,-0.058733,-0.12052,-0.21302,0.33245,0.050712,-0.073914,-0.12722,-0.2169 0.26128,0.21343,-0.097622,-0.14548,-0.19931,0.22539,0.19548,-0.085659,-0.16342,-0.22324,0.2553,0.24932,-0.12155,-0.18137,-0.22922,0.27923,0.21343,-0.12155,-0.16342,-0.19333,0.24932,0.23137,-0.031823,-0.13949,-0.27708 0.33473,0.17234,0.075597,-0.090247,-0.42885,0.26217,0.15506,0.047957,-0.069516,-0.3321,0.26217,0.13088,0.037591,-0.10061,-0.19735,0.24144,0.11015,0.0064956,-0.14898,-0.25955,0.18616,0.10324,-0.062606,-0.14898,-0.28719 0.28067,0.094931,-0.070167,-0.090804,-0.17335,0.28067,0.053657,-0.028892,-0.028892,-0.31781,0.28067,0.13621,-0.0082549,-0.15272,-0.31781,0.28067,0.094931,0.012382,-0.070167,-0.31781,0.26003,0.21875,0.094931,-0.17335,-0.33845 0.27262,0.11448,0.007934,-0.12073,-0.36196,0.30881,0.14866,-0.005468,-0.10933,-0.35459,0.29876,0.15536,-0.033612,-0.12073,-0.1281,0.3135,-0.028922,-0.044334,-0.11469,-0.19846,0.31216,0.14463,-0.063767,-0.11469,-0.27753 0.39035,0.13081,-0.076824,-0.14604,-0.18064,0.35575,0.078901,-0.14604,-0.18064,-0.23255,0.25193,0.18272,-0.024916,-0.18064,-0.14604,0.30384,0.20002,-0.076824,-0.14604,-0.23255,0.23463,0.13081,-0.076824,-0.18064,-0.23255 0.19835,0.14723,-0.031695,-0.10838,-0.23618,0.27503,0.22391,0.044987,-0.23618,-0.26174,0.32616,0.12167,-0.057256,-0.23618,-0.26174,0.22391,0.24947,0.044987,-0.10838,-0.31286,0.27503,0.044987,0.019426,-0.10838,-0.23618 0.24416,0.2118,-0.005178,-0.16626,-0.24716,0.25593,0.2677,0.0058547,-0.1942,-0.23613,0.23092,0.24343,0.04263,-0.17582,-0.24275,0.21253,0.21253,-0.071374,-0.18023,-0.25084,0.17723,0.19341,-0.066961,-0.2045,-0.25672 0.2444,0.29867,-0.066632,-0.18562,-0.26912,0.21518,0.2277,-0.062457,-0.16057,-0.26494,0.30285,0.20265,-0.077069,-0.13969,-0.25033,0.19013,0.18595,-0.062457,-0.15639,-0.23154,0.23814,0.20683,-0.037407,-0.11673,-0.23154 0.35199,0.097953,0.0042473,-0.25908,-0.23785,0.35677,0.092113,0.0090255,-0.27714,-0.26891,0.25935,0.10273,0.0084946,-0.060258,-0.22484,0.2559,0.11123,0.045393,-0.061055,-0.25192,0.25537,0.088397,0.053357,-0.20387,-0.2474 0.28917,0.16436,-0.17166,-0.17166,-0.17166,0.30357,0.16436,-0.075653,-0.17166,-0.21486,0.22197,0.16436,-0.042051,-0.18606,-0.20046,0.31797,0.22197,-0.11886,-0.17166,-0.20046,0.28917,0.22197,-0.075653,-0.20046,-0.18606 0.16804,0.072996,-0.0030415,-0.17413,-0.23115,0.39615,0.13002,0.034977,-0.06007,-0.26917,0.32012,0.14903,-0.0030415,-0.23115,-0.25016,0.26309,0.14903,-0.0030415,-0.19313,-0.26917,0.20606,0.18705,0.072996,-0.23115,-0.23115 0.19737,0.21171,0.12565,-0.13253,-0.29031,0.22605,0.19737,0.053932,-0.17557,-0.29031,0.22605,0.15434,0.12565,-0.14688,-0.24728,0.2404,0.18302,0.053932,-0.17557,-0.319,0.16868,0.13999,-0.017786,-0.17557,-0.33334 -0.27995,-0.14286,0.028516,0.12448,0.30271,-0.25253,-0.14286,0.0079517,0.17932,0.26158,-0.31423,-0.14286,-0.060597,0.11077,0.30271,-0.25253,-0.14286,0.035371,0.11763,0.289,-0.27995,-0.17028,0.0079517,0.1519,0.26158 0.23383,0.14229,0.09652,-0.15775,-0.25946,0.22111,0.14737,0.09652,-0.15775,-0.23657,0.20586,0.16263,0.10161,-0.20352,-0.28743,0.20331,0.155,0.093978,-0.16792,-0.37133,0.21603,0.18297,0.053295,-0.12215,-0.34845 0.31331,0.20012,-0.02626,-0.094173,-0.32055,0.17748,0.17748,-0.094173,-0.13945,-0.29791,0.29067,0.15484,-0.071535,-0.16209,-0.25264,0.29067,0.24539,-0.02626,-0.11681,-0.18472,0.29067,0.019016,0.041653,-0.20736,-0.20736 0.32455,0.10407,-0.028222,-0.094367,-0.35895,0.23636,0.08202,-0.0061736,-0.072319,-0.2928,0.21431,0.17021,0.037923,-0.028222,-0.20461,0.28046,0.25841,-0.028222,-0.13846,-0.35895,0.25841,0.08202,-0.0061736,-0.13846,-0.2928 0.13748,0.1142,-0.15734,-0.14958,-0.26596,0.19955,0.17627,-0.056482,-0.1651,-0.25044,0.27713,0.13748,-0.017689,-0.18062,-0.25044,0.3392,0.21506,0.028861,-0.13407,-0.24268,0.34696,0.2461,0.028861,-0.14958,-0.22717 0.39415,0.12484,0.026234,-0.14695,-0.27995,0.27192,0.22884,0.010905,-0.12292,-0.27787,0.18036,0.17829,0.039493,-0.10759,-0.27787,0.18243,0.17332,0.02582,-0.11298,-0.28492,0.17912,0.17663,-0.12789,-0.14115,-0.31226 0.38239,0.051394,-0.063872,-0.12415,-0.20029,0.37075,0.031302,-0.061757,-0.14318,-0.19606,0.35806,0.046106,-0.063872,-0.12415,-0.20346,0.36547,0.048221,-0.070217,-0.14001,-0.20769,0.35383,0.014382,-0.06493,-0.14953,-0.20875 0.12106,0.057324,0.017707,-0.087364,-0.24928,0.2623,0.12106,0.036654,-0.090809,-0.25961,0.32086,0.11072,0.050434,-0.092531,-0.30267,0.30536,0.11244,0.036654,-0.095976,-0.36813,0.30364,0.16412,0.053879,-0.16315,-0.36468 -0.26885,-0.18564,0.0085055,0.14718,0.31359,-0.26885,-0.14866,-0.0099847,0.10096,0.2951,-0.25036,-0.11168,-0.01923,0.15643,0.31359,-0.2596,-0.10244,-0.03772,0.13794,0.30435,-0.27809,-0.1764,-0.01923,0.082466,0.27661 0.22611,0.13761,-0.083628,-0.21637,-0.20531,0.28142,0.1708,-0.12788,-0.19425,-0.20531,0.25929,0.19292,-0.072566,-0.22743,-0.19425,0.35885,0.20398,-0.039381,-0.12788,-0.17212,0.28142,0.21504,-0.050442,-0.20531,-0.20531 -0.26761,-0.17184,0.060747,0.15652,0.26597,-0.2813,-0.17184,0.00602,0.11547,0.3207,-0.24025,-0.14448,0.019702,0.15652,0.27965,-0.24025,-0.17184,-0.048707,0.1702,0.26597,-0.30866,-0.14448,-0.021344,0.12916,0.26597 0.25488,0.12115,0.0056085,-0.12941,-0.5163,0.28603,0.10298,0.0121,-0.12422,-0.23327,0.27565,0.15491,-0.0073742,-0.099551,-0.2112,0.25488,0.12894,0.013398,-0.12811,-0.2138,0.30032,0.11077,0.0095033,-0.12941,-0.23847 0.24789,0.13107,0.0056802,-0.10257,-0.18455,0.42902,0.11928,0.027115,-0.081131,-0.22689,0.24575,0.11607,0.0013933,-0.082738,-0.27029,0.22324,0.12036,0.0072878,-0.25261,-0.2869,0.26826,0.1091,0.020685,-0.28047,-0.30405 0.27348,0.18976,0.0092781,-0.18562,-0.27689,0.2927,0.19594,0.021631,-0.11425,-0.27689,0.038101,0.19868,-0.019544,-0.13689,-0.28444,0.27074,0.19045,-0.021603,-0.15817,-0.27826,0.28721,0.19045,-0.0037606,-0.12797,-0.27414 -0.29879,-0.11822,-0.042196,0.16688,0.26192,-0.27028,-0.13723,-0.0041815,0.13837,0.33794,-0.27028,-0.17524,0.014825,0.14787,0.27142,-0.25127,-0.14673,-0.023189,0.13837,0.2144,-0.26078,-0.14673,-0.023189,0.13837,0.33794 -0.27527,-0.12715,0.0095706,0.12351,0.27162,-0.28666,-0.13855,-0.013217,0.15769,0.32859,-0.28666,-0.13855,0.0095706,0.077932,0.26023,-0.29806,-0.12715,-0.013217,0.18047,0.23744,-0.30945,-0.10437,0.020964,0.14629,0.29441 0.41771,0.042162,-0.033578,-0.11563,-0.21031,0.47451,0.057941,-0.020955,-0.099851,-0.24186,0.26307,0.064253,-0.033578,-0.11563,-0.24186,0.24098,0.070565,-0.014643,-0.13772,-0.24818,0.26623,0.080032,-0.027267,-0.17244,-0.26396 0.28431,0.21021,0.037856,-0.16183,-0.33681,0.26119,0.20181,0.11668,-0.13555,-0.2911,0.21862,0.15714,0.09198,-0.16708,-0.29162,0.17658,0.11615,0.079894,-0.1592,-0.3179,0.15767,0.10354,0.0594,-0.12557,-0.28637 0.30547,0.20196,-0.097068,-0.18908,-0.21208,0.29396,0.086947,-0.12007,-0.17757,-0.23508,0.28246,0.14445,-0.085567,-0.15457,-0.17757,0.38597,0.16745,-0.062565,-0.13157,-0.21208,0.33997,0.052444,-0.12007,-0.13157,-0.15457 -0.31693,-0.14125,0.0080814,0.13106,0.31553,-0.25544,-0.15003,-0.018271,0.095923,0.27161,-0.21152,-0.15003,0.0080814,0.1662,0.27161,-0.24666,-0.15003,-0.00070273,0.12228,0.34188,-0.30815,-0.14125,-0.044624,0.13106,0.27161 -0.27752,-0.11932,-0.0063277,0.17446,0.35526,-0.26622,-0.13062,0.016271,0.10667,0.27616,-0.24362,-0.16452,0.016271,0.15187,0.27616,-0.30011,-0.13062,-0.0063277,0.12927,0.29876,-0.28882,-0.16452,-0.028927,0.084068,0.24226 0.17748,0.10523,0.073853,-0.10869,-0.32165,0.18889,0.12519,0.088114,-0.071609,-0.29123,0.20981,0.1404,0.082409,-0.15337,-0.31309,0.25734,0.15847,0.080508,-0.16193,-0.36253,0.27446,0.18319,0.094769,-0.13246,-0.32355 -0.27619,-0.17877,0.040429,0.13785,0.28398,-0.3249,-0.15441,-0.020458,0.08914,0.25962,-0.26401,-0.15441,-0.0082807,0.18656,0.2718,-0.2153,-0.093523,-0.0082807,0.13785,0.30834,-0.28836,-0.15441,-0.0082807,0.13785,0.29616 -0.24674,-0.18454,0.0020735,0.10575,0.29236,-0.24674,-0.1638,-0.049763,0.12648,0.27162,-0.28821,-0.1327,0.033175,0.13685,0.34419,-0.21564,-0.17417,0.0020735,0.12648,0.28199,-0.28821,-0.1638,-0.0082938,0.14722,0.29236 0.15673,0.078258,-0.043689,-0.1211,-0.30031,0.19172,0.087802,-0.0065746,-0.10625,-0.28334,0.27231,0.088862,0.019936,-0.090347,-0.32258,0.32215,0.11855,0.035842,-0.090347,-0.31621,0.35397,0.26807,0.093104,-0.11368,-0.29289 0.19852,0.13999,0.081466,-0.17604,-0.28139,0.22193,0.1517,0.046352,-0.14093,-0.36332,0.19852,0.22193,0.093171,-0.18775,-0.28139,0.22193,0.18681,0.081466,-0.21116,-0.24627,0.19852,0.17511,0.093171,-0.10581,-0.3165 0.35136,0.10289,-0.079802,-0.11634,-0.18211,0.36452,0.02397,-0.073956,-0.13096,-0.19234,0.36306,0.022508,-0.062263,-0.12365,-0.22304,0.37475,0.07074,-0.079802,-0.12803,-0.20696,0.35867,0.02397,-0.088572,-0.1485,-0.22011 0.39031,0.20431,0.046929,-0.053224,-0.22492,0.29016,0.1757,0.0040061,-0.13907,-0.13907,0.21862,0.075544,-0.024609,-0.16768,-0.32507,0.21862,0.046929,-0.053224,-0.13907,-0.32507,0.24723,0.1757,0.0040061,-0.18199,-0.32507 0.2066,0.19234,0.10029,-0.09547,-0.29253,0.19493,0.18975,0.083439,-0.14862,-0.31587,0.18715,0.18197,0.078253,-0.14344,-0.34828,0.18197,0.18197,0.07566,-0.1227,-0.31327,0.1716,0.18975,0.066585,-0.16289,-0.3392 0.26167,0.25059,-0.098312,-0.15001,-0.23306,0.24998,0.24869,-0.094136,-0.13817,-0.22987,0.30358,0.24816,-0.09945,-0.13794,-0.23594,0.23055,0.19525,-0.10158,-0.14925,-0.23784,0.19274,0.19312,-0.09406,-0.13809,-0.23663 0.39644,0.19184,-0.071714,-0.15147,-0.16708,0.33228,0.18317,-0.059577,-0.17055,-0.17922,0.282,0.1797,-0.068246,-0.16708,-0.17401,0.23172,0.16583,-0.071714,-0.17055,-0.24684,0.17277,0.15889,-0.099456,-0.21909,-0.27805 -0.24432,-0.14527,0.033016,0.16508,0.29715,-0.28394,-0.13207,-0.03962,0.13207,0.31696,-0.26413,-0.16508,0.01981,0.13867,0.31035,-0.21791,-0.16508,-0.01981,0.14527,0.29054,-0.30375,-0.16508,-0.03962,0.085843,0.25092 0.19702,0.14879,0.10807,-0.12127,-0.32918,0.19059,0.15415,0.086636,-0.11806,-0.3249,0.20774,0.15951,0.12522,-0.12663,-0.2981,0.20774,0.1638,0.098425,-0.14056,-0.34633,0.19488,0.17344,0.065202,-0.13092,-0.34526 0.29305,0.17667,-0.063657,-0.15387,-0.25509,0.32886,0.19596,-0.045064,-0.16144,-0.23306,0.31646,0.16703,-0.044375,-0.1759,-0.22686,0.30338,0.20009,-0.080872,-0.16282,-0.23444,0.072691,0.2173,-0.054016,-0.16764,-0.2124 0.18743,0.18268,0.12097,-0.15914,-0.26358,0.23491,0.18268,0.13996,-0.20186,-0.27782,0.22541,0.16369,0.068744,-0.21611,-0.25883,0.21117,0.16844,0.016521,-0.2351,-0.25883,0.21592,0.19693,0.040259,-0.2351,-0.24934 -0.30491,-0.16901,-0.0084012,0.17692,0.33753,-0.23079,-0.20608,0.016308,0.11515,0.27576,-0.26785,-0.16901,-0.033111,0.17692,0.25105,-0.26785,-0.1443,0.0039535,0.13986,0.2634,-0.25549,-0.10724,0.016308,0.10279,0.28811 0.28036,0.019155,-0.089679,-0.13321,-0.26381,0.30212,0.23682,0.019155,-0.067912,-0.37265,0.23682,0.12799,0.019155,-0.15498,-0.26381,0.30212,0.14976,-0.067912,-0.046145,-0.22028,0.28036,0.084455,0.019155,-0.067912,-0.32911 0.20208,0.20208,0.11296,-0.22479,-0.26231,0.1927,0.17863,0.089502,-0.18726,-0.26231,0.20208,0.19739,0.11296,-0.20133,-0.27169,0.17394,0.17863,0.10827,-0.22479,-0.27169,0.20677,0.17394,0.066047,-0.2154,-0.27639 0.32144,0.20005,0.030105,-0.018451,-0.30979,0.20005,0.078661,-0.11556,-0.23695,-0.26123,0.32144,0.12722,-0.018451,-0.091286,-0.21268,0.34572,0.12722,-0.067008,-0.21268,-0.1884,0.29716,0.12722,-0.067008,-0.16412,-0.21268 0.17096,0.19734,0.025855,-0.22478,-0.29073,0.22372,0.13138,0.09181,-0.14563,-0.30392,0.18415,0.19734,0.09181,-0.21159,-0.30392,0.22372,0.15777,0.09181,-0.13244,-0.31711,0.23691,0.19734,0.078619,-0.092865,-0.27754 0.16532,0.14498,0.059855,-0.19837,-0.28492,0.17904,0.16343,0.1133,-0.19411,-0.30242,0.26227,0.17289,0.13363,-0.089594,-0.29154,0.2391,0.16721,-0.0044645,-0.19837,-0.29674,0.2566,0.18045,0.029114,-0.096688,-0.30998 -0.30142,-0.11984,0.035797,0.10065,0.2952,-0.27548,-0.13281,0.022827,0.19144,0.26926,-0.30142,-0.10687,-0.042023,0.10065,0.28223,-0.28845,-0.14578,0.035797,0.11362,0.26926,-0.28845,-0.15875,0.022827,0.13956,0.28223 0.29251,0.1813,-0.0051463,-0.12508,-0.35241,0.26689,0.19493,0.021021,-0.13271,-0.33551,0.31759,0.20038,0.027563,-0.12508,-0.32733,0.15186,0.17912,0.026473,-0.10655,-0.28263,0.11261,0.11697,0.036831,-0.10818,-0.22539 0.19932,0.024316,-0.086211,-0.26121,-0.26121,0.19932,0.14405,-0.030947,-0.20595,-0.28884,0.28221,0.14405,0.024316,-0.14147,-0.28884,0.34668,0.17168,0.051947,-0.086211,-0.20595,0.30984,0.22695,0.051947,-0.058579,-0.26121 0.20952,0.064538,-0.081878,-0.23116,-0.26992,0.22244,0.068844,-0.011541,-0.15939,-0.29289,0.29277,0.12196,-0.018718,-0.076136,-0.33308,0.30282,0.17363,0.02291,-0.033073,-0.2527,0.33871,0.2009,0.048748,-0.0057992,-0.3015 0.23512,0.16242,0.10586,-0.20598,-0.24799,0.2432,0.1818,0.10748,-0.20274,-0.25283,0.22705,0.17696,0.03154,-0.2189,-0.2593,0.23189,0.16565,0.09617,-0.20921,-0.24799,0.24159,0.17857,-0.096105,-0.19467,-0.2496 0.17263,0.16128,0.025179,-0.12416,-0.35289,0.18586,0.1783,0.078109,-0.12983,-0.30752,0.19153,0.19342,0.08567,-0.14306,-0.34911,0.20854,0.20665,0.034631,-0.10714,-0.33021,0.20854,0.20854,0.10079,-0.11849,-0.27728 0.22263,0.22393,-0.13532,-0.17827,-0.23945,0.23044,0.23565,-0.070236,-0.15745,-0.22513,0.23305,0.24086,-0.062427,-0.16786,-0.22773,0.24086,0.24476,-0.070236,-0.15745,-0.23945,0.24606,0.25127,-0.067633,-0.13272,-0.23815 0.27239,0.25459,0.005341,-0.17269,-0.2172,0.23678,0.24569,-0.056971,-0.2083,-0.2083,0.21008,0.19228,-0.039167,-0.25281,-0.235,0.20118,0.21898,-0.012462,-0.1905,-0.235,0.23678,0.21008,-0.021364,-0.1994,-0.235 0.25468,0.1585,0.043088,-0.18774,-0.28392,0.29315,0.19698,0.062324,-0.1108,-0.18774,0.17774,0.12003,0.062324,-0.22621,-0.39934,0.17774,0.1585,0.023853,-0.13003,-0.30316,0.25468,0.1585,0.08156,-0.1108,-0.28392 0.28307,0.16712,0.092313,-0.053562,-0.30791,0.26063,0.16712,0.043688,-0.038601,-0.30791,0.24941,0.18208,0.024986,-0.12089,-0.31539,0.20078,0.1372,0.032466,-0.083485,-0.36775,0.17834,0.073611,-0.03112,-0.10593,-0.36027 0.23639,0.12431,-0.047454,-0.14789,-0.24105,0.27279,0.11994,0.00058225,-0.14353,-0.23669,0.53917,0.11412,-0.041631,-0.14789,-0.24979,0.24513,0.13159,-0.045998,-0.14935,-0.24396,0.19127,0.11703,-0.0052403,-0.15808,-0.23377 -0.24686,-0.12142,0.012376,0.19635,0.27161,-0.24686,-0.1716,-0.0043484,0.087637,0.30506,-0.27194,-0.13815,-0.054523,0.15454,0.30506,-0.31376,-0.13815,-0.04616,0.15454,0.26325,-0.25522,-0.15487,-0.0043484,0.11272,0.30506 0.2951,0.20687,-0.08254,-0.1696,-0.18489,0.28687,0.21157,-0.10254,-0.18372,-0.18136,0.26804,0.21275,-0.1343,-0.19195,-0.19195,0.25863,0.19863,-0.11901,-0.18842,-0.19313,0.26216,0.2104,-0.12842,-0.17901,-0.18019 -0.22196,-0.14408,-0.017523,0.13824,0.26479,-0.28037,-0.17328,0.021417,0.10903,0.3232,-0.2901,-0.16355,0.011682,0.17718,0.25506,-0.28037,-0.13434,-0.046728,0.089561,0.29399,-0.30957,-0.095402,0.031152,0.14797,0.29399 0.25142,0.0089951,-0.10584,-0.16006,-0.2717,0.34392,0.07279,-0.085103,-0.11381,-0.22705,0.28012,0.1015,-0.053205,-0.10424,-0.20791,0.32797,0.093524,-0.010143,-0.072344,-0.36421,0.37422,0.16848,0.021754,-0.021308,-0.24778 -0.23738,-0.19769,-0.019054,0.12981,0.26874,-0.26715,-0.13814,-0.028978,0.17943,0.32828,-0.26715,-0.17784,-0.028978,0.10003,0.25882,-0.27708,-0.14807,-0.05875,0.15958,0.29851,-0.22746,-0.11829,0.00079392,0.15958,0.30844 0.23234,0.14691,0.1093,-0.18419,-0.26471,0.24379,0.18533,0.099493,-0.18664,-0.25,0.23398,0.16408,-0.088129,-0.20544,-0.24591,0.23806,0.14691,0.12729,-0.20381,-0.26717,0.254,0.20454,-0.045618,-0.20217,-0.24223 -0.30711,-0.18735,-0.0010645,0.132,0.22514,-0.2805,-0.10752,-0.040984,0.17192,0.30498,-0.2938,-0.10752,-0.027677,0.11869,0.29168,-0.26719,-0.18735,0.012242,0.14531,0.29168,-0.22727,-0.10752,-0.0010645,0.14531,0.30498 0.20811,0.19712,0.092676,-0.074976,-0.27561,0.20261,0.18337,0.12291,-0.088718,-0.28386,0.20536,0.17238,0.067941,-0.13269,-0.34432,0.20261,0.17788,0.021218,-0.16293,-0.35806,0.18887,0.15314,0.043205,-0.17667,-0.34157 -0.3197,-0.15809,-0.040551,0.16514,0.2533,-0.24624,-0.084628,-0.025858,0.17983,0.26799,-0.29032,-0.11401,0.047603,0.17983,0.2533,-0.27563,-0.11401,-0.025858,0.12106,0.29737,-0.29032,-0.17278,-0.040551,0.15045,0.28268 -0.31178,-0.16267,-0.040667,0.13556,0.29822,-0.32534,-0.10845,0.013556,0.14911,0.29822,-0.21689,-0.17622,0.013556,0.122,0.25756,-0.27111,-0.10845,-0.027111,0.14911,0.29822,-0.244,-0.16267,-0.013556,0.18978,0.244 -0.27716,-0.15383,-0.064132,0.11526,0.28344,-0.27716,-0.15383,-0.030496,0.14889,0.30586,-0.24352,-0.086556,-0.030496,0.18253,0.2498,-0.26595,-0.18746,0.025563,0.081623,0.32828,-0.26595,-0.14262,0.014351,0.14889,0.29465 -0.24526,-0.10133,-0.029363,0.20093,0.34487,-0.28844,-0.1589,-0.058149,0.11457,0.30169,-0.24526,-0.1589,-0.029363,0.14336,0.22972,-0.25966,-0.1589,-0.014969,0.14336,0.28729,-0.28844,-0.11572,-0.014969,0.10018,0.30169 0.1884,0.20496,0.12836,-0.20703,-0.25258,0.21739,0.19875,0.0020703,-0.20703,-0.26086,0.23188,0.20496,-0.068321,-0.19047,-0.2795,0.22153,0.19047,0.097306,-0.18633,-0.2443,0.24844,0.18012,0.031055,-0.19668,-0.25258 -0.26111,-0.19463,-0.048393,0.15103,0.2308,-0.26111,-0.19463,0.057965,0.15103,0.28397,-0.24781,-0.11487,-0.035098,0.16432,0.25738,-0.26111,-0.12816,-0.035098,0.15103,0.27068,-0.31429,-0.14146,0.031375,0.16432,0.32386 -0.27745,-0.17619,0.026327,0.10227,0.26682,-0.25213,-0.12556,-0.049617,0.11493,0.29213,-0.25213,-0.18885,0.051642,0.1529,0.26682,-0.26479,-0.17619,-0.03696,0.17822,0.26682,-0.26479,-0.15088,0.026327,0.12759,0.34276 -0.21748,-0.21748,-0.0033312,0.13943,0.2822,-0.26507,-0.18179,-0.039023,0.091846,0.2941,-0.24127,-0.1342,-0.015228,0.16323,0.2941,-0.28886,-0.1342,0.056155,0.12754,0.30599,-0.30076,-0.11041,-0.027125,0.13943,0.2822 0.27565,0.13405,-0.078352,-0.12555,-0.31435,0.27565,0.13405,0.016048,-0.054752,-0.31435,0.32285,0.25205,-0.078352,-0.14915,-0.29075,0.25205,0.13405,0.016048,-0.078352,-0.26715,0.20485,0.016048,0.11045,-0.10195,-0.29075 0.15034,0.1899,0.044838,-0.16616,-0.28485,0.21628,0.20309,0.03165,-0.20573,-0.29804,0.1899,0.21628,0.044838,-0.20573,-0.27166,0.24265,0.15034,0.11078,-0.1266,-0.28485,0.20309,0.21628,0.11078,-0.19254,-0.28485 0.2338,0.1623,0.072929,-0.15944,-0.30244,0.32317,0.019305,0.037179,-0.10582,-0.33819,0.28743,0.019305,-0.034319,-0.034319,-0.30244,0.21593,0.19805,-0.034319,-0.15944,-0.30244,0.32317,0.1623,0.019305,-0.087944,-0.21307 0.38289,0.063814,-0.0098176,-0.15708,-0.20617,0.35834,0.16199,-0.08345,-0.18163,-0.13254,0.35834,0.088359,-0.08345,-0.18163,-0.20617,0.18653,0.13745,-0.0098176,-0.10799,-0.2798,0.28471,0.063814,0.03927,-0.20617,-0.2798 0.3012,0.25842,-0.15517,-0.16943,-0.18369,0.32973,0.14433,-0.098119,-0.11238,-0.19795,0.21563,0.18711,-0.083858,-0.21221,-0.255,0.3012,0.14433,-0.11238,-0.1409,-0.24073,0.27268,0.15859,0.0017114,-0.1409,-0.21221 -0.32392,-0.092548,0.039664,0.11679,0.3151,-0.29087,-0.19171,-0.0044071,0.14984,0.249,-0.27985,-0.1256,-0.026442,0.14984,0.249,-0.2468,-0.1256,-0.048478,0.11679,0.3151,-0.26883,-0.1256,-0.0044071,0.18289,0.27103 -0.33431,-0.16117,0.011962,0.1064,0.29528,-0.20839,-0.17691,0.011962,0.16936,0.24806,-0.25561,-0.12969,0.027702,0.16936,0.24806,-0.30283,-0.14543,-0.0037775,0.15362,0.24806,-0.27135,-0.14543,-0.019517,0.12214,0.34249 0.22671,0.091025,0.0383,-0.073478,-0.35187,0.22038,0.11915,0.056578,-0.073478,-0.3118,0.21827,0.11774,0.060796,-0.09035,-0.37155,0.24077,0.14164,0.060796,-0.056606,-0.36593,0.24498,0.19015,0.078371,-0.095271,-0.31531 -0.24713,-0.15991,-0.058148,0.21806,0.30528,-0.2762,-0.1163,0.029074,0.10176,0.29074,-0.24713,-0.17445,0.029074,0.1163,0.24713,-0.30528,-0.15991,-0.014537,0.15991,0.2762,-0.26167,-0.18898,0.014537,0.17445,0.24713 -0.27261,-0.17998,-0.021174,0.1641,0.2832,-0.27261,-0.14028,-0.034408,0.11116,0.26997,-0.21968,-0.12704,0.0052935,0.17733,0.25673,-0.28585,-0.16674,-0.060875,0.11116,0.33614,-0.29908,-0.10058,0.044995,0.1244,0.29644 0.372,0.023169,-0.051311,-0.13115,-0.22653,0.34574,0.023169,-0.05399,-0.12472,-0.22814,0.38325,0.035494,-0.014339,-0.11936,-0.20295,0.38003,0.026384,-0.05399,-0.12633,-0.23457,0.33985,0.019954,-0.04756,-0.13115,-0.20295 0.33989,0.21211,0.12692,-0.043444,-0.23511,0.19081,0.10563,0.063036,-0.23511,-0.299,0.23341,0.10563,0.020444,-0.17122,-0.2777,0.23341,0.12692,0.04174,-0.12863,-0.2777,0.31859,0.10563,-0.086036,-0.21381,-0.2564 0.21432,0.21432,0.089435,-0.11218,-0.30478,0.2068,0.2068,0.084921,-0.13776,-0.34089,0.19024,0.18272,0.036773,-0.10617,-0.35894,0.18272,0.1752,0.06837,-0.11218,-0.29876,0.16316,0.15714,0.06837,-0.13776,-0.33186 0.2825,0.18542,-0.081546,-0.20289,-0.15435,0.30677,0.11261,0.015533,-0.081546,-0.37278,0.2825,0.18542,-0.033007,-0.22716,-0.25143,0.18542,0.13688,0.064072,-0.15435,-0.22716,0.2825,0.11261,-0.008737,-0.033007,-0.32424 0.30919,0.14062,0.029289,-0.054736,-0.33926,0.18124,0.1426,-0.045898,-0.062782,-0.20432,0.18177,0.14655,-0.048932,-0.065684,-0.25814,0.30154,0.13138,-0.055396,-0.16923,-0.29177,0.42751,0.12162,-0.060144,-0.17292,-0.28412 -0.32239,-0.15194,-0.018019,0.091556,0.26201,-0.26152,-0.15194,-0.005844,0.18896,0.27418,-0.21282,-0.091069,-0.005844,0.14026,0.31071,-0.28587,-0.15194,-0.005844,0.14026,0.29853,-0.31022,-0.11542,-0.042369,0.15243,0.27418 0.2378,0.2375,-0.1073,-0.15846,-0.23066,0.23901,0.2384,-0.084296,-0.1624,-0.21431,0.23992,0.23992,-0.10079,-0.16209,-0.22854,0.24128,0.24083,-0.11033,-0.15574,-0.22642,0.24325,0.24219,-0.085658,-0.16013,-0.21295 0.39011,0.2066,0.077946,-0.13584,-0.18503,0.34281,0.14795,0.017405,-0.17368,-0.18503,0.27281,0.1366,-0.041243,-0.21151,-0.20773,0.25768,0.094973,-0.035568,-0.23043,-0.22476,0.22741,0.036324,-0.094217,-0.25692,-0.22665 0.24732,0.24732,0.11797,-0.15367,-0.29596,0.20851,0.20851,0.027423,-0.24422,-0.28302,0.23438,0.15677,0.053293,-0.14073,-0.28302,0.16971,0.18264,0.079163,-0.15367,-0.25715,0.18264,0.14384,0.053293,-0.21835,-0.28302 0.39672,0.12789,-0.056924,-0.11321,-0.19974,0.38916,0.10101,-0.042643,-0.12497,-0.18546,0.39,0.064048,-0.053564,-0.14261,-0.21318,0.35388,0.046406,-0.073726,-0.15521,-0.24258,0.1657,0.031285,-0.055244,-0.17286,-0.23418 0.29783,-0.0044371,-0.078389,-0.14764,-0.22629,0.30487,0.22534,-0.075454,-0.13239,-0.22952,0.30076,0.22769,-0.089247,-0.1409,-0.23011,0.30311,0.0061274,-0.067237,-0.14295,-0.22218,0.31309,0.23033,-0.068411,-0.12798,-0.226 -0.29659,-0.11022,-0.043663,0.18264,0.30245,-0.26997,-0.13685,0.0095846,0.12939,0.26251,-0.3099,-0.16347,0.022897,0.18264,0.23589,-0.23003,-0.12354,-0.0037274,0.15602,0.27582,-0.33653,-0.11022,0.0095846,0.076145,0.28914 -0.23328,-0.16352,0.0039066,0.08762,0.31086,-0.27514,-0.14957,-0.051902,0.11552,0.2969,-0.24723,-0.12166,-0.010046,0.18529,0.24109,-0.27514,-0.14957,0.031811,0.11552,0.31086,-0.33095,-0.13562,-0.010046,0.18529,0.269 -0.29302,-0.1031,0.0054263,0.12752,0.27674,-0.29302,-0.1031,0.0054263,0.15465,0.26317,-0.25232,-0.17093,-0.035271,0.16821,0.2903,-0.29302,-0.11666,-0.021705,0.12752,0.27674,-0.34728,-0.1031,0.059689,0.10039,0.27674 0.20843,0.16294,-0.0071873,-0.086793,-0.33107,0.23436,0.16294,0.0037301,-0.049947,-0.33835,0.20434,0.16021,0.019196,-0.054041,-0.35245,0.21525,0.1543,0.0474,-0.074056,-0.34381,0.25801,0.15612,0.048764,-0.039939,-0.35836 -0.27358,-0.15633,-0.065139,0.13028,0.27358,-0.31267,-0.19542,-0.013028,0.15633,0.27358,-0.2345,-0.16936,0.013028,0.1433,0.29964,-0.31267,-0.11725,-0.013028,0.15633,0.2345,-0.2345,-0.10422,0.052111,0.18239,0.28661 0.31934,0.16013,0.0464,-0.2038,-0.27203,0.2966,0.18287,-0.021835,-0.15831,-0.24929,0.2966,0.09189,-0.021835,-0.11282,-0.36301,0.16013,0.22836,-0.021835,-0.18105,-0.18105,0.31934,0.00090981,0.023655,-0.15831,-0.18105 0.2649,0.21027,-0.11961,-0.18224,-0.19023,0.28732,0.21027,-0.11755,-0.18043,-0.18765,0.27289,0.20563,-0.11652,-0.17786,-0.18713,0.26,0.21078,-0.11652,-0.17863,-0.1861,0.28423,0.21155,-0.11523,-0.17682,-0.18533 0.17139,0.081296,-0.069445,-0.1942,-0.36226,0.20605,0.12288,-0.053851,-0.1786,-0.32934,0.24416,0.14021,0.010257,-0.15088,-0.27043,0.29095,0.20605,0.065702,-0.076375,-0.24098,0.3308,0.24416,0.0709,-0.053851,-0.20459 0.23491,0.18317,-0.058296,-0.26527,-0.27389,0.21766,0.20042,-0.084167,-0.18765,-0.2049,0.25216,0.24353,-0.058296,-0.18765,-0.18765,0.22629,0.21766,-0.015178,-0.2049,-0.2049,0.28665,0.24353,-0.015178,-0.12729,-0.23077 0.19445,0.054356,-0.053049,-0.24685,-0.24918,0.24582,0.077705,-0.032035,-0.23284,-0.23751,0.25983,0.14308,0.0053236,-0.21416,-0.21416,0.3252,0.18044,0.070701,-0.19548,-0.20482,0.37657,0.20146,0.091715,-0.14878,-0.19781 -0.24154,-0.17116,-0.016328,0.15258,0.29334,-0.29784,-0.12893,-0.016328,0.15258,0.36371,-0.24154,-0.14301,0.025899,0.1385,0.25111,-0.25561,-0.21339,0.025899,0.096277,0.27926,-0.28376,-0.15708,0.025899,0.11035,0.25111 0.18494,0.018678,-0.090982,-0.20418,-0.3669,0.21677,0.10358,-0.037921,-0.17942,-0.28908,0.28398,0.12834,0.02929,-0.13697,-0.26078,0.33704,0.16017,0.018678,-0.08037,-0.23955,0.35119,0.22738,0.075276,-0.069758,-0.17942 0.27764,0.14825,0.08355,-0.073568,-0.15675,0.25915,0.17597,0.046581,-0.045842,-0.2122,0.2037,0.16673,-0.0088726,-0.16599,-0.31387,0.2684,0.14825,-0.082811,-0.24917,-0.32311,0.25915,0.19446,-0.082811,-0.19372,-0.32311 0.15442,0.11002,0.09048,-0.15064,-0.26965,0.15442,0.11179,0.11046,-0.17551,-0.29629,0.23435,0.14732,0.026092,-0.11023,-0.31005,0.26632,0.22103,0.044743,-0.16574,-0.28385,0.29563,0.23657,0.05762,-0.19238,-0.30695 0.29101,0.10056,-0.013712,-0.089892,-0.29939,0.3291,0.15769,0.081512,-0.12798,-0.4327,0.13865,0.1196,0.043422,-0.10894,-0.2613,0.23387,0.081512,0.043422,-0.070847,-0.2613,0.29101,0.13865,0.043422,-0.12798,-0.29939 0.25467,0.12016,-0.036766,-0.036766,-0.26095,0.18742,0.075325,-0.059184,-0.12644,-0.30578,0.23225,0.12016,0.14258,-0.14886,-0.30578,0.43402,0.14258,0.030489,-0.14886,-0.26095,0.29951,0.075325,-0.014348,-0.12644,-0.28337 -0.2938,-0.14771,-0.0016121,0.17975,0.23516,-0.2938,-0.15778,0.023576,0.16463,0.24524,-0.25854,-0.19304,0.03869,0.17471,0.27042,-0.27365,-0.18801,-0.0016121,0.19486,0.23012,-0.26357,-0.13763,-0.0066498,0.21501,0.24524 0.19129,0.19694,0.060358,-0.10542,-0.20621,0.18846,0.19976,0.08579,-0.10071,-0.25707,0.19599,0.2007,0.022681,-0.14875,-0.3004,0.20636,0.20447,-0.0046342,-0.21091,-0.33713,0.23838,0.20353,0.037752,-0.18831,-0.37293 -0.2577,-0.1617,-0.0017066,0.12629,0.29695,-0.2577,-0.14037,-0.02304,0.17962,0.26496,-0.33237,-0.10837,-0.012373,0.072959,0.30762,-0.24704,-0.17237,0.051626,0.10496,0.30762,-0.2897,-0.11904,-0.0017066,0.13696,0.27562 -0.26379,-0.14626,0.049623,0.21939,0.27162,-0.28991,-0.21155,-0.015671,0.14103,0.29774,-0.27685,-0.15932,-0.028729,0.0888,0.27162,-0.22461,-0.1332,-0.028729,0.15409,0.27162,-0.26379,-0.14626,-0.015671,0.15409,0.28468 -0.27903,-0.19539,-0.011375,0.15591,0.32319,-0.27903,-0.16193,-0.078289,0.15591,0.25628,-0.2623,-0.17866,-0.011375,0.15591,0.25628,-0.27903,-0.12847,-0.011375,0.18937,0.25628,-0.2623,-0.078289,0.055539,0.15591,0.25628 -0.24582,-0.080839,0.015398,0.12538,0.30411,-0.28706,-0.14958,0.042894,0.12538,0.24912,-0.30081,-0.14958,0.0016498,0.12538,0.24912,-0.28706,-0.10834,0.0016498,0.15288,0.33161,-0.30081,-0.16333,-0.025847,0.056643,0.31786 -0.27539,-0.12701,-0.023147,0.095555,0.31812,-0.26055,-0.11217,0.0065286,0.15491,0.31812,-0.26055,-0.11217,-0.037985,0.11039,0.30328,-0.33474,-0.12701,-0.052822,0.16974,0.24393,-0.26055,-0.17152,0.021366,0.16974,0.24393 0.40481,0.0728,-0.096222,-0.18073,-0.32863,0.19051,0.069782,-0.060003,-0.19884,-0.29241,0.22673,0.106,-0.026802,-0.15357,-0.28335,0.29313,0.18146,0.036581,-0.084149,-0.20186,0.31426,0.19353,0.060727,-0.06604,-0.17772 0.25337,0.10117,0.026636,-0.049979,-0.34294,0.26324,0.10351,0.012871,-0.043487,-0.34787,0.24584,0.11728,0.031571,-0.045564,-0.33982,0.24038,0.10169,0.026636,-0.046863,-0.34579,0.29986,0.10585,0.012092,-0.039851,-0.33982 -0.29514,-0.14435,0.016486,0.11701,0.29796,-0.24488,-0.14435,-0.0036189,0.19743,0.22759,-0.29514,-0.12425,-0.033777,0.13712,0.2879,-0.3253,-0.14435,0.0064336,0.10696,0.2678,-0.23483,-0.17451,0.056696,0.13712,0.30801 0.20717,0.15733,0.070645,-0.12005,-0.33134,0.19742,0.17358,0.070645,-0.092965,-0.2945,0.18658,0.1725,0.07823,-0.13956,-0.31834,0.18983,0.17466,0.10965,-0.13956,-0.37576,0.19091,0.1725,0.10423,-0.10488,-0.33892 0.22699,0.063296,-0.073118,-0.15497,-0.2641,0.28156,0.0087305,-0.045835,-0.15497,-0.31866,0.28156,0.17243,0.090579,-0.073118,-0.18225,0.22699,0.22699,0.0087305,-0.12768,-0.34595,0.36341,0.14515,0.0087305,-0.073118,-0.29138 -0.31607,-0.12433,-0.013321,0.14814,0.24906,-0.32616,-0.094053,0.027045,0.097686,0.26924,-0.2757,-0.13442,0.067411,0.16833,0.26924,-0.30597,-0.11424,0.016954,0.097686,0.23897,-0.30597,-0.14451,0.05732,0.14814,0.29952 0.26368,0.18262,-0.11104,-0.1508,-0.17069,0.27591,0.19179,-0.12327,-0.16763,-0.18292,0.28203,0.21626,-0.12021,-0.17527,-0.18292,0.28203,0.20097,-0.13551,-0.18292,-0.19057,0.30038,0.21626,-0.12633,-0.17986,-0.21198 0.26568,0.04862,-0.038202,-0.21185,-0.23355,0.26568,0.24397,-0.081613,-0.081613,-0.21185,0.22226,0.24397,-0.038202,-0.19014,-0.29867,0.33079,0.13544,0.04862,-0.16843,-0.19014,0.20056,0.22226,-0.016496,-0.16843,-0.29867 0.25042,0.057418,-0.14765,-0.1959,-0.1959,0.29867,0.12979,-0.087333,-0.17177,-0.17177,0.28661,0.15392,-0.11146,-0.15971,-0.18383,0.39517,0.20217,-0.063208,-0.17177,-0.22002,0.3228,0.19011,-0.051145,-0.18383,-0.17177 -0.32687,-0.13588,-0.054024,0.12333,0.28704,-0.24502,-0.16316,0.0005457,0.16426,0.2734,-0.28595,-0.13588,0.082401,0.10969,0.31432,-0.24502,-0.16316,-0.054024,0.10969,0.30068,-0.24502,-0.13588,0.0005457,0.15061,0.2734 -0.24534,-0.16485,-0.036061,0.092728,0.30201,-0.24534,-0.10046,-0.019962,0.14102,0.28591,-0.22924,-0.16485,-0.036061,0.20542,0.26981,-0.32584,-0.14875,-0.068258,0.12492,0.30201,-0.27754,-0.10046,-0.019962,0.15712,0.30201 -0.32054,-0.19582,0.02245,0.053631,0.2719,-0.25818,-0.16464,-0.0087307,0.13158,0.28749,-0.25818,-0.16464,0.02245,0.13158,0.2719,-0.28936,-0.13345,0.02245,0.13158,0.33426,-0.227,-0.10227,-0.0087307,0.16276,0.28749 0.24956,0.11214,0.084651,-0.13522,-0.27264,0.35949,0.084651,0.0021987,-0.13522,-0.13522,0.27704,0.11214,-0.080254,-0.21767,-0.27264,0.27704,0.1671,-0.080254,-0.080254,-0.38258,0.33201,0.084651,-0.025285,-0.16271,-0.16271 0.18596,0.065327,-0.078504,-0.22697,-0.35225,0.20916,0.121,-0.027467,-0.16202,-0.29657,0.24627,0.13028,-0.0042685,-0.15274,-0.28729,0.30195,0.16276,0.051408,-0.11098,-0.25017,0.35763,0.22772,0.097805,-0.013548,-0.1945 0.35323,0.23695,0.001257,-0.030169,-0.16216,0.28095,0.17724,-0.042739,-0.06788,-0.24701,0.26209,0.15839,-0.061595,-0.11188,-0.30672,0.24324,0.15839,-0.11816,-0.13702,-0.25958,0.24009,0.079822,-0.13702,-0.17473,-0.335 -0.26589,-0.13707,-0.059774,0.094814,0.31381,-0.27877,-0.16283,0.01752,0.13346,0.23652,-0.24013,-0.085539,-0.046892,0.15923,0.2494,-0.29166,-0.17571,0.01752,0.18499,0.33958,-0.26589,-0.14995,0.0046376,0.094814,0.31381 0.25641,0.1698,0.098292,-0.18017,-0.25109,0.24944,0.15352,0.091316,-0.1854,-0.26678,0.24711,0.15468,-0.17959,-0.16738,-0.25748,0.24014,0.16398,0.092478,-0.18889,-0.25632,0.23723,0.14887,0.08899,-0.19237,-0.26678 0.1845,0.17805,0.11354,-0.16898,-0.31476,0.1888,0.18192,0.12644,-0.12641,-0.32121,0.19267,0.18493,-0.012023,-0.15479,-0.30917,0.19396,0.18063,0.11311,-0.17543,-0.30659,0.19568,0.19138,0.10537,-0.15952,-0.28208 -0.24352,-0.16597,0.014994,0.19595,0.29936,-0.23059,-0.12719,-0.088412,0.15718,0.31229,-0.30815,-0.14011,-0.010858,0.1184,0.26058,-0.2823,-0.20474,0.040845,0.15718,0.24766,-0.26937,-0.11426,-0.036709,0.15718,0.26058 0.41066,0.034983,-0.070398,-0.14643,-0.22038,0.19855,0.12522,-0.073406,-0.14228,-0.21675,0.41502,0.12055,-0.044468,-0.14487,-0.2099,0.41118,0.081554,-0.061167,-0.14155,-0.21893,0.21681,0.097631,-0.069983,-0.1374,-0.21426 0.35268,0.24061,0.090592,-0.048586,-0.16607,0.30749,0.16651,0.047212,-0.10643,-0.24018,0.27315,0.12674,-0.019666,-0.13535,-0.29079,0.21712,0.11047,-0.023281,-0.18415,-0.31248,0.1882,0.041789,-0.077506,-0.24922,-0.30887 0.34053,0.003404,-0.11279,-0.16843,-0.19134,0.3569,-0.0080518,-0.08006,-0.15861,-0.2028,0.36672,0.093414,-0.068604,-0.14879,-0.19625,0.35853,0.11142,-0.057148,-0.14879,-0.18807,0.37981,0.06232,-0.045692,-0.12261,-0.17498 -0.24319,-0.15272,0.046323,0.17299,0.29965,-0.27938,-0.11653,-0.044151,0.17299,0.29965,-0.29748,-0.11653,0.010133,0.17299,0.28156,-0.29748,-0.11653,-0.062246,0.17299,0.22727,-0.29748,-0.17082,-0.0079617,0.1187,0.22727 -0.32198,-0.15105,0.0043511,0.11313,0.34623,-0.2909,-0.13551,0.035431,0.08205,0.28407,-0.24429,-0.10443,-0.026728,0.11313,0.25299,-0.27537,-0.16659,0.050971,0.12867,0.31515,-0.24429,-0.18213,0.035431,0.11313,0.26853 -0.30886,-0.12224,0.0060653,0.12271,0.29767,-0.27387,-0.11058,-0.028927,0.19269,0.23935,-0.32053,-0.18056,-0.017263,0.12271,0.26267,-0.23888,-0.1339,-0.028927,0.087714,0.286,-0.27387,-0.087247,0.017729,0.1577,0.33266 0.35087,0.15888,-0.042472,-0.12559,-0.25319,0.030109,0.13664,-0.05652,-0.12442,-0.29533,0.31809,0.14601,0.040645,-0.15486,-0.24734,0.33331,0.13547,-0.0073518,-0.149,-0.25553,0.33214,0.16474,-0.049496,-0.149,-0.2368 0.26804,0.20592,0.011802,-0.20949,-0.22114,0.25251,0.22921,-0.10079,-0.19785,-0.24055,0.22921,0.19427,-0.023139,-0.20949,-0.24055,0.22921,0.21757,0.13604,-0.19008,-0.23667,0.19427,0.17874,-0.046433,-0.1862,-0.24443 0.34643,0.20175,0.086623,-0.059615,-0.18096,0.33865,0.18308,0.052397,-0.064282,-0.22452,0.26086,0.14885,-0.011388,-0.13273,-0.2743,0.21264,0.066398,-0.045614,-0.20585,-0.31164,0.20486,0.049285,-0.087618,-0.2043,-0.34898 -0.30313,-0.14978,0.016358,0.10581,0.22083,-0.27757,-0.137,0.016358,0.15693,0.32307,-0.23923,-0.18812,0.0035783,0.14415,0.33585,-0.32869,-0.12422,0.016358,0.10581,0.24639,-0.23923,-0.14978,0.016358,0.15693,0.27195 0.23173,0.15698,0.11026,-0.20823,-0.25339,0.22753,0.14966,0.096395,-0.21851,-0.2551,0.2255,0.1808,0.10621,-0.22473,-0.2495,0.21818,0.13408,0.10683,-0.23143,-0.26476,0.2188,0.13611,0.097952,-0.22676,-0.2646 -0.26094,-0.19285,0.01144,0.065917,0.2702,-0.26094,-0.13837,-0.015798,0.13401,0.2702,-0.28818,-0.11113,-0.015798,0.17487,0.35192,-0.24732,-0.17923,0.038678,0.17487,0.2702,-0.26094,-0.19285,0.025059,0.10677,0.2702 0.29292,0.17953,-0.074394,-0.1403,-0.22655,0.27354,0.17856,-0.076332,-0.15871,-0.20717,0.28032,0.14852,-0.039503,-0.15387,-0.21492,0.31327,0.17759,-0.029812,-0.13254,-0.21589,0.28517,0.18147,-0.2692,-0.1529,-0.2188 0.22765,0.15753,0.02633,-0.046055,-0.36048,0.22765,0.12134,0.048951,-0.0732,-0.33786,0.24122,0.16431,0.028592,-0.041531,-0.33786,0.2186,0.15527,0.017282,-0.041531,-0.34238,0.22313,0.13038,0.03764,-0.077724,-0.36726 -0.2955,-0.096251,-0.065598,0.14897,0.25626,-0.26484,-0.096251,-0.019618,0.11832,0.33289,-0.32615,-0.17288,0.011035,0.11832,0.30224,-0.24952,-0.11158,-0.0042915,0.17963,0.24093,-0.26484,-0.1269,-0.065598,0.1643,0.28691 -0.31038,-0.093791,-0.037291,0.1793,0.2358,-0.31979,-0.13146,0.047461,0.16988,0.25463,-0.28213,-0.18796,-0.018457,0.16988,0.25463,-0.28213,-0.15029,0.01921,0.1793,0.22638,-0.30096,-0.093791,0.047461,0.16988,0.25463 0.33128,0.21574,0.0051995,-0.14923,-0.3331,0.34461,0.22296,0.050751,-0.099791,-0.33755,0.16518,0.14796,0.0085325,-0.11868,-0.23533,0.14852,0.14352,0.010755,-0.14423,-0.28866,0.14963,0.14352,0.037419,-0.11534,-0.30366 0.23922,0.18078,0.12234,-0.15039,-0.20883,0.21974,0.12234,-0.014026,-0.22831,-0.2478,0.23922,0.14182,0.024935,-0.11143,-0.26728,0.27819,0.1613,0.0054546,-0.18935,-0.30624,0.23922,0.29767,-0.13091,-0.15039,-0.26728 0.16106,0.1688,0.09524,-0.18738,-0.27256,0.18429,0.21526,0.09524,-0.19125,-0.2803,0.21913,0.223,0.048782,-0.14867,-0.26869,0.24236,0.25397,0.021681,-0.20287,-0.27643,0.17654,0.19203,0.013938,-0.21061,-0.27256 -0.29514,-0.17194,-0.021356,0.21136,0.2935,-0.32252,-0.089803,0.0060234,0.074471,0.2935,-0.24039,-0.14456,0.0060234,0.14292,0.30719,-0.26777,-0.15825,0.0060234,0.10185,0.25243,-0.28145,-0.089803,-0.0076661,0.10185,0.2935 0.24979,0.1297,-0.11048,-0.14651,-0.21856,0.24979,0.15372,-0.14651,-0.14651,-0.21856,0.27381,0.20175,-0.14651,-0.14651,-0.18254,0.32184,0.18974,-0.11048,-0.18254,-0.18254,0.36988,0.22577,-0.098474,-0.14651,-0.18254 0.13867,0.14784,0.07447,-0.092904,-0.30843,0.16618,0.17535,0.056128,-0.12042,-0.32677,0.1937,0.18911,0.07447,-0.14793,-0.32218,0.20287,0.20974,0.069884,-0.10666,-0.32448,0.25101,0.23038,0.049249,-0.13417,-0.34511 0.3225,0.096097,-0.079997,-0.12402,-0.16175,0.35395,0.12754,-0.12402,-0.14289,-0.18691,0.40426,0.12754,-0.079997,-0.15547,-0.25609,0.39797,0.033206,-0.079997,-0.12402,-0.23093,0.23446,0.045784,-0.073708,-0.1366,-0.18691 0.18769,0.10656,-0.062474,-0.1098,-0.33969,0.20122,0.20122,-0.035429,-0.12333,-0.30588,0.23502,0.23502,0.0119,-0.035429,-0.25179,0.25531,0.24855,-0.008384,-0.20446,-0.2856,0.22826,0.25531,0.0051386,-0.15713,-0.25179 -0.2845,-0.12162,0.023166,0.14985,0.27654,-0.3026,-0.13972,-0.049227,0.13175,0.20415,-0.21211,-0.17591,-0.031129,0.22225,0.27654,-0.2664,-0.15782,0.023166,0.11366,0.31274,-0.3207,-0.12162,0.023166,0.13175,0.29464 -0.25493,-0.16283,0.0029472,0.039787,0.26082,-0.29177,-0.16283,0.021367,0.18714,0.29766,-0.27335,-0.12599,0.0029472,0.18714,0.26082,-0.29177,-0.10757,-0.052312,0.11347,0.27924,-0.29177,-0.10757,0.0029472,0.15031,0.31608 -0.28804,-0.1631,0.029985,0.075417,0.31393,-0.24261,-0.18582,-0.015447,0.15492,0.2685,-0.28804,-0.11767,0.052701,0.13221,0.2685,-0.34483,-0.10631,0.0072691,0.12085,0.31393,-0.24261,-0.14038,-0.0040889,0.15492,0.24579 -0.25231,-0.13367,0.034406,0.12339,0.2618,-0.33141,-0.20288,0.034406,0.14316,0.29146,-0.27209,-0.15344,-0.024915,0.15305,0.31124,-0.24243,-0.094123,-0.044688,0.15305,0.27169,-0.25231,-0.17322,0.024519,0.073953,0.30135 -0.22905,-0.21654,0.033507,0.15853,0.28356,-0.29156,-0.091518,-0.0040008,0.18354,0.25855,-0.31656,-0.16653,-0.029006,0.13353,0.27105,-0.26655,-0.15403,-0.0040008,0.14603,0.23355,-0.27906,-0.091518,-0.041508,0.18354,0.29606 0.13685,0.14811,0.061824,-0.15388,-0.30394,0.17624,0.17249,0.043067,-0.17264,-0.27581,0.19313,0.18937,0.099339,-0.12012,-0.30957,0.21001,0.21376,0.03744,-0.1295,-0.35084,0.24752,0.24565,0.080581,-0.11449,-0.32458 0.25292,0.26207,-0.10264,-0.17584,-0.22094,0.2418,0.24442,-0.10918,-0.17192,-0.2229,0.23854,0.23919,-0.11048,-0.16342,-0.21637,0.22873,0.23658,-0.076497,-0.16146,-0.20656,0.22154,0.23723,-0.092837,-0.15558,-0.21637 0.27941,0.13226,0.017857,-0.063386,-0.1438,0.27195,0.13392,-0.013646,-0.066288,-0.37178,0.26241,0.14096,-0.013231,-0.082039,-0.35768,0.28604,0.1335,0.017857,-0.070433,-0.35603,0.19029,0.1248,-0.021521,-0.067117,-0.36432 0.34711,-0.049857,-0.053743,-0.095939,-0.21142,0.33767,0.020653,-0.035422,-0.090387,-0.25306,0.34156,0.056186,-0.033201,-0.055964,-0.28804,0.33379,0.085057,-0.0048858,-0.066513,-0.25861,0.32768,0.093385,0.02565,-0.17533,-0.29637 -0.22775,-0.13717,-0.046585,0.069877,0.31574,-0.31833,-0.085405,-0.033644,0.13458,0.26398,-0.27951,-0.15011,0.018116,0.18634,0.3028,-0.20187,-0.18893,-0.0077641,0.14752,0.3028,-0.30539,-0.15011,-0.020704,0.14752,0.26398 -0.25954,-0.1616,0.022037,0.083249,0.30362,-0.27178,-0.13712,-0.026934,0.16895,0.31586,-0.27178,-0.075904,-0.051419,0.16895,0.29137,-0.27178,-0.14936,-0.039176,0.11998,0.29137,-0.28403,-0.18609,0.034279,0.16895,0.21792 0.27785,0.028152,-0.075626,-0.16053,-0.22658,0.27407,0.26904,-0.044178,-0.17311,-0.21903,0.2703,0.024378,-0.045436,-0.17689,-0.23161,0.27722,0.25269,-0.059902,-0.16305,-0.24796,0.28162,0.2659,-0.034115,-0.15299,-0.21022 0.22939,0.2343,-0.0011774,-0.22193,-0.22684,0.2392,0.20486,-0.060046,-0.21703,-0.22193,0.24411,0.20486,-0.050234,-0.21212,-0.23175,0.21467,0.20977,0.062597,-0.21212,-0.22193,0.21958,0.20977,0.062597,-0.24156,-0.21703 0.27239,0.2632,-0.012498,-0.17792,-0.19017,0.28464,0.19274,-0.086018,-0.17485,-0.18711,0.28464,0.24482,-0.1044,-0.18711,-0.19936,0.28158,0.18662,-0.11052,-0.19323,-0.19323,0.27239,0.054895,-0.13809,-0.19017,-0.19323 -0.20171,-0.1466,0.032516,0.15652,0.28052,-0.28438,-0.16038,0.046294,0.15652,0.28052,-0.20171,-0.18793,-0.022596,0.14274,0.25296,-0.31193,-0.16038,-0.036374,0.14274,0.30808,-0.2706,-0.17415,-0.077708,0.12896,0.30808 -0.26381,-0.16882,0.02117,0.18402,0.29258,-0.30452,-0.10096,-0.033112,0.075452,0.29258,-0.26381,-0.18239,-0.019541,0.15687,0.30615,-0.2231,-0.087394,0.03474,0.11616,0.25187,-0.33166,-0.16882,0.0075994,0.1433,0.26544 0.35048,0.23292,0.097077,-0.041381,-0.16416,0.31129,0.15716,0.044829,-0.093629,-0.24776,0.23292,0.12581,-0.010032,-0.12498,-0.27388,0.24337,0.1023,-0.020481,-0.18245,-0.30785,0.19896,0.047441,-0.085791,-0.2347,-0.35748 0.21665,0.21158,-0.080407,-0.12429,-0.20024,0.21833,0.26559,-0.10404,-0.17999,-0.22387,0.25884,0.25715,-0.056778,-0.19687,-0.21374,0.24028,0.24534,-0.061841,-0.22387,-0.21712,0.22171,0.23184,-0.066905,-0.19349,-0.22387 0.14067,0.17503,0.0032074,-0.18007,-0.29462,0.2094,0.14067,0.094847,-0.21444,-0.26026,0.2094,0.17503,0.060482,-0.18007,-0.29462,0.2094,0.25522,0.026117,-0.14571,-0.26026,0.25522,0.2094,0.14067,-0.18007,-0.29462 -0.26673,-0.085374,-0.015624,0.095976,0.29128,-0.30858,-0.16907,-0.043524,0.12388,0.33313,-0.26673,-0.14117,-0.015624,0.16573,0.23548,-0.32253,-0.085374,0.012276,0.17968,0.31918,-0.26673,-0.11327,-0.001674,0.095976,0.24943 0.21332,0.18874,0.074056,-0.17171,-0.27001,0.13959,0.16417,0.09044,-0.1799,-0.32735,0.18055,0.18874,0.14778,-0.22905,-0.29459,0.20513,0.22151,0.074056,-0.1799,-0.28639,0.16417,0.18055,0.12321,-0.12255,-0.29459 -0.28173,-0.14285,0.025792,0.16467,0.28371,-0.23213,-0.11309,-0.053568,0.14483,0.32339,-0.21229,-0.18253,-0.033728,0.12499,0.24403,-0.30157,-0.16269,0.025792,0.085312,0.32339,-0.28173,-0.15277,-0.013888,0.10515,0.31347 0.22476,0.17996,0.10103,-0.15282,-0.36401,0.21089,0.18316,0.11809,-0.09096,-0.32241,0.18316,0.16503,0.096763,-0.14429,-0.32028,0.18316,0.13089,0.07863,-0.12296,-0.35548,0.17889,0.14796,0.071164,-0.081361,-0.29895 0.29871,0.10219,-0.040734,-0.058599,-0.39805,0.20938,0.084326,-0.058599,-0.14793,-0.21939,0.24512,0.15579,-0.0050024,-0.16579,-0.32658,0.26298,0.28085,-0.0050024,-0.076465,-0.20152,0.29871,0.13792,0.048594,-0.21939,-0.20152 0.25896,0.1401,0.013859,-0.084737,-0.30036,0.25712,0.11061,0.01478,-0.086579,-0.31878,0.26726,0.11614,-0.0073347,-0.074601,-0.26718,0.26265,0.1447,0.013859,-0.088422,-0.16859,0.26357,0.1143,0.010173,-0.09303,-0.49847 -0.29887,-0.13507,0.016128,0.24292,0.24292,-0.32407,-0.18547,0.016128,0.12953,0.21772,-0.28627,-0.14767,0.028727,0.14213,0.26812,-0.26107,-0.13507,0.016128,0.21772,0.24292,-0.28627,-0.09727,-0.021672,0.12953,0.26812 0.35626,0.043054,-0.025321,-0.11355,-0.20398,0.35846,0.016586,-0.04076,-0.11134,-0.20839,0.36287,0.020998,-0.0562,-0.098107,-0.22824,0.36067,0.038643,-0.042966,-0.098107,-0.21942,0.36287,-0.0010587,-0.047377,-0.12016,-0.30544 0.23428,0.34594,-0.062059,-0.18661,-0.23063,0.24072,0.24716,-0.043806,-0.15654,-0.2317,0.22891,0.20421,-0.077091,-0.15976,-0.2521,0.21495,0.19133,-0.062059,-0.17694,-0.23385,0.22569,0.18489,-0.048101,-0.14151,-0.25532 0.18468,0.18305,0.11779,-0.11877,-0.3276,0.18305,0.17489,0.078636,-0.12366,-0.34391,0.17652,0.18305,0.093319,-0.17098,-0.32107,0.18142,0.17816,0.13247,-0.10409,-0.31781,0.17489,0.17163,0.073742,-0.12366,-0.33575 -0.29999,-0.1366,-0.0058821,0.092153,0.27188,-0.21829,-0.21829,0.059475,0.12483,0.27188,-0.29999,-0.12026,-0.071239,0.17385,0.28822,-0.26731,-0.10392,0.026796,0.10849,0.33724,-0.26731,-0.1366,-0.022221,0.12483,0.28822 0.25222,0.18959,-0.019209,-0.18624,-0.228,0.25222,0.21046,0.02255,0.0016704,-0.26976,0.18959,0.16871,0.10607,-0.12361,-0.29064,0.33574,0.18959,-0.060968,-0.228,-0.31152,0.21046,0.085188,-0.060968,-0.16537,-0.26976 -0.24496,-0.16685,0.0049991,0.11435,0.30182,-0.29182,-0.041868,0.020621,0.11435,0.27058,-0.33869,-0.1356,-0.026245,0.12998,0.22371,-0.30745,-0.18247,-0.010623,0.16122,0.31744,-0.24496,-0.10436,0.0049991,0.12998,0.30182 0.34681,0.062393,0.023798,-0.12999,-0.28555,0.35749,0.054674,-0.0058901,-0.068235,-0.27546,0.35749,0.046955,-0.014797,-0.055766,-0.24696,0.26071,0.012517,-0.029641,-0.080704,-0.27308,0.37056,-0.0058901,-0.062298,-0.091986,-0.26715 -0.27118,-0.14826,-0.053706,0.18268,0.25832,-0.23336,-0.15771,-0.02534,0.17322,0.3245,-0.27118,-0.18608,-0.072616,0.15431,0.2205,-0.21445,-0.1388,-0.063161,0.20159,0.27723,-0.28063,-0.15771,0.031391,0.16377,0.28668 -0.24396,-0.19271,-0.013326,0.11481,0.33263,-0.2824,-0.15427,-0.038952,0.11481,0.26856,-0.26959,-0.090205,0.012301,0.11481,0.31982,-0.24396,-0.15427,-0.00051253,0.21731,0.23012,-0.29522,-0.12864,-0.026139,0.10199,0.307 -0.24033,-0.10252,0.0077169,0.1593,0.26954,-0.33679,-0.088744,-0.019843,0.18686,0.2971,-0.28167,-0.088744,-0.061184,0.10418,0.2282,-0.28167,-0.1163,0.021497,0.14552,0.28332,-0.33679,-0.15764,-0.019843,0.14552,0.28332 0.30113,0.20304,0.080431,-0.31191,-0.33644,0.22756,0.10495,-0.042177,-0.18931,-0.18931,0.25208,0.154,0.055909,-0.09122,-0.23835,0.2766,0.10495,0.031388,-0.16479,-0.31191,0.25208,0.10495,0.031388,-0.042177,-0.26287 0.22786,0.16423,0.10809,-0.08279,-0.34104,0.22037,0.16797,0.09312,-0.090275,-0.34104,0.22037,0.14178,0.10061,-0.030391,-0.3373,0.21289,0.11932,0.036978,-0.13145,-0.35601,0.19043,0.12306,0.029493,-0.10899,-0.3373 0.28314,0.12088,0.039753,-0.081939,-0.28476,0.20201,0.20201,0.019471,-0.28476,-0.20363,0.26285,0.16144,0.060035,-0.22391,-0.22391,0.26285,0.12088,-0.14279,-0.14279,-0.32532,0.30342,0.20201,-0.021093,-0.1225,-0.18335 0.36909,0.14976,-0.079621,-0.15175,-0.20732,0.36554,0.10719,-0.080212,-0.16948,-0.24574,0.10187,0.10483,-0.08908,-0.1748,-0.21086,0.34308,0.19528,-0.071935,-0.16002,-0.19017,0.34308,0.13321,-0.021685,-0.16534,-0.1949 -0.34444,-0.10327,-0.0039721,0.19463,0.25138,-0.31607,-0.16002,0.038586,0.19463,0.23719,-0.24514,-0.14583,-0.074903,0.20882,0.25138,-0.24514,-0.11746,-0.018158,0.15208,0.26556,-0.27351,-0.16002,0.010214,0.15208,0.25138 0.24759,0.13481,-0.11662,-0.2183,-0.28116,0.26053,0.26977,-0.079645,-0.17393,-0.26637,0.25498,0.18843,0.084895,-0.19612,-0.25897,0.32339,0.086744,0.070105,-0.17023,-0.24418,0.21431,0.094139,0.083046,-0.10738,-0.19981 -0.25761,-0.18025,-0.0061889,0.10985,0.34194,-0.23827,-0.21893,-0.025529,0.12919,0.2259,-0.27695,-0.14157,-0.0061889,0.20656,0.30326,-0.25761,-0.12223,-0.0061889,0.12919,0.26458,-0.31563,-0.10289,0.051832,0.12919,0.26458 0.31951,0.11469,0.046424,-0.06736,-0.34044,0.25124,0.11469,-0.044604,-0.18115,-0.15839,0.36502,0.11469,-0.021847,-0.13563,-0.31769,0.25124,0.091938,-0.11287,-0.15839,-0.18115,0.29675,0.11469,-0.021847,0.00091028,-0.34044 0.22695,0.12631,-0.10958,-0.26369,-0.32659,0.23639,0.15776,-0.030948,-0.18821,-0.30772,0.24268,0.1955,0.02881,-0.19764,-0.22909,0.23954,0.1955,0.038245,-0.13788,-0.24796,0.24583,0.21437,0.13889,-0.05611,-0.19135 0.27058,0.13196,-0.075963,-0.24231,-0.18686,0.27058,0.048794,-0.11755,-0.13141,-0.173,0.35375,0.090379,-0.075963,-0.13141,-0.173,0.38148,0.21514,-0.075963,-0.173,-0.21458,0.32603,0.10424,-0.062101,-0.062101,-0.29775 0.37439,0.24117,0.068483,-0.0672,-0.17821,0.31271,0.14989,0.033945,-0.10914,-0.23989,0.30284,0.14496,-0.003059,-0.10914,-0.24235,0.22143,0.088218,-0.052398,-0.18315,-0.28429,0.16963,0.016677,-0.077068,-0.21768,-0.36077 0.29618,0.23384,-0.077856,-0.18868,-0.18176,0.32389,0.10224,-0.077856,-0.18868,-0.18868,0.3516,0.081458,-0.11942,-0.15405,-0.20946,0.36545,0.12302,-0.1402,-0.11942,-0.18868,0.31696,0.039898,-0.077856,-0.16098,-0.16098 0.24181,0.10957,0.090679,-0.11713,-0.28715,0.33627,0.090679,-0.0037783,-0.041561,-0.28715,0.18514,0.14735,-0.098236,-0.098236,-0.19269,0.2607,0.090679,-0.041561,-0.098236,-0.30604,0.29849,0.2607,0.015113,-0.19269,-0.36272 0.18048,0.21196,-0.0083946,-0.20777,-0.19727,0.24344,0.21196,-0.10283,-0.18678,-0.24974,0.24344,0.18048,-0.039874,-0.20777,-0.19727,0.3169,0.25394,-0.09234,-0.17629,-0.20777,0.23295,0.26443,-0.081847,-0.17629,-0.20777 0.29828,0.055995,0.055995,-0.13245,-0.29397,0.1906,0.16368,0.0021537,-0.10553,-0.24013,0.35212,0.13676,-0.024767,-0.21321,-0.21321,0.27136,-0.024767,0.0021537,-0.13245,-0.34781,0.29828,0.27136,-0.051688,-0.10553,-0.21321 0.2318,0.21813,-0.043936,-0.17383,-0.19662,0.22724,0.22724,-0.096349,-0.19662,-0.20117,0.23864,0.24092,-0.11914,-0.19206,-0.20117,0.25687,0.25231,-0.075839,-0.19662,-0.20117,0.25459,0.24775,-0.10774,-0.19662,-0.19662 0.30645,0.060615,-0.13018,-0.15954,-0.2109,0.31012,0.1817,-0.11918,-0.15954,-0.21824,0.29544,0.13033,-0.14486,-0.16321,-0.18522,0.30278,0.19271,-0.13018,-0.14853,-0.17421,0.30278,0.25875,-0.089822,-0.13752,-0.17054 0.40894,0.098025,-0.046811,-0.11054,-0.2013,0.38576,0.086438,-0.064191,-0.12406,-0.2071,0.40121,0.047815,-0.046811,-0.12019,-0.19744,0.35487,0.043953,-0.085434,-0.13178,-0.23027,0.18686,0.045884,-0.11054,-0.15689,-0.22641 0.28824,0.19514,0.083418,-0.19588,-0.32623,0.30686,0.046178,0.0089377,-0.1214,-0.23312,0.32548,0.027558,-0.028303,-0.084163,-0.28899,0.251,0.19514,0.0089377,-0.065543,-0.2145,0.30686,-0.0096825,-0.065543,-0.084163,-0.32623 0.22479,0.23064,-0.062051,-0.21425,-0.22596,0.21893,0.21308,0.025757,-0.22011,-0.23767,0.23064,0.21893,0.025757,-0.22596,-0.20254,0.21893,0.22479,-0.056197,-0.22596,-0.21425,0.2482,0.22479,0.0081954,-0.22011,-0.2084 -0.20164,-0.15831,-0.042755,0.13058,0.30391,-0.28831,-0.15831,-0.071644,0.10169,0.30391,-0.25942,-0.15831,-0.028311,0.13058,0.30391,-0.3172,-0.11498,0.029466,0.11613,0.26058,-0.27386,-0.11498,0.0728,0.11613,0.31835 -0.29013,-0.14868,-0.10939,0.18137,0.24423,-0.23512,-0.14082,-0.038663,0.17351,0.29138,-0.25869,-0.16439,-0.046521,0.18923,0.22852,-0.24298,-0.16439,-0.022946,0.22066,0.27567,-0.26655,-0.16439,0.047778,0.17351,0.26781 -0.31502,-0.22013,-0.071028,0.18652,0.24074,-0.2608,-0.11169,-0.030363,0.17296,0.2814,-0.27435,-0.1388,0.010302,0.10519,0.25429,-0.27435,-0.1388,-0.0032532,0.17296,0.32207,-0.2608,-0.098138,0.037412,0.18652,0.22718 -0.22743,-0.13106,0.034142,0.18558,0.32325,-0.29626,-0.1999,-0.04846,0.15804,0.32325,-0.25496,-0.11729,0.0066081,0.08921,0.28195,-0.25496,-0.13106,-0.020926,0.11674,0.28195,-0.26873,-0.21366,0.0066081,0.11674,0.24065 0.3976,0.21776,0.097874,-0.051989,-0.21548,0.32948,0.17417,0.02158,-0.10376,-0.26452,0.25319,0.1224,-0.019291,-0.1964,-0.27815,0.25319,0.0897,-0.043815,-0.1964,-0.24545,0.18507,0.040654,-0.13646,-0.2182,-0.21275 0.30625,0.16604,-0.0033885,-0.13484,-0.18158,0.32086,0.10469,0.019981,-0.1436,-0.15821,0.34423,0.11346,0.019981,-0.10271,-0.21955,0.26536,0.090088,-0.041363,-0.17281,-0.23124,0.31209,0.055034,-0.099786,-0.36561,-0.26337 -0.30462,-0.13907,0.013754,0.14111,0.26846,-0.21548,-0.17727,-0.011716,0.14111,0.26846,-0.34283,-0.12633,0.051959,0.07743,0.30666,-0.26642,-0.20274,-0.011716,0.12837,0.26846,-0.24095,-0.12633,0.026489,0.20478,0.26846 -0.31578,-0.141,0.048358,0.12119,0.32511,-0.28665,-0.18469,0.019227,0.10662,0.20858,-0.27209,-0.11186,0.019227,0.15032,0.32511,-0.25752,-0.12643,0.077489,0.12119,0.28141,-0.27209,-0.19926,-0.0099047,0.13575,0.23771 0.2426,0.15217,0.09086,-0.0026363,-0.35056,0.21808,0.1583,0.078598,-0.10226,-0.28926,0.22421,0.14144,0.098524,-0.076207,-0.31378,0.20428,0.13378,0.069402,-0.16664,-0.36129,0.18282,0.13531,0.058673,-0.18196,-0.34443 -0.32728,-0.19505,-0.029753,0.10248,0.28431,-0.26117,-0.079342,0.019835,0.1686,0.25125,-0.31075,-0.12893,0.019835,0.069424,0.31737,-0.29422,-0.12893,0.036365,0.13554,0.30084,-0.24464,-0.12893,0.036365,0.11901,0.26778 0.27359,0.1026,0.085498,-0.1197,-0.2052,0.1881,0.1539,0.1368,-0.1539,-0.29069,0.27359,0.2223,-0.1026,-0.1539,-0.30779,0.23939,0.1368,-0.0171,-0.068399,-0.37619,0.29069,0.068399,0.034199,-0.1197,-0.29069 0.30659,0.13642,0.048542,-0.10768,-0.16766,0.30938,0.13642,-0.021202,-0.16766,-0.17882,0.30799,0.1685,-0.11745,-0.18719,-0.19556,0.31078,0.14479,-0.15651,-0.19835,-0.20254,0.30799,0.13363,-0.18022,-0.2137,-0.21649 0.30874,0.11517,-0.16308,-0.13889,-0.19938,0.33294,0.17566,-0.12679,-0.13889,-0.16308,0.27245,0.22406,-0.12679,-0.17518,-0.21148,0.23616,0.18776,-0.078396,-0.19938,-0.17518,0.28455,0.22406,-0.0542,-0.21148,-0.19938 -0.27272,-0.18547,0.01396,0.16353,0.30064,-0.29765,-0.11068,-0.085755,0.12614,0.25078,-0.28518,-0.2104,0.0014957,0.11368,0.32557,-0.23533,-0.11068,0.026424,0.15107,0.26325,-0.24779,-0.11068,0.0014957,0.10121,0.31311 0.18145,0.17873,0.16104,-0.08523,-0.24442,0.18826,0.17465,0.12567,-0.13693,-0.31245,0.1869,0.17193,0.069882,-0.1832,-0.29749,0.1937,0.17057,0.10662,-0.20769,-0.29068,0.1937,0.17601,0.053554,-0.21449,-0.36008 -0.27107,-0.075732,-0.015627,0.13463,0.2849,-0.2861,-0.090758,-0.015627,0.14966,0.29992,-0.24102,-0.15086,0.014425,0.029451,0.29992,-0.25605,-0.19594,-0.030653,0.14966,0.25484,-0.30113,-0.16589,-0.015627,0.16469,0.32998 0.27364,0.16501,0.038089,-0.16002,-0.19689,0.31395,0.16358,0.058671,-0.14915,-0.28522,0.29594,0.1693,-0.11628,-0.13657,-0.28437,0.28536,0.17731,-0.1037,-0.15115,-0.1926,0.33625,-0.069397,-0.086834,-0.14115,-0.20375 -0.25161,-0.15027,-0.052419,0.11532,0.33548,-0.24113,-0.12581,-0.038441,0.11882,0.33898,-0.21667,-0.16774,-0.020968,0.087366,0.33548,-0.24812,-0.16425,-0.052419,0.10134,0.31452,-0.24113,-0.13978,-0.034946,0.083871,0.31452 -0.25646,-0.11503,-0.036458,0.12069,0.34069,-0.30361,-0.17789,0.042115,0.073544,0.27783,-0.31932,-0.083602,-0.036458,0.089259,0.29355,-0.24075,-0.17789,-0.0050287,0.15212,0.27783,-0.27218,-0.099316,0.042115,0.12069,0.29355 0.22291,0.2431,-0.019383,-0.12034,-0.2011,0.30367,0.14214,-0.019383,-0.059765,-0.2011,0.18253,0.10176,-0.039574,-0.22129,-0.36263,0.28348,0.10176,0.020998,-0.2011,-0.18091,0.28348,0.22291,0.041189,-0.16072,-0.36263 0.17442,0.17442,0.079625,-0.12576,-0.29954,0.17442,0.17442,0.15862,-0.11786,-0.28374,0.18232,0.17442,0.15862,-0.21265,-0.29164,0.18232,0.21391,0.040129,-0.21265,-0.29954,0.19022,0.17442,0.10332,-0.21265,-0.29954 -0.30224,-0.15425,-0.014471,0.17464,0.24863,-0.31046,-0.12958,0.018417,0.18286,0.24041,-0.27758,-0.17069,0.026639,0.16641,0.24041,-0.25291,-0.12958,0.026639,0.23219,0.20752,-0.31046,-0.16247,0.018417,0.1993,0.23219 0.21796,0.14244,0.082666,-0.046171,-0.34948,0.21958,0.14446,0.065703,-0.056268,-0.35191,0.21231,0.15254,0.077819,-0.093425,-0.34666,0.20827,0.13153,0.074588,-0.068385,-0.35433,0.20746,0.13032,0.058029,-0.10271,-0.35635 -0.25968,-0.18441,0.022581,0.19194,0.26721,-0.2785,-0.12796,0.041399,0.15431,0.22958,-0.2785,-0.14678,-0.015054,0.097852,0.34248,-0.29732,-0.14678,0.041399,0.11667,0.28603,-0.29732,-0.1656,0.041399,0.17312,0.19194 0.28314,0.25283,-0.080638,-0.16485,-0.23221,0.24104,0.24104,-0.063796,-0.16316,-0.21032,0.20904,0.21241,-0.085691,-0.16653,-0.23895,0.21578,0.30504,-0.11601,-0.15979,-0.23221,0.2023,0.20736,-0.073902,-0.16485,-0.21706 0.37677,0.21367,0.086588,-0.055325,-0.19512,0.32593,0.17343,0.014573,-0.097687,-0.22054,0.28357,0.15437,0.0082183,-0.13581,-0.22901,0.23274,0.061171,-0.03838,-0.18877,-0.29891,0.1819,0.023045,-0.11887,-0.22266,-0.33492 0.21138,0.23818,-0.061957,-0.21739,-0.21739,0.22746,0.23282,-0.0298,-0.21739,-0.22811,0.23282,0.21138,0.013077,-0.19595,-0.23347,0.21138,0.22746,-0.008361,-0.21739,-0.21203,0.22746,0.25426,-0.008361,-0.22811,-0.21203 -0.31596,-0.12291,-0.010296,0.13449,0.27928,-0.21944,-0.18726,-0.010296,0.13449,0.29537,-0.33205,-0.17117,0.0057916,0.08623,0.2632,-0.25161,-0.10682,-0.010296,0.08623,0.34363,-0.25161,-0.10682,0.0057916,0.19884,0.2632 -0.29679,-0.14317,0.010446,0.1487,0.30232,-0.26607,-0.15854,0.025808,0.071894,0.25624,-0.28143,-0.25071,0.010446,0.1487,0.30232,-0.25071,-0.051002,0.025808,0.1487,0.28696,-0.29679,-0.12781,0.010446,0.11798,0.25624 0.18628,0.18164,0.087407,-0.10956,-0.32506,0.18937,0.17237,0.099765,-0.12192,-0.33124,0.18241,0.17006,0.085862,-0.063987,-0.34746,0.18241,0.16851,0.071958,-0.10879,-0.36369,0.17701,0.17006,0.097448,-0.10261,-0.34824 0.2626,0.19228,0.097388,-0.1683,-0.18281,0.28716,0.19897,-0.068944,-0.1683,-0.19062,0.27042,0.19004,-0.12699,-0.19062,-0.20514,0.25702,0.18893,-0.13481,-0.19955,-0.21407,0.276,0.19004,-0.13034,-0.20737,-0.223 0.18378,0.058165,-0.10044,-0.25144,-0.33138,0.23707,0.08608,-0.037,-0.19434,-0.27555,0.30686,0.16094,-0.00020302,-0.12963,-0.24383,0.3297,0.20155,0.032787,-0.1144,-0.20957,0.39949,0.058165,0.060702,-0.064915,-0.16262 -0.27636,-0.13351,0.0093506,0.10026,0.29506,-0.2374,-0.17247,0.048312,0.19117,0.29506,-0.30234,-0.10753,-0.055584,0.10026,0.21714,-0.27636,-0.13351,-0.016623,0.10026,0.26909,-0.27636,-0.17247,-0.0036364,0.21714,0.32104 0.24976,0.23826,0.071442,-0.10975,-0.28232,0.23826,0.22675,-0.098247,-0.28232,-0.28232,0.2325,0.2325,-0.057982,-0.10975,-0.18453,0.21812,0.14334,0.025425,-0.17878,-0.25643,0.20949,0.20662,-0.020593,-0.17303,-0.25643 0.19293,0.024507,-0.11463,-0.21959,-0.36848,0.22466,0.10262,-0.029193,-0.17077,-0.28061,0.27348,0.12703,0.012302,-0.15856,-0.26596,0.32718,0.16608,0.024507,-0.085335,-0.23667,0.34671,0.22954,0.092853,-0.056044,-0.15856 -0.26218,-0.10034,-0.051788,0.11005,0.23952,-0.27836,-0.14889,-0.035604,0.14242,0.2557,-0.26218,-0.14889,0.029131,0.11005,0.32044,-0.24599,-0.10034,-0.035604,0.12623,0.32044,-0.32691,-0.11652,-0.0032368,0.093866,0.36899 0.13106,0.060071,-0.12014,-0.16565,-0.28033,0.27851,0.10376,0.076454,-0.14199,-0.29125,0.40593,0.12742,0.049149,-0.081915,-0.28033,0.32766,0.14927,0.05279,-0.1347,-0.28033,0.20752,0.12378,0.074634,-0.092837,-0.29853 0.26142,0.16384,0.093577,-0.14973,-0.24992,0.24451,0.17425,0.075361,-0.18356,-0.25903,0.27964,-0.074268,0.077963,-0.19007,-0.25252,0.25492,0.20157,0.019413,-0.17966,-0.27854,0.25882,0.19246,-0.027428,-0.19787,-0.25512 -0.2136,-0.10301,-0.0082155,0.13398,0.26037,-0.261,-0.11881,0.0075836,0.13398,0.26037,-0.3558,-0.15041,-0.039814,0.054981,0.27617,-0.2768,-0.16621,0.07078,0.16557,0.30777,-0.261,-0.18201,-0.0082155,0.14978,0.32356 0.20145,0.14899,0.017837,-0.16577,-0.24447,0.25391,0.14899,0.017837,-0.13954,-0.40185,0.3326,0.096527,0.017837,-0.087084,-0.192,0.22768,0.20145,-0.0083937,-0.060854,-0.24447,0.25391,0.096527,0.017837,-0.060854,-0.42808 -0.26664,-0.18966,0.056653,0.16442,0.22599,-0.23585,-0.11269,-0.0819,0.13363,0.28757,-0.29743,-0.15887,-0.035716,0.11823,0.30297,-0.25124,-0.097295,0.010468,0.14902,0.25678,-0.29743,-0.18966,0.010468,0.19521,0.30297 0.23262,0.063345,-0.026832,-0.1265,-0.24199,0.21997,0.031704,-0.018921,-0.13599,-0.24832,0.29432,0.050689,-0.036324,-0.14232,-0.22617,0.46677,0.072837,-0.018921,-0.14232,-0.22617,0.45569,0.060181,-0.0031008,-0.12334,-0.23092 -0.22197,-0.13499,0.021571,0.17813,0.24772,-0.27416,-0.13499,0.056362,0.14334,0.23032,-0.27416,-0.22197,0.056362,0.12595,0.3173,-0.34374,-0.1176,-0.013221,0.12595,0.2999,-0.30895,-0.1176,-0.013221,0.12595,0.24772 0.42611,0.084887,-0.058164,-0.11815,-0.23967,0.2769,0.083605,-0.057395,-0.15891,-0.23711,0.28254,0.02618,-0.050473,-0.11585,-0.25608,0.4743,0.09386,-0.006891,-0.10995,-0.23685,0.15539,0.10668,-0.016633,-0.11303,-0.23531 -0.24901,-0.14324,0.007857,0.17406,0.26472,-0.2339,-0.14324,-0.037472,0.17406,0.21939,-0.30944,-0.12813,-0.037472,0.083405,0.29494,-0.27922,-0.14324,0.007857,0.14384,0.37049,-0.27922,-0.11302,-0.0828,0.17406,0.26472 0.31873,0.1436,-0.06071,-0.06071,-0.35258,0.23116,0.1436,0.026852,-0.14827,-0.14827,0.23116,0.1436,0.026852,-0.14827,-0.35258,0.31873,0.1436,-0.06071,0.026852,-0.23583,0.23116,0.1436,-0.06071,-0.14827,-0.35258 -0.28482,-0.096376,-0.042535,0.13245,0.28051,-0.23098,-0.16368,0.065148,0.13245,0.29397,-0.3252,-0.1233,-0.015614,0.10553,0.26705,-0.27136,-0.069455,-0.029074,0.11899,0.34781,-0.27136,-0.1906,-0.015614,0.092069,0.29397 -0.2479,-0.21403,-0.02777,0.20929,0.27702,-0.23096,-0.1463,0.0060958,0.15849,0.20929,-0.23096,-0.18016,-0.010837,0.15849,0.29395,-0.29869,-0.18016,-0.010837,0.14156,0.31088,-0.29869,-0.095501,0.039961,0.073827,0.29395 0.26642,0.26224,-0.13966,-0.14803,-0.20036,0.26852,0.26852,-0.11873,-0.13966,-0.20455,0.26852,0.16595,-0.14384,-0.13547,-0.21501,0.2748,0.16595,-0.13129,-0.13966,-0.22757,0.28107,0.17014,-0.10198,-0.1271,-0.2192 -0.23188,-0.14324,0.034038,0.10495,0.2645,-0.26734,-0.14324,-0.07233,0.15813,0.33541,-0.26734,-0.07233,-0.054602,0.14041,0.28223,-0.32052,-0.10779,-0.054602,0.17586,0.28223,-0.28507,-0.16097,-0.0014182,0.12268,0.28223 0.38936,0.061247,-0.0043748,-0.13562,-0.33248,0.27999,0.10499,-0.069997,-0.13562,-0.20124,0.32373,0.10499,-0.091871,-0.091871,-0.13562,0.32373,0.10499,-0.069997,-0.24499,-0.20124,0.34561,0.083121,-0.069997,-0.20124,-0.13562 0.2189,0.14449,0.063884,-0.22134,-0.28069,0.23839,0.14803,0.090457,-0.21691,-0.2736,0.23839,0.14183,0.078056,-0.22931,-0.28778,0.2189,0.14981,0.066541,-0.23197,-0.28778,0.24104,0.15246,0.095772,0.0071927,-0.26475 -0.30842,-0.18348,-0.022846,0.11994,0.35197,-0.25488,-0.09424,0.030699,0.19134,0.26273,-0.30842,-0.14779,0.012851,0.11994,0.28058,-0.23703,-0.20133,0.012851,0.11994,0.20918,-0.23703,-0.16563,0.012851,0.15564,0.28058 0.21,0.27081,-0.033243,-0.11432,-0.25622,0.21,0.14919,-0.033243,-0.11432,-0.23595,0.33162,0.088379,-0.094054,-0.11432,-0.23595,0.33162,0.21,-0.094054,-0.21568,-0.31703,0.33162,0.027568,-0.033243,-0.053514,-0.21568 -0.24276,-0.20828,-0.0013793,0.11931,0.30897,-0.26001,-0.10483,0.015862,0.050346,0.30897,-0.27725,-0.1738,0.015862,0.20552,0.30897,-0.32897,-0.12207,-0.035863,0.10207,0.27449,-0.26001,-0.087588,0.015862,0.11931,0.25725 0.25824,0.20479,-0.10109,-0.19908,-0.18721,0.25824,0.24933,-0.10703,-0.16642,-0.19315,0.26121,0.21369,-0.12484,-0.18424,-0.1783,0.25824,0.20479,-0.12187,-0.18424,-0.18127,0.27012,0.24339,-0.12484,-0.18424,-0.18424 -0.26752,-0.14839,0.021783,0.14091,0.27705,-0.30155,-0.080323,0.0047649,0.10687,0.3281,-0.35261,-0.14839,-0.02927,0.072835,0.26003,-0.30155,-0.097341,-0.012253,0.15792,0.24301,-0.21646,-0.11436,-0.02927,0.17494,0.31108 -0.31308,-0.19854,-0.007636,0.12599,0.3169,-0.35126,-0.12218,0.049634,0.12599,0.3169,-0.21763,-0.16036,-0.007636,0.12599,0.24054,-0.23672,-0.17945,-0.007636,0.18326,0.24054,-0.21763,-0.12218,0.011454,0.1069,0.29781 -0.33577,-0.14194,0.0071568,0.096617,0.29045,-0.2314,-0.097213,0.022067,0.14135,0.27554,-0.24631,-0.18667,-0.082303,0.18608,0.24572,-0.27613,-0.082303,-0.037573,0.12644,0.29045,-0.30595,-0.097213,-0.022663,0.12644,0.33518 0.3215,-0.033837,-0.076266,-0.11074,-0.17173,0.35333,-0.0020154,-0.012623,-0.10013,-0.29902,0.34007,0.1624,-0.007319,-0.052399,-0.23537,0.34537,0.069583,0.024503,-0.16112,-0.22477,0.32946,0.069583,-0.078917,-0.19825,-0.25128 0.21629,0.14707,0.096306,-0.18586,-0.31046,0.22157,0.15169,0.095647,-0.14499,-0.32892,0.20509,0.14707,0.087736,-0.16213,-0.33881,0.20245,0.14114,0.089054,-0.17465,-0.31376,0.213,0.14971,0.091691,0.01126,-0.30717 -0.25685,-0.18429,0.015237,0.12407,0.25104,-0.18429,-0.14801,-0.021041,0.21476,0.28732,-0.27498,-0.12987,-0.0029022,0.12407,0.28732,-0.3294,-0.14801,-0.057319,0.21476,0.30546,-0.29312,-0.12987,-0.021041,0.12407,0.2329 0.37154,0.02089,-0.091019,-0.18801,-0.19547,0.379,0.14772,-0.076098,-0.13578,-0.18055,0.3417,0.14772,-0.10594,-0.1507,-0.16563,0.30439,0.058193,-0.12086,-0.15816,-0.18055,0.34916,0.058193,-0.1134,-0.13578,-0.18055 0.25143,0.077228,0.10626,-0.16955,-0.16955,0.25143,0.10626,0.019162,-0.067937,-0.22762,0.25143,0.14981,0.033678,-0.067937,-0.32923,0.26594,0.10626,0.0046453,-0.067937,-0.40182,0.28046,0.13529,0.019162,-0.15504,-0.40182 -0.30726,-0.12343,0.0078784,0.12605,0.29675,-0.25473,-0.13656,0.03414,0.11292,0.27049,-0.281,-0.14969,-0.018383,0.15232,0.25736,-0.32039,-0.12343,-0.057775,0.060401,0.25736,-0.22847,-0.13656,0.04727,0.13918,0.37554 -0.22001,-0.16068,-0.10136,0.16984,0.28849,-0.25391,-0.16916,-0.05051,0.16984,0.27154,-0.22848,-0.16916,-0.08441,0.20374,0.27154,-0.22001,-0.16916,-0.08441,0.20374,0.30544,-0.19458,-0.16916,-0.06746,0.16984,0.28849 -0.27264,-0.11812,-0.049445,0.13941,0.29392,-0.30697,-0.049445,-0.032277,0.13941,0.32826,-0.2383,-0.13529,-0.049445,0.13941,0.27676,-0.27264,-0.15246,-0.083782,0.10507,0.32826,-0.22113,-0.18679,0.019229,0.10507,0.29392 0.37489,0.091532,-0.082204,-0.13081,-0.18226,0.37489,0.034395,-0.097457,-0.12693,-0.20061,0.37825,0.015005,-0.08815,-0.13184,-0.19415,0.35834,0.019142,-0.07574,-0.11969,-0.19648,0.35679,0.036722,-0.088667,-0.12047,-0.20449 0.27234,0.07684,-0.02516,-0.24616,-0.22066,0.34034,0.28934,-0.01666,-0.21216,-0.22916,0.24684,0.21284,-0.02516,-0.20366,-0.26316,0.22134,0.17884,-0.00816,-0.21216,-0.17816,0.19584,0.17034,0.00884,-0.19516,-0.17816 0.36787,0.21293,0.096726,-0.072047,-0.18548,0.3319,0.21293,0.038624,-0.080347,-0.20485,0.2655,0.12716,-0.013945,-0.14952,-0.26295,0.22123,0.057992,-0.047146,-0.20485,-0.30169,0.17696,0.057992,-0.099715,-0.21869,-0.32659 0.37844,0.058067,-0.040046,-0.14417,-0.1742,0.37443,0.022025,-0.068079,-0.14016,-0.1722,0.36843,0.032037,-0.072083,-0.13616,-0.19623,0.36843,0.036042,-0.046053,-0.14617,-0.19022,0.35841,0.0080093,-0.10412,-0.16619,-0.20824 -0.30287,-0.11591,-0.035789,0.11111,0.31142,-0.24946,-0.12927,-0.062498,0.15117,0.29807,-0.22275,-0.22275,0.071044,0.11111,0.31142,-0.28952,-0.14262,-0.035789,0.11111,0.27136,-0.26281,-0.11591,0.030982,0.11111,0.29807 0.1639,0.13939,0.095637,-0.23255,-0.29031,0.17965,0.14465,0.11402,-0.20192,-0.28418,0.19891,0.15515,0.12277,-0.20454,-0.28155,0.20766,0.1779,0.13677,-0.21067,-0.26755,0.22691,0.18665,0.15865,-0.17916,-0.25618 0.3811,0.27436,-0.042232,-0.13382,-0.22108,0.36884,-0.0025674,-0.04728,-0.15978,-0.22397,0.37749,0.14744,-0.046559,-0.15257,-0.23406,0.19503,0.13518,-0.064588,-0.13815,-0.22685,0.17124,0.096955,-0.063867,-0.15978,-0.23046 0.24744,0.011933,-0.11367,-0.17648,-0.38059,0.27885,0.027633,-0.0037682,-0.097973,-0.28638,0.35735,0.13754,0.10614,-0.082272,-0.17648,0.31025,0.074736,0.027633,-0.14508,-0.20788,0.34165,0.13754,0.011933,-0.17648,-0.22358 0.17695,0.15546,0.080557,-0.1435,-0.30568,0.17695,0.16197,0.11052,-0.092046,-0.30308,0.17891,0.16458,0.0095615,-0.29591,-0.30894,0.26358,0.18607,0.011516,-0.11745,-0.27312,0.29159,0.18737,0.062971,-0.081625,-0.29722 0.20293,0.28196,-0.049943,-0.16058,-0.20799,0.26615,0.26615,-0.034138,-0.19219,-0.2554,0.23454,0.23454,-0.0025288,-0.19219,-0.2396,0.28196,0.18713,-0.065748,-0.14477,-0.2396,0.12391,0.18713,-0.018334,-0.19219,-0.27121 0.25216,0.18184,0.045246,-0.1074,-0.35904,0.23448,0.18204,0.043213,-0.294,-0.29379,0.24078,0.062116,0.053986,-0.11228,-0.28891,0.25765,0.062523,0.055815,-0.11045,-0.27956,0.23509,0.1798,0.052766,-0.0057726,-0.2883 0.15017,0.066052,-0.09111,-0.21728,-0.31689,0.18558,0.15681,-0.086683,-0.17301,-0.27041,0.29183,0.13467,-0.013635,-0.14424,-0.24827,0.33389,0.16345,0.085974,-0.14202,-0.23056,0.34053,0.20329,0.14795,-0.09111,-0.23499 -0.29607,-0.16051,-0.024944,0.12418,0.23263,-0.33674,-0.1334,0.029282,0.15129,0.2733,-0.2554,-0.065613,-0.024944,0.13773,0.32752,-0.20118,-0.21473,-0.011387,0.13773,0.25974,-0.2554,-0.16051,0.002169,0.13773,0.32752 0.22673,0.14249,0.055014,-0.0097845,-0.31758,0.21377,0.15059,0.067973,-0.20418,-0.30462,0.24455,0.13925,0.090652,-0.021124,-0.30786,0.22835,0.14087,0.067973,-0.17826,-0.30786,0.21539,0.15545,0.067973,-0.25116,-0.30462 -0.28606,-0.11415,-0.011002,0.074953,0.31563,-0.25168,-0.16572,-0.045384,0.14372,0.31563,-0.23448,-0.16572,-0.028193,0.10933,0.28124,-0.23448,-0.18291,0.0061887,0.14372,0.24686,-0.26887,-0.096957,-0.079766,0.1781,0.35001 0.31221,0.12158,-0.048426,-0.13343,-0.23988,0.27755,0.12653,-0.040998,-0.15406,-0.22916,0.40381,0.1158,-0.013765,-0.1392,-0.23411,0.4558,0.1026,-0.043474,-0.13673,-0.24236,0.073711,0.085265,-0.036047,-0.15158,-0.23163 0.36098,0.18106,0.0011449,-0.1665,-0.1665,0.36915,0.13199,-0.011122,-0.1665,-0.18695,0.33235,0.15244,-0.080635,-0.18286,-0.18286,0.27102,0.099281,-0.14606,-0.19104,-0.19513,0.27102,0.058391,-0.18695,-0.18286,-0.18286 -0.25072,-0.061735,-0.045987,0.143,0.30049,-0.29797,-0.15623,0.032758,0.064255,0.25324,-0.25072,-0.15623,-0.045987,0.12725,0.25324,-0.23497,-0.14048,0.0012599,0.1745,0.34773,-0.32947,-0.14048,-0.045987,0.1745,0.28474 0.29368,0.21015,-0.099611,-0.16226,-0.20054,0.32153,-0.043924,-0.10657,-0.15878,-0.20925,0.31805,0.22059,-0.083949,-0.15878,-0.19706,0.29716,0.19623,-0.096131,-0.14834,-0.20751,0.30412,0.15098,-0.09091,-0.15182,-0.19706 0.34925,0.10793,0.085996,-0.023693,-0.35276,0.15181,0.19569,0.042121,-0.17726,-0.26501,0.17375,0.15181,-0.045631,-0.13338,-0.26501,0.28344,0.12987,0.020183,-0.067569,-0.26501,0.30537,0.085996,-0.001755,-0.11144,-0.3747 -0.27889,-0.12895,0.058477,0.18968,0.22716,-0.33512,-0.12895,0.058477,0.095963,0.28339,-0.24141,-0.18518,0.039735,0.11471,0.20842,-0.24141,-0.12895,-0.035236,0.18968,0.28339,-0.33512,-0.16644,0.0022491,0.17093,0.28339 -0.18305,-0.15171,0.0050151,0.20875,0.25577,-0.24574,-0.13603,0.0050151,0.17741,0.28711,-0.27708,-0.13603,0.0050151,0.16174,0.30278,-0.35544,-0.12036,-0.010657,0.099047,0.2401,-0.30843,-0.16738,-0.073345,0.16174,0.25577 0.18118,0.16591,0.15294,-0.13783,-0.30878,0.17202,0.15675,0.14073,-0.14546,-0.34083,0.16897,0.1537,0.13539,-0.13325,-0.33701,0.16591,0.1537,0.13844,-0.14164,-0.30191,0.16439,0.1476,0.13768,-0.14393,-0.34465 -0.26919,-0.15215,0.042915,0.19897,0.277,-0.30821,-0.074126,-0.015605,0.10144,0.21848,-0.2887,-0.15215,0.023408,0.062422,0.277,-0.26919,-0.17166,0.042915,0.19897,0.33552,-0.26919,-0.15215,-0.035112,0.10144,0.277 0.36323,-0.0035978,-0.070615,-0.14292,-0.20994,0.37205,0.021093,-0.088251,-0.14469,-0.20641,0.35794,-0.0035978,-0.091778,-0.12881,-0.20289,0.38263,0.047547,-0.03887,-0.12705,-0.19407,0.36676,0.070474,-0.021234,-0.11471,-0.1923 0.35602,0.095517,0.030392,-0.25182,-0.29523,0.29089,0.095517,0.073808,-0.16498,-0.2084,0.26918,0.20406,-0.034733,-0.07815,-0.25182,0.26918,0.18235,0.030392,-0.12157,-0.27353,0.16064,0.0521,0.073808,-0.27353,-0.23011 0.39069,0.17805,-0.034589,-0.13382,-0.17635,0.37651,0.19223,-0.13382,-0.16217,-0.24723,0.30563,0.064642,-0.10547,-0.11965,-0.2047,0.33399,0.092994,-0.077117,-0.19053,-0.2047,0.23475,0.022115,-0.11965,-0.10547,-0.17635 0.24283,0.16474,0.085938,-0.19274,-0.24073,0.24641,0.18193,0.10456,-0.18414,-0.235,0.24283,0.16904,0.10815,-0.17769,-0.24217,0.25572,0.17405,-0.1519,-0.18701,-0.24933,0.25214,0.19268,-0.12181,-0.20348,-0.235 -0.242,-0.15116,-0.0058139,0.085029,0.26671,-0.27834,-0.13299,-0.023982,0.19404,0.28488,-0.31468,-0.16933,0.012355,0.13953,0.32122,-0.26017,-0.20567,-0.096656,0.17587,0.24854,-0.20567,-0.096656,0.012355,0.13953,0.30305 0.28118,0.20772,0.12202,-0.14936,-0.282,0.27098,0.18528,0.091414,-0.082027,-0.32485,0.25261,0.15059,-0.0065296,-0.10855,-0.31056,0.2016,0.12406,-0.022853,-0.27383,-0.23098,0.20364,0.11182,0.026118,-0.25547,-0.18201 -0.26508,-0.12438,-0.011819,0.18516,0.2133,-0.29322,-0.12438,0.0022512,0.17109,0.25551,-0.33543,-0.19473,-0.025889,0.18516,0.31179,-0.26508,-0.12438,-0.011819,0.18516,0.2133,-0.19473,-0.16659,-0.039959,0.12888,0.32586 -0.28343,-0.1529,-0.041023,0.070858,0.27597,-0.20884,-0.11561,-0.041023,0.20139,0.31327,-0.28343,-0.13426,0.014917,0.18274,0.25733,-0.28343,-0.20884,0.033564,0.070858,0.33191,-0.24614,-0.17155,0.014917,0.14545,0.25733 -0.22279,-0.12812,-0.049229,0.15589,0.32946,-0.30169,-0.1439,-0.065008,0.077,0.21901,-0.27013,-0.15968,0.045442,0.14011,0.23479,-0.25435,-0.1439,0.045442,0.20323,0.32946,-0.30169,-0.11234,-0.065008,0.14011,0.2979 0.18091,0.22605,0.12674,-0.20727,-0.27949,0.20799,0.16285,0.10869,-0.2163,-0.27046,0.15383,0.18091,0.10869,-0.2163,-0.24338,0.20799,0.19896,0.11772,-0.24338,-0.27046,0.17188,0.18091,0.07258,-0.20727,-0.2524 -0.28062,-0.14979,-0.11709,0.079149,0.25903,-0.21521,-0.14979,-0.0026165,0.19362,0.30809,-0.29697,-0.10074,-0.0026165,0.17727,0.29174,-0.29697,-0.10074,-0.035323,0.11186,0.27539,-0.23156,-0.1825,-0.0026165,0.16091,0.30809 -0.29362,-0.14164,-0.020061,0.14712,0.37508,-0.24803,-0.11125,-0.035259,0.14712,0.2535,-0.32402,-0.15684,-0.020061,0.16231,0.31429,-0.24803,-0.15684,0.04073,0.14712,0.2687,-0.26323,-0.14164,0.010335,0.13192,0.16231 0.23715,0.23926,-0.10284,-0.18643,-0.19416,0.23996,0.23715,-0.10635,-0.18854,-0.19627,0.24207,0.24207,-0.095816,-0.19416,-0.18011,0.24558,0.24207,-0.10003,-0.18573,-0.19697,0.24558,0.24488,-0.10073,-0.19135,-0.19627 -0.25138,-0.12707,-0.016574,0.16298,0.28729,-0.23756,-0.14088,-0.085633,0.093921,0.34253,-0.29281,-0.20994,0.024861,0.16298,0.24585,-0.22375,-0.15469,0.052485,0.1906,0.23204,-0.30662,-0.14088,-0.044198,0.16298,0.27347 0.24664,0.18764,0.079461,-0.23524,-0.20573,0.25648,0.20731,0.040124,-0.20573,-0.21557,0.19747,0.20731,-0.048385,-0.20573,-0.28441,0.23681,0.22698,0.040124,-0.2254,-0.21557,0.20731,0.19747,-0.03855,-0.2549,-0.1959 0.22536,0.24015,0.17361,-0.16651,-0.23305,0.22536,0.22536,0.003549,-0.21826,-0.24784,0.23276,0.22536,0.018337,-0.16651,-0.24045,0.21797,0.15882,-0.048207,-0.1739,-0.28481,0.22536,0.16621,-0.11475,-0.19608,-0.24784 0.34049,0.23147,0.063525,-0.042546,-0.19281,0.3346,0.18728,0.075311,-0.089689,-0.20165,0.26978,0.11361,0.0075429,-0.12799,-0.27237,0.21379,0.090043,-0.063171,-0.18398,-0.3254,0.17549,0.0429,-0.066118,-0.23112,-0.34898 0.11686,0.11686,0.0884,-0.23409,-0.27203,0.18325,0.18325,0.12634,-0.18666,-0.27203,0.18325,0.20222,0.097885,-0.12027,-0.32894,0.24964,0.18325,0.12634,-0.18666,-0.31945,0.20222,0.20222,0.0884,-0.15821,-0.27203 -0.26424,-0.23088,-0.080741,0.13613,0.28626,-0.2142,-0.16415,0.036033,0.13613,0.31963,-0.23088,-0.11411,-0.064059,0.18617,0.31963,-0.24756,-0.13079,-0.064059,0.10276,0.28626,-0.26424,-0.16415,0.0026691,0.15281,0.26958 -0.21932,-0.16099,-0.04433,0.16565,0.29398,-0.23098,-0.20765,-0.079328,0.16565,0.34064,-0.20765,-0.16099,-0.04433,0.16565,0.31731,-0.23098,-0.16099,-0.04433,0.13066,0.29398,-0.23098,-0.17265,-0.090993,0.16565,0.24732 0.33036,0.15298,-0.14637,-0.16265,-0.17065,0.31122,0.17411,-0.14523,-0.16123,-0.16894,0.30894,0.17212,-0.15808,-0.16294,-0.17494,0.2878,0.16183,-0.13723,-0.15666,-0.17008,0.29094,0.19811,-0.1458,-0.15123,-0.17637 -0.35547,-0.1457,-0.031275,0.10222,0.21664,-0.24105,-0.1457,0.064075,0.15943,0.31199,-0.31733,-0.10756,0.0068652,0.14036,0.21664,-0.26012,-0.18384,0.025935,0.14036,0.29292,-0.27919,-0.12663,0.083146,0.15943,0.27385 0.32787,-0.023246,-0.066379,-0.097404,-0.21924,0.371,-0.010382,-0.047461,-0.11405,-0.2147,0.36041,-0.010382,-0.053515,-0.13978,-0.23967,0.29836,0.2189,-0.058812,-0.12767,-0.2374,0.31576,0.18031,-0.035354,-0.14735,-0.22983 -0.31396,-0.17067,0.020379,0.13183,0.29104,-0.25028,-0.17067,0.020379,0.068143,0.19551,-0.2662,-0.15475,0.020379,0.19551,0.3388,-0.2662,-0.21844,0.0363,0.16367,0.2592,-0.20252,-0.15475,0.0044579,0.11591,0.30696 0.23586,0.11249,0.060601,-0.1331,-0.33142,0.23816,0.082508,0.061754,-0.11696,-0.33949,0.26122,0.077896,0.045612,-0.012037,-0.36139,0.28082,0.11249,0.034082,-0.018955,-0.31989,0.29235,0.073284,0.027164,-0.032791,-0.33026 0.19917,0.19247,0.13885,-0.062189,-0.25653,0.19917,0.16566,0.13885,-0.1024,-0.31014,0.21257,0.16566,0.058437,-0.19622,-0.32355,0.20587,0.19917,0.045034,-0.22302,-0.29674,0.23267,0.15226,-0.048787,-0.20962,-0.27664 0.29427,0.20231,0.11035,-0.14254,-0.30347,0.31726,0.087362,-0.050578,-0.073568,-0.18852,0.29427,0.018392,0.018392,-0.096558,-0.28048,0.17932,0.15633,-0.050578,-0.096558,-0.30347,0.2253,0.24829,-0.027588,-0.2345,-0.30347 0.3605,0.19992,0.0092334,-0.040948,-0.12124,0.28021,0.11963,-0.010839,-0.14131,-0.16138,0.34043,0.1397,-0.1112,-0.19149,-0.26175,0.31032,0.1397,-0.10117,-0.15135,-0.25171,0.26014,0.0092334,-0.12124,-0.24167,-0.26175 0.2634,0.2167,-0.12467,-0.16581,-0.20084,0.26673,0.21892,-0.15247,-0.16526,-0.19862,0.26396,0.22948,-0.15303,-0.16137,-0.19417,0.26229,0.22003,-0.099097,-0.14802,-0.19528,0.26562,0.22059,-0.12912,-0.14802,-0.19195 0.24399,0.19685,0.14837,-0.1412,-0.34727,0.23053,0.16318,0.11941,-0.11494,-0.37959,0.20763,0.14837,0.098535,-0.11292,-0.27656,0.18473,0.11739,0.076985,-0.12571,-0.29609,0.17194,0.08776,0.048028,-0.1109,-0.33851 0.24479,0.24479,-0.072048,-0.16422,-0.1911,0.23903,0.23711,-0.064367,-0.14886,-0.24487,0.23711,0.23711,-0.08741,-0.15078,-0.19494,0.23327,0.24287,-0.098931,-0.18726,-0.20262,0.23903,0.24095,-0.17958,-0.18726,-0.22183 0.26755,0.16999,0.1062,0.0086307,-0.17712,0.26943,0.17562,0.076175,-0.16586,-0.22778,0.23941,0.16624,0.036774,-0.24279,-0.26905,0.23566,0.13246,-0.042028,-0.2578,-0.28406,0.24504,0.14747,-0.085181,-0.2334,-0.29157 0.32865,0.09007,-0.098615,-0.15319,-0.16723,0.32865,-0.017527,-0.11733,-0.15943,-0.17347,0.35049,0.068238,-0.098615,-0.13448,-0.17191,0.39259,0.1197,-0.06119,-0.15163,-0.18594,0.38323,0.093189,-0.11109,-0.16567,-0.1875 0.23032,0.042813,-0.092605,-0.23323,-0.28271,0.36573,0.092293,-0.13427,-0.215,-0.24365,0.31365,0.12094,-0.084793,-0.17073,-0.19417,0.31365,0.11313,-0.019688,-0.13427,-0.1499,0.38657,0.16521,0.0089584,-0.079584,-0.11865 0.28308,0.14955,-0.028486,-0.11751,-0.25104,0.34985,0.082789,0.038279,-0.16202,-0.3178,0.26083,0.082789,0.082789,-0.22878,-0.29555,0.26083,0.082789,0.016024,-0.028486,-0.36231,0.32759,0.016024,-0.028486,-0.072996,-0.13976 -0.31332,-0.1577,0.032507,0.17084,0.25729,-0.24415,-0.1404,0.084381,0.17084,0.29188,-0.31332,-0.17499,0.015216,0.06709,0.24,-0.29603,-0.19228,0.06709,0.15355,0.29188,-0.24415,-0.1577,0.049799,0.11896,0.22271 -0.28211,-0.21819,0.016194,0.22927,0.22927,-0.28211,-0.17558,0.058809,0.12273,0.22927,-0.30342,-0.11165,0.016194,0.14404,0.25058,-0.30342,-0.17558,0.058809,0.14404,0.27189,-0.28211,-0.090345,0.037502,0.18666,0.22927 0.28984,0.017757,-0.13022,-0.17318,-0.16363,0.32326,0.046398,-0.13022,-0.16841,-0.1875,0.33758,0.14664,-0.13499,-0.17318,-0.16841,0.35667,0.15619,-0.063391,-0.16363,-0.17318,0.36145,0.1896,-0.053844,-0.13499,-0.20659 -0.19636,-0.14196,-0.060375,0.13,0.26598,-0.31874,-0.14196,-0.0059831,0.1164,0.27958,-0.29154,-0.046777,-0.019581,0.14359,0.36116,-0.25075,-0.20995,0.0076149,0.15719,0.29317,-0.27794,-0.15556,0.0076149,0.089203,0.26598 -0.28662,-0.098053,-0.012342,0.24479,0.27907,-0.30376,-0.14948,0.0047998,0.15908,0.22765,-0.25233,-0.14948,-0.029485,0.090511,0.26193,-0.25233,-0.1152,0.039084,0.14194,0.29622,-0.28662,-0.14948,-0.080911,0.090511,0.3305 0.25934,0.15921,0.0090119,-0.21629,-0.29139,0.25934,-0.016021,0.059078,-0.14119,-0.21629,0.25934,0.20928,0.10914,-0.091121,-0.24132,0.18424,0.13418,-0.091121,-0.14119,-0.24132,0.35948,0.15921,0.034045,-0.14119,-0.36649 0.19123,0.039305,-0.090568,-0.21309,-0.33806,0.21329,0.06626,-0.075865,-0.16898,-0.31356,0.25249,0.12997,-0.0097037,-0.16163,-0.25475,0.34316,0.17653,0.054007,-0.068514,-0.22289,0.37501,0.23044,0.076061,-0.053811,-0.17633 0.28889,0.024954,-0.08302,-0.19099,-0.20299,0.33688,0.21691,0.00095977,-0.071023,-0.23898,0.30089,0.2529,-0.023034,-0.11901,-0.23898,0.19291,0.15692,-0.071023,-0.167,-0.22698,0.33688,0.096936,-0.14301,-0.22698,-0.20299 -0.21013,-0.21013,-0.011269,0.13788,0.30359,-0.25984,-0.16041,-0.094126,0.18759,0.25388,-0.27641,-0.14384,-0.060983,0.10473,0.27045,-0.25984,-0.077555,-0.02784,0.17102,0.30359,-0.27641,-0.1107,-0.044412,0.18759,0.30359 -0.30259,-0.12887,0.029059,0.1554,0.26595,-0.23942,-0.097284,0.013266,0.10802,0.29754,-0.23942,-0.16046,-0.034113,0.1554,0.36071,-0.2868,-0.097284,-0.065699,0.076438,0.31333,-0.2868,-0.19204,0.013266,0.092231,0.25016 0.22757,0.21936,0.12906,-0.051557,-0.24038,0.21936,0.26041,0.063379,-0.21575,-0.2568,0.20294,0.18652,-0.0022987,-0.19112,-0.28143,0.20294,0.16189,-0.026928,-0.19112,-0.2568,0.20294,0.20294,-0.026928,-0.2568,-0.28143 0.23884,0.11829,-0.016327,-0.044979,-0.35475,0.2502,0.15451,0.0058386,-0.034707,-0.32934,0.24857,0.11072,0.010704,-0.030382,-0.36286,0.25614,0.094499,0.0096229,-0.026058,-0.35691,0.25722,0.1318,0.030166,-0.029301,-0.3315 0.26935,0.26412,0.128,-0.19026,-0.22305,0.2699,0.12579,0.10623,-0.18365,-0.27017,0.15142,0.1313,0.098238,-0.20238,-0.27843,0.17456,0.11422,0.038995,-0.2101,-0.27375,0.28533,0.11863,0.037618,-0.20073,-0.28119 0.2853,0.22143,-0.034066,-0.076648,-0.26827,0.2853,0.22143,-0.012775,-0.11923,-0.24698,0.24272,0.15755,0.0085164,-0.16181,-0.37472,0.093681,0.20014,0.0085164,-0.1831,-0.28956,0.17884,0.22143,-0.012775,-0.055357,-0.28956 0.36252,0.11285,-0.011984,-0.11185,-0.31159,0.21272,0.03795,-0.011984,-0.18675,-0.18675,0.28762,0.18775,-0.086885,-0.26165,-0.18675,0.26265,0.062917,0.062917,-0.13682,-0.21172,0.36252,0.087884,0.11285,-0.16179,-0.28662 0.23362,0.19477,0.13002,-0.012432,-0.29086,0.22714,0.18182,0.052318,-0.090132,-0.24553,0.20124,0.19477,0.045843,-0.23258,-0.32971,0.22714,0.16239,0.078218,-0.25201,-0.29086,0.20124,0.11707,-0.025382,-0.18726,-0.29086 0.26938,0.08752,-0.13412,-0.17959,-0.23642,0.27506,0.25801,-0.13412,-0.17959,-0.17959,0.2637,0.2296,-0.12844,-0.19664,-0.19095,0.29211,0.20118,-0.071607,-0.1739,-0.1739,0.24096,0.25801,-0.071607,-0.1398,-0.18527 0.22218,0.19789,0.052748,-0.16186,-0.26747,0.22274,0.20071,0.067432,-0.16581,-0.25674,0.2346,0.20241,0.11431,-0.14831,-0.25504,0.2346,0.20693,-0.14774,-0.15734,-0.26352,0.23121,0.20975,-0.15113,-0.1692,-0.25335 -0.22562,-0.16747,-0.012405,0.10389,0.25895,-0.34191,-0.070553,-0.012405,0.14266,0.27834,-0.245,-0.14808,-0.012405,0.14266,0.27834,-0.16747,-0.14808,-0.031788,0.18142,0.33648,-0.34191,-0.18685,-0.031788,0.16204,0.25895 0.157,0.15383,-0.031718,-0.16256,-0.21172,0.37269,0.13004,-0.028546,-0.15621,-0.23313,0.39331,0.14115,-0.029339,-0.1467,-0.22361,0.39172,-0.074538,-0.0031718,-0.17286,-0.21806,0.24978,0.11974,-0.015859,-0.16097,-0.24027 0.22425,0.18525,-0.053625,-0.22425,-0.19012,0.23887,0.19987,-0.0585,-0.23887,-0.2535,0.22912,0.22912,0.04875,-0.22425,-0.19987,0.22912,0.2145,0.06825,-0.23887,-0.22425,0.22425,0.20475,0.0585,-0.22425,-0.22425 0.27108,0.16772,0.078139,-0.10791,-0.2974,0.22973,0.13671,0.071249,-0.10102,-0.37319,0.21251,0.15738,0.081585,-0.080344,-0.35941,0.17805,0.15738,0.095366,-0.10102,-0.31118,0.12982,0.13326,0.078139,-0.080344,-0.3663 -0.31151,-0.17914,0.019414,0.21797,0.26209,-0.24532,-0.13502,-0.0026474,0.12972,0.26209,-0.28944,-0.15708,-0.04677,0.10766,0.32827,-0.17914,-0.2012,0.041475,0.12972,0.30621,-0.24532,-0.2012,0.019414,0.12972,0.24003 0.34125,0.20244,-0.11568,-0.12146,-0.15038,0.30655,0.19665,-0.1446,-0.17352,-0.15038,0.2892,0.19665,-0.1446,-0.16195,-0.19087,0.30076,0.075191,-0.1446,-0.17352,-0.20244,0.31812,0.12146,-0.13881,-0.16195,-0.17352 0.3007,0.00023113,-0.10378,-0.13845,-0.15578,0.31803,0.058013,-0.12111,-0.2309,-0.17889,0.3527,0.063792,-0.10378,-0.17889,-0.20779,0.3527,0.17358,-0.063329,-0.15578,-0.17889,0.3527,0.20247,-0.02866,-0.13845,-0.19045 0.14853,0.1431,0.14281,-0.15302,-0.3208,0.16625,0.14424,0.14767,-0.15416,-0.31966,0.18083,0.16082,0.15224,-0.15245,-0.3188,0.17968,0.18483,0.16025,-0.15359,-0.3168,0.15224,0.14881,0.1491,-0.15588,-0.31623 -0.27532,-0.17533,0.024666,0.14133,0.32466,-0.25866,-0.15866,-0.058665,0.14133,0.25799,-0.27532,-0.12533,0.024666,0.14133,0.22466,-0.22533,-0.19199,-0.025332,0.108,0.25799,-0.22533,-0.15866,-0.075331,0.24133,0.34132 0.29769,0.14851,-0.061439,-0.12774,-0.12774,0.29217,0.093263,-0.14431,-0.18299,-0.19957,0.30322,0.12641,-0.12774,-0.19957,-0.19957,0.29217,0.20376,-0.14431,-0.19957,-0.21614,0.30322,0.23139,0.038012,-0.19957,-0.19957 0.21075,0.1717,0.10104,-0.24668,-0.25256,0.21075,0.16086,0.10786,-0.24358,-0.24946,0.21664,0.16395,0.088027,-0.24141,-0.24234,0.21571,0.17697,0.10755,-0.23397,-0.23614,0.21199,0.15838,0.10786,-0.2287,-0.23521 0.23627,0.16623,0.096188,-0.13728,-0.3007,0.21292,0.096188,-0.11393,-0.16062,-0.32405,0.14288,0.18957,0.026148,-0.13728,-0.23066,0.28296,0.16623,0.0028016,-0.067238,-0.16062,0.37635,0.18957,-0.020545,-0.18397,-0.3474 0.14009,0.14552,0.12226,-0.19882,-0.31437,0.14552,0.15948,0.13621,-0.20037,-0.30351,0.19438,0.18042,0.14552,-0.17477,-0.29808,0.18352,0.17499,0.14707,-0.16857,-0.288,0.18042,0.17809,0.16724,-0.17788,-0.27637 0.13879,0.11486,0.11785,-0.1713,-0.33582,0.1707,0.15375,0.13879,-0.1364,-0.29394,0.18964,0.18167,0.15873,-0.16133,-0.29194,0.18067,0.17369,0.16472,-0.18326,-0.32784,0.19064,0.16272,0.12982,-0.16133,-0.30391 -0.3067,-0.097109,0.042616,0.095013,0.26967,-0.32416,-0.097109,-0.027246,0.12994,0.23474,-0.32416,-0.16697,0.042616,0.12994,0.23474,-0.2019,-0.14951,0.0076849,0.095013,0.3046,-0.32416,-0.079643,0.0076849,0.16488,0.33953 -0.27642,-0.15142,-0.06214,0.15214,0.24142,-0.25856,-0.15142,0.0092854,0.18785,0.29499,-0.20499,-0.15142,-0.0085711,0.11642,0.29499,-0.20499,-0.15142,0.062855,0.16999,0.29499,-0.38356,-0.15142,-0.044284,0.11642,0.25928 0.28871,0.11623,-0.13586,-0.1624,-0.21547,0.24891,0.1693,-0.1624,-0.21547,-0.1624,0.28871,0.1693,-0.1226,-0.1624,-0.17567,0.34178,0.22237,-0.082792,-0.1624,-0.13586,0.27544,0.24891,-0.09606,-0.1624,-0.21547 0.22779,0.051663,0.022309,-0.095107,-0.24188,0.28649,0.13972,0.051663,-0.095107,-0.30058,0.25714,0.081017,-0.12446,-0.21252,-0.38865,0.31585,0.11037,0.051663,-0.12446,-0.21252,0.37456,0.13972,-0.095107,-0.0070449,-0.21252 -0.30558,-0.15323,-0.0008706,0.08619,0.30384,-0.24029,-0.087931,-0.0008706,0.04266,0.28208,-0.30558,-0.087931,-0.0008706,0.15148,0.28208,-0.30558,-0.087931,-0.044401,0.19501,0.30384,-0.21852,-0.21852,-0.0008706,0.10795,0.30384 -0.24688,-0.27328,-0.25744,-0.26272,-0.26272,-0.13072,-0.14656,-0.17296,-0.1624,-0.136,-0.0092922,-0.019852,-0.04097,-0.030411,-0.04097,0.13854,0.1491,0.14382,0.1491,0.12798,0.30749,0.30221,0.29693,0.29693,0.28109 0.24566,0.23868,-0.12964,-0.15754,-0.21753,0.24706,0.23589,-0.12964,-0.1408,-0.22172,0.25264,0.23868,-0.13103,-0.13103,-0.21474,0.24287,0.23729,-0.11848,-0.15057,-0.21056,0.24845,0.2331,-0.11429,-0.14219,-0.21056 -0.21239,-0.12849,-0.056572,0.2191,0.27903,-0.26033,-0.12849,-0.056572,0.20711,0.27903,-0.26033,-0.2004,-0.068558,0.18314,0.26704,-0.27231,-0.15246,-0.1165,0.18314,0.24307,-0.22437,-0.14047,-0.044587,0.20711,0.25506 0.28373,0.11705,-0.17928,-0.1978,-0.1978,0.33929,0.15409,0.0059265,-0.17928,-0.1052,0.30225,0.11705,-0.031114,-0.1978,-0.17928,0.32077,0.098528,-0.1052,-0.1978,-0.23484,0.39485,0.042967,-0.031114,-0.14224,-0.1978 0.20658,0.19337,-0.13684,-0.17647,-0.21609,0.31225,0.10091,-0.057589,-0.25572,-0.29534,0.27263,0.10091,-0.070798,-0.097215,-0.20288,0.28583,0.10091,0.074496,-0.2293,-0.21609,0.31225,0.27263,0.034871,-0.13684,-0.17647 0.15394,0.19298,0.13053,-0.088058,-0.2598,0.19298,0.16175,0.11491,-0.095864,-0.26761,0.20078,0.18517,0.060266,-0.22077,-0.29883,0.20078,0.16175,0.02904,-0.28322,-0.30664,0.23982,0.18517,0.10711,-0.19735,-0.29883 0.24416,0.12508,-0.1763,-0.24539,-0.30126,0.2471,0.15595,0.086855,-0.23069,-0.28215,0.25886,0.13096,0.057452,-0.19247,-0.27626,0.2618,0.1486,0.03393,-0.030755,-0.26891,0.25739,0.17359,0.075094,-0.033695,-0.21893 -0.27709,-0.16684,0.016905,0.072029,0.32927,-0.22197,-0.13009,0.016905,0.12715,0.32927,-0.25872,-0.11172,-0.038219,0.20065,0.2374,-0.33221,-0.16684,-0.019845,0.20065,0.18228,-0.27709,-0.14847,0.016905,0.12715,0.29252 0.25548,0.24817,0.033585,-0.17005,-0.27597,0.25228,0.13449,0.05687,-0.16639,-0.29149,0.25228,0.23996,0.042717,-0.14996,-0.26501,0.25091,0.24315,0.039977,-0.16776,-0.26684,0.059153,0.068285,0.047739,-0.16913,-0.30245 0.25149,0.29761,-0.012401,-0.1538,-0.25436,0.24922,0.27039,-0.01845,-0.16287,-0.25436,0.18344,0.24393,-0.015425,-0.17648,-0.25512,0.16378,0.25451,-0.01845,-0.15304,-0.26419,0.15546,0.16151,-0.044158,-0.17194,-0.27629 0.1396,0.028777,0.011518,-0.14381,-0.26554,0.15777,0.092364,0.046037,-0.15835,-0.28552,0.22045,0.1832,0.0033428,-0.14381,-0.30823,0.28131,0.27313,0.05512,-0.14109,-0.26826,0.34762,0.26314,0.05512,-0.15835,-0.28552 -0.28879,-0.282,-0.28879,-0.29897,-0.282,-0.16326,-0.18361,-0.19719,-0.17683,-0.18701,0.057269,0.07084,0.084411,0.097982,0.081018,0.17941,0.18959,0.17601,0.16244,0.17262,0.21673,0.20316,0.22012,0.20655,0.2303 0.17873,0.19494,0.13551,-0.096821,-0.31294,0.16792,0.17333,0.14091,-0.12924,-0.29673,0.17333,0.16792,0.16252,-0.16706,-0.32375,0.16792,0.14091,0.070671,-0.12924,-0.32375,0.15712,0.16792,0.1301,-0.21028,-0.33995 0.19572,0.18011,0.095801,-0.2227,-0.23832,0.18948,0.18636,0.092679,-0.25393,-0.25081,0.19885,0.18323,0.039595,-0.22583,-0.25393,0.20197,0.18948,0.1364,-0.21646,-0.25081,0.1926,0.18011,0.14264,-0.22583,-0.26642 -0.2631,-0.1698,0.078992,0.18784,0.28114,-0.2631,-0.1387,0.047893,0.17229,0.31224,-0.232,-0.1698,-0.060954,0.20339,0.20339,-0.2631,-0.21645,-0.014306,0.14119,0.28114,-0.232,-0.18535,-0.092053,0.14119,0.25004 -0.38597,-0.12251,0.042154,0.10802,0.27268,-0.27071,-0.12251,-0.023711,0.12448,0.23975,-0.35304,-0.089576,0.0092211,0.14095,0.22328,-0.23777,-0.12251,0.075086,0.12448,0.30561,-0.27071,-0.12251,0.025687,0.12448,0.30561 0.38668,0.075065,-0.035732,-0.016689,-0.12575,0.35033,0.059484,-0.049582,-0.044388,-0.21058,0.33128,0.075065,-0.073818,-0.15345,-0.22616,0.33821,0.071602,-0.098055,-0.18461,-0.24174,0.32089,0.047366,-0.11017,-0.23309,-0.25213 0.16549,0.053948,-0.082225,-0.23144,-0.34443,0.22199,0.058294,-0.050355,-0.19087,-0.3198,0.28428,0.12203,-0.022831,-0.12568,-0.2662,0.31905,0.19012,0.059742,-0.082225,-0.20101,0.36541,0.21185,0.1003,-0.050355,-0.18508 0.16614,0.15908,0.14495,-0.14467,-0.32833,0.15202,0.15202,0.10963,-0.17293,-0.30008,0.18734,0.14495,0.14495,-0.22944,-0.32127,0.18027,0.17321,0.15908,-0.18705,-0.25769,0.1944,0.16614,0.15908,-0.17999,-0.27182 -0.2303,-0.16805,-0.04357,0.11204,0.22096,-0.26142,-0.10581,0.018673,0.11204,0.2832,-0.33922,-0.18361,0.018673,0.14316,0.25208,-0.29254,-0.10581,0.096475,0.1276,0.26764,-0.3081,-0.10581,-0.04357,0.22096,0.31432 0.28202,0.081588,-0.059894,-0.14243,-0.14243,0.35276,0.12875,-0.048104,-0.13063,-0.13063,0.34097,0.093378,-0.048104,-0.23675,-0.21317,0.35276,0.069798,-0.15422,-0.14243,-0.20138,0.37634,0.10517,-0.16601,-0.15422,-0.21317 0.28659,0.19214,-0.13169,-0.23964,-0.17892,0.25286,0.17865,-0.064227,-0.20591,-0.19241,0.25286,0.22587,-0.11145,-0.17892,-0.17217,0.25961,0.26635,-0.064227,-0.17892,-0.17892,0.23937,0.23937,-0.12495,-0.19241,-0.17892 0.24742,0.2527,-0.053654,-0.10703,-0.19988,0.25632,0.25659,-0.041144,-0.20294,-0.21072,0.23658,0.23574,-0.19349,-0.19571,-0.21489,0.23046,0.23769,-0.067554,-0.19571,-0.21517,0.20906,0.20238,-0.065608,-0.19627,-0.20516 0.37234,0.058435,-0.060287,-0.1287,-0.17901,0.38844,0.052399,-0.068336,-0.13876,-0.18505,0.40655,0.0081294,-0.056262,-0.15285,-0.18303,0.3985,0.028252,-0.084433,-0.13474,-0.19309,0.27374,0.024227,-0.098519,-0.15687,-0.19108 0.3199,-0.002099,-0.097507,-0.13329,-0.20723,0.32229,0.052761,-0.087967,-0.14044,-0.22154,0.32229,-0.0092546,-0.097507,-0.14283,-0.212,0.33183,0.23404,-0.083196,-0.13329,-0.21438,0.32229,0.25312,-0.035492,-0.13329,-0.20723 0.18651,0.15939,0.098396,-0.13218,-0.30759,0.19337,0.16802,-0.093737,-0.14943,-0.26124,0.1994,0.17041,-0.096127,-0.17676,-0.21625,0.27588,0.17727,0.11835,-0.1963,-0.28868,0.30414,0.20636,0.11637,-0.20326,-0.25231 -0.25167,-0.24059,-0.24613,-0.23229,-0.2489,-0.15475,-0.16028,-0.16859,-0.15198,-0.15475,-0.049514,-0.077207,-0.06613,-0.06613,-0.077207,0.22187,0.22187,0.2191,0.20803,0.2108,0.2551,0.25787,0.25787,0.2468,0.2468 -0.28101,-0.12923,0.044233,0.17433,0.23938,-0.23765,-0.10755,0.044233,0.17433,0.26106,-0.32438,-0.085865,-0.042499,0.0876,0.32611,-0.34606,-0.1726,0.00086732,0.13097,0.32611,-0.23765,-0.15091,-0.020816,0.0876,0.23938 0.16849,0.16397,0.10435,-0.10341,-0.33286,0.15133,0.15133,0.12513,-0.12961,-0.31209,0.15855,0.16126,0.13687,-0.13322,-0.35093,0.17662,0.17301,0.11158,-0.11787,-0.34732,0.18746,0.18385,0.14591,-0.14677,-0.32564 0.22606,0.14095,0.072857,-0.11439,-0.16546,0.29415,0.20904,-0.012256,-0.26759,-0.21653,0.27713,0.14095,-0.012256,-0.25057,-0.16546,0.31117,0.24308,-0.097369,-0.21653,-0.1995,0.24308,0.12392,-0.097369,-0.1995,-0.26759 0.18879,0.12614,0.021719,-0.12447,-0.16623,0.27232,0.063486,0.00083534,-0.16623,-0.22888,0.27232,0.20967,-0.061815,-0.12447,-0.16623,0.23055,0.23055,-0.082698,-0.12447,-0.43772,0.35585,0.1679,-0.020048,-0.14535,-0.29153 -0.23051,-0.23788,-0.23788,-0.21945,-0.22682,-0.17155,-0.18629,-0.20103,-0.17892,-0.19366,-0.027856,-0.020486,-0.064701,-0.061017,-0.064701,0.1969,0.20796,0.20796,0.20427,0.21533,0.25954,0.2448,0.26691,0.25217,0.26691 0.23341,0.23799,-0.12909,-0.15526,-0.18274,0.24584,0.2393,-0.13955,-0.19714,-0.2063,0.25631,0.24977,-0.12123,-0.19059,-0.20957,0.2622,0.25631,-0.098332,-0.17489,-0.1991,0.25828,0.17845,-0.10422,-0.12909,-0.18078 -0.29561,-0.14002,-0.062233,0.13224,0.26838,-0.3345,-0.12058,0.073901,0.15169,0.22948,-0.21781,-0.12058,0.015558,0.15169,0.34617,-0.27616,-0.15947,-0.062233,0.13224,0.28783,-0.19837,-0.17892,-0.062233,0.15169,0.28783 -0.22908,-0.23969,-0.25031,-0.22377,-0.22908,-0.18662,-0.17069,-0.19192,-0.16539,-0.14946,-0.027387,-0.032695,-0.027387,-0.064541,-0.053926,0.169,0.15307,0.14246,0.13184,0.13715,0.32292,0.29107,0.31761,0.29107,0.28576 -0.33812,-0.10266,-0.032022,0.10925,0.32116,-0.29102,-0.055568,-0.032022,0.10925,0.29762,-0.24393,-0.1733,-0.0084764,0.085706,0.22698,-0.24393,-0.1733,0.062161,0.17989,0.34471,-0.24393,-0.1733,-0.0084764,0.10925,0.27407 -0.29104,-0.18999,-0.048507,0.15361,0.21424,-0.31125,-0.10914,0.012127,0.13339,0.27487,-0.18999,-0.18999,0.052549,0.21424,0.25466,-0.25062,-0.14956,-0.048507,0.17382,0.35572,-0.29104,-0.12935,0.012127,0.092972,0.25466 0.27831,0.18162,-0.13666,-0.16083,-0.17292,0.27831,0.234,-0.14875,-0.13666,-0.18903,0.27428,0.19774,-0.12457,-0.16083,-0.17292,0.28637,0.21385,-0.14875,-0.17292,-0.18903,0.2622,0.21788,-0.13666,-0.17292,-0.20112 0.16606,0.059511,-0.066773,-0.14767,-0.22463,0.4206,0.10687,-0.068746,-0.14175,-0.19503,0.41271,0.069377,-0.05296,-0.14965,-0.197,0.37325,0.0062353,-0.076638,-0.13781,-0.23449,0.35746,0.065431,-0.037175,-0.12202,-0.18516 0.1746,0.12944,0.084289,-0.09633,-0.30705,0.21975,0.15955,0.1746,-0.11138,-0.30705,0.18965,0.1445,0.15955,-0.2619,-0.30705,0.2047,0.18965,0.054186,-0.15654,-0.30705,0.1746,0.15955,0.11439,-0.20169,-0.27695 0.33894,-0.02036,0.0095814,-0.02036,-0.20001,0.309,0.039523,0.0095814,-0.080244,-0.28984,0.27906,0.12935,0.069465,-0.11019,-0.31978,0.27906,0.12935,0.039523,-0.080244,-0.4096,0.27906,0.069465,-0.050302,-0.14013,-0.25989 -0.24456,-0.18872,-0.0072585,0.23004,0.31379,-0.25852,-0.091011,-0.049135,0.076494,0.31379,-0.31435,-0.11893,-0.035176,0.11837,0.31379,-0.25852,-0.20268,0.048576,0.10441,0.23004,-0.27247,-0.10497,0.020659,0.10441,0.27192 -0.23427,-0.18844,-0.10595,0.23317,0.27899,-0.21594,-0.17011,0.0040328,0.17818,0.26983,-0.20677,-0.18844,-0.078456,0.18734,0.24233,-0.21594,-0.18844,-0.078456,0.19651,0.27899,-0.23427,-0.18844,-0.032629,0.16901,0.28816 0.45144,0.15131,0.040052,-0.11519,-0.17211,0.45532,0.11638,0.012885,-0.12812,-0.22774,0.22117,0.099561,-0.055679,-0.14624,-0.25361,0.20694,0.10732,-0.080259,-0.16176,-0.23162,0.20952,0.023234,-0.088021,-0.16952,-0.26525 -0.32895,-0.17571,0.011578,0.062658,0.26698,-0.24382,-0.15869,0.011578,0.16482,0.284,-0.22679,-0.056528,0.011578,0.13076,0.33508,-0.27787,-0.19274,-0.039502,0.18184,0.26698,-0.24382,-0.20977,0.028605,0.14779,0.24995 -0.22521,-0.20789,0,0.08662,0.22521,-0.27718,-0.12127,0.069296,0.17324,0.27718,-0.31183,-0.12127,0.034648,0.20789,0.31183,-0.27718,-0.22521,0.051972,0.08662,0.27718,-0.27718,-0.15592,0.017324,0.15592,0.22521 -0.23011,-0.24928,-0.23011,-0.24289,-0.21732,-0.17897,-0.1598,-0.18537,-0.18537,-0.17897,-0.038351,-0.019176,-0.025568,-0.038351,-0.044743,0.13423,0.12145,0.16619,0.14062,0.14701,0.31959,0.3132,0.28764,0.30042,0.29403 0.1412,0.09183,0.09183,-0.15502,-0.32782,0.23994,0.16589,0.11652,-0.13034,-0.27845,0.23994,0.19057,-0.031597,-0.17971,-0.27845,0.26463,0.16589,-0.0069119,-0.15502,-0.37719,0.314,0.16589,0.017773,-0.17971,-0.10565 0.23795,0.14556,0.068573,-0.025527,-0.35402,0.2294,0.13701,0.039488,-0.05119,-0.35744,0.22427,0.13872,0.039488,-0.099096,-0.35573,0.21058,0.13872,0.054886,-0.03066,-0.34718,0.20887,0.12503,0.022379,-0.037503,-0.36258 -0.25356,-0.11687,-0.031439,0.12234,0.25903,-0.28773,-0.11687,0.036906,0.10525,0.36155,-0.28773,-0.11687,0.0027338,0.088165,0.32737,-0.28773,-0.11687,0.0027338,0.088165,0.22486,-0.21939,-0.2023,-0.048525,0.10525,0.36155 -0.30259,-0.17881,-0.041263,0.20631,0.19256,-0.28884,-0.11003,-0.013754,0.11003,0.34386,-0.26133,-0.11003,-0.027508,0.11003,0.34386,-0.26133,-0.1513,-0.027508,0.16505,0.26133,-0.23382,-0.11003,0.013754,0.055017,0.31635 0.38663,0.04846,-0.075638,-0.14544,-0.17492,0.37267,-0.012037,-0.083394,-0.14544,-0.18112,0.37887,-0.0058326,-0.07874,-0.13924,-0.18733,0.37577,0.04846,-0.063228,-0.13458,-0.18112,0.36336,0.015885,-0.063228,-0.13769,-0.18112 0.32102,0.11166,0.041872,-0.19075,-0.33032,0.25123,0.25123,-0.051177,-0.12096,-0.33032,0.18144,0.18144,0.041872,-0.19075,-0.26054,0.25123,0.11166,0.11166,-0.051177,-0.26054,0.15818,0.11166,0.11166,-0.19075,-0.26054 -0.27525,-0.26767,-0.28283,-0.2222,-0.27525,-0.16915,-0.14642,-0.14642,-0.16915,-0.14642,-0.025161,-0.025161,-0.025161,0.0051534,-0.017582,0.15672,0.15672,0.14157,0.15672,0.15672,0.26282,0.31587,0.29314,0.28556,0.26282 0.15404,0.18042,-0.030597,-0.10973,-0.18886,0.25954,0.10129,0.048533,-0.08335,-0.18886,0.28592,0.022156,-0.056973,-0.18886,-0.37349,0.33867,0.12766,0.074909,-0.26799,-0.26799,0.33867,0.18042,0.022156,-0.10973,-0.26799 -0.28031,-0.11014,-0.0018564,0.21472,0.21472,-0.31125,-0.094675,0.029083,0.13737,0.24566,-0.26484,-0.12561,-0.079205,0.19925,0.26113,-0.2339,-0.14108,-0.032796,0.1219,0.32301,-0.34219,-0.15655,0.060023,0.075492,0.29207 0.24943,0.23532,-0.11957,-0.14264,-0.19898,0.2473,0.23638,-0.12862,-0.15568,-0.20323,0.24898,0.23417,-0.13155,-0.17236,-0.20093,0.2512,0.23763,-0.12534,-0.15328,-0.20616,0.25023,0.23931,-0.12738,-0.15834,-0.2059 0.19926,0.12378,0.048305,-0.12781,-0.22844,0.27474,0.12378,0.073464,-0.15297,-0.32908,0.19926,0.14894,-0.0020127,-0.17813,-0.32908,0.27474,0.073464,0.023146,-0.07749,-0.3794,0.19926,0.24958,0.1741,-0.12781,-0.2536 0.14052,0.0889,-0.031867,-0.15069,-0.25003,0.14733,0.065525,-0.023101,-0.15361,-0.26853,0.45217,0.086952,-0.029919,-0.12634,-0.26561,0.41029,0.11422,-0.0045969,-0.11757,-0.21399,0.38108,0.10059,0.0041684,-0.12926,-0.22665 0.22527,0.13305,0.086574,-0.09635,-0.35874,0.23726,0.10906,0.09407,-0.10984,-0.36099,0.21177,0.11356,0.085074,-0.043122,-0.34899,0.22302,0.10682,0.076078,-0.046121,-0.34225,0.22602,0.10382,0.082825,-0.062614,-0.34524 0.22379,0.098909,0.19882,-0.17584,-0.3257,0.24877,0.048955,0.073932,-0.15086,-0.35068,0.24877,0.17384,-0.025976,-0.17584,-0.25077,0.29872,0.048955,-0.025976,-0.17584,-0.20081,0.29872,0.17384,0.073932,-0.10091,-0.25077 -0.1665,-0.13293,-0.015441,0.13561,0.30345,-0.28399,-0.13293,-0.032225,0.13561,0.20275,-0.35112,-0.18328,-0.015441,0.085263,0.2531,-0.28399,-0.082577,-0.015441,0.13561,0.32024,-0.28399,-0.13293,0.034911,0.1524,0.35381 0.24422,0.10803,0.04137,-0.047198,-0.35957,0.24993,0.10803,0.022323,-0.034818,-0.34528,0.23851,0.1347,0.048989,-0.037675,-0.36719,0.23565,0.10803,0.048036,-0.042436,-0.34623,0.23851,0.11089,0.028037,-0.031961,-0.3529 0.27552,0.13329,-0.029259,-0.049578,-0.2934,0.27552,0.27552,-0.090216,-0.15117,-0.2934,0.2552,0.052016,0.13329,-0.21213,-0.23245,0.17393,0.072335,-0.069897,-0.15117,-0.2934,0.31616,0.19425,0.072335,-0.13085,-0.23245 0.3332,0.25486,0.098183,-0.11072,-0.26739,0.25486,0.098183,0.098183,-0.13683,-0.26739,0.3332,0.17652,-0.058492,-0.21517,-0.26739,0.25486,0.019846,-0.058492,-0.03238,-0.21517,0.17652,0.098183,-0.058492,-0.21517,-0.29351 -0.3054,-0.12988,0.063187,0.11584,0.34402,-0.3054,-0.12988,0.045635,0.098291,0.27381,-0.20009,-0.18254,-0.042125,0.045635,0.27381,-0.2703,-0.094781,-0.042125,0.15095,0.29136,-0.25275,-0.18254,0.010531,0.098291,0.32647 0.35355,0.10615,0.10615,-0.051278,-0.25369,0.28607,0.17362,0.061173,-0.096258,-0.14124,0.30856,0.12864,-0.028787,-0.16373,-0.2312,0.30856,0.10615,-0.051278,-0.18622,-0.32116,0.12864,0.12864,-0.11875,-0.25369,-0.29867 -0.28001,-0.15339,0.045583,0.081761,0.28074,-0.24384,-0.15339,0.045583,0.1722,0.31691,-0.2981,-0.17148,0.0094061,0.063672,0.37118,-0.24384,-0.1353,-0.04486,0.063672,0.28074,-0.24384,-0.1353,-0.04486,0.15412,0.26265 0.33532,0.1988,-0.03909,-0.14993,-0.25355,0.37497,0.1533,-0.043596,-0.1319,-0.24995,0.10013,0.14609,-0.038189,-0.13911,-0.25806,0.095626,0.17132,-0.0098041,-0.11343,-0.23058,0.37497,0.17357,-0.0016941,-0.15668,-0.30852 0.24857,0.10061,0.10061,-0.16571,-0.28408,0.20418,0.17459,0.10061,-0.10653,-0.34326,0.24857,0.15979,0.085815,-0.076938,-0.28408,0.1302,0.23377,0.041428,-0.12133,-0.32847,0.15979,0.15979,0.07102,-0.12133,-0.38765 -0.21362,-0.21362,-0.24104,-0.20676,-0.17249,-0.14506,-0.16563,-0.16563,-0.14506,-0.16563,-0.090219,-0.11079,-0.097074,-0.10393,-0.11079,0.16344,0.14287,0.16344,0.20457,0.15658,0.29369,0.29369,0.32111,0.29369,0.31426 -0.33523,-0.19974,0.013161,0.051871,0.22606,-0.25781,-0.12232,-0.0061936,0.20671,0.26477,-0.25781,-0.16103,0.071226,0.168,0.32284,-0.23845,-0.19974,-0.025548,0.12929,0.26477,-0.25781,-0.12232,0.032516,0.14865,0.28413 0.2604,0.1256,0.040864,-0.060237,-0.42035,0.25366,0.12078,0.012941,-0.077569,-0.41265,0.22381,0.1333,0.01583,-0.094901,-0.39146,0.25847,0.13041,0.039901,-0.077569,-0.18445,0.25077,0.12078,0.010052,-0.080458,-0.19793 -0.30362,-0.12778,0.004103,0.077371,0.29718,-0.27432,-0.18639,0.004103,0.13599,0.26787,-0.18639,-0.069165,-0.025204,0.16529,0.26787,-0.34758,-0.12778,0.018757,0.092025,0.32648,-0.30362,-0.098472,0.004103,0.077371,0.31183 0.42507,0.11545,-0.059423,-0.14686,-0.21263,0.41144,0.079348,-0.04338,-0.14285,-0.23429,0.42267,0.11865,-0.046589,-0.13162,-0.22386,0.15876,0.11705,-0.053006,-0.15648,-0.21664,0.1347,0.10662,-0.04338,-0.14285,-0.2359 -0.1793,-0.1793,0.0041941,0.16147,0.26632,-0.28415,-0.1793,0.0041941,0.082833,0.37117,-0.28415,-0.1793,-0.022019,0.13526,0.2139,-0.23172,-0.15308,-0.022019,0.16147,0.29254,-0.31036,-0.15308,0.05662,0.2139,0.2139 0.255,0.14587,0.08221,0.0033951,-0.32096,0.25803,0.1489,0.060991,-0.02995,-0.2664,0.23075,0.11556,0.076148,-0.072389,-0.37856,0.20043,0.11859,-0.0026676,-0.09664,-0.38159,0.2065,0.12465,0.012489,-0.12089,-0.36946 0.10079,0.099685,-0.01498,-0.14251,-0.2535,0.10079,0.11108,-0.01204,-0.14692,-0.26158,0.38304,0.1787,-0.040706,-0.13148,-0.25239,0.38451,0.18862,-0.028578,-0.13663,-0.241,0.38671,0.15996,-0.037031,-0.14324,-0.25129 -0.24042,-0.19309,0.067204,0.18552,0.23285,-0.33507,-0.13393,0.043541,0.12636,0.23285,-0.31141,-0.1576,0.019877,0.17369,0.25651,-0.28775,-0.13393,0.079036,0.18552,0.19735,-0.32324,-0.13393,0.031709,0.20918,0.20918 -0.31851,-0.12982,-0.016605,0.11548,0.26643,-0.28077,-0.12982,0.021133,0.11548,0.2853,-0.22417,-0.22417,-0.035474,0.11548,0.22869,-0.31851,-0.035474,0.077741,0.15322,0.26643,-0.29964,-0.14869,0.040003,0.17209,0.30417 0.21558,0.12086,-0.15835,-0.20322,-0.24311,0.33524,0.20063,-0.16333,-0.16832,-0.18328,0.33026,0.16573,-0.11846,-0.17331,-0.20821,0.33026,0.24051,-0.058633,-0.15336,-0.16832,0.2804,0.095926,-0.058633,-0.098519,-0.15835 -0.18061,-0.10343,0.012349,0.20531,0.34038,-0.27709,-0.16131,-0.026243,0.070237,0.28249,-0.29639,-0.064834,-0.0069465,0.18601,0.2439,-0.31568,-0.19991,-0.0069465,0.10883,0.2632,-0.29639,-0.12272,-0.064834,0.12813,0.28249 0.24332,0.16738,0.11358,-0.14906,-0.24294,0.25809,0.18425,0.11358,-0.15328,-0.25665,0.23488,0.17687,-0.15328,-0.18493,-0.25771,0.23805,0.15894,-0.15434,-0.17122,-0.25665,0.2486,0.1716,0.11042,-0.17333,-0.26615 -0.3387,-0.072008,-0.049783,0.083565,0.26136,-0.27203,-0.18313,0.016891,0.083565,0.28359,-0.29425,-0.18313,0.083565,0.12801,0.21691,-0.27203,-0.11646,0.016891,0.19469,0.28359,-0.27203,-0.094232,-0.0053339,0.21691,0.28359 0.23549,0.18302,-0.12131,-0.16329,-0.20527,0.23549,0.225,-0.1528,-0.20527,-0.20527,0.28796,0.20401,-0.12131,-0.19477,-0.17379,0.25648,0.25648,-0.10033,-0.18428,-0.20527,0.25648,0.26697,-0.068843,-0.16329,-0.1423 0.13967,0.11495,0.10194,-0.093198,-0.30655,0.16438,0.14617,0.12145,-0.12702,-0.36119,0.15268,0.15528,0.12536,-0.091897,-0.30005,0.21122,0.21252,0.12145,-0.16345,-0.32997,0.21252,0.19431,0.10845,-0.15824,-0.35078 -0.28487,-0.16702,-0.049162,0.1192,0.40542,-0.2512,-0.21752,-0.015489,0.10236,0.27073,-0.23436,-0.11651,-0.032326,0.10236,0.22022,-0.30171,-0.082834,0.018183,0.16971,0.32124,-0.2512,-0.099671,0.0013469,0.10236,0.27073 -0.20208,-0.19208,-0.17207,-0.21208,-0.2421,-0.20208,-0.18207,-0.19208,-0.14206,-0.19208,-0.092037,-0.092037,-0.092037,-0.062025,-0.092037,0.16807,0.17807,0.17807,0.18808,0.22809,0.27811,0.29812,0.29812,0.27811,0.26811 -0.22965,-0.22965,-0.24502,-0.21428,-0.21428,-0.16817,-0.18354,-0.14511,-0.17585,-0.19891,-0.045192,-0.075936,-0.037507,-0.045192,-0.045192,0.1777,0.13927,0.15464,0.13927,0.11621,0.3391,0.2853,0.30067,0.31604,0.2853 -0.26377,-0.093719,0.057441,0.17081,0.28418,-0.33935,-0.18819,0.076336,0.17081,0.28418,-0.32046,-0.13151,0.0007558,0.11413,0.26529,-0.24488,-0.11261,-0.055929,0.076336,0.32197,-0.30156,-0.093719,0.0007558,0.13302,0.18971 0.42206,0.0035591,-0.075616,-0.13594,-0.20607,0.4017,0.01487,-0.084665,-0.13971,-0.19853,0.32931,-0.00096519,-0.065814,-0.14801,-0.18345,0.3919,0.043524,-0.064306,-0.12388,-0.18345,0.30518,0.067654,-0.061289,-0.12538,-0.18269 -0.22724,-0.05794,-0.0015049,0.11136,0.29948,-0.26487,-0.22724,-0.0015049,0.036118,0.26186,-0.28368,-0.152,-0.0015049,0.18661,0.22423,-0.28368,-0.152,0.036118,0.18661,0.3371,-0.30249,-0.17081,0.05493,0.13018,0.26186 0.20656,0.15303,0.13663,-0.22342,-0.25882,0.20829,0.15649,0.12627,-0.21824,-0.26227,0.18757,0.15562,0.1349,-0.22342,-0.26227,0.19102,0.15217,0.1349,-0.24241,-0.26055,0.19966,0.15649,0.13145,-0.22169,-0.25796 0.23138,0.21499,0.14532,-0.045244,-0.21942,0.20679,0.18425,0.089995,-0.061636,-0.23581,0.1986,0.17196,0.036719,-0.14155,-0.27474,0.22728,0.12893,-0.012458,-0.19892,-0.37105,0.25597,0.12073,-0.063685,-0.20507,-0.38334 0.27569,-0.024368,-0.097109,-0.21531,-0.21077,0.38025,0.12566,-0.088017,-0.12439,-0.19713,0.15748,0.13475,0.030188,-0.1062,-0.20622,0.37571,0.18022,0.021095,-0.15621,-0.2335,0.38025,0.098382,-0.097109,-0.15166,-0.25168 0.16086,0.14393,0.14393,-0.19773,-0.32855,0.16086,0.16086,0.14239,-0.1254,-0.34702,0.15778,0.16086,0.13777,-0.063838,-0.32547,0.17009,0.15932,0.13162,-0.18388,-0.29931,0.17933,0.16855,0.15316,-0.15002,-0.31008 -0.27303,-0.26322,-0.26649,-0.26976,-0.27631,-0.11931,-0.14221,-0.13894,-0.16183,-0.16837,0.0082421,-0.017923,0.011513,-0.037547,-0.040818,0.15215,0.14561,0.13907,0.13253,0.12599,0.28298,0.28952,0.29933,0.28625,0.3026 -0.23964,-0.21383,-0.21383,-0.23678,-0.21383,-0.18515,-0.17942,-0.16508,-0.18229,-0.18515,-0.061833,-0.058965,-0.036021,-0.053229,-0.047493,0.15326,0.13892,0.16187,0.15613,0.14753,0.29666,0.29666,0.29666,0.30813,0.31673 -0.25517,-0.087844,-0.046013,0.14222,0.30954,-0.25517,-0.23425,0.016732,0.14222,0.2468,-0.297,-0.087844,0.079478,0.14222,0.26771,-0.25517,-0.19242,0.058563,0.12131,0.28863,-0.33883,-0.1715,0.058563,0.14222,0.20497 0.19999,0.19999,-0.075402,-0.24159,-0.24634,0.22848,0.18575,0.0528,-0.24634,-0.22734,0.19999,0.19525,0.024311,-0.2131,-0.24634,0.22374,0.20949,0.071793,-0.22734,-0.24634,0.22374,0.19999,0.15726,-0.17511,-0.22734 -0.28456,-0.28456,-0.27816,-0.27177,-0.27177,-0.14707,-0.14707,-0.13428,-0.14388,-0.16306,0,0,0.0031973,0.0063945,0.0063945,0.13428,0.12789,0.13428,0.14068,0.13428,0.28775,0.28456,0.29095,0.29095,0.28456 -0.28491,-0.077852,-0.11926,0.21202,0.35696,-0.28491,-0.11926,0.025675,0.1085,0.25343,-0.22279,-0.11926,0.025675,0.1292,0.27414,-0.2642,-0.13997,-0.057147,0.17061,0.29484,-0.28491,-0.16067,-0.077852,0.1085,0.25343 -0.32656,-0.12395,0.054824,0.17401,0.26935,-0.2193,-0.088195,-0.0047673,0.11442,0.28127,-0.24313,-0.23121,0.054824,0.12633,0.25743,-0.23121,-0.18354,0.054824,0.15017,0.24552,-0.36232,-0.1597,-0.0047673,0.1025,0.29319 0.23607,0.17676,-0.030843,-0.11981,-0.2681,0.26573,0.028471,0.087785,-0.11981,-0.090157,0.29538,0.11744,-0.0011863,-0.23844,-0.35707,0.20641,0.20641,-0.0011863,-0.20879,-0.2681,0.32504,0.11744,0.058128,-0.090157,-0.32741 0.24204,0.23897,-0.11013,-0.18434,-0.19758,0.24344,0.2409,-0.11925,-0.18013,-0.19925,0.24327,0.24257,-0.11715,-0.18591,-0.20004,0.24292,0.24423,-0.10662,-0.18837,-0.19583,0.2309,0.25301,-0.11618,-0.1232,-0.19828 0.2417,0.24806,-0.1129,-0.13516,-0.21149,0.24647,0.2417,-0.1288,-0.13993,-0.2099,0.23693,0.2417,-0.12721,-0.17332,-0.21149,0.23693,0.2417,-0.13039,-0.16378,-0.2099,0.24647,0.2417,-0.12085,-0.13834,-0.2099 0.23312,0.19938,0.060219,-0.15485,-0.36992,0.18673,0.18251,0.093955,-0.12955,-0.32775,0.14034,0.14878,0.13191,-0.10846,-0.31931,0.14878,0.15299,0.13191,-0.10424,-0.33618,0.1783,0.15299,0.11082,-0.074725,-0.32775 0.18376,0.17536,0.060715,-0.23705,-0.311,0.19345,0.18021,0.059423,-0.11917,-0.30648,0.18505,0.19248,0.15792,-0.083967,-0.28936,0.1815,0.18053,0.15889,-0.21961,-0.26546,0.21218,0.19216,0.0025836,-0.21282,-0.27128 0.38523,0.0057809,-0.077699,-0.13874,-0.179,0.3783,-0.0060976,-0.07011,-0.13544,-0.19153,0.37698,0.055935,-0.078029,-0.12851,-0.17768,0.37335,0.047026,-0.078029,-0.13544,-0.179,0.36511,-0.011047,-0.076049,-0.13511,-0.19021 0.17745,0.15877,0.074717,-0.018679,-0.31755,0.19613,0.16811,0.13076,-0.11208,-0.26151,0.22415,0.19613,0.074717,-0.12142,-0.30821,0.22415,0.18679,0.0093397,-0.21481,-0.29887,0.19613,0.1401,0.093397,-0.27085,-0.32689 -0.2491,-0.18178,0.037028,0.13802,0.2895,-0.23227,-0.13128,-0.030296,0.12118,0.2895,-0.29959,-0.11445,0.037028,0.087522,0.27266,-0.23227,-0.13128,0.037028,0.22217,0.32316,-0.29959,-0.19861,-0.063958,0.020197,0.2895 0.26101,0.15905,-0.04486,-0.23421,-0.23421,0.18818,0.20275,-0.14682,-0.14682,-0.14682,0.27557,0.24644,-0.14682,-0.14682,-0.14682,0.3047,0.20275,-0.10312,-0.19051,-0.20508,0.31927,0.18818,-0.030295,-0.19051,-0.23421 0.18233,0.1736,-0.0010479,-0.23682,-0.21062,0.19979,0.18233,0.0076843,-0.24555,-0.23682,0.24345,0.21726,-0.053441,-0.24555,-0.21935,0.24345,0.21726,0.077542,-0.22808,-0.21935,0.23472,0.23472,0.11247,-0.19316,-0.23682 0.26402,0.12876,0.074661,-0.19585,-0.19585,0.23697,0.074661,0.020559,-0.19585,-0.277,0.29107,0.04761,0.074661,-0.1147,-0.38521,0.34517,0.15581,-0.060595,-0.1147,-0.19585,0.34517,-0.033543,0.074661,-0.1147,-0.24995 0.29477,0.1682,-0.0090067,-0.076957,-0.27015,0.26546,0.16153,-0.026327,-0.088948,-0.25816,0.26013,0.1149,0.0043168,-0.42603,-0.24883,0.28145,0.1229,-0.0023449,-0.059636,-0.25549,0.24148,0.13489,0.0029845,-0.078289,-0.25283 -0.19698,-0.10336,-0.047185,0.19623,0.30858,-0.23443,-0.19698,-0.028461,0.083885,0.30858,-0.30933,-0.17826,-0.028461,0.19623,0.23368,-0.2157,-0.12208,-0.028461,0.21496,0.27113,-0.23443,-0.2157,-0.084634,0.10261,0.30858 -0.29283,-0.10068,0.014603,0.091461,0.28361,-0.27362,-0.15833,0.033818,0.072247,0.20675,-0.33126,-0.10068,-0.0046115,0.18753,0.28361,-0.35047,-0.10068,-0.043041,0.11068,0.26439,-0.23519,-0.1199,0.072247,0.14911,0.34125 -0.21565,-0.077918,-0.038565,0.020463,0.31561,-0.27468,-0.1763,-0.018889,0.13852,0.25658,-0.33371,-0.1763,0.00078705,0.19755,0.31561,-0.255,-0.15662,-0.018889,0.11884,0.31561,-0.23533,-0.15662,0.040139,0.17787,0.2369 -0.24773,-0.23229,-0.23229,-0.21684,-0.21169,-0.14991,-0.17051,-0.17566,-0.18595,-0.17051,-0.062396,-0.057248,-0.041803,-0.026359,-0.052099,0.13838,0.13838,0.12809,0.11779,0.14353,0.31342,0.32372,0.31342,0.30827,0.30827 0.15363,0.14497,0.10018,-0.080099,-0.31701,0.1519,0.14872,-0.0087368,-0.092522,-0.33174,0.15277,0.14872,0.080249,-0.083277,-0.34157,0.29405,0.1441,0.093828,-0.0905,-0.34879,0.30271,0.15883,0.071582,-0.10552,-0.34648 -0.24657,-0.25054,-0.25054,-0.24657,-0.2426,-0.18302,-0.15919,-0.15522,-0.15125,-0.16713,-0.044008,-0.059895,-0.044008,-0.032092,-0.063867,0.18636,0.17444,0.18239,0.17047,0.22608,0.25388,0.27771,0.26977,0.26182,0.2936 0.36874,0.029729,-0.075886,-0.14369,-0.17759,0.34788,0.074061,-0.082406,-0.14499,-0.17237,0.33745,0.036248,-0.086317,-0.16455,-0.17759,0.32832,0.019298,-0.092837,-0.16325,-0.18932,0.34527,0.25269,-0.10588,-0.16585,-0.19715 -0.2103,-0.11471,0,0.19118,0.28677,-0.26765,-0.11471,0,0.13383,0.24853,-0.26765,-0.17206,0,0.11471,0.24853,-0.28677,-0.09559,-0.057354,0.076472,0.38236,-0.32501,-0.15294,0.019118,0.038236,0.32501 0.33161,-0.0018675,-0.050778,-0.13304,-0.23086,0.40053,0.060382,-0.0241,-0.10636,-0.22863,0.42499,0.027034,-0.037439,-0.12192,-0.2353,0.39831,0.018141,-0.028546,-0.13081,-0.22863,0.19155,0.047043,0.013695,-0.13304,-0.22196 -0.23387,-0.24624,-0.25862,-0.24006,-0.25243,-0.172,-0.17819,-0.20912,-0.172,-0.18437,-0.042072,-0.017324,0.0012374,-0.011137,0.0074244,0.1621,0.15591,0.15591,0.16829,0.1621,0.3044,0.2549,0.29203,0.26728,0.28584 -0.28012,-0.13498,-0.098695,0.10087,0.2823,-0.26198,-0.06241,0.046445,0.13716,0.30044,-0.28012,-0.15312,0.064587,0.17344,0.24601,-0.22569,-0.18941,-0.044267,0.19158,0.26415,-0.33455,-0.098695,-0.080552,0.17344,0.26415 0.20975,0.19419,-0.0003112,-0.25705,-0.25705,0.17863,0.18641,0.015249,-0.20259,-0.24927,0.20975,0.20197,-0.0080913,-0.25705,-0.21037,0.22531,0.20975,0.077489,-0.24927,-0.21037,0.24865,0.23309,0.11639,-0.17147,-0.23371 0.1806,0.22163,0.058917,-0.15615,-0.29764,0.17353,0.21031,0.0051503,-0.15049,-0.29764,0.1707,0.20182,0.078726,-0.14908,-0.275,0.16504,0.28106,0.065992,-0.16889,-0.31179,0.15655,0.26125,0.030619,-0.16181,-0.2934 0.27352,0.18796,0.15031,-0.09382,-0.2022,0.26668,0.20507,-0.041343,-0.152,-0.2079,0.24842,0.19024,-0.10523,-0.19421,-0.21817,0.25755,0.16971,-0.14744,-0.20448,-0.22958,0.27124,0.18112,-0.16797,-0.20448,-0.233 0.17575,0.19503,0.021584,-0.1904,-0.34457,0.17575,0.17575,0.17575,-0.1904,-0.28676,0.17575,0.17575,0.079398,-0.24821,-0.22894,0.19503,0.17575,0.060126,-0.20967,-0.20967,0.23357,0.23357,0.079398,-0.11332,-0.30603 0.24395,0.24734,-0.091483,-0.18635,-0.18635,0.23718,0.2304,-0.10165,-0.18297,-0.18974,0.23379,0.24734,-0.14569,-0.18974,-0.19313,0.22362,0.25751,-0.084706,-0.18635,-0.19991,0.23379,0.2609,-0.10165,-0.18635,-0.18974 0.20464,0.15956,0.001803,-0.13342,-0.35879,0.17083,0.12576,0.035608,-0.18976,-0.34752,0.19337,0.12576,0.10322,-0.17849,-0.14469,0.28351,0.17083,0.080682,-0.065808,-0.33625,0.23844,0.2159,0.080682,-0.099613,-0.33625 -0.18317,-0.16895,-0.026736,0.11548,0.32879,-0.32538,-0.18317,-0.069399,0.087033,0.25769,-0.3396,-0.11206,-0.055178,0.18658,0.30035,-0.24005,-0.11206,0.015928,0.11548,0.28613,-0.24005,-0.11206,0.015928,0.21502,0.24346 -0.27367,-0.29178,-0.27367,-0.27729,-0.26281,-0.16139,-0.19037,-0.18675,-0.19761,-0.19399,0.0523,0.048678,0.0523,0.048678,0.048678,0.1682,0.17544,0.19355,0.1682,0.17907,0.22977,0.2334,0.23702,0.23702,0.23702 0.32283,0.079415,-0.057507,-0.098077,-0.4201,0.25437,0.092093,-0.039758,-0.098077,-0.11836,0.2848,0.084486,-0.02708,-0.098077,-0.40488,0.33044,0.10731,-0.037223,-0.11329,-0.22993,0.33044,0.10984,-0.009331,-0.11329,-0.13104 -0.24873,-0.28167,-0.25532,-0.26849,-0.26849,-0.16968,-0.18945,-0.23556,-0.21579,-0.23556,0.080627,0.080627,0.047691,0.087214,0.087214,0.18602,0.18602,0.17943,0.18602,0.18602,0.22554,0.20578,0.20578,0.1992,0.22554 -0.27272,-0.17035,0.034397,0.034397,0.25962,-0.23177,-0.1294,-0.027026,0.15725,0.30057,-0.2113,-0.17035,0.075347,0.19819,0.25962,-0.2932,-0.23177,0.054872,0.13677,0.30057,-0.27272,-0.17035,-0.047501,0.13677,0.28009 0.28669,0.1625,-0.13909,-0.22779,-0.21005,0.28669,0.26895,-0.032643,-0.19231,-0.21005,0.35765,0.19798,-0.032643,-0.12135,-0.21005,0.28669,0.12702,-0.1036,-0.26327,-0.13909,0.18024,0.12702,-0.050383,-0.13909,-0.21005 -0.22818,-0.10372,-0.020743,0.16595,0.29041,-0.31115,-0.082974,0.020743,0.12446,0.35264,-0.3319,-0.16595,-0.06223,0.1452,0.18669,-0.31115,-0.16595,0.020743,0.1452,0.24892,-0.24892,-0.12446,0.082974,0.082974,0.29041 0.20042,0.063035,-0.033942,-0.19557,-0.24406,0.20042,0.03879,0.014546,-0.15516,-0.17941,0.43478,0.079197,-0.0096976,-0.13092,-0.21981,0.30548,0.09536,-0.042023,-0.18749,-0.21981,0.48326,0.063035,-0.0016163,-0.11476,-0.24406 -0.30636,-0.13532,-0.059295,0.092744,0.33981,-0.19233,-0.21134,-0.021286,0.092744,0.3018,-0.21134,-0.17333,-0.0022806,0.18777,0.24478,-0.30636,-0.19233,-0.059295,0.13075,0.28279,-0.19233,-0.11631,0.035729,0.14976,0.3208 0.23514,0.19833,-0.022582,-0.28031,-0.20667,0.30878,0.14923,-0.096217,-0.20667,-0.1944,0.27196,0.23514,0.075599,-0.20667,-0.24349,0.24742,0.17378,-0.010309,-0.16985,-0.14531,0.23514,0.19833,-0.13304,-0.20667,-0.20667 -0.25668,-0.24805,-0.23943,-0.25668,-0.2308,-0.22218,-0.17905,-0.15318,-0.1618,-0.15318,-0.023805,-0.058305,-0.023805,-0.01518,-0.03243,0.19182,0.14869,0.15732,0.17457,0.20907,0.28669,0.25219,0.26944,0.27807,0.28669 0.39643,0.014612,-0.053496,-0.11954,-0.18146,0.38817,-0.0039626,-0.086517,-0.11748,-0.19797,0.37166,-0.0039626,-0.065879,-0.11335,-0.18558,0.37166,0.014612,-0.070007,-0.10509,-0.19797,0.36341,-0.0018988,-0.078262,-0.13192,-0.20622 -0.27171,-0.20325,0.0097364,0.1999,0.22272,-0.25649,-0.15761,-0.02069,0.22272,0.23033,-0.21846,-0.19564,0.040163,0.19229,0.24554,-0.24889,-0.19564,-0.058723,0.22272,0.23793,-0.24128,-0.18043,-0.051116,0.23033,0.24554 -0.2601,-0.24814,-0.2601,-0.24814,-0.25213,-0.20827,-0.20827,-0.20429,-0.23219,-0.24017,0.074794,0.06682,0.074794,0.042899,0.074794,0.18643,0.17447,0.18643,0.18643,0.18643,0.22231,0.21832,0.22231,0.22231,0.22231 0.17719,0.15051,0.12198,-0.15684,-0.34916,0.18456,0.14407,0.12842,-0.089664,-0.34364,0.18456,0.14683,0.11186,-0.076782,-0.35928,0.17351,0.14591,0.11738,-0.13844,-0.33444,0.19192,0.14959,0.11462,-0.060218,-0.33444 0.27101,0.17514,0.15273,-0.19649,-0.28873,0.17481,0.16459,0.15208,-0.18693,-0.29071,0.16921,0.16492,0.13758,-0.18957,-0.2749,0.17217,0.12275,0.13494,-0.1955,-0.29302,0.13494,0.13725,0.13626,-0.19714,-0.28741 -0.29429,-0.12488,0.020329,0.04453,0.26234,-0.24588,-0.22168,0.020329,0.23814,0.23814,-0.29429,-0.17328,0.020329,0.16554,0.31074,-0.29429,-0.12488,0.020329,0.16554,0.31074,-0.22168,-0.17328,0.020329,0.14134,0.18974 -0.24871,-0.062177,0.082903,0.12435,0.29016,-0.24871,-0.26943,0,0.10363,0.24871,-0.24871,-0.18653,0.041451,0.14508,0.26943,-0.31089,-0.12435,0.020726,0.10363,0.33161,-0.31089,-0.12435,-0.020726,0.14508,0.24871 0.25499,0.26352,0.11863,-0.12,-0.22227,0.22943,0.19534,-0.017727,-0.18818,-0.23931,0.27204,0.22943,0.0078407,-0.20522,-0.21374,0.22943,0.1442,-0.12,-0.23931,-0.1967,0.24647,0.16125,-0.15409,-0.21374,-0.22227 -0.19737,-0.080584,0.0070073,0.094599,0.28438,-0.34336,-0.10978,-0.036788,0.13839,0.18219,-0.29956,-0.10978,0.021606,0.1092,0.28438,-0.29956,-0.22657,0.021606,0.22599,0.29898,-0.24117,-0.16818,-0.0075912,0.13839,0.31358 -0.25738,-0.19271,-0.047208,0.1468,0.25997,-0.22505,-0.19271,0.0012934,0.25997,0.22764,-0.28972,-0.09571,-0.079543,0.13063,0.27614,-0.20888,-0.12804,0.0012934,0.098297,0.30847,-0.27355,-0.16038,-0.047208,0.1468,0.34081 0.25232,0.24591,-0.12542,-0.15673,-0.18254,0.25177,0.23749,-0.12615,-0.16881,-0.1873,0.2525,0.23071,-0.12725,-0.17247,-0.19371,0.24884,0.23987,-0.13182,-0.16973,-0.1895,0.24371,0.23401,-0.13732,-0.17687,-0.19151 0.21398,0.04646,-0.15457,-0.26625,-0.26625,0.25866,0.11347,-0.042886,-0.18807,-0.26625,0.24749,0.20282,0.057628,-0.18807,-0.26625,0.28099,0.16931,0.068796,-0.054054,-0.29976,0.25866,0.22515,0.11347,-0.042886,-0.22158 -0.26485,-0.15947,0.068848,0.033721,0.31473,-0.28242,-0.089221,-0.018968,0.17423,0.26204,-0.29998,-0.089221,-0.036532,0.15666,0.31473,-0.26485,-0.12435,-0.018968,0.19179,0.3323,-0.28242,-0.14191,-0.071658,0.086411,0.20935 0.32646,0.2249,-0.16286,-0.070536,-0.21826,0.29876,0.19721,-0.16286,-0.15363,-0.20902,0.28953,0.19721,-0.13516,-0.15363,-0.19979,0.28953,0.095649,-0.098234,-0.15363,-0.17209,0.308,0.12335,-0.16286,-0.13516,-0.16286 0.14713,0.15291,0.066292,-0.08529,-0.33937,0.15724,0.17023,0.076397,-0.066523,-0.36247,0.18034,0.18178,0.077841,-0.057861,-0.35092,0.19333,0.18756,0.05763,-0.092508,-0.3437,0.21499,0.19911,0.074953,-0.070853,-0.36824 -0.24114,-0.19753,0.053199,0.20582,0.21672,-0.25749,-0.17028,0.015044,0.22762,0.21127,-0.28474,-0.18663,-0.0013082,0.20037,0.23852,-0.24114,-0.23024,0.036847,0.18402,0.23852,-0.23569,-0.20298,-0.034012,0.20582,0.24942 0.22793,0.074442,0.132,-0.17498,-0.38602,0.17037,0.132,0.016884,-0.079046,-0.23253,0.28549,0.074442,-0.079046,-0.098232,-0.32846,0.28549,0.2663,0.016884,-0.05986,-0.29009,0.24712,0.20874,-0.021488,-0.1366,-0.25172 -0.22736,-0.22277,-0.22966,-0.24115,-0.22506,-0.18601,-0.1952,-0.18141,-0.17911,-0.19979,-0.066536,-0.061941,-0.050453,-0.029776,-0.038966,0.21606,0.23214,0.22065,0.23674,0.22295,0.23674,0.24133,0.23674,0.24363,0.24822 0.37835,0.074445,-0.04631,-0.14996,-0.20883,0.39394,0.024634,-0.064423,-0.15247,-0.19574,0.14136,0.12124,-0.049832,-0.14392,-0.19172,0.39092,0.10564,-0.054863,-0.14644,-0.21386,0.403,0.026647,-0.09914,-0.14794,-0.19474 0.22724,0.22076,-0.084048,-0.23969,-0.20078,0.19481,0.22076,-0.019196,-0.22672,-0.23969,0.22724,0.2013,0.13645,-0.22672,-0.20078,0.22076,0.22076,0.045656,-0.20078,-0.24618,0.21427,0.2013,0.01323,-0.18781,-0.27212 0.19306,0.093028,0.018005,-0.13204,-0.3321,0.21807,0.14304,-0.0070021,-0.20706,-0.30709,0.24307,0.14304,0.11804,-0.15705,-0.30709,0.24307,0.14304,0.06802,-0.18205,-0.38211,0.24307,0.24307,0.093028,-0.082025,-0.10703 -0.27145,-0.26447,-0.29938,-0.27494,-0.26447,-0.12833,-0.14578,-0.14927,-0.12134,-0.13182,-0.0096349,-0.03058,-0.023599,-0.016617,-0.016617,0.14047,0.12651,0.13,0.12651,0.14746,0.29058,0.29407,0.29407,0.30106,0.29756 -0.29528,-0.20503,-0.024546,0.15594,0.24619,-0.33138,-0.15089,0.011551,0.1018,0.26423,-0.22308,-0.096741,0.0296,0.13789,0.22814,-0.20503,-0.078693,-0.042595,0.19204,0.33643,-0.34942,-0.15089,0.011551,0.21009,0.22814 0.35374,0.037683,-0.0038074,-0.075806,-0.26984,0.34764,0.02548,-0.018451,-0.081907,-0.28204,0.35863,0.047446,-0.0050277,-0.09045,-0.24299,0.38181,0.085275,0.040124,-0.11119,-0.30522,0.10724,0.075513,0.047446,-0.10997,-0.31133 0.30478,0.20972,-0.047678,-0.11539,-0.22912,0.30478,0.22318,-0.047678,-0.13145,-0.21566,0.30826,0.20842,-0.025106,-0.13753,-0.22999,0.3152,-0.085007,-0.031617,-0.1384,-0.23346,0.3126,0.010487,-0.15229,-0.15663,-0.22044 -0.26471,-0.26471,-0.25555,-0.26471,-0.26471,-0.20055,-0.21888,-0.18222,-0.23722,-0.20972,0.074428,0.056096,0.083594,0.065262,0.065262,0.21192,0.20275,0.19359,0.19359,0.18442,0.21192,0.21192,0.21192,0.18442,0.21192 0.17585,0.17585,0.10278,-0.23008,-0.25443,0.18396,0.18802,0.090602,-0.23008,-0.25443,0.1799,0.18802,0.14337,-0.24225,-0.23008,0.20426,0.18396,0.10684,-0.2179,-0.25443,0.1799,0.19614,0.12308,-0.24225,-0.26661 -0.19995,-0.20713,-0.21191,-0.20713,-0.21191,-0.19038,-0.19995,-0.18798,-0.19995,-0.21191,-0.044412,-0.058769,-0.065947,-0.087483,-0.080305,0.22598,0.22359,0.21641,0.20205,0.21162,0.25709,0.25948,0.2523,0.26427,0.2523 -0.21595,-0.16549,0.036328,0.069964,0.32224,-0.24958,-0.098219,-0.030946,0.086783,0.27178,-0.24958,-0.18231,-0.064582,0.13724,0.32224,-0.30004,-0.21595,0.069964,0.12042,0.27178,-0.21595,-0.16549,-0.047764,0.17087,0.32224 0.1513,0.16057,0.16057,-0.17318,-0.3215,0.1513,0.14203,0.17911,-0.1639,-0.31223,0.16984,0.17911,0.16984,-0.1639,-0.29369,0.16057,0.14203,0.16057,-0.15463,-0.31223,0.14203,0.16057,0.14203,-0.14536,-0.33078 0.27759,0.11935,-0.08409,-0.21972,-0.21972,0.30019,0.14196,0.14196,-0.10669,-0.1519,0.20977,0.14196,-0.10669,-0.1293,-0.31014,0.23238,0.074144,-0.10669,-0.10669,-0.35535,0.39061,0.18717,0.0063293,-0.1293,-0.19711 0.34443,0.012037,-0.10002,-0.14912,-0.1743,0.38472,0.013296,-0.10254,-0.14409,-0.16801,0.38723,0.013296,-0.10002,-0.14031,-0.16675,0.40234,0.03344,-0.084911,-0.1315,-0.15919,0.37339,0.03344,-0.089947,-0.1252,-0.16171 -0.29859,-0.25735,-0.24704,-0.28828,-0.28828,-0.14393,-0.15424,-0.12331,-0.16455,-0.16455,0.00041242,0.00041242,0.00041242,0.00041242,-0.009898,0.14476,0.14476,0.17569,0.13445,0.15507,0.33035,0.26848,0.2891,0.26848,0.22724 -0.2871,-0.20554,0.022838,0.16965,0.26753,-0.18923,-0.075038,-0.042413,0.1044,0.21859,-0.30341,-0.14029,-0.042413,0.1044,0.25121,-0.30341,-0.10766,-0.0261,0.16965,0.33278,-0.30341,-0.14029,0.088088,0.1044,0.33278 0.27377,0.10625,0.01053,-0.18092,-0.30057,0.24984,0.058391,-0.13306,-0.15699,-0.30057,0.24984,0.058391,0.03446,-0.18092,-0.39629,0.2977,0.13018,0.01053,-0.037332,-0.18092,0.36949,0.17805,0.058391,-0.10912,-0.10912 -0.33961,-0.14307,0.053456,0.15172,0.23033,-0.20203,-0.14307,0.053456,0.092763,0.28929,-0.3003,-0.14307,-0.025156,0.19103,0.26964,-0.33961,-0.044809,0.033803,0.17137,0.28929,-0.3003,-0.16273,-0.025156,0.15172,0.19103 0.19917,0.22046,0.21514,-0.20002,-0.28519,0.16724,0.15659,0.087398,-0.21333,-0.28785,0.12732,0.12199,0.068768,-0.18672,-0.27986,0.2045,0.19385,0.16191,-0.18406,-0.26123,0.2045,0.2045,0.03151,-0.1814,-0.28519 -0.29201,-0.2051,0.038239,0.19467,0.2642,-0.25725,-0.13558,-0.083431,0.12515,0.2642,-0.29201,-0.2051,0.038239,0.090384,0.29896,-0.18772,-0.11819,0.038239,0.090384,0.2642,-0.29201,-0.083431,-0.048668,0.15991,0.33372 0.17848,0.22068,-0.03249,-0.24346,-0.30675,0.19958,0.19958,0.083545,-0.22764,-0.3173,0.21013,0.18903,0.08882,-0.22764,-0.30675,0.19431,0.17848,0.062448,-0.1327,-0.25401,0.19958,0.17848,0.14156,-0.079959,-0.19599 0.4859,0.13574,0.035165,-0.069137,-0.24049,0.3518,0.13574,-0.002086,-0.039337,-0.22932,0.29592,0.050065,-0.043062,-0.087763,-0.24794,0.25122,0.035165,-0.11011,-0.13991,-0.28519,0.18789,0.072415,-0.12129,-0.17344,-0.24794 0.45644,0.089132,-0.057789,-0.13125,-0.20471,0.35849,0.040158,0.040158,-0.13125,-0.27817,0.38297,0.040158,-0.057789,-0.13125,-0.27817,0.18708,0.040158,-0.033302,-0.20471,-0.20471,0.21157,0.13811,0.064645,-0.13125,-0.20471 0.20859,0.092171,0.043268,-0.044319,-0.34102,0.26005,0.093631,0.055676,-0.024977,-0.36292,0.19253,0.1137,0.071369,-0.017313,-0.34978,0.26443,0.11881,0.089616,-0.13848,-0.3173,0.2553,0.12173,0.10056,-0.1465,-0.33883 -0.20483,-0.17398,-0.21254,-0.19712,-0.17398,-0.1894,-0.19712,-0.20483,-0.1894,-0.20483,-0.096862,-0.08915,-0.073726,-0.081438,-0.081438,0.18848,0.17306,0.18848,0.21933,0.2039,0.2656,0.2656,0.2656,0.28873,0.31187 0.42017,0.10732,-0.024487,-0.14132,-0.16498,0.41968,0.086073,-0.07325,-0.14615,-0.18574,0.24057,0.039242,-0.082423,-0.15967,-0.18767,0.42451,0.042621,-0.080974,-0.15726,-0.19057,0.25505,0.023792,-0.10415,-0.15339,-0.20698 0.37863,0.07516,-0.10775,-0.14932,-0.17011,0.362,0.16246,-0.14101,-0.17011,-0.16595,0.3329,0.16662,-0.12438,-0.16595,-0.16179,0.32043,0.058532,-0.14517,-0.16595,-0.16179,0.27886,0.14167,-0.12438,-0.16595,-0.15764 0.1693,0.144,0.12895,-0.17401,-0.2718,0.18435,0.1522,0.13442,-0.13708,-0.27385,0.18024,0.15562,0.12485,-0.1658,-0.27864,0.18024,0.15494,0.13442,-0.17606,-0.26633,0.19529,0.15836,0.13989,-0.14186,-0.45166 0.14115,0.20869,0.022963,-0.2303,-0.26407,0.19181,0.19181,0.022963,-0.19653,-0.34849,0.24246,0.14115,0.039847,-0.11211,-0.31472,0.20869,0.15804,0.14115,-0.044575,-0.34849,0.20869,0.20869,0.073616,-0.061459,-0.28096 0.21232,0.16402,0.12645,-0.12044,-0.25461,0.22305,0.15865,0.12645,-0.034564,-0.35659,0.15328,0.12645,0.045942,-0.050665,-0.35659,0.20695,0.14255,0.019107,-0.13117,-0.37269,0.21232,0.15865,0.088878,-0.13117,-0.35659 -0.30835,-0.091202,-0.013649,0.14146,0.32758,-0.21529,-0.18427,0.032882,0.063904,0.32758,-0.26182,-0.10671,0.017372,0.15697,0.21901,-0.30835,-0.16876,0.017372,0.17248,0.31207,-0.24631,-0.19978,0.032882,0.017372,0.26554 -0.23188,-0.25114,-0.2704,-0.29929,-0.26077,-0.1067,-0.13559,-0.17411,-0.16448,-0.17411,0.018489,-0.0104,-0.02966,-0.0104,-0.048919,0.12442,0.15331,0.10516,0.13405,0.15331,0.27849,0.32664,0.30738,0.29775,0.26886 0.1654,0.18793,0.12033,-0.034589,-0.33316,0.17666,0.17385,0.061179,-0.10782,-0.27401,0.17948,0.17385,0.12878,-0.16416,-0.32471,0.17666,0.16821,0.12878,-0.13599,-0.3726,0.17666,0.1654,0.092163,-0.20359,-0.32471 0.32985,0.19467,0.032444,-0.10274,-0.26496,0.24874,0.032444,0.086518,-0.26496,-0.34607,0.27578,0.11355,-0.12978,-0.048666,-0.26496,0.30281,0.16763,-0.02163,-0.15681,-0.18385,0.16763,0.16763,0.086518,-0.18385,-0.23792 0.29098,0.24821,0.094256,-0.14951,-0.188,0.29526,0.19262,-0.042595,-0.17089,-0.19228,0.27387,0.21828,-0.10674,-0.18372,-0.22221,0.30809,0.11564,-0.10674,-0.17089,-0.188,0.27815,-0.0083821,-0.16662,-0.19228,-0.22649 -0.24046,-0.2594,-0.22783,-0.2594,-0.24046,-0.13311,-0.11417,-0.17731,-0.20888,-0.13942,-0.038392,-0.11417,-0.076279,-0.038392,-0.057335,0.22682,0.20787,0.20787,0.18261,0.22682,0.2647,0.2647,0.23945,0.23945,0.2647 -0.21621,-0.18641,-0.19634,-0.23609,-0.22615,-0.11685,-0.11685,-0.14666,-0.21621,-0.18641,-0.096979,-0.11685,-0.096979,-0.087042,-0.11685,0.16137,0.16137,0.20111,0.19118,0.19118,0.2806,0.29054,0.29054,0.32035,0.27067 0.25196,0.20773,0.15465,-0.093071,-0.26116,0.19888,0.23427,0.13695,-0.06653,-0.24347,0.23427,0.16349,0.013094,-0.14615,-0.27886,0.18119,0.1458,-0.031142,-0.23462,-0.27886,0.20773,0.15465,-0.06653,-0.24347,-0.34079 0.30536,-0.11167,-0.12634,-0.14399,-0.20044,0.30984,0.14298,-0.11639,-0.15916,-0.19497,0.32501,0.11886,-0.048502,-0.17135,-0.19174,0.35435,0.13403,-0.064665,-0.15891,-0.18851,0.36828,0.18426,-0.0301,-0.15518,-0.18105 0.20736,0.26392,0.094256,-0.16966,-0.35817,0.26392,0.26392,0.018851,-0.13196,-0.30162,0.18851,0.16966,0.037702,-0.094256,-0.28277,0.18851,0.18851,-0.018851,-0.22621,-0.24507,0.13196,0.16966,0.056553,-0.18851,-0.22621 -0.23514,-0.22785,-0.25702,-0.2789,-0.23514,-0.1768,-0.1768,-0.13303,-0.15491,-0.15491,-0.089273,-0.089273,-0.030925,-0.038218,-0.016338,0.18059,0.17329,0.19517,0.19517,0.18788,0.25352,0.25352,0.2754,0.2827,0.29728 -0.21989,-0.18653,-0.019747,0.22042,0.26045,-0.22656,-0.15317,-0.039761,0.24043,0.24043,-0.26658,-0.17319,0.033623,0.2004,0.25378,-0.2399,-0.23323,-0.033089,0.2004,0.21375,-0.25991,-0.17986,-0.073117,0.22042,0.22042 0.3567,-0.0042968,-0.077774,-0.13009,-0.1812,0.36109,0.010478,-0.077774,-0.11851,-0.184,0.36429,0.014072,-0.08616,-0.12489,-0.1824,0.37068,-0.0042968,-0.076176,-0.13009,-0.1812,0.44335,0.01567,-0.074978,-0.11851,-0.184 -0.20092,-0.19352,-0.19352,-0.18612,-0.20832,-0.16393,-0.17873,-0.15653,-0.16393,-0.17133,-0.13434,-0.12694,-0.089955,-0.11215,-0.089955,0.12458,0.17636,0.18376,0.19855,0.19115,0.29472,0.30952,0.28732,0.30952,0.29472 0.27353,0.14756,0.12957,-0.12237,-0.32032,0.20155,0.093576,0.093576,-0.12237,-0.26633,0.25553,0.12957,0.14756,-0.050387,-0.24834,0.20155,0.21954,-0.032392,-0.21235,-0.3743,0.18355,0.11157,0.03959,-0.14036,-0.33831 -0.25969,-0.08771,-0.066212,0.12727,0.32074,-0.32418,-0.1522,-0.023217,0.08427,0.32074,-0.23819,-0.08771,-0.0017198,0.19176,0.29924,-0.28119,-0.08771,-0.066212,0.12727,0.32074,-0.25969,-0.08771,-0.08771,0.041275,0.27775 -0.21144,-0.20759,-0.11148,0.21528,0.24603,-0.21912,-0.19606,-0.1038,0.16915,0.2691,-0.22297,-0.1999,-0.034598,0.21912,0.24988,-0.24219,-0.14993,0.023066,0.20375,0.25757,-0.24988,-0.18453,0.023066,0.19606,0.26141 -0.26717,-0.25348,-0.28085,-0.28085,-0.28085,-0.11661,-0.17136,-0.1303,-0.18505,-0.19873,0.020256,0.033943,-0.0071171,-0.0071171,0.0065696,0.15712,0.11606,0.17081,0.17081,0.12975,0.26662,0.26662,0.26662,0.26662,0.30768 0.27337,0.074314,0.0079622,-0.091566,-0.39015,0.27337,0.041138,-0.025214,-0.22427,-0.3238,0.27337,0.20702,-0.025214,-0.12474,-0.22427,0.27337,0.17384,0.14067,-0.15792,-0.091566,0.27337,0.14067,-0.091566,-0.12474,-0.25745 -0.22497,-0.18997,-0.22497,-0.22497,-0.20997,-0.17997,-0.19997,-0.19997,-0.19997,-0.21997,-0.044993,-0.049993,-0.044993,-0.059991,-0.06999,0.21997,0.23496,0.21997,0.21497,0.21497,0.23496,0.25996,0.24496,0.25496,0.24496 -0.25823,-0.16634,0.017461,0.086384,0.27018,-0.28121,-0.028488,-0.0055139,0.10936,0.3391,-0.28121,-0.16634,0.017461,0.10936,0.31613,-0.30418,-0.18931,-0.097412,0.20126,0.24721,-0.23526,-0.074437,-0.028488,0.10936,0.29315 0.26216,0.26216,0.11252,-0.21667,-0.21667,0.35194,0.082598,-0.037109,-0.21667,-0.21667,0.29208,-0.0071824,0.052671,-0.12689,-0.30645,0.29208,0.11252,-0.037109,-0.15682,-0.18674,0.2023,0.082598,0.052671,-0.096963,-0.33638 0.21072,0.23435,0.045358,-0.072761,-0.26175,0.21072,0.13985,0.045358,-0.072761,-0.42712,0.2816,0.1871,0.045358,-0.025514,-0.35625,0.21072,0.092605,-0.049138,-0.2145,-0.23813,0.2816,0.11623,-0.049138,-0.072761,-0.26175 0.27076,0.058063,-0.086957,-0.16983,-0.19607,0.33844,-0.0082316,-0.10077,-0.13668,-0.19192,0.38678,0.05392,-0.084195,-0.1353,-0.17811,0.39506,-0.002707,-0.069002,-0.12977,-0.17535,0.41716,0.14093,-0.089719,-0.12839,-0.17811 0.2319,0.23215,-0.13041,-0.17135,-0.18905,0.23226,0.23256,-0.12115,-0.16428,-0.19509,0.23789,0.24495,-0.13425,-0.16669,-0.19468,0.25989,0.24572,-0.13184,-0.17068,-0.18875,0.2626,0.25513,-0.12493,-0.15968,-0.19223 -0.2564,-0.2564,-0.26735,-0.2564,-0.2564,-0.23086,-0.21992,-0.21627,-0.20897,-0.21627,0.071944,0.086538,0.093834,0.11572,0.079241,0.1741,0.1595,0.1595,0.15586,0.17775,0.25071,0.23247,0.21058,0.21423,0.20328 -0.27755,-0.27972,-0.27972,-0.27972,-0.27972,-0.14315,-0.15616,-0.14966,-0.13015,-0.13015,0.019422,0.0064164,0.008584,0.038932,-0.075956,0.14732,0.14081,0.14081,0.16032,0.097459,0.29472,0.29038,0.28388,0.28171,0.27087 -0.19628,-0.22174,-0.19628,-0.21537,-0.19628,-0.16446,-0.17082,-0.15809,-0.17082,-0.139,-0.10081,-0.10718,-0.10718,-0.12627,-0.11354,0.16649,0.19195,0.18559,0.21105,0.18559,0.26196,0.27469,0.30015,0.28106,0.32561 -0.24087,-0.29143,-0.26896,-0.26896,-0.26896,-0.16785,-0.19032,-0.20155,-0.17908,-0.17908,0.028761,0.028761,0.028761,0.034378,0.028761,0.18605,0.14673,0.1692,0.1692,0.16358,0.24222,0.27031,0.23099,0.24222,0.28716 -0.23065,-0.10883,0.012994,0.15512,0.27694,-0.29156,-0.16974,-0.0073093,0.033298,0.29725,-0.25095,-0.12913,-0.027613,0.094209,0.19573,-0.29156,-0.047917,0.012994,0.17542,0.33785,-0.29156,-0.19004,-0.068221,0.17542,0.33785 0.37639,0.20278,0.10177,-0.078157,-0.16654,0.33851,0.20594,0.038637,-0.059218,-0.19811,0.25644,0.14596,-0.015025,-0.13182,-0.27387,0.21541,0.048106,-0.059218,-0.17601,-0.32437,0.17121,0.038637,-0.10025,-0.21705,-0.34015 0.385,0.22547,0.098225,-0.017624,-0.17715,0.32612,0.17229,0.024157,-0.078397,-0.23033,0.24256,0.13621,-0.017624,-0.14867,-0.26452,0.23686,0.077334,-0.029019,-0.16006,-0.3025,0.1628,0.024157,-0.11828,-0.20564,-0.36137 -0.28172,-0.28009,-0.28826,-0.28499,-0.28662,-0.12659,-0.13475,-0.12986,-0.13149,-0.12169,-0.013913,0.0024168,-0.0073811,-0.013913,-0.015546,0.13632,0.13142,0.13959,0.12489,0.12326,0.29635,0.29472,0.29309,0.28656,0.28819 -0.28879,-0.31951,-0.2427,-0.22734,-0.25806,-0.19662,-0.22734,-0.18126,-0.18126,-0.19662,0.064516,0.064516,0.095238,0.079877,0.033794,0.20277,0.15668,0.17204,0.14132,0.12596,0.26421,0.26421,0.26421,0.17204,0.21813 0.21514,0.13991,0.063124,-0.034038,-0.35374,0.22141,0.13051,0.047453,-0.024635,-0.36627,0.19476,0.13835,0.063124,-0.079485,-0.34747,0.21514,0.12738,0.074094,-0.041874,-0.35374,0.23081,0.12581,0.047453,-0.054411,-0.37881 -0.29411,-0.15969,0.015055,0.12259,0.17636,-0.34787,-0.14625,0.028496,0.13603,0.23012,-0.24034,-0.1328,0.082263,0.20324,0.25701,-0.28066,-0.14625,-0.065596,0.16291,0.24356,-0.32099,-0.052154,0.015055,0.1898,0.32421 0.28971,0.16569,-0.032741,-0.15676,-0.23117,0.28971,0.16569,-0.15676,-0.15676,-0.18156,0.33931,0.091277,-0.032741,-0.15676,-0.23117,0.28971,0.2401,0.11608,-0.15676,-0.23117,0.2649,-0.057544,-0.0079371,-0.23117,-0.23117 0.1455,0.13005,0.082358,-0.20818,-0.2552,0.1885,0.15625,0.094114,-0.21859,-0.25453,0.20932,0.17036,0.12569,-0.24781,-0.25117,0.22074,0.17808,0.13072,-0.24983,-0.2458,0.2335,0.20327,0.14315,-0.24378,-0.23673 0.33308,0.15685,0.0026435,-0.12953,-0.17359,0.31105,0.20091,-0.15156,-0.23968,-0.17359,0.24496,0.09076,0.0026435,-0.21765,-0.1075,0.31105,0.15685,-0.12953,-0.21765,-0.21765,0.26699,0.17888,-0.041415,-0.23968,-0.21765 0.21683,0.25985,-0.15602,-0.22773,-0.21339,0.28853,0.20249,0.030402,-0.18471,-0.21339,0.27419,0.15947,-0.084322,-0.15602,-0.17037,0.20249,0.21683,-0.098663,-0.22773,-0.19905,0.24551,0.27419,-0.069982,-0.18471,-0.18471 0.17995,0.21193,0.062684,-0.1452,-0.20916,0.16929,0.24391,0.046693,-0.21449,-0.24114,0.33453,0.25457,-0.065243,-0.097224,-0.24647,0.16396,0.2066,-0.049252,-0.23048,-0.27312,0.28123,0.078675,-0.0066095,-0.12921,-0.32643 0.27163,0.21899,-0.017898,-0.20214,-0.28111,0.16635,0.21899,0.034744,-0.17582,-0.20214,0.24531,0.11371,0.087385,-0.20214,-0.17582,0.29795,0.19267,-0.17582,-0.12318,-0.28111,0.29795,0.061064,0.087385,-0.20214,-0.25479 -0.277,-0.1724,0.015901,0.036822,0.32973,-0.21424,-0.13055,-0.067787,0.14143,0.28788,-0.277,-0.067787,0.036822,0.12051,0.28788,-0.277,-0.19332,-0.0050212,0.078666,0.26696,-0.33977,-0.088708,0.036822,0.18327,0.28788 0.28488,0.16664,0.030041,-0.054312,-0.16058,0.31546,0.16358,0.05527,-0.045647,-0.16975,0.31954,0.1409,0.032844,-0.14325,-0.3117,0.27443,0.14854,-0.1458,-0.17613,-0.31935,0.1465,0.12841,-0.13968,-0.2197,-0.32113 -0.29579,-0.1964,-0.017493,0.16141,0.30056,-0.21628,-0.21628,0.042143,0.0819,0.34032,-0.31567,-0.17652,0.042143,0.062021,0.28069,-0.23616,-0.15664,0.0023854,0.0819,0.30056,-0.1964,-0.13676,0.0819,0.12166,0.26081 0.33134,0.045618,-0.060921,-0.11903,-0.21347,0.37734,0.055304,-0.082713,-0.11419,-0.19894,0.38945,0.038354,-0.073028,-0.10693,-0.1941,0.38461,-0.039129,-0.087556,-0.11903,-0.19894,0.38461,-0.010073,-0.097241,-0.11903,-0.1723 -0.25784,-0.28991,-0.26853,-0.24715,-0.25784,-0.12956,-0.18301,-0.1937,-0.14025,-0.1937,-0.011973,-0.044043,0.020097,-0.0012828,0.030787,0.16976,0.13769,0.21252,0.16976,0.13769,0.26597,0.26597,0.29804,0.25528,0.25528 0.24793,0.13192,-0.13324,-0.26583,-0.31554,0.23135,0.16506,-0.083526,-0.18296,-0.24925,0.21478,0.19821,-0.033808,-0.14982,-0.2824,0.21478,0.16506,0.13192,-0.14982,-0.23268,0.33079,0.18164,0.065628,0.01591,-0.21611 -0.37172,-0.17101,-0.070651,0.17021,0.29063,-0.27137,-0.11079,0.029706,0.13006,0.23042,-0.27137,-0.17101,0.029706,0.21035,0.23042,-0.21115,-0.17101,0.029706,0.17021,0.29063,-0.21115,-0.21115,0.08992,0.08992,0.25049 -0.32518,-0.22644,-0.028963,0.15206,0.2508,-0.20998,-0.1277,0.036862,0.11914,0.18497,-0.27581,-0.11125,0.069775,0.23434,0.2508,-0.30872,-0.17707,-0.012507,0.15206,0.31662,-0.2429,-0.19353,0.069775,0.16851,0.23434 0.24486,0.17556,-0.05544,-0.05544,-0.28644,0.29106,0.03696,-0.05544,-0.0092401,-0.28644,0.15246,0.17556,-0.05544,-0.14784,-0.30954,0.26796,0.24486,0.03696,-0.078541,-0.30954,0.24486,0.15246,0.083161,-0.078541,-0.37884 -0.31538,-0.15309,-0.058424,0.15796,0.19853,-0.32891,-0.085472,0.036245,0.21206,0.25263,-0.28833,-0.085472,-0.0043277,0.18501,0.19853,-0.30186,-0.12604,-0.017852,0.21206,0.22558,-0.27481,-0.098996,-0.0449,0.22558,0.27968 0.25427,0.16361,0.079619,-0.043036,-0.21635,0.24494,0.15961,0.068953,-0.13636,-0.23368,0.23294,0.15294,0.064954,-0.19369,-0.24168,0.25294,0.14095,0.13295,-0.23235,-0.29501,0.23827,0.14761,-0.18835,-0.24302,-0.31101 0.24306,0.23893,-0.12467,-0.18389,-0.18527,0.24306,0.24443,-0.14395,-0.18114,-0.17838,0.24306,0.24168,-0.11641,-0.18251,-0.18389,0.24168,0.24719,-0.11778,-0.17287,-0.17563,0.24857,0.24443,-0.12467,-0.18389,-0.18114 0.16599,0.17749,0.14627,-0.21678,-0.31206,0.16599,0.16927,0.15284,-0.22992,-0.28413,0.15941,0.16927,0.16599,-0.19542,-0.28413,0.15284,0.1627,0.16599,-0.16421,-0.29071,0.15613,0.15613,0.14956,-0.1675,-0.27099 0.17086,0.16457,0.16142,-0.18169,-0.26039,0.15512,0.16142,0.16142,-0.21002,-0.28242,0.16142,0.17401,0.15198,-0.19114,-0.29501,0.17086,0.16142,0.13624,-0.19428,-0.28557,0.16457,0.16142,0.16772,-0.22891,-0.29501 0.24212,0.086332,0.067077,-0.12022,-0.20074,0.3489,0.074079,0.03907,-0.14823,-0.18149,0.3524,0.12659,-0.14473,-0.19024,-0.20249,0.3454,0.074079,-0.17624,-0.20074,-0.20424,0.3419,0.14585,-0.12547,-0.17273,-0.17624 0.1988,0.24659,0.031541,-0.18351,-0.2313,0.31828,0.27049,0.0076463,-0.064038,-0.2552,0.17491,0.1988,0.0076463,-0.2313,-0.30299,0.31828,0.1988,-0.040143,-0.15962,-0.2313,0.12712,0.055436,0.0076463,-0.18351,-0.27909 0.36516,0.28984,-0.1169,-0.22235,-0.17716,0.27477,0.18439,-0.056642,-0.17716,-0.14703,0.27477,0.16932,-0.011449,-0.19222,-0.16209,0.28984,0.13919,-0.10183,-0.23741,-0.23741,0.18439,0.13919,-0.13196,-0.17716,-0.16209 -0.27612,-0.11974,0.081316,0.14834,0.28237,-0.27612,-0.16442,-0.030382,0.23769,0.23769,-0.27612,-0.16442,-0.0080423,0.14834,0.32705,-0.27612,-0.14208,0.014297,0.126,0.17068,-0.25378,-0.18676,0.014297,0.058977,0.32705 0.38143,-0.0031465,-0.081809,-0.12726,-0.16921,0.38317,-0.020627,-0.081809,-0.12376,-0.17096,0.38317,0.021326,-0.085305,-0.14124,-0.17271,0.37618,0.0038457,-0.078313,-0.12726,-0.17271,0.39191,-0.0013984,-0.081809,-0.1325,-0.16921 0.15271,0.16143,0.16318,-0.21562,-0.29941,0.15096,0.15794,0.15096,-0.17198,-0.29592,0.15794,0.15794,0.15969,-0.17198,-0.29766,0.15794,0.15794,0.15969,-0.19292,-0.29592,0.16667,0.1754,0.17889,-0.17721,-0.29068 0.31719,0.19848,0.065367,-0.12081,-0.46617,0.25963,0.18948,0.043332,-0.11541,-0.27145,0.23445,0.17464,0.077509,-0.1226,-0.23773,0.18678,0.12787,0.068965,-0.12665,-0.28674,0.11753,0.064468,0.022646,-0.11226,-0.28854 0.21767,0.22832,0.057931,-0.15505,-0.33608,0.20702,0.16442,0.079229,-0.19765,-0.26154,0.16442,0.047282,0.089878,-0.11245,-0.29349,0.22832,0.11118,0.079229,-0.15505,-0.30414,0.38805,0.06858,0.10053,-0.187,-0.22959 0.16386,0.16273,0.10513,-0.16481,-0.35229,0.16499,0.16047,0.13901,-0.090264,-0.31163,0.16047,0.16386,0.1424,-0.13996,-0.32518,0.15821,0.15821,0.15595,-0.13318,-0.34777,0.15708,0.15708,0.15482,-0.10608,-0.33309 -0.26641,-0.03954,0.057689,0.18733,0.23594,-0.29882,-0.16918,-0.071949,0.1063,0.28456,-0.29882,-0.16918,-0.055744,0.20353,0.26835,-0.31502,-0.071949,-0.023335,0.20353,0.25215,-0.26641,-0.16918,0.057689,0.12251,0.23594 0.17787,0.18193,0.0090316,-0.11709,-0.3978,0.19414,0.18193,0.061919,-0.10081,-0.33881,0.17787,0.18193,0.094466,-0.10895,-0.35508,0.17787,0.18397,0.070056,-0.076402,-0.35711,0.16566,0.17787,0.13515,-0.060129,-0.25948 0.19749,0.19605,-0.12849,-0.13426,-0.1833,0.27971,0.20182,-0.099642,-0.16167,-0.18763,0.21769,0.26529,-0.13137,-0.19051,-0.17897,0.31577,0.19028,-0.13714,-0.1934,-0.17176,0.33885,0.19605,-0.12849,-0.1934,-0.17897 0.33073,0.10793,0.15745,-0.16438,-0.21389,0.25647,0.058423,0.033667,-0.21389,-0.18913,0.25647,0.10793,0.008912,-0.11487,-0.23864,0.23171,0.23171,-0.015844,-0.11487,-0.18913,0.28122,0.083179,-0.015844,-0.2634,-0.41193 0.29218,0.21161,-0.083786,-0.1375,-0.16435,0.26532,0.077341,-0.0032225,-0.1375,-0.21806,0.34589,-0.0032225,0.077341,-0.16435,-0.21806,0.23847,0.18476,-0.1912,-0.16435,-0.27177,0.26532,0.23847,-0.0032225,-0.11064,-0.32548 -0.22369,-0.13799,-0.0094277,0.11913,0.24769,-0.3094,-0.18084,-0.052281,0.11913,0.31197,-0.33083,-0.095135,-0.030854,0.11913,0.3334,-0.18084,-0.13799,0.076279,0.18341,0.3334,-0.24512,-0.20227,-0.0094277,0.054852,0.24769 -0.29267,-0.30044,-0.31597,-0.29267,-0.29267,-0.16063,-0.13733,-0.11402,-0.13733,-0.11402,0.0024855,0.025787,0.0024855,0.025787,0.0024855,0.15006,0.1656,0.1656,0.1889,0.1656,0.27434,0.27434,0.25104,0.2122,0.25104 0.37556,0.057231,-0.096852,-0.13749,-0.14765,0.37386,-0.0037251,-0.10362,-0.1341,-0.15781,0.38741,0.026753,-0.098545,-0.13749,-0.16797,0.37894,0.048765,-0.11378,-0.14426,-0.1595,0.37556,-0.010498,-0.10362,-0.14088,-0.16627 -0.20656,-0.13582,-0.06508,0.16482,0.28862,-0.20656,-0.082765,-0.02971,0.11177,0.35935,-0.34804,-0.1535,0.023344,0.041029,0.3063,-0.29498,-0.17119,0.023344,0.11177,0.3063,-0.2773,-0.082765,-0.047395,0.094083,0.27093 -0.21096,-0.24979,-0.23684,-0.24332,-0.24332,-0.24979,-0.21096,-0.23684,-0.21096,-0.24332,0.041415,0.047887,0.054358,0.073771,0.073771,0.17084,0.17731,0.15143,0.17084,0.1579,0.24849,0.25496,0.24202,0.24202,0.22908 -0.32204,-0.087317,-0.040372,0.12393,0.2413,-0.25162,-0.13426,0.030045,0.076989,0.19435,-0.32204,-0.040372,0.030045,0.21782,0.2413,-0.32204,-0.13426,-0.040372,0.19435,0.28824,-0.32204,-0.11079,0.053517,0.12393,0.31171 0.1344,0.13905,0.12974,-0.19601,-0.29373,0.14836,0.14603,0.14603,-0.16111,-0.28443,0.17046,0.16697,0.14836,-0.22277,-0.28094,0.17977,0.18907,0.16464,-0.21462,-0.29257,0.1914,0.19722,0.16232,-0.18903,-0.27861 -0.26442,-0.10275,-0.066824,0.18466,0.31041,-0.24646,-0.21053,-0.030897,0.076883,0.23855,-0.26442,-0.084787,-0.030897,0.13077,0.32837,-0.19257,-0.084787,-0.10275,0.1667,0.32837,-0.28238,-0.19257,-0.012934,0.094846,0.31041 0.13728,0.10194,0.055564,-0.074733,-0.33091,0.16378,0.14169,0.071023,-0.14099,-0.3287,0.19028,0.16599,0.10636,-0.11007,-0.37508,0.19249,0.19249,0.13065,-0.068108,-0.33091,0.21457,0.21899,0.12844,-0.11007,-0.34195 0.26397,0.23175,-0.14138,-0.177,-0.17191,0.23514,0.22157,-0.1346,-0.17361,-0.1753,0.2538,0.22836,-0.1329,-0.17191,-0.16513,0.27585,0.22496,-0.11425,-0.17022,-0.18039,0.27754,0.22327,-0.16004,-0.18548,-0.18209 0.21654,0.21654,-0.10799,-0.17641,-0.18342,0.25865,0.25689,-0.10799,-0.18342,-0.17992,0.23233,0.22181,-0.14834,-0.18167,-0.18167,0.23058,0.22882,-0.1115,-0.18518,-0.18869,0.28321,0.27794,-0.11325,-0.18518,-0.18869 -0.30904,-0.26865,-0.25855,-0.28884,-0.22825,-0.18785,-0.14745,-0.15755,-0.14745,-0.15755,-0.016159,0.024239,-0.016159,0.0040398,0.044438,0.12523,0.11513,0.15553,0.16563,0.14543,0.30702,0.30702,0.25653,0.27673,0.25653 0.24608,0.18926,-0.012873,-0.33471,-0.32679,0.26797,0.17389,-0.020325,-0.33098,-0.20709,0.25959,0.14502,-0.025914,-0.098572,-0.21175,0.23863,0.17296,-0.014736,-0.094846,-0.21361,0.24981,0.16132,0.07888,-0.085065,-0.20616 -0.26549,-0.2213,-0.24781,-0.292,-0.28316,-0.16827,-0.12408,-0.18595,-0.11525,-0.16827,0.02616,-0.0091913,-0.018029,-0.0091913,-0.071056,0.1764,0.12338,0.1057,0.14105,0.14105,0.30013,0.30897,0.28246,0.30013,0.27362 -0.28042,-0.16479,0.0086729,0.2255,0.2255,-0.33824,-0.10697,-0.0057819,0.18213,0.2255,-0.3527,-0.092511,0.023128,0.18213,0.25441,-0.28042,-0.13588,0.037583,0.19659,0.19659,-0.28042,-0.13588,0.023128,0.21104,0.18213 -0.26127,-0.2433,-0.23432,-0.21635,-0.1894,-0.16244,-0.19838,-0.21635,-0.16244,-0.16244,-0.054627,-0.054627,-0.054627,-0.045642,-0.036657,0.16101,0.14304,0.18796,0.19694,0.19694,0.26882,0.29578,0.25984,0.26882,0.31374 0.18466,0.10632,-0.095128,-0.19585,-0.30777,0.16787,0.15668,-0.027979,-0.16228,-0.27979,0.15668,0.19026,0.0055958,-0.095128,-0.30217,0.20704,0.20145,0.044766,-0.10632,-0.31336,0.40849,0.25181,0.11751,-0.10632,-0.20704 -0.2151,-0.16809,-0.083482,0.19855,0.27376,-0.2151,-0.18689,-0.055279,0.20795,0.29256,-0.2339,-0.13989,-0.10228,0.23616,0.26436,-0.2433,-0.13049,-0.12109,0.14214,0.29256,-0.2433,-0.083482,-0.12109,0.15155,0.28316 -0.2745,-0.12132,-0.044728,0.12377,0.26163,-0.21323,-0.075364,0.016543,0.062497,0.30758,-0.18259,-0.18259,0.016543,0.16972,0.29227,-0.33577,-0.21323,0.016543,0.10845,0.30758,-0.33577,-0.12132,0.047179,0.062497,0.30758 0.11307,0.10737,0.10623,-0.1425,-0.33091,0.13754,0.11534,0.11762,-0.16129,-0.31326,0.20471,0.20926,0.20015,-0.14137,-0.31042,0.20584,0.18934,0.16145,-0.1334,-0.32977,0.16657,0.15006,0.14153,-0.1482,-0.31497 0.18627,-0.024896,-0.047124,-0.096344,-0.30434,0.22756,0.060842,0.035438,-0.14239,-0.30116,0.23867,0.13547,0.10371,-0.089993,-0.30434,0.23708,0.20691,0.091009,-0.10746,-0.31386,0.29583,0.28154,0.084658,-0.14874,-0.30434 -0.22335,-0.2603,-0.2603,-0.2603,-0.27613,-0.096687,-0.14419,-0.1653,-0.12835,-0.15474,-0.0016889,-0.054466,-0.049188,-0.033355,-0.065021,0.13553,0.12498,0.098587,0.14081,0.12498,0.33608,0.32025,0.33081,0.29386,0.26747 -0.16349,-0.16349,0.028851,0.14906,0.29332,-0.23562,-0.18753,0.0048085,0.12502,0.29332,-0.21157,-0.16349,0.076936,0.10098,0.26927,-0.35583,-0.23562,-0.043276,0.14906,0.26927,-0.2837,-0.18753,0.052893,0.19715,0.22119 0.37084,0.0082947,-0.076345,-0.11161,-0.1892,0.38212,-0.011455,-0.079167,-0.1229,-0.19625,0.40046,-0.0044013,-0.081988,-0.11161,-0.18779,0.36801,0.0012414,-0.073524,-0.11443,-0.18215,0.38635,-0.015687,-0.059417,-0.11443,-0.18497 0.19588,0.19562,0.035043,-0.24966,-0.25121,0.19537,0.19511,0.038922,-0.25018,-0.24759,0.19381,0.22769,0.056247,-0.23285,-0.23751,0.1933,0.20442,0.052886,-0.21811,-0.21889,0.19459,0.20054,0.1814,-0.2282,-0.22664 0.25878,0.22669,-0.14957,-0.15524,-0.17978,0.25878,0.21977,-0.16405,-0.16027,-0.18607,0.26318,0.22417,-0.13951,-0.15901,-0.1867,0.26444,0.23047,-0.13447,-0.1565,-0.18229,0.26444,0.22921,-0.13699,-0.16782,-0.18166 -0.33526,-0.14715,-0.084443,0.14548,0.18728,-0.31436,-0.10534,0.020066,0.14548,0.24998,-0.25166,-0.18895,-0.00083607,0.14548,0.27089,-0.16805,-0.10534,-0.00083607,0.16638,0.37539,-0.23075,-0.18895,-0.00083607,0.082771,0.33359 -0.28918,-0.25547,-0.27232,-0.28918,-0.30603,-0.16279,-0.15436,-0.13751,-0.13751,-0.13751,0.039433,-0.011122,0.022581,0.047859,-0.0364,0.14054,0.12369,0.10684,0.17425,0.14054,0.30906,0.25851,0.28378,0.28378,0.25851 -0.32082,-0.12217,-0.047676,0.15097,0.27513,-0.19666,-0.147,-0.047676,0.22547,0.27513,-0.27116,-0.097338,-0.022845,0.10131,0.32479,-0.29599,-0.072507,-0.097338,0.22547,0.2503,-0.27116,-0.17183,-0.022845,0.15097,0.22547 0.24853,0.27618,0.082608,-0.15496,-0.34916,0.20893,0.23407,0.084494,-0.12165,-0.30643,0.19134,0.18882,0.082608,-0.15119,-0.30014,0.14609,0.14106,0.086379,-0.13925,-0.33534,0.099578,0.10272,0.080095,-0.10468,-0.29071 0.44614,0.15211,-0.083112,-0.20072,-0.16152,0.26972,0.13251,-0.10271,-0.16152,-0.23993,0.28933,0.11291,-0.16152,-0.22033,-0.20072,0.30893,0.17171,-0.024306,-0.16152,-0.16152,0.25012,0.13251,-0.14192,-0.10271,-0.14192 0.12068,0.26036,0.0089392,-0.27041,-0.21454,0.20449,0.17655,-0.046931,-0.1028,-0.27041,0.26036,0.092745,0.036874,-0.15867,-0.32628,0.31623,0.14861,0.036874,-0.018996,-0.24248,0.34416,0.092745,0.036874,-0.21454,-0.27041 -0.30626,-0.074828,-0.016971,0.079457,0.27231,-0.3834,-0.13269,0.040886,0.098742,0.2916,-0.22911,-0.13269,0.060171,0.079457,0.2916,-0.32554,-0.13269,-0.055543,0.1566,0.2916,-0.20983,-0.094114,0.040886,0.079457,0.31088 -0.20211,-0.26052,-0.23131,-0.23131,-0.23131,-0.20211,-0.1729,-0.1729,-0.1729,-0.26052,0.0023365,-0.02687,-0.041473,0.0023365,0.0023365,0.14837,0.14837,0.13376,0.17757,0.16297,0.27979,0.309,0.309,0.26519,0.26519 -0.18935,-0.14088,0.069149,0.21456,0.21456,-0.28629,-0.18935,-0.043945,0.16609,0.31149,-0.33476,-0.092414,0.0045238,0.11762,0.26302,-0.28629,-0.14088,0.0045238,0.21456,0.21456,-0.33476,-0.092414,-0.043945,0.11762,0.26302 0.4981,0.22318,-0.0014237,-0.15975,-0.24934,0.19863,0.19618,-0.052971,-0.14748,-0.23093,0.19004,0.19127,-0.086109,-0.17325,-0.22725,0.1839,0.17408,-0.0812,-0.16588,-0.23461,0.19249,0.1839,-0.06279,-0.13275,-0.22602 -0.26453,-0.11605,0.078125,0.14666,0.21519,-0.25311,-0.13889,0.078125,0.22661,0.22661,-0.26453,-0.18458,0.10097,0.10097,0.21519,-0.3559,-0.16173,-0.0018275,0.14666,0.28372,-0.34448,-0.16173,0.032438,0.18092,0.21519 -0.28751,-0.10554,-0.014557,0.076427,0.2402,-0.3603,-0.12374,0.040033,0.040033,0.31299,-0.26931,-0.069148,0.05823,0.18561,0.2402,-0.30571,-0.16013,-0.032754,0.13102,0.31299,-0.25112,-0.12374,0.076427,0.076427,0.31299 0.18393,0.069829,-0.066033,-0.15984,-0.21506,0.43645,0.060869,-0.043176,-0.14082,-0.21268,0.43499,0.068366,-0.06201,-0.13735,-0.22073,0.19161,0.0744,-0.05305,-0.14027,-0.20409,0.43645,0.055932,-0.024707,-0.1304,-0.20263 0.15191,0.13564,0.12252,-0.084236,-0.32773,0.20334,0.13879,-0.042254,-0.084236,-0.35134,0.21068,0.13512,0.10783,-0.11362,-0.33665,0.22223,0.22958,0.11413,-0.095256,-0.33717,0.18812,0.14194,0.11255,-0.094731,-0.34715 -0.27143,-0.040501,-0.0049739,0.10161,0.3503,-0.32472,-0.16485,-0.0049739,0.066081,0.31477,-0.27143,-0.16485,-0.022738,0.1549,0.27925,-0.21814,-0.16485,0.01279,0.1549,0.27925,-0.30696,-0.040501,-0.022738,0.030554,0.27925 0.38972,0.23288,0.076047,-0.019586,-0.18025,0.29983,0.18507,0.037794,-0.11904,-0.21085,0.29409,0.12578,0.024405,-0.13052,-0.25293,0.2195,0.081785,-0.065489,-0.18981,-0.28927,0.14681,0.041619,-0.11522,-0.25867,-0.3237 0.29523,0.23011,0.14328,-0.20406,-0.22577,0.18669,0.2084,0.099859,-0.13893,-0.33431,0.16498,0.16498,-0.0521,-0.13893,-0.22577,0.29523,0.14328,-0.0521,-0.11723,-0.3126,0.14328,0.14328,0.07815,-0.18235,-0.3126 -0.31289,-0.19437,-0.036346,0.2797,0.2402,-0.27338,-0.23388,0.016329,0.12168,0.22703,-0.23388,-0.15486,0.016329,0.20069,0.21386,-0.31289,-0.075851,0.055835,0.16118,0.25337,-0.27338,-0.10219,0.016329,0.16118,0.2402 0.36348,-0.019931,-0.12734,-0.16315,-0.18404,0.36795,0.023333,-0.099,-0.14972,-0.15569,0.37839,0.011398,-0.084081,-0.14226,-0.16017,0.38436,0.030792,-0.085573,-0.13779,-0.16464,0.40077,0.033776,-0.055736,-0.1348,-0.13033 -0.2137,-0.2376,-0.27346,-0.22565,-0.22565,-0.20175,-0.20175,-0.16589,-0.17784,-0.11808,-0.010518,-0.070276,-0.058324,-0.046373,-0.022469,0.1329,0.1329,0.22852,0.15681,0.15681,0.32413,0.30023,0.25242,0.26437,0.30023 0.35824,0.0063034,-0.080368,-0.13815,-0.15653,0.35824,-0.025213,-0.080368,-0.13552,-0.15653,0.40814,0.03782,-0.10138,-0.14603,-0.15653,0.37663,0.048326,-0.0935,-0.15128,-0.16441,0.39238,0.019435,-0.0935,-0.16704,-0.15916 0.22302,0.21287,0.1013,-0.081282,-0.40587,0.19935,0.18583,0.1182,-0.10833,-0.35177,0.1723,0.15878,0.10806,-0.11171,-0.31796,0.20611,0.12835,0.026914,-0.033946,-0.32472,0.1723,0.094536,0.023532,-0.064376,-0.33148 0.15354,0.059759,0.061405,0.028498,-0.28906,0.28353,0.082794,0.064695,-0.1854,-0.29235,0.25227,0.16177,0.091021,-0.22653,-0.32854,0.27037,0.16342,0.097603,-0.17224,-0.30551,0.21936,0.16506,0.089376,-0.19527,-0.24957 -0.26625,-0.21016,-0.041882,0.088998,0.25727,-0.21016,-0.17276,-0.023184,0.23858,0.23858,-0.30364,-0.17276,0.032907,0.20118,0.33206,-0.17276,-0.21016,0.032907,0.088998,0.25727,-0.26625,-0.15406,-0.0044873,0.16379,0.27597 0.19514,0.17245,0.021178,-0.25111,-0.32675,0.2027,0.14976,0.058996,-0.19817,-0.32675,0.19514,0.14976,0.11951,-0.062022,-0.28137,0.18001,0.16489,0.14976,-0.12253,-0.33431,0.21783,0.14976,0.11951,-0.031767,-0.31162 -0.25952,-0.15971,-0.05989,0.11122,0.25382,-0.28804,-0.21675,0.054186,0.18252,0.21104,-0.25952,-0.24526,0.054186,0.13974,0.23956,-0.25952,-0.14545,0.12548,0.154,0.25382,-0.27378,-0.15971,0.082705,0.21104,0.25382 -0.24176,-0.13572,-0.057965,0.097551,0.34496,-0.22055,-0.12865,-0.050896,0.055138,0.34496,-0.20641,-0.14279,-0.10745,0.097551,0.31669,-0.22762,-0.12865,-0.072103,0.11169,0.37324,-0.22055,-0.17107,-0.050896,0.10462,0.31669 0.088303,0.11774,-0.10793,-0.21585,-0.2551,0.17661,0.17661,-0.098115,-0.19623,-0.28453,0.2551,0.24529,0,-0.10793,-0.23548,0.32378,0.18642,-0.019623,-0.13736,-0.22566,0.40227,0.22566,-0.0098115,-0.11774,-0.18642 -0.20612,-0.20339,-0.20612,-0.20885,-0.21158,-0.14065,-0.15156,-0.16793,-0.16247,-0.16793,-0.097004,-0.10246,-0.12428,-0.11883,-0.12428,0.25217,0.21943,0.20034,0.17851,0.15124,0.29581,0.28763,0.26308,0.27945,0.26581 0.27232,0.032038,-0.11083,-0.18011,-0.23206,0.27016,0.016885,-0.017751,-0.20608,-0.24072,0.25933,0.19872,0.008226,-0.15629,-0.22773,0.25068,0.24418,0.047191,-0.21041,-0.23422,0.23985,0.23985,0.17707,-0.18876,-0.25154 0.36724,0.21868,-0.063584,-0.18243,-0.28642,0.32267,0.1444,-0.048728,-0.16758,-0.25671,0.32267,0.07012,-0.093295,-0.18243,-0.16758,0.32267,0.12954,-0.10815,-0.13786,-0.15272,0.29296,-0.048728,-0.048728,-0.15272,-0.093295 0.22649,0.23705,0.11189,-0.17177,-0.3266,0.22811,0.15252,0.13952,-0.15064,-0.32213,0.14805,0.14074,0.15009,-0.14251,-0.31929,0.12855,0.13099,0.14846,-0.16405,-0.30913,0.10498,0.12083,0.15781,-0.11203,-0.30791 -0.19993,-0.10288,-0.086703,0.20446,0.22064,-0.23229,-0.13523,-0.054351,0.075056,0.33387,-0.28081,-0.21611,-0.054351,0.18829,0.36622,-0.21611,-0.16758,-0.038175,0.12358,0.25299,-0.28081,-0.13523,-0.021999,0.18829,0.26917 0.21557,0.14778,0.00033895,-0.12677,-0.19286,0.26811,0.16134,0.078298,-0.087789,-0.16236,0.19693,0.13592,0.007118,-0.089483,-0.36912,0.29184,0.22574,0.007118,-0.13016,-0.39115,0.20202,0.073214,0.042708,-0.082704,-0.42166 0.19093,0.20576,0.16128,-0.090723,-0.34273,0.16128,0.17611,0.10199,-0.10555,-0.26861,0.17611,0.16128,0.087165,-0.10555,-0.32791,0.17611,0.19093,0.10199,-0.15002,-0.34273,0.10199,0.17611,0.10199,-0.16484,-0.37238 -0.26491,-0.082074,0.039818,0.12108,0.30392,-0.28523,-0.082074,-0.00081262,0.080449,0.26329,-0.28523,-0.041444,-0.041444,0.16171,0.32423,-0.36649,-0.2446,-0.00081262,0.12108,0.26329,-0.26491,-0.12271,0.039818,0.1414,0.22266 -0.26949,-0.16647,-0.042854,0.14257,0.24559,-0.24888,-0.14587,-0.042854,0.080763,0.28679,-0.33129,-0.10466,-0.063457,0.06016,0.26619,-0.24888,-0.063457,-0.0016482,0.24559,0.26619,-0.24888,-0.10466,-0.063457,0.18378,0.3692 0.19198,0.10708,-0.083046,-0.21584,-0.27825,0.2319,0.14482,-0.081595,-0.18246,-0.24632,0.2348,0.17312,-0.088852,-0.15634,-0.21222,0.266,0.13974,-0.062727,-0.11933,-0.18537,0.52217,0.1869,-0.051117,-0.083772,-0.15126 -0.25549,-0.15107,0.057781,0.092589,0.24922,-0.2903,-0.16847,0.092589,0.1448,0.24922,-0.34251,-0.064047,-0.046643,0.1448,0.30144,-0.23809,-0.23809,0.022973,0.1448,0.26663,-0.2903,-0.046643,-0.064047,0.1448,0.28403 0.23339,0.24674,-0.12699,-0.15178,-0.20517,0.24292,0.24483,-0.13271,-0.15369,-0.19945,0.24483,0.25246,-0.14797,-0.15941,-0.19373,0.24292,0.24292,-0.13653,-0.15178,-0.19373,0.24674,0.2372,-0.13081,-0.14606,-0.20517 -0.41398,-0.20904,0.012979,0.081293,0.26915,-0.20904,-0.17488,0.030058,0.081293,0.25208,-0.24319,-0.14073,0.030058,0.20084,0.28623,-0.22612,-0.072412,-0.021177,0.081293,0.30331,-0.26027,-0.14073,0.030058,0.14961,0.30331 0.39581,0.065969,-0.10812,-0.14477,-0.18141,0.32252,0.0018325,-0.080629,-0.11728,-0.19058,0.35,0.010995,-0.080629,-0.15393,-0.17225,0.40498,0.084294,-0.098954,-0.10812,-0.1356,0.37749,0.02932,-0.12644,-0.15393,-0.19058 0.2278,0.015752,-0.05998,-0.15086,-0.36291,0.19751,0.015752,0.061191,-0.15086,-0.30232,0.21266,0.15207,0.00060585,-0.13571,-0.31747,0.28839,0.24295,0.061191,-0.090272,-0.27203,0.27324,0.27324,0.12178,-0.090272,-0.21144 -0.26736,-0.028646,-0.011595,0.10776,0.32943,-0.23326,-0.148,-0.062749,0.10776,0.26123,-0.23326,-0.16506,-0.062749,0.10776,0.29533,-0.30147,-0.0798,-0.028646,0.10776,0.39764,-0.28441,-0.148,-0.062749,0.14187,0.26123 -0.28621,-0.17151,0.068821,0.22722,0.22722,-0.28074,-0.16604,0.052435,0.23268,0.22176,-0.2589,-0.16058,0.036049,0.20537,0.21629,-0.26436,-0.22066,0.030587,0.18352,0.19445,-0.28074,-0.19335,-0.0076467,0.20537,0.18898 0.19941,0.19855,0.2083,-0.23484,-0.23255,0.1974,0.20085,0.03793,-0.23369,-0.23369,0.19712,0.20285,0.035348,-0.23369,-0.23541,0.1974,0.20601,0.034201,-0.23484,-0.23484,0.18937,0.20974,0.034488,-0.2357,-0.23972 -0.23586,-0.26341,-0.29097,-0.29097,-0.26341,-0.16698,-0.16698,-0.13942,-0.18075,-0.16698,0.012124,0.025901,-0.029207,0.025901,0.025901,0.12234,0.19122,0.12234,0.16367,0.12234,0.205,0.30144,0.30144,0.28766,0.28766 -0.26833,-0.14055,0.0031944,0.115,0.17889,-0.22041,-0.14055,0.083054,0.13097,0.21083,-0.31624,-0.23638,-0.060693,0.17889,0.25875,-0.26833,-0.18847,0.083054,0.17889,0.27472,-0.2843,-0.15652,0.067082,0.2268,0.29069 -0.23526,-0.13429,-0.03332,0.11813,0.26959,-0.31098,-0.058562,-0.058562,0.2191,0.19386,-0.33623,-0.15953,-0.0080775,0.11813,0.32007,-0.23526,-0.21002,-0.03332,0.16862,0.26959,-0.2605,-0.13429,0.11813,0.14338,0.26959 -0.29384,-0.29384,-0.26315,-0.27338,-0.24269,-0.17107,-0.20176,-0.20176,-0.1813,-0.1813,0.074484,0.023327,0.10518,0.04379,0.054021,0.1768,0.1768,0.16656,0.13587,0.1461,0.20749,0.19726,0.26888,0.29957,0.22795 0.34628,0.012792,-0.07058,-0.12782,-0.17635,0.35623,0.015281,-0.095467,-0.1328,-0.19128,0.4284,0.050122,-0.069335,-0.12533,-0.18133,0.44707,0.0028371,-0.043204,-0.14275,-0.18879,0.26291,0.041412,-0.063113,-0.14648,-0.2087 0.14102,0.1071,0.10188,-0.22432,-0.27586,0.15798,0.14428,0.11884,-0.22041,-0.27455,0.19387,0.17495,0.13906,-0.21649,-0.26999,0.20039,0.19517,0.16516,-0.21258,-0.26216,0.203,0.20626,0.17038,-0.20605,-0.25694 0.25003,0.2421,-0.12448,-0.16891,-0.17367,0.24527,0.25003,-0.11654,-0.18002,-0.17526,0.2532,0.24527,-0.14987,-0.17843,-0.17367,0.23734,0.23892,-0.12765,-0.18002,-0.17843,0.23575,0.24051,-0.134,-0.19112,-0.18636 0.3141,0.2574,0.073139,-0.15365,-0.28122,0.24323,0.20071,0.030616,-0.23869,-0.23869,0.21488,0.21488,0.044791,-0.26704,-0.26704,0.15818,0.11566,0.087313,-0.15365,-0.23869,0.11566,0.14401,0.087313,-0.22452,-0.23869 0.34657,0.25696,0.18248,-0.086934,-0.21553,0.34366,0.13418,-0.017108,-0.11661,-0.24404,0.36054,0.040499,-0.047366,-0.16142,-0.25103,0.23136,0.042245,-0.043874,-0.17189,-0.24695,0.17783,0.0073318,-0.053767,-0.19749,-0.26965 0.17756,0.1934,0.16173,-0.1708,-0.26053,0.17228,0.167,0.14589,-0.2447,-0.24998,0.16173,0.167,0.16173,-0.22359,-0.26053,0.15117,0.19867,0.11422,-0.21303,-0.27109,0.167,0.18812,0.098387,-0.26053,-0.27109 0.40239,0.13373,-0.10508,-0.10508,-0.28418,0.25314,0.07403,0.044179,-0.25433,-0.28418,0.31284,0.13373,-0.10508,-0.045373,-0.19463,0.19343,0.25314,0.044179,-0.10508,-0.19463,0.28299,0.014328,-0.045373,-0.13493,-0.28418 -0.28265,-0.30124,-0.20827,-0.30124,-0.24546,-0.15248,-0.17108,-0.15248,-0.096695,-0.15248,-0.022314,-0.003719,-0.022314,-0.022314,-0.022314,0.14504,0.12645,0.16364,0.12645,0.14504,0.33099,0.25661,0.27521,0.2938,0.2938 -0.36808,-0.13861,-0.00091791,0.11382,0.36625,-0.2304,-0.16155,0.02203,0.13677,0.27446,-0.2304,-0.069761,-0.046814,0.090874,0.2974,-0.34514,-0.13861,-0.046814,0.090874,0.25151,-0.25334,-0.069761,0.067926,0.13677,0.25151 -0.20394,-0.14687,0.0053268,0.062399,0.34776,-0.28004,-0.089794,0.0053268,0.11947,0.21459,-0.29906,-0.12784,-0.013697,0.17654,0.23362,-0.39418,-0.12784,-0.013697,0.1385,0.36679,-0.24199,-0.10882,-0.013697,0.17654,0.21459 0.3136,0.22164,-0.0082769,-0.077251,-0.26118,0.35959,0.17565,-0.031268,-0.16922,-0.16922,0.24463,-0.0082769,-0.14623,-0.077251,-0.26118,0.40557,0.014715,-0.10024,-0.14623,-0.23819,0.29061,0.037706,-0.05426,-0.077251,-0.23819 -0.25526,-0.28501,-0.29988,-0.21063,-0.25526,-0.16601,-0.15113,-0.18088,-0.12138,-0.18088,-0.03213,-0.03213,-0.017255,-0.017255,0.042245,0.1315,0.16125,0.11662,0.17612,0.17612,0.26537,0.33975,0.2505,0.31,0.23562 -0.26674,-0.26163,-0.27186,-0.26163,-0.26674,-0.19515,-0.22072,-0.20026,-0.22072,-0.2156,0.065663,0.075891,0.10146,0.10146,0.075891,0.20885,0.19351,0.21908,0.20374,0.17817,0.16283,0.20885,0.19351,0.2242,0.16794 -0.29714,-0.27785,-0.027013,0.10805,0.301,-0.23926,-0.065603,0.050167,0.16594,0.26241,-0.31644,-0.065603,-0.007718,0.12735,0.28171,-0.27785,-0.10419,0.011577,0.18523,0.28171,-0.25855,-0.20067,0.011577,0.16594,0.18523 -0.23829,-0.23829,-0.25168,-0.21151,-0.23829,-0.18474,-0.17135,-0.19813,-0.17135,-0.18474,-0.024097,0.0026774,-0.091032,-0.024097,-0.01071,0.24364,0.1901,0.13655,0.14993,0.12316,0.33735,0.24364,0.29719,0.24364,0.27042 0.22215,0.23269,-0.1384,-0.18057,-0.17846,0.23269,0.2348,-0.15105,-0.17846,-0.17846,0.24745,0.24745,-0.10888,-0.17635,-0.18057,0.25799,0.25167,-0.12786,-0.17635,-0.18268,0.25167,0.25799,-0.12153,-0.17635,-0.18057 -0.31344,-0.024043,-0.0017809,0.15405,0.19857,-0.29118,-0.11309,0.020481,0.17631,0.33214,-0.24666,-0.11309,-0.046304,0.13179,0.2431,-0.26892,-0.15761,-0.0017809,0.19857,0.26536,-0.35797,-0.17987,0.065004,0.065004,0.26536 -0.28331,-0.12789,0.11634,0.16075,0.33837,-0.34991,-0.083482,-0.016874,0.11634,0.18295,-0.30551,-0.10568,-0.039077,0.11634,0.29396,-0.2389,-0.10568,0.049734,0.071937,0.29396,-0.30551,-0.17229,0.0053287,0.13854,0.24956 -0.1989,-0.17992,-0.0091099,0.18068,0.23762,-0.29379,-0.14196,-0.047068,0.1617,0.19966,-0.23686,-0.085026,-0.0091099,0.18068,0.33251,-0.23686,-0.12298,0.009869,0.12374,0.21864,-0.31277,-0.23686,-0.047068,0.12374,0.38945 -0.32521,-0.17072,0.0030899,0.11896,0.19621,-0.22865,-0.17072,0.080337,0.080337,0.25414,-0.26728,-0.1514,-0.035534,0.19621,0.31208,-0.28659,-0.17072,0.0030899,0.099649,0.29277,-0.20934,-0.20934,0.11896,0.19621,0.27345 -0.23595,-0.11557,-0.081174,0.17679,0.27998,-0.20156,-0.14997,-0.081174,0.17679,0.19399,-0.23595,-0.18436,-0.063976,0.17679,0.27998,-0.30475,-0.14997,-0.14997,0.17679,0.31438,-0.20156,-0.14997,0.022013,0.17679,0.33158 -0.22716,-0.092482,-0.0026936,0.087095,0.33401,-0.24961,-0.18227,-0.047588,0.087095,0.26667,-0.3394,-0.11493,-0.047588,0.087095,0.35646,-0.31695,-0.15982,0.0422,0.17688,0.24422,-0.15982,-0.15982,-0.0026936,0.10954,0.31156 0.27337,0.13148,-0.010405,-0.12865,-0.27053,0.17878,0.060539,-0.010405,-0.08135,-0.24689,0.29702,0.10784,-0.105,-0.12865,-0.19959,0.32067,0.27337,0.036891,-0.27053,-0.24689,0.22608,0.13148,0.10784,-0.057701,-0.38878 -0.16827,-0.16827,-0.02321,0.059682,0.30836,-0.29261,-0.14755,0.038959,0.1633,0.22546,-0.29261,-0.23044,-0.02321,0.10113,0.22546,-0.25116,-0.1061,-0.0024867,0.10113,0.37052,-0.31333,-0.085378,0.038959,0.14257,0.32908 -0.24061,-0.24061,-0.0068017,0.20575,0.26952,-0.26186,-0.049312,-0.0068017,0.1845,0.29077,-0.32563,-0.1981,-0.028057,0.14199,0.26952,-0.26186,-0.17684,-0.0068017,0.16324,0.1845,-0.28312,-0.028057,-0.0068017,0.12073,0.29077 -0.25257,-0.022123,-0.045168,0.11615,0.30051,-0.29867,-0.16039,0.00092181,0.11615,0.25442,-0.25257,-0.1143,-0.022123,0.16224,0.23137,-0.3678,-0.20648,0.070057,0.11615,0.30051,-0.18344,-0.20648,0.00092181,0.16224,0.30051 0.20198,0.20198,0.030081,-0.12033,-0.18479,0.35238,0.13752,0.073055,-0.18479,-0.14181,0.20198,0.073055,0.073055,-0.18479,-0.29222,0.26644,0.073055,0.030081,-0.18479,-0.35668,0.26644,0.073055,0.13752,-0.18479,-0.35668 -0.31518,-0.24869,-0.28193,-0.25977,-0.25977,-0.19328,-0.13786,-0.19328,-0.16003,-0.12678,-0.0048762,0.050535,0.017288,-0.027041,0.017288,0.13919,0.20569,0.18352,0.13919,0.13919,0.27218,0.28326,0.20569,0.27218,0.28326 0.22212,0.24897,-0.13978,-0.16541,-0.19226,0.2392,0.25202,-0.13307,-0.17701,-0.19836,0.23249,0.2569,-0.11842,-0.17151,-0.19836,0.23859,0.26117,-0.11537,-0.16175,-0.19409,0.23493,0.24592,-0.11964,-0.16175,-0.18555 -0.27891,-0.11034,-0.033715,0.18083,0.19616,-0.41684,-0.095014,0.01226,0.15018,0.21148,-0.23294,-0.15631,0.073559,0.15018,0.22681,-0.27891,-0.064365,0.027585,0.21148,0.30343,-0.30956,-0.17164,0.01226,0.13486,0.25746 0.29891,0.08064,-0.072016,-0.17914,-0.23405,0.33373,0.075953,-0.063982,-0.15169,-0.24007,0.48304,-0.11487,-0.013766,-0.12491,-0.22266,0.29958,0.11479,-0.0218,-0.13295,-0.18986,0.27682,0.12215,-0.02247,-0.1075,-0.19387 -0.34469,-0.11438,0.058343,0.039152,0.28865,-0.3063,-0.17196,0.058343,0.17349,0.23107,-0.32549,-0.17196,0.00076768,0.13511,0.28865,-0.21034,-0.17196,0.039152,0.11592,0.25026,-0.17196,-0.19115,0.039152,0.17349,0.28865 0.24508,0.10619,0.018336,-0.033197,-0.33553,0.23772,0.12189,0.03895,-0.031234,-0.33209,0.23478,0.10619,0.037968,-0.029271,-0.35172,0.24018,0.10962,0.02717,-0.023382,-0.3905,0.23281,0.12484,0.044839,-0.0224,-0.37725 -0.23712,-0.23712,-0.24329,-0.23712,-0.25871,-0.2032,-0.2032,-0.2032,-0.20011,-0.20011,0.0065388,-0.0057985,-0.0057985,0.0065388,-0.0057985,0.20394,0.19777,0.20085,0.20085,0.20085,0.24712,0.24403,0.24712,0.23786,0.24712 0.21654,0.15359,-0.03525,-0.18212,-0.30802,0.21654,0.090643,-0.18212,-0.03525,-0.24507,0.36341,0.13261,0.027696,-0.11918,-0.30802,0.2585,0.15359,0.090643,-0.11918,-0.37096,0.32145,0.090643,0.027696,-0.11918,-0.11918 0.41728,0.080044,-0.078793,-0.12737,-0.17422,0.39617,-0.027848,-0.079065,-0.12792,-0.18023,0.37634,-0.02894,-0.08889,-0.12646,-0.17886,0.35733,0.055118,-0.07761,-0.13037,-0.17431,0.3384,-0.029031,-0.07952,-0.13046,-0.18077 0.21463,0.16004,0.09808,0.040542,-0.27075,0.21611,0.14824,0.089228,-0.20879,-0.28255,0.2102,0.14529,0.071524,-0.23387,-0.28551,0.22053,0.16152,0.092178,-0.2501,-0.28255,0.21758,0.13791,0.10693,-0.24567,-0.27075 0.38036,0.22654,0.11036,-0.027099,-0.16619,0.31982,0.18072,0.033448,-0.068008,-0.22183,0.24618,0.12345,-0.018917,-0.15965,-0.25292,0.23636,0.079267,-0.032008,-0.17601,-0.30365,0.16109,0.028539,-0.11383,-0.22183,-0.36419 -0.23101,-0.18035,-0.028369,0.17427,0.1996,-0.28166,-0.10436,-0.028369,0.098279,0.32624,-0.30699,-0.18035,0.02229,0.098279,0.22493,-0.30699,-0.028369,-0.079028,0.14894,0.30091,-0.25633,-0.10436,0.02229,0.12361,0.3769 0.30631,0.13887,0.059247,-0.29202,-0.19718,0.2782,0.14355,0.032317,-0.29436,-0.2206,0.2782,0.13536,0.038171,-0.26275,-0.23816,0.2864,0.11311,0.017095,-0.02857,-0.29436,0.17517,0.12599,0.0030443,-0.035595,-0.26743 -0.26883,-0.15792,-0.0026617,0.1526,0.21914,-0.20229,-0.091383,-0.024842,0.08606,0.35223,-0.31319,-0.15792,-0.024842,0.21914,0.2635,-0.20229,-0.15792,-0.091383,0.19696,0.2635,-0.35755,-0.069203,-0.024842,0.10824,0.28568 -0.21726,-0.23214,-0.24702,-0.2619,-0.24702,-0.23214,-0.21726,-0.23214,-0.21726,-0.20238,0.065475,0.050594,0.065475,0.065475,0.020833,0.11012,0.1994,0.15476,0.15476,0.13988,0.24404,0.28869,0.24404,0.2738,0.22916 -0.25475,-0.19664,-0.068801,0.16363,0.29147,-0.21988,-0.18502,-0.092044,0.17526,0.21012,-0.20826,-0.19664,-0.068801,0.17526,0.22174,-0.20826,-0.18502,0.07066,0.1985,0.29147,-0.24313,-0.20826,0.012551,0.25661,0.26823 0.20948,0.33241,-0.13474,-0.060975,-0.30684,0.25865,0.086545,-0.060975,-0.23308,-0.13474,0.28324,0.11113,0.037372,-0.13474,-0.23308,0.28324,0.13572,-0.060975,-0.13474,-0.30684,0.25865,0.23407,-0.060975,-0.13474,-0.23308 0.15507,0.16792,0.1569,-0.21204,-0.26894,0.16241,0.16424,0.17342,-0.20286,-0.26711,0.16792,0.14956,0.14956,-0.19736,-0.25977,0.17709,0.15874,0.1569,-0.2047,-0.30198,0.18076,0.1514,0.15874,-0.22306,-0.29281 0.23209,0.21969,-0.16176,-0.20207,-0.19277,0.2352,0.22899,-0.12765,-0.19277,-0.21138,0.22589,0.2383,-0.040812,-0.21138,-0.19277,0.21969,0.22589,-0.053217,-0.19587,-0.21448,0.23209,0.2414,0.11115,-0.20207,-0.21138 -0.23094,-0.14635,0.065137,0.19203,0.25547,-0.33668,-0.1252,0.0016919,0.086286,0.31892,-0.20979,-0.1675,0.02284,0.14973,0.31892,-0.25209,-0.040605,-0.040605,0.14973,0.25547,-0.35783,-0.1675,-0.061754,0.065137,0.25547 -0.28232,-0.27184,-0.25086,-0.29281,-0.3033,-0.15647,-0.15647,-0.18794,-0.10404,-0.093549,0.000839,-0.0096485,-0.030624,0.021814,0.000839,0.1162,0.15815,0.15815,0.12669,0.15815,0.25254,0.31547,0.26303,0.25254,0.31547 0.23285,0.12757,0.0077099,-0.11701,-0.22067,0.24743,0.11623,0.017428,-0.10243,-0.20771,0.24905,0.14863,0.028766,-0.092713,-0.16884,0.24905,0.13405,0.030386,-0.092713,-0.51708,0.26039,0.13081,0.041724,-0.099191,-0.4037 0.14377,0.18141,0.14377,-0.1385,-0.25142,0.20023,0.18141,0.049681,-0.1385,-0.38315,0.12496,0.20023,0.0685,-0.10087,-0.34551,0.23787,0.087318,0.049681,-0.11969,-0.28905,0.23787,0.20023,0.10614,-0.082049,-0.36433 0.19477,0.20604,0.17223,-0.10956,-0.18846,0.17223,0.1835,0.12714,-0.10956,-0.31245,0.1835,0.1835,0.093328,-0.12083,-0.31245,0.1835,0.1835,0.082057,-0.19973,-0.33499,0.19477,0.13841,-0.04193,-0.18846,-0.38008 0.2481,0.13967,0.031229,-0.12058,-0.35914,0.35654,0.11798,0.074604,-0.012145,-0.27239,0.37822,0.16135,0.052917,-0.098893,-0.16395,0.22641,0.052917,0.0095423,-0.16395,-0.22902,0.18304,0.074604,-0.14227,-0.22902,-0.31576 -0.23522,-0.28447,-0.28447,-0.28447,-0.30417,-0.18597,-0.15642,-0.16627,-0.12687,-0.15642,-0.028368,0.020882,0.001182,0.001182,0.030732,0.18833,0.16863,0.18833,0.18833,0.21788,0.23758,0.29669,0.18833,0.23758,0.24743 -0.33766,-0.31375,-0.28984,-0.28984,-0.25397,-0.1344,-0.11048,-0.1344,-0.1344,-0.1344,0.021044,-0.0028697,-0.0028697,0.068872,0.021044,0.12866,0.14061,0.14061,0.12866,0.1167,0.27214,0.27214,0.24823,0.30801,0.27214 -0.26296,-0.28894,-0.22398,-0.21099,-0.26296,-0.198,-0.185,-0.198,-0.24996,-0.22398,0.074833,0.0098738,0.048849,0.10082,0.061841,0.19176,0.13979,0.16578,0.1268,0.11381,0.25672,0.25672,0.26971,0.24373,0.24373 0.20777,0.16715,0.13012,-0.24321,-0.23843,0.22271,0.16477,0.12355,-0.2438,-0.23962,0.22211,0.12056,0.12056,-0.23902,-0.23902,0.22629,0.11399,0.12415,-0.23604,-0.24261,0.23107,0.11877,0.11638,-0.24082,-0.24739 0.3425,0.23985,0.022306,-0.14928,-0.12324,0.27509,0.17857,-0.014462,-0.20137,-0.15541,0.31952,0.17091,-0.0052702,-0.21362,-0.17226,0.30726,0.092779,-0.078807,-0.23661,-0.19218,0.20308,0.054479,-0.12477,-0.29023,-0.24886 0.21948,0.11821,0.064813,-0.057325,-0.41146,0.22316,0.11084,0.054992,-0.05978,-0.42005,0.2115,0.13478,0.044559,-0.051801,-0.38691,0.23053,0.13539,0.062971,-0.057325,-0.25434,0.23053,0.12987,0.058061,-0.048732,-0.28196 -0.24005,-0.24005,-0.25951,-0.2634,-0.24005,-0.20502,-0.2167,-0.19724,-0.20502,-0.21281,0.063515,0.020705,0.020705,0.040164,-0.0026465,0.19584,0.18027,0.18416,0.17249,0.17249,0.262,0.24643,0.25811,0.23087,0.23476 0.33058,0.072903,-0.084215,-0.10935,-0.1722,0.36828,0.047764,-0.084215,-0.14078,-0.16592,0.33058,0.035194,-0.096785,-0.13449,-0.14706,0.40599,0.02891,-0.07793,-0.14706,-0.1722,0.42485,-0.052792,-0.0905,-0.15335,-0.21619 -0.25952,-0.20554,-0.20554,-0.20554,-0.18395,-0.22713,-0.19475,-0.15157,-0.16236,-0.20554,-0.065203,-0.065203,-0.022022,-0.086794,-0.097589,0.1507,0.18309,0.22627,0.21547,0.24786,0.24786,0.28024,0.28024,0.21547,0.29104 0.18954,0.10089,-0.028044,-0.29398,-0.31816,0.22983,0.18148,-0.011927,-0.15698,-0.35845,0.1976,0.15731,0.060601,-0.12475,-0.2698,0.22178,0.20566,0.13313,-0.10863,-0.28592,0.21372,0.18954,0.13313,0.0041905,-0.26175 -0.2377,-0.10308,-0.026155,0.18539,0.26232,-0.21847,-0.10308,0.012308,0.10847,0.33925,-0.2954,-0.21847,-0.10308,0.089235,0.24309,-0.2954,-0.12231,-0.08385,0.14693,0.26232,-0.27617,-0.10308,0.089235,0.089235,0.35848 0.2092,0.23821,0.073859,-0.16783,-0.16783,0.22854,0.16087,-0.071153,-0.19683,-0.19683,0.22854,0.19954,-0.12916,-0.19683,-0.19683,0.25754,0.18987,-0.10016,-0.22583,-0.25483,0.26721,0.31555,-0.04215,-0.22583,-0.19683 0.12599,0.099445,-0.06584,-0.1609,-0.17717,0.34266,0.048061,-0.060701,-0.15319,-0.19087,0.50623,0.1003,-0.058989,-0.14548,-0.19344,0.3615,0.10373,-0.069265,-0.16604,-0.19858,0.3281,0.064333,-0.062414,-0.16946,-0.208 -0.24255,-0.24255,-0.32182,-0.24255,-0.302,-0.16329,-0.12365,-0.084021,-0.14347,-0.1831,0.01506,-0.0047559,-0.0047559,-0.064205,-0.024572,0.13396,0.13396,0.11414,0.17359,0.11414,0.27267,0.31231,0.29249,0.29249,0.29249 0.23757,0.15555,0.13155,-0.096499,-0.39456,0.21956,0.13155,0.12955,-0.098499,-0.33054,0.20156,0.11954,0.11954,-0.098499,-0.37855,0.18756,0.10554,0.10554,-0.070494,-0.34655,0.16155,0.091538,0.081536,-0.074495,-0.29054 0.35331,-0.022584,-0.057105,-0.095461,-0.2205,0.33873,-0.017214,-0.06094,-0.092393,-0.2159,0.38246,-0.0041732,-0.041762,-0.10927,-0.2113,0.37172,-0.0041732,-0.047899,-0.13535,-0.23661,0.30881,0.22827,-0.053269,-0.12308,-0.23431 0.19389,0.19389,0.16451,-0.20564,-0.27615,0.14689,0.17039,0.14689,-0.18801,-0.29377,0.17626,0.14101,0.16451,-0.18801,-0.25852,0.14101,0.17626,0.15864,-0.22327,-0.27615,0.15276,0.16451,0.13514,-0.24089,-0.27615 0.25973,0.11138,0.046482,-0.14513,-0.19458,0.34627,0.16392,0.071207,-0.089503,-0.16059,0.27828,0.0093954,-0.12659,-0.1575,-0.20076,0.29064,0.092841,-0.16677,-0.20386,-0.24403,0.38027,0.19792,-0.13277,-0.19767,-0.22858 0.28158,0.18726,0.070799,-0.33247,-0.34499,0.25559,0.19881,0.063099,-0.15538,-0.34884,0.22768,0.15935,0.063099,-0.03796,-0.22372,0.17475,0.12758,0.052512,-0.061059,-0.27858,0.16031,0.14683,0.0072762,-0.13324,-0.26029 -0.23642,-0.22738,-0.21835,-0.22738,-0.28161,-0.16412,-0.1822,-0.13701,-0.12797,-0.15508,-0.064709,-0.091821,-0.073746,-0.037596,-0.037596,0.107,0.097967,0.18834,0.1793,0.20642,0.27872,0.28775,0.27872,0.31487,0.32391 0.21055,0.19595,0.15215,-0.11068,-0.24939,0.21055,0.21055,0.10834,-0.088777,-0.25669,0.18135,0.21055,0.013433,-0.22749,-0.25669,0.21785,0.16675,-0.02307,-0.24939,-0.2859,0.22516,0.23246,-0.11068,-0.23479,-0.24209 0.17721,0.04767,-0.051975,-0.14763,-0.42266,0.19315,0.10945,-0.010124,-0.13368,-0.37084,0.25693,0.14333,0.039699,-0.073897,-0.32102,0.27885,0.16127,0.055642,-0.036032,-0.30109,0.28483,0.21707,0.089522,-0.024074,-0.16159 -0.25339,-0.24496,-0.24917,-0.25339,-0.23652,-0.22809,-0.24074,-0.2323,-0.19013,-0.21965,0.024968,0.058709,0.058709,0.071361,0.071361,0.19789,0.19789,0.20632,0.20632,0.22319,0.21476,0.1768,0.20632,0.22741,0.20632 -0.2421,-0.25168,-0.27084,-0.21337,-0.2421,-0.23253,-0.27084,-0.2038,-0.21337,-0.22295,0.064357,0.073934,0.05478,0.10266,0.064357,0.1697,0.19843,0.16013,0.1697,0.18886,0.21759,0.23674,0.24632,0.21759,0.19843 -0.20815,-0.20815,-0.01252,0.2092,0.24832,-0.24728,-0.23424,0.026606,0.19615,0.23528,-0.23424,-0.20815,-0.025563,0.19615,0.23528,-0.24728,-0.20815,0.013564,0.26137,0.24832,-0.2212,-0.19511,-0.025563,0.2092,0.19615 -0.29072,-0.15432,-0.056897,0.0795,0.27435,-0.21278,-0.15432,0.040529,0.19641,0.23538,-0.27123,-0.076382,0.0015588,0.0795,0.37178,-0.32969,-0.25175,-0.017926,0.13796,0.27435,-0.21278,-0.076382,-0.017926,0.15744,0.27435 0.29654,0.29654,0.27478,0.26752,0.224,0.224,0.19498,0.21675,0.17322,0.13695,-0.022632,-0.044394,-0.022632,-0.073409,-0.095171,-0.18947,-0.16046,-0.18222,-0.18222,-0.20398,-0.21849,-0.22574,-0.23299,-0.2475,-0.20398 0.27272,0.24429,0.059436,-0.23917,-0.1894,0.31538,0.23718,-0.01166,-0.21073,-0.16096,0.25851,0.19452,-0.10408,-0.1894,-0.16096,0.29405,0.080765,-0.1183,-0.21073,-0.1894,0.26561,0.10209,-0.16096,-0.1894,-0.1894 0.3014,0.19653,0.10526,-0.10707,-0.35306,0.26515,0.16805,0.094901,-0.0099691,-0.3207,0.23084,0.11562,0.039876,-0.040394,-0.35954,0.21272,0.063828,-0.010616,-0.055283,-0.34983,0.18682,0.040524,-0.026153,-0.08053,-0.3084 0.30356,0.2323,0.036342,-0.17743,-0.24869,0.16104,0.17886,0.036342,-0.23088,-0.23088,0.26793,0.2323,-0.052732,-0.23088,-0.19525,0.19667,0.28575,0.018527,-0.19525,-0.19525,0.14323,0.17886,-0.017102,-0.24869,-0.24869 0.181,0.16562,0.13336,-0.024456,-0.20708,0.19192,0.17207,0.13931,-0.20014,-0.32669,0.18745,0.16959,0.07728,-0.24083,-0.28202,0.19688,0.17753,0.02666,-0.2453,-0.29542,0.18894,0.16562,0.16065,-0.24877,-0.26316 0.2793,0.11957,0.028295,-0.062979,-0.19989,0.21084,0.16521,0.051113,-0.13143,-0.22271,0.21084,0.23366,0.028295,-0.062979,-0.45089,0.25648,0.11957,-0.04016,-0.04016,-0.3368,0.32493,0.0054764,-0.017342,-0.19989,-0.26834 0.24228,0.24228,-0.13361,-0.15417,-0.185,0.24228,0.24337,-0.13956,-0.16228,-0.18446,0.24661,0.24661,-0.13578,-0.16985,-0.18446,0.24553,0.24553,-0.14119,-0.16228,-0.1877,0.24445,0.24337,-0.14389,-0.16985,-0.18824 0.16704,0.15826,0.13193,-0.18754,-0.29637,0.1723,0.16528,0.14597,-0.23318,-0.28935,0.19337,0.15124,0.15475,-0.25073,-0.30164,0.21268,0.16704,0.17406,-0.13663,-0.28759,0.10911,0.1056,0.16704,-0.098018,-0.29461 -0.28095,-0.18571,-0.042857,0.07619,0.40952,-0.20952,-0.090476,0.0047619,0.1,0.29048,-0.32857,-0.042857,-0.019048,0.12381,0.29048,-0.28095,-0.1381,0.052381,0.12381,0.19524,-0.30476,-0.11429,-0.042857,0.14762,0.26667 -0.27721,-0.27721,-0.27721,-0.30493,-0.30493,-0.083162,-0.15708,-0.17557,-0.19405,-0.11088,0.055442,0,0.027721,-0.046201,0.046201,0.20329,0.1386,0.14784,0.14784,0.14784,0.26797,0.27721,0.22177,0.27721,0.24949 0.24954,0.13778,-0.16559,-0.28171,-0.34702,0.26115,0.15519,0.050686,-0.21058,-0.35138,0.24954,0.15229,0.031817,-0.087206,-0.3209,0.24664,0.13197,0.040526,-0.058176,-0.1743,0.26696,0.15229,0.049235,-0.037855,-0.14091 0.36523,0.059058,-0.010785,-0.055452,-0.11311,0.31488,0.00058473,-0.052204,-0.1326,-0.16509,0.34574,0.18981,-0.096059,-0.15047,-0.21544,0.31163,0.18656,-0.13098,-0.1789,-0.25199,0.26778,0.13377,-0.18133,-0.18539,-0.25524 -0.30657,-0.14723,0.091781,0.18739,0.26706,-0.25877,-0.16317,-0.019758,0.21926,0.26706,-0.32251,-0.11536,0.043978,0.20332,0.21926,-0.27471,-0.16317,0.059913,0.18739,0.21926,-0.30657,-0.1791,0.043978,0.12365,0.12365 -0.27119,-0.14717,-0.02315,0.10087,0.22489,-0.20918,-0.085159,-0.04382,0.059529,0.36957,-0.27119,-0.14717,-0.02315,0.10087,0.30756,-0.27119,-0.16784,-0.0024804,0.20422,0.24556,-0.27119,-0.16784,-0.04382,0.28689,0.24556 -0.16913,-0.1801,-0.17096,-0.18193,-0.18375,-0.16,-0.16183,-0.16365,-0.16183,-0.17096,-0.13807,-0.13076,-0.13624,-0.13807,-0.13442,0.17805,0.16709,0.17074,0.16161,0.16161,0.31144,0.31144,0.30231,0.31327,0.30414 -0.17468,-0.1641,-0.17468,-0.16939,-0.17468,-0.17732,-0.17468,-0.17468,-0.18526,-0.17468,-0.11384,-0.12178,-0.11384,-0.12178,-0.11649,0.13214,0.13479,0.15066,0.13479,0.16124,0.3173,0.32523,0.33317,0.32523,0.3173 0.31656,0.10092,-0.10394,-0.14707,-0.17942,0.31656,0.090139,-0.1902,-0.13629,-0.17942,0.35969,0.04701,-0.14707,-0.1255,-0.15785,0.40282,0.10092,-0.10394,-0.14707,-0.1255,0.35969,0.1117,-0.13629,-0.13629,-0.1902 0.37218,0.060546,-0.11411,-0.14493,-0.1415,0.38588,0.029725,-0.10041,-0.15178,-0.1552,0.39615,0.0023287,-0.11411,-0.13808,-0.1415,0.35848,0.0023287,-0.11753,-0.1415,-0.1415,0.3893,0.0023287,-0.10383,-0.14835,-0.14493 -0.3415,-0.11076,0.0046149,0.13922,0.35073,-0.3415,-0.11076,0.023844,0.1969,0.21613,-0.30305,-0.053071,-0.053071,0.08153,0.21613,-0.28382,-0.053071,0.023844,0.11999,0.31228,-0.30305,-0.11076,0.043072,0.11999,0.21613 0.19654,0.14189,0.075409,-0.19508,-0.28251,0.2184,0.14463,0.087249,-0.23606,-0.28889,0.22022,0.14189,0.082695,-0.2388,-0.29435,0.21566,0.15373,0.091803,-0.2479,-0.27249,0.23843,0.1592,0.10546,0.052641,-0.26976 -0.19495,-0.11055,0.079328,0.14262,0.31141,-0.32153,-0.13165,-0.026162,0.10043,0.31141,-0.34263,-0.13165,-0.068357,0.20592,0.26921,-0.25824,-0.13165,-0.026162,0.079328,0.31141,-0.17385,-0.19495,-0.068357,0.10043,0.26921 0.48258,0.08423,-0.012666,-0.13236,-0.22799,0.50032,0.09183,-0.026282,-0.11621,-0.21121,0.23053,0.072831,-0.036732,-0.14313,-0.21564,0.20203,0.054148,-0.038315,-0.1425,-0.25332,0.19506,0.053515,-0.047498,-0.1216,-0.24161 -0.31354,-0.24795,-0.31354,-0.26435,-0.26435,-0.19875,-0.14956,-0.16595,-0.16595,-0.14956,0.014431,0.014431,-0.0019678,0.030829,0.11282,0.16202,0.14562,0.16202,0.16202,0.17842,0.26041,0.22761,0.22761,0.29321,0.24401 -0.21735,-0.17599,-0.13781,0.17395,0.29484,-0.22689,-0.1919,-0.14418,0.1835,0.29484,-0.21735,-0.17599,-0.12191,0.13896,0.27576,-0.2078,-0.16963,-0.042375,0.20577,0.27894,-0.20462,-0.13781,0.068971,0.1835,0.27257 -0.31243,-0.099021,0.029023,0.071705,0.24243,-0.22706,-0.099021,0.0076826,0.19975,0.28511,-0.24841,-0.20572,0.029023,0.19975,0.32779,-0.31243,-0.16304,0.0076826,0.093045,0.37047,-0.26975,-0.1417,-0.013658,0.071705,0.15707 -0.3618,-0.11844,-0.037316,0.023525,0.28717,-0.2604,-0.13872,0.0032449,0.16549,0.22633,-0.21984,-0.098157,0.064086,0.16549,0.34801,-0.21984,-0.098157,-0.077877,0.10465,0.28717,-0.28068,-0.21984,0.0032449,0.16549,0.28717 0.26922,0.14957,0.08974,-0.12962,-0.1396,0.3091,0.15954,-0.019942,-0.12962,-0.15954,0.34899,0.069798,-0.049856,-0.1396,-0.22934,0.35896,0.099711,-0.11965,-0.19942,-0.21936,0.34899,-0.049856,-0.15954,-0.22934,-0.22934 -0.25837,-0.15862,-0.0089783,0.09078,0.31524,-0.33319,-0.15862,0.065841,0.14066,0.31524,-0.2085,-0.18356,-0.0089783,0.21548,0.2903,-0.18356,-0.2085,-0.13368,0.14066,0.2903,-0.25837,-0.083797,-0.0089783,0.11572,0.21548 0.42272,0.11645,-0.021973,-0.1386,-0.21162,0.37476,0.28975,-0.029603,-0.14296,-0.20944,0.37803,0.076121,-0.030693,-0.1702,-0.23669,0.14588,0.08484,-0.039412,-0.15059,-0.22688,0.12953,0.063042,-0.044862,-0.19527,-0.23233 -0.25441,-0.038401,-0.038401,0.17761,0.22561,-0.30241,-0.062402,-0.0144,0.1056,0.32161,-0.25441,-0.18241,-0.086403,0.1056,0.22561,-0.23041,-0.15841,-0.038401,0.1536,0.24961,-0.32641,-0.18241,0.081603,0.1536,0.36961 0.25149,0.23573,-0.15619,-0.16816,-0.17635,0.25275,0.23195,-0.14989,-0.1669,-0.17761,0.24897,0.23888,-0.14233,-0.16501,-0.17698,0.24897,0.23888,-0.14674,-0.16627,-0.17509,0.25527,0.24266,-0.13666,-0.16249,-0.17887 -0.2095,-0.23751,-0.29353,-0.30753,-0.26552,-0.15349,-0.16749,-0.1955,-0.15349,-0.16749,0.014564,0.00056017,0.014564,-0.027448,0.014564,0.18262,0.11259,0.19662,0.15461,0.1266,0.21062,0.28064,0.25264,0.26664,0.35067 0.24791,0.18552,-0.14725,-0.14725,-0.45922,0.3519,0.12312,0.039932,-0.064058,-0.23044,0.22711,0.10233,-0.0016638,-0.0016638,-0.27204,0.24791,0.16472,0.039932,-0.14725,-0.25124,0.20632,0.16472,-0.064058,-0.064058,-0.25124 0.26769,0.25949,0.10653,-0.18847,-0.32232,0.22398,0.22672,0.092871,-0.084677,-0.32505,0.18574,0.17482,0.073751,-0.12292,-0.33324,0.13111,0.14204,0.084677,-0.1475,-0.30593,0.10107,0.092871,0.071019,-0.09014,-0.31412 -0.30841,-0.32944,-0.31542,-0.31542,-0.32944,-0.11215,-0.16822,-0.16121,-0.12617,-0.13318,0.091121,0.070093,0.091121,0.09813,0.091121,0.18224,0.16822,0.18224,0.16121,0.16121,0.21028,0.21729,0.21028,0.17523,0.18925 0.24725,0.2433,-0.13421,-0.17561,-0.17364,0.24527,0.2433,-0.13914,-0.17364,-0.17364,0.24823,0.24133,-0.13717,-0.17758,-0.16969,0.24725,0.24232,-0.14801,-0.17364,-0.17364,0.24232,0.24429,-0.14801,-0.17364,-0.17364 -0.23894,-0.14843,-0.039823,-0.0036202,0.2498,-0.20273,-0.14843,0.014481,0.12309,0.3041,-0.32944,-0.094126,-0.057924,0.19549,0.2498,-0.23894,-0.094126,0.014481,0.14119,0.39461,-0.32944,-0.14843,-0.021721,0.14119,0.2679 -0.32649,-0.31399,-0.26396,-0.28064,-0.28898,-0.20977,-0.19726,-0.14724,-0.15141,-0.16808,0.069534,0.069534,0.11956,0.1279,0.12373,0.11122,0.15708,0.18209,0.19876,0.20293,0.1404,0.17375,0.2071,0.22795,0.23628 -0.19903,-0.19558,-0.19558,-0.18868,-0.19213,-0.19903,-0.19558,-0.19558,-0.18868,-0.19903,-0.11622,-0.092062,-0.088611,-0.088611,-0.061006,0.22194,0.23574,0.23574,0.22884,0.20469,0.27715,0.27715,0.253,0.22884,0.23229 -0.31922,-0.2468,-0.20335,-0.31922,-0.3337,-0.14542,-0.13093,-0.1599,-0.1599,-0.14542,0.013904,0.057355,-0.00057935,0.013904,-0.00057935,0.21668,0.17322,0.14426,0.12977,0.11529,0.27461,0.28909,0.26013,0.23116,0.24564 -0.25699,-0.26032,-0.26032,-0.26032,-0.25366,-0.22037,-0.22037,-0.23036,-0.21704,-0.23036,0.069241,0.085886,0.10919,0.1225,0.1225,0.19574,0.19574,0.18575,0.19241,0.19574,0.19241,0.19241,0.18242,0.19574,0.17244 0.27306,0.26631,-0.10619,-0.16827,-0.20876,0.3095,0.26091,-0.06975,-0.18177,-0.20606,0.28386,0.26361,-0.081897,-0.15478,-0.19797,0.29061,-0.0022674,-0.065701,-0.15748,-0.21281,0.28791,0.0058305,-0.094044,-0.14668,-0.18717 0.2352,0.20218,-0.18135,-0.20929,-0.23596,0.22504,0.17551,0.10566,-0.20802,-0.24485,0.21869,0.19964,0.099311,-0.18643,-0.24231,0.20726,0.18948,0.096771,-0.21183,-0.24993,0.19837,0.17805,0.099311,-0.19786,-0.26263 -0.23641,-0.10157,0.010787,0.14562,0.25798,-0.21393,-0.28135,0.05573,0.12315,0.28045,-0.25888,-0.21393,0.05573,0.12315,0.19056,-0.34876,-0.16899,0.05573,0.078202,0.32539,-0.23641,-0.12405,0.010787,0.16809,0.30292 0.16711,0.063049,-0.07774,-0.1512,-0.25832,0.21608,0.090595,-0.068558,-0.080801,-0.33789,0.2926,0.18854,-0.0042849,-0.053255,-0.24608,0.27729,0.16711,0.035503,-0.010406,-0.34096,0.28035,0.18854,0.081413,-0.013467,-0.40523 0.16095,0.21904,-0.076675,-0.21925,-0.24038,0.25073,0.24544,0.04214,-0.14268,-0.26942,0.42499,0.23488,-0.021228,-0.19285,-0.23245,0.12927,0.081744,-0.074035,-0.089877,-0.24302,0.31673,0.084385,-0.03707,-0.14004,-0.21133 0.16034,0.1694,-0.072429,-0.19335,-0.1873,0.27218,0.063602,-0.10568,-0.21753,-0.14498,0.24498,0.21777,-0.0089478,-0.1208,-0.14498,0.27823,0.22382,-0.072429,-0.18125,-0.2266,0.39008,0.23289,-0.048246,-0.23567,-0.2931 0.38592,-0.020649,-0.084365,-0.12598,-0.16282,0.38332,-0.0054787,-0.081331,-0.13118,-0.16152,0.38939,-0.0089463,-0.080031,-0.12077,-0.16455,0.38939,-0.01068,-0.086966,-0.12424,-0.16672,0.38592,-0.013281,-0.083065,-0.13421,-0.16715 -0.3476,-0.13565,0.023315,0.1028,0.28825,-0.32111,-0.13565,0.049809,0.049809,0.26176,-0.24163,-0.13565,0.023315,0.18228,0.15578,-0.32111,-0.056167,-0.056167,0.20877,0.28825,-0.26812,-0.13565,0.1028,0.12929,0.28825 -0.2601,-0.17468,0.081574,0.14564,0.23105,-0.20671,-0.20671,0.070896,0.16699,0.29512,-0.23874,-0.21739,-0.035875,0.14564,0.27376,-0.24942,-0.28145,-0.025198,0.10293,0.25241,-0.24942,-0.15332,0.092251,0.16699,0.27376 0.12116,0.11223,0.12116,-0.24152,-0.253,0.248,0.11797,0.10713,-0.2326,-0.253,0.2429,0.11797,0.10012,-0.21603,-0.24407,0.24609,0.11924,0.10331,-0.22176,-0.2377,0.24417,0.2531,0.11924,-0.23005,-0.24407 0.20278,0.24751,0.038767,-0.14016,-0.30417,0.2326,0.11332,0.11332,-0.11034,-0.27435,0.17296,0.15805,0.20278,-0.15507,-0.22962,0.18787,0.18787,-0.050695,-0.1998,-0.28926,0.18787,0.17296,0.098409,-0.1998,-0.36381 -0.241,-0.26516,-0.27206,-0.27206,-0.27896,-0.14783,-0.15818,-0.17544,-0.20304,-0.2134,0.083371,0.038511,-0.0063495,-0.0063495,-0.037407,0.22485,0.21795,0.2007,0.1938,0.15929,0.26281,0.23521,0.23176,0.21105,0.21795 0.15706,0.11469,0.10056,-0.15367,-0.25254,0.15706,0.22768,0.15706,-0.097175,-0.29492,0.15706,0.15706,0.14294,-0.1678,-0.29492,0.14294,0.25593,0.12881,-0.25254,-0.26667,0.17119,0.19944,0.086441,-0.25254,-0.32316 0.1581,0.15584,0.17958,-0.18437,-0.27818,0.14567,0.15697,0.16488,-0.21602,-0.27592,0.1468,0.18071,0.15471,-0.20698,-0.25558,0.16601,0.17506,0.15019,-0.21376,-0.2827,0.17054,0.16488,0.16036,-0.21941,-0.2974 0.14985,0.19183,0.044913,-0.22793,-0.31188,0.13936,0.20232,0.097382,-0.16496,-0.30138,0.18133,0.19183,0.097382,-0.102,-0.42731,0.21281,0.14985,0.10788,-0.102,-0.25941,0.20232,0.14985,0.13936,-0.070518,-0.29089 0.19968,0.11855,-0.048489,-0.23462,-0.33007,0.23309,0.16628,-0.067579,-0.2203,-0.28712,0.19491,0.17105,0.066052,-0.20598,-0.28712,0.22355,0.20446,0.16628,-0.10576,-0.25848,0.19968,0.214,0.1615,-0.038944,-0.23462 0.17045,0.1676,0.1576,-0.23797,-0.27224,0.16331,0.16331,0.16331,-0.18513,-0.27367,0.1576,0.16331,0.15903,-0.23083,-0.26653,0.16046,0.16331,0.15903,-0.21369,-0.27653,0.16046,0.1676,0.16046,-0.20655,-0.27367 -0.23611,-0.20463,-0.22037,-0.25185,-0.25185,-0.17315,-0.15741,-0.17315,-0.20463,-0.17315,-0.047222,-0.047222,-0.047222,0,-0.015741,0.11018,0.20463,0.12593,0.11018,0.17315,0.3463,0.36204,0.22037,0.28333,0.26759 0.45374,0.06482,0,-0.16205,-0.16205,0.25928,0.16205,0,-0.25928,-0.29169,0.25928,0.19446,0,-0.22687,-0.12964,0.16205,0.097231,0,-0.097231,-0.29169,0.3241,0.097231,-0.097231,-0.16205,-0.19446 -0.32623,-0.28557,-0.32623,-0.2937,-0.30183,-0.12294,-0.11481,-0.098551,-0.11481,-0.09042,0.015287,0.031549,-0.009107,-0.00097575,-0.017238,0.13726,0.12912,0.15352,0.15352,0.12912,0.28362,0.25109,0.29988,0.26736,0.25109 0.15796,0.012973,-0.12248,-0.21787,-0.37239,0.19421,0.091191,-0.051891,-0.18734,-0.30181,0.28769,0.13888,0.026327,-0.1282,-0.25984,0.33729,0.17513,0.037774,-0.070969,-0.2255,0.32966,0.25526,0.096914,-0.04426,-0.15873 -0.21327,-0.16273,0.039419,0.089956,0.34264,-0.21327,-0.16273,0.089956,0.089956,0.31737,-0.33961,-0.13746,-0.011118,0.089956,0.26684,-0.31434,-0.16273,0.01415,0.039419,0.24157,-0.23854,-0.16273,-0.011118,0.24157,0.26684 -0.16852,-0.18951,-0.16852,-0.18951,-0.17902,-0.16852,-0.16852,-0.17377,-0.18426,-0.17902,-0.1213,-0.1318,-0.1318,-0.1213,-0.1318,0.18301,0.15677,0.19875,0.23547,0.19875,0.2722,0.27745,0.28269,0.30368,0.29843 -0.26688,-0.17548,0.0073117,0.25865,0.30435,-0.26688,-0.061235,0.0073117,0.05301,0.3272,-0.22118,-0.19833,0.05301,0.075858,0.2358,-0.28972,-0.24403,0.030161,0.098707,0.2358,-0.28972,-0.12978,0.05301,0.14441,0.25865 0.13192,0.10081,0.03858,-0.13254,-0.31922,0.16303,0.13192,0.085249,-0.11698,-0.38144,0.19414,0.085249,0.085249,-0.070315,-0.33477,0.2097,0.2097,0.10081,-0.11698,-0.33477,0.25637,0.22526,0.16303,-0.054758,-0.31922 -0.26245,-0.22118,-0.035488,0.19147,0.29463,-0.24181,-0.17992,-0.014856,0.0057771,0.31527,-0.30371,-0.097386,-0.035488,0.088308,0.29463,-0.20055,-0.076753,-0.014856,0.23274,0.29463,-0.32435,-0.076753,0.0057771,0.12957,0.23274 -0.34575,-0.29052,-0.2629,-0.2629,-0.23529,-0.16625,-0.13863,-0.16625,-0.0834,-0.12482,-0.00055232,-0.01436,-0.041976,-0.00055232,0.013256,0.10991,0.15134,0.10991,0.19276,0.15134,0.27561,0.2618,0.28941,0.27561,0.30322 0.41418,0.098751,-0.066597,-0.14164,-0.18743,0.15344,0.032612,-0.061509,-0.15181,-0.18743,0.41037,0.066953,-0.066597,-0.14164,-0.18234,0.39765,0.061865,-0.089491,-0.15563,-0.18997,0.38238,0.021164,-0.074228,-0.15436,-0.1887 0.25208,-0.01271,0.013769,-0.065668,-0.22454,0.358,0.2256,0.066727,-0.19806,-0.30398,0.27856,0.14616,0.013769,-0.065668,-0.19806,0.27856,0.25208,-0.01271,-0.17158,-0.30398,0.14616,0.013769,0.013769,-0.17158,-0.33046 -0.25331,-0.23686,-0.26976,-0.28621,-0.28621,-0.15462,-0.17107,-0.088823,-0.12172,-0.20397,0.026318,-0.072375,-0.023028,0.026318,-0.039477,0.17436,0.19081,0.14146,0.12501,0.12501,0.24015,0.3224,0.2237,0.30595,0.30595 0.20011,0.23572,-0.13346,-0.18298,-0.17863,0.20011,0.20966,-0.11783,-0.18124,-0.17863,0.25136,0.20532,-0.11696,-0.18037,-0.18037,0.27742,0.20706,-0.12217,-0.1769,-0.18037,0.31998,0.30609,-0.12391,-0.1795,-0.1795 0.28756,0.28756,0.075425,-0.23099,-0.20742,0.24042,0.19328,-0.018856,-0.18385,-0.11314,0.19328,0.14614,0.004714,-0.18385,-0.3017,0.26399,0.19328,-0.065997,-0.18385,-0.27813,0.19328,0.051854,0.098995,-0.11314,-0.34884 -0.20275,-0.20275,-0.20275,-0.17861,-0.13034,-0.21482,-0.20275,-0.16654,-0.20275,-0.15447,-0.057928,-0.04586,-0.15447,-0.11827,-0.094133,0.18344,0.18344,0.17137,0.098961,0.18344,0.30412,0.30412,0.29205,0.29205,0.31619 0.3596,0.22329,0.0021609,-0.13639,-0.20581,0.27255,0.0069193,-0.13079,-0.13779,-0.20861,0.3596,0.0032805,-0.12744,-0.13695,-0.19601,0.28151,0.21881,-0.12296,-0.13807,-0.20861,0.26807,0.22133,-0.12268,-0.13415,-0.21085 0.24932,0.21912,-0.13704,-0.20051,-0.2194,0.24849,0.21871,-0.11624,-0.16973,-0.21807,0.24233,0.2138,-0.12023,-0.17531,-0.21224,0.24025,0.20781,-0.11965,-0.17422,-0.2115,0.23876,0.20415,0.16779,-0.1709,-0.20551 0.3941,0.18497,-0.059023,-0.1055,-0.17521,0.37087,0.21982,-0.024167,-0.16359,-0.22168,0.37087,0.057164,-0.08226,-0.17521,-0.18683,0.25468,0.057164,-0.16359,-0.18683,-0.14035,0.23144,0.045545,-0.15197,-0.17521,-0.17521 -0.28406,-0.23254,-0.26688,-0.2583,-0.31841,-0.21536,-0.17243,-0.1209,-0.16384,-0.1896,0.025074,0.0079,0.059422,-0.00068696,-0.017861,0.17105,0.18823,0.18823,0.23116,0.2054,0.24834,0.22257,0.21399,0.24834,0.23116 -0.29651,-0.32009,-0.32009,-0.29651,-0.35154,-0.11571,-0.09999,-0.13929,-0.09999,-0.13929,0.033644,0.033644,0.033644,0.010062,0.057227,0.13584,0.19086,0.19872,0.16728,0.16728,0.20658,0.21444,0.25375,0.23803,0.23803 -0.2922,-0.14046,-0.010405,0.18468,0.24971,-0.31388,-0.11879,-0.010405,0.054625,0.29307,-0.27052,-0.14046,-0.053758,0.054625,0.27139,-0.20549,-0.053758,-0.075434,0.27139,0.27139,-0.27052,-0.11879,-0.075434,0.18468,0.31474 0.14889,0.15955,0.17436,-0.22251,-0.3078,0.14948,0.14771,0.16311,-0.26338,-0.29063,0.16844,0.16015,0.1637,-0.16623,-0.28766,0.17436,0.16488,0.16192,-0.15972,-0.26753,0.16488,0.16192,0.15363,-0.19348,-0.25805 0.1618,0.1618,0.1534,-0.21509,-0.2595,0.1714,0.1498,0.1534,-0.21509,-0.2595,0.1606,0.1534,0.157,-0.21749,-0.2691,0.1558,0.1522,0.157,-0.2307,-0.2691,0.21941,0.169,0.1618,-0.22709,-0.27511 0.27935,0.083728,-0.17059,-0.17059,-0.20971,0.31848,0.10329,-0.072773,-0.13146,-0.17059,0.3576,0.083728,-0.092336,-0.20971,-0.1119,0.41629,0.16198,-0.092336,-0.17059,-0.15102,0.3576,0.0054775,-0.1119,-0.1119,-0.19015 0.17968,0.15051,0.004667,-0.05367,-0.31619,0.26718,0.26718,0.12134,-0.17034,-0.25785,0.26718,0.17968,-0.082839,-0.14118,-0.25785,0.20885,0.17968,-0.082839,-0.14118,-0.34536,0.26718,0.092173,-0.082839,0.033835,-0.28702 -0.22749,-0.12815,-0.028808,0.1202,0.26921,-0.27716,-0.17782,-0.053643,0.14504,0.34371,-0.30199,-0.12815,-0.053643,0.045696,0.26921,-0.22749,-0.053643,-0.053643,0.29404,0.24437,-0.27716,-0.12815,-0.028808,0.095366,0.31888 -0.27052,-0.22195,-0.27052,-0.30695,-0.28266,-0.16124,-0.16124,-0.10054,-0.10054,-0.1491,-0.027684,-0.0033997,-0.051967,-0.027684,0.020884,0.093736,0.11802,0.1423,0.15445,0.10588,0.30015,0.26372,0.32443,0.32443,0.28801 0.32019,0.22921,-0.11511,-0.13236,-0.16413,0.24254,0.23156,-0.10883,-0.13079,-0.15079,0.2398,0.21627,-0.10648,-0.12844,-0.15511,0.21862,0.1998,-0.10609,-0.12609,-0.35432,0.21783,0.21078,-0.096674,-0.11746,-0.33393 -0.27673,-0.26637,-0.25602,-0.29744,-0.31816,-0.15245,-0.13174,-0.18352,-0.15245,-0.11102,0.013257,0.013257,0.013257,0.013257,0.044327,0.19968,0.11682,0.10647,0.13754,0.10647,0.30324,0.30324,0.3136,0.25146,0.21003 0.36241,0.15869,0.012413,-0.12853,-0.22684,0.33339,0.14388,0.015374,-0.14571,-0.2298,0.33991,0.12316,0.028995,-0.14512,-0.25823,0.34346,0.1581,0.021888,-0.1232,-0.29199,-0.0089069,0.0011607,-0.059245,-0.13505,-0.29021 -0.21988,-0.15521,0.017245,0.081915,0.29748,-0.34922,-0.19832,0.060358,0.081915,0.21125,-0.24143,-0.13365,0.060358,0.23281,0.21125,-0.3061,-0.11209,0.017245,0.10347,0.36215,-0.28455,-0.17676,0.060358,0.16814,0.21125 -0.24934,-0.25907,-0.27367,-0.2542,-0.28826,-0.13742,-0.13255,-0.13742,-0.15688,-0.12769,-0.030364,-0.025498,-0.0060339,0.0085642,-0.0011679,0.091287,0.10589,0.071823,0.12048,0.10102,0.34432,0.31999,0.30539,0.30539,0.30539 0.22376,0.2223,-0.14879,-0.17654,-0.17654,0.22961,0.23253,-0.1371,-0.17654,-0.18093,0.24129,0.2486,-0.10203,-0.17654,-0.17947,0.2559,0.25444,-0.15317,-0.17947,-0.17508,0.27197,0.25736,-0.13856,-0.16778,-0.16924 0.24504,0.15349,0.16875,-0.014342,-0.28898,0.26029,0.1306,0.17638,-0.12877,-0.31186,0.19163,0.21452,0.046688,-0.12877,-0.30424,0.14586,0.12298,0.0085442,-0.18218,-0.31949,0.16112,0.14586,0.061946,-0.23558,-0.31949 -0.26182,-0.13714,0.0083117,0.19533,0.27844,-0.26182,-0.22026,0.029091,0.04987,0.34078,-0.26182,-0.13714,0.13299,0.07065,0.27844,-0.26182,-0.074805,0.0083117,0.13299,0.27844,-0.26182,-0.19948,-0.095585,0.091429,0.27844 -0.23483,-0.23483,-0.21462,-0.23888,-0.23079,-0.2227,-0.21057,-0.21057,-0.21866,-0.2227,0.011806,0.01585,0.0037198,0.0037198,0.0037198,0.17758,0.19375,0.20993,0.16141,0.18971,0.24632,0.24632,0.25844,0.24632,0.27057 0.19474,0.19474,0.0947,-0.20541,-0.23875,0.29477,0.16139,-0.03868,-0.2721,-0.23875,0.32812,0.16139,-0.0053352,-0.03868,-0.17206,0.16139,0.0947,-0.03868,-0.17206,-0.30544,0.26143,0.19474,-0.03868,-0.0053352,-0.37213 -0.31122,-0.14111,0.082729,0.19017,0.20808,-0.33808,-0.13215,0.091683,0.21703,0.21703,-0.29331,-0.16797,0.10064,0.18122,0.21703,-0.32017,-0.16797,0.055869,0.16331,0.19017,-0.29331,-0.1232,0.029009,0.18122,0.16331 -0.2166,-0.21218,-0.2166,-0.20776,-0.20334,-0.18124,-0.18566,-0.16356,-0.18566,-0.17682,-0.10167,-0.09504,-0.1083,-0.10167,-0.037574,0.24091,0.22544,0.23428,0.23207,0.25418,0.22544,0.2387,0.25418,0.2387,0.24976 0.15337,0.14729,0.14881,-0.19713,-0.24728,0.16755,0.15236,0.15337,-0.19257,-0.30856,0.17616,0.15945,0.15843,-0.21486,-0.2336,0.16654,0.16502,0.16502,-0.20524,-0.26754,0.17262,0.16958,0.1711,-0.24272,-0.31717 0.12669,0.076812,-0.072822,-0.047883,-0.17258,0.37608,0.15163,-0.022944,-0.14764,-0.17258,0.25138,0.15163,-0.022944,-0.17258,-0.29727,0.3262,0.076812,-0.022944,-0.022944,-0.34715,0.30126,0.12669,0.076812,-0.1227,-0.39703 0.25641,0.22792,0.11396,-0.19943,-0.08547,0.22792,0.11396,0,-0.14245,-0.37037,0.22792,0.25641,-0.05698,-0.11396,-0.25641,0.19943,0.11396,-0.08547,-0.05698,-0.34188,0.2849,0.14245,0,-0.14245,-0.31339 -0.18274,-0.18274,-0.20481,-0.21584,-0.1717,-0.20481,-0.20481,-0.16067,-0.18274,-0.18274,-0.094459,-0.083424,-0.094459,-0.11653,-0.11653,0.21452,0.19245,0.20348,0.22555,0.22555,0.28073,0.22555,0.29176,0.25866,0.28073 -0.25096,-0.23756,-0.23309,-0.22415,-0.23309,-0.21968,-0.22862,-0.20181,-0.22862,-0.19734,0.01716,-0.0096523,0.039503,0.030566,0.0037537,0.18697,0.17803,0.19591,0.16463,0.1825,0.254,0.24059,0.254,0.24506,0.27187 0.21069,0.016007,-0.14623,-0.18949,-0.26521,0.21069,0.048455,-0.081335,-0.17868,-0.23276,0.26477,0.070087,-0.07052,-0.14623,-0.24357,0.41619,0.22151,-0.01644,-0.11378,-0.22194,0.34048,0.27559,0.10253,-0.092151,-0.17868 -0.29801,-0.27876,-0.27876,-0.29801,-0.25951,-0.144,-0.144,-0.221,-0.086246,-0.144,0.048513,-0.028492,-0.028492,0.029262,0.010011,0.14477,0.22177,0.16402,0.12552,0.20252,0.22177,0.26028,0.27953,0.27953,0.22177 0.27016,0.21829,-0.16288,-0.16393,-0.16341,0.2733,0.20571,-0.16105,-0.16341,-0.16341,0.26596,0.21147,-0.16184,-0.16131,-0.16236,0.27539,0.21802,-0.16,-0.1621,-0.16236,0.28247,0.2175,-0.15712,-0.16446,-0.16865 0.16459,0.1658,0.16459,-0.2028,-0.27628,0.15977,0.16339,0.1658,-0.21485,-0.27267,0.1658,0.15977,0.16821,-0.21485,-0.2558,0.15736,0.16218,0.15857,-0.21846,-0.27989,0.16339,0.15736,0.16098,-0.21846,-0.28351 -0.23878,-0.16478,0.032561,0.1559,0.20523,-0.21411,-0.11544,-0.016774,0.057228,0.25457,-0.33745,-0.16478,0.081896,0.13123,0.35324,-0.28812,-0.16478,-0.041441,0.1559,0.3039,-0.23878,-0.14011,-0.090776,0.25457,0.2299 0.24981,0.17823,-0.16534,-0.17608,-0.20471,0.24981,0.21402,-0.14387,-0.21545,-0.21903,0.24265,0.19612,-0.11166,-0.20471,-0.20113,0.22833,0.24265,-0.075872,-0.16892,-0.20829,0.24265,0.24623,0.14602,-0.13671,-0.20471 0.22688,0.045666,-0.12649,-0.27146,-0.27146,0.20876,0.14533,-0.072123,-0.20803,-0.24428,0.2903,0.11815,-0.017759,-0.18085,-0.24428,0.20876,0.18158,0.045666,-0.099305,-0.24428,0.31749,0.30842,0.16345,-0.072123,-0.20803 -0.29489,-0.12394,-0.059832,0.089749,0.38891,-0.27352,-0.14531,0.0042737,0.0042737,0.21796,-0.25215,-0.10257,0.0042737,0.17522,0.34617,-0.25215,-0.12394,-0.038464,0.13249,0.3248,-0.18804,-0.14531,-0.081201,0.089749,0.30344 -0.36722,-0.11142,0.0022738,0.05912,0.2865,-0.28195,-0.11142,0.030697,0.20123,0.2865,-0.25353,-0.082995,-0.054572,0.14439,0.31493,-0.28195,-0.19669,0.087542,0.14439,0.31493,-0.22511,-0.13984,0.0022738,0.030697,0.20123 0.37179,0.13829,-0.13355,-0.16143,-0.23113,0.36482,0.27421,0.089497,-0.10567,-0.21022,0.24284,-0.015056,-0.049906,-0.14052,-0.2137,0.29512,0.0058549,-0.098697,-0.13355,-0.18931,0.31603,0.079041,-0.098697,-0.1684,-0.22764 -0.30711,-0.18051,0.065234,0.17694,0.25885,-0.28477,-0.21775,0.057787,0.1397,0.25885,-0.2103,-0.23264,0.072681,0.19928,0.23651,-0.20285,-0.1954,0.013106,0.21417,0.21417,-0.22519,-0.18796,-0.083702,0.20672,0.21417 -0.29336,-0.34106,-0.26951,-0.23373,-0.26951,-0.12641,-0.06678,-0.18603,-0.15026,-0.17411,0.040545,-0.01908,-0.007155,0.05247,-0.04293,0.14787,0.13595,0.1598,0.12402,0.13595,0.29097,0.2552,0.27905,0.27905,0.27905 -0.29742,-0.22155,-0.069802,0.15781,0.27162,-0.25948,-0.10774,-0.069802,0.11988,0.21472,-0.25948,-0.08877,0.062974,0.15781,0.32853,-0.24051,-0.18361,-0.050834,0.11988,0.25265,-0.25948,-0.031866,-0.08877,0.21472,0.32853 -0.25258,-0.32058,-0.25258,-0.25258,-0.25258,-0.11658,-0.19429,-0.12629,-0.097147,-0.15544,-0.048573,-0.0097147,-0.038859,0.029144,-0.029144,0.11658,0.15544,0.12629,0.087432,0.12629,0.29144,0.34973,0.32058,0.28173,0.2623 -0.13042,-0.095917,0.0075905,0.1111,0.24911,-0.28568,-0.13042,-0.044163,0.1801,0.24911,-0.28568,-0.13042,0.042093,0.076595,0.21461,-0.25118,-0.23393,-0.026912,0.1801,0.30086,-0.32018,-0.19942,-0.044163,0.23186,0.33536 -0.30712,-0.27566,-0.31761,-0.30712,-0.31761,-0.12881,-0.16027,-0.11832,-0.1393,-0.17076,0.091466,0.091466,0.03902,0.03902,0.03902,0.1544,0.12293,0.16489,0.12293,0.16489,0.2488,0.21734,0.26978,0.28027,0.19636 -0.2521,-0.23684,-0.22158,-0.20632,-0.2521,-0.13002,-0.1758,-0.1758,-0.1758,-0.13002,-0.038455,-0.084236,-0.084236,-0.053715,0.022585,0.14467,0.098885,0.11415,0.15993,0.098885,0.32779,0.32779,0.29727,0.28201,0.34305 -0.30176,-0.29633,-0.30357,-0.3235,-0.32169,-0.071672,-0.087977,-0.17132,-0.11878,-0.10972,0.037032,0.037032,0.011668,-0.0082615,0.011668,0.14392,0.13124,0.13849,0.13849,0.13124,0.26712,0.26893,0.26893,0.26893,0.25987 0.47017,0.1597,0.011735,-0.10031,-0.19097,0.48813,0.10239,-0.043004,-0.11912,-0.20893,0.2401,0.082723,-0.060965,-0.15419,-0.2115,0.24095,0.039104,-0.057544,-0.1482,-0.22176,0.17595,0.0091687,-0.0909,-0.16702,-0.24571 0.40674,0.2288,-0.068485,-0.1683,-0.24208,0.41325,0.031334,-0.059805,-0.15745,-0.22906,0.43495,0.068224,-0.031595,-0.11188,-0.20302,0.16804,0.057374,-0.042445,-0.13792,-0.22038,0.16804,0.048694,-0.022915,-0.12707,-0.20302 0.35825,0.10005,0.035502,-0.07746,-0.23883,0.35825,0.05164,-0.01291,-0.12587,-0.30338,0.27756,0.083915,-0.10973,-0.07746,-0.19042,0.34211,0.035502,-0.15815,-0.093597,-0.19042,0.39053,0.019365,-0.17428,-0.10973,-0.19042 -0.23972,-0.11311,0.013505,0.16122,0.24562,-0.21861,-0.11311,-0.0075966,0.22452,0.35113,-0.32412,-0.15531,-0.0498,0.013505,0.22452,-0.36633,-0.11311,0.013505,0.14012,0.28783,-0.30302,-0.070902,0.013505,0.14012,0.24562 0.14582,0.13118,0.14582,-0.044508,-0.30804,0.15558,0.11654,0.1507,-0.064029,-0.30316,0.14582,0.14582,0.16534,-0.16163,-0.32756,0.17998,0.17022,0.16534,-0.1714,-0.33732,0.1507,0.17022,0.15558,-0.2202,-0.35685 0.13831,0.13831,0.14424,-0.22389,-0.26545,0.13831,0.13633,0.14226,-0.21993,-0.27535,0.17195,0.16602,0.16206,-0.2318,-0.26941,0.1957,0.17789,0.16602,-0.20014,-0.26941,0.2056,0.17591,0.17195,-0.20212,-0.27337 0.18136,0.16093,0.061855,-0.069903,-0.25375,0.18033,0.14459,0.06594,-0.058668,-0.39368,0.17319,0.12416,0.087389,-0.086245,-0.37938,0.22425,0.11497,0.10577,-0.04539,-0.3753,0.2314,0.12824,0.10475,-0.043347,-0.38347 0.25523,0.26285,-0.14118,-0.13642,-0.17549,0.25523,0.2476,-0.14595,-0.15738,-0.17739,0.23807,0.24379,-0.14404,-0.16215,-0.19073,0.23617,0.24093,-0.14023,-0.15452,-0.19931,0.23236,0.22759,-0.14785,-0.16405,-0.20312 0.4003,0.11393,-0.015981,-0.10399,-0.19758,0.40869,0.081804,-0.050904,-0.14869,-0.24927,0.11952,0.091583,-0.04811,-0.16126,-0.22273,0.41148,0.084598,-0.01179,-0.13332,-0.25905,0.10835,0.21731,-0.021569,-0.13891,-0.27441 -0.23961,-0.22986,-0.23311,-0.2526,-0.23311,-0.22012,-0.24286,-0.24935,-0.23961,-0.24611,0.091737,0.081992,0.065749,0.078743,0.072246,0.19569,0.19244,0.20868,0.20219,0.19569,0.21193,0.19894,0.19894,0.20219,0.18919 -0.21737,-0.194,-0.24074,-0.22906,-0.194,-0.13556,-0.21737,-0.194,-0.18231,-0.17062,-0.053758,-0.042071,-0.077131,-0.042071,-0.018698,0.16829,0.12154,0.10985,0.10985,0.12154,0.3319,0.36696,0.32021,0.32021,0.2384 -0.25211,-0.20853,-0.077792,0.19459,0.21093,-0.25211,-0.20853,-0.034211,0.1619,0.22183,-0.24122,-0.19219,0.058398,0.21093,0.22727,-0.24122,-0.20309,0.03116,0.23817,0.23817,-0.25211,-0.18674,0.10198,0.23817,0.21638 0.29417,-0.026626,-0.098806,-0.14693,-0.15495,0.29417,0.029513,-0.11485,-0.179,-0.179,0.34229,0.029513,-0.11485,-0.15495,-0.179,0.43853,0.077633,-0.098806,-0.10683,-0.19504,0.41447,0.17387,-0.058706,-0.11485,-0.17098 -0.24942,-0.29738,-0.24942,-0.24942,-0.2654,-0.10552,-0.18546,-0.15349,-0.10552,-0.073546,-0.025581,-0.057558,-0.057558,-0.057558,-0.057558,0.1343,0.18227,0.11831,0.15029,0.10232,0.35814,0.2782,0.31017,0.2782,0.2782 0.25789,0.17333,-0.016911,-0.080326,-0.29171,0.25789,0.25789,-0.14374,-0.059187,-0.20716,0.3213,0.25789,-0.016911,-0.16488,-0.29171,0.17333,0.10992,-0.14374,-0.080326,-0.24943,0.3213,0.10992,-0.14374,-0.16488,-0.18602 0.17023,0.1627,0.16243,-0.22759,-0.28329,0.16889,0.16203,0.16082,-0.22329,-0.26567,0.16768,0.16041,0.15907,-0.22867,-0.2689,0.16969,0.15907,0.15907,-0.21898,-0.2619,0.16526,0.15772,0.15732,-0.21293,-0.25114 0.18592,0.061039,-0.032201,-0.092142,-0.31442,0.17676,0.10266,0.029404,-0.043024,-0.34772,0.18009,0.15095,0.086847,-0.10296,-0.32691,0.24669,0.18592,0.12597,-0.048019,-0.34273,0.24835,0.21172,0.12597,-0.084649,-0.38352 0.24833,0.24833,-0.12717,-0.16333,-0.18002,0.24833,0.24833,-0.13273,-0.17724,-0.17167,0.23164,0.23164,-0.15777,-0.16611,-0.17167,0.24833,0.24833,-0.14386,-0.17167,-0.17724,0.24277,0.24833,-0.16333,-0.16333,-0.17724 0.18864,0.23443,0.11996,-0.21199,-0.21199,0.1543,0.24587,0.074174,-0.23488,-0.25778,0.1543,0.20009,0.074174,-0.23488,-0.24633,0.21153,0.1543,0.10851,-0.22344,-0.23488,0.1543,0.20009,0.11996,-0.26922,-0.26922 0.4721,0.062889,-0.066335,-0.17402,-0.087872,0.25672,0.019814,-0.13095,-0.15248,-0.19556,0.38595,0.10596,-0.001723,-0.10941,-0.28171,0.2998,0.084426,-0.044798,-0.15248,-0.15248,0.23519,0.1275,-0.044798,-0.15248,-0.30325 -0.19188,-0.19188,-0.20728,-0.20728,-0.20728,-0.14568,-0.15723,-0.15723,-0.16878,-0.18418,-0.099482,-0.11103,-0.13413,-0.13413,-0.12258,0.22776,0.23546,0.23161,0.22006,0.19696,0.27781,0.26626,0.26626,0.25471,0.24316 0.24658,0.13702,0.068919,-0.29325,-0.29477,0.24506,0.14615,0.051039,-0.29553,-0.29401,0.24544,0.13207,0.044571,-0.29325,-0.28222,0.2481,0.14272,0.066636,-0.045971,-0.17037,0.24582,0.14462,0.0518,-0.061949,-0.18521 -0.23174,-0.23174,-0.23174,-0.21212,-0.24646,-0.23665,-0.24155,-0.23665,-0.23665,-0.21702,0.038067,0.033162,0.062595,0.062595,0.018445,0.17542,0.22939,0.18033,0.21467,0.19505,0.23429,0.21467,0.24901,0.20486,0.20976 0.18817,0.15811,0.10334,-0.16081,-0.2639,0.22039,0.17851,0.12482,-0.13182,-0.2639,0.25582,0.19998,-0.14578,-0.16726,-0.24672,0.27086,0.20965,0.15381,-0.17799,-0.2639,0.28481,0.0024053,-0.079204,-0.17907,-0.27034 -0.11364,-0.20241,-0.22017,-0.22017,-0.22017,-0.20241,-0.22017,-0.14915,-0.14915,-0.23792,-0.09588,-0.060369,-0.0071022,-0.11364,-0.09588,0.13494,0.13494,0.18821,0.18821,0.20596,0.25923,0.3125,0.29474,0.29474,0.29474 0.1633,0.1583,0.10326,-0.026817,-0.37203,0.1633,0.14329,0.10326,-0.026817,-0.42707,0.16831,0.1633,0.11327,-0.011807,-0.30199,0.13829,0.13328,0.11827,-0.016811,-0.40706,0.12828,0.11327,0.093259,-0.036823,-0.37704 -0.24457,-0.10455,-0.081211,0.19883,0.26884,-0.24457,-0.17456,-0.034538,0.12882,0.22216,-0.22123,-0.12788,-0.081211,0.15215,0.2455,-0.19789,-0.15122,0.082144,0.15215,0.2455,-0.33791,-0.24457,0.012135,0.15215,0.38552 0.19038,0.14534,0.16035,-0.012312,-0.27506,0.16035,0.16786,0.1003,-0.087384,-0.29758,0.16035,0.16786,0.13032,-0.16246,-0.35014,0.17537,0.16786,0.1003,-0.10991,-0.35014,0.15285,0.19038,0.077774,-0.23002,-0.37266 -0.31698,-0.29565,-0.29565,-0.26365,-0.32764,-0.14633,-0.13566,-0.13566,-0.13566,-0.18899,0.034983,0.013652,0.066979,0.034983,0.034983,0.17363,0.22696,0.19496,0.19496,0.1843,0.20563,0.19496,0.23763,0.23763,0.20563 0.34605,0.020356,-0.12892,-0.15606,-0.16285,0.37319,0.074638,-0.12892,-0.15606,-0.12214,0.34605,0.081424,-0.12892,-0.14249,-0.12892,0.39355,0.054283,-0.10857,-0.12214,-0.16963,0.38676,0.027141,-0.12892,-0.14249,-0.17642 -0.24417,-0.091564,0.017441,0.14825,0.27905,-0.28777,-0.069763,-0.069763,0.14825,0.27905,-0.26597,-0.17877,-0.047962,0.10464,0.30085,-0.33138,-0.069763,-0.026161,0.21365,0.19185,-0.33138,-0.069763,0.017441,0.039242,0.34446 0.4432,0.22012,0.043746,-0.1141,-0.27114,0.16777,0.2322,-0.0053797,-0.10283,-0.29611,0.16455,0.24186,0.021197,-0.12377,-0.27114,0.14602,0.1726,0.013949,-0.14551,-0.29691,0.12267,0.12509,-0.032761,-0.13987,-0.31544 0.27533,0.19173,-0.14268,-0.19842,-0.17055,0.345,0.080259,-0.18448,-0.18448,-0.17055,0.35894,0.1778,-0.14268,-0.11482,-0.18448,0.24747,0.2614,-0.086948,-0.17055,-0.11482,0.23353,0.14993,-0.031212,-0.19842,-0.22629 -0.21903,-0.24877,-0.26662,-0.25472,-0.3499,-0.094107,-0.1298,-0.1417,-0.1417,-0.18334,0.039737,-0.0019036,-0.0078521,-0.046518,-0.067338,0.21225,0.16466,0.099223,0.0903,0.0903,0.31635,0.2866,0.29255,0.29255,0.26876 0.28684,0.16255,-0.15824,-0.15924,-0.16639,0.28751,0.16172,-0.15891,-0.15907,-0.1614,0.29017,0.30448,-0.15924,-0.15857,-0.15857,0.2925,0.15773,-0.15957,-0.15974,-0.15891,0.29566,0.15739,-0.15974,-0.15974,-0.15924 -0.1598,-0.17188,-0.17591,-0.18396,-0.16786,-0.14772,-0.16786,-0.15577,-0.19202,-0.16786,-0.14369,-0.13966,-0.13564,-0.15175,-0.12758,0.19057,0.17446,0.1946,0.17446,0.14224,0.27917,0.32347,0.29528,0.28722,0.32749 0.16768,0.12308,0.12216,-0.17612,-0.29804,0.16677,0.12354,0.12171,-0.17612,-0.29941,0.16357,0.16402,0.16116,-0.17875,-0.29804,0.16094,0.16322,0.16162,-0.17887,-0.29919,0.16105,0.15956,0.26353,-0.17944,-0.29964 -0.13141,-0.17673,-0.06344,0.16313,0.32173,-0.2447,-0.086097,0.027189,0.16313,0.25376,-0.29001,-0.17673,0.0045314,0.14047,0.18579,-0.29001,-0.19938,0.027189,0.14047,0.32173,-0.22204,-0.2447,-0.06344,0.09516,0.34439 0.21839,0.15505,0.13005,-0.24717,-0.24766,0.18746,0.15653,0.13877,-0.24552,-0.24618,0.19387,0.16328,0.14008,-0.24026,-0.24306,0.18631,0.15801,0.1335,-0.23993,-0.24306,0.18236,0.15735,0.13679,-0.24092,-0.24404 -0.20738,-0.11048,0.051038,0.1318,0.29331,-0.25584,-0.14278,-0.013567,0.1641,0.29331,-0.30429,-0.078173,-0.029719,0.0025842,0.24486,-0.19123,-0.20738,0.0025842,0.14795,0.30946,-0.32044,-0.20738,-0.078173,0.21255,0.29331 -0.22743,-0.27701,-0.24396,-0.22743,-0.2109,-0.12826,-0.095203,-0.17784,-0.12826,-0.16132,-0.078674,-0.062146,-0.062146,-0.11173,-0.095203,0.18578,0.07008,0.16925,0.20231,0.20231,0.33453,0.318,0.23536,0.28495,0.28495 0.28069,0.27945,-0.044654,-0.14648,-0.22223,0.27324,-0.022302,-0.053346,-0.16635,-0.22098,0.27945,-0.027269,-0.068247,-0.14648,-0.23961,0.272,0.27696,-0.039687,-0.14524,-0.21726,0.27324,0.27324,-0.053346,-0.16014,-0.23464 0.20868,0.20109,-0.049513,-0.21658,-0.24696,0.20109,0.20109,-0.095077,-0.22418,-0.26215,0.1935,0.22387,0.026427,-0.23177,-0.21658,0.23147,0.22387,0.14034,-0.1938,-0.23936,0.1859,0.22387,0.13274,-0.20899,-0.20899 -0.25266,-0.18773,-0.099615,0.20183,0.25284,-0.26657,-0.20164,-0.099615,0.16473,0.2482,-0.2341,-0.18773,0.020962,0.174,0.2482,-0.22947,-0.17845,0.1369,0.14618,0.25284,-0.25729,-0.18773,0.11835,0.174,0.24357 0.25398,0.24472,-0.13351,-0.15358,-0.16593,0.2509,0.24318,-0.13814,-0.16593,-0.16593,0.23854,0.23237,-0.13505,-0.16129,-0.16593,0.24318,0.23237,-0.16901,-0.1721,-0.17982,0.26016,0.24472,-0.1721,-0.18136,-0.18445 0.24079,0.26087,0.25585,0.24079,0.24581,0.23577,0.19058,0.2207,0.22572,0.23075,-0.040365,-0.060448,-0.065468,-0.070489,-0.045386,-0.18094,-0.20102,-0.196,-0.20102,-0.196,-0.20604,-0.21609,-0.21609,-0.21609,-0.23617 0.4155,0.033138,-0.12087,-0.12618,-0.15804,0.4155,0.091554,-0.10494,-0.12618,-0.15273,0.35708,0.038448,-0.11025,-0.12618,-0.15804,0.33584,-0.067763,-0.094315,-0.1368,-0.16335,0.35708,0.017206,-0.12618,-0.1368,-0.15273 -0.23989,-0.20919,-0.21533,-0.22147,-0.19692,-0.19078,-0.14781,-0.17236,-0.1294,-0.17236,-0.080289,-0.049598,-0.074151,-0.049598,-0.068013,0.14683,0.11614,0.11614,0.11614,0.091584,0.36781,0.35553,0.32484,0.3187,0.26346 -0.21632,-0.2297,-0.20629,-0.20629,-0.22635,-0.19625,-0.20294,-0.20629,-0.22301,-0.21632,-0.018997,-0.039063,-0.042408,-0.089231,0.014448,0.25859,0.21177,0.23518,0.23184,0.21512,0.21512,0.24856,0.23518,0.21846,0.23518 0.37278,0.20846,0.13803,-0.12019,-0.23757,0.27888,0.23193,0.020658,-0.049767,-0.33147,0.27888,0.13803,-0.026292,-0.14367,-0.19062,0.16151,0.067608,-0.026292,-0.21409,-0.19062,0.20846,0.091083,-0.12019,-0.28452,-0.26104 -0.32772,-0.29641,-0.29641,-0.28598,-0.32772,-0.12942,-0.11898,-0.087671,-0.087671,-0.13986,-0.0041748,-0.0041748,-0.035486,0.037573,0.016699,0.15238,0.18369,0.16282,0.14194,0.19413,0.23588,0.215,0.25675,0.2985,0.24631 0.25495,0.08651,-0.16278,-0.20994,-0.16952,0.27516,0.14041,-0.16278,-0.20994,-0.2032,0.22126,0.23473,0.073035,-0.16952,-0.20994,0.26842,0.24147,-0.021291,-0.18299,-0.19647,0.27516,0.27516,-0.041503,-0.20994,-0.19647 0.16526,0.15747,0.15636,-0.22125,-0.26519,0.16582,0.15859,0.15914,-0.22014,-0.26741,0.1686,0.1597,0.1597,-0.22236,-0.26018,0.1686,0.16192,0.16081,-0.2257,-0.26908,0.17416,0.16526,0.16192,-0.22459,-0.26741 0.30498,0.25019,-0.042003,-0.16071,-0.15157,0.31411,0.28671,-0.10592,-0.17897,-0.19723,0.32324,0.2228,-0.069396,-0.16984,-0.16984,0.25019,0.11322,-0.16984,-0.19723,-0.16984,0.16801,0.10409,-0.19723,-0.16984,-0.1881 -0.25515,-0.15739,-0.035194,0.18477,0.23365,-0.25515,-0.059634,-0.059634,0.13589,0.25809,-0.30403,-0.035194,0.038126,0.13589,0.23365,-0.32847,-0.084074,-0.010754,0.23365,0.18477,-0.30403,-0.20627,-0.059634,0.16033,0.35585 -0.24901,-0.20737,-0.26983,-0.24901,-0.33229,-0.12409,-0.18655,-0.18655,-0.18655,-0.14491,0.0008328,0.0008328,0.021653,0.021653,-0.040807,0.18821,0.14657,0.18821,0.18821,0.063293,0.29231,0.27149,0.27149,0.31313,0.20903 -0.23287,-0.19637,0.077378,0.16863,0.22338,-0.34236,-0.17812,0.059129,0.077378,0.20513,-0.17812,-0.23287,0.11388,0.15038,0.22338,-0.30586,-0.14162,0.059129,0.18688,0.25987,-0.30586,-0.19637,0.095628,0.15038,0.25987 -0.25883,-0.1401,0.077569,0.13693,0.29524,-0.2984,-0.21925,0.018205,0.1963,0.1963,-0.17968,-0.10052,0.018205,0.13693,0.27545,-0.35777,-0.23904,-0.041159,0.1963,0.25566,-0.25883,-0.12031,0.077569,0.077569,0.25566 -0.24172,-0.22278,-0.052285,0.13715,0.17504,-0.33644,-0.18489,0.042434,0.080321,0.34553,-0.24172,-0.12806,0.02349,0.1561,0.21293,-0.22278,-0.071228,-0.052285,0.1561,0.2887,-0.3175,-0.071228,0.042434,0.11821,0.36448 -0.30433,-0.13191,0.07285,0.083627,0.15906,-0.34744,-0.16424,0.10518,0.094404,0.20217,-0.28278,-0.12113,0.051297,0.14829,0.24528,-0.28278,-0.13191,0.094404,0.16984,0.25605,-0.33666,-0.13191,0.04052,0.24528,0.26683 -0.21133,-0.22262,-0.10973,0.065251,0.26281,-0.1944,-0.21133,-0.10973,0.13299,0.25717,-0.22262,-0.17747,-0.041996,0.14428,0.28539,-0.21133,-0.18311,0.025739,0.21765,0.35312,-0.1944,-0.17182,-0.0024836,0.21765,0.30232 -0.24741,-0.29463,-0.26315,-0.31037,-0.31037,-0.1215,-0.15298,-0.16872,-0.2002,-0.090025,0.0044068,0.0831,0.020146,0.020146,-0.027071,0.19327,0.13032,0.14606,0.16179,0.11458,0.20901,0.31918,0.2877,0.25623,0.24049 0.21201,0.15684,-0.095367,-0.25694,-0.28058,0.20019,0.14108,-0.00078816,-0.23724,-0.30029,0.20019,0.18837,0.042561,-0.18601,-0.28453,0.22384,0.20413,0.12532,-0.11901,-0.253,0.20413,0.20019,0.18837,-0.00078816,-0.2727 0.14174,0.28347,0.14174,-0.023623,-0.23623,0.23623,0.023623,-0.023623,-0.21261,-0.25985,0.28347,0.18898,-0.023623,-0.18898,-0.25985,0.28347,0.16536,0.11811,-0.16536,-0.28347,0.23623,0.094491,0,-0.21261,-0.3071 0.24203,0.24203,-0.14601,-0.1695,-0.17428,0.24464,0.2429,-0.14688,-0.1695,-0.17733,0.24551,0.24594,-0.14949,-0.16689,-0.17341,0.24507,0.24507,-0.14427,-0.16689,-0.17254,0.24768,0.24594,-0.14688,-0.16689,-0.17602 0.087769,0.13684,0.070243,-0.0612,-0.27501,0.12282,0.14911,0.019419,-0.078726,-0.37491,0.24024,0.18416,0.0089031,-0.11728,-0.29604,0.28756,0.14385,0.021171,-0.082231,-0.25924,0.43478,0.11932,-0.0033649,-0.14883,-0.32934 0.16534,0.14805,0.13818,-0.068001,-0.28282,0.15299,0.14805,0.14064,-0.076644,-0.35196,0.15793,0.15546,0.14805,-0.084051,-0.31615,0.16781,0.15299,0.14805,-0.14455,-0.36183,0.16287,0.15669,0.10114,-0.15319,-0.40505 0.23524,0.24501,-0.13306,-0.17604,-0.17115,0.22938,0.26943,-0.15748,-0.17213,-0.17409,0.23329,0.24892,-0.14966,-0.17311,-0.17213,0.24501,0.25282,-0.13306,-0.17115,-0.17311,0.24305,0.2411,-0.13501,-0.17506,-0.17702 0.31595,0.31112,0.31112,0.31112,0.34014,0.16601,0.13215,0.14666,0.14666,0.13215,-0.071007,-0.11454,-0.085518,-0.10003,-0.085518,-0.17742,-0.19193,-0.17742,-0.17742,-0.17742,-0.17742,-0.20161,-0.19193,-0.20644,-0.17742 -0.33268,-0.28499,-0.29453,-0.32314,-0.26591,-0.10377,-0.161,-0.161,-0.21823,-0.15146,0.10606,0.10606,0.086985,0.077447,0.02022,0.23959,0.22051,0.16329,0.17283,0.14421,0.23959,0.22051,0.20144,0.18236,0.1156 -0.23502,-0.044807,0.082005,0.12428,0.35676,-0.25616,-0.12935,0.018599,0.14541,0.25109,-0.29843,-0.21389,-0.0025362,0.06087,0.29336,-0.25616,-0.19275,-0.023672,0.06087,0.29336,-0.23502,-0.21389,-0.044807,0.22995,0.22995 -0.25002,-0.29773,-0.2858,-0.32158,-0.31761,-0.12278,-0.11483,-0.13471,-0.13869,-0.14266,0.00047713,0.012405,-0.0034989,-0.007475,-0.011451,0.15952,0.15952,0.18338,0.15952,0.2629,0.22314,0.22314,0.23109,0.23507,0.29868 0.17785,0.15016,0.13331,-0.25305,-0.27351,0.21516,0.1634,0.1285,-0.21333,-0.26027,0.20673,0.17785,-0.11704,-0.2374,-0.24342,0.21636,0.19951,0.10202,-0.21694,-0.21694,0.26691,0.21877,0.049059,-0.17481,-0.19889 0.24557,0.18904,0.18904,-0.059696,-0.33104,0.16643,0.18904,0.075977,-0.10492,-0.26321,0.22296,0.14381,0.1099,-0.093614,-0.27451,0.18904,0.13251,0.098589,-0.20668,-0.27451,0.20034,0.1099,-0.014472,-0.29712,-0.34235 0.24553,0.24225,-0.13524,-0.15735,-0.21222,0.24471,0.24225,-0.14834,-0.15326,-0.19666,0.24471,0.24716,-0.14507,-0.17291,-0.1639,0.24635,0.24307,-0.14098,-0.17946,-0.16145,0.24143,0.24471,-0.1549,-0.16227,-0.15817 -0.27663,-0.23918,-0.27663,-0.30159,-0.27663,-0.10186,-0.13931,-0.10186,-0.11435,-0.16428,-0.05193,-0.039447,-0.01448,0.035452,-0.064413,0.11035,0.085384,0.11035,0.16028,0.17277,0.31008,0.27263,0.32256,0.27263,0.31008 -0.30915,-0.12387,-0.070934,0.061406,0.37902,-0.25621,-0.12387,-0.097402,0.11434,0.29962,-0.20327,-0.12387,0.087874,0.061406,0.24668,-0.30915,-0.12387,-0.044466,0.087874,0.29962,-0.28268,-0.070934,0.034938,0.16728,0.29962 -0.35449,-0.17404,0.086618,0.16682,0.32722,-0.29434,-0.053735,-0.013634,0.24702,0.20692,-0.29434,-0.073786,0.026467,0.14677,0.18687,-0.25424,-0.17404,0.026467,0.16682,0.20692,-0.29434,-0.19409,0.026467,0.12672,0.22697 0.24094,0.20166,0.13618,-0.12571,-0.21737,0.28022,0.21475,0.0052378,-0.16499,-0.25665,0.24094,0.20166,-0.020951,-0.21737,-0.17809,0.24094,0.20166,-0.086424,-0.17809,-0.24356,0.21475,0.17547,-0.25665,-0.19118,-0.21737 0.36454,0.044631,-0.095816,-0.11532,-0.12703,0.37624,-0.013889,-0.095816,-0.12313,-0.14653,0.37234,-0.021691,-0.10752,-0.15043,-0.15434,0.39965,-0.0099873,-0.037296,-0.15043,-0.19725,0.39965,-0.029494,-0.045099,-0.16604,-0.16994 0.33584,0.089218,0.019517,-0.057446,-0.16103,0.29542,0.091396,0.018306,-0.076081,-0.21427,0.32059,0.074697,0.024357,-0.072451,-0.22468,0.33898,0.094301,0.021211,-0.25542,-0.25421,0.27582,0.088976,-0.25808,-0.25711,-0.25784 -0.2663,-0.11693,0.032434,0.1818,0.26716,-0.33032,-0.13827,-0.052919,0.096449,0.30983,-0.2663,-0.11693,0.075111,0.1818,0.30983,-0.24496,-0.11693,-0.13827,0.16046,0.20314,-0.20229,-0.15961,-0.095596,0.096449,0.33117 0.15011,0.078353,0.024049,-0.072922,-0.30565,0.18502,0.086111,0.05314,-0.069044,-0.35996,0.21993,0.10744,0.084171,-0.065165,-0.35802,0.25096,0.14623,0.12878,-0.084559,-0.32505,0.26648,0.16369,0.16175,-0.078741,-0.38711 -0.18254,-0.10813,0.040674,0.18948,0.26388,-0.25694,-0.10813,0.040674,0.18948,0.26388,-0.25694,-0.18254,-0.03373,0.18948,0.26388,-0.25694,-0.25694,0.040674,0.11508,0.26388,-0.38095,-0.10813,-0.10813,0.18948,0.18948 -0.20923,-0.08165,-0.0051031,0.12247,0.37763,-0.3368,-0.056134,0.020412,0.12247,0.25005,-0.28577,-0.20923,-0.10717,0.19902,0.25005,-0.26026,-0.10717,-0.056134,0.14799,0.30108,-0.23474,-0.10717,-0.10717,0.096959,0.27557 -0.2088,-0.18917,-0.15974,-0.17936,-0.16628,-0.21207,-0.20553,-0.20553,-0.21207,-0.19244,-0.13684,-0.077972,-0.077972,-0.061619,-0.071431,0.092101,0.22947,0.22947,0.21311,0.2262,0.26872,0.27526,0.26872,0.26872,0.28507 -0.33701,-0.1304,0.05326,0.16805,0.23692,-0.33701,-0.17631,0.030303,0.16805,0.23692,-0.17631,-0.1304,-0.038568,0.191,0.16805,-0.26814,-0.17631,0.099174,0.05326,0.3517,-0.26814,-0.1304,-0.038568,0.16805,0.28283 0.14327,0.14327,0.11332,-0.19853,-0.30248,0.14504,0.1468,0.055181,-0.17034,-0.27429,0.14504,0.14856,0.053419,-0.18091,-0.29367,0.13623,0.14504,0.13446,-0.17562,-0.30071,0.33355,0.27189,0.19965,-0.14215,-0.27605 0.21908,0.21512,0.23492,0.23888,0.23888,0.16364,0.15572,0.1478,0.16364,0.19532,0.056711,0.080472,0.088392,0.056711,0.096313,-0.21655,-0.2007,-0.19674,-0.18882,-0.1809,-0.27991,-0.26803,-0.27991,-0.27199,-0.26803 0.48106,0.25883,-0.015687,-0.1987,-0.21177,0.40262,0.075819,-0.0026144,-0.17255,-0.17255,0.20654,0.12811,-0.054903,-0.081047,-0.1987,0.19347,0.036602,-0.054903,-0.1987,-0.23791,0.23268,0.036602,-0.041831,-0.17255,-0.23791 0.14265,0.14823,0.15937,-0.19726,-0.292,0.14823,0.1538,0.15937,-0.24184,-0.31986,0.14265,0.16494,0.06464,-0.24184,-0.29757,0.17609,0.17052,0.18166,-0.14154,-0.30314,0.17609,0.17609,0.17609,-0.024519,-0.28085 0.32582,0.17544,-0.025063,-0.17544,-0.27569,0.17544,0.10025,0.15038,-0.15038,-0.27569,0.22556,0.10025,0.12531,-0.12531,-0.22556,0.27569,0.22556,0.12531,-0.15038,-0.22556,0.25063,0,-0.050125,-0.25063,-0.32582 0.20177,0.19241,0.080108,-0.17257,-0.21,0.25792,0.22048,0.0052407,-0.24744,-0.21936,0.21113,0.21113,-0.022835,-0.17257,-0.18193,0.2392,0.24856,-0.088343,-0.22872,-0.22872,0.25792,0.22984,-0.21,-0.20064,-0.17257 -0.14909,-0.17045,-0.085014,0.20335,0.31015,-0.19181,-0.21317,-0.085014,0.20335,0.28879,-0.20249,-0.20249,-0.052973,0.19267,0.31015,-0.18113,-0.19181,-0.10637,0.12859,0.27811,-0.21317,-0.20249,-0.10637,0.18199,0.25675 -0.32479,-0.28114,-0.34226,-0.2986,-0.26368,-0.15891,-0.11525,-0.097788,-0.13271,-0.13271,0.024447,0.033178,0.024447,-0.019208,-0.0017462,0.21653,0.21653,0.18161,0.15541,0.13795,0.29511,0.25145,0.21653,0.21653,0.19907 0.18797,0.16406,-0.051178,-0.28435,-0.36805,0.19395,0.14612,-0.0033481,-0.18869,-0.35609,0.19993,0.1521,0.074375,-0.099007,-0.29033,0.21188,0.21188,0.12818,-0.051178,-0.26043,0.21188,0.18797,0.1521,-0.03922,-0.23054 0.23146,0.18025,0.11197,-0.22941,-0.19527,0.19732,0.18025,0.077836,-0.26355,-0.22941,0.21439,0.14611,0.0095588,-0.24648,-0.22941,0.23146,0.21439,0.060767,-0.29769,-0.1782,0.24853,0.14611,0.094905,-0.26355,-0.21234 -0.26166,-0.29453,-0.26166,-0.26166,-0.3274,-0.13017,-0.13017,-0.11374,-0.11374,-0.19591,0.017751,0.083494,0.0013149,-0.031557,-0.064428,0.18211,0.18211,0.11637,0.1328,0.09993,0.26429,0.3136,0.26429,0.3136,0.21498 0.17266,0.16843,0.168,-0.18863,-0.24067,0.16885,0.16589,0.16758,-0.18736,-0.25336,0.16462,0.16293,0.16377,-0.21994,-0.26944,0.15785,0.15235,0.15574,-0.25209,-0.28213,0.157,0.15531,0.15404,-0.25251,-0.2889 -0.24411,-0.16051,-0.014212,0.090286,0.29928,-0.26501,-0.20231,0.090286,0.069386,0.29928,-0.22321,-0.09781,0.027587,0.19478,0.25748,-0.24411,-0.07691,-0.014212,0.069386,0.38288,-0.2859,-0.26501,-0.035111,0.11119,0.23658 0.16987,0.15975,0.15223,-0.23,-0.25623,0.17125,0.15929,0.15361,-0.22801,-0.2593,0.1737,0.16174,0.15361,-0.22617,-0.26114,0.17432,0.16343,0.15606,-0.23276,-0.25654,0.17631,0.16343,0.15698,-0.23184,-0.26359 -0.29959,-0.33631,-0.31795,-0.26288,-0.22616,-0.11602,-0.18945,-0.15273,-0.11602,-0.13438,0.03084,0.049198,0.03084,0.049198,-0.060946,0.14098,0.14098,0.14098,0.1777,0.14098,0.26949,0.32456,0.25113,0.25113,0.21441 -0.22283,-0.2113,-0.15363,-0.15363,-0.16516,-0.17669,-0.11903,-0.17669,-0.17669,-0.17669,-0.14209,-0.13056,-0.072892,-0.14209,-0.15363,0.18085,0.20391,0.18085,0.15778,0.14625,0.29618,0.30772,0.30772,0.29618,0.29618 0.39183,0.26344,0.10227,-0.035676,-0.1545,0.32764,0.17466,0.050372,-0.12036,-0.22689,0.2853,0.1091,-0.043871,-0.1545,-0.27606,0.22247,0.089982,-0.061627,-0.21187,-0.26104,0.15281,0.0012019,-0.11899,-0.25148,-0.25421 0.22717,0.016165,-0.16623,-0.19484,-0.20557,0.2844,0.13419,-0.14835,-0.19484,-0.18054,0.2844,0.16995,-0.13047,-0.19484,-0.20557,0.30943,0.18783,0.048353,-0.18054,-0.19484,0.30943,0.24863,0.13061,-0.15908,-0.19484 -0.18085,-0.13206,0.014312,0.17695,0.33958,-0.24591,-0.13206,-0.1158,0.242,0.20948,-0.22964,-0.18085,-0.034479,0.17695,0.22574,-0.24591,-0.13206,-0.1158,0.25827,0.27453,-0.2947,-0.16459,-0.099533,0.12816,0.25827 0.24736,0.24865,-0.14439,-0.15975,-0.17733,0.24625,0.24717,-0.14272,-0.16197,-0.17437,0.24366,0.24588,-0.15124,-0.16604,-0.17918,0.24181,0.2444,-0.15346,-0.16252,-0.18029,0.23996,0.24144,-0.1505,-0.16363,-0.17918 0.19454,0.044895,0.069837,-0.20452,-0.39158,0.24443,0.11972,-0.079813,-0.11723,-0.40405,0.2569,0.18207,0.0074825,-0.0049883,-0.29182,0.24443,0.18207,0.019953,-0.0049883,-0.30429,0.28184,0.14466,0.032424,-0.054872,-0.16711 0.21828,0.14101,0.054782,-0.0068085,-0.35731,0.23283,0.13093,0.070459,-0.015767,-0.35395,0.22276,0.11301,0.061501,-0.026965,-0.37075,0.1914,0.10965,0.050302,-0.030325,-0.37971,0.20372,0.10629,0.0671,-0.06056,-0.37187 0.20311,0.138,0.13663,-0.2369,-0.24832,0.21362,0.13526,0.13754,-0.23713,-0.25129,0.21247,0.21636,0.14028,-0.23553,-0.24695,0.15993,0.15719,0.1412,-0.23759,-0.24832,0.15262,0.14965,0.13777,-0.23759,-0.25198 0.24953,0.24237,-0.15521,-0.16502,-0.17231,0.2486,0.24064,-0.15401,-0.16502,-0.17324,0.249,0.23998,-0.15149,-0.16038,-0.17522,0.24873,0.24184,-0.1499,-0.16462,-0.1735,0.24807,0.23905,-0.15057,-0.16263,-0.17469 0.32541,0.29646,0.29646,0.31094,0.28199,0.18548,0.15653,0.14205,0.18548,0.17583,-0.11851,-0.13298,-0.11851,-0.099207,-0.05578,-0.17641,-0.19089,-0.15228,-0.17641,-0.15228,-0.21501,-0.20054,-0.18606,-0.19089,-0.19089 -0.26163,-0.092055,0.004845,0.22287,0.22287,-0.23741,-0.14051,0.02907,0.17442,0.19865,-0.21318,-0.06783,-0.06783,0.1502,0.29555,-0.28586,-0.21318,0.07752,0.1502,0.27132,-0.38276,-0.14051,-0.11628,0.12597,0.29555 -0.36067,-0.18237,-0.029546,0.22516,0.27611,-0.25879,-0.18237,0.12328,0.17422,0.27611,-0.25879,-0.18237,-0.0040754,0.072338,0.25064,-0.28426,-0.080489,0.046867,0.097809,0.30158,-0.20784,-0.080489,-0.080489,0.097809,0.25064 0.25587,0.22814,-0.15802,-0.16299,-0.16672,0.26622,0.2269,-0.16051,-0.16423,-0.16423,0.26539,0.22317,-0.16092,-0.16299,-0.16672,0.26704,0.22069,-0.16092,-0.16299,-0.16423,0.26208,0.22938,-0.15968,-0.16423,-0.16547 0.37364,0.24251,-0.095633,-0.13465,-0.19426,0.33517,0.23221,-0.10322,-0.13898,-0.19642,0.3265,-0.015975,-0.094007,-0.14386,-0.19046,0.33842,-0.010556,-0.091297,-0.12869,-0.18938,0.30211,-0.0062209,-0.096174,-0.1314,-0.18938 -0.24005,-0.17839,-0.034528,0.19155,0.27376,-0.2195,-0.013976,-0.11674,0.171,0.33541,-0.19895,-0.11674,-0.034528,0.088786,0.27376,-0.30171,-0.13729,0.0065767,0.12989,0.2532,-0.30171,-0.17839,-0.11674,0.12989,0.33541 0.33177,0.13888,-0.10912,-0.081565,-0.16423,0.33177,0.11133,0.0011022,-0.27446,-0.30201,0.19399,0.056214,0.056214,-0.10912,-0.21934,0.27666,0.16644,0.08377,-0.2469,-0.38468,0.2491,0.11133,0.0011022,-0.026454,-0.19179 0.25326,0.043976,-0.11992,-0.10732,-0.21574,0.18518,0.10954,0.016239,-0.10732,-0.43007,0.28856,0.1751,0.038933,-0.016541,-0.20314,0.27848,0.13475,-0.0039336,-0.077058,-0.21826,0.28856,0.18266,0.10449,-0.25357,-0.34686 -0.26758,-0.17119,0.0023134,0.15654,0.27221,-0.24831,-0.0748,-0.0748,0.27221,0.1951,-0.36398,-0.20975,0.021592,0.17582,0.29149,-0.26758,-0.17119,-0.036243,0.1951,0.21438,-0.20975,-0.0748,-0.036243,0.17582,0.23365 -0.25822,-0.26895,-0.29041,-0.26895,-0.30114,-0.097233,-0.15626,-0.22065,-0.25285,-0.25285,0.16034,0.12814,0.12278,0.10668,0.036919,0.13887,0.1818,0.17644,0.17644,0.16034,0.18717,0.1818,0.1818,0.22473,0.20327 -0.25821,-0.26926,-0.24717,-0.26374,-0.2665,-0.2168,-0.22784,-0.2306,-0.2168,-0.22784,0.10901,0.10901,0.12833,0.10901,0.12833,0.18908,0.19184,0.18632,0.18632,0.18632,0.17527,0.17803,0.16975,0.18079,0.19736 -0.36197,-0.14036,-0.12189,0.19207,0.26594,-0.36197,-0.15882,-0.011081,0.13666,0.24747,-0.2327,-0.14036,0.044323,0.13666,0.1736,-0.25116,-0.029549,0.044323,0.15513,0.30287,-0.25116,-0.084952,0.025855,0.099727,0.32134 0.086083,0.10698,-0.10196,-0.12286,-0.3318,0.27413,0.16966,-0.12286,-0.10196,-0.22733,0.3786,0.16966,0.086083,-0.039281,-0.22733,0.23234,0.14877,0.044295,-0.20643,-0.3109,0.29502,0.21145,-0.081069,-0.060175,-0.26911 -0.24922,-0.14133,-0.0064734,0.074444,0.23628,-0.2762,-0.14133,0.047471,0.15536,0.31719,-0.33014,-0.060418,0.047471,0.020499,0.23628,-0.30317,-0.060418,-0.0064734,0.26325,0.31719,-0.30317,-0.19528,0.020499,0.10142,0.23628 -0.27056,-0.028989,-0.028989,0.10278,0.38827,-0.29252,-0.072911,-0.028989,0.058856,0.32239,-0.29252,-0.16076,-0.0070276,0.12474,0.25651,-0.29252,-0.16076,-0.028989,0.036895,0.27847,-0.29252,-0.028989,-0.0070276,0.16866,0.25651 -0.18064,-0.18064,-0.029387,0.18669,0.25152,-0.26707,-0.13743,0.013829,0.013829,0.25152,-0.26707,-0.15903,0.057045,0.12187,0.40277,-0.24547,-0.13743,-0.11582,0.12187,0.33795,-0.24547,-0.15903,-0.050995,0.14348,0.27313 0.25747,0.23545,-0.15601,-0.16065,-0.16683,0.25709,0.22849,-0.15369,-0.16065,-0.17263,0.25747,0.23042,-0.15872,-0.16104,-0.1734,0.25747,0.23622,-0.16026,-0.1591,-0.16915,0.25747,0.22926,-0.16297,-0.16142,-0.17031 -0.22141,-0.28476,-0.33105,-0.33592,-0.31156,-0.065489,-0.11422,-0.18243,-0.16538,-0.11665,0.090437,0.024656,-0.038689,-0.0070167,0.012474,0.17084,0.16109,0.12698,0.13916,0.16596,0.27316,0.25611,0.24393,0.23905,0.27073 -0.26922,-0.31035,-0.32406,-0.28293,-0.36518,-0.10473,-0.13214,-0.077313,-0.18698,-0.11844,0.046059,0.018643,0.0049349,0.046059,0.046059,0.14201,0.18314,0.14201,0.19685,0.15572,0.22426,0.23797,0.23797,0.21055,0.27909 -0.31644,-0.30678,-0.30678,-0.35991,-0.32127,-0.1136,-0.13291,-0.1136,-0.15223,-0.16672,0.10374,0.098913,0.045786,0.10374,0.094083,0.17619,0.17136,0.17136,0.17136,0.19551,0.19551,0.18102,0.18585,0.17619,0.21966 -0.20726,-0.1353,-0.06333,0.10459,0.27251,-0.3272,-0.1353,-0.11131,0.22453,0.24852,-0.3272,-0.11131,0.0086359,0.15257,0.27251,-0.18327,-0.1353,0.10459,0.10459,0.27251,-0.25524,-0.18327,-0.087319,0.20054,0.2965 -0.17679,-0.17362,-0.16727,-0.1641,-0.15458,-0.18314,-0.18631,-0.17045,-0.17362,-0.17997,-0.10382,-0.12285,-0.13237,-0.15141,-0.14824,0.2452,0.21664,0.17857,0.1754,0.10559,0.2801,0.28962,0.29597,0.29914,0.30231 0.17467,0.12076,-0.040973,-0.25662,-0.33749,0.17467,0.17467,0.093806,-0.25662,-0.28358,0.22859,0.17467,0.093806,-0.067929,-0.36444,0.20163,0.22859,0.12076,-0.094885,-0.20271,0.20163,0.20163,0.06685,-0.067929,-0.28358 0.16569,0.16702,0.16035,-0.18672,-0.26281,0.16435,0.16702,0.16168,-0.24412,-0.26281,0.16569,0.16168,0.16035,-0.23878,-0.25747,0.16168,0.16168,0.16435,-0.21742,-0.26281,0.16168,0.16168,0.15768,-0.24946,-0.26014 -0.30711,-0.11517,0.1042,0.21388,0.21388,-0.27969,-0.19743,0.090487,0.20017,0.15904,-0.23856,-0.21114,0.076777,0.15904,0.26872,-0.33453,-0.19743,0.035647,0.17275,0.21388,-0.23856,-0.19743,0.035647,0.18646,0.18646 -0.33393,-0.31096,-0.27651,-0.27651,-0.20761,-0.24206,-0.1502,-0.18465,-0.1502,-0.12723,-0.012402,0.045013,0.056496,0.067979,0.067979,0.12539,0.15984,0.19429,0.19429,0.19429,0.25171,0.22874,0.22874,0.22874,0.22874 -0.31831,-0.34478,-0.31831,-0.31831,-0.31831,-0.12422,-0.097752,-0.15069,-0.10657,-0.080107,0.025761,0.025761,0.025761,0.069873,0.043406,0.14927,0.19339,0.17574,0.20221,0.16692,0.21103,0.20221,0.22868,0.22868,0.22868 0.25635,0.23628,-0.159,-0.16455,-0.16583,0.26189,0.23457,-0.15687,-0.16626,-0.16669,0.25293,0.23073,-0.159,-0.16455,-0.16754,0.24653,0.23628,-0.15687,-0.16455,-0.16882,0.25592,0.23628,-0.15644,-0.16327,-0.16754 0.23992,0.23957,-0.15618,-0.16997,-0.17721,0.24198,0.24129,-0.1586,-0.16825,-0.17687,0.24198,0.2421,-0.15434,-0.16526,-0.17261,0.24601,0.24624,-0.14297,-0.16055,-0.17216,0.2521,0.25589,-0.14216,-0.1594,-0.17055 0.081407,0.011672,-0.11128,-0.24892,-0.31682,0.25942,0.063056,-0.07091,-0.12229,-0.28562,0.2741,0.1383,0.031858,-0.083756,-0.25075,0.35117,0.16032,0.070396,-0.11495,-0.22506,0.36586,0.25758,0.055715,-0.052559,-0.23791 0.2141,0.29992,0.23556,0.22483,0.26774,0.23556,0.23556,0.20338,0.20338,0.20338,-0.086243,-0.054063,-0.021882,-0.064789,-0.032609,-0.18278,-0.21496,-0.18278,-0.18278,-0.1506,-0.25787,-0.21496,-0.21496,-0.21496,-0.24714 -0.24339,-0.18663,-0.073108,0.19934,0.19367,-0.27177,-0.21501,-0.004995,0.18232,0.19367,-0.26042,-0.19231,0.017709,0.21637,0.21637,-0.25474,-0.17528,0.040414,0.21637,0.22772,-0.25474,-0.19231,0.13691,0.25043,0.2334 0.29326,0.08188,-0.20737,-0.15175,-0.11837,0.22651,0.13751,-0.14062,-0.18512,-0.15175,0.29326,0.12638,-0.10725,-0.18512,-0.15175,0.34888,0.20426,-0.1295,-0.14062,-0.15175,0.38226,0.22651,-0.10725,-0.20737,-0.18512 -0.26845,-0.25673,-0.25673,-0.26845,-0.25673,-0.21767,-0.21767,-0.21767,-0.22939,-0.21767,0.14954,0.14954,0.15345,0.11047,0.01672,0.19251,0.16517,0.17688,0.20032,0.17298,0.19251,0.19251,0.17688,0.16907,0.1886 -0.24276,-0.12995,-0.12995,0.050538,0.29871,-0.33301,-0.2202,0.050538,0.027976,0.29871,-0.24276,-0.17508,0.050538,0.23103,0.23103,-0.2202,-0.10739,0.027976,0.20847,0.27615,-0.26532,-0.12995,0.027976,0.14078,0.27615 0.21172,0.15116,0.044572,-0.035367,-0.41084,0.21656,0.11482,0.039727,-0.049901,-0.3527,0.21898,0.12693,0.044572,-0.059591,-0.43748,0.22141,0.15116,0.049417,-0.040212,-0.3527,0.22625,0.13178,0.04215,-0.062013,-0.1904 0.28295,0.28371,-0.048976,-0.19937,-0.1981,0.28346,0.28447,-0.055306,-0.19608,-0.19709,0.22219,0.22117,-0.053027,-0.20114,-0.19709,0.23079,0.22472,-0.053787,-0.20165,-0.19684,0.25713,-0.046444,-0.046951,-0.20013,-0.19861 0.15125,0.16643,0.1715,0.0044544,-0.30432,0.14112,0.16643,0.15631,-0.086659,-0.31444,0.1715,0.16137,0.13606,-0.13222,-0.29419,0.16137,0.14619,0.131,-0.23851,-0.35494,0.15631,0.14619,0.12594,-0.26888,-0.29926 -0.24075,-0.22431,0.15392,0.17037,0.31837,-0.27364,-0.20786,0.022365,0.15392,0.25259,-0.20786,-0.20786,0.10459,0.0717,0.26904,-0.30653,-0.19142,0.022365,0.10459,0.25259,-0.22431,-0.15853,-0.02697,0.13748,0.23615 0.26691,0.24775,0.24775,0.26691,0.24775,0.2286,0.24775,0.2286,0.20306,0.20944,-0.097058,-0.1226,-0.058745,-0.077902,-0.10344,-0.18645,-0.1673,-0.19284,-0.17368,-0.17368,-0.23115,-0.19922,-0.19922,-0.19922,-0.21199 0.26751,0.090937,-0.019423,-0.24014,-0.32843,0.15715,0.11301,0.068865,-0.24014,-0.30636,0.22337,0.26751,-0.10771,-0.17393,-0.24014,0.22337,0.22337,0.068865,-0.17393,-0.17393,0.33373,0.11301,0.11301,-0.08564,-0.17393 0.18216,0.17439,0.1433,0.026733,-0.22972,0.18993,0.16662,0.11999,-0.05098,-0.29966,0.18216,0.16662,0.073361,-0.17532,-0.32298,0.18993,0.18993,0.073361,-0.19086,-0.37737,0.16662,0.16662,0.018962,-0.22972,-0.35406 -0.24068,-0.19739,-0.15411,-0.16493,-0.17575,-0.14328,-0.17575,-0.12164,-0.17575,-0.12164,-0.17575,-0.12164,-0.13246,-0.11082,-0.099995,0.13809,0.15973,0.11644,0.14891,0.12727,0.33288,0.30042,0.31124,0.32206,0.35453 0.29739,0.21512,-0.02202,-0.11276,-0.28214,0.26593,0.19576,-0.02081,-0.11276,-0.27851,0.28408,0.18971,0.017906,-0.10308,-0.25553,0.26593,0.18971,-0.0014519,-0.1297,-0.27609,0.24294,-0.1914,-0.0075013,-0.097032,-0.27368 0.16346,0.14731,0.14731,-0.030366,-0.35879,0.16346,0.14192,0.12039,-0.051902,-0.31572,0.14731,0.16346,0.10423,-0.08959,-0.37494,0.14731,0.16346,0.10962,-0.14343,-0.39109,0.15807,0.16346,0.13115,-0.068054,-0.34802 0.36631,0.12183,-0.10227,-0.13283,-0.13283,0.3765,0.21351,-0.0819,-0.17358,-0.17358,0.34594,0.15239,-0.13283,-0.17358,-0.17358,0.30519,-0.010594,-0.17358,-0.13283,-0.17358,0.30519,0.019966,-0.13283,-0.13283,-0.17358 0.26719,0.23366,0.091185,-0.076435,-0.21053,0.27557,0.18338,-0.14348,-0.1351,-0.20215,0.26719,0.18338,-0.20215,-0.11834,-0.21891,0.25881,0.15823,-0.084816,-0.15186,-0.21891,0.26719,0.20852,-0.21891,-0.19377,-0.21891 0.21687,0.20798,-0.15079,-0.16739,-0.18162,0.21391,0.22043,-0.15375,-0.16858,-0.18162,0.23466,0.23763,-0.14486,-0.16383,-0.17392,0.27024,0.27617,-0.14782,-0.16621,-0.17866,0.30286,0.25423,-0.13181,-0.15968,-0.16443 0.27245,0.25484,-0.16333,-0.16253,-0.15973,0.27085,0.21522,-0.16653,-0.16333,-0.16453,0.25924,0.21442,-0.14692,-0.15893,-0.16133,0.25364,0.21722,-0.15453,-0.16653,-0.16693,0.25324,0.23203,-0.16653,-0.16813,-0.17333 -0.26599,-0.1312,0.070991,0.22825,0.22825,-0.37832,-0.086268,-0.018871,0.13839,0.18332,-0.35586,-0.10873,-0.041337,0.11592,0.29565,-0.1986,-0.1986,0.070991,0.16085,0.29565,-0.24353,-0.17613,0.048526,0.16085,0.20579 -0.16832,-0.15911,-0.18673,-0.19594,-0.15911,-0.17752,-0.1499,-0.15911,-0.16832,-0.15911,-0.1499,-0.13149,-0.11307,-0.15911,-0.1499,0.18158,0.19078,0.16316,0.17237,0.16316,0.30128,0.26444,0.30128,0.33811,0.31048 0.22467,0.22111,0.22823,0.22111,0.22111,0.14992,0.15704,0.14636,0.13569,0.15348,0.082294,0.10721,0.10009,0.068057,0.089413,-0.14195,-0.14195,-0.17043,-0.14907,-0.14195,-0.30569,-0.31636,-0.29501,-0.31636,-0.32704 -0.21824,-0.26769,-0.2512,-0.23472,-0.23472,-0.20176,-0.15231,-0.15231,-0.16879,-0.15231,-0.053406,-0.069889,-0.003956,-0.020439,0.029011,0.061977,0.14439,0.12791,0.22681,0.07846,0.32571,0.30923,0.25978,0.29274,0.32571 0.28105,0.25128,-0.046445,-0.19531,-0.19531,0.25128,0.10242,-0.10599,-0.22508,-0.22508,0.3406,0.042872,-0.046445,-0.16553,-0.34417,0.40014,0.042872,-0.10599,-0.016673,-0.19531,0.22151,0.19173,-0.016673,-0.10599,-0.13576 0.1539,0.16354,0.19569,-0.13217,-0.23824,0.14104,0.15069,0.12176,-0.24146,-0.25432,0.18604,0.16997,0.14104,-0.24789,-0.25753,0.25997,0.16997,0.10247,-0.23824,-0.24789,0.25354,0.18926,-0.058243,-0.23182,-0.2511 0.42235,0.084876,-0.025202,-0.11935,-0.20335,0.44987,0.047218,-0.025202,-0.13238,-0.22653,0.45566,0.064598,-0.036789,-0.11935,-0.22363,0.15874,0.066047,-0.057067,-0.13528,-0.22074,0.15585,0.042872,-0.033892,-0.15121,-0.23812 0.20234,0.20234,0.10869,-0.13425,-0.34597,0.18588,0.18985,0.1802,-0.13766,-0.28069,0.17055,0.17055,0.16715,-0.16206,-0.33518,0.14217,0.14217,-0.0071064,-0.057624,-0.35221,0.13423,0.13423,0.13763,-0.13652,-0.31872 -0.29509,-0.20171,-0.061633,0.19517,0.23019,-0.2484,-0.20171,-0.061633,0.19517,0.23019,-0.22505,-0.15502,0.11346,0.19517,0.23019,-0.27175,-0.13167,0.10179,0.14848,0.23019,-0.30676,-0.20171,0.13681,0.11346,0.24186 0.15612,0.15655,0.19593,-0.19935,-0.2606,0.15458,0.1583,0.16246,-0.20066,-0.26366,0.15612,0.16093,0.16465,-0.20416,-0.27591,0.15765,0.15896,0.16333,-0.20285,-0.28007,0.16268,0.16027,0.16465,-0.26585,-0.28007 0.22486,0.19152,0.22486,0.24487,0.22486,0.18485,0.15151,0.19152,0.19152,0.17152,0.091493,0.091493,0.078156,0.05815,0.024807,-0.17525,-0.17525,-0.24194,-0.21526,-0.20859,-0.2486,-0.2486,-0.26861,-0.29529,-0.26861 0.31953,0.053936,-0.068646,-0.068646,-0.3751,0.31953,0.094797,-0.068646,-0.12994,-0.19123,0.25824,0.17652,-0.068646,-0.19123,-0.3751,0.27867,0.074367,-0.007355,-0.12994,-0.21166,0.27867,0.074367,0.19695,-0.10951,-0.12994 -0.26473,-0.11812,0.028484,0.091315,0.27981,-0.2019,-0.2019,-0.013404,0.25887,0.27981,-0.32756,-0.18095,0.091315,0.15415,0.27981,-0.2019,-0.16001,0.091315,0.049427,0.21698,-0.30662,-0.2019,-0.034348,0.11226,0.27981 0.24255,0.25224,-0.14808,-0.16905,-0.17152,0.24836,0.25506,-0.14896,-0.17346,-0.17223,0.23655,0.24149,-0.15019,-0.16377,-0.17293,0.23832,0.24431,-0.15143,-0.15777,-0.17187,0.23902,0.24925,-0.1509,-0.1717,-0.17329 0.25788,0.13676,0.0069903,-0.10375,-0.58476,0.23712,0.1333,-0.0085821,-0.098556,-0.19891,0.24577,0.11254,0.0035297,-0.12451,-0.18853,0.29075,0.15406,6.9211e-05,-0.11759,-0.21275,0.25269,0.15925,-0.027615,-0.11586,-0.20929 0.27978,0.25525,0.14079,-0.067697,-0.1699,0.23073,0.17758,-0.043169,-0.14946,-0.16172,0.23073,0.15305,-0.030905,-0.2721,-0.22304,0.27978,0.20211,-0.10449,-0.21078,-0.23531,0.21846,0.17758,-0.1699,-0.24757,-0.25983 0.17292,0.18289,0.16793,-0.14388,-0.25114,0.15795,0.16294,0.19287,-0.23618,-0.29604,0.15795,0.14298,0.13799,-0.28856,-0.30103,0.15047,0.14298,0.16543,-0.20874,-0.28856,0.15296,0.15047,0.16543,-0.1339,-0.25613 -0.2722,-0.30696,-0.2722,-0.20267,-0.22005,-0.20267,-0.22874,-0.19398,-0.15053,-0.1766,-0.037545,-0.0027811,0.023292,0.075437,0.031983,0.19711,0.15366,0.19711,0.2058,0.15366,0.27533,0.28402,0.24926,0.22318,0.19711 0.16643,0.16865,-0.016029,-0.23676,-0.23602,0.16298,0.161,-0.015782,-0.22911,-0.23676,0.2247,0.16791,0.18791,-0.22812,-0.24022,0.22421,0.18051,0.16544,-0.23083,-0.23799,0.25803,0.15927,0.15261,-0.23207,-0.23997 -0.26862,-0.27344,-0.26862,-0.27585,-0.28067,-0.19633,-0.2132,-0.20597,-0.22525,-0.22284,0.15065,0.14342,0.1386,0.12173,0.1386,0.17715,0.17233,0.1651,0.15788,0.16751,0.18197,0.17956,0.1892,0.17715,0.16992 0.18516,0.1628,0.14661,-0.24489,-0.24553,0.18559,0.16123,0.14023,-0.24439,-0.24532,0.18115,0.16452,0.14145,-0.24424,-0.24439,0.18509,0.16166,0.14489,-0.24331,-0.24446,0.1833,0.16051,0.13994,-0.2436,-0.24403 -0.25298,-0.17393,0.036893,0.16865,0.27406,-0.30569,-0.094868,0.063246,0.089598,0.30042,-0.27933,-0.068516,-0.042164,0.063246,0.27406,-0.20028,-0.25298,0.010541,0.19501,0.30042,-0.27933,-0.12122,-0.015811,-0.015811,0.32677 -0.27458,-0.17393,0.0072469,0.067638,0.3092,-0.23432,-0.23432,-0.033014,0.18842,0.28907,-0.25445,-0.23432,0.067638,0.18842,0.32933,-0.31484,-0.15379,0.067638,0.067638,0.20855,-0.21419,-0.053144,0.0072469,0.16829,0.20855 0.29743,0.32939,0.29743,0.26547,0.26547,0.1909,0.1909,0.15894,0.12698,0.15894,-0.086075,-0.054117,-0.086075,-0.054117,-0.00085223,-0.20326,-0.1713,-0.1713,-0.1713,-0.13934,-0.23522,-0.26717,-0.23522,-0.20326,-0.20326 0.24491,0.24186,-0.15665,-0.1638,-0.17665,0.24729,0.24451,-0.15492,-0.1634,-0.17228,0.24888,0.24106,-0.15479,-0.16354,-0.17241,0.24636,0.24106,-0.15426,-0.16115,-0.17228,0.24729,0.24517,-0.1536,-0.16062,-0.16804 0.26067,0.1112,0.08131,-0.18773,-0.24752,0.41014,0.1112,-0.038264,-0.098051,-0.24752,0.20088,0.1112,-0.038264,-0.21762,-0.21762,0.20088,0.1112,0.1112,-0.21762,-0.21762,0.32046,0.021523,0.17099,-0.24752,-0.24752 0.30647,0.073576,-0.11179,-0.20685,-0.22586,0.34449,0.12586,-0.13555,-0.24487,-0.24012,0.30647,0.0022814,-0.026236,-0.16407,-0.24963,0.30647,0.030799,-0.045248,-0.059507,-0.26864,0.32548,0.23042,0.030799,-0.021483,-0.083272 -0.27877,-0.31555,-0.29716,-0.29716,-0.33394,-0.16844,-0.15005,-0.15005,-0.15005,-0.15005,0.070612,0.12578,0.052224,0.015446,0.089001,0.21772,0.16255,0.2545,0.19933,0.18094,0.18094,0.18094,0.21772,0.19933,0.14417 0.10972,0.12054,0.14134,-0.045905,-0.26061,0.148,0.148,0.19876,-0.1749,-0.28641,0.19544,0.19544,0.00069906,-0.20236,-0.30555,0.21208,0.21458,0.050632,-0.19903,-0.28558,0.24953,0.24537,0.049799,-0.22733,-0.29224 0.25439,0.23063,-0.16397,-0.16704,-0.16857,0.25592,0.23063,-0.15938,-0.16742,-0.16742,0.25247,0.22987,-0.15899,-0.16282,-0.16627,0.26511,0.2291,-0.15708,-0.15938,-0.16052,0.26588,0.23255,-0.15976,-0.15938,-0.16857 -0.3047,-0.15861,-0.012522,0.13357,0.30052,-0.3047,-0.11687,0.029217,0.070957,0.1753,-0.22122,-0.15861,-0.075131,0.1127,0.30052,-0.32557,-0.033391,-0.054261,0.15444,0.30052,-0.17948,-0.22122,0.091826,0.1753,0.32139 -0.20778,-0.23275,-0.057938,0.21677,0.31666,-0.25772,-0.13286,0.041955,0.041955,0.29169,-0.1828,-0.10788,-0.032965,0.19179,0.21677,-0.2827,-0.10788,-0.032965,0.041955,0.29169,-0.30767,-0.20778,0.041955,0.11687,0.34163 -0.26453,-0.26453,0.098624,0.13685,0.15596,-0.2263,-0.11162,-0.073395,0.15596,0.30887,-0.18807,-0.14985,-0.035168,0.17508,0.27064,-0.26453,-0.2263,0.0030581,0.15596,0.28976,-0.2263,-0.18807,-0.035168,0.17508,0.32798 0.39339,0.0979,-0.083293,-0.16692,-0.20595,0.40175,-0.030329,-0.049842,-0.10002,-0.21152,0.3683,-0.027541,-0.055417,-0.11674,-0.17807,0.30697,-0.024754,-0.069355,-0.23104,-0.1725,0.35993,0.081175,-0.049842,-0.069355,-0.16692 0.26892,0.14778,-0.094484,-0.15505,-0.27618,0.26892,0.18816,-0.094484,-0.15505,-0.21562,0.20835,0.14778,-0.17524,-0.11467,-0.17524,0.26892,0.26892,-0.15505,-0.094484,-0.21562,0.2891,0.30929,-0.15505,-0.13486,-0.15505 0.18251,0.16588,0.1533,-0.23973,-0.25676,0.17764,0.16263,0.15411,-0.23973,-0.25392,0.17845,0.16263,0.1529,-0.23689,-0.24946,0.17439,0.15939,0.1456,-0.23608,-0.25149,0.17277,0.15736,0.14681,-0.23446,-0.24784 -0.20879,-0.19001,0.091626,0.1104,0.33571,-0.30267,-0.05858,0.016523,0.16673,0.33571,-0.37777,-0.11491,-0.077356,0.1104,0.22306,-0.26511,-0.15246,-0.021029,0.1104,0.31694,-0.26511,-0.05858,-0.021029,0.1104,0.1855 -0.24332,-0.243,-0.243,-0.24269,-0.243,-0.243,-0.243,-0.24237,-0.24269,-0.24269,0.11345,0.11697,0.11313,0.11553,0.11489,0.18276,0.18276,0.18021,0.18931,0.18819,0.18005,0.19155,0.19219,0.18436,0.1834 0.2479,0.19842,0.19842,0.2479,0.19842,0.16131,0.16131,0.19842,0.16131,0.19842,0.087087,0.087087,0.049976,0.087087,0.049976,-0.17269,-0.19743,-0.14795,-0.2098,-0.19743,-0.25928,-0.29639,-0.3335,-0.25928,-0.25928 0.40097,0.18678,0.063616,-0.1479,-0.23893,0.40633,0.17339,-0.00064258,-0.11042,-0.26035,-0.00332,0.095745,-0.022062,-0.1479,-0.23358,0.24836,0.11984,-0.064901,-0.16932,-0.24161,0.30994,0.082358,-0.040804,-0.1479,-0.25768 -0.27162,-0.18726,-0.35597,-0.27162,-0.18726,-0.124,-0.16618,-0.124,-0.20835,-0.124,-0.081822,-0.039646,0.0025306,-0.060734,0.0025306,0.15015,0.15015,0.21341,0.15015,0.12906,0.29777,0.25559,0.25559,0.29777,0.29777 -0.21559,-0.21559,-0.21559,-0.27292,-0.25859,-0.21559,-0.21559,-0.21559,-0.22992,-0.21559,0.028095,0.042429,-0.00057336,0.042429,-0.00057336,0.21444,0.2001,0.2001,0.17144,0.17144,0.21444,0.24311,0.27177,0.21444,0.25744 0.16113,0.17903,0.035806,-0.28645,-0.23274,0.25064,0.23274,0.035806,-0.21483,-0.26854,0.32225,0.16113,-0.071611,-0.21483,-0.17903,0.25064,0.19693,-0.017903,-0.23274,-0.12532,0.32225,0.089514,-0.035806,-0.23274,-0.12532 -0.26825,-0.14367,-0.060625,0.084709,0.29233,-0.26825,-0.12291,0.147,0.022423,0.23004,-0.33053,-0.12291,0.001661,0.147,0.29233,-0.20596,-0.12291,-0.039863,0.23004,0.35462,-0.26825,-0.20596,0.001661,0.147,0.20928 -0.24658,-0.1997,-0.035627,0.15188,0.19876,-0.17626,-0.17626,-0.035627,0.12844,0.36283,-0.29345,-0.10594,-0.059066,0.19876,0.29252,-0.22314,-0.1997,0.058128,0.17532,0.19876,-0.29345,-0.15282,-0.059066,0.26908,0.2222 -0.27511,-0.11968,-0.041966,0.13937,0.42433,-0.36578,-0.14559,0.048702,0.087559,0.2948,-0.33988,-0.093777,-0.041966,0.13937,0.25594,-0.23626,-0.067872,0.035749,0.13937,0.17823,-0.23626,-0.093777,-0.041966,0.13937,0.21709 0.26911,0.1494,-0.066079,-0.28156,-0.18579,0.24516,0.10151,-0.066079,-0.20973,-0.18579,0.34093,0.10151,-0.1379,-0.18579,-0.20973,0.34093,0.1494,0.12546,-0.25761,-0.18579,0.19728,0.19728,0.077571,-0.066079,-0.25761 0.34034,0.030302,0.013306,-0.00014195,-0.19961,0.33735,0.034784,0.018535,-0.19775,-0.19999,0.34071,0.037399,0.026193,-0.19924,-0.20073,0.33941,0.04543,0.026193,-0.19961,-0.20148,0.36014,0.048792,-0.19849,-0.19961,-0.20223 -0.18762,-0.18453,-0.17213,-0.19382,-0.17833,-0.15664,-0.17833,-0.17213,-0.17213,-0.16904,-0.13186,-0.14735,-0.13496,-0.12256,-0.13186,0.21823,0.22133,0.21514,0.22443,0.22133,0.26471,0.25541,0.2771,0.274,0.26161 0.27719,0.21532,-0.16211,-0.1652,-0.17448,0.28338,0.27101,-0.1652,-0.1652,-0.1683,0.27719,0.094667,-0.15283,-0.16211,-0.1683,0.29576,0.2246,-0.15902,-0.1652,-0.15902,0.24007,0.23079,-0.13427,-0.15283,-0.15592 0.30912,0.17972,-0.16101,-0.16613,-0.1733,0.30877,0.17255,0.10529,-0.16852,-0.17501,0.30638,0.16675,-0.17603,-0.17159,-0.17057,0.23878,0.17084,-0.17364,-0.17228,-0.17501,0.29273,0.16197,-0.17808,-0.17535,-0.17637 -0.30724,-0.20551,-0.027469,0.048834,0.32861,-0.20551,-0.052903,-0.052903,0.176,0.27774,-0.25638,-0.20551,-0.0020347,0.20144,0.22687,-0.20551,-0.18007,0.048834,0.12514,0.22687,-0.30724,-0.20551,0.12514,0.15057,0.27774 0.26033,0.17691,0.079599,-0.017715,-0.39307,0.23848,0.16897,0.11138,-0.031617,-0.31562,0.21068,0.11535,0.079599,-0.049491,-0.4169,0.18486,0.093501,0.023991,-0.079281,-0.36527,0.16897,0.085557,0.027963,-0.085239,-0.27192 0.3133,0.25013,-0.078324,-0.15412,-0.16675,0.30066,0.22487,-0.17939,-0.15412,-0.16675,0.2375,0.18697,-0.15412,-0.19202,-0.12886,0.25013,0.18697,-0.16675,-0.16675,-0.12886,0.25013,0.21223,-0.19202,-0.20465,-0.17939 -0.24193,-0.20223,-0.2684,-0.30811,-0.2684,-0.09635,-0.17576,-0.16252,-0.14929,-0.18899,0.035999,0.022764,-0.04341,-0.016941,-0.04341,0.20805,0.15511,0.12864,0.12864,0.049234,0.36687,0.32717,0.28746,0.23452,0.22129 -0.19576,-0.2155,0.0015787,0.060781,0.25812,-0.2747,-0.037889,0.10025,0.11998,0.25812,-0.2747,-0.17603,0.0015787,0.060781,0.29759,-0.23523,-0.23523,-0.037889,0.17919,0.27786,-0.25496,-0.23523,0.060781,0.17919,0.31732 0.31783,-0.078595,-0.06136,-0.16477,-0.28543,0.36954,0.21441,-0.095831,-0.14754,-0.21648,0.33506,0.14547,-0.044124,-0.25095,-0.21648,0.24889,0.19718,0.0075838,-0.14754,-0.19925,0.17994,0.12823,0.093763,-0.18201,-0.14754 -0.33123,-0.32326,-0.32591,-0.32591,-0.32591,-0.1478,-0.10527,-0.13451,-0.16375,-0.15046,0.15259,0.15259,0.13132,0.13398,0.12335,0.17651,0.17386,0.16056,0.15259,0.15791,0.17386,0.16588,0.15791,0.16588,0.15525 -0.28913,-0.10165,-0.018331,0.14831,0.35662,-0.2683,-0.059992,0.02333,-0.018331,0.29413,-0.28913,-0.18497,0.02333,0.18997,0.18997,-0.30996,-0.10165,0.064991,0.064991,0.35662,-0.2683,-0.14331,0.02333,0.064991,0.25246 -0.16056,-0.16529,-0.15584,-0.17001,-0.15112,-0.16056,-0.15584,-0.17001,-0.16056,-0.16056,-0.15584,-0.17001,-0.13695,-0.15584,-0.15584,0.13695,0.17945,0.17945,0.16529,0.17945,0.30696,0.3164,0.3164,0.30224,0.30224 -0.24377,-0.007725,0.099566,0.12102,0.31415,-0.30814,-0.20085,-0.007725,0.1854,0.22832,-0.3296,-0.22231,0.078108,0.14248,0.24977,-0.26522,-0.11502,0.099566,0.099566,0.22832,-0.30814,-0.15793,-0.029183,0.099566,0.24977 0.27323,-0.048129,-0.12286,-0.14528,-0.17518,0.3106,0.07892,-0.11539,-0.1976,-0.1677,0.33302,0.07892,-0.13781,-0.17518,-0.13781,0.39281,0.086393,-0.063076,-0.12286,-0.15276,0.45259,0.14618,-0.07055,-0.14528,-0.17518 -0.31134,-0.31134,-0.29858,-0.27306,-0.23478,-0.1965,-0.17098,-0.1327,-0.10718,-0.17098,0.096975,0.020416,0.033176,0.084215,-0.0051039,0.21181,0.13525,0.13525,0.12249,0.084215,0.32665,0.26285,0.25009,0.23733,0.21181 0.25255,0.26367,0.24884,0.23772,0.2266,0.24514,0.21918,0.23031,0.23401,0.2266,-0.10336,-0.092241,-0.092241,-0.051459,-0.069997,-0.20717,-0.19605,-0.17751,-0.18122,-0.15527,-0.21088,-0.22942,-0.19976,-0.19976,-0.21829 0.24497,0.196,-0.16435,-0.16124,-0.16302,0.25476,0.19556,-0.16213,-0.1619,-0.16213,0.26211,0.19467,-0.16124,-0.1619,-0.16257,0.26878,0.27368,-0.16257,-0.16257,-0.16279,0.27101,0.27479,-0.1619,-0.16146,-0.16457 0.29464,0.041708,-0.066692,-0.13208,-0.22155,0.25679,0.058915,-0.042603,-0.13036,-0.21811,0.27399,0.031384,-0.049486,-0.12863,-0.22155,0.26367,0.041708,-0.058089,-0.15616,-0.20262,0.59403,0.11225,-0.013352,-0.14068,-0.18714 0.39354,-0.023077,-0.092768,-0.1181,-0.16074,0.39124,-0.0099804,-0.084069,-0.12374,-0.15711,0.39038,-0.027379,-0.085216,-0.12489,-0.16103,0.38589,-0.023269,-0.099364,-0.12164,-0.1595,0.38646,-0.019349,-0.081966,-0.12317,-0.15118 -0.27729,-0.29364,-0.21189,-0.24459,-0.29364,-0.11379,-0.19554,-0.21189,-0.11379,-0.081094,-0.064745,-0.015696,-0.015696,-0.032045,0.00065399,0.13145,0.082402,0.1805,0.16415,0.19685,0.26225,0.29495,0.3113,0.22955,0.3113 0.15431,0.17084,0.16743,-0.043074,-0.33866,0.17278,0.17132,0.15577,-0.18795,-0.35762,0.18202,0.13389,0.14361,-0.042102,-0.34304,0.15139,0.12854,0.13389,-0.20108,-0.24726,0.14604,0.13632,0.14021,-0.20497,-0.32262 -0.29138,-0.1714,-0.068559,0.01714,0.1714,-0.2571,-0.068559,0.051419,0.15426,0.30852,-0.30852,-0.11998,0.03428,0.1714,0.30852,-0.22282,-0.22282,0,0.11998,0.22282,-0.2571,-0.13712,-0.01714,0.23996,0.3428 0.20935,0.25594,-0.14008,-0.15561,-0.21773,0.27147,0.22488,-0.14008,-0.11679,-0.20997,0.20935,0.22488,-0.15561,-0.12455,-0.19444,0.25594,0.20935,-0.14785,-0.14008,-0.19444,0.27147,0.287,-0.14008,-0.13232,-0.20997 -0.2154,-0.2154,-0.29372,-0.3133,-0.23498,-0.17623,-0.19582,-0.13707,-0.19582,-0.078326,-0.019582,0,0.019582,-0.058745,0.019582,0.13707,0.11749,0.097908,0.097908,0.13707,0.29372,0.25456,0.35247,0.3133,0.29372 -0.21809,-0.074611,0.068872,0.1167,0.21236,-0.31375,-0.14635,0.021044,0.092786,0.30801,-0.24201,-0.074611,0.092786,0.1167,0.2841,-0.38549,-0.14635,0.092786,0.068872,0.26018,-0.33766,-0.14635,-0.050697,0.092786,0.30801 -0.22588,-0.24846,-0.067763,0.067763,0.1807,-0.22588,-0.090351,0,0.24846,0.24846,-0.29364,-0.15811,-0.045175,0.22588,0.31623,-0.22588,-0.1807,0,0.13553,0.31623,-0.24846,-0.090351,-0.090351,0.13553,0.31623 -0.28663,-0.26305,-0.2277,-0.23948,-0.19234,-0.21591,-0.23948,-0.26305,-0.16877,-0.20413,0.0198,-0.015557,0.0198,0.090513,0.090513,0.19658,0.1848,0.19658,0.19658,0.23194,0.22015,0.19658,0.22015,0.23194,0.22015 0.19657,0.081839,0.10096,-0.16674,-0.45356,0.17745,0.10096,0.043597,-0.05201,-0.2241,0.3113,0.10096,0.10096,-0.16674,-0.20498,0.3113,0.081839,0.081839,-0.090253,-0.33883,0.3113,0.062718,-0.013767,-0.05201,-0.30059 -0.21398,-0.1204,-0.089211,0.26951,0.26951,-0.22958,-0.042422,-0.042422,0.12914,0.31629,-0.27637,-0.1204,-0.089211,0.17593,0.31629,-0.19839,-0.16719,-0.1204,0.17593,0.26951,-0.27637,-0.16719,-0.1204,0.082349,0.26951 0.13531,0.095843,0.014581,-0.075969,-0.3453,0.15621,0.13764,0.04012,-0.043464,-0.38709,0.19336,0.17711,0.070304,-0.045786,-0.29422,0.2189,0.15157,0.11442,-0.096865,-0.35226,0.2514,0.17943,0.14924,-0.057395,-0.38709 0.19386,0.23943,0.057124,-0.23153,-0.21634,0.37616,0.23943,0.072316,-0.24673,-0.21634,0.22424,0.17866,-0.034031,-0.23153,-0.24673,0.17866,0.22424,-0.049224,-0.21634,-0.26192,0.22424,0.041931,-0.018839,-0.14038,-0.14038 -0.31739,-0.23741,-0.23741,-0.33339,-0.2694,-0.093427,-0.12542,-0.10942,-0.15742,-0.15742,0.0025596,-0.045434,-0.061431,0.018557,0.0025596,0.16254,0.16254,0.082548,0.14654,0.16254,0.24253,0.24253,0.27452,0.35451,0.29052 0.24702,0.057973,0.057973,-0.13107,-0.19408,0.27852,0.08948,0.15249,-0.16258,-0.32011,0.31003,0.15249,0.08948,0.026466,-0.38313,0.21551,0.12099,-0.099562,-0.16258,-0.35162,0.184,0.184,-0.0050411,-0.099562,-0.2571 -0.17944,-0.19709,-0.19709,-0.17944,-0.19709,-0.19121,-0.21474,-0.20592,-0.20004,-0.22357,-0.097076,-0.055893,-0.055893,-0.070601,-0.070601,0.067659,0.23534,0.25887,0.2324,0.2324,0.24122,0.2677,0.27064,0.27064,0.25887 0.32016,0.31895,-0.054442,-0.19847,-0.21602,0.33106,0.3359,-0.071387,-0.20332,-0.21058,0.16645,0.16705,-0.057468,-0.19666,-0.2015,0.16282,0.16161,-0.056862,-0.18879,-0.19484,0.1604,0.16161,-0.060493,-0.18516,-0.19 -0.37151,-0.14648,0.078558,0.11947,0.32405,-0.31014,-0.20785,0.037642,0.18085,0.16039,-0.22831,-0.044189,-0.0032733,0.18085,0.28314,-0.26922,-0.18739,-0.064647,0.078558,0.24222,-0.24877,-0.064647,0.017185,0.16039,0.28314 -0.29475,-0.078476,0.091453,0.18414,0.16869,-0.27158,-0.18661,0.076005,0.16097,0.17642,-0.26385,-0.27158,0.091453,0.22276,0.19187,-0.27158,-0.21751,0.037384,0.20731,0.25366,-0.27158,-0.17889,0.02966,0.16097,0.25366 -0.23654,-0.14077,-0.04501,0.24229,0.31411,-0.23654,-0.16472,-0.021068,0.17046,0.26623,-0.26048,-0.14077,-0.068951,0.31411,0.1944,-0.23654,-0.14077,-0.021068,0.026814,0.26623,-0.23654,-0.23654,-0.021068,0.14652,0.26623 -0.20399,-0.24776,0.014883,0.14621,0.32131,-0.13833,-0.20399,0.058658,0.16809,0.18998,-0.22588,-0.20399,-0.072666,0.18998,0.21187,-0.31343,-0.13833,-0.072666,0.16809,0.32131,-0.29154,-0.13833,0.036771,0.12432,0.29942 0.16037,0.15959,0.15959,-0.11062,-0.272,0.1497,0.15071,0.15105,-0.11017,-0.27155,0.16003,0.15902,0.15846,-0.27133,-0.27189,0.15981,0.15925,0.16037,-0.27167,-0.27268,0.16105,0.16408,0.18362,-0.27223,-0.27256 -0.40706,-0.16424,0.078586,0.16688,0.27726,-0.23046,-0.23046,-0.0097129,0.16688,0.23311,-0.23046,-0.12009,0.034436,0.10066,0.16688,-0.34083,-0.14216,0.034436,0.10066,0.27726,-0.20838,-0.075937,0.056511,0.14481,0.32141 -0.19593,-0.14274,-0.036363,0.23926,0.30212,-0.21528,-0.15725,-0.055705,0.19574,0.3263,-0.2056,-0.18626,-0.079882,0.11837,0.31663,-0.17659,-0.20077,-0.10889,0.12804,0.31179,-0.18626,-0.1911,-0.13791,0.04584,0.29245 0.23499,-0.0067694,-0.13571,-0.20018,-0.30092,0.23096,0.021436,-0.06721,-0.19615,-0.25256,0.33573,0.013378,-0.018858,-0.1478,-0.20824,0.45258,0.11411,0.029495,-0.11556,-0.15989,0.37199,0.16247,0.073819,-0.083328,-0.1478 -0.30547,-0.16704,0.017535,0.17904,0.22518,-0.19011,-0.074754,0.017535,0.086751,0.36362,-0.32855,-0.19011,-0.051682,0.22518,0.20211,-0.30547,-0.16704,0.017535,0.086751,0.17904,-0.25933,-0.1209,0.086751,0.15597,0.31747 0.24273,0.22803,-0.051131,-0.3156,-0.19806,0.25742,0.21334,-0.021745,-0.18337,-0.15398,0.24273,0.18395,-0.051131,-0.24214,-0.22744,0.21334,0.19865,-0.051131,-0.30091,-0.24214,0.25742,0.18395,0.066411,-0.12459,-0.12459 -0.30272,-0.13685,-0.095379,0.1327,0.27784,-0.24052,-0.11611,0.0082938,0.091232,0.27784,-0.19905,-0.13685,0.0082938,0.19491,0.25711,-0.30272,-0.033175,0.029028,0.1327,0.27784,-0.24052,-0.21979,-0.095379,0.029028,0.40225 -0.22424,-0.18264,-0.12023,-0.17224,-0.16184,-0.18264,-0.16184,-0.19304,-0.13063,-0.13063,-0.15144,-0.15144,-0.17224,-0.099432,-0.13063,0.16059,0.17099,0.15019,0.19179,0.15019,0.3166,0.2958,0.3166,0.3166,0.2958 0.199,0.17336,0.070779,-0.10873,-0.2626,0.32723,0.045135,0.045135,-0.10873,-0.18567,0.22465,0.12207,0.01949,-0.031799,-0.36518,0.25029,0.12207,0.070779,-0.23696,-0.39083,0.17336,0.17336,0.045135,-0.0061547,-0.36518 -0.18685,-0.16406,-0.0045572,0.063801,0.26888,-0.36914,-0.072916,0.041015,0.2233,0.31445,-0.27799,-0.16406,-0.0045572,0.10937,0.26888,-0.27799,-0.095702,-0.0045572,0.063801,0.20052,-0.30078,-0.095702,-0.072916,0.24609,0.29166 -0.34918,-0.27123,-0.27123,-0.29072,-0.27123,-0.19329,-0.13484,-0.13484,-0.17381,-0.13484,0.098985,-0.017926,0.060014,0.0015588,0.0795,0.17693,0.2159,0.13796,0.11847,0.15744,0.25487,0.2159,0.31332,0.2159,0.19641 -0.26543,-0.157,0.038166,0.016481,0.29839,-0.28711,-0.13531,-0.02689,0.14659,0.32007,-0.24374,-0.07026,-0.07026,0.10322,0.40681,-0.26543,-0.157,-0.048575,0.10322,0.25502,-0.20037,-0.157,0.038166,0.038166,0.32007 -0.24336,-0.21368,-0.24336,-0.29283,-0.24336,-0.13454,-0.11476,-0.14443,-0.13454,-0.17411,-0.025721,-0.0059357,-0.025721,-0.065292,-0.065292,0.19192,0.092992,0.12267,0.043528,0.092992,0.3601,0.36999,0.30074,0.27106,0.28095 0.33966,0.046991,0.022259,-0.080792,-0.28277,0.30668,0.038747,0.026381,-0.13026,-0.27453,0.43446,0.030503,0.022259,-0.047816,-0.29514,0.36851,0.026381,0.022259,-0.03545,-0.27453,0.11294,0.034625,0.018137,-0.15499,-0.27453 0.18142,0.13363,0.091959,-0.056323,-0.42274,0.17897,0.12872,0.099312,-0.08941,-0.36269,0.19,0.13117,0.11157,4.9019e-05,-0.36269,0.18509,0.12627,0.096861,-0.0097547,-0.3774,0.16916,0.12872,0.10421,-0.056323,-0.3198 0.385,0.14752,-0.1179,-0.1505,-0.16447,0.33843,0.18943,-0.1505,-0.15981,-0.1505,0.34775,0.10095,-0.1179,-0.1505,-0.17844,0.3524,-0.043398,-0.1505,-0.14584,-0.13653,0.31981,0.031105,-0.11325,-0.1179,-0.16447 0.38009,-0.04411,-0.062741,-0.12644,-0.15113,0.38485,-0.010312,-0.052342,-0.12037,-0.14767,0.38702,0.0018198,-0.096539,-0.12817,-0.15417,0.39265,-0.024611,-0.083973,-0.1559,-0.1572,0.39612,-0.036744,-0.07834,-0.1416,-0.1702 0.10446,0.088215,0.084467,0.0032487,-0.36536,0.12445,0.10446,0.10321,0.0094963,-0.39409,0.12945,0.12445,0.11945,-0.0092464,-0.3866,0.14944,0.14944,0.1382,0.011995,-0.39285,0.17193,0.16444,0.13945,0.02449,-0.39659 0.25143,0.25682,-0.069189,-0.15002,-0.18235,0.2649,0.25951,-0.015303,-0.1581,-0.16618,0.2649,0.27298,-0.10421,-0.16079,-0.19582,0.2649,0.22449,-0.16618,-0.17426,-0.2066,0.27029,-0.020692,-0.16618,-0.19043,-0.2039 0.23021,0.076326,-0.031392,-0.26222,-0.33916,0.21482,0.23021,0.076326,-0.20066,-0.32377,0.18404,0.18404,-0.00061553,-0.12372,-0.33916,0.16866,0.21482,0.091714,-0.016004,-0.23144,0.19943,0.16866,0.16866,-0.077557,-0.26222 0.30957,0.33866,-0.029871,-0.24808,-0.32082,0.25138,0.24168,-0.00077586,-0.22869,-0.28688,0.28047,0.071961,0.018621,-0.068664,-0.26748,0.18834,0.067112,0.0040733,-0.063815,-0.24323,0.23683,0.013772,0.0089224,-0.063815,-0.20929 0.39094,-0.023952,-0.082722,-0.12629,-0.15289,0.37895,-0.023367,-0.087692,-0.13418,-0.15289,0.40819,-0.023952,-0.073365,-0.1257,-0.15465,0.38773,-0.028046,-0.082137,-0.12863,-0.1564,0.38334,-0.021905,-0.082137,-0.13155,-0.15669 -0.17663,-0.17663,-0.065681,0.20059,0.24497,-0.26539,-0.065681,-0.043492,0.11184,0.28935,-0.35415,-0.087871,0.045267,0.089646,0.37811,-0.30977,-0.11006,0.023077,0.089646,0.33373,-0.26539,-0.17663,0.00088758,0.11184,0.1784 0.17306,0.14115,0.12238,-0.057812,-0.41257,0.15241,0.13364,0.12613,-0.089721,-0.36752,0.16555,0.12613,0.11863,-0.097229,-0.36564,0.17681,0.13364,0.12238,-0.029657,-0.38066,0.17306,0.1449,0.12989,-0.055935,-0.28305 0.17412,0.14324,0.073783,-0.15004,-0.38929,0.18183,0.13553,0.050629,-0.12688,-0.38929,0.18955,0.13553,0.073783,-0.065139,-0.38157,0.15868,0.15096,0.12781,-0.0033959,-0.31983,0.18955,0.18955,0.12781,0.01204,-0.28896 0.15216,0.16221,0.1684,-0.07447,-0.26939,0.16763,0.16763,0.16608,-0.061321,-0.27557,0.15912,0.15603,0.1568,-0.25392,-0.29027,0.15061,0.15216,0.15293,-0.27557,-0.29491,0.15293,0.14597,0.14829,-0.28176,-0.28176 -0.23305,-0.20907,-0.16112,0.066653,0.2225,-0.22106,-0.19708,-0.077203,0.15456,0.25446,-0.21307,-0.1771,-0.057223,0.19053,0.28643,-0.21307,-0.18509,0.070649,0.17854,0.29043,-0.22505,-0.1811,0.10661,0.21051,0.3184 0.15686,0.1656,0.22023,-0.11193,-0.27692,0.13064,0.16014,0.19401,-0.15236,-0.29877,0.13938,0.17762,0.18308,-0.17967,-0.31953,0.13064,0.12517,0.1656,-0.13597,-0.33155,0.14593,0.11643,0.12954,-0.17858,-0.35559 0.20122,0.058712,-0.17405,-0.25005,-0.2263,0.22972,0.15847,-0.083793,-0.24055,-0.24055,0.23922,0.18222,-0.017291,-0.20255,-0.2643,0.24397,0.21547,0.11096,-0.10279,-0.24055,0.28672,0.24397,0.14897,-0.036291,-0.24055 -0.24363,-0.11293,-0.086786,0.20076,0.2269,-0.19135,-0.16521,-0.086786,0.17462,0.30532,-0.32205,-0.16521,0.017775,0.2269,0.20076,-0.29591,-0.11293,0.070056,0.096197,0.17462,-0.26977,-0.21749,0.070056,0.17462,0.33146 0.14657,0.2291,0.17958,-0.034992,-0.26607,0.19609,0.19609,0.097052,-0.084508,-0.29908,0.21259,0.16307,0.064041,-0.15053,-0.3486,0.21259,0.16307,0.03103,-0.084508,-0.26607,0.14657,0.16307,-0.034992,-0.21655,-0.41462 0.10058,0.11133,0.11634,-0.036287,-0.30572,0.14931,0.15934,0.16364,-0.097196,-0.27921,0.19517,0.19302,0.19445,-0.16527,-0.32507,0.19588,0.19588,0.032504,-0.1667,-0.36663,0.19875,0.19517,0.051851,-0.1839,-0.32722 0.38233,0.14483,-0.035092,-0.10202,-0.2438,0.1182,0.11532,-0.045168,-0.12505,-0.24812,0.19233,0.092293,-0.032213,-0.12937,-0.24812,0.55361,0.111,-0.029334,-0.096265,-0.26611,0.18657,0.11028,-0.030774,-0.10922,-0.26611 -0.21857,-0.26264,-0.26264,-0.24061,-0.28467,-0.17451,-0.15247,-0.15247,-0.28467,-0.19654,0.04583,0.0017627,0.023796,0.067863,0.023796,0.17803,0.17803,0.13396,0.20006,0.067863,0.26616,0.26616,0.2882,0.2221,0.26616 -0.2837,-0.3702,-0.24046,-0.24046,-0.30533,-0.15396,-0.11071,-0.08909,-0.11071,-0.17558,0.062276,0.019029,-0.024219,-0.024219,0.019029,0.12715,0.10552,0.10552,0.14877,0.12715,0.27851,0.32176,0.27851,0.30014,0.23527 -0.26452,-0.25185,-0.3152,-0.28986,-0.3152,-0.049155,-0.13784,-0.16317,-0.13784,-0.13784,-0.011148,0.026858,0.0015202,0.0015202,0.0015202,0.22956,0.10287,0.11554,0.10287,0.090201,0.35625,0.2549,0.28023,0.28023,0.22956 0.20089,0.078719,0.07994,-0.2402,-0.24033,0.19931,0.20175,0.080916,-0.24081,-0.23996,0.20285,0.20407,0.2015,-0.24045,-0.24081,0.20663,0.20358,0.12351,-0.24033,-0.24008,0.17722,0.12083,0.12009,-0.23959,-0.23923 0.12048,0.14842,0.087896,-0.051769,-0.40559,0.13445,0.12048,0.13911,-0.042458,-0.38697,0.1298,0.12514,0.13445,0.050652,-0.36369,0.14842,0.13445,0.13911,0.045996,-0.38697,0.14376,0.12048,0.12514,-0.042458,-0.36834 0.39034,0.20699,-0.057859,-0.15972,-0.11898,0.36997,0.084751,0.0032596,-0.24121,-0.24121,0.28848,0.084751,0.0032596,-0.24121,-0.24121,0.26811,0.16624,-0.11898,-0.20047,-0.15972,0.18661,0.14587,-0.15972,-0.13935,-0.11898 0.46582,-0.0081128,-0.097105,-0.16747,-0.27095,0.43064,0.018792,-0.082618,-0.1654,-0.23991,0.34786,0.033279,-0.035017,-0.14057,-0.21093,0.27749,0.072601,-0.018461,-0.086757,-0.19852,0.19885,0.097436,0.0022352,-0.070201,-0.15298 0.30127,0.038534,-0.078236,0.0093416,-0.19501,0.27207,0.12611,-0.049043,-0.25339,-0.31177,0.33046,0.096919,0.038534,0.038534,-0.28258,0.33046,0.038534,-0.13662,-0.078236,-0.25339,0.30127,0.12611,0.038534,-0.2242,-0.2242 0.21919,0.22766,0.20056,-0.085712,-0.28898,0.16838,0.17346,0.16329,-0.094182,-0.32456,0.13789,0.13789,0.12942,-0.12298,-0.31778,0.12603,0.13111,0.10909,-0.13992,-0.36521,0.13111,0.12095,0.078598,-0.13484,-0.38046 0.21345,0.080044,0.080044,-0.086715,-0.35353,0.23013,0.13007,0.030017,-0.086715,-0.22012,0.31351,0.1801,0.13007,-0.053363,-0.33685,0.1801,0.13007,-0.086715,-0.086715,-0.40356,0.23013,0.080044,0.080044,-0.020011,-0.35353 0.29498,0.28553,0.28553,0.28553,0.29498,0.14844,0.13898,0.18153,0.23353,0.2288,-0.13993,-0.13993,-0.11629,-0.0832,-0.073746,-0.19193,-0.15411,-0.16829,-0.1872,-0.17775,-0.20611,-0.1872,-0.17302,-0.20138,-0.17775 -0.24683,-0.23109,-0.3098,-0.24683,-0.32554,-0.16812,-0.1209,-0.1209,-0.10516,-0.10516,-0.042188,-0.05793,-0.026446,0.036521,-0.10516,0.083746,0.14671,0.16246,0.16246,0.20968,0.27265,0.31987,0.27265,0.27265,0.27265 -0.27867,-0.08965,-0.008641,0.072368,0.23439,-0.27867,-0.08965,-0.062647,0.20738,0.3424,-0.38668,-0.08965,0.045365,0.099371,0.20738,-0.30567,-0.08965,-0.11665,0.099371,0.31539,-0.22466,-0.08965,0.045365,0.15338,0.28839 -0.33089,-0.29704,-0.31961,-0.31961,-0.31961,-0.10518,-0.10518,-0.082611,-0.19547,-0.11647,0.075388,0.030245,0.0076742,0.041531,0.052817,0.23339,0.16567,0.13182,0.16567,0.21082,0.2221,0.19953,0.23339,0.2221,0.19953 -0.32221,-0.26478,-0.35093,-0.33657,-0.32221,-0.14991,-0.10683,-0.16427,-0.12119,-0.13555,0.051118,0.079836,0.079836,0.094195,0.12291,0.13727,0.18035,0.16599,0.16599,0.16599,0.16599,0.25214,0.16599,0.22342,0.22342 0.14665,0.14027,0.10194,-0.070516,-0.3835,0.14665,0.12749,0.14027,-0.044967,-0.37711,0.12749,0.12749,0.13388,-0.070516,-0.39627,0.13388,0.15943,0.16582,-0.00025549,-0.3835,0.12749,0.14027,0.13388,0.0061318,-0.3324 -0.29368,-0.26055,-0.24951,-0.29368,-0.29368,-0.12807,-0.16119,-0.11703,-0.12807,-0.12807,-0.028705,0.026497,-0.017665,0.015457,-0.028705,0.11482,0.15898,0.1369,0.15898,0.10378,0.41291,0.31355,0.23627,0.22523,0.22523 -0.30942,-0.29695,-0.30942,-0.27826,-0.28761,-0.16294,-0.15047,-0.13177,-0.15047,-0.14424,0.077044,0.073927,0.077044,0.064577,0.073927,0.10821,0.10198,0.092627,0.092627,0.08951,0.27028,0.28274,0.26404,0.26404,0.28898 -0.25497,-0.031871,-0.063741,0.17529,0.2709,-0.31871,-0.095612,0.063741,0.063741,0.28684,-0.2231,-0.2231,-0.031871,0.15935,0.23903,-0.28684,-0.031871,-0.063741,0.12748,0.2709,-0.31871,-0.15935,0.031871,0.047806,0.36651 0.24985,0.24203,-0.15979,-0.16192,-0.1708,0.24096,0.24523,-0.15801,-0.16476,-0.16547,0.23777,0.23777,-0.15943,-0.16405,-0.16405,0.25589,0.23919,-0.15659,-0.16619,-0.1669,0.2502,0.24985,-0.15624,-0.16619,-0.16832 0.3298,0.012685,-0.09302,-0.10812,-0.22893,0.2996,0.027785,-0.10812,-0.16852,-0.21383,0.3449,0.027785,-0.09302,-0.062819,-0.22893,0.4204,0.042886,-0.13832,-0.062819,-0.15342,0.4204,0.088188,-0.12322,-0.062819,-0.16852 -0.20844,-0.30639,-0.22803,-0.22803,-0.2868,-0.11049,-0.14967,-0.13008,-0.16926,-0.20844,0.085412,-0.051717,-0.051717,-0.071307,-0.032127,0.16377,0.22254,0.14418,0.085412,0.085412,0.26172,0.26172,0.34008,0.28131,0.3009 -0.26997,-0.26997,-0.28087,-0.27152,-0.27464,-0.19674,-0.1983,-0.20453,-0.19986,-0.21544,0.01047,0.060325,0.13511,0.15692,0.21612,0.17873,0.17561,0.17873,0.19119,0.20366,0.17094,0.16471,0.16627,0.17406,0.19898 -0.22041,-0.16586,-0.029461,0.21605,0.27061,-0.24769,-0.16586,-0.1113,0.21605,0.35244,-0.22041,-0.16586,0.052375,0.18877,0.32516,-0.30225,-0.16586,-0.05674,0.025097,0.24333,-0.19313,-0.1113,-0.05674,0.052375,0.27061 -0.10621,-0.088389,0.00071281,0.089815,0.3393,-0.28441,-0.12403,-0.034928,0.018533,0.3393,-0.30223,-0.088389,-0.052748,0.12546,0.30366,-0.32005,-0.14185,0.054174,0.1611,0.2502,-0.32005,-0.17749,0.00071281,0.071994,0.28584 0.1639,0.1637,0.13519,-0.24445,-0.24244,0.1633,0.1633,0.13499,-0.24304,-0.24304,0.1629,0.2155,0.12194,-0.24384,-0.24304,0.21811,0.2161,0.12455,-0.24384,-0.24304,0.15446,0.14804,0.14643,-0.24284,-0.24284 0.15856,0.16942,0.15639,-0.21721,-0.26282,0.16291,0.16508,0.16074,-0.22807,-0.24762,0.16942,0.16725,0.16074,-0.24762,-0.24327,0.16508,0.17377,0.13684,-0.23893,-0.25848,0.16291,0.17811,0.15856,-0.24327,-0.25848 -0.32936,-0.2886,-0.18669,-0.24784,-0.20707,-0.14593,-0.12555,-0.12555,-0.22745,-0.20707,-0.003261,-0.044023,-0.003261,0.01712,-0.023642,0.15979,0.22093,0.078264,0.18017,0.11903,0.30246,0.30246,0.30246,0.22093,0.26169 -0.2118,-0.29321,-0.2599,-0.2229,-0.31171,-0.1082,-0.1563,-0.1933,-0.1711,-0.1711,0.069416,-0.00088806,-0.03789,-0.045291,-0.00088806,0.29513,0.13232,0.10642,0.099018,0.12122,0.29883,0.30623,0.25443,0.23593,0.26553 -0.29957,-0.29957,-0.29957,-0.26315,-0.26315,-0.14177,-0.068944,-0.14177,-0.14177,-0.17819,-0.0082538,-0.0082538,0.076712,-0.0082538,0.02816,0.11313,0.076712,0.16168,0.076712,0.16168,0.30733,0.30733,0.30733,0.23451,0.27092 0.30651,0.1041,0.046265,-0.18506,-0.27181,0.19084,0.1041,0.13301,-0.15615,-0.21398,0.30651,0.13301,0.075181,-0.15615,-0.18506,0.27759,0.13301,-0.011566,-0.30072,-0.35856,0.1041,0.21976,0.075181,-0.069398,-0.30072 -0.3573,-0.3441,-0.31112,-0.32431,-0.27153,-0.15938,-0.13959,-0.13959,-0.13959,-0.1198,0.091303,0.11109,0.12429,0.091303,0.11109,0.13748,0.18366,0.19686,0.21665,0.21005,0.13089,0.17706,0.17706,0.15727,0.19026 -0.26063,-0.2937,-0.22755,-0.26063,-0.22755,-0.21102,-0.095255,-0.11179,-0.21102,-0.12833,-0.045643,-0.06218,-0.045643,0.0039689,0.020506,0.13627,0.13627,0.053581,0.20242,0.16934,0.26857,0.31818,0.25203,0.31818,0.30164 -0.24624,-0.32645,-0.28634,-0.26629,-0.24624,-0.24624,-0.16603,-0.16603,-0.085823,-0.085823,0.03449,-0.0056146,-0.025667,0.03449,0.03449,0.13475,0.13475,0.19491,0.074594,0.1147,0.27511,0.27511,0.27511,0.31522,0.25506 0.32856,0.013782,-0.069016,-0.12587,-0.16822,0.33162,0.013782,-0.0652,-0.11938,-0.17509,0.33429,0.0061507,-0.081988,-0.12358,-0.17661,0.33848,-0.0041513,-0.086186,-0.13808,-0.17356,0.54033,-0.011019,-0.081225,-0.12739,-0.18043 -0.28233,-0.27458,-0.26424,-0.27199,-0.26941,-0.20997,-0.21772,-0.20738,-0.21772,-0.2203,0.1467,0.14411,0.1467,0.14411,0.1467,0.15962,0.1622,0.17771,0.16737,0.16737,0.16479,0.17513,0.1803,0.17513,0.17771 0.3304,0.08475,0.023337,-0.068783,-0.22232,0.20758,0.14616,0.023337,-0.038076,-0.34514,0.23828,0.17687,0.023337,-0.09949,-0.34514,0.39182,0.11546,0.11546,-0.1302,-0.31444,0.054044,0.11546,-0.068783,-0.09949,-0.31444 0.25529,0.2376,-0.15887,-0.1642,-0.1642,0.25192,0.23703,-0.16392,-0.1628,-0.1642,0.25023,0.23591,-0.15718,-0.16083,-0.16617,0.25416,0.23928,-0.16392,-0.16252,-0.16673,0.24939,0.23788,-0.1642,-0.16392,-0.16504 0.19157,0.18797,0.18879,-0.077975,-0.30831,0.19042,0.19059,-0.080098,-0.080752,-0.3088,0.19075,0.195,-0.079445,-0.078955,-0.30945,0.24205,0.19451,-0.080752,-0.077484,-0.30913,0.23943,0.24254,-0.076831,-0.077321,-0.30831 0.20407,0.21637,0.20817,0.20407,0.20817,0.15486,0.17946,0.19177,0.16716,0.14666,0.13025,0.10975,0.097442,0.097442,0.085139,-0.22244,-0.23065,-0.19374,-0.21424,-0.19784,-0.27166,-0.26345,-0.25935,-0.27576,-0.27166 -0.17157,-0.15533,-0.17157,0.12088,0.31585,-0.17157,-0.17157,-0.074088,0.16962,0.38084,-0.22032,-0.15533,-0.12283,0.12088,0.3321,-0.17157,-0.17157,-0.074088,0.12088,0.28336,-0.22032,-0.17157,-0.074088,0.16962,0.28336 0.36229,0.10186,-0.01389,-0.01389,-0.27432,0.33335,0.1308,-0.042827,-0.12964,-0.21645,0.33335,0.015047,-0.1007,-0.15858,-0.27432,0.30442,-0.1007,-0.071764,-0.042827,-0.15858,0.36229,0.10186,-0.1007,-0.071764,-0.27432 -0.16788,-0.1717,-0.18317,-0.2061,-0.25197,-0.21757,-0.21757,-0.22904,-0.22904,-0.24815,-0.053207,-0.068497,-0.034096,-0.034096,0.0079505,0.222,0.222,0.21818,0.222,0.23729,0.24494,0.24494,0.22965,0.22965,0.23347 0.17382,0.17382,0.17607,-0.21856,-0.25238,0.16592,0.16818,0.16931,-0.22983,-0.25013,0.16141,0.16141,0.16367,-0.23434,-0.25915,0.16141,0.1569,0.15239,-0.23998,-0.25915,0.15465,0.1569,0.15014,-0.23885,-0.26366 0.30904,0.13844,-0.15403,-0.22715,-0.30027,0.18718,0.089691,0.016573,-0.17841,-0.17841,0.30904,0.089691,0.089691,-0.17841,-0.080917,0.2603,0.16281,-0.10529,-0.080917,-0.25152,0.38216,0.21155,-0.12966,-0.12966,-0.25152 -0.28996,-0.14352,-0.070293,0.27141,0.29582,-0.24114,-0.21674,0.076151,0.076151,0.29582,-0.28996,-0.14352,-0.021478,0.027336,0.34463,-0.21674,-0.094701,0.0029289,0.051744,0.247,-0.21674,-0.14352,-0.021478,0.10056,0.32022 0.18299,0.20956,-0.15306,-0.19035,-0.21972,0.21282,0.24265,-0.14421,-0.17497,-0.2034,0.22167,0.26549,-0.13582,-0.15679,-0.19082,0.25011,0.27294,-0.12417,-0.14701,-0.17171,0.26455,0.29718,-0.11438,-0.12929,-0.16425 0.17112,0.16216,0.15184,-0.2418,-0.24808,0.1765,0.16171,0.14915,-0.24359,-0.24808,0.18009,0.16664,0.1496,-0.24449,-0.24583,0.18278,0.1635,0.14826,-0.24359,-0.24583,0.17874,0.15947,0.14512,-0.2409,-0.24449 0.15032,0.069354,0.072874,-0.0098574,-0.37247,0.18729,0.13272,0.10104,-0.082027,-0.36367,0.18553,0.13272,0.1116,0.0077451,-0.35134,0.17849,0.13624,0.11512,0.04647,-0.41823,0.16441,0.13624,0.11512,-0.082027,-0.36367 0.33767,0.15315,0.014761,-0.16976,-0.28508,0.33767,0.22234,-0.077498,-0.23895,-0.23895,0.15315,0.24541,0.014761,-0.031368,-0.28508,0.083956,0.13009,0.083956,-0.10056,-0.23895,0.19928,0.15315,0.014761,-0.12363,-0.35427 0.1847,0.18451,-0.16146,-0.16328,-0.16675,0.29297,0.18233,-0.16182,-0.16182,-0.16401,0.2937,0.28149,-0.16292,-0.16018,-0.16182,0.26344,0.26399,-0.16146,-0.16073,-0.16255,0.26053,0.2186,-0.15836,-0.15745,-0.16164 -0.20834,-0.18349,-0.18349,-0.19902,-0.19902,-0.19902,-0.19591,-0.19591,-0.18659,-0.19902,-0.068575,-0.093422,-0.080999,-0.093422,-0.11516,0.25442,0.2389,0.24821,0.242,0.2389,0.22958,0.23579,0.23579,0.24821,0.22958 0.24146,0.17494,0.075164,-0.05787,-0.32394,0.19157,0.075164,0.0086472,-0.091128,-0.3572,0.17494,0.2082,0.10842,-0.10776,-0.27405,0.19157,0.2082,0.10842,-0.10776,-0.37382,0.14168,0.17494,-0.007982,0.0086472,-0.39045 0.3794,0.01444,-0.1363,-0.14424,-0.13234,0.35956,0.069977,-0.14821,-0.14821,-0.16011,0.3675,0.069977,-0.14027,-0.1363,-0.14424,0.36353,0.054109,-0.15217,-0.16407,-0.14821,0.32386,0.16518,-0.13234,-0.14424,-0.1363 -0.26683,-0.26683,-0.32621,-0.26683,-0.32621,-0.088678,-0.22724,-0.14806,-0.14806,-0.20744,0.030087,0.049882,0.08947,0.12906,0.049882,0.14885,0.20824,0.14885,0.14885,0.10926,0.22803,0.24782,0.16865,0.26762,0.24782 -0.25939,-0.1472,0.1445,0.099627,0.27913,-0.23695,-0.16963,-0.012566,0.12207,0.16694,-0.34914,-0.16963,-0.035004,0.1445,0.27913,-0.30427,-0.035004,0.05475,0.12207,0.32401,-0.21451,-0.21451,-0.012566,0.099627,0.32401 0.38818,0.016579,-0.16922,-0.19781,-0.25498,0.31672,0.088042,-0.083468,-0.15493,-0.16922,0.33101,0.1595,-0.12635,-0.12635,-0.19781,0.30243,0.10233,-0.16922,-0.12635,-0.12635,0.33101,0.18809,-0.097761,-0.12635,-0.097761 -0.29785,-0.25352,-0.25352,-0.25352,-0.31262,-0.12056,-0.10578,-0.10578,-0.2092,-0.13533,0.041959,0.041959,-0.017138,-0.031912,-0.061461,0.1897,0.1306,0.056733,0.11583,0.14538,0.36699,0.29312,0.23402,0.27835,0.26357 0.36935,-0.044639,-0.11569,-0.15642,-0.15927,0.36556,-0.042744,-0.10337,-0.14695,-0.15074,0.39682,0.047253,-0.099584,-0.13937,-0.13842,0.38829,0.078515,-0.11758,-0.13085,-0.13842,0.38829,0.0036757,-0.10716,-0.12327,-0.12327 -0.19667,-0.19667,-0.18144,-0.288,-0.21189,-0.19667,-0.21189,-0.19667,-0.21189,-0.21189,-0.044448,-0.044448,-0.044448,-0.029226,0.0012177,0.22955,0.13821,0.22955,0.1991,0.15344,0.32088,0.22955,0.1991,0.27521,0.29043 0.17732,0.18627,0.18627,-0.26652,-0.28441,0.20237,0.20416,-0.1305,-0.22177,-0.26652,0.22564,0.22564,0.096785,-0.22177,-0.24683,0.23996,0.15047,0.030567,-0.18419,-0.21641,0.27754,0.13079,0.01446,-0.12334,-0.18598 -0.19039,-0.18563,-0.18246,-0.18722,-0.17928,-0.18246,-0.18246,-0.18246,-0.18404,-0.18087,-0.1253,-0.11895,-0.11577,-0.11895,-0.11577,0.24145,0.23828,0.24304,0.23987,0.24145,0.24304,0.2478,0.24463,0.24463,0.2478 0.25219,0.23985,-0.15875,-0.16223,-0.16918,0.24471,0.24419,-0.1591,-0.1624,-0.16866,0.24193,0.24263,-0.15858,-0.16275,-0.16761,0.24385,0.24471,-0.15806,-0.16292,-0.16918,0.24645,0.24854,-0.15962,-0.16171,-0.16831 -0.31224,-0.15293,0.032923,0.19223,0.21878,-0.20603,-0.046729,0.0063722,0.086024,0.32498,-0.31224,-0.17948,0.0063722,0.16568,0.11258,-0.25913,-0.15293,0.032923,0.24533,0.27188,-0.25913,-0.20603,-0.07328,0.13913,0.32498 0.21705,0.21746,0.05134,-0.024534,-0.35512,0.20198,0.20143,0.052308,-0.0302,-0.3612,0.1865,0.1883,0.046503,-0.044435,-0.34392,0.17489,0.13164,0.050925,-0.05867,-0.3659,0.080639,0.16439,0.055763,-0.063508,-0.37364 0.19242,0.13823,0.096543,-0.086872,-0.41757,0.17436,0.14934,0.093764,-0.0076701,-0.36477,0.17297,0.15073,0.096543,-0.091041,-0.35088,0.15629,0.13545,0.1021,-0.052134,-0.38145,0.14934,0.13267,0.10488,0.039573,-0.33281 0.28703,0.28703,0.25259,0.25259,0.14926,0.25259,0.25259,0.21815,0.1837,0.1837,0,-0.068888,-0.10333,-0.068888,-0.045925,-0.21815,-0.17222,-0.17222,-0.17222,-0.21815,-0.17222,-0.21815,-0.25259,-0.21815,-0.21815 -0.34279,-0.054804,0.04119,0.10228,0.22445,-0.34279,-0.054804,0.032463,0.11973,0.27681,-0.36024,-0.028624,0.023737,0.15464,0.26808,-0.33406,-0.080984,0.058643,0.111,0.19827,-0.35151,-0.054804,0.023737,0.11973,0.25063 0.24897,0.25586,-0.16437,-0.16093,-0.15748,0.23519,0.25241,-0.15404,-0.16609,-0.17126,0.2438,0.24208,-0.14543,-0.17126,-0.1592,0.24552,0.25241,-0.1437,-0.16437,-0.16954,0.23519,0.23519,-0.1592,-0.16954,-0.1902 0.1882,0.14449,0.075213,-0.057564,-0.18622,0.1816,0.14449,0.063667,-0.076532,-0.39817,0.18407,0.14779,0.087584,-0.078182,-0.39404,0.19809,0.15851,0.085109,-0.024576,-0.39982,0.19232,0.15438,0.058719,-0.057564,-0.39157 0.23049,0.14142,0.073727,0.0048455,-0.40013,0.19249,0.12955,0.070164,-0.075912,-0.35975,0.23762,0.11173,0.070164,-0.0082183,-0.35381,0.23524,0.10342,0.044037,-0.015344,-0.37044,0.17824,0.085603,0.059476,-0.040284,-0.34431 0.24009,0.24977,0.29817,0.28849,0.27881,0.26913,0.24009,0.20136,0.12392,0.10455,0.046469,-0.030979,-0.10843,-0.14715,-0.10843,-0.16651,-0.19556,-0.17619,-0.16651,-0.16651,-0.20524,-0.20524,-0.24396,-0.2246,-0.19556 0.19718,0.22953,0.11088,-0.19113,-0.22349,0.19718,0.22953,0.089311,-0.15878,-0.24507,0.25111,0.22953,0.046166,-0.22349,-0.18035,0.16482,0.20796,-0.018553,-0.19113,-0.27743,0.21875,0.19718,-0.15878,-0.28821,-0.21271 0.24985,0.2385,-0.16708,-0.16283,-0.16638,0.25233,0.23496,-0.1646,-0.16212,-0.16531,0.25091,0.2385,-0.16425,-0.16318,-0.16531,0.25056,0.24134,-0.1607,-0.16318,-0.16389,0.25268,0.23921,-0.15609,-0.15999,-0.16389 0.2772,0.28903,0.24173,0.31268,0.32451,0.11164,0.15894,0.17077,0.20625,0.19442,-0.077579,-0.053927,-0.077579,-0.030275,-0.089405,-0.19584,-0.13671,-0.16036,-0.14854,-0.18401,-0.23132,-0.23132,-0.27862,-0.25497,-0.13671 0.20962,0.18339,-0.11176,-0.19703,-0.22327,0.22274,0.28833,-0.13144,-0.22983,-0.24294,0.18995,0.18995,0.052209,-0.21015,-0.2495,0.19651,0.22274,0.11124,-0.20359,-0.21015,0.20962,0.2293,0.11124,-0.19703,-0.21015 -0.27202,-0.27202,-0.27066,-0.27474,-0.27746,-0.20403,-0.21083,-0.21899,-0.21355,-0.22171,0.14953,0.14817,0.15089,0.14817,0.14273,0.16721,0.16721,0.17265,0.16449,0.16177,0.17537,0.17808,0.17537,0.16721,0.16721 0.29359,0.2708,0.020059,-0.25347,-0.41303,0.17962,0.13403,0.065647,-0.11671,-0.27627,0.29359,0.11124,0.020059,-0.23068,-0.20788,0.2708,0.13403,0.020059,-0.048324,-0.25347,0.088442,0.15682,0.088442,-0.11671,-0.23068 0.28033,0.29801,0.28475,0.29801,0.28475,0.20074,0.17863,0.18747,0.18747,0.20074,-0.12646,-0.10435,-0.13088,-0.10435,-0.13088,-0.20162,-0.19278,-0.15741,-0.17067,-0.17952,-0.18394,-0.17509,-0.17952,-0.18836,-0.17509 -0.28954,-0.19772,0.031832,0.15426,0.16956,-0.27424,-0.19772,0.077742,0.18487,0.12365,-0.28954,-0.044687,0.0012243,0.21547,0.24608,-0.32015,-0.19772,0.077742,0.21547,0.24608,-0.27424,-0.15181,0.031832,0.21547,0.24608 -0.34063,-0.32282,-0.25156,-0.32282,-0.26937,-0.14466,-0.12685,-0.091216,-0.037769,-0.18029,0.015678,-0.0021379,-0.055585,0.033493,0.033493,0.12257,0.19383,0.1582,0.17602,0.14039,0.24728,0.30073,0.22947,0.24728,0.24728 -0.28054,-0.26225,0.04463,0.14218,0.27022,-0.27038,-0.26225,0.083244,0.13608,0.26615,-0.27038,-0.25006,0.064953,0.1625,0.24176,-0.26631,-0.063083,0.040565,0.12795,0.23363,-0.27444,-0.024469,0.06292,0.11576,0.2316 0.25715,0.23614,0.22914,0.21513,0.22213,0.20112,0.22213,0.24314,0.22914,0.22914,-0.050981,-0.029973,-0.0019608,-0.036976,-0.029973,-0.19804,-0.14202,-0.16303,-0.19804,-0.19804,-0.22605,-0.24706,-0.25407,-0.24706,-0.26107 0.31325,0.28851,0.27614,0.25139,0.17716,0.22665,0.27614,0.18953,0.18953,0.12768,-0.11976,-0.020784,-0.0579,-0.13213,-0.082643,-0.18162,-0.11976,-0.15687,-0.10739,-0.16924,-0.26822,-0.19399,-0.26822,-0.20636,-0.2311 0.1894,0.10823,0,-0.08117,-0.35174,0.24351,0.32468,0.16234,-0.16234,-0.40585,0.24351,0.054113,0,-0.10823,-0.21645,0.21645,0.054113,-0.027057,-0.10823,-0.27057,0.29762,0.13528,0.027057,-0.054113,-0.27057 -0.32962,-0.18018,0.011955,0.097349,0.26814,-0.30827,-0.0093933,-0.030742,0.1187,0.33218,-0.26557,-0.05209,0.011955,0.1187,0.28948,-0.18018,-0.24423,-0.073439,0.1187,0.26814,-0.30827,-0.030742,-0.05209,0.14005,0.28948 -0.20926,-0.15655,-0.20926,-0.22244,-0.18291,-0.22244,-0.15655,-0.10384,-0.19608,-0.20926,-0.14337,-0.077485,-0.064307,-0.077485,-0.05113,0.14654,0.13336,0.2256,0.19925,0.093825,0.31785,0.39691,0.30467,0.25196,0.21242 0.19532,0.17053,0.10857,-0.10212,-0.28802,0.12096,0.15814,0.17053,-0.077335,-0.3252,0.15814,0.071386,0.14575,-0.1393,-0.38717,0.19532,0.2325,0.13335,-0.21366,-0.3376,0.12096,0.13335,0.17053,-0.1393,-0.27563 -0.19953,-0.19953,-0.19321,-0.2311,-0.21216,-0.13007,-0.16164,-0.13007,-0.18059,-0.15533,-0.060616,-0.085873,-0.079559,-0.098502,-0.092187,0.090925,0.10987,0.1225,0.097239,0.090925,0.30561,0.33086,0.36244,0.33718,0.36244 0.15054,0.14259,0.13198,-0.20486,-0.27912,0.14259,0.13198,0.1638,-0.061639,-0.27382,0.16646,0.15054,0.17707,-0.22077,-0.28973,0.15585,0.18502,0.19298,-0.26321,-0.3083,0.1585,0.17441,0.1585,-0.18895,-0.29239 0.24236,0.2302,-0.16453,-0.16244,-0.16244,0.28719,0.22811,-0.16244,-0.16244,-0.16244,0.28049,0.23649,-0.16453,-0.16369,-0.16244,0.23607,0.23439,-0.16034,-0.16328,-0.16328,0.23607,0.23314,-0.16202,-0.16579,-0.16244 -0.134,-0.17989,0.095453,0.21018,0.25607,-0.34051,-0.134,-0.04222,0.16429,0.27902,-0.34051,-0.065165,0.072508,0.049562,0.27902,-0.29462,-0.15695,0.026617,0.16429,0.25607,-0.29462,-0.15695,-0.065165,0.14134,0.21018 -0.24717,-0.23446,-0.29801,-0.29547,-0.2853,-0.10737,-0.092118,-0.2243,-0.18363,-0.11245,0.057854,-0.026029,-0.09466,0.060396,-0.046364,0.21037,0.18495,0.14936,0.17224,0.088356,0.24595,0.30188,0.27392,0.2485,0.25358 0.42566,0.25375,0.081832,-0.036599,-0.16076,0.34161,0.19644,0.026437,-0.095814,-0.19705,0.26903,0.079921,-0.013677,-0.17222,-0.25818,0.20408,0.072281,-0.0557,-0.17031,-0.28301,0.10857,0.041718,-0.10345,-0.23144,-0.32312 0.23421,0.27595,0.29683,0.3177,0.29683,0.15071,0.17158,0.18202,0.19246,0.18202,-0.11021,-0.047593,-0.12065,-0.068467,-0.0058447,-0.21458,-0.17284,-0.14153,-0.14153,-0.14153,-0.28764,-0.2459,-0.20415,-0.1624,-0.23546 0.1744,0.14352,0.14632,-0.053004,-0.3548,0.18703,0.12527,0.1379,-0.022123,-0.36463,0.18422,0.11404,0.11965,-0.031949,-0.37586,0.19265,0.08456,0.091578,-0.067041,-0.37586,0.20107,0.07333,0.080349,-0.03616,-0.37446 0.25005,0.25692,-0.15975,-0.16735,-0.16988,0.24607,0.24824,-0.1536,-0.16735,-0.16699,0.24318,0.24932,-0.15505,-0.16771,-0.1688,0.23739,0.24498,-0.15578,-0.16446,-0.16626,0.23522,0.23703,-0.15397,-0.16626,-0.16518 0.21458,0.21258,0.075302,-0.019992,-0.20991,0.22924,0.19259,0.07197,-0.17326,-0.22258,0.2419,0.18726,-0.16926,-0.19325,-0.24057,0.25656,0.22724,-0.16993,-0.18859,-0.22657,0.27522,0.20858,-0.15993,-0.18859,-0.23057 -0.22893,-0.16581,0.023566,0.1919,0.42335,-0.27101,-0.16581,-0.039558,0.17086,0.14982,-0.24997,-0.081641,-0.10268,0.1919,0.25502,-0.27101,-0.10268,0.044608,0.14982,0.27606,-0.3131,-0.18685,0.023566,0.065649,0.21294 0.2474,0.22983,0.23569,0.24154,0.22983,0.2064,0.22397,0.24154,0.21812,0.21226,-0.057164,-0.010308,-0.010308,-0.033736,-0.010308,-0.2153,-0.20945,-0.22116,-0.19188,-0.20359,-0.22116,-0.25045,-0.20945,-0.22702,-0.2153 0.16952,0.17481,0.17349,-0.21263,-0.24701,0.16952,0.16688,0.16688,-0.2404,-0.24965,0.1682,0.15894,0.16423,-0.2166,-0.24965,0.16026,0.16291,0.15762,-0.24569,-0.26023,0.14572,0.15762,0.14836,-0.26023,-0.26288 -0.3007,-0.27993,-0.27993,-0.3007,-0.25916,-0.23147,-0.18994,-0.21071,-0.16918,-0.16918,0.16308,0.14232,0.14232,0.14232,0.086941,0.22538,0.18385,0.18385,0.14232,0.10771,0.20462,0.19769,0.20462,0.15616,0.10771 0.15632,0.14365,0.12463,-0.014834,-0.36032,0.15315,0.15315,0.1278,-0.15113,-0.35081,0.15315,0.15949,0.14365,-0.052869,-0.35715,0.16266,0.13731,0.14048,-0.052869,-0.34447,0.15632,0.14048,0.13731,-0.14479,-0.36032 0.26751,0.12936,0.015938,-0.074222,-0.4814,0.25006,0.12936,-0.0015124,-0.085855,-0.4814,0.23261,0.13082,-0.0044207,-0.10331,-0.17165,0.2646,0.125,0.020301,-0.084401,-0.18329,0.24715,0.12355,0.0028502,-0.081493,-0.18619 -0.27879,-0.27879,-0.34646,-0.24496,-0.36338,-0.075788,-0.10962,-0.17729,-0.10962,-0.12654,0.076465,0.042631,-0.025037,-0.0081202,-0.025037,0.19488,0.17797,0.14413,0.16105,0.14413,0.24564,0.2118,0.29639,0.19488,0.27947 0.25449,0.24972,-0.12011,-0.18334,-0.15471,0.24972,0.24495,-0.1225,-0.17619,-0.13682,0.24734,0.24495,-0.14636,-0.18573,-0.16425,0.24256,0.23541,-0.18334,-0.1905,-0.18334,0.23421,0.23541,-0.17857,-0.17619,-0.13682 -0.26392,-0.26168,-0.26243,-0.26616,-0.26168,-0.22057,-0.22206,-0.22655,-0.2243,-0.22281,0.13075,0.12701,0.13673,0.13972,0.14121,0.15841,0.15766,0.1614,0.18158,0.17784,0.2055,0.15691,0.15766,0.22045,0.17934 0.26287,0.11426,-0.14993,-0.29853,-0.19946,0.21333,0.13077,-0.14993,-0.14993,-0.10039,0.26287,0.22984,0.13077,-0.13342,-0.26551,0.32892,0.1638,-0.050856,-0.10039,-0.29853,0.26287,0.19682,-0.034345,-0.1169,-0.249 -0.23203,-0.23203,-0.19608,-0.256,-0.27997,-0.27997,-0.16012,-0.19608,-0.18409,-0.24402,0.031641,0.055611,0.019656,0.031641,0.0076704,0.18745,0.19943,0.21142,0.15149,0.12752,0.27134,0.23539,0.19943,0.27134,0.25936 0.24585,0.24798,-0.16112,-0.16426,-0.1663,0.24713,0.24645,-0.16205,-0.16494,-0.16579,0.24449,0.24152,-0.1618,-0.16562,-0.16655,0.24662,0.24237,-0.15976,-0.16426,-0.16468,0.24475,0.24212,-0.15508,-0.16281,-0.16426 0.14293,0.13508,0.14686,-0.2696,-0.26371,0.12329,0.14293,0.19401,-0.18513,-0.25389,0.17829,0.12329,0.14293,-0.19299,-0.2696,0.23526,0.15668,0.14293,-0.22049,-0.27353,0.19008,0.19597,0.16847,-0.21853,-0.27157 0.15726,0.13775,0.074337,-0.2671,-0.311,0.17677,0.14262,0.13287,-0.28662,-0.32564,0.18652,0.14262,0.14262,-0.06224,-0.311,0.15238,0.18165,0.1475,-0.076873,-0.28662,0.21091,0.15238,0.13287,-0.032973,-0.311 0.39937,0.38282,-0.09322,-0.17187,-0.18429,0.28761,0.2131,-0.09736,-0.15117,-0.19257,0.25449,0.043381,-0.10978,-0.18843,-0.19257,0.22966,0.14687,-0.11806,-0.15945,-0.17601,0.20482,0.12203,-0.09736,-0.17601,-0.17601 0.16749,0.13987,0.090151,-0.020328,-0.35453,0.13434,0.16749,0.087389,-0.034138,-0.34624,0.15644,0.16196,0.095675,0.012816,-0.349,0.18406,0.18406,0.1012,-0.14185,-0.33795,0.19511,0.18406,0.090151,-0.22195,-0.34624 -0.21078,-0.19242,-0.17406,-0.13734,-0.17406,-0.19242,-0.17406,-0.24751,-0.17406,-0.1557,-0.082257,-0.045535,-0.10062,-0.17406,-0.045535,0.1748,0.13807,0.082992,0.11971,0.19316,0.30332,0.28496,0.34005,0.30332,0.34005 -0.2939,-0.033351,0.01876,0.17509,0.25326,-0.24179,-0.18968,-0.059406,0.096925,0.27931,-0.21574,-0.13757,-0.0072954,0.096925,0.25326,-0.34601,-0.085461,-0.059406,0.14904,0.38353,-0.18968,-0.21574,0.01876,0.01876,0.33142 0.22553,0.14054,0.029576,-0.041875,-0.38235,0.2304,0.11672,0.034989,-0.05649,-0.37152,0.26342,0.13188,0.033907,-0.03159,-0.39209,0.22336,0.12755,0.020374,-0.049994,-0.41807,0.23202,0.10103,0.024163,-0.064609,-0.12686 -0.28813,-0.031835,0.076079,0.23795,0.23795,-0.28813,-0.058813,0.089568,0.15701,0.25144,-0.26115,-0.16673,0.022122,0.1705,0.18399,-0.3286,-0.16673,-0.045324,0.19748,0.22446,-0.36906,-0.1937,0.022122,0.15701,0.1705 -0.25467,-0.052907,-0.052907,0.12644,0.21611,-0.27709,-0.20983,0.059184,0.12644,0.28337,-0.34434,-0.20983,-0.0080705,0.081602,0.28337,-0.27709,-0.12016,-0.0080705,0.059184,0.23853,-0.27709,-0.0080705,0.059184,0.23853,0.3282 0.12597,0.12597,0.02652,-0.20553,-0.23868,0.39117,0.12597,-0.03978,-0.20553,-0.23868,0.19227,0.19227,-0.072929,0.092819,-0.30498,0.32487,0.19227,-0.072929,-0.20553,-0.20553,0.25857,0.15912,-0.0066299,-0.13923,-0.27183 -0.19554,-0.21565,-0.18212,-0.17542,-0.16871,-0.21565,-0.21565,-0.22236,-0.21565,-0.20224,-0.054718,-0.034601,-0.094952,-0.088246,-0.088246,0.24703,0.24033,0.22021,0.25374,0.21351,0.22021,0.23362,0.22692,0.24703,0.26715 0.28688,0.066579,-0.031331,0.066579,-0.32506,0.28688,0.11553,0.017624,-0.12924,-0.22715,0.38479,0.11553,0.042101,-0.25163,-0.27611,0.23792,0.11553,-0.055809,-0.22715,-0.10476,0.2624,0.066579,-0.031331,-0.055809,-0.34954 0.38793,0.06767,-0.14709,-0.12072,-0.13579,0.33895,-0.037829,-0.13579,-0.12072,-0.13579,0.38793,0.056366,-0.12826,-0.11318,-0.13956,0.3804,0.06767,-0.10188,-0.13579,-0.15086,0.38793,-0.01899,-0.14333,-0.15086,-0.1584 0.28024,0.3334,0.3334,0.3015,0.3015,0.1633,0.1314,0.14203,0.1314,0.1633,-0.091854,-0.13438,-0.070591,-0.070591,0.0038272,-0.21943,-0.18753,-0.19817,-0.15564,-0.15564,-0.21943,-0.18753,-0.18753,-0.21943,-0.18753 0.15904,0.0056956,-0.04907,-0.12355,-0.1827,0.42849,0.014458,-0.053451,-0.11479,-0.1827,0.39125,0.0056956,-0.068786,-0.12793,-0.18927,0.39782,0.018839,-0.060023,-0.14108,-0.20241,0.43068,0.058271,-0.066595,-0.13231,-0.21556 -0.27279,-0.13151,0.073977,0.21525,0.18957,-0.337,-0.092984,0.08682,0.24094,0.16388,-0.28563,-0.11867,0.035447,0.17672,0.18957,-0.32416,-0.14436,0.035447,0.22809,0.18957,-0.32416,-0.20857,0.022604,0.17672,0.21525 -0.17294,-0.17294,-0.07355,0.29089,0.29089,-0.22264,-0.10668,-0.04042,0.20806,0.29089,-0.20607,-0.17294,-0.10668,0.17493,0.25776,-0.20607,-0.20607,-0.056985,0.1418,0.24119,-0.22264,-0.20607,-0.17294,0.17493,0.27432 -0.15292,-0.15292,-0.20728,-0.20728,-0.24351,-0.15292,-0.17104,-0.26163,-0.11668,-0.17104,-0.15292,-0.1348,-0.098565,-0.062328,-0.044209,0.24569,0.17321,0.17321,0.13698,0.17321,0.33628,0.22757,0.28192,0.33628,0.24569 0.18894,0.13853,0.13089,-0.2495,-0.32588,0.20116,0.14617,0.1202,-0.22506,-0.29686,0.18894,0.15228,0.12478,-0.23422,-0.277,0.19505,0.13853,0.11103,-0.21131,-0.28005,0.19811,0.15075,0.10798,0.066729,-0.26019 -0.23956,-0.27564,-0.27564,-0.23956,-0.32976,-0.13132,-0.1674,-0.1674,-0.1674,-0.11329,0.031027,0.031027,-0.005051,-0.02309,0.067106,0.067106,0.1573,0.10318,0.1573,0.049066,0.30161,0.30161,0.31965,0.30161,0.2475 0.1847,0.16043,0.051211,-0.06104,-0.40993,0.19077,0.1665,0.069413,-0.021601,-0.2006,0.17863,0.14222,0.051211,-0.033736,-0.31285,0.19683,0.16043,0.069413,-0.16116,-0.39779,0.2029,0.16043,0.087616,-0.06104,-0.41296 -0.32533,-0.24338,-0.3663,-0.30484,-0.24338,-0.20241,-0.14095,-0.079488,-0.18192,-0.14095,0.0024584,0.0024584,0.063918,0.084405,0.063918,0.16635,0.16635,0.16635,0.18684,0.20732,0.22781,0.22781,0.2483,0.22781,0.18684 -0.14797,-0.16864,-0.065306,0.10003,0.24469,-0.20997,-0.23064,0.01736,0.22402,0.24469,-0.27197,-0.04464,-0.10664,0.12069,0.28602,-0.27197,-0.20997,-0.065306,0.12069,0.28602,-0.27197,-0.14797,0.01736,0.18269,0.36869 -0.2491,-0.11133,-0.11133,0.13668,0.27446,-0.19399,-0.16644,-0.056214,0.054009,0.30201,-0.22155,-0.11133,-0.0011022,0.19179,0.21934,-0.33177,-0.16644,-0.028658,0.10912,0.2469,-0.22155,-0.2491,0.10912,0.21934,0.35712 0.23356,0.14813,0.14813,-0.24038,-0.24701,0.16433,0.14371,0.14739,-0.24517,-0.24517,0.17317,0.14518,0.14518,-0.24443,-0.24443,0.17354,0.15034,0.14444,-0.23964,-0.24443,0.19047,0.17611,0.15549,-0.24406,-0.24443 0.37484,0.077985,-0.13062,-0.13864,-0.16271,0.41496,0.13415,-0.13864,-0.13864,-0.13864,0.35879,-0.034339,-0.10655,-0.13864,-0.16271,0.37484,-0.018293,-0.10655,-0.12259,-0.10655,0.33472,-0.0022465,-0.082478,-0.17876,-0.16271 0.25786,0.25162,-0.17009,-0.16442,-0.16669,0.24822,0.24255,-0.16726,-0.16442,-0.16782,0.23915,0.24199,-0.14855,-0.15762,-0.16952,0.23688,0.24199,-0.15705,-0.15762,-0.17406,0.24312,0.24482,-0.15932,-0.15422,-0.16952 0.23533,0.22988,-0.17516,-0.18471,-0.17516,0.23806,0.23669,-0.16834,-0.1738,-0.17107,0.24351,0.24215,-0.16016,-0.16289,-0.16289,0.25306,0.2476,-0.15198,-0.15743,-0.15743,0.26397,0.25579,-0.14652,-0.14925,-0.14925 -0.26706,-0.24032,-0.24032,-0.24032,-0.23141,-0.25815,-0.21358,-0.21358,-0.18684,-0.1601,-0.053128,0.00035656,0.027099,0.080583,0.053841,0.20538,0.16081,0.18755,0.18755,0.21429,0.18755,0.22321,0.26778,0.25886,0.24995 0.13736,0.094099,0.068653,-0.070027,-0.34866,0.16662,0.10937,0.082648,0.0114,-0.3652,0.17934,0.11446,0.10046,0.027939,-0.40973,0.18952,0.1399,0.11318,-0.095473,-0.36393,0.21369,0.14753,0.12591,0.010127,-0.37919 -0.27065,-0.34162,-0.23516,-0.28248,-0.24699,-0.22333,-0.10504,-0.16419,-0.11687,-0.1287,-0.01041,-0.045897,0.025078,0.025078,0.060565,0.096052,0.084223,0.11971,0.17885,0.20251,0.238,0.24983,0.3208,0.27349,0.29715 -0.35271,-0.18066,0.012904,0.12044,0.27098,-0.15915,-0.20216,0.012904,0.12044,0.314,-0.35271,-0.13764,-0.051616,0.22797,0.22797,-0.20216,-0.15915,0.055917,0.034411,0.3355,-0.26668,-0.073123,0.055917,0.14194,0.20646 0.23585,0.23747,-0.16143,-0.16338,-0.16403,0.23812,0.23747,-0.15948,-0.16338,-0.16403,0.24007,0.23812,-0.16013,-0.16435,-0.16597,0.24461,0.24267,-0.15948,-0.16565,-0.16533,0.27285,0.26052,-0.16013,-0.16533,-0.16565 0.33515,0.19717,-0.080377,-0.12796,-0.14223,0.38114,0.194,-0.096237,-0.14064,-0.15016,0.33515,0.019539,-0.11527,-0.15968,-0.15968,0.33991,-0.034384,-0.10893,-0.16602,-0.17236,0.36211,-0.042314,-0.11527,-0.17395,-0.17871 0.21904,0.15238,0.096566,-0.23753,-0.26845,0.20499,0.156,0.098172,-0.24516,-0.2548,0.22105,0.15278,0.10299,-0.24355,-0.26363,0.21543,0.14515,0.090944,0.049584,-0.27367,0.20177,0.14676,0.08974,-0.28331,-0.27327 -0.29168,-0.3088,-0.30024,-0.33447,-0.3088,-0.10339,-0.086271,-0.10339,-0.18897,-0.12051,0.067784,0.042108,0.067784,-0.026361,-0.060595,0.21328,0.17905,0.21328,0.16193,0.18761,0.23896,0.2304,0.19616,0.21328,0.22184 -0.24079,-0.12322,0.017871,0.0649,0.27653,-0.24079,-0.099701,-0.14673,0.0649,0.30004,-0.28782,-0.14673,0.017871,0.15896,0.27653,-0.31133,-0.17024,-0.029158,0.13544,0.3941,-0.21727,-0.052672,0.017871,0.017871,0.32356 -0.16684,-0.16684,-0.16684,-0.16684,-0.16684,-0.16684,-0.16684,-0.1361,-0.16684,-0.10535,-0.16684,-0.1361,-0.1361,-0.16684,-0.16684,0.13036,0.16111,0.16111,0.13036,0.16111,0.32508,0.31483,0.32508,0.32508,0.31483 -0.22186,-0.10809,-0.10809,0.091021,0.29013,-0.25031,-0.10809,-0.022755,0.17635,0.23324,-0.33564,-0.13653,-0.10809,0.11946,0.4039,-0.22186,-0.22186,-0.022755,0.2048,0.26168,-0.22186,-0.13653,0.091021,0.11946,0.23324 0.24997,0.24154,-0.15471,-0.16715,-0.16876,0.24796,0.24636,-0.15431,-0.16555,-0.16876,0.24796,0.24636,-0.16314,-0.16956,-0.16796,0.23552,0.23993,-0.16635,-0.16635,-0.16314,0.24997,0.24314,-0.16234,-0.15471,-0.15591 0.2591,0.25403,-0.1514,-0.16471,-0.16597,0.24072,0.23692,-0.16027,-0.16217,-0.16344,0.24009,0.24453,-0.16027,-0.16217,-0.16407,0.23882,0.24579,-0.16407,-0.16407,-0.16787,0.25466,0.23376,-0.16344,-0.16597,-0.16851 0.24589,0.24563,-0.16097,-0.16304,-0.16535,0.24512,0.24383,-0.16149,-0.1651,-0.1651,0.24847,0.24563,-0.16149,-0.16355,-0.16587,0.24409,0.24383,-0.15943,-0.16329,-0.16561,0.24203,0.24486,-0.16149,-0.16381,-0.16381 0.16688,0.1647,0.15815,-0.2237,-0.2477,0.17561,0.15379,0.15597,-0.22152,-0.24989,0.16688,0.1647,0.17997,-0.24116,-0.25643,0.16033,0.16252,0.1647,-0.24989,-0.24989,0.16252,0.16688,0.14288,-0.24989,-0.25643 0.28627,0.20107,0.11587,-0.13973,-0.25333,0.20107,0.20107,0.059072,-0.082928,-0.22493,0.25787,0.25787,-0.082928,-0.026128,-0.33853,0.25787,0.17267,-0.026128,-0.054528,-0.31013,0.087472,0.087472,-0.082928,-0.22493,-0.33853 -0.2995,-0.18939,-0.23343,-0.21141,-0.25545,-0.14534,-0.16737,-0.21141,-0.23343,-0.14534,-0.035235,0.0088088,0.0088088,0.052853,-0.079279,0.14094,0.20701,0.11892,0.18498,0.052853,0.27307,0.31712,0.33914,0.25105,0.25105 0.28149,0.22786,0.13252,-0.18925,-0.16541,0.3232,0.26957,-0.08795,-0.21308,-0.20712,0.25765,0.10869,-0.11774,-0.18329,-0.17137,0.23978,0.17423,-0.099867,-0.18329,-0.18329,0.24574,0.13252,-0.20116,-0.20712,-0.18329 0.37778,-0.01371,-0.068549,-0.11425,-0.1371,0.39149,-0.036559,-0.085305,-0.11729,-0.14928,0.38844,-0.016756,-0.094445,-0.131,-0.14928,0.39454,-0.030466,-0.091398,-0.13253,-0.15233,0.40368,-0.048746,-0.095968,-0.12948,-0.16147 0.29336,0.027035,0.006893,-0.14231,-0.19826,0.28664,0.030765,0.013607,-0.16096,-0.20273,0.30529,0.2956,-0.015487,-0.15648,-0.21467,0.39183,-0.051295,-0.052041,-0.15126,-0.20721,0.38213,-0.036375,-0.053533,-0.17588,-0.21467 0.25274,0.22476,-0.16939,-0.16817,-0.16452,0.23449,0.25517,-0.17547,-0.1633,-0.16817,0.25396,0.26004,-0.15479,-0.16817,-0.17303,0.24787,0.24666,-0.13411,-0.16695,-0.17182,0.21989,0.24909,-0.15114,-0.17668,-0.13897 -0.36906,-0.30925,-0.29928,-0.29429,-0.29429,-0.26937,-0.16469,-0.12482,-0.079954,-0.10986,0.084539,0.10448,0.12442,0.13937,0.11943,0.17925,0.17925,0.15931,0.16928,0.18423,0.17925,0.15931,0.17426,0.17426,0.18423 -0.15869,-0.15891,-0.16041,-0.15977,-0.16041,-0.15848,-0.15783,-0.15955,-0.15805,-0.15912,-0.15805,-0.15891,-0.15869,-0.15955,-0.15869,0.16948,0.16927,0.16691,0.16476,0.1639,0.29642,0.30179,0.31252,0.31596,0.32412 0.17052,0.17052,0.17052,-0.24307,-0.25316,0.17153,0.16648,0.1564,-0.23803,-0.25114,0.17355,0.16447,0.15438,-0.23601,-0.24509,0.16548,0.1564,0.15135,-0.23298,-0.25316,0.16043,0.16245,0.15337,-0.24004,-0.25517 0.19419,0.16258,0.14737,-0.24551,-0.24454,0.15872,0.15751,0.15196,-0.24406,-0.24454,0.19491,0.15582,0.14399,-0.24526,-0.24358,0.18888,0.16909,0.14689,-0.24333,-0.24551,0.16185,0.15847,0.15244,-0.24406,-0.2443 0.35519,-0.075451,-0.13739,-0.13149,-0.15509,0.35667,-0.01056,-0.11232,-0.14034,-0.15214,0.39059,-0.012034,-0.072501,-0.13592,-0.14919,0.40386,0.007138,-0.062178,-0.12412,-0.14034,0.42746,0.0086128,-0.066602,-0.12707,-0.14477 0.2104,0.20416,0.18232,-0.1203,-0.25133,0.18544,0.1948,0.14488,-0.22325,-0.24509,0.19792,0.19792,0.11681,-0.23885,-0.24197,0.19168,0.18232,0.0076123,-0.23885,-0.23885,0.1948,0.19792,-0.1359,-0.23885,-0.23573 0.2399,0.24043,-0.162,-0.16182,-0.162,0.24291,0.24079,-0.16236,-0.16289,-0.16289,0.24486,0.24274,-0.16377,-0.16289,-0.16324,0.28755,0.23725,-0.16271,-0.1643,-0.16377,0.23601,0.23441,-0.16395,-0.16413,-0.16413 -0.34526,-0.30196,-0.30196,-0.24422,-0.27309,-0.18649,-0.12875,-0.12875,-0.11432,-0.071015,0.0011547,0.0011547,0.015589,0.044457,0.044457,0.13106,0.073325,0.087759,0.13106,0.15993,0.26097,0.26097,0.2754,0.34757,0.26097 0.24404,0.24425,-0.16233,-0.16514,-0.16545,0.24364,0.24324,-0.15911,-0.16474,-0.16484,0.24425,0.24455,-0.16032,-0.16424,-0.16484,0.24666,0.24696,-0.16062,-0.16444,-0.16474,0.24586,0.24596,-0.16112,-0.16364,-0.16384 -0.19433,-0.20809,-0.0016515,0.23231,0.21855,-0.21497,-0.19433,-0.036058,0.26672,0.23919,-0.23561,-0.20121,-0.077345,0.21167,0.24607,-0.23561,-0.21497,-0.097989,0.25296,0.22543,-0.18745,-0.19433,-0.036058,0.23231,0.20479 -0.31584,-0.28217,-0.33267,-0.31584,-0.32426,-0.038049,-0.07172,-0.12223,-0.12223,-0.12223,0.012458,0.062966,-0.021213,0.020876,-0.0043773,0.13031,0.13031,0.15556,0.096637,0.10505,0.27341,0.27341,0.27341,0.24816,0.29025 0.24379,0.24136,-0.16301,-0.16422,-0.16664,0.24621,0.24136,-0.16603,-0.1618,-0.16301,0.24621,0.24681,-0.15877,-0.1618,-0.16422,0.24742,0.24379,-0.16119,-0.16422,-0.1618,0.24621,0.24621,-0.16301,-0.16301,-0.16664 0.23428,0.15442,0.10792,0.10489,-0.24588,0.28078,0.10489,0.097811,-0.14075,-0.30249,0.24236,0.10185,0.088713,-0.17917,-0.31866,0.2272,0.10792,0.08467,-0.19635,-0.31462,0.1615,0.085681,0.078605,-0.21455,-0.35101 0.20128,0.13639,0.036564,0.00091269,-0.39054,0.21554,0.13282,0.040843,-0.014061,-0.38056,0.22124,0.12355,0.046547,-0.0097829,-0.37486,0.19557,0.12213,0.036564,-0.0055046,-0.37557,0.19415,0.15208,0.042982,-0.015487,-0.33279 0.11002,0.10571,0.10715,-0.20132,-0.26445,0.13297,0.13154,0.12436,-0.20563,-0.2745,0.16023,0.15449,0.15019,-0.23576,-0.27163,0.18319,0.19467,0.18893,-0.20419,-0.27593,0.21762,0.22336,0.22049,-0.19558,-0.27593 -0.20676,-0.13421,-0.061665,0.13784,0.17411,-0.33372,-0.079802,-0.043529,0.17411,0.37362,-0.35186,-0.20676,0.10157,0.065293,0.31921,-0.20676,-0.11608,0.029019,0.08343,0.22853,-0.26117,-0.11608,-0.025392,0.15598,0.30107 -0.30345,-0.27096,-0.23847,-0.23847,-0.30345,-0.141,-0.141,-0.17349,-0.15725,-0.076025,-0.043536,0.021443,-0.059781,0.037688,-0.027291,0.086422,0.16765,0.11891,0.10267,0.21638,0.26511,0.31385,0.21638,0.33009,0.2976 -0.18148,-0.1894,-0.1894,-0.1894,-0.1894,-0.16959,-0.1795,-0.1894,-0.1894,-0.19139,-0.10421,-0.11412,-0.11016,-0.12006,-0.12006,0.25241,0.25241,0.24448,0.23656,0.2425,0.24052,0.2425,0.24448,0.23458,0.23656 0.14191,0.13713,-0.14487,-0.15639,-0.18223,0.25767,0.25596,-0.1461,-0.15945,-0.18015,0.25792,0.25951,-0.14132,-0.157,-0.17733,0.26073,0.26012,-0.14316,-0.157,-0.1788,0.28597,0.29442,-0.14414,-0.15798,-0.18542 -0.20709,-0.271,-0.12187,0.11249,0.24032,-0.22839,-0.14317,0.048576,0.17641,0.19771,-0.31361,-0.18578,0.027271,0.21902,0.24032,-0.20709,-0.14317,0.048576,0.1551,0.36816,-0.20709,-0.18578,-0.01534,0.069882,0.32555 -0.26612,-0.14104,-0.081481,0.26994,0.22229,-0.26612,-0.12913,-0.081481,0.25207,0.25207,-0.20061,-0.14104,-0.093394,0.22229,0.2342,-0.25421,-0.15296,-0.11722,0.22824,0.24611,-0.23634,-0.12913,-0.069569,0.2342,0.19846 0.24767,-0.023219,-0.092875,-0.14705,-0.16253,0.39472,0.046438,-0.13931,-0.085136,-0.15479,0.39472,0.030958,-0.11609,-0.12383,-0.17027,0.43342,-0.023219,-0.10835,-0.092875,-0.13157,0.41794,0.015479,-0.10835,-0.14705,-0.15479 0.24096,0.23493,-0.16319,-0.16553,-0.16654,0.23861,0.23995,-0.16352,-0.16252,-0.16285,0.23761,0.23895,-0.16285,-0.16185,-0.16319,0.25369,0.24398,-0.16285,-0.16486,-0.16252,0.26174,0.25805,-0.16386,-0.16252,-0.15984 -0.24971,-0.11689,0.015939,0.091839,0.28159,-0.32561,-0.13586,-0.059961,0.20569,0.20569,-0.24971,-0.19279,0.11081,0.11081,0.24364,-0.24971,-0.30664,0.015939,0.12979,0.24364,-0.24971,-0.040986,0.015939,0.16774,0.33852 -0.25976,-0.13103,-0.11672,0.18367,0.14075,-0.33128,-0.14533,0.054928,0.19797,0.22658,-0.30268,-0.23116,0.02632,0.24088,0.22658,-0.21685,-0.059505,-0.059505,0.19797,0.28379,-0.25976,-0.13103,-0.0022887,0.21227,0.25519 0.23308,-0.011752,-0.060719,-0.15865,-0.28107,0.30653,-0.011752,-0.011752,-0.060719,-0.18314,0.25756,0.18411,0.18411,-0.25659,-0.33004,0.3555,0.18411,-0.060719,-0.060719,-0.28107,0.25756,0.13515,0.012731,-0.10969,-0.2321 -0.30227,-0.21854,-0.2604,-0.23947,-0.34413,-0.13481,-0.092942,-0.17667,-0.11387,-0.19761,-0.0092104,-0.0092104,-0.0092104,0.011722,-0.0092104,0.11639,0.11639,0.074521,0.24198,0.20012,0.26292,0.32571,0.30478,0.24198,0.22105 0.14468,0.20092,0.1506,-0.23884,-0.24307,0.15314,0.17174,0.1506,-0.24096,-0.2473,0.19838,0.17386,0.14468,-0.24096,-0.24814,0.14299,0.19035,0.14553,-0.24053,-0.24772,0.1506,0.18401,0.13918,-0.24476,-0.24899 -0.20957,-0.1368,-0.015523,0.10575,0.27554,-0.20957,-0.11254,0.15426,0.032987,0.25128,-0.28233,-0.18531,-0.039779,0.10575,0.27554,-0.30659,-0.16106,0.0087319,0.20277,0.32405,-0.3551,-0.039779,-0.088289,0.10575,0.2998 0.24107,0.24067,-0.16292,-0.16292,-0.16345,0.24306,0.2404,-0.16318,-0.16345,-0.16398,0.26419,0.242,-0.16345,-0.16398,-0.16318,0.24359,0.24492,-0.16318,-0.16371,-0.16225,0.24306,0.24598,-0.16239,-0.16318,-0.16371 0.25713,0.25145,-0.1649,-0.163,-0.163,0.2522,0.2431,-0.1649,-0.16414,-0.163,0.24917,0.23931,-0.16263,-0.16414,-0.16263,0.24045,0.23476,-0.16035,-0.163,-0.16376,0.24462,0.23666,-0.16263,-0.16225,-0.16452 0.25919,0.24283,0.29192,0.25101,0.24283,0.24283,0.21828,0.19374,0.19374,0.24283,-0.12534,-0.076252,-0.11716,-0.11716,-0.1008,-0.14989,-0.12534,-0.13352,-0.12534,-0.13352,-0.2317,-0.23988,-0.25624,-0.20716,-0.23988 -0.24396,-0.31211,-0.24396,-0.32914,-0.27803,-0.14174,-0.10767,-0.073597,-0.17582,-0.261,0.045658,0.011585,0.028621,0.07973,-0.022488,0.14788,0.18195,0.14788,0.096767,0.14788,0.28417,0.26713,0.26713,0.19899,0.28417 0.24987,0.24159,-0.16512,-0.16542,-0.1666,0.24928,0.23952,-0.16394,-0.16453,-0.16394,0.24839,0.24218,-0.16394,-0.16305,-0.16394,0.24632,0.24307,-0.16216,-0.16216,-0.16127,0.24691,0.24218,-0.16068,-0.16216,-0.16039 0.16451,0.16939,0.16256,-0.22969,-0.25311,0.16744,0.16353,0.16353,-0.22676,-0.25115,0.16256,0.16061,0.16256,-0.23749,-0.25506,0.16548,0.16353,0.15963,-0.24335,-0.25701,0.16158,0.16061,0.16061,-0.24335,-0.25115 0.24476,0.24909,-0.15958,-0.16295,-0.16632,0.23947,0.25294,-0.15765,-0.1591,-0.16632,0.23995,0.24813,-0.16006,-0.16584,-0.16776,0.24572,0.23995,-0.15862,-0.16488,-0.16488,0.24765,0.24139,-0.16439,-0.16439,-0.16632 0.18392,0.11196,-0.010362,-0.2622,-0.29099,0.18392,0.11916,0.054398,-0.2622,-0.33416,0.17672,0.19831,0.097571,-0.13269,-0.2622,0.19831,0.19111,0.14074,-0.1039,-0.31257,0.2127,0.2127,0.14794,0.032812,-0.29099 -0.2668,-0.078026,-0.046564,0.14221,0.26806,-0.17241,-0.23534,0.079284,0.11075,0.26806,-0.29826,-0.046564,-0.046564,0.14221,0.29952,-0.32972,-0.078026,-0.046564,0.26806,0.23659,-0.29826,-0.20387,0.01636,0.047822,0.26806 -0.30858,-0.38373,-0.27101,-0.27101,-0.27101,-0.18335,-0.18335,-0.12073,-0.045586,-0.12073,0.04208,0.029556,0.029556,0.017032,0.054604,0.11722,0.15479,0.16732,0.14227,0.14227,0.21741,0.3176,0.24246,0.21741,0.26751 0.1652,0.16279,0.16119,-0.2315,-0.25961,0.1636,0.16199,0.1636,-0.23712,-0.25399,0.1636,0.16119,0.16279,-0.22909,-0.2572,0.16119,0.1652,0.166,-0.22909,-0.2572,0.16119,0.16279,0.1652,-0.23552,-0.2572 0.26149,0.2483,-0.16211,-0.1648,-0.1648,0.25752,0.24805,-0.1625,-0.16416,-0.16455,0.26034,0.24472,-0.16263,-0.16314,-0.16378,0.22885,0.2387,-0.16275,-0.16314,-0.16275,0.22872,0.23102,-0.16186,-0.16263,-0.16211 0.24801,0.34745,-0.056154,-0.14194,-0.24138,0.24606,0.031587,-0.085401,-0.15559,-0.22969,0.21097,0.32795,-0.069802,-0.18679,-0.23163,0.19537,0.27921,-0.069802,-0.15169,-0.22579,0.21877,0.16807,-0.060053,-0.14779,-0.21994 -0.19887,-0.11932,-0.069604,0.2287,0.27842,-0.16904,-0.18893,-0.079548,0.23864,0.27842,-0.18893,-0.18893,-0.079548,0.21876,0.27842,-0.2287,-0.21876,-0.13921,0.21876,0.2983,-0.19887,-0.18893,-0.10938,0.10938,0.21876 0.41017,0.035982,0.0060117,-0.1337,-0.24565,0.38681,0.033337,-0.0041253,-0.14164,-0.22626,0.10077,0.029812,-0.0094142,-0.12533,-0.21744,0.41722,0.017471,-0.025281,-0.12004,-0.22626,0.39474,0.011301,-0.037181,-0.12533,-0.20598 -0.19066,-0.19207,-0.20471,-0.20471,-0.20892,-0.16679,-0.17662,-0.17381,-0.17802,-0.171,-0.089545,-0.095162,-0.11342,-0.11904,-0.13589,0.24189,0.25313,0.25032,0.24751,0.2447,0.21942,0.2447,0.23909,0.24049,0.23909 -0.13413,-0.20702,-0.19487,-0.20702,-0.14628,-0.12198,-0.15843,-0.19487,-0.17057,-0.15843,-0.14628,-0.13413,-0.097679,-0.073381,-0.13413,0.1939,0.13315,0.13315,0.10886,0.072409,0.32754,0.37614,0.35184,0.27894,0.30324 0.11203,0.10995,0.087076,-0.0085662,-0.39114,0.13282,0.11203,0.091235,-0.0023287,-0.36203,0.14113,0.12866,0.11826,0.037176,-0.35579,0.14529,0.13906,0.12034,0.02678,-0.41609,0.14945,0.13906,0.11411,0.055888,-0.4244 -0.28401,-0.3013,-0.29265,-0.28977,-0.29554,-0.19468,-0.18315,-0.18604,-0.19468,-0.19468,0.15687,0.16552,0.15399,0.15399,0.16552,0.17128,0.15976,0.16264,0.17128,0.15976,0.15687,0.15976,0.16552,0.15687,0.15687 0.19025,0.18885,0.18607,-0.23478,-0.25987,0.2,0.19582,0.19861,-0.23896,-0.25847,0.14008,0.14426,0.14426,-0.21249,-0.25847,0.13729,0.14147,0.13729,-0.232,-0.25429,0.14565,0.14705,0.13729,-0.22642,-0.25847 -0.15497,-0.16235,-0.16235,-0.16604,-0.16235,-0.17342,-0.14759,-0.15497,-0.15866,-0.15128,-0.1439,-0.15866,-0.15128,-0.14021,-0.1107,0.088557,0.1107,0.13652,0.12915,0.15497,0.34316,0.34316,0.33578,0.35423,0.30257 -0.20311,-0.24602,-0.23171,-0.30323,-0.23171,-0.14589,-0.14589,-0.1888,-0.20311,-0.14589,-0.0028606,-0.04577,-0.04577,-0.0028606,-0.08868,0.24029,0.19738,0.21169,0.15447,0.14017,0.39763,0.2546,0.2546,0.21169,0.16878 0.30668,0.025838,0.053922,-0.19884,-0.19884,0.33477,0.13818,-0.058416,-0.0022468,-0.33926,0.19435,0.082007,0.025838,-0.0022468,-0.17075,0.25051,0.13818,0.025838,-0.19884,-0.42352,0.2786,0.19435,-0.058416,-0.19884,-0.19884 0.13646,0.21966,-0.042216,-0.15871,-0.21564,0.3887,0.21966,-0.083381,-0.16133,-0.21126,0.13208,0.099672,-0.068492,-0.16221,-0.2025,0.4071,0.057631,-0.065864,-0.14119,-0.20162,0.41761,0.069893,-0.08163,-0.15082,-0.20162 0.39148,0.12056,-0.048766,-0.1165,-0.10521,0.3802,0.0076762,-0.13907,-0.13907,-0.1165,0.35762,0.075407,-0.12779,-0.09392,-0.15036,0.36891,0.0076762,-0.12779,-0.17294,-0.18423,0.34633,-0.014901,-0.15036,-0.18423,-0.18423 0.21187,0.30319,-0.069262,-0.21251,-0.23758,0.18322,0.3211,-0.078216,-0.19819,-0.23042,0.18143,0.24947,-0.071053,-0.16238,-0.22684,0.16173,0.21008,-0.024496,-0.16238,-0.22505,0.15994,0.29782,0.01848,-0.1767,-0.22326 -0.29154,-0.33362,-0.29154,-0.25787,-0.29995,-0.14005,-0.14005,-0.18213,-0.16529,-0.16529,0.12086,0.095608,0.019862,0.087192,0.028279,0.23868,0.23027,0.22185,0.12927,0.095608,0.25552,0.25552,0.21344,0.17977,0.095608 0.12582,0.12582,0.00071486,-0.16013,-0.28523,0.21517,0.25092,0.10794,-0.23161,-0.33884,0.23304,0.12582,0.072201,-0.23161,-0.23161,0.14369,0.17943,0.090072,-0.23161,-0.23161,0.16156,0.25092,0.23304,-0.12439,-0.24949 0.2109,0.14113,0.082865,-0.15954,-0.30988,0.22241,0.15695,0.07783,0.023162,-0.32355,0.20659,0.15336,0.07711,0.0094949,-0.266,0.20083,0.13969,0.079268,-0.27463,-0.30413,0.21522,0.14904,0.075672,-0.28255,-0.30125 0.24361,0.23665,-0.16392,-0.16392,-0.16764,0.24639,0.24407,-0.16207,-0.15882,-0.17181,0.25104,0.25568,-0.16856,-0.16764,-0.17321,0.26218,0.2696,-0.16531,-0.17135,-0.15464,0.21994,0.21622,-0.15093,-0.15371,-0.15185 0.31944,0.031944,-0.095831,-0.19166,-0.15972,0.31944,0.22361,-0.19166,0,-0.22361,0.31944,0.095831,-0.063888,-0.15972,-0.19166,0.31944,0.095831,0.031944,-0.25555,-0.31944,0.25555,0.15972,-0.095831,-0.063888,-0.15972 -0.18777,-0.22178,-0.23312,-0.31249,-0.30115,-0.15375,-0.08572,-0.074382,-0.19911,-0.22178,-0.0063496,-0.040366,-0.029027,-0.08572,-0.1084,0.19775,0.19775,0.23176,0.22042,0.14105,0.23176,0.26578,0.27712,0.26578,0.23176 -0.21477,-0.085907,0.021477,0.10738,0.2792,-0.25772,-0.23625,-0.021477,0.15034,0.30068,-0.23625,-0.19329,0.064431,0.19329,0.15034,-0.2792,-0.12886,-0.042954,0.23625,0.36511,-0.2792,-0.12886,-0.12886,0.17181,0.19329 -0.27812,-0.25927,-0.29696,-0.27812,-0.27812,-0.089691,-0.089691,-0.1839,-0.089691,-0.1839,0.0045222,-0.052006,0.023365,-0.01432,0.023365,0.042207,0.098735,0.15526,0.13642,0.11758,0.34369,0.26832,0.28716,0.306,0.28716 -0.25052,-0.22715,-0.016826,0.14676,0.24024,-0.22715,-0.086935,-0.016826,-0.016826,0.38046,-0.25052,-0.13367,-0.040196,0.076652,0.28698,-0.20378,-0.13367,0.10002,0.14676,0.28698,-0.27389,-0.18041,-0.086935,0.12339,0.35709 0.20418,0.16262,0.12936,-0.045226,-0.31126,0.19587,0.17093,0.17093,-0.12836,-0.26138,0.20418,0.17093,0.14599,-0.25307,-0.25307,0.18756,0.16262,0.062851,-0.24475,-0.23644,0.22081,0.17924,-0.10342,-0.27801,-0.25307 0.20342,0.18434,-0.19298,-0.20252,-0.20079,0.23292,0.22684,-0.16783,-0.18431,-0.17563,0.26328,0.2572,-0.16522,-0.16783,-0.15221,0.27108,0.2546,-0.13833,-0.15395,-0.14614,0.28149,0.252,-0.12185,-0.13053,-0.12706 0.25776,0.26048,-0.15346,-0.16446,-0.16919,0.26358,0.26371,-0.15501,-0.16317,-0.18168,0.26475,0.26714,-0.14918,-0.1622,-0.16705,0.19593,0.26954,-0.15164,-0.16382,-0.16653,0.19522,0.19788,-0.15132,-0.15786,-0.17942 0.26689,0.29213,-0.16222,-0.16643,-0.16432,0.24375,0.26058,-0.15591,-0.16853,-0.16853,0.23744,0.24585,-0.14119,-0.16643,-0.17274,0.23323,0.23323,-0.1475,-0.17063,-0.17063,0.2122,0.21641,-0.15381,-0.16643,-0.16643 -0.28221,-0.021708,-0.043417,0.2605,0.21708,-0.30392,-0.19538,0.10854,0.15196,0.23879,-0.30392,-0.15196,-0.10854,0.15196,0.2605,-0.2605,-0.13025,-0.021708,0.10854,0.30392,-0.30392,-0.021708,-0.021708,0.10854,0.2605 0.24598,0.24561,-0.16364,-0.16327,-0.16352,0.2434,0.2434,-0.16352,-0.16303,-0.16413,0.2434,0.24303,-0.16303,-0.16376,-0.16303,0.24536,0.24536,-0.16303,-0.16315,-0.16401,0.24696,0.24696,-0.16106,-0.16376,-0.16352 0.21338,0.21338,-0.093531,-0.14035,-0.17416,0.20038,0.20558,-0.044113,-0.13255,-0.17936,0.20298,0.17437,-0.0103,-0.2782,-0.36924,0.22119,0.18217,0.010508,-0.10133,-0.30681,0.21599,0.23159,0.20298,-0.17936,-0.2652 -0.2922,-0.27465,-0.28342,-0.2922,-0.28927,-0.19566,-0.20151,-0.19566,-0.19858,-0.20151,0.16418,0.15248,0.1554,0.1671,0.1554,0.17003,0.1671,0.16418,0.15833,0.16418,0.15833,0.17003,0.14663,0.16418,0.1671 0.17221,0.1625,0.15879,-0.24564,-0.26322,0.16759,0.16203,0.15787,-0.24425,-0.25675,0.16805,0.15879,0.15741,-0.24009,-0.25166,0.17684,0.15926,0.15926,-0.23083,-0.24518,0.17036,0.16111,0.15555,-0.23083,-0.23916 0.39865,-0.042257,-0.086348,-0.099575,-0.15689,0.38719,-0.031675,-0.088993,-0.10839,-0.14984,0.39248,-0.039611,-0.094284,-0.11368,-0.15866,0.4013,-0.018448,-0.10134,-0.11016,-0.16395,0.37749,-0.021975,-0.090757,-0.12427,-0.15601 0.18136,0.097395,0.073585,0.024712,-0.38256,0.17885,0.10366,0.074838,-0.037945,-0.35875,0.21394,0.10617,0.086117,0.048522,-0.37755,0.19514,0.11619,0.08361,0.030978,-0.38883,0.18512,0.12246,0.088623,-0.089325,-0.3763 0.26648,0.2353,0.2353,0.22491,0.2353,0.13137,0.13137,0.16255,0.14176,0.18334,0.06901,0.058617,0.079404,0.10019,0.10019,-0.25318,-0.20121,-0.19082,-0.2116,-0.20121,-0.26357,-0.26357,-0.24278,-0.26357,-0.26357 0.16062,0.16062,0.1598,-0.23402,-0.26362,0.15733,0.16308,0.16144,-0.22744,-0.248,0.16144,0.16308,0.16473,-0.22826,-0.25704,0.16391,0.16226,0.16719,-0.22826,-0.25622,0.16802,0.16473,0.16884,-0.24471,-0.25951 0.15851,0.17802,0.17802,-0.22885,-0.26229,0.15851,0.16687,0.17802,-0.2177,-0.25671,0.1613,0.1613,0.16687,-0.24557,-0.26229,0.14736,0.15851,0.15572,-0.23442,-0.25671,0.14736,0.15572,0.17244,-0.22327,-0.25671 0.39014,-0.037975,-0.079175,-0.13291,-0.14187,0.3991,-0.039766,-0.080966,-0.1365,-0.14724,0.38298,-0.043349,-0.091714,-0.1365,-0.14366,0.39014,-0.021854,-0.068427,-0.13291,-0.15441,0.39193,-0.014689,-0.061262,-0.13829,-0.15083 0.33303,0.29907,-0.15373,-0.15373,-0.16505,0.29907,0.21417,-0.17071,-0.15939,-0.15939,0.26511,0.089654,-0.15373,-0.16505,-0.15939,0.25379,0.25379,-0.16505,-0.15373,-0.16505,0.22549,0.15757,-0.15373,-0.15373,-0.15939 -0.3338,-0.27472,-0.34857,-0.3338,-0.30426,-0.15656,-0.038402,-0.15656,-0.14179,-0.20087,0.050218,0.094527,0.13884,0.13884,0.13884,0.16838,0.16838,0.13884,0.12407,0.15361,0.16838,0.16838,0.21269,0.21269,0.21269 -0.27143,-0.13341,0.0046004,0.16562,0.16562,-0.17942,-0.22542,0.050605,0.25762,0.32663,-0.34043,-0.17942,-0.018402,0.23462,0.28063,-0.22542,-0.15641,0.027603,0.14261,0.23462,-0.24842,-0.15641,-0.11041,0.16562,0.18862 0.24676,0.24513,-0.16295,-0.16313,-0.16313,0.24495,0.24712,-0.16331,-0.16367,-0.16367,0.24549,0.24422,-0.16277,-0.16295,-0.16367,0.24313,0.24241,-0.16349,-0.16331,-0.16295,0.24477,0.24549,-0.16349,-0.16331,-0.16367 0.3475,0.18996,-0.17015,-0.21516,-0.17015,0.25747,0.21246,-0.080123,-0.14764,-0.12514,0.30249,0.099929,-0.10263,-0.23767,-0.14764,0.37001,0.054916,-0.057617,-0.17015,-0.19266,0.32499,0.099929,-0.17015,-0.17015,-0.10263 0.35861,0.017952,-0.090193,-0.10642,-0.14967,0.36942,-0.030713,-0.10642,-0.12264,-0.13345,0.39105,0.0071376,-0.090193,-0.10101,-0.13886,0.41809,-0.068564,-0.11723,-0.12804,-0.15508,0.41268,-0.063157,-0.084786,-0.13345,-0.15508 -0.27017,-0.27017,-0.28068,-0.27367,-0.27543,-0.21058,-0.20708,-0.21058,-0.21409,-0.2246,0.15745,0.15745,0.15394,0.15044,0.15394,0.16446,0.17147,0.15745,0.1627,0.1627,0.16971,0.17147,0.16796,0.16796,0.16796 0.24492,0.24571,-0.16675,-0.1649,-0.16463,0.24492,0.24439,-0.15987,-0.16411,-0.16199,0.24492,0.24333,-0.16146,-0.16305,-0.16252,0.24492,0.24386,-0.16199,-0.16384,-0.16146,0.24756,0.24492,-0.16305,-0.16622,-0.16358 0.14139,0.083126,-0.072249,-0.2082,-0.24705,0.25792,0.10255,0.063704,-0.091671,-0.383,0.25792,0.16081,0.10255,-0.14994,-0.30531,0.12197,0.25792,0.02486,-0.11109,-0.30531,0.27734,0.19966,0.10255,0.02486,-0.30531 0.24247,0.24513,-0.16214,-0.16214,-0.16267,0.23981,0.2422,-0.16374,-0.16161,-0.16666,0.23981,0.24353,-0.16374,-0.16214,-0.16507,0.24061,0.23981,-0.1656,-0.16134,-0.16533,0.25443,0.26108,-0.16427,-0.16028,-0.16214 0.15864,0.19866,0.19106,-0.24211,-0.25325,0.17181,0.14952,0.15154,-0.24109,-0.25123,0.16117,0.14344,0.16573,-0.25123,-0.25579,0.18853,0.16573,0.13736,-0.24616,-0.24819,0.17991,0.14344,0.13482,-0.22438,-0.22792 -0.19771,-0.19496,-0.10165,0.22768,0.22768,-0.19771,-0.19222,-0.065976,0.23042,0.23042,-0.19496,-0.2032,-0.079698,0.22768,0.24414,-0.2032,-0.20594,-0.079698,0.24689,0.24414,-0.2032,-0.20045,-0.065976,0.25512,0.25238 -0.31901,-0.11517,0.012231,0.063191,0.39444,-0.24257,-0.16613,0.063191,0.037711,0.24155,-0.34449,-0.11517,-0.089691,0.19059,0.24155,-0.24257,-0.16613,0.037711,0.11415,0.318,-0.14065,-0.16613,0.037711,0.063191,0.29251 0.24296,0.25107,-0.16299,-0.16278,-0.16216,0.25024,0.24962,-0.16185,-0.16205,-0.16507,0.24982,0.25409,-0.16216,-0.16247,-0.1683,0.24951,0.25014,-0.16216,-0.16257,-0.1657,0.22454,0.2262,-0.16226,-0.16112,-0.16455 -0.36423,-0.33578,-0.32155,-0.34052,-0.26464,-0.19824,-0.16978,-0.12236,-0.13184,-0.046477,0.10529,0.13374,0.11003,0.11951,0.129,0.1622,0.18117,0.16694,0.15745,0.17168,0.20014,0.18591,0.1622,0.14323,0.16694 -0.22181,-0.16542,0.0037596,0.17294,0.34212,-0.3534,-0.14662,-0.033836,0.078951,0.34212,-0.25941,-0.12782,-0.015038,-0.015038,0.26693,-0.27821,-0.071432,-0.015038,0.041355,0.26693,-0.24061,-0.015038,-0.033836,0.13534,0.34212 0.29203,-0.035313,-0.08987,-0.1841,-0.20518,0.31807,-0.031593,-0.065071,-0.16427,-0.20642,0.32055,0.011804,-0.066311,-0.15559,-0.19278,0.32799,0.32923,-0.060112,-0.16799,-0.18906,0.33419,0.20275,-0.019194,-0.12087,-0.18286 0.20133,0.20133,0.20908,0.19746,0.19746,0.21682,0.21682,0.19359,0.19746,0.18972,0.081307,0.069692,0.069692,0.06582,0.06582,-0.23231,-0.23231,-0.20133,-0.24005,-0.22069,-0.25167,-0.25167,-0.25167,-0.24005,-0.25167 0.25243,0.2793,-0.16254,-0.16678,-0.16607,0.24254,0.26516,-0.16254,-0.16466,-0.16607,0.239,0.25102,-0.15264,-0.16537,-0.16749,0.239,0.24041,-0.15335,-0.16537,-0.16607,0.21991,0.21638,-0.15688,-0.16325,-0.16607 0.23977,0.22069,-0.14183,-0.20225,-0.18317,0.24613,0.21115,-0.18317,-0.20225,-0.20543,0.23659,0.21115,-0.16409,-0.20543,-0.18317,0.23659,0.21751,0.11893,-0.21497,-0.19271,0.23023,0.22069,0.058512,-0.18635,-0.18317 0.24927,0.2566,-0.17163,-0.17006,-0.16796,0.24351,0.25137,-0.1732,-0.17948,-0.17739,0.25137,0.23985,-0.17529,-0.17215,-0.18,0.22781,0.24456,-0.17739,-0.17372,-0.17424,0.24142,0.2299,-0.088913,-0.10828,-0.14597 0.19101,0.18292,0.18292,-0.065613,-0.3153,0.17945,0.17945,0.16443,-0.084109,-0.31762,0.16096,0.15171,0.16327,-0.10145,-0.31068,0.11125,0.11472,0.13321,-0.15347,-0.37195,0.11125,0.11125,0.11125,-0.14422,-0.38466 -0.2012,-0.15463,-0.17015,-0.24778,-0.1391,-0.24778,-0.2012,-0.15463,-0.18568,-0.18568,-0.15463,-0.061479,-0.092529,-0.077004,-0.092529,0.2335,0.26455,0.1714,0.14035,0.21797,0.24902,0.28007,0.24902,0.28007,0.28007 -0.27143,-0.27143,-0.28929,-0.28929,-0.28929,-0.092857,-0.092857,-0.2,-0.2,-0.092857,0.014286,-0.0035714,0.085714,-0.021429,0.032143,0.10357,0.12143,0.085714,0.13929,0.067857,0.28214,0.28214,0.31786,0.28214,0.3 0.24588,0.2422,-0.16587,-0.16433,-0.1582,0.24895,0.24006,-0.1628,-0.16556,-0.1585,0.24895,0.24036,-0.16372,-0.16771,-0.15697,0.24711,0.2419,-0.16341,-0.17047,-0.1582,0.24834,0.24527,-0.16341,-0.17047,-0.15942 -0.15175,-0.15843,-0.16066,-0.16066,-0.16956,-0.19851,-0.1896,-0.19628,-0.20296,-0.20964,-0.11613,-0.12504,-0.12726,-0.13172,-0.13172,0.23565,0.23342,0.23342,0.22674,0.22229,0.26459,0.26459,0.25123,0.249,0.249 -0.17321,-0.16592,-0.15864,-0.16228,-0.15864,-0.16228,-0.155,-0.16592,-0.17321,-0.14771,-0.13679,-0.13679,-0.12222,-0.14407,-0.11494,0.12542,0.13271,0.09629,0.10722,0.10722,0.33665,0.33665,0.34758,0.33665,0.35122 -0.38757,-0.067264,0.025132,0.15449,0.17297,-0.33213,-0.073424,0.043611,0.17912,0.20376,-0.34445,-0.030306,0.043611,0.17297,0.22224,-0.35061,-0.061105,0.031291,0.14217,0.22224,-0.33213,-0.085743,0.05593,0.16065,0.23456 0.15586,0.11669,0.072175,0.033004,-0.38328,0.15443,0.1085,0.078941,0.030511,-0.38542,0.16583,0.11811,0.080721,0.042262,-0.39076,0.16084,0.12737,0.071819,0.039057,-0.40073,0.16084,0.12167,0.083926,0.033716,-0.3961 0.25425,0.13946,-0.21051,-0.25165,-0.35375,0.25781,0.12828,0.05565,-0.25622,-0.34765,0.26187,0.15165,0.051078,-0.043906,-0.29838,0.24816,0.14454,0.048538,-0.050509,-0.16022,0.25374,0.13184,0.051586,-0.044414,-0.16124 0.19912,0.20287,0.17659,0.18785,0.19161,0.20662,0.21038,0.21038,0.17284,0.1841,0.090248,0.10526,0.086494,0.086494,0.086494,-0.20257,-0.21383,-0.24386,-0.2326,-0.21383,-0.26263,-0.26263,-0.26263,-0.25137,-0.25137 0.19028,0.12073,-0.19223,-0.24786,-0.2525,0.22737,0.14855,0.092914,-0.23395,-0.22932,0.21346,0.1671,0.1045,-0.22004,-0.23627,0.23896,0.17637,0.13232,-0.2015,-0.22004,0.27142,0.20419,0.1416,-0.18991,-0.20614 0.24785,0.255,-0.1683,-0.16921,-0.16891,0.24846,0.2547,-0.15871,-0.16723,-0.16647,0.24313,0.25759,-0.15825,-0.16023,-0.16449,0.2343,0.24785,-0.15977,-0.16023,-0.16312,0.23004,0.22913,-0.15977,-0.16145,-0.1619 -0.29413,-0.2861,-0.30216,-0.31821,-0.26202,-0.17372,-0.17372,-0.21386,-0.17372,-0.20583,0.13936,0.16344,0.18752,0.13133,0.16344,0.16344,0.14739,0.15541,0.19555,0.13936,0.16344,0.15541,0.16344,0.20358,0.13133 0.12443,0.027863,-0.11861,-0.26075,-0.31174,0.22642,0.060413,-0.047002,-0.17612,-0.31174,0.26331,0.10815,-0.026387,-0.13163,-0.27051,0.31756,0.17868,0.040883,-0.092572,-0.19348,0.41629,0.24378,0.10164,-0.016622,-0.15225 -0.18179,-0.18179,-0.11953,0.11704,0.25401,-0.15689,-0.19424,-0.11953,0.16685,0.27891,-0.19424,-0.18179,-0.094631,0.1544,0.29136,-0.19424,-0.18179,-0.13199,0.22911,0.29136,-0.19424,-0.14444,-0.094631,0.22911,0.35362 0.14431,0.16665,0.12197,-0.00089354,-0.25779,0.15548,0.1108,0.1108,-0.05674,-0.36948,0.15548,0.16665,0.12197,-0.067909,-0.34714,0.20015,0.14431,0.1108,-0.15726,-0.33597,0.15548,0.21132,0.12197,-0.22428,-0.38065 -0.21795,-0.18866,-0.1496,-0.18866,-0.1203,-0.13983,-0.17889,-0.15936,-0.17889,-0.16913,-0.13983,-0.13983,-0.15936,-0.091008,-0.1203,0.16288,0.16288,0.10429,0.12382,0.25076,0.33864,0.26053,0.28006,0.31912,0.33864 0.38963,0.041035,-0.10836,-0.1482,-0.1482,0.43943,0.10079,-0.12828,-0.15816,-0.17808,0.34979,0.10079,-0.1482,-0.13824,-0.198,0.36971,0.011155,-0.12828,-0.11832,-0.11832,0.27011,0.021115,-0.12828,-0.12828,-0.11832 -0.31168,-0.072774,0.074245,0.16613,0.25802,-0.38519,-0.12791,0.019112,0.14775,0.31315,-0.25655,-0.23817,0.055867,0.092622,0.23964,-0.23817,-0.03602,-0.03602,0.092622,0.23964,-0.34844,-0.054397,0.074245,0.092622,0.23964 0.24847,0.23736,-0.163,-0.163,-0.1677,0.24804,0.24591,-0.16599,-0.16556,-0.15915,0.25702,0.23352,-0.17112,-0.1583,-0.15573,0.25531,0.22583,-0.1677,-0.16471,-0.15531,0.25317,0.24334,-0.16941,-0.163,-0.1583 0.25191,0.25191,-0.1623,-0.16214,-0.16278,0.25271,0.25143,-0.16342,-0.16278,-0.1631,0.23842,0.24035,-0.1631,-0.16358,-0.16278,0.2397,0.24099,-0.16406,-0.16358,-0.16358,0.24099,0.24067,-0.16406,-0.16374,-0.16406 -0.35397,-0.33392,-0.32189,-0.30184,-0.28981,-0.15349,-0.12141,-0.12542,-0.16151,-0.12542,0.20337,0.11917,0.079069,0.11115,0.059021,0.24346,0.14322,0.15926,0.15525,0.1352,0.25549,0.17129,0.15926,0.15525,0.13921 -0.18224,-0.26102,-0.26102,-0.2085,-0.24789,-0.19537,-0.22163,-0.12972,-0.18224,-0.18224,-0.024684,-0.024684,-0.011554,0.027835,0.014706,0.10661,0.067225,0.10661,0.13287,0.146,0.21165,0.30356,0.2773,0.36921,0.36921 0.24171,0.24882,-0.16221,-0.16221,-0.16272,0.24103,0.23866,-0.16187,-0.16255,-0.16339,0.25745,0.24746,-0.16136,-0.16221,-0.16255,0.24611,0.24662,-0.16221,-0.16204,-0.16187,0.24086,0.24035,-0.16898,-0.1661,-0.16678 0.24191,0.23683,0.25207,0.25715,0.26224,0.21142,0.23683,0.23683,0.24191,0.24191,-0.11384,-0.12909,-0.093511,-0.10876,-0.098593,-0.18499,-0.17991,-0.17991,-0.19007,-0.17482,-0.17991,-0.18499,-0.19007,-0.19007,-0.22056 0.24928,0.24452,-0.162,-0.16295,-0.16057,0.24976,0.24928,-0.16723,-0.16295,-0.1639,0.24119,0.24833,-0.17009,-0.16009,-0.16247,0.24738,0.23786,-0.16676,-0.16343,-0.162,0.24738,0.23405,-0.15867,-0.16152,-0.16438 0.17372,0.098939,-0.067877,-0.25195,-0.32673,0.23124,0.15071,-0.021859,-0.22319,-0.33823,0.20823,0.17372,-0.010354,-0.19443,-0.30372,0.23124,0.20823,0.1392,-0.056372,-0.25195,0.21398,0.21974,0.17372,0.0069027,-0.18292 0.26551,0.084716,-0.044424,-0.19939,-0.27688,0.36883,0.11054,0.03306,-0.12191,-0.22522,0.26551,0.11054,0.11054,0.03306,-0.25105,0.39465,0.13637,-0.044424,-0.12191,-0.22522,0.084716,0.058888,0.03306,-0.22522,-0.35436 -0.37404,-0.11753,-0.07089,0.13898,0.25558,-0.28076,-0.047571,0.045706,0.092344,0.23226,-0.18749,-0.047571,-0.024252,0.25558,0.20894,-0.3274,-0.14085,-0.024252,0.18562,0.32554,-0.3274,-0.16417,0.069025,0.11566,0.20894 0.25908,0.18257,-0.20332,-0.25988,-0.28316,0.22914,0.19587,0.076113,-0.21996,-0.27318,0.20918,0.15263,0.10273,-0.066932,-0.29647,0.20253,0.15595,0.08942,-0.073585,-0.29647,0.20253,0.13267,0.096073,-0.020359,-0.29314 -0.1725,-0.22933,-0.19144,-0.19776,-0.20407,-0.14093,-0.19776,-0.18513,-0.19144,-0.20407,-0.065161,-0.16619,-0.014649,-0.11567,-0.10936,0.24423,0.21897,0.25685,0.2316,0.22528,0.21266,0.23791,0.25054,0.25054,0.25685 -0.22618,-0.12411,0.01878,0.12085,0.32498,-0.30783,-0.022046,-0.022046,0.10043,0.30456,-0.28742,-0.16494,-0.083285,0.14126,0.24332,-0.16494,-0.24659,0.01878,0.039193,0.32498,-0.20576,-0.22618,-0.001633,0.10043,0.34539 0.213,0.14994,0.065861,0.022421,-0.3223,0.19758,0.13172,0.05325,-0.0098091,-0.34052,0.20179,0.11771,0.05325,-0.016816,-0.44842,0.19338,0.13172,0.058855,-0.015414,-0.35453,0.18077,0.1107,0.040638,-0.016816,-0.39797 -0.28184,-0.19771,-0.23977,-0.22926,-0.21874,-0.25029,-0.26081,-0.18719,-0.22926,-0.16616,-0.0084131,-0.0084131,0.054685,0.086235,0.044169,0.14933,0.14933,0.14933,0.15985,0.20192,0.21243,0.26501,0.27553,0.2545,0.27553 0.1603,0.16171,0.15817,-0.23797,-0.25497,0.15959,0.16526,0.16101,-0.23867,-0.25497,0.16384,0.16313,0.16455,-0.23726,-0.25426,0.16455,0.16668,0.16597,-0.23159,-0.25214,0.16526,0.16455,0.16384,-0.23513,-0.25143 0.14771,0.024249,-0.10396,-0.23534,-0.35563,0.20153,0.049575,-0.054893,-0.19735,-0.33189,0.26959,0.12239,-0.020071,-0.12929,-0.26225,0.31866,0.20153,0.068569,-0.07547,-0.17836,0.36931,0.23635,0.12239,-0.034316,-0.15303 0.2945,0.23445,0.2945,0.25847,0.27048,0.19841,0.15037,0.24646,0.24646,0.17439,-0.077828,-0.10185,-0.10185,-0.041797,-0.14989,-0.14989,-0.22196,-0.13788,-0.20994,-0.20994,-0.22196,-0.19793,-0.18592,-0.17391,-0.18592 -0.21218,-0.22747,0.040051,0.17381,0.19292,-0.20836,-0.23511,-0.0019873,0.18145,0.26553,-0.19689,-0.21218,-0.13575,0.22349,0.22349,-0.19689,-0.18925,-0.0096307,0.22731,0.26553,-0.19689,-0.21982,-0.078421,0.2426,0.28464 0.19653,0.24735,0.16264,-0.1762,-0.22702,0.23041,0.23041,-0.074544,-0.074544,-0.2609,0.28123,0.24735,-0.1762,-0.15925,-0.27785,0.26429,0.11182,-0.12537,-0.057602,-0.24396,0.26429,0.11182,-0.10843,-0.15925,-0.22702 -0.24098,-0.24932,-0.27851,-0.27851,-0.29102,-0.086721,-0.082552,-0.14092,-0.19512,-0.25349,0.059204,0.034188,0.02168,-0.028351,-0.12008,0.20096,0.2093,0.19262,0.17594,0.1009,0.27184,0.27184,0.27184,0.2635,0.17177 -0.36289,-0.13545,0.05408,0.16148,0.19939,-0.34394,-0.097546,0.066715,0.19939,0.18043,-0.32498,-0.072275,0.05408,0.19307,0.18675,-0.31235,-0.14177,0.11094,0.17412,0.19939,-0.3313,-0.097546,0.079351,0.18043,0.18043 -0.3065,-0.31869,-0.3065,-0.32479,-0.31869,-0.096193,-0.12667,-0.074857,-0.1541,-0.2303,0.14459,0.086683,0.056204,0.056204,0.074491,0.22994,0.2025,0.14459,0.14155,0.11716,0.26651,0.18726,0.19031,0.18726,0.17203 -0.23222,-0.25803,-0.21932,-0.34834,-0.33544,-0.11611,-0.11611,-0.090309,-0.19352,-0.16772,0.064507,0.038704,-0.038704,-0.012901,-0.012901,0.11611,0.19352,0.11611,0.16772,0.064507,0.30963,0.33544,0.27093,0.27093,0.19352 -0.27506,-0.27354,-0.2781,-0.2857,-0.2781,-0.20514,-0.21122,-0.20818,-0.21122,-0.20818,0.1551,0.16574,0.16118,0.1627,0.16118,0.1627,0.1627,0.1627,0.1627,0.15662,0.16574,0.1627,0.1627,0.16726,0.1627 0.22818,0.15012,0.057654,-0.2676,-0.27318,0.22586,0.13153,0.062765,-0.27875,-0.27597,0.22865,0.13339,0.043714,0.0070069,-0.33544,0.22261,0.1464,0.056725,0.0097948,-0.33916,0.21006,0.12689,0.054866,0.0093302,-0.33544 0.26154,0.1391,0.065631,-0.22824,-0.39966,0.16359,0.1391,0.09012,-0.056815,-0.3262,0.21257,0.16359,0.09012,-0.25273,-0.22824,0.18808,0.09012,0.11461,-0.032326,-0.35069,0.21257,0.21257,0.016653,-0.032326,-0.25273 -0.36518,-0.10021,-0.027943,0.18885,0.33339,-0.29292,-0.14839,-0.0038542,0.14068,0.0925,-0.29292,-0.1243,0.044323,0.21294,0.28521,-0.31701,-0.1243,-0.10021,0.18885,0.23703,-0.17247,-0.10021,0.044323,0.16477,0.23703 -0.30624,-0.30624,-0.28449,-0.34974,-0.21924,-0.15399,-0.13224,-0.088741,-0.15399,-0.15399,0.02001,0.063511,0.02001,0.063511,-0.00174,0.23751,0.15051,0.15051,0.085261,0.063511,0.25926,0.21576,0.25926,0.32451,0.23751 0.31051,0.14736,-0.16178,-0.14461,-0.14461,0.28475,0.23323,-0.13602,-0.2133,-0.17037,0.28475,0.20747,-0.15319,-0.10167,-0.093085,0.25899,0.1817,-0.16178,-0.20472,-0.17896,0.25899,0.23323,-0.20472,-0.16178,-0.17037 -0.21894,-0.1944,0.026509,0.19833,0.37014,-0.21894,-0.1944,-0.12076,0.075599,0.22287,-0.29258,-0.14531,-0.047127,0.24742,0.27196,-0.24349,-0.096217,0.075599,0.12469,0.19833,-0.21894,-0.24349,-0.022582,0.19833,0.24742 0.16822,0.16877,0.16631,-0.23622,-0.23677,0.17068,0.1685,0.16768,-0.24196,-0.24169,0.17423,0.17314,0.16331,-0.24524,-0.24578,0.17614,0.16085,0.14747,-0.24851,-0.24851,0.15184,0.14747,0.14255,-0.24988,-0.25261 0.31291,0.2893,0.26962,0.25388,0.19879,0.19879,0.23814,0.24995,0.24995,0.1437,-0.13174,-0.11207,-0.10026,-0.116,-0.17109,-0.15535,-0.15535,-0.16716,-0.17109,-0.1829,-0.17896,-0.17896,-0.1947,-0.17896,-0.21044 -0.27358,-0.25334,-0.31405,-0.27358,-0.31405,-0.1724,-0.050993,-0.1724,-0.071228,-0.1724,0.029948,-0.010522,-0.010522,0.0097129,0.029948,0.090653,0.13112,0.090653,0.13112,0.15136,0.27277,0.37395,0.25253,0.25253,0.27277 0.22519,0.22519,0.22519,0.23817,0.25116,0.15596,0.1473,0.15596,0.15596,0.16894,0.073737,0.11268,0.078065,0.095374,0.06941,-0.22485,-0.23783,-0.24216,-0.22485,-0.24648,-0.22917,-0.25947,-0.22917,-0.24216,-0.24216 0.22925,0.23422,-0.16096,-0.16402,-0.16479,0.22657,0.23327,-0.16345,-0.16115,-0.16345,0.23422,0.23308,-0.16345,-0.16326,-0.16249,0.2658,0.2658,-0.16192,-0.16306,-0.16479,0.26178,0.26236,-0.16172,-0.16383,-0.16402 0.27533,0.284,0.284,0.31,0.27533,0.16263,0.14529,0.14529,0.14529,0.16263,-0.0020806,-0.019418,-0.0020806,-0.019418,-0.028087,-0.16679,-0.14078,-0.15812,-0.15812,-0.20147,-0.25348,-0.27082,-0.24481,-0.26215,-0.26215 -0.21496,-0.26795,-0.25735,-0.20436,-0.22555,-0.23615,-0.21496,-0.19376,-0.18316,-0.21496,-0.013567,0.0076315,0.03943,-0.034766,0.02883,0.27262,0.18782,0.20902,0.19842,0.12422,0.29381,0.27262,0.21962,0.20902,0.19842 -0.28674,-0.32487,-0.32487,-0.28674,-0.28674,-0.083378,-0.14693,-0.096088,-0.14693,-0.057958,0.0055924,0.043723,0.031013,-0.019828,0.0055924,0.069143,0.081853,0.13269,0.13269,0.11998,0.29792,0.28521,0.29792,0.25979,0.29792 0.36593,0.26006,0.035871,-0.15718,-0.17587,0.36593,0.19156,-0.11982,-0.15718,-0.17587,0.32857,0.1542,-0.10114,-0.15718,-0.15718,0.2912,0.035871,-0.11982,-0.15718,-0.18209,0.22893,-0.082453,-0.1385,-0.15718,-0.21946 -0.27854,-0.29864,-0.31371,-0.29864,-0.28859,-0.26849,-0.23835,-0.19313,-0.077573,-0.027331,0.058079,0.088224,0.098273,0.1033,0.12339,0.15354,0.14851,0.12842,0.15354,0.14349,0.24397,0.21383,0.19373,0.21885,0.21383 0.26216,0.26791,0.21017,0.20471,0.20701,0.25714,0.26274,0.27093,0.2073,0.20601,-0.063157,-0.063013,-0.063013,-0.063444,-0.063875,-0.18352,-0.19673,-0.20535,-0.20693,-0.20851,-0.20664,-0.20679,-0.20765,-0.20837,-0.20908 0.15054,0.10281,0.079519,0.036339,-0.4108,0.16645,0.11531,0.078951,0.049975,-0.37444,0.14827,0.11872,0.080656,0.036339,-0.37387,0.15054,0.11986,0.093155,0.017022,-0.41364,0.16077,0.13463,0.084065,0.03293,-0.3841 0.29315,0.16197,0.0022813,0.059313,-0.26577,0.30455,0.025094,-0.020532,-0.026235,-0.28288,0.30455,0.030797,0.019391,0.0022813,-0.29999,0.28744,0.08783,-0.014828,-0.060454,-0.28858,0.32166,-0.020532,-0.043344,-0.23725,-0.33991 -0.28155,-0.1508,-0.04184,0.15428,0.19787,-0.21617,-0.063631,-0.085423,0.24145,0.24145,-0.21617,-0.085423,0.067118,0.1107,0.24145,-0.30334,-0.19438,-0.020048,0.21966,0.28503,-0.36871,-0.17259,0.088909,0.045326,0.30682 0.23699,0.24978,0.25298,0.25937,0.24978,0.23379,0.24339,0.23379,0.2242,0.24339,-0.10513,-0.11153,-0.11792,-0.12432,-0.11792,-0.17228,-0.18826,-0.17867,-0.18507,-0.17547,-0.18826,-0.19146,-0.19466,-0.18826,-0.18826 0.15695,0.14399,0.11969,0.028967,-0.37605,0.098629,0.14075,0.10349,0.027346,-0.40521,0.12455,0.10673,0.097009,0.041927,-0.40035,0.13427,0.12617,0.10025,0.022486,-0.38253,0.13103,0.13751,0.097009,0.022486,-0.39711 0.341,0.27525,0.25334,0.27525,0.25334,0.16568,0.20951,0.14376,0.18759,0.16568,0.034188,-0.031558,-0.075388,-0.053473,-0.11922,-0.22879,-0.18496,-0.16305,-0.20688,-0.18496,-0.18496,-0.29454,-0.16305,-0.22879,-0.18496 -0.2658,-0.21712,-0.1441,0.24535,0.24535,-0.29014,-0.16844,-0.046734,0.09931,0.24535,-0.29014,0.0019473,-0.046734,0.24535,0.2697,-0.24146,-0.095416,-0.022394,0.19667,0.19667,-0.21712,-0.1441,-0.022394,0.14799,0.31838 0.26297,0.17684,-0.052823,-0.081531,-0.13895,0.14813,0.23426,-0.024115,-0.11024,-0.22507,0.26297,0.23426,0.033301,-0.19636,-0.3112,0.34909,0.26297,-0.11024,-0.081531,-0.3112,0.23426,-0.024115,-0.081531,-0.22507,-0.22507 0.15062,0.12609,0.0157,-0.26641,-0.42586,0.17515,0.18742,0.040231,-0.14375,-0.34,0.16289,0.19968,0.064762,-0.057893,-0.3032,0.18742,0.17515,0.089293,-0.082424,-0.26641,0.22421,0.19968,0.13836,0.027965,-0.27867 0.23572,0.27318,-0.1607,-0.16621,-0.1653,0.23503,0.25203,-0.1607,-0.16392,-0.16438,0.24514,0.24675,-0.15955,-0.16346,-0.16346,0.2387,0.24192,-0.1607,-0.163,-0.16621,0.23434,0.24514,-0.16139,-0.16346,-0.16553 0.24524,0.24371,-0.16278,-0.15972,-0.1638,0.24269,0.24269,-0.16686,-0.16431,-0.16176,0.24524,0.24473,-0.16737,-0.16074,-0.16329,0.24575,0.24728,-0.16992,-0.16023,-0.16329,0.24524,0.24677,-0.16227,-0.16074,-0.16227 0.23032,0.16074,0.004175,-0.13499,-0.37853,0.16074,0.12595,0.004175,-0.22197,-0.43072,0.16074,0.16074,0.056362,-0.082804,-0.32634,0.21292,0.16074,0.004175,-0.082804,-0.22197,0.26511,0.23032,0.10855,0.056362,-0.22197 -0.26971,-0.26971,0.051374,0.21192,0.26543,-0.26971,-0.16269,0.10489,0.21192,0.22976,-0.28755,-0.23404,0.14057,0.12273,0.1584,-0.26971,-0.16269,0.10489,0.069212,0.21192,-0.26971,-0.10917,0.033536,0.12273,0.26543 0.10206,0.25057,-0.037544,-0.24843,-0.3316,0.23572,0.25651,-0.016752,-0.192,-0.26329,0.22087,0.26839,-0.040515,-0.1623,-0.1623,0.24463,0.24463,-0.091009,-0.16824,-0.14744,0.24463,0.22384,-0.11774,-0.15339,-0.15933 0.23405,0.23339,-0.1647,-0.16348,-0.16282,0.23074,0.23527,-0.16315,-0.16437,-0.16304,0.23228,0.23206,-0.1637,-0.16183,-0.16205,0.23482,0.23405,-0.16017,-0.16138,-0.16183,0.33628,0.23482,-0.16149,-0.16171,-0.16205 0.14572,0.12921,0.14022,-0.2615,-0.28626,0.15397,0.14572,0.16223,-0.2615,-0.26425,0.15397,0.16498,0.17048,-0.17896,-0.26425,0.18149,0.17323,0.16498,-0.21748,-0.25049,0.17874,0.18699,0.18149,-0.22023,-0.22848 -0.30624,-0.065622,-0.021874,0.10937,0.17499,-0.19687,-0.15312,0,0.10937,0.32811,-0.19687,-0.10937,0.10937,0.043748,0.30624,-0.34998,-0.21874,0.021874,0.17499,0.32811,-0.28436,-0.13124,-0.043748,0.043748,0.32811 0.25788,0.27627,0.27627,0.28547,0.27627,0.15671,0.1843,0.14752,0.17511,0.16591,-0.018026,-0.027223,-0.0088289,-0.045616,0.0095647,-0.15598,-0.14678,-0.16517,-0.14678,-0.15598,-0.31232,-0.26634,-0.25714,-0.25714,-0.24795 0.46483,0.24721,-0.14631,-0.16097,-0.21171,0.19421,0.17053,-0.05047,-0.17676,-0.21848,0.22804,0.18406,-0.017771,-0.17338,-0.21735,0.23706,0.20436,-0.0031121,-0.15195,-0.23877,0.058904,0.21451,-0.014388,-0.18014,-0.24216 0.28568,0.27135,0.28568,0.29643,0.28568,0.14951,0.17459,0.21043,0.2176,0.23551,-0.11926,-0.14793,-0.15151,-0.1336,-0.13001,-0.17302,-0.17302,-0.16226,-0.16585,-0.16585,-0.18735,-0.16943,-0.1766,-0.18377,-0.17302 -0.3161,-0.16937,0.019285,0.10313,0.41756,-0.23226,-0.2113,0.019285,0.10313,0.2289,-0.19033,-0.064562,-0.0016769,0.16602,0.20794,-0.3161,-0.19033,-0.022639,0.12409,0.35467,-0.25322,-0.022639,-0.085524,0.10313,0.2289 -0.32942,-0.34046,-0.33494,-0.33494,-0.3515,-0.11415,-0.13071,-0.10311,-0.11967,-0.11415,0.1232,0.10112,0.11768,0.11216,0.10664,0.19496,0.17288,0.18944,0.14528,0.16736,0.18392,0.18944,0.14528,0.17288,0.1508 -0.19597,-0.19084,-0.18572,-0.17854,-0.17239,-0.19802,-0.17444,-0.16931,-0.16009,-0.14984,-0.0709,-0.14881,-0.14676,-0.14061,-0.13753,0.24792,0.2469,0.24997,0.15053,0.24177,0.24895,0.24792,0.2592,0.26227,0.26433 -0.3461,-0.22838,-0.18914,-0.248,-0.18914,-0.13028,-0.1499,-0.071417,-0.18914,-0.18914,-0.051797,-0.051797,-0.11066,0.026683,-0.071417,0.16402,0.16402,0.065923,0.16402,0.12478,0.28174,0.32098,0.30136,0.30136,0.30136 -0.19117,-0.16535,-0.2073,-0.1589,-0.19117,-0.17503,-0.16212,-0.17181,-0.18471,-0.19117,-0.12017,-0.13308,-0.14276,-0.13631,-0.10081,0.21543,0.25416,0.24125,0.25093,0.26061,0.23802,0.2477,0.2477,0.2477,0.22834 0.30775,0.2862,0.23232,0.22155,0.18922,0.28081,0.25387,0.23771,0.21077,0.16767,-0.13944,-0.12327,-0.096334,-0.069395,-0.069395,-0.21487,-0.18254,-0.1987,-0.17715,-0.18254,-0.1987,-0.17715,-0.17715,-0.19332,-0.18793 -0.21636,-0.22087,-0.24341,-0.2389,-0.2389,-0.14424,-0.16227,-0.17129,-0.15776,-0.19382,-0.01803,-0.013523,-0.03606,-0.009015,-0.1172,0.22988,0.19382,0.14424,0.16678,0,0.33356,0.32905,0.32454,0.28848,0.17129 -0.018822,-0.035161,-0.067838,-0.13646,-0.29331,0.2622,0.1511,-0.015554,-0.1626,-0.26717,0.37657,0.19358,0.039997,-0.11359,-0.25737,0.32429,0.15763,0.026926,-0.10052,-0.2737,0.33409,0.20012,0.033461,-0.12012,-0.23776 0.27374,0.24782,0.066361,-0.16694,-0.21879,0.29966,0.14413,-0.037328,-0.063251,-0.32247,0.29966,-0.011406,-0.089173,-0.19286,-0.27063,0.29966,0.2219,0.14413,-0.1151,-0.14102,0.17005,-0.011406,-0.037328,-0.16694,-0.32247 0.21662,0.21289,0.2521,0.22036,0.21662,0.21662,0.20168,0.17927,0.22783,0.21289,0.026144,0.026144,0.020542,0.035481,0.031746,-0.22596,-0.22409,-0.22969,-0.22969,-0.23156,-0.23156,-0.22969,-0.22596,-0.2353,-0.23343 -0.21194,-0.20714,-0.12555,0.2296,0.244,-0.19274,-0.20714,-0.019966,0.2392,0.21521,-0.20234,-0.19274,-0.034364,0.2488,0.21041,-0.20714,-0.19274,-0.096756,0.244,0.244,-0.21674,-0.22154,-0.015166,0.2392,0.2296 0.21463,0.21463,0.21463,0.21463,0.20036,0.18609,0.20036,0.17182,0.20036,0.15755,0.14328,0.15755,0.052897,0.024355,-0.042241,-0.12787,-0.18971,-0.19922,-0.23252,-0.24679,-0.21349,-0.27533,-0.27533,-0.27533,-0.27533 0.25945,0.25825,-0.16564,-0.16235,-0.16145,0.24747,0.23909,-0.16504,-0.16355,-0.16145,0.234,0.2352,-0.16414,-0.16414,-0.16205,0.2349,0.24149,-0.16265,-0.16474,-0.16205,0.25526,0.24328,-0.16414,-0.16295,-0.16205 0.10804,0.16807,0.14806,-0.2521,-0.29212,0.16807,0.088035,0.088035,-0.19208,-0.31212,0.32813,0.068027,0.068027,-0.092037,-0.33213,0.32813,0.12805,0.14806,-0.13205,-0.23209,0.18808,0.16807,0.028011,-0.092037,-0.29212 -0.15993,-0.17364,-0.1805,-0.20793,-0.14964,-0.17021,-0.18736,-0.19422,-0.19079,-0.14964,-0.074203,-0.17021,-0.14621,-0.14621,-0.10163,0.25498,0.1624,0.27212,0.14182,0.24812,0.24812,0.28584,0.26869,0.25841,0.26184 -0.30413,-0.19666,0.098868,0.1526,0.2332,-0.25039,-0.14293,0.098868,0.098868,0.34066,-0.25039,-0.11606,-0.035463,0.12573,0.26006,-0.30413,-0.089196,0.045135,-0.0085972,0.3138,-0.27726,-0.11606,-0.11606,0.20633,0.2332 0.3168,0.34922,0.3168,0.3168,0.28439,0.16553,0.11151,0.12231,0.15473,0.11151,-0.082982,-0.082982,-0.050567,-0.050567,-0.050567,-0.19103,-0.14781,-0.19103,-0.19103,-0.1262,-0.22345,-0.19103,-0.22345,-0.22345,-0.22345 0.27035,0.013363,-0.063732,-0.16652,-0.24362,0.19325,0.29604,0.039061,-0.063732,-0.24362,0.29604,0.013363,-0.063732,-0.32071,-0.24362,0.27035,0.090458,0.013363,-0.038033,-0.24362,0.29604,0.27035,0.039061,-0.16652,-0.24362 0.21695,0.19471,-0.16266,-0.16317,-0.16519,0.22858,0.24121,-0.16216,-0.16014,-0.16165,0.2311,0.24981,-0.16468,-0.16064,-0.16165,0.24779,0.24526,-0.15912,-0.16367,-0.16519,0.27811,0.30541,-0.16317,-0.16216,-0.16367 -0.19904,-0.1908,-0.17432,-0.1702,-0.18668,-0.16609,-0.18668,-0.14137,-0.15785,-0.17844,-0.083702,-0.16609,-0.13313,-0.021914,-0.13313,0.23759,0.068708,0.097542,0.25819,0.089304,0.3241,0.28703,0.3035,0.33234,0.29114 0.2416,0.24514,-0.16521,-0.16442,-0.16206,0.24239,0.24946,-0.16717,-0.16717,-0.16285,0.2416,0.24867,-0.16796,-0.16717,-0.15499,0.24239,0.25025,-0.16088,-0.1656,-0.15341,0.24042,0.2471,-0.16324,-0.16639,-0.16049 0.17295,0.19404,0.13077,-0.10124,-0.33324,0.17295,0.17295,0.19404,-0.20669,-0.24888,0.17295,0.17295,0.17295,-0.16451,-0.16451,0.13077,0.15186,0.13077,-0.14342,-0.33324,0.13077,0.13077,0.088583,-0.20669,-0.41761 0.36885,0.11211,-0.080446,-0.18742,-0.14463,0.34746,0.090716,-0.16603,-0.20882,-0.14463,0.24048,0.1549,-0.01626,-0.16603,-0.23021,0.34746,0.047925,-0.12324,-0.14463,-0.14463,0.32606,0.19769,-0.20882,-0.14463,-0.12324 0.12907,0.12446,0.11487,-0.14631,-0.32283,0.12907,0.12556,0.11929,-0.14668,-0.29387,0.13479,0.12962,0.12446,-0.16918,-0.31231,0.13774,0.13626,0.06525,-0.15018,-0.30106,0.33546,0.33509,0.13497,-0.16254,-0.271 -0.32749,-0.27433,-0.27433,-0.23888,-0.36293,-0.13256,-0.11483,-0.097113,-0.13256,-0.13256,-0.06167,0.026936,0.026936,0.044658,0.026936,0.062379,0.13326,0.20415,0.15099,0.15099,0.25731,0.31048,0.22187,0.3282,0.20415 -0.26345,-0.2497,0.03905,0.12155,0.2178,-0.26345,-0.15345,0.1078,0.1353,0.23155,-0.2772,-0.1672,0.066549,0.1903,0.23155,-0.3047,-0.2772,0.1353,0.1628,0.2178,-0.2222,-0.18095,0.14905,0.1628,0.1903 -0.21677,-0.11198,-0.0071856,0.23234,0.27725,-0.29162,-0.17186,0.067665,0.21737,0.18743,-0.26168,-0.18683,-0.067066,0.2024,0.23234,-0.15689,-0.18683,-0.12695,0.17246,0.29222,-0.2018,-0.2018,-0.11198,0.082635,0.33713 -0.20574,-0.38879,-0.31557,-0.24235,-0.24235,-0.095916,-0.13253,-0.15083,-0.16913,-0.15083,-0.041002,-0.022698,0.050521,-0.0043931,0.013911,0.19696,0.21526,0.10543,0.14204,0.14204,0.17865,0.23357,0.28848,0.28848,0.30678 -0.27452,-0.2351,-0.047068,0.21375,0.22588,-0.27452,-0.2078,-0.050101,0.20768,0.22891,-0.25633,-0.2351,-0.031904,0.19555,0.21375,-0.24419,-0.14412,0.09547,0.19555,0.21071,-0.25633,-0.083461,0.15916,0.20465,0.18948 -0.27191,-0.1293,0.01331,0.15592,0.20345,-0.34321,-0.1293,0.01331,0.084614,0.29853,-0.31944,-0.29567,0.037078,0.22722,0.17969,-0.24814,0.01331,0.01331,0.10838,0.32229,-0.22437,-0.1293,0.01331,0.13215,0.27476 0.14428,0.13281,0.12134,-0.050691,-0.40622,0.14428,0.16721,0.12134,-0.06216,-0.34888,0.14428,0.15574,0.12707,0.029589,-0.36608,0.17295,0.13281,0.13281,0.012386,-0.37181,0.13281,0.12134,0.10987,-0.14244,-0.35461 0.35709,0.11581,-0.045038,-0.2595,-0.17908,0.19624,0.16943,0.0085786,-0.28631,-0.20589,0.30347,0.11581,0.0085786,-0.20589,-0.2595,0.30347,0.11581,-0.071846,-0.12546,-0.15227,0.27666,0.19624,-0.045038,-0.28631,-0.045038 0.25943,0.28864,0.23021,0.24482,0.23021,0.17178,0.25943,0.24482,0.21561,0.23021,-0.076543,-0.10576,-0.12036,-0.09115,-0.047328,-0.16419,-0.20801,-0.1934,-0.13497,-0.25183,-0.20801,-0.1934,-0.20801,-0.22262,-0.14958 0.30954,0.29223,0.2576,0.22298,0.24029,0.20567,0.27491,0.20567,0.20567,0.17104,-0.12326,-0.10595,-0.088637,-0.054013,-0.1752,-0.20982,-0.12326,-0.19251,-0.1752,-0.1752,-0.1752,-0.20982,-0.1752,-0.1752,-0.22713 -0.25137,-0.13144,0.16838,0.16838,0.20435,-0.23937,-0.23937,0.084428,0.14439,0.18037,-0.33531,-0.15542,0.04845,0.18037,0.18037,-0.3593,-0.11945,0.10841,0.16838,0.22834,-0.28734,-0.2034,0.060443,0.19236,0.20435 -0.32839,-0.23971,0.082331,0.19435,0.20368,-0.31906,-0.21171,0.044993,0.18501,0.21302,-0.30039,-0.14637,0.096333,0.16168,0.18501,-0.27238,-0.1277,0.14301,0.16168,0.18034,-0.28639,-0.095026,0.115,0.18968,0.17101 -0.28556,-0.28192,-0.28192,-0.271,-0.28192,-0.17999,-0.20183,-0.22731,-0.21275,-0.20547,0.15494,0.16586,0.16586,0.15494,0.16586,0.17678,0.16586,0.15494,0.16586,0.15494,0.1695,0.15494,0.15494,0.15494,0.1695 -0.1656,-0.1875,-0.1656,0.27249,0.22868,-0.27512,-0.1875,-0.056076,0.16297,0.3163,-0.20941,-0.12179,-0.12179,0.22868,0.2944,-0.23131,-0.12179,-0.12179,0.18487,0.22868,-0.20941,-0.14369,-0.034171,0.20678,0.22868 -0.33437,-0.12185,-0.0037782,0.18513,0.25597,-0.40521,-0.19269,0.067063,0.090677,0.18513,-0.19269,-0.23992,0.090677,0.090677,0.25597,-0.2163,-0.098233,-0.027392,0.1379,0.25597,-0.26353,-0.051006,0.043449,0.16152,0.32682 0.1728,0.16623,0.16388,-0.2469,-0.24361,0.16388,0.17092,0.17562,-0.25347,-0.25253,0.17843,0.18219,0.1897,-0.25018,-0.25629,0.1789,0.13947,0.13571,-0.23563,-0.23845,0.16529,0.13618,0.12257,-0.23,-0.23469 0.095152,0.051929,0.1075,-0.12714,-0.37258,0.14146,0.11522,0.11985,-0.091632,-0.29694,0.1677,0.19395,0.1322,-0.14412,-0.34942,0.18468,0.22791,0.1322,-0.10089,-0.38802,0.18932,0.24797,0.10287,-0.06539,-0.27378 0.16084,0.17489,0.16704,-0.24823,-0.25018,0.1611,0.17398,0.16652,-0.23887,-0.24975,0.1732,0.15884,0.16318,-0.23874,-0.25027,0.16075,0.16314,0.15542,-0.23874,-0.24858,0.1565,0.15776,0.15529,-0.23826,-0.2468 -0.22734,-0.24574,-0.24574,-0.33771,-0.28252,-0.15377,-0.15377,-0.061802,-0.11698,-0.15377,0.048559,-0.098589,-0.043409,0.011772,-0.043409,0.085346,0.12213,0.085346,0.19571,0.14053,0.26928,0.26928,0.36125,0.26928,0.30607 0.2813,0.29839,0.31548,0.29411,0.30266,0.16594,0.18303,0.1873,0.1873,0.1873,-0.1374,-0.15022,-0.15449,-0.14595,-0.1374,-0.16731,-0.15022,-0.16304,-0.15449,-0.15876,-0.18013,-0.18013,-0.17158,-0.18013,-0.17158 -0.20248,0.0030834,0.028778,0.028778,0.28573,-0.33095,-0.15109,0.0030834,0.23434,0.18295,-0.27956,-0.20248,0.10586,0.15725,0.31142,-0.30525,-0.12539,-0.022611,0.10586,0.26003,-0.30525,-0.20248,0.028778,0.15725,0.23434 0.30168,0.115,-0.053018,-0.090355,-0.090355,0.30168,0.26434,0.0029869,-0.12769,-0.12769,0.26434,0.13367,-0.053018,-0.16503,-0.27704,0.26434,0.171,-0.20237,-0.1837,-0.1837,0.24568,0.20834,-0.1837,-0.27704,-0.25837 -0.19171,-0.17958,-0.19171,-0.23418,-0.19171,-0.15531,-0.14924,-0.16744,-0.14317,-0.14317,-0.076441,-0.10071,-0.088574,-0.088574,-0.088574,0.087361,0.099494,0.11769,0.057027,0.093428,0.3361,0.3543,0.31183,0.3725,0.36036 -0.24942,-0.2589,-0.24942,-0.26206,-0.27469,-0.19888,-0.1894,-0.17361,-0.16729,-0.23047,0.012762,0.012762,0.075938,0.16439,-0.085162,0.18018,0.18018,0.19281,0.2244,0.15175,0.2244,0.23704,0.22756,0.22756,0.22756 -0.11907,-0.19212,-0.11907,-0.26518,-0.17386,-0.17386,-0.17386,-0.24691,-0.22865,-0.19212,0.0087661,-0.064285,-0.13734,-0.082548,-0.13734,0.19139,0.11834,0.13661,0.20966,0.17313,0.28271,0.30097,0.28271,0.30097,0.30097 0.16483,0.16115,0.16184,-0.23915,-0.24972,0.16299,0.16276,0.16253,-0.24076,-0.24972,0.16322,0.16528,0.16345,-0.24007,-0.24926,0.16322,0.16483,0.16253,-0.23915,-0.24995,0.16276,0.16528,0.16253,-0.24122,-0.25018 -0.3011,-0.1681,-0.061709,0.12448,0.31067,-0.2213,0.018087,0.12448,0.12448,0.28407,-0.2745,-0.2213,-0.088308,0.15108,0.20428,-0.3011,-0.088308,-0.0085116,0.12448,0.31067,-0.3011,-0.088308,-0.0085116,0.044686,0.31067 -0.18613,-0.05381,-0.05381,0.21083,0.21083,-0.16408,-0.27434,-0.11997,0.12262,0.25493,-0.27434,-0.097916,0.056456,0.14467,0.32109,-0.29639,-0.16408,-0.0097034,0.21083,0.25493,-0.31845,-0.14202,-0.075863,0.14467,0.29904 0.296,0.23434,-0.092421,-0.1224,-0.21536,0.28299,-0.09261,-0.099775,-0.12938,-0.20084,0.28676,0.22812,-0.12089,-0.12561,-0.15691,0.28506,0.22623,-0.10373,-0.11693,-0.22045,0.28054,0.22586,-0.1141,-0.21687,-0.21762 0.1543,0.15547,0.15547,-0.23555,-0.24687,0.1586,0.15821,0.15782,-0.23477,-0.24804,0.16328,0.1625,0.16328,-0.23516,-0.25194,0.16718,0.16796,0.16796,-0.24258,-0.25584,0.17108,0.17264,0.17225,-0.24023,-0.25702 -0.27013,-0.11665,-0.091068,0.13916,0.24148,-0.27013,-0.091068,0.062417,0.31823,0.31823,-0.29572,-0.11665,-0.065487,0.13916,0.24148,-0.27013,-0.091068,-0.065487,0.062417,0.29265,-0.19339,-0.24455,-0.014325,0.11358,0.26706 -0.21668,-0.17096,-0.056683,0.17188,0.37758,-0.26239,-0.056683,-0.1024,0.17188,0.24045,-0.33096,-0.079539,-0.079539,0.17188,0.24045,-0.33096,-0.1024,-0.056683,0.080453,0.19473,-0.23953,-0.056683,-0.033827,0.24045,0.28616 0.25387,0.24223,0.17236,-0.20613,-0.25853,0.20729,0.16071,0.16071,-0.2236,-0.26436,0.12577,0.14906,0.16071,-0.19448,-0.24689,0.12577,0.12577,0.12577,-0.2236,-0.26436,0.12577,0.13742,0.13742,-0.26436,-0.26436 -0.25697,-0.1992,-0.1992,-0.25697,-0.29163,-0.15298,-0.12987,-0.15298,-0.2223,-0.15298,-0.083653,-0.002773,-0.025882,-0.060544,-0.014327,0.0087813,0.19365,0.2052,0.1821,0.21676,0.22831,0.26298,0.27453,0.29764,0.3323 0.23884,0.23662,-0.16394,-0.15994,-0.16394,0.22506,0.25929,-0.15772,-0.16172,-0.16661,0.23128,0.28775,-0.15861,-0.16439,-0.16661,0.24373,0.24818,-0.15772,-0.16394,-0.16661,0.23306,0.24195,-0.1635,-0.16394,-0.16661 -0.25998,-0.17115,-0.082317,0.11015,0.2434,-0.21556,-0.037901,-0.037901,0.05093,0.28781,-0.23037,-0.18595,0.095346,0.13976,0.2434,-0.33401,-0.14154,0.0065143,0.21379,0.39145,-0.34881,-0.097122,0.065735,0.095346,0.19898 -0.24502,-0.24502,-0.22967,-0.19896,-0.15291,-0.22967,-0.24502,-0.19896,-0.16826,-0.18361,0.00061408,-0.014738,-0.03009,-0.091498,-0.045442,0.13878,0.27695,0.24625,0.24625,0.20019,0.18484,0.2923,0.21554,0.2616,0.21554 -0.35487,-0.34934,-0.34934,-0.33827,-0.26079,-0.089217,-0.17223,-0.072613,-0.11135,-0.072613,0.071285,0.076819,0.06575,0.071285,0.027009,0.14323,0.14877,0.1543,0.12663,0.1377,0.24839,0.22072,0.24286,0.21518,0.22072 0.20753,0.20753,-0.15678,-0.16373,-0.16878,0.20785,0.20753,-0.15441,-0.16373,-0.16767,0.21053,0.21006,-0.15489,-0.16246,-0.16704,0.29356,0.29356,-0.15473,-0.16278,-0.1672,0.29435,0.29482,-0.15331,-0.16278,-0.16704 0.41939,0.045225,-0.093054,-0.14186,-0.10119,0.38686,-0.027981,-0.10932,-0.14999,-0.16626,0.37872,-0.019847,-0.13372,-0.14186,-0.12559,0.39499,0.012689,-0.13372,-0.14999,-0.10119,0.34619,-0.027981,-0.10119,-0.15813,-0.10119 0.26227,0.2351,-0.11803,-0.087467,-0.17235,0.23171,0.26227,-0.14859,-0.18254,-0.18933,0.2351,0.25547,-0.15198,-0.18594,-0.17235,0.29282,0.26227,-0.15877,-0.17914,-0.15877,0.15701,0.22831,-0.16556,-0.17235,-0.17914 0.084424,0.01328,0.01328,-0.12901,-0.22387,0.15557,0.13185,-0.010434,-0.034149,-0.29501,0.369,0.084424,-0.057863,-0.15272,-0.22387,0.32157,0.17928,0.01328,-0.20015,-0.31872,0.44014,0.13185,0.01328,-0.010434,-0.29501 0.23927,0.2132,0.25044,0.23927,0.20947,0.2132,0.2132,0.20575,0.17967,0.19085,0.071661,0.071661,0.026966,0.0046185,-0.077323,-0.17044,-0.20396,-0.20396,-0.21886,-0.21886,-0.23003,-0.2561,-0.23003,-0.2561,-0.26355 -0.26656,-0.29955,-0.31604,-0.34903,-0.28305,-0.10161,-0.068619,-0.068619,-0.1181,-0.1346,-0.019134,-0.0026392,-0.019134,-0.019134,0.046846,0.12932,0.06334,0.1788,0.12932,0.11283,0.29427,0.31076,0.31076,0.22829,0.26128 -0.14757,-0.16327,-0.17374,-0.1877,-0.18072,-0.17374,-0.16676,-0.1877,-0.19468,-0.18072,-0.11615,-0.12139,-0.14931,-0.15106,-0.14233,0.25206,0.2381,0.25206,0.25206,0.21367,0.26253,0.26253,0.24159,0.2381,0.22414 -0.22742,-0.22742,-0.2057,-0.24371,-0.22742,-0.15683,-0.16226,-0.16226,-0.12967,-0.17855,-0.048221,-0.015639,-0.03193,-0.059081,-0.097093,0.13641,0.19071,0.22329,0.054954,0.022373,0.3319,0.36991,0.35362,0.25587,0.23415 -0.23647,-0.26196,-0.24921,-0.26196,-0.28744,-0.058099,-0.14729,-0.1218,-0.13455,-0.1218,-0.032617,-0.032617,-0.019876,-0.032617,-0.045358,0.082052,0.043829,0.094793,0.082052,0.082052,0.31139,0.34961,0.31139,0.36235,0.32413 -0.29362,-0.11458,-0.0026855,-0.025065,0.33301,-0.27124,-0.092203,0.064453,0.086832,0.33301,-0.22648,-0.15934,-0.025065,0.086832,0.31063,-0.18172,-0.13696,0.042073,0.042073,0.33301,-0.27124,-0.18172,-0.047445,0.042073,0.35539 0.13393,0.10855,0.10196,0.010108,-0.41869,0.13799,0.13646,0.13342,0.0065563,-0.30603,0.13646,0.13646,0.13697,0.0060488,-0.43391,0.12428,0.12987,0.13697,0.014168,-0.41514,0.10855,0.11008,0.1182,0.0065563,-0.35982 -0.278,-0.07816,-0.011546,0.055067,0.2327,-0.32241,-0.10036,0.077272,0.18829,0.29932,-0.18918,-0.033751,-0.07816,0.055067,0.29932,-0.36682,-0.21139,-0.033751,0.12168,0.2327,-0.278,-0.14477,0.077272,0.18829,0.29932 0.12091,0.099799,0.024514,-0.082434,-0.22104,0.43612,0.12724,-0.17109,-0.13239,-0.20556,0.11669,0.12724,0.007627,-0.1739,-0.21541,0.40587,0.13357,-0.047958,-0.18375,-0.22315,0.38194,0.12231,-0.031775,-0.18938,-0.22597 0.37385,0.27454,-0.034428,-0.12271,-0.14477,0.44006,0.13109,-0.11167,-0.14477,-0.18891,0.32972,0.075918,-0.13374,-0.15581,-0.17788,0.26351,0.10902,-0.13374,-0.15581,-0.19995,0.1973,-0.012359,-0.15581,-0.14477,-0.17788 -0.34809,-0.037665,0.045115,0.16928,0.23137,-0.31704,-0.048012,0.045115,0.1072,0.22102,-0.32739,-0.01697,0.045115,0.17963,0.26241,-0.286,-0.089402,0.06581,0.1072,0.23137,-0.34809,-0.26531,0.014072,0.14859,0.21067 0.24276,0.23623,0.22969,0.23623,0.22969,0.24603,0.24603,0.23296,0.24603,0.2395,-0.10367,-0.11674,-0.084059,-0.061181,-0.035035,-0.19191,-0.20498,-0.19845,-0.20498,-0.18537,-0.19845,-0.19191,-0.19518,-0.20825,-0.20498 0.24779,0.2746,0.060069,-0.26173,-0.39581,0.35505,0.14052,0.033253,-0.074014,-0.28855,0.19415,0.060069,0.086886,-0.074014,-0.31536,0.14052,0.16734,0.060069,-0.047197,-0.23491,0.19415,0.086886,-0.047197,-0.074014,-0.28855 0.3071,-0.013316,-0.10902,-0.12983,-0.14231,0.37367,0.13649,-0.12151,-0.15063,-0.14231,0.38616,-0.021638,-0.13815,-0.14231,-0.13815,0.38616,0.0074901,-0.14231,-0.1548,-0.14231,0.38616,0.11568,-0.12983,-0.15063,-0.12983 -0.26617,-0.12981,0.061088,0.1429,0.25199,-0.26617,-0.21163,0.1429,0.08836,0.25199,-0.29344,-0.15708,0.033817,0.25199,0.25199,-0.32071,-0.047998,-0.075269,0.1429,0.19745,-0.37526,-0.047998,0.033817,0.11563,0.22472 -0.22594,-0.22594,-0.32332,-0.26489,-0.24541,-0.1675,-0.089595,-0.089595,-0.20646,-0.20646,0.0077909,-0.089595,-0.011686,0.0857,-0.089595,0.14413,0.10518,0.18309,0.16361,0.16361,0.3389,0.29995,0.22204,0.24152,0.28047 -0.2316,-0.15118,0.0096498,0.19729,0.22409,-0.31201,-0.070766,0.0096498,0.14368,0.19729,-0.2584,-0.097571,0.036455,0.0096498,0.38492,-0.41923,-0.15118,0.06326,0.17048,0.22409,-0.2584,-0.15118,0.06326,0.14368,0.22409 -0.23689,-0.18904,-0.18904,-0.27279,-0.16511,-0.18904,-0.14118,-0.18904,-0.18904,-0.201,-0.0335,-0.0095714,-0.0095714,-0.12921,-0.057428,0.15793,0.16989,0.074178,0.14596,0.134,0.43311,0.26561,0.25364,0.28954,0.27757 0.28332,0.26631,0.11662,-0.16235,-0.38008,0.22209,0.21188,0.0792,-0.087501,-0.34606,0.17786,0.17786,0.12683,-0.11812,-0.28142,0.12343,0.11662,0.0792,-0.10111,-0.31884,0.072396,0.065591,0.058787,-0.067088,-0.31544 0.22574,0.22574,0.22175,0.24565,0.23769,0.23769,0.23769,0.24963,0.25362,0.24963,-0.08491,-0.076945,-0.064997,-0.076945,-0.08491,-0.20439,-0.19642,-0.19244,-0.18448,-0.19244,-0.20439,-0.21634,-0.21634,-0.18448,-0.20439 -0.28782,-0.30042,-0.35082,-0.38863,-0.30042,-0.1114,-0.1492,-0.060991,-0.098795,-0.098795,0.014618,0.014618,0.065024,0.0020162,0.090226,0.15323,0.19104,0.19104,0.19104,0.15323,0.22884,0.19104,0.21624,0.20364,0.24144 -0.14824,-0.14824,-0.14824,-0.14201,-0.14201,-0.17935,-0.15446,-0.17313,-0.16068,-0.16379,-0.17935,-0.17313,-0.17935,-0.17313,-0.16068,0.20026,0.21582,0.20026,0.21271,0.1847,0.28116,0.28738,0.28738,0.27805,0.27805 0.21728,0.029381,-0.1756,-0.14144,-0.22685,0.21728,0.063545,-0.090193,-0.14144,-0.15852,0.37102,0.063545,-0.10728,-0.19269,-0.20977,0.42227,0.097709,-0.073111,-0.14144,-0.1756,0.43935,0.16604,0.029381,-0.19269,-0.090193 0.38307,-0.04122,-0.074649,-0.098435,-0.13829,0.40235,-0.033506,-0.058578,-0.12736,-0.15822,0.40171,-0.030292,-0.083006,-0.096507,-0.18265,0.36957,-0.052149,-0.084935,-0.10294,-0.18651,0.394,-0.049578,-0.069506,-0.10036,-0.18201 -0.34887,-0.14811,-0.058889,0.074949,0.27571,-0.19273,-0.1035,-0.058889,0.074949,0.23109,-0.25965,-0.17042,-0.058889,0.18648,0.32032,-0.21503,-0.058889,0.11956,0.097256,0.20879,-0.30426,-0.17042,-0.014276,0.18648,0.38724 -0.3653,-0.15915,0.026387,0.21192,0.17069,-0.34468,-0.097303,-0.056073,0.19131,0.19131,-0.26222,-0.11792,0.067618,0.12946,0.15008,-0.24161,-0.11792,-0.014843,0.17069,0.315,-0.32407,-0.097303,0.10885,0.23254,0.23254 0.14454,0.12532,0.067658,-0.10533,-0.38404,0.13493,0.09649,0.077269,-0.10533,-0.34559,0.18298,0.16376,0.15415,0.0099949,-0.40326,0.16376,0.15415,0.09649,-0.018837,-0.37443,0.18298,0.18298,0.14454,-0.028447,-0.31676 0.09637,0.13387,-0.016139,-0.091792,-0.43773,0.09443,0.11318,0.0039055,-0.1002,-0.3181,0.31234,0.13323,-0.005147,-0.095025,-0.28448,0.3854,0.17978,0.013605,-0.072394,-0.14029,0.30975,0.15456,0.030416,-0.082093,-0.31746 -0.32769,0,-0.081923,0.061442,0.30721,-0.24577,-0.12288,0.040962,0.12288,0.24577,-0.40962,-0.12288,0.061442,0.16385,0.22529,-0.28673,-0.12288,0.061442,0.12288,0.18433,-0.24577,-0.1024,-0.040962,0.16385,0.34817 0.18011,0.17927,0.17864,-0.24464,-0.24632,0.16348,0.1599,0.1618,-0.2459,-0.24653,0.15275,0.15043,0.15106,-0.24379,-0.24548,0.14917,0.15022,0.14959,-0.24379,-0.24548,0.18243,0.18453,0.15275,-0.24,-0.24421 0.30876,0.29098,0.31469,0.29098,0.28505,0.14276,0.16055,0.1309,0.1309,0.15166,-0.049919,-0.049919,-0.043991,-0.020276,-0.026205,-0.13588,-0.13292,-0.13885,-0.15071,-0.1596,-0.27224,-0.23074,-0.29596,-0.25446,-0.24556 -0.22691,-0.22691,-0.10873,0.104,0.29309,-0.29781,-0.13236,0.080362,0.17491,0.36399,-0.22691,-0.20327,0.12763,0.19854,0.24581,-0.25054,-0.17963,0.0094544,0.056726,0.15127,-0.27418,-0.10873,0.0094544,0.15127,0.26945 -0.20112,-0.1662,-0.15068,0.097611,0.27219,-0.19336,-0.20112,-0.15456,0.093731,0.26831,-0.1856,-0.17784,-0.10413,0.21788,0.28771,-0.205,-0.18172,-0.053694,0.26831,0.29935,-0.17396,-0.15844,-0.026536,0.24892,0.27995 0.1696,0.16487,0.16095,-0.24458,-0.24609,0.16888,0.16505,0.16005,-0.24484,-0.24574,0.1679,0.16532,0.16059,-0.2444,-0.24529,0.16532,0.16371,0.16005,-0.24475,-0.24547,0.16041,0.15898,0.15756,-0.24342,-0.24467 -0.19958,-0.20567,-0.20415,-0.19958,-0.20263,-0.14778,-0.1493,-0.14169,-0.14169,-0.14321,-0.13254,-0.13559,-0.13864,-0.15083,-0.14016,0.24833,0.24833,0.24681,0.23919,0.22395,0.25138,0.2529,0.25595,0.23462,0.23157 0.18211,0.11789,0.096484,-0.23921,-0.30829,0.19573,0.12762,0.10427,0.0040478,-0.30343,0.19768,0.14319,0.11789,0.0059938,-0.29467,0.20157,0.14514,0.12178,-0.23142,-0.32191,0.21227,0.15584,0.12178,-0.23726,-0.3151 -0.24035,-0.24035,-0.19517,-0.24035,-0.19517,-0.19517,-0.28553,-0.1274,-0.21776,-0.19517,-0.014457,0.030721,-0.059635,0.05331,-0.059635,0.12108,0.23402,0.12108,0.16626,0.16626,0.2792,0.2792,0.25661,0.25661,0.30179 0.23919,0.23298,0.23919,0.24126,0.23505,0.24126,0.24539,0.24539,0.24126,0.24746,-0.08773,-0.096006,-0.08773,-0.10014,-0.10221,-0.18912,-0.19739,-0.19946,-0.20153,-0.19739,-0.18705,-0.19739,-0.18498,-0.18291,-0.19739 0.27094,0.26749,0.27439,0.2468,0.233,0.2261,0.2468,0.23645,0.2261,0.20886,-0.16016,-0.13947,-0.13947,-0.12912,-0.12567,-0.18086,-0.15671,-0.17396,-0.16016,-0.17051,-0.18086,-0.18086,-0.1912,-0.18086,-0.16706 0.28569,0.27023,0.27023,0.25477,0.31661,0.16201,0.16201,0.16201,0.14655,0.19293,-0.0080389,-0.085336,-0.0080389,-0.023498,-0.038958,-0.17809,-0.17809,-0.13171,-0.13171,-0.13171,-0.23993,-0.30177,-0.25539,-0.27085,-0.23993 -0.29208,-0.11066,-0.11066,0.20681,0.16146,-0.29208,-0.11066,-0.042632,0.1161,0.34287,-0.17869,-0.11066,0.025398,0.16146,0.22949,-0.24672,-0.019956,-0.11066,0.13878,0.29752,-0.36011,-0.13334,-0.042632,0.13878,0.34287 0.17996,0.17535,0.12227,-0.11197,-0.34968,0.15804,0.16035,0.10957,-0.11774,-0.33122,0.14535,0.15804,0.11765,0.064573,-0.34506,0.14535,0.14419,0.12804,-0.11428,-0.37507,0.15112,0.1465,0.14188,-0.16621,-0.33699 0.24026,0.13032,-0.065127,-0.1454,-0.18205,0.22979,0.10938,-0.10177,-0.17507,-0.21695,0.27342,-0.02848,-0.11224,-0.1995,-0.20299,0.35893,0.20536,-0.091303,-0.16285,-0.18205,0.3502,0.36067,-0.098283,-0.14191,-0.15238 0.16798,0.18689,0.092312,-0.13468,-0.32385,0.20581,0.20581,0.14906,-0.2671,-0.32385,0.18689,0.24364,0.073395,-0.13468,-0.30493,0.20581,0.054479,0.073395,-0.1536,-0.2671,0.13014,0.20581,0.035563,0.016646,-0.32385 -0.24599,-0.24599,-0.24524,-0.24494,-0.24464,-0.24434,-0.24434,-0.24374,-0.24344,-0.24479,0.15025,0.1498,0.1498,0.1498,0.1498,0.16421,0.16376,0.16271,0.16376,0.16556,0.17727,0.17412,0.17652,0.17592,0.17412 0.19906,0.19514,0.20688,0.20688,0.19123,0.15993,0.17167,0.15993,0.17167,0.18341,0.12081,0.10516,0.12081,0.13255,0.097337,-0.21956,-0.23521,-0.23129,-0.21956,-0.23521,-0.25477,-0.25868,-0.25868,-0.25477,-0.25477 0.1568,0.16478,0.20071,-0.1865,-0.22242,0.22067,0.1568,0.2047,-0.24637,-0.2823,0.19472,0.21268,0.13883,-0.24238,-0.31024,0.16877,0.16478,0.07297,-0.29028,-0.25236,0.13883,0.16478,0.0031136,-0.14857,-0.1825 -0.3342,-0.13761,0.08355,0.23099,0.28014,-0.28505,-0.088465,-0.039318,0.10812,0.25557,-0.26048,-0.16219,0.0098295,0.28014,0.18185,-0.21133,-0.063892,-0.11304,0.058977,0.32929,-0.30963,-0.16219,0.034403,0.08355,0.23099 -0.20353,-0.27727,-0.15437,-0.25269,-0.27727,-0.20353,-0.15437,-0.12979,-0.15437,-0.12979,-0.056044,-0.12979,-0.056044,-0.10521,0.017698,0.11602,0.28809,0.18976,0.21434,0.1406,0.31267,0.16518,0.31267,0.26351,0.26351 -0.24246,-0.2478,-0.25847,-0.25847,-0.25847,-0.23001,-0.2309,-0.24068,-0.22734,-0.22734,0.14978,0.14711,0.1987,0.1142,0.11243,0.16401,0.14889,0.17913,0.13555,0.11776,0.26185,0.19159,0.16312,0.18091,0.1569 -0.19174,-0.18676,0.042454,0.24675,0.2318,-0.19174,-0.20669,-0.042254,0.24675,0.24675,-0.20669,-0.22164,-0.082117,0.20689,0.2617,-0.20669,-0.17181,-0.13195,0.22184,0.24675,-0.21167,-0.18676,-0.15188,0.20689,0.2318 0.20314,0.29686,0.11228,-0.24001,-0.23126,0.1702,0.17116,0.13344,-0.24272,-0.23619,0.17402,0.12947,0.13679,-0.24749,-0.24463,0.20107,0.1301,0.13456,-0.24447,-0.24001,0.1562,0.11944,0.14267,-0.24463,-0.24001 0.26104,0.28751,-0.10658,-0.14775,-0.1154,0.2728,0.23751,-0.12717,-0.17422,-0.13893,0.27574,0.23163,-0.16246,-0.20657,-0.19775,0.28457,0.040467,-0.17128,-0.15952,-0.17716,0.26986,0.21398,-0.15952,-0.18304,-0.14775 -0.18134,-0.25597,-0.31194,-0.36791,-0.21865,-0.10671,-0.21865,-0.16268,-0.069402,-0.21865,-0.050746,-0.050746,0.061193,0.042537,0.02388,0.15448,0.15448,0.13582,0.13582,0.17313,0.26641,0.28507,0.26641,0.2291,0.28507 0.31658,0.32161,0.36178,0.32161,0.31156,0.14082,0.11068,0.17597,0.14584,0.10566,-0.12033,-0.12535,-0.12033,-0.1153,-0.12535,-0.18059,-0.14041,-0.19063,-0.15548,-0.18059,-0.21574,-0.16552,-0.18059,-0.14544,-0.15046 0.16311,0.16254,0.16311,-0.24736,-0.24879,0.16595,0.17308,0.16396,-0.2468,-0.24822,0.16937,0.17535,0.16966,-0.24452,-0.2485,0.1557,0.16282,0.16168,-0.24138,-0.2485,0.15228,0.15285,0.15684,-0.22942,-0.2448 -0.2435,-0.28394,-0.36484,-0.28394,-0.30417,-0.061481,-0.10193,-0.18282,-0.1626,-0.18282,0.080086,0.059863,0.019415,0.039639,0.019415,0.14076,0.10031,0.20143,0.080086,0.18121,0.32277,0.28233,0.24188,0.18121,0.22165 -0.24338,-0.26753,-0.25545,-0.20716,-0.25545,-0.18302,-0.20716,-0.25545,-0.19509,-0.20716,0.094648,0.070503,0.082575,0.14294,-0.11058,0.15501,0.2033,0.13087,0.16708,0.19123,0.28781,0.25159,0.16708,0.2033,0.23952 0.12665,0.094111,0.074088,-0.14367,-0.30887,0.35942,0.12164,0.054064,-0.12365,-0.35142,0.38696,0.066579,0.049058,-0.096114,-0.29134,0.10663,0.054064,0.074088,-0.093611,-0.30636,0.29935,0.069082,0.096614,-0.016019,-0.30136 -0.24185,-0.16863,0.12427,0.23934,0.27072,-0.25231,-0.1477,0.092891,0.23934,0.2498,-0.23139,-0.24185,-0.043098,0.17658,0.27072,-0.17909,-0.18955,-0.10586,0.12427,0.28118,-0.27323,-0.15817,-0.10586,0.051048,0.21842 -0.25831,-0.25684,-0.25586,-0.25978,-0.25586,-0.23231,-0.23281,-0.22937,-0.23379,-0.22937,0.1709,0.16305,0.15962,0.15864,0.14932,0.15815,0.15324,0.14932,0.15079,0.15079,0.17237,0.17335,0.17679,0.19837,0.15962 -0.24343,-0.24321,-0.24321,-0.24321,-0.24365,-0.24408,-0.24343,-0.24343,-0.24343,-0.24408,0.14415,0.14567,0.14524,0.14437,0.14328,0.14959,0.15002,0.15024,0.14763,0.14828,0.23071,0.21571,0.15763,0.20266,0.16003 0.19421,0.029694,-0.13282,-0.25721,-0.36355,0.23835,0.10593,-0.056578,-0.18498,-0.31339,0.23033,0.1902,-0.026484,-0.14486,-0.26925,0.24638,0.22832,0.055776,-0.10674,-0.19501,0.26845,0.2524,0.18017,-0.012439,-0.15689 -0.20355,-0.20355,-0.19671,-0.20081,-0.20902,-0.1365,-0.13377,-0.13377,-0.1365,-0.14061,-0.13377,-0.16934,-0.13924,-0.14608,-0.14882,0.24115,0.24115,0.23842,0.23021,0.23021,0.25347,0.24936,0.2521,0.2521,0.24389 -0.21583,-0.21051,-0.20519,-0.20652,-0.20652,-0.14403,-0.14669,-0.14403,-0.13871,-0.13871,-0.15201,-0.1294,-0.14536,-0.11877,-0.12541,0.2429,0.24556,0.24157,0.24157,0.24423,0.24423,0.2429,0.24157,0.24157,0.24157 0.17069,0.17246,0.17897,-0.23788,-0.24645,0.16625,0.16832,0.17719,-0.24025,-0.24911,0.15945,0.16241,0.16832,-0.23995,-0.25178,0.15295,0.15591,0.15857,-0.24084,-0.24852,0.15029,0.15118,0.15472,-0.24143,-0.25148 0.28568,0.27984,-0.076385,-0.17274,-0.17566,0.27109,0.25941,-0.1231,-0.17566,-0.1669,0.29444,0.25357,-0.16398,-0.16106,-0.16398,0.28276,0.16305,-0.1523,-0.14646,-0.14354,0.27401,-0.058866,-0.15814,-0.16106,-0.16398 -0.30023,0.010518,0.010518,0.082228,0.32126,-0.18071,-0.18071,-0.013386,0.082228,0.34517,-0.22852,-0.085096,0.058324,0.058324,0.29736,-0.27632,-0.15681,-0.085096,0.17784,0.20175,-0.37194,-0.15681,-0.013386,0.082228,0.32126 0.24416,0.23846,0.23846,0.22991,0.23846,0.2527,0.24985,0.24131,0.24131,0.23276,-0.1092,-0.1149,-0.0921,-0.13199,-0.043656,-0.18899,-0.19184,-0.18899,-0.19469,-0.19754,-0.19754,-0.18899,-0.19184,-0.19184,-0.18329 -0.24195,-0.089459,-0.11487,0.13927,0.29176,-0.31819,-0.064044,0.012199,0.16469,0.26634,-0.1657,-0.14029,0.012199,0.063028,0.21551,-0.19112,-0.11487,-0.03863,0.21551,0.26634,-0.36902,-0.21653,-0.089459,0.13927,0.368 -0.24623,-0.19888,-0.0094703,0.17994,0.44037,-0.22255,-0.15152,-0.0094703,0.014205,0.29831,-0.22255,-0.10417,0.014205,0.085232,0.25096,-0.29358,-0.12785,0.014205,0.037881,0.25096,-0.24623,-0.22255,0.014205,0.22729,0.22729 -0.17635,-0.17635,-0.12485,0.10692,0.28204,-0.1712,-0.17635,-0.16605,0.13268,0.30264,-0.17635,-0.18665,-0.13515,0.25114,0.28204,-0.18665,-0.1609,-0.057892,0.17903,0.29749,-0.20211,-0.20211,-0.057892,0.24084,0.28204 0.11111,0.20291,0.044633,-0.10098,-0.33681,0.11586,0.19816,0.052547,-0.11839,-0.30674,0.11111,0.19816,0.084202,-0.094648,-0.31782,0.11744,0.20766,0.044633,-0.080404,-0.35422,0.35327,0.24564,0.050964,-0.11839,-0.3099 -0.31302,-0.23129,-0.067834,0.15692,0.19778,-0.25172,-0.19042,0.075189,0.075189,0.29994,-0.16999,-0.23129,0.095621,0.075189,0.29994,-0.19042,-0.12913,0.013894,0.21821,0.25908,-0.33345,-0.1087,0.075189,0.075189,0.29994 0.2007,0.2008,-0.11375,-0.14521,-0.20983,0.19833,0.19793,-0.1183,-0.14798,-0.20646,0.19793,0.19764,-0.11949,-0.14442,-0.20735,0.19922,0.19853,-0.11642,-0.14116,-0.18964,0.38267,0.38365,-0.1188,-0.18826,-0.19033 -0.2565,-0.27629,-0.29608,-0.37525,-0.2565,-0.15754,-0.098166,-0.078374,-0.13775,-0.11796,0.079958,-0.019,0.020583,0.040375,-0.11796,0.13933,0.17891,0.15912,0.099749,0.11954,0.23829,0.27787,0.25808,0.29766,0.27787 -0.28682,-0.28682,-0.28682,-0.28682,-0.30354,-0.10296,-0.15311,-0.23668,-0.15311,-0.15311,0.097614,0.04747,0.030755,-0.0026743,0.04747,0.26476,0.14776,0.23133,0.21462,0.16447,0.16447,0.18119,0.1979,0.26476,0.1979 0.29995,0.1155,0.015931,-0.078743,-0.17342,0.28526,0.11713,-0.011818,-0.091801,-0.1979,0.22976,0.12693,-0.0052887,-0.12771,-0.18811,0.28363,0.11061,0.0045052,-0.10812,-0.19627,0.25425,0.10734,-0.044464,-0.12771,-0.59945 -0.3532,-0.14407,0.18125,0.11154,0.25096,-0.19054,-0.21378,-0.097595,0.15801,0.29743,-0.19054,-0.19054,0.01859,0.15801,0.22772,-0.30673,-0.19054,0.065064,0.18125,0.22772,-0.28349,-0.12083,0.01859,0.15801,0.22772 -0.22453,-0.10759,-0.0842,0.14969,0.26663,-0.36487,-0.0842,-0.0842,0.079523,0.21986,-0.2947,-0.13098,0.10291,0.10291,0.29002,-0.36487,-0.0842,0.10291,0.21986,0.29002,-0.22453,-0.0842,-0.014033,0.032745,0.29002 -0.23461,-0.16366,-0.21096,-0.28191,-0.21096,-0.16366,-0.16366,-0.21096,-0.21096,-0.21096,-0.045408,-0.045408,0.001892,0.001892,-0.021758,0.096493,0.14379,0.072843,0.19109,0.21474,0.28569,0.23839,0.28569,0.23839,0.40395 0.36795,0.018314,-0.13153,-0.11488,-0.14818,0.4179,0.026639,-0.11488,-0.10656,-0.13985,0.4179,0.0099896,-0.12321,-0.10656,-0.13985,0.36795,-0.064932,-0.10656,-0.13985,-0.098231,0.36795,-0.081582,-0.12321,-0.098231,-0.1565 0.16552,0.16552,0.16053,-0.24357,-0.24415,0.16475,0.16206,0.16091,-0.24262,-0.24549,0.16782,0.1611,0.15823,-0.24415,-0.2453,0.16552,0.16264,0.1636,-0.24588,-0.24626,0.16609,0.16341,0.16168,-0.24568,-0.24626 0.2385,0.23981,-0.11146,-0.12656,-0.13576,0.24375,0.23719,-0.11475,-0.12591,-0.11672,0.24375,0.23981,-0.16727,-0.15808,-0.20207,0.24507,0.24507,-0.19616,-0.18631,-0.20732,0.24638,0.24704,-0.20273,-0.17843,-0.19682 0.098717,0.13289,0.08353,-0.19743,-0.32653,0.16326,0.14428,0.14048,-0.20123,-0.32653,0.17086,0.18225,0.16326,-0.19743,-0.33032,0.15947,0.17465,0.16326,0.030375,-0.32273,0.17086,0.16326,0.12909,-0.041765,-0.32653 -0.29852,-0.15539,0.028625,0.1513,0.33532,-0.19629,-0.19629,-0.012268,0.089965,0.1922,-0.27807,-0.073607,0.11041,0.25354,0.1922,-0.25763,-0.053161,-0.1145,0.17175,0.29443,-0.29852,-0.23718,-0.032714,0.11041,0.27398 -0.17856,-0.28286,-0.32458,-0.32458,-0.28286,-0.11598,-0.1577,-0.13684,-0.13684,-0.19942,0.092617,0.092617,-0.032541,-0.095121,0.030038,0.13434,0.19692,0.13434,0.19692,0.13434,0.30122,0.19692,0.28036,0.23864,0.23864 -0.24504,-0.23879,-0.23879,-0.23969,-0.24236,-0.23344,-0.23255,-0.22988,-0.22631,-0.2165,0.050113,0.060813,0.079539,0.11877,0.13482,0.08043,0.073297,0.18476,0.27482,0.17049,0.23023,0.2338,0.18119,0.27839,0.19189 0.15671,0.11253,0.083069,-0.049488,-0.37352,0.14198,0.14198,0.14198,0.097798,-0.35879,0.14198,0.083069,0.097798,0.024155,-0.32933,0.12725,0.11253,0.11253,-0.020031,-0.4177,0.14198,0.14198,0.15671,-0.034759,-0.43243 -0.26629,-0.05067,0.030186,0.13799,0.29971,-0.34714,-0.15848,-0.023718,0.16495,0.32666,-0.18543,-0.23933,0.057138,0.08409,0.21885,-0.32019,-0.15848,-0.05067,0.13799,0.29971,-0.13153,-0.10457,-0.13153,0.11104,0.29971 -0.27669,-0.22325,0.099663,0.13219,0.13219,-0.27436,-0.22093,0.10663,0.16123,0.1682,-0.24997,-0.20467,0.081078,0.19375,0.22047,-0.243,-0.2279,0.079916,0.16587,0.2588,-0.22442,-0.2279,0.099663,0.1833,0.29016 -0.3587,-0.30641,-0.3587,-0.31948,-0.22798,-0.1234,-0.11033,-0.14954,-0.14954,-0.084184,0.0073203,0.085752,0.059608,0.059608,0.07268,0.085752,0.16418,0.1119,0.17726,0.2034,0.19033,0.24262,0.2034,0.22954,0.2949 -0.31658,-0.2969,-0.19846,-0.15908,-0.25752,-0.15908,-0.10002,-0.25752,-0.1197,-0.13939,-0.040951,-0.080327,-0.060639,0.018113,0.018113,0.096865,0.15593,0.17562,0.096865,0.15593,0.31343,0.27406,0.27406,0.27406,0.33312 0.38575,0.23428,-0.018177,-0.16965,-0.22014,0.25952,0.18379,0.05756,-0.32112,-0.22014,0.25952,-0.068668,-0.093913,-0.1444,-0.22014,0.23428,0.15854,-0.068668,-0.018177,-0.22014,0.25952,0.18379,-0.093913,-0.093913,-0.24539 -0.18775,-0.15237,-0.14058,-0.18775,-0.15237,-0.18775,-0.21134,-0.15237,-0.18775,-0.18775,-0.15237,-0.1052,-0.1052,-0.081611,-0.069817,0.11888,0.11888,0.11888,0.083498,0.15426,0.29578,0.33116,0.33116,0.33116,0.37833 0.33243,0.33793,0.30491,0.2884,0.2829,0.15631,0.16732,0.16732,0.16732,0.17282,-0.15741,-0.13539,-0.15741,-0.15741,-0.11888,-0.17942,-0.15741,-0.16842,-0.15191,-0.16291,-0.17942,-0.16291,-0.18493,-0.15191,-0.15191 0.18474,0.19749,0.18219,0.062329,-0.31511,0.17964,0.18474,0.077631,-0.072836,-0.30491,0.17454,0.17709,-0.01418,-0.20545,-0.34062,0.16434,0.16179,0.14904,-0.1927,-0.30491,0.17199,0.15414,0.049578,-0.2233,-0.29726 -0.22741,-0.28663,-0.26689,-0.18793,-0.26689,-0.18793,-0.16819,-0.22741,-0.24715,-0.24715,0.10818,-0.010265,0.048956,0.1674,0.048956,0.20688,0.10818,0.1674,0.18714,0.18714,0.20688,0.24636,0.14766,0.18714,0.30558 0.16669,0.15727,0.14659,-0.24532,-0.24469,0.16166,0.16386,0.15978,-0.24689,-0.24563,0.15727,0.16606,0.17014,-0.24312,-0.24563,0.16826,0.16229,0.16983,-0.24344,-0.24438,0.16606,0.16857,0.16449,-0.24626,-0.24344 -0.17842,-0.21755,-0.11973,0.1346,0.27155,-0.33494,-0.15886,-0.0023477,0.036781,0.29111,-0.27625,-0.06104,0.056345,0.056345,0.27155,-0.33494,-0.080604,-0.021912,0.19329,0.31068,-0.23712,-0.06104,0.075909,0.056345,0.33024 -0.17583,-0.17583,-0.033111,0.1667,0.3665,-0.34709,-0.11874,-0.033111,0.052521,0.30942,-0.31855,-0.061655,-0.033111,0.10961,0.19524,-0.14729,-0.11874,0.052521,0.052521,0.30942,-0.29001,-0.14729,-0.090199,0.13815,0.33796 -0.23298,-0.18098,-0.20178,-0.18098,-0.20178,-0.18098,-0.13937,-0.16017,-0.18098,-0.13937,-0.024962,-0.097768,-0.087367,-0.066566,-0.066566,0.11025,0.079047,0.089448,0.089448,0.037443,0.39107,0.34947,0.33907,0.31827,0.33907 0.36601,0.28081,0.22969,0.22969,0.22969,0.21265,0.22969,0.17857,0.14449,0.21265,-0.042939,-0.0259,-0.1111,-0.17925,-0.059979,-0.12814,-0.14518,-0.16221,-0.19629,-0.16221,-0.12814,-0.23037,-0.23037,-0.24741,-0.26445 0.25779,0.26227,-0.071802,-0.17936,-0.19566,0.25983,0.24842,-0.077913,-0.17284,-0.18425,0.26513,-0.076691,-0.086062,-0.18751,-0.1814,0.24231,0.25331,-0.084839,-0.18425,-0.18954,0.27572,0.28224,-0.087284,-0.1928,-0.19484 0.18212,0.090789,0.016372,-0.017454,-0.44028,0.17535,0.11108,0.02652,-0.078341,-0.37939,0.22948,0.13476,0.070493,-0.024219,-0.36586,0.23624,0.13476,0.060346,-0.0039238,-0.34218,0.22271,0.15506,0.080641,0.016372,-0.29144 -0.27819,-0.23088,-0.29002,-0.21905,-0.31367,-0.19539,-0.21905,-0.21905,-0.2427,-0.21905,0.12395,0.15944,0.15944,0.17127,0.17127,0.12395,0.15944,0.14761,0.18309,0.15944,0.18309,0.15944,0.18309,0.18309,0.15944 0.16865,0.17271,0.17512,-0.24199,-0.24561,0.16777,0.16711,0.16645,-0.24265,-0.2466,0.16294,0.16294,0.16228,-0.24287,-0.2466,0.15735,0.1591,0.15987,-0.2432,-0.24813,0.15439,0.15493,0.15713,-0.24364,-0.24748 -0.24713,-0.22328,-0.21374,-0.21851,-0.22805,-0.17557,-0.20897,-0.21851,-0.21374,-0.21374,0.082059,0.010496,-0.084922,-0.037213,-0.065838,0.22996,0.22996,0.2395,0.22996,0.21564,0.24427,0.21564,0.22042,0.21564,0.21564 0.16983,0.16642,0.16497,-0.24225,-0.24371,0.16011,0.16011,0.15865,-0.23788,-0.24759,0.15913,0.16011,0.16156,-0.23885,-0.24857,0.16108,0.16011,0.17906,-0.24565,-0.24954,0.16497,0.16254,0.16011,-0.24176,-0.25294 0.20943,0.19553,-0.18757,-0.19974,-0.25186,0.21291,0.20509,-0.012093,-0.2145,-0.23709,0.20769,0.19119,-0.011224,-0.19105,-0.22319,0.19119,0.22594,-0.019911,-0.15977,-0.22667,0.21812,0.25895,0.23723,-0.20234,-0.21624 -0.30722,-0.11589,0.020773,0.15744,0.34876,-0.36188,-0.17056,-0.0065598,0.15744,0.1301,-0.30722,-0.061225,-0.033892,0.048105,0.34876,-0.27989,-0.14322,0.020773,0.10277,0.26677,-0.17056,-0.033892,-0.061225,0.18477,0.26677 -0.26251,-0.10726,0.18206,0.25968,0.25968,-0.24839,-0.1496,0.097381,0.21029,0.18912,-0.28368,-0.20605,0.033872,0.15383,0.21734,-0.29779,-0.199,0.019759,0.14678,0.21734,-0.28368,-0.18488,-0.10726,0.15383,0.18912 -0.26646,-0.10677,-0.061139,0.30387,0.16699,-0.26646,-0.12958,-0.038326,0.18981,0.28106,-0.24365,-0.24365,-0.038326,0.16699,0.28106,-0.26646,-0.10677,0.12137,0.07574,0.23543,-0.26646,-0.12958,-0.061139,0.07574,0.32669 0.35641,0.15099,0.15099,-0.2085,-0.2085,0.30505,0.20234,0.09963,-0.13147,-0.28554,0.33073,0.20234,-0.0030813,-0.2085,-0.28554,0.17666,0.048274,-0.18283,-0.10579,-0.23418,0.17666,0.048274,-0.080115,-0.15715,-0.15715 0.18087,0.18411,0.18087,0.19382,0.17439,0.18734,0.18087,0.18411,0.16468,0.16468,0.13879,0.12584,0.13232,0.1129,0.11937,-0.21078,-0.22049,-0.21078,-0.20754,-0.21401,-0.2658,-0.27551,-0.2658,-0.27875,-0.27551 -0.28749,-0.25045,-0.28749,-0.28749,-0.28749,-0.028157,-0.10225,-0.1393,-0.17635,-0.17635,-0.065205,-0.065205,0.0088916,0.04594,-0.028157,0.19413,0.21266,0.15708,0.17561,0.082988,0.34233,0.30528,0.2497,0.17561,0.23118 0.17186,0.25954,0.02572,-0.12042,-0.32501,0.17186,0.14263,0.02572,-0.12042,-0.32501,0.37645,0.1134,-0.0035073,-0.2081,-0.2081,0.34722,-0.032735,-0.061962,-0.12042,-0.26655,0.17186,0.23031,0.1134,-0.17887,-0.17887 -0.35066,-0.080089,0.014611,0.055196,0.3393,-0.33713,-0.080089,-0.025975,0.014611,0.25812,-0.26949,-0.080089,0.014611,0.1499,0.36635,-0.25596,-0.10715,-0.053032,0.068725,0.36635,-0.2289,-0.053032,-0.025975,0.082254,0.21754 -0.29483,-0.078837,-0.051838,0.13716,0.19115,-0.26783,-0.18683,0.029159,0.13716,0.21815,-0.18683,-0.10584,0.056158,0.056158,0.43414,-0.29483,-0.18683,0.056158,0.11016,0.27215,-0.29483,-0.078837,-0.10584,0.11016,0.32615 0.23723,0.23061,-0.16536,-0.16205,-0.16145,0.23362,0.23242,-0.16265,-0.16175,-0.16235,0.23934,0.23092,-0.16445,-0.16355,-0.16325,0.23964,0.23934,-0.16325,-0.16175,-0.16325,0.24054,0.31817,-0.16114,-0.16235,-0.16325 0.15468,0.15225,0.14947,-0.24304,-0.25171,0.16334,0.16092,0.15745,-0.24304,-0.24512,0.16022,0.16681,0.163,-0.24304,-0.24512,0.16751,0.16889,0.16543,-0.24547,-0.24408,0.17028,0.17167,0.17652,-0.24512,-0.24269 0.24742,0.21746,0.26239,0.29235,0.24742,0.20249,0.15756,0.15756,0.17253,0.15756,0.082672,0.037741,-0.0071889,0.0077879,0.022765,-0.17193,-0.21686,-0.24682,-0.17193,-0.21686,-0.24682,-0.26179,-0.20189,-0.24682,-0.27677 0.23476,0.24242,-0.16325,-0.16669,-0.17014,0.23437,0.24625,-0.16325,-0.16516,-0.16593,0.23246,0.24548,-0.16171,-0.16248,-0.16325,0.22518,0.32095,-0.16133,-0.16095,-0.16363,0.23054,0.22824,-0.1552,-0.15865,-0.15903 0.26267,0.23206,0.22185,0.22185,0.22185,0.22696,0.23716,0.23716,0.25757,0.25757,-0.089394,-0.053677,-0.089394,-0.063882,-0.068985,-0.19655,-0.20165,-0.20675,-0.20675,-0.19144,-0.20165,-0.20165,-0.19655,-0.21696,-0.19144 -0.17435,-0.12453,-0.27397,-0.12453,-0.17435,-0.19925,-0.19925,-0.19925,-0.099627,-0.22416,-0.099627,-0.099627,-0.099627,-0.049814,-0.17435,0.12453,0.19925,0.19925,0.19925,0.12453,0.29888,0.27397,0.3736,0.24907,0.27397 0.21831,0.22365,-0.15906,-0.16066,-0.16547,0.22365,0.22471,-0.16173,-0.16013,-0.1644,0.22578,0.23432,-0.16333,-0.16333,-0.16547,0.23112,0.30745,-0.16066,-0.16226,-0.1644,0.26261,0.28716,-0.15959,-0.1644,-0.16386 -0.34272,-0.089229,-0.013182,0.13891,0.29101,-0.34272,-0.11458,-0.13993,0.18961,0.26566,-0.19062,-0.038531,-0.013182,0.18961,0.24031,-0.29202,-0.16528,-0.06388,0.088215,0.24031,-0.21597,-0.038531,-0.06388,0.11356,0.36705 0.16668,0.16695,0.16641,-0.24458,-0.24449,0.16523,0.16523,0.16496,-0.24485,-0.24503,0.16334,0.16361,0.16262,-0.24485,-0.24512,0.1619,0.16136,0.16136,-0.24494,-0.24521,0.15991,0.15991,0.15991,-0.24485,-0.24548 0.24196,0.23917,0.24196,0.25033,0.22801,0.25033,0.25312,0.24754,0.23359,0.24475,-0.10123,-0.12355,-0.12355,-0.12634,-0.12076,-0.18493,-0.17377,-0.18214,-0.1933,-0.18772,-0.17098,-0.18214,-0.18772,-0.18493,-0.18772 0.16436,0.16277,0.16402,-0.23783,-0.24499,0.16323,0.16504,0.1655,-0.2484,-0.24612,0.1655,0.168,0.163,-0.24374,-0.24328,0.16141,0.16232,0.16266,-0.24749,-0.24635,0.1605,0.1605,0.1605,-0.24544,-0.24567 -0.25246,-0.19543,-0.21444,-0.1384,-0.21444,-0.1384,-0.19543,-0.25246,-0.1384,-0.15741,-0.062354,-0.10038,-0.0053229,-0.10038,-0.10038,0.16577,0.070719,0.089729,0.24181,0.24181,0.29884,0.26082,0.31785,0.24181,0.33687 -0.35239,-0.1265,0.042919,0.24057,0.32528,-0.23944,-0.21121,-0.04179,0.15587,0.32528,-0.26768,-0.15474,0.042919,0.12763,0.21234,-0.21121,-0.18297,0.042919,0.042919,0.32528,-0.18297,-0.070026,-0.1265,0.042919,0.24057 0.18214,0.056366,-0.066839,-0.17721,-0.21828,0.20011,0.084601,-0.033471,-0.14384,-0.22341,0.23091,0.074334,-0.046305,-0.13101,-0.23111,0.29251,0.10514,-0.033471,-0.15668,-0.20801,0.62362,0.13337,0.012731,-0.11817,-0.20801 -0.23662,-0.31026,-0.23662,-0.34708,-0.31026,-0.1998,-0.1998,-0.12617,-0.089347,-0.089347,-0.052528,-0.0034364,0.10702,-0.0034364,-0.0034364,0.18066,0.21748,0.21748,0.18066,0.18066,0.21748,0.18066,0.21748,0.25429,0.25429 0.16291,0.16139,0.16139,-0.25145,-0.24664,0.15886,0.1543,0.15202,-0.24689,-0.24537,0.15962,0.16367,0.15987,-0.24638,-0.2479,0.17025,0.17227,0.16189,-0.24056,-0.24031,0.17303,0.17101,0.1662,-0.24158,-0.24158 0.20439,0.16268,0.1731,0.0062568,-0.31701,0.11054,0.11054,0.037541,0.016685,-0.2753,0.21482,0.12096,0.1731,-0.16059,-0.34829,0.21482,0.13139,0.047969,-0.17102,-0.37958,0.23567,0.14182,0.058397,-0.17102,-0.33787 0.15844,0.15844,0.15827,-0.24212,-0.24432,0.16113,0.15962,0.16046,-0.24415,-0.24448,0.16417,0.1635,0.16316,-0.24398,-0.2455,0.16569,0.16636,0.16535,-0.24516,-0.246,0.16805,0.16856,0.16805,-0.24617,-0.24735 -0.22284,-0.29064,-0.20024,-0.21154,-0.24544,-0.27934,-0.16634,-0.24544,-0.17764,-0.22284,0.025765,0.037065,0.014464,0.070966,0.014464,0.16137,0.16137,0.19527,0.17267,0.20657,0.17267,0.29697,0.25177,0.29697,0.18397 0.15475,0.14809,0.1148,-0.0017313,-0.33801,0.15808,0.16474,0.1148,-0.17486,-0.34799,0.14809,0.16141,0.11813,-0.018379,-0.35798,0.16474,0.15142,0.088164,0.018245,-0.34799,0.1714,0.16807,0.10148,-0.19151,-0.36797 -0.28928,-0.28928,-0.27925,-0.29681,-0.28928,-0.21651,-0.20647,-0.20647,-0.19142,-0.14123,0.19754,0.18248,0.15488,0.15237,0.12728,0.19001,0.18499,0.16492,0.14735,0.12728,0.1875,0.16492,0.1599,0.13731,0.12728 0.23294,0.20698,0.085837,-0.19971,-0.26893,0.20698,0.19833,0.15506,-0.24297,-0.26028,0.20698,0.20698,0.19833,-0.26893,-0.24297,0.15506,0.23294,0.068531,-0.20836,-0.26028,0.042573,0.15506,-0.017998,-0.17375,-0.20836 0.28074,0.26737,0.2647,0.24866,0.24866,0.22996,0.22461,0.22996,0.23263,0.21392,-0.14689,-0.16293,-0.14689,-0.14689,-0.13887,-0.17094,-0.16827,-0.16293,-0.15223,-0.16293,-0.16827,-0.18431,-0.17629,-0.17629,-0.17629 -0.17995,-0.18468,-0.094802,0.17957,0.31676,-0.16103,-0.15157,-0.12792,0.16538,0.3073,-0.20361,-0.14211,-0.12792,0.20323,0.32149,-0.16576,-0.17049,-0.11372,0.10388,0.33096,-0.16576,-0.19415,-0.15157,0.099154,0.3073 -0.35251,-0.20526,-0.0064789,0.17022,0.21439,-0.33042,-0.14636,0.05242,0.17758,0.18494,-0.34515,-0.139,0.08187,0.17022,0.21439,-0.3157,-0.058015,0.089232,0.18494,0.17758,-0.2568,-0.080103,0.14813,0.18494,0.18494 0.22864,0.18368,-0.15757,-0.18986,-0.26018,0.22864,0.19636,-0.16219,-0.18294,-0.24058,0.2321,0.19636,-0.15066,-0.15988,-0.24635,0.23786,0.19405,0.16062,-0.13913,-0.23597,0.2321,0.20327,0.16638,-0.13913,-0.19562 0.18978,0.19088,0.19336,-0.17077,-0.273,0.19803,0.1994,0.20009,-0.17255,-0.28124,0.11531,0.11614,0.11723,-0.17022,-0.27396,0.11531,0.11627,0.11572,-0.17668,-0.27836,0.21273,0.056913,0.21149,-0.17695,-0.37495 0.34022,-0.024108,-0.062866,-0.089996,-0.2334,0.30921,0.30146,-0.0493,-0.024108,-0.22371,0.33247,-0.024108,-0.062866,-0.16751,-0.23146,0.32472,-0.014418,-0.074493,-0.21984,-0.25278,0.27239,0.19875,-0.031859,-0.14813,-0.14426 -0.27982,-0.17153,0.045049,0.19666,0.19666,-0.36646,-0.041584,0.023391,0.175,0.30495,-0.17153,-0.23651,-0.041584,0.045049,0.26163,-0.23651,-0.10656,0.045049,0.023391,0.30495,-0.32314,-0.12822,0.023391,0.175,0.28329 0.16239,0.21444,0.20143,0.20143,0.24046,0.16239,0.13637,0.20143,0.16239,0.1754,0.084318,0.12335,0.13637,0.09733,0.084318,-0.20195,-0.29303,-0.16291,-0.22797,-0.16291,-0.28002,-0.26701,-0.26701,-0.25399,-0.26701 0.16487,0.16924,0.1707,-0.24919,-0.22004,0.17945,0.16632,0.16778,-0.24919,-0.23316,0.17216,0.16778,0.17216,-0.24336,-0.23753,0.17216,0.16632,0.15466,-0.26377,-0.24919,0.17361,0.14883,0.094884,-0.25211,-0.24336 -0.27546,-0.27546,-0.29033,-0.30521,-0.33496,-0.067229,-0.15647,-0.11185,-0.12672,-0.096977,-0.022608,0.0071394,0.022013,0.051761,0.036887,0.17075,0.096382,0.081508,0.066634,0.066634,0.27487,0.34923,0.27487,0.27487,0.28974 0.29447,0.29018,-0.16204,-0.16247,-0.1629,0.2314,0.28803,-0.16119,-0.16247,-0.1629,0.22303,0.23161,-0.16247,-0.16333,-0.16333,0.22046,0.22174,-0.16204,-0.16247,-0.1629,0.21788,0.21874,-0.16204,-0.16204,-0.1629 -0.23392,-0.2219,-0.059666,0.087546,0.2663,-0.20838,-0.16031,-0.067177,0.10257,0.26781,-0.23091,-0.088207,-0.065675,0.25128,0.17017,-0.24593,-0.17083,-0.13177,0.28884,0.27532,-0.2189,-0.18435,0.02746,0.27382,0.27682 0.16315,0.16285,0.16285,-0.24504,-0.24458,0.16315,0.16285,0.16285,-0.24504,-0.2452,0.16331,0.16285,0.16331,-0.24458,-0.24504,0.16315,0.16377,0.16331,-0.24504,-0.24489,0.16408,0.16424,0.16377,-0.24504,-0.24504 0.37896,-0.044858,-0.068668,-0.09724,-0.16391,0.38848,-0.061525,-0.068668,-0.12105,-0.15915,0.40277,-0.059144,-0.061525,-0.1401,-0.15676,0.37658,-0.023429,-0.075811,-0.12819,-0.14248,0.40991,-0.02581,-0.068668,-0.14248,-0.14724 -0.22368,-0.16388,0.01555,0.01555,0.3445,-0.19378,-0.28349,0.045454,0.16507,0.25478,-0.3134,-0.16388,-0.044258,0.25478,0.19498,-0.25359,-0.13397,-0.044258,0.10526,0.31459,-0.28349,-0.044258,0.045454,0.13517,0.25478 -0.31477,-0.077209,-0.017817,0.13066,0.21975,-0.22569,-0.047513,-0.077209,0.19005,0.19005,-0.28508,-0.1069,0.13066,0.041574,0.30884,-0.37417,-0.1663,-0.047513,0.13066,0.24944,-0.31477,-0.1069,0.07127,0.21975,0.27914 -0.26909,-0.3357,-0.20248,-0.29129,-0.3579,-0.11368,-0.091473,-0.091473,-0.18028,-0.11368,0.04174,0.019538,-0.0026643,0.019538,-0.024867,0.086145,0.10835,0.086145,0.13055,0.15275,0.30817,0.28597,0.21936,0.33037,0.28597 -0.27032,-0.23159,-0.25096,-0.28968,-0.27032,-0.28968,-0.13477,-0.21223,-0.21223,-0.11541,0.097594,0.00077455,0.058866,0.020138,0.07823,0.27187,0.13632,0.21378,0.21378,0.19441,0.13632,0.19441,0.27187,0.21378,0.17505 -0.32833,-0.19886,-0.069396,0.11186,0.24133,-0.30244,-0.043502,0.060074,0.21544,0.13776,-0.19886,-0.17297,0.085968,0.13776,0.31901,-0.38012,-0.043502,-0.017608,0.13776,0.29312,-0.27655,-0.069396,-0.017608,0.11186,0.26722 0.30097,0.33219,0.30097,0.33219,0.33219,0.16048,0.14487,0.14487,0.16828,0.13706,-0.15174,-0.15174,-0.14393,-0.12832,-0.15174,-0.16735,-0.15954,-0.15954,-0.16735,-0.14393,-0.15954,-0.14393,-0.19857,-0.16735,-0.15954 0.21597,0.22269,0.24955,0.24955,0.22269,0.21597,0.24284,0.21597,0.21597,0.20254,0.0077901,-0.032503,0.0077901,-0.019072,-0.012357,-0.20711,-0.20039,-0.20711,-0.22054,-0.22726,-0.22726,-0.22726,-0.22054,-0.22054,-0.2474 -0.39815,-0.19957,-0.07546,0.12312,0.29688,-0.2244,-0.2244,0.048652,0.073475,0.29688,-0.19957,-0.19957,0.02383,0.098297,0.27205,-0.27404,-0.025815,-0.07546,0.098297,0.29688,-0.19957,-0.025815,0.048652,0.14794,0.29688 -0.1723,-0.17377,-0.17194,-0.17487,-0.1734,-0.15725,-0.15871,-0.15725,-0.15945,-0.15871,-0.15504,-0.15651,-0.15651,-0.15725,-0.15871,0.26143,0.20928,0.20818,0.23278,0.23792,0.25629,0.28861,0.26253,0.24857,0.23609 0.17411,0.17672,0.15402,-0.24216,-0.24625,0.17536,0.17672,0.17184,-0.24352,-0.24693,0.17683,0.17808,0.18716,-0.24171,-0.24443,0.17173,0.17002,0.17638,-0.23842,-0.2467,0.11678,0.11656,0.11656,-0.24069,-0.24806 0.35545,0.095046,0.062496,-0.23045,-0.263,0.22525,-0.002604,-0.067704,-0.23045,-0.16535,0.42055,0.1276,-0.035154,-0.10025,-0.16535,0.388,0.1276,0.095046,-0.23045,-0.23045,0.16015,-0.002604,-0.002604,-0.10025,-0.23045 0.23576,0.23843,0.24913,0.25002,0.2518,0.22863,0.25091,0.25269,0.25448,0.22595,-0.14041,-0.13328,-0.13061,-0.13596,-0.14665,-0.15557,-0.15646,-0.15557,-0.15735,-0.15557,-0.19301,-0.1939,-0.1939,-0.19479,-0.19479 -0.17092,-0.17092,-0.17092,-0.17092,-0.16471,-0.17092,-0.17921,-0.16471,-0.1585,-0.1585,-0.16264,-0.14815,-0.15436,-0.15022,-0.15022,0.26591,0.24107,0.24314,0.24728,0.21622,0.25763,0.25556,0.24107,0.24521,0.23278 0.11169,0.10838,0.11467,-0.22217,-0.24632,0.12294,0.12129,0.13221,-0.23044,-0.25162,0.1643,0.16099,0.15835,-0.21919,-0.25459,0.21228,0.19905,0.19011,-0.23573,-0.25856,0.20666,0.20732,0.20864,-0.2354,-0.26485 0.23832,0.15604,0.096596,0.029827,-0.2855,0.2534,0.17155,0.1009,0.056104,-0.24371,0.23617,0.17284,-0.11104,-0.24759,-0.26094,0.23487,0.15777,-0.11577,-0.1847,-0.27214,0.25297,0.17069,-0.12051,-0.18857,-0.29756 -0.29578,-0.14838,-0.099249,0.097283,0.22012,-0.27121,-0.074682,-0.099249,0.04815,0.31838,-0.36948,-0.099249,0.097283,0.14642,0.22012,-0.24665,-0.12382,0.023584,0.097283,0.31838,-0.27121,-0.074682,0.14642,0.12185,0.31838 -0.3007,-0.053413,-0.1276,0.14441,0.29278,-0.1276,-0.15233,-0.0039565,0.19387,0.24333,-0.25124,-0.1276,0.020772,0.2186,0.29278,-0.37488,-0.15233,-0.028685,0.070228,0.31751,-0.22651,-0.1276,-0.1276,0.14441,0.24333 0.3238,-0.15046,0.088298,-0.20907,-0.29372,0.30535,0.16644,-0.16132,-0.1993,-0.27853,0.26194,0.17838,0.052484,-0.13852,-0.25682,0.25977,0.17186,0.049228,-0.08209,-0.20798,0.23807,0.15341,0.021011,-0.077749,-0.21449 -0.21186,-0.30125,-0.21186,-0.27891,-0.27891,-0.10012,-0.23421,-0.12247,-0.21186,-0.10012,-0.077772,-0.033075,-0.033075,-0.033075,0.056317,0.16806,0.12336,0.16806,0.2351,0.14571,0.25745,0.2351,0.3245,0.19041,0.3245 -0.17903,-0.17903,-0.16162,-0.21386,-0.23128,-0.12679,-0.19645,-0.19645,-0.19645,-0.23128,-0.0048764,-0.1442,0.04737,-0.10937,-0.10937,0.16928,0.16928,0.13445,0.13445,0.099617,0.36085,0.34344,0.3086,0.25636,0.25636 0.16382,0.16498,0.16537,-0.24949,-0.25065,0.1646,0.1646,0.15763,-0.25104,-0.25026,0.16576,0.16614,0.16537,-0.23826,-0.24949,0.15415,0.16537,0.16653,-0.23749,-0.24639,0.15957,0.15879,0.16614,-0.23633,-0.23943 0.19729,0.20307,0.25511,0.26667,0.26667,0.1915,0.22041,0.22041,0.26667,0.28402,-0.09182,-0.09182,-0.068692,-0.080256,-0.051345,-0.20168,-0.18433,-0.1959,-0.1959,-0.19012,-0.20168,-0.19012,-0.20168,-0.20168,-0.22481 -0.1827,-0.1044,0.0261,0.1305,0.3132,-0.3393,-0.1827,0.1044,0.1566,0.3132,-0.2349,-0.1044,0.0261,0,0.261,-0.2871,-0.1305,-0.1827,0.1566,0.2349,-0.3132,-0.1305,0.0522,0.1566,0.261 -0.24843,-0.24762,-0.24762,-0.24601,-0.24843,-0.24199,-0.2436,-0.2444,-0.24038,-0.24038,0.16117,0.15634,0.15795,0.15795,0.15473,0.16599,0.16438,0.15956,0.16197,0.16197,0.17163,0.17163,0.1676,0.1676,0.16841 -0.24317,-0.20504,-0.010167,0.21436,0.21012,-0.21775,-0.20504,0.12963,0.21436,0.2186,-0.23046,-0.22622,-0.061004,0.20589,0.21012,-0.23893,-0.22199,-0.052531,0.22283,0.2186,-0.24317,-0.21775,0.10421,0.21012,0.21436 0.21852,0.25434,0.27225,0.25434,0.22748,0.17374,0.20956,0.20956,0.17374,0.17374,0.075228,0.03045,-0.0053734,-0.050152,-0.050152,-0.1218,-0.13075,-0.16658,-0.17553,-0.2024,-0.27405,-0.27405,-0.27405,-0.27405,-0.27405 0.25237,-0.089571,-0.087207,-0.087798,-0.25977,0.25001,0.25171,-0.088463,-0.088537,-0.25999,0.25023,0.25119,-0.088759,-0.08706,-0.26051,0.25304,0.25422,-0.088759,-0.088463,-0.26095,0.25555,0.25584,-0.08898,-0.087503,-0.26184 0.20989,0.19925,0.15668,-0.1307,-0.25843,0.17796,0.22054,0.15668,-0.1307,-0.301,0.17796,0.17796,0.17796,-0.066842,-0.29036,0.17796,0.19925,0.12474,-0.23714,-0.26907,0.060882,0.060882,0.018307,-0.29036,-0.32229 0.18619,0.15409,-0.056865,-0.22654,-0.19903,0.27332,0.19995,-0.075209,-0.21279,-0.2082,0.19995,0.25039,-0.1119,-0.21279,-0.2403,0.18619,0.19995,-0.056865,-0.17151,-0.26782,0.27791,0.18619,0.2458,-0.066037,-0.25406 0.23845,0.23845,0.24983,0.2339,0.23845,0.2521,0.24528,0.24983,0.24528,0.243,-0.1165,-0.12332,-0.12332,-0.13015,-0.1256,-0.17793,-0.17565,-0.18475,-0.1802,-0.18248,-0.16883,-0.19841,-0.18475,-0.17565,-0.18703 -0.17498,-0.17116,-0.17116,-0.17116,-0.17498,-0.17116,-0.16926,-0.16926,-0.16926,-0.17116,-0.14637,-0.14733,-0.15019,-0.14256,-0.14637,0.23024,0.25122,0.25312,0.25026,0.24168,0.24073,0.24836,0.2474,0.24168,0.24168 -0.25195,-0.25046,-0.25195,-0.24823,-0.25195,-0.23633,-0.2393,-0.23484,-0.24153,-0.24228,0.1639,0.16167,0.16167,0.1639,0.15572,0.1639,0.1639,0.1639,0.1639,0.15944,0.16911,0.16613,0.1639,0.16613,0.16167 0.34837,0.19034,-0.10816,-0.10816,-0.16084,0.32203,0.21668,-0.14328,-0.1784,-0.1345,0.32203,0.13766,-0.14328,-0.14328,-0.15206,0.34837,-0.055487,-0.1345,-0.14328,-0.16084,0.33081,0.049868,-0.18718,-0.14328,-0.16962 0.17048,0.020145,-0.12868,-0.24143,-0.38726,0.21107,0.095311,-0.050512,-0.18731,-0.30908,0.24865,0.11936,0.011125,-0.16326,-0.26549,0.30127,0.18852,0.045701,-0.058029,-0.21738,0.32532,0.26368,0.12989,-0.0024053,-0.11967 0.28416,0.28822,0.2801,0.27604,0.2943,0.14013,0.13405,0.13202,0.14013,0.14419,0.024505,0.020448,0.016391,0.016391,0.018419,-0.18849,-0.19255,-0.18444,-0.19661,-0.19255,-0.25746,-0.25341,-0.25949,-0.24123,-0.24326 -0.14865,-0.16618,-0.25383,-0.2363,-0.25383,-0.13112,-0.18371,-0.14865,-0.18371,-0.14865,-0.043474,-0.078533,-0.025944,-0.025944,-0.061003,0.079234,0.079234,0.096764,0.079234,0.044175,0.32465,0.4123,0.35971,0.30712,0.30712 0.38578,0.10044,0.014838,-0.099297,-0.3561,0.32871,0.18604,0.014838,-0.12783,-0.3561,0.21457,-0.013696,0.071905,-0.12783,-0.1849,0.30017,0.043371,-0.099297,-0.12783,-0.070764,0.27164,0.014838,0.043371,-0.099297,-0.32757 0.39608,0.1765,-0.011711,-0.13718,-0.12673,0.33334,0.15559,-0.12673,-0.1581,-0.16855,0.38562,0.030114,-0.12673,-0.16855,-0.13718,0.3438,0.071938,-0.21038,-0.16855,-0.14764,0.26015,-0.0012547,-0.12673,-0.18946,-0.14764 -0.26596,-0.21078,-0.19699,-0.26596,-0.30735,-0.21078,-0.12801,-0.26596,-0.14181,-0.26596,0.0927,0.078906,0.051316,0.078906,-0.072836,0.21685,0.21685,0.21685,0.17547,0.0927,0.21685,0.21685,0.21685,0.25824,0.20306 -0.31765,-0.23902,-0.3491,-0.36482,-0.33337,-0.11322,-0.097496,-0.097496,-0.12895,-0.066046,0.075481,0.075481,0.028305,-0.01887,0.028305,0.091206,0.15411,0.16983,0.10693,0.15411,0.23273,0.26418,0.24846,0.20128,0.29563 0.34935,0.33338,0.31284,0.28547,0.306,0.17595,0.13945,0.11435,0.091535,0.08469,-0.013415,-0.04992,-0.063609,-0.056765,-0.056765,-0.13434,-0.15715,-0.15715,-0.15715,-0.15031,-0.22788,-0.22788,-0.24157,-0.24157,-0.25754 -0.20961,-0.23603,-0.25365,-0.24484,-0.28007,-0.192,-0.18319,-0.16558,-0.13915,-0.14796,-0.042275,0.0017614,-0.015853,0.03699,0.072219,0.089834,0.098641,0.098641,0.072219,0.054605,0.35405,0.30121,0.36286,0.33644,0.23075 -0.19085,-0.16069,-0.13053,0.23138,0.2917,-0.21497,-0.15466,-0.11243,0.159,0.23138,-0.19085,-0.19085,-0.10037,0.23138,0.24947,-0.17275,-0.16672,-0.17878,0.23138,0.30979,-0.19688,-0.14862,-0.094337,0.19519,0.2736 0.22022,0.14115,-0.087722,-0.24377,-0.32908,0.14531,0.23062,-0.068995,-0.198,-0.31452,0.15572,0.23478,-0.037785,-0.15014,-0.2625,0.20982,0.14115,0.1578,-0.14182,-0.22297,0.26183,0.25143,0.18485,-0.096044,-0.18135 0.25852,0.12413,0.022317,-0.056417,-0.1718,0.2463,0.14313,0.022317,-0.088996,-0.17859,0.20693,0.1282,0.033177,-0.10121,-0.18402,0.2463,0.14042,0.01553,-0.078137,-0.48402,0.24902,0.12413,-0.012978,-0.10529,-0.49896 0.3252,0.3252,0.3375,0.3252,0.3252,0.11611,0.11611,0.09151,0.14071,0.11611,-0.043787,-0.056087,-0.092986,-0.056087,-0.056087,-0.15448,-0.15448,-0.19138,-0.20368,-0.14218,-0.21598,-0.21598,-0.20368,-0.20368,-0.22828 0.38155,0.16981,0.027791,-0.12698,-0.27325,0.35519,0.16981,-0.0036737,-0.13038,-0.28005,0.33563,0.16981,-0.0011225,-0.15504,-0.26814,0.02694,0.17066,0.036295,-0.12698,-0.269,0.028641,0.17236,-0.00027212,-0.12698,-0.2826 0.19687,0.19687,0.19687,0.21517,0.19687,0.15113,0.15113,0.21517,0.17858,0.16943,0.13284,0.068796,0.12369,0.12369,0.087093,-0.2331,-0.26055,-0.19651,-0.20566,-0.22395,-0.2697,-0.21481,-0.26055,-0.2697,-0.2697 -0.24271,-0.19777,-0.062925,0.13933,0.22923,-0.24271,-0.24271,0.0044947,0.16181,0.29665,-0.28766,-0.24271,0.11686,0.11686,0.22923,-0.19777,-0.24271,0.026968,0.13933,0.27417,-0.19777,-0.15282,0.13933,0.2517,0.18428 -0.2894,-0.1262,0.064189,0.11859,0.20018,-0.2622,-0.1534,-0.017407,0.17298,0.30898,-0.39819,-0.1534,-0.071805,0.14579,0.22738,-0.1806,-0.099004,0.14579,0.14579,0.36338,-0.2894,-0.099004,-0.017407,0.03699,0.22738 0.25287,0.2497,0.24653,0.24495,0.24812,0.24019,0.24178,0.23861,0.24099,0.23782,-0.13684,-0.13526,-0.13843,-0.13209,-0.12892,-0.17724,-0.17882,-0.17328,-0.1709,-0.17328,-0.18041,-0.18041,-0.1812,-0.17803,-0.17645 -0.25649,-0.30992,-0.29211,-0.23868,-0.23868,-0.25649,-0.042748,-0.16743,-0.18524,-0.096184,-0.024936,0.010687,-0.042748,0.046311,0.028499,0.13537,0.20662,0.081934,0.11756,0.13537,0.29568,0.31349,0.20662,0.26005,0.31349 -0.26864,-0.17224,-0.2411,-0.22733,-0.26405,-0.19519,-0.19519,0.011385,-0.080428,-0.16306,-0.052884,-0.16306,-0.0942,-0.13092,-0.029931,0.18583,0.13992,0.17206,0.15828,0.17206,0.26846,0.296,0.296,0.28223,0.296 0.16481,0.16385,0.16792,-0.24339,-0.24483,0.16505,0.16481,0.16672,-0.24411,-0.24651,0.16289,0.16457,0.16624,-0.24291,-0.24795,0.16001,0.15857,0.16385,-0.24339,-0.24483,0.15665,0.16049,0.16289,-0.24507,-0.24627 -0.16858,-0.1292,-0.26706,-0.30645,-0.18828,-0.18828,-0.20797,-0.18828,-0.1292,-0.18828,-0.050418,-0.1095,-0.050418,-0.030723,-0.030723,0.14653,0.087444,0.087444,0.245,0.20561,0.30408,0.26469,0.30408,0.26469,0.32378 0.40151,0.11291,-0.058874,-0.16882,-0.23753,0.44824,0.1294,-0.0066515,-0.16057,-0.23341,0.45098,0.05794,-0.036886,-0.14958,-0.22516,0.085425,0.06756,-0.012149,-0.14271,-0.20592,0.1294,0.07718,0.016711,-0.12896,-0.21005 0.19156,0.11383,0.039888,-0.13832,-0.25965,0.13468,0.12331,0.049368,-0.1459,-0.29757,0.16691,0.10814,0.028513,-0.11747,-0.3298,0.15364,0.1252,0.06643,-0.1004,-0.27292,0.54608,0.15933,0.062638,-0.11747,-0.28999 -0.21754,-0.21754,-0.23786,-0.21754,-0.21754,-0.15659,-0.14304,-0.15659,-0.12272,-0.1295,-0.041449,-0.041449,-0.082086,-0.034677,-0.027904,0.073688,0.073688,0.033051,0.060142,0.046597,0.40555,0.37169,0.31073,0.33783,0.33105 -0.18264,-0.18264,-0.18689,-0.18689,-0.18264,-0.16136,-0.15001,-0.15001,-0.15569,-0.15427,-0.13016,-0.15569,-0.16136,-0.15427,-0.14576,0.27694,0.25566,0.24715,0.23864,0.22304,0.2585,0.25708,0.24289,0.22162,0.21878 0.43115,0.051986,-0.030559,-0.13164,-0.30161,0.41788,0.1962,-0.09359,-0.17516,-0.26317,0.14663,0.14448,-0.077979,-0.069002,-0.27078,0.27035,0.082038,-0.07954,0.005542,-0.2579,0.16985,0.081062,0.010421,-0.00050737,-0.25614 -0.26562,-0.05064,-0.05064,0.14045,0.25989,-0.17007,-0.17007,0.02102,0.02102,0.30766,-0.24173,-0.1223,0.02102,0.068793,0.45098,-0.26562,-0.21785,-0.074526,0.14045,0.33155,-0.26562,-0.1223,-0.05064,0.068793,0.236 0.20139,0.23635,0.21887,0.16642,0.21887,0.1839,0.11398,0.1839,0.1839,0.079016,0.11398,0.061535,0.079016,0.079016,0.16642,-0.18321,-0.13076,-0.13076,-0.11328,-0.14824,-0.32306,-0.30558,-0.30558,-0.32306,-0.32306 -0.24733,-0.24786,-0.25049,-0.24417,-0.24733,-0.24575,-0.23785,-0.24364,-0.24733,-0.23679,0.16306,0.16095,0.16201,0.15568,0.152,0.17149,0.1599,0.16991,0.16622,0.15568,0.16886,0.16727,0.1736,0.16622,0.15568 -0.20499,-0.17313,-0.12902,0.098918,0.25578,-0.20009,-0.17803,-0.11431,0.25332,0.25332,-0.20254,-0.16578,-0.12411,0.23617,0.25578,-0.20499,-0.14617,-0.11676,0.25823,0.25823,-0.19029,-0.15843,-0.08735,0.25578,0.27048 0.2772,0.15028,0.048739,-0.12896,-0.17973,0.2772,0.25182,-0.0020308,-0.10357,-0.35742,0.20105,0.22643,0.074124,-0.12896,-0.17973,0.20105,0.12489,-0.15434,-0.20511,-0.17973,0.17566,0.15028,-0.0020308,-0.078186,-0.45896 0.23861,0.12181,0.057521,0.021088,-0.35074,0.20379,0.11753,0.046806,0.017874,-0.37592,0.20379,0.097705,0.052699,0.0076938,-0.36949,0.21183,0.1036,0.048949,0.014659,-0.38825,0.17646,0.096633,0.038233,0.0082296,-0.40111 0.33718,0.31517,0.29316,0.33718,0.28215,0.1501,0.10608,0.1391,0.1391,0.11709,-0.058984,-0.058984,-0.058984,0.0070429,-0.103,-0.12501,-0.16903,-0.20204,-0.103,-0.16903,-0.23506,-0.23506,-0.23506,-0.23506,-0.23506 0.23056,0.23056,0.23767,0.23056,0.22629,0.25048,0.25901,0.25048,0.25332,0.25617,-0.10808,-0.11093,-0.11377,-0.11804,-0.11662,-0.16642,-0.17922,-0.17922,-0.18207,-0.18064,-0.18776,-0.19487,-0.19203,-0.1963,-0.19914 -0.20054,-0.22633,-0.02425,0.22513,0.22943,-0.22633,-0.21773,-0.11884,0.23803,0.22513,-0.23923,-0.20054,-0.011351,0.22513,0.21223,-0.21344,-0.21773,0.12624,0.21653,0.21223,-0.22203,-0.20054,-0.037149,0.21653,0.22943 -0.17945,-0.13398,-0.13398,0.21461,0.33586,-0.1946,-0.16429,-0.058199,0.24492,0.27523,-0.25523,-0.13398,-0.043043,0.1843,0.26008,-0.22492,-0.13398,-0.073356,0.063049,0.29039,-0.22492,-0.16429,-0.088512,-0.027887,0.36617 -0.2014,-0.25674,-0.2844,-0.29823,-0.2844,-0.18757,-0.15991,-0.15991,-0.15991,-0.2014,-0.0077463,-0.021579,-0.021579,0.07525,0.0060864,0.18591,0.19974,0.28274,0.24124,0.18591,0.14441,0.25508,0.25508,0.19974,0.21358 0.24,0.26474,0.24,0.20289,0.28949,0.3266,0.24,0.12866,0.16577,0.16577,0.029691,-0.069278,-0.069278,-0.10639,-0.019794,-0.16825,-0.18062,-0.14351,-0.15588,-0.18062,-0.26722,-0.2301,-0.26722,-0.25485,-0.18062 -0.18591,-0.050538,0.10739,0.12995,0.28788,-0.25359,-0.23103,0.039708,0.017147,0.31045,-0.29871,-0.16335,0.039708,0.06227,0.17508,-0.29871,-0.20847,0.084831,0.15252,0.24276,-0.34384,-0.095661,-0.0054148,0.15252,0.33301 -0.17815,-0.20882,-0.21649,-0.21036,-0.21649,-0.13521,-0.14288,-0.14288,-0.13981,-0.13367,-0.14134,-0.14134,-0.14748,-0.13674,-0.13827,0.24974,0.24054,0.24054,0.24054,0.24054,0.24821,0.24054,0.23901,0.24974,0.24054 0.16161,0.16105,0.16383,-0.2433,-0.24441,0.15659,0.16049,0.1694,-0.24386,-0.24664,0.16049,0.16161,0.16495,-0.24386,-0.24386,0.16829,0.16161,0.16383,-0.24052,-0.24553,0.16829,0.15882,0.16829,-0.24998,-0.2472 -0.31584,-0.18402,0.11916,0.13235,0.11916,-0.32902,-0.091746,0.066437,0.11916,0.19826,-0.32902,-0.15766,0.14553,0.17189,0.22462,-0.32902,-0.15766,0.10598,0.19826,0.21144,-0.28948,-0.11811,0.10598,0.17189,0.21144 0.057728,0.26359,0.2176,-0.15032,-0.26201,0.14314,0.22636,-0.021112,-0.1766,-0.23792,0.23731,0.20008,0.027068,-0.1766,-0.25106,0.25483,0.18694,0.029258,-0.18974,-0.27077,0.25702,0.19351,-0.084621,-0.18974,-0.28391 0.23523,0.22301,0.23217,0.22607,0.23217,0.24133,0.24439,0.25049,0.2566,0.25355,-0.1098,-0.10674,-0.073157,-0.070104,-0.070104,-0.18613,-0.19529,-0.18613,-0.20445,-0.19529,-0.19834,-0.19834,-0.20445,-0.2014,-0.19529 0.15008,0.11758,0.077588,0.045093,-0.41983,0.14508,0.10758,0.077588,0.035094,-0.35484,0.14258,0.11258,0.090086,0.047592,-0.39484,0.16007,0.13258,0.080087,0.055091,-0.39234,0.15008,0.10758,0.087586,0.045093,-0.40484 0.19649,0.15981,0.073357,-0.29081,-0.36154,0.19387,0.15719,0.089076,-0.026199,-0.3694,0.18601,0.15457,0.062877,-0.023579,-0.33535,0.16505,0.15981,0.052398,-0.015719,-0.3694,0.18077,0.16243,0.073357,0,-0.27509 0.22192,0.32129,0.25504,0.28816,0.15568,0.15568,0.17224,0.25504,0.25504,0.20536,-0.076181,-0.092743,-0.043059,-0.043059,-0.026498,-0.12587,-0.12587,-0.19211,-0.12587,-0.20867,-0.27492,-0.22523,-0.24179,-0.22523,-0.25835 -0.16695,-0.16565,-0.16565,-0.16434,-0.16826,-0.16304,-0.16304,-0.16565,-0.16565,-0.16695,-0.16043,-0.15913,-0.15783,-0.15783,-0.15783,0.24958,0.25284,0.23915,0.23459,0.23459,0.26066,0.2574,0.24241,0.24241,0.23459 0.24499,0.24826,0.24826,0.24171,0.24499,0.24171,0.23516,0.23843,0.24171,0.25154,-0.12531,-0.13514,-0.12531,-0.13514,-0.11548,-0.18757,-0.16464,-0.18757,-0.18102,-0.17119,-0.1843,-0.1843,-0.17119,-0.18757,-0.18102 0.38799,0.065739,0.001289,-0.22429,-0.22429,0.29132,0.065739,0.001289,-0.22429,-0.095387,0.16242,0.065739,0.065739,-0.095387,-0.25651,0.38799,0.16242,0.001289,-0.22429,-0.32096,0.16242,0.16242,0.001289,0.001289,-0.32096 0.23381,0.010898,-0.18724,-0.16248,-0.11294,0.30811,0.1595,-0.11294,-0.11294,-0.16248,0.40718,0.10997,-0.063405,-0.21201,-0.31108,0.33288,0.18427,-0.11294,-0.18724,-0.13771,0.35764,0.035665,-0.01387,-0.088173,-0.16248 -0.25871,-0.25242,-0.26248,-0.26122,-0.26122,-0.21845,-0.22096,-0.23983,-0.23229,-0.23354,0.14387,0.15393,0.15645,0.18287,0.18287,0.13632,0.15645,0.164,0.17155,0.18539,0.13632,0.1489,0.164,0.17155,0.18664 0.23667,0.2012,0.24258,0.21302,0.2544,0.21302,0.26031,0.2012,0.18938,0.21302,-0.035228,-0.017496,0.0061472,0.0061472,0.023879,-0.17709,-0.19482,-0.19482,-0.19482,-0.19482,-0.23619,-0.25393,-0.25393,-0.27166,-0.23619 -0.24711,-0.24711,-0.24736,-0.24787,-0.24937,-0.24008,-0.24108,-0.24108,-0.2436,-0.24334,0.15782,0.14727,0.15883,0.16109,0.16285,0.15481,0.14476,0.16988,0.17089,0.17164,0.16762,0.16838,0.16988,0.17089,0.17139 0.24319,0.17686,0.11054,0.022108,-0.2874,0.17686,0.11054,0.088432,-0.044216,-0.26529,0.24319,0.17686,0.11054,-0.066324,-0.2874,0.24319,0.11054,0,-0.066324,-0.35373,0.24319,0,0,-0.2874,-0.39794 -0.19021,-0.16991,-0.068368,0.039938,0.22609,-0.25113,-0.17667,0.14486,0.21932,0.2667,-0.25113,-0.15637,-0.085291,0.21932,0.23963,-0.26129,-0.17667,-0.13267,0.20578,0.2667,-0.22406,-0.15637,-0.048061,0.25317,0.2667 -0.17524,-0.18516,-0.18119,-0.17821,-0.18119,-0.15639,-0.15837,-0.15539,-0.15341,-0.1544,-0.14448,-0.16135,-0.1544,-0.14349,-0.15837,0.27515,0.2573,0.24242,0.22654,0.21861,0.27019,0.26424,0.24341,0.22654,0.21662 0.33507,0.35993,0.32886,0.3475,0.304,0.14243,0.16107,0.10514,0.12379,0.086502,-0.11857,-0.12478,-0.13721,-0.14342,-0.14964,-0.16828,-0.13721,-0.17449,-0.14964,-0.14342,-0.15585,-0.15585,-0.16207,-0.19314,-0.18071 0.16622,0.16803,0.16622,-0.25612,-0.2534,0.15356,0.14994,0.15537,-0.22718,-0.23984,0.1608,0.16532,0.16351,-0.24617,-0.24255,0.16984,0.17074,0.16803,-0.25159,-0.24255,0.1608,0.16441,0.16532,-0.24165,-0.24707 -0.23651,-0.15802,-0.027209,0.23442,0.26058,-0.28884,-0.18418,0.051279,0.051279,0.3129,-0.23651,-0.23651,0.051279,0.025116,0.39139,-0.23651,-0.1057,0.051279,0.15593,0.26058,-0.28884,-0.15802,0.077441,0.077441,0.15593 -0.25714,-0.14396,-0.0081487,0.12766,0.30875,-0.30241,-0.18923,-0.0081487,0.059757,0.33138,-0.2345,-0.030784,-0.09869,0.19557,0.17293,-0.30241,-0.14396,0.12766,0.17293,0.35402,-0.21187,-0.1666,-0.030784,0.014487,0.26348 0.23064,0.21748,0.20431,0.24381,0.23064,0.19115,0.2833,0.24381,0.19115,0.23064,-0.032648,-0.072141,0.0068455,-0.019483,0.0068455,-0.16429,-0.23011,-0.24328,-0.23011,-0.16429,-0.21695,-0.21695,-0.23011,-0.21695,-0.24328 -0.26006,-0.25299,-0.25122,-0.23884,-0.23707,-0.2406,-0.23707,-0.23707,-0.24945,-0.24414,0.16099,0.15922,0.15745,0.16276,0.15745,0.16099,0.16276,0.1663,0.16099,0.16453,0.16276,0.16984,0.1663,0.16807,0.16807 -0.34339,-0.32037,-0.34339,-0.34339,-0.32037,-0.13625,-0.13625,-0.09022,-0.09022,-0.13625,0.093903,0.13993,0.047872,0.11692,0.13993,0.18596,0.13993,0.11692,0.16295,0.18596,0.20898,0.13993,0.18596,0.20898,0.18596 0.22691,0.2224,0.23143,0.23595,0.20885,0.22691,0.22691,0.21336,0.21336,0.23143,-0.030532,-0.0079492,-0.0034326,0.0056006,0.01915,-0.20216,-0.2112,-0.20216,-0.19765,-0.19765,-0.24281,-0.24733,-0.2383,-0.23378,-0.24733 -0.18878,-0.22089,-0.092465,0.052011,0.34096,-0.18878,-0.17273,-0.092465,0.0038527,0.2928,-0.17273,-0.18878,-0.092465,0.13228,0.2928,-0.20483,-0.10852,-0.028253,0.22859,0.34096,-0.20483,-0.20483,-0.028253,0.16438,0.34096 -0.26288,-0.26501,-0.26714,-0.27565,-0.2799,-0.20971,-0.20546,-0.21609,-0.2246,-0.22247,0.13272,0.14973,0.15824,0.19014,0.20291,0.12634,0.14548,0.1625,0.1625,0.1944,0.13272,0.1391,0.15824,0.17951,0.1944 -0.47329,-0.083216,0.0034673,0.13349,0.26352,-0.38661,-0.029039,-0.018203,0.10099,0.26352,-0.18073,-0.10489,0.025138,0.166,0.26352,-0.25658,-0.072381,-0.039874,0.166,0.24185,-0.24575,-0.094051,-0.018203,0.11182,0.26352 0.22584,0.31099,-0.17935,-0.17938,-0.17924,0.22464,0.22443,-0.17955,-0.17969,-0.17962,0.22422,0.22512,-0.12551,-0.17962,-0.17962,0.22337,0.31298,-0.12548,-0.17897,-0.17914,0.22261,0.22845,-0.12582,-0.12582,-0.12582 -0.36216,-0.14602,-0.025937,0.11816,0.3343,-0.26609,-0.122,0.022094,0.14217,0.23824,-0.31413,-0.122,-0.14602,0.094142,0.3343,-0.21806,-0.14602,-0.0019213,0.070126,0.31028,-0.14602,-0.073968,-0.025937,0.26225,0.1902 -0.21011,-0.26448,-0.23186,-0.28623,-0.26448,-0.079605,-0.11223,-0.16661,-0.26448,-0.29711,0.072645,0.06177,0.04002,-0.014355,-0.079605,0.2249,0.19227,0.14877,0.1814,0.12702,0.23577,0.25752,0.23577,0.25752,0.23577 0.07221,0.019858,-0.13178,-0.19858,-0.24642,0.34029,0.29516,-0.083041,-0.14713,-0.21302,0.30057,0.2401,-0.11734,-0.15345,-0.20941,0.25273,0.22746,-0.074015,-0.16247,-0.16699,0.30689,0.22746,-0.09297,-0.14171,-0.14442 -0.31127,-0.097746,0.044602,0.21068,0.2344,-0.28754,-0.074021,-0.026572,0.068327,0.25812,-0.35872,-0.16892,0.068327,0.11578,0.25812,-0.31127,-0.097746,-0.002847,0.25812,0.11578,-0.21637,-0.21637,0.092052,0.18695,0.25812 -0.30238,-0.27698,-0.27698,-0.28545,-0.24594,-0.22055,-0.24594,-0.1359,-0.18951,-0.23748,0.16039,0.12371,0.16039,0.15475,0.16885,0.19143,0.16603,0.16321,0.16039,0.18014,0.15757,0.16039,0.1491,0.14064,0.18014 0.27933,0.2193,-0.14087,-0.18756,-0.16088,0.27933,0.26599,-0.067499,-0.16088,-0.17422,0.29934,0.24598,-0.074169,-0.16755,-0.20757,0.27266,0.17929,-0.17422,-0.18089,-0.11419,0.27266,0.012539,-0.20757,-0.2209,-0.087508 0.24208,0.24559,0.24559,0.24384,0.24384,0.24208,0.24384,0.24442,0.24384,0.24442,-0.13167,-0.13577,-0.13577,-0.13518,-0.13518,-0.16326,-0.16209,-0.16209,-0.15858,-0.16267,-0.19192,-0.19426,-0.19309,-0.18841,-0.18958 0.09549,0.16357,0.17748,-0.07142,-0.35253,0.10501,0.1665,0.16357,-0.044334,-0.38108,0.11892,0.13649,0.14161,-0.099239,-0.35619,0.12843,0.13429,0.14381,-0.015051,-0.36205,0.13575,0.12404,0.14747,-0.0018741,-0.39865 0.13789,0.13369,0.13789,-0.049332,-0.35829,0.14628,0.14628,0.001041,-0.041776,-0.40026,0.15636,0.15804,0.012795,-0.027504,-0.38012,0.14125,0.16475,0.17315,-0.021627,-0.35997,0.13285,0.17063,0.18071,0.0018806,-0.35661 0.36859,0.13994,-0.042987,-0.13445,-0.13445,0.39146,0.094206,0.0027439,-0.15732,-0.15732,0.2314,0.11707,-0.065853,-0.22591,-0.18018,0.41433,-0.042987,-0.13445,-0.088719,-0.15732,0.32286,-0.020122,-0.15732,-0.11158,-0.27164 -0.15687,-0.2269,-0.2269,-0.2269,-0.36697,-0.15687,-0.08684,-0.13353,-0.18022,-0.18022,-0.08684,-0.040152,0.0065363,-0.08684,0.0065363,0.16995,0.12326,0.16995,0.12326,0.053225,0.23998,0.3567,0.3567,0.26332,0.28667 0.17124,0.16378,0.16263,-0.24457,-0.24591,0.17028,0.16999,0.16301,-0.24419,-0.24486,0.15058,0.16923,0.1699,-0.24419,-0.24563,0.15029,0.16942,0.16789,-0.24429,-0.24496,0.15153,0.15039,0.16817,-0.24419,-0.24553 0.28689,0.29195,0.30289,0.31636,0.32226,0.30289,0.14291,0.13449,0.12944,0.12607,-0.14506,-0.13159,-0.13664,-0.12991,-0.1358,-0.1619,-0.16527,-0.16275,-0.16275,-0.16275,-0.17032,-0.16948,-0.17285,-0.17622,-0.17285 -0.34478,-0.23858,-0.30938,-0.29168,-0.29168,-0.16779,-0.096991,-0.11469,-0.079292,-0.18549,0.08,0.08,0.097699,0.0092036,-0.043894,0.1331,0.08,0.1154,0.08,0.097699,0.25699,0.27469,0.25699,0.31009,0.29239 0.33803,0.28039,0.21121,0.23427,0.21121,0.2458,0.2458,0.21121,0.14204,0.17662,-0.077014,-0.042427,-0.0078397,-0.042427,-0.077014,-0.15772,-0.22689,-0.26148,-0.22689,-0.22689,-0.18077,-0.22689,-0.1923,-0.15772,-0.1923 0.22212,0.2311,0.21314,0.23559,0.23559,0.2311,0.2311,0.21314,0.19968,0.2311,0.0021548,-0.02478,-0.0068235,0.0066439,-0.0068235,-0.2223,-0.21781,-0.19986,-0.19986,-0.1819,-0.23128,-0.24924,-0.23128,-0.24924,-0.23128 0.24845,0.2495,-0.17131,-0.17691,-0.12961,0.24669,0.24284,-0.1685,-0.17516,-0.17201,0.24564,0.24424,-0.16675,-0.17761,-0.13452,0.24039,0.24214,-0.16955,-0.17376,-0.12646,0.24284,0.24144,-0.1643,-0.17236,-0.16535 0.20457,0.17964,0.14945,-0.23114,-0.25213,0.20589,0.1757,-0.17339,-0.22589,-0.25476,0.20064,0.1757,0.14814,-0.2062,-0.24688,0.19276,0.17701,0.14683,-0.2062,-0.24688,0.18751,0.17833,0.13895,-0.16552,-0.25213 0.38843,0.39482,0.38363,0.38843,0.38843,-0.059364,-0.00019191,-0.032177,-0.024181,0.041389,-0.10574,-0.11054,-0.10574,-0.099345,-0.08975,-0.12973,-0.12653,-0.13293,-0.12333,-0.13293,-0.14252,-0.14252,-0.14252,-0.14252,-0.14252 -0.32353,-0.13543,-0.054817,0.13328,0.32138,-0.24291,-0.18917,-0.081687,0.079538,0.26763,-0.29665,-0.1623,0.13328,0.079538,0.34825,-0.13543,-0.13543,-0.054817,0.052667,0.37512,-0.24291,-0.10856,0.052667,0.10641,0.21389 0.28003,0.18792,0.03439,-0.088432,-0.27266,0.34145,0.15721,0.065096,-0.057726,-0.4569,0.31074,0.0036847,0.0036847,-0.14984,-0.14984,0.28003,-0.027021,0.0036847,-0.18055,-0.14984,0.18792,0.18792,-0.088432,-0.18055,-0.24196 -0.34145,-0.16622,0.084112,0.10914,0.35948,-0.16622,-0.091121,0.059078,0.13418,0.20928,-0.29139,-0.26635,0.0090119,0.059078,0.23431,-0.21629,-0.16622,0.084112,0.10914,0.33444,-0.26635,-0.21629,0.084112,0.084112,0.23431 0.36388,0.0033929,-0.13444,-0.13444,-0.13444,0.4169,0.0033929,-0.10263,-0.13444,-0.17685,0.26846,-0.028415,-0.070826,-0.13444,-0.17685,0.4275,-0.028415,-0.10263,-0.10263,-0.13444,0.4381,-0.028415,-0.028415,-0.13444,-0.13444 -0.24113,-0.20503,-0.16894,-0.20503,-0.060644,-0.15089,-0.13284,-0.18699,-0.16894,-0.20503,-0.15089,-0.15089,-0.078693,-0.18699,-0.096741,0.19204,0.21009,0.22814,0.21009,0.19204,0.28228,0.28228,0.24619,0.26423,0.28228 0.26869,0.21011,0.073422,-0.18043,-0.31712,0.21011,0.24917,0.014841,-0.23901,-0.31712,0.21011,0.19058,-0.043741,-0.19996,-0.21948,0.15153,0.21011,0.034368,-0.23901,-0.25854,0.15153,0.092949,0.17106,0.014841,-0.23901 0.287,0.28081,0.287,0.30556,0.26226,0.13855,0.16329,0.15092,0.12,0.13855,0.027216,-0.028453,0.0024741,-0.0098965,0.0024741,-0.14597,-0.13979,-0.1336,-0.18309,-0.17072,-0.30061,-0.28824,-0.2635,-0.25112,-0.25112 -0.16378,-0.15541,-0.16797,-0.18472,-0.16797,-0.1596,-0.16378,-0.14704,-0.15122,-0.15541,-0.1261,-0.13448,-0.1261,-0.11773,-0.13448,0.091605,0.095791,0.10835,0.10835,0.12091,0.34281,0.36793,0.32606,0.34281,0.35118 0.24066,0.24235,0.23394,0.2373,0.23226,0.25411,0.24907,0.24739,0.24739,0.24739,-0.12749,-0.12749,-0.13926,-0.11909,-0.12077,-0.18129,-0.16616,-0.16448,-0.15103,-0.1443,-0.20482,-0.19306,-0.19306,-0.20146,-0.1981 0.18933,0.1935,0.19141,-0.14913,-0.25848,0.18725,0.18412,0.18412,-0.20224,-0.25848,0.18308,0.18621,0.18621,-0.18975,-0.2564,0.181,0.18204,-0.091853,-0.19704,-0.26681,0.1987,0.19766,-0.10227,-0.2137,-0.25848 0.19035,0.21043,0.21043,0.21043,0.19035,0.15019,0.16023,0.13012,0.12008,0.19035,0.13012,0.13012,0.089956,0.099996,0.059837,-0.13092,-0.13092,-0.16104,-0.12088,-0.090759,-0.30159,-0.31163,-0.31163,-0.37187,-0.34175 -0.21054,-0.25265,-0.2737,-0.21054,-0.37897,-0.21054,-0.18948,-0.10527,-0.21054,-0.18948,0.12632,0.084215,0.021054,0,0,0.18948,0.14738,0.10527,0.18948,0.14738,0.25265,0.18948,0.31581,0.25265,0.21054 0.297,0.18903,0.0090824,-0.35277,-0.35801,0.28784,0.13995,-0.18788,-0.14011,-0.17414,0.28456,0.1766,-0.011202,-0.064859,-0.19311,0.29438,0.12687,0.037219,-0.077292,-0.18395,0.20277,0.15958,-0.14731,-0.14534,-0.1689 0.10995,0.0088927,-0.031529,-0.23364,-0.27406,0.17058,0.15037,0.029103,-0.15279,-0.27406,0.211,0.15037,0.15037,-0.15279,-0.31448,0.29184,0.17058,0.15037,-0.051739,-0.3549,0.33226,0.10995,0.17058,-0.11237,-0.25385 0.18785,0.24641,0.22298,0.26983,0.26983,0.21127,0.21127,0.22298,0.18785,0.21127,-0.058088,-0.022954,0.023891,-0.022954,-0.011243,-0.22205,-0.16349,-0.18691,-0.16349,-0.14007,-0.24547,-0.2806,-0.2806,-0.22205,-0.24547 0.1564,0.066856,-0.082377,-0.14207,-0.351,0.39517,0.066856,-0.082377,-0.022683,-0.26146,0.30563,0.1564,0.0071632,-0.05253,-0.17192,0.12655,0.066856,-0.022683,-0.17192,-0.26146,0.42502,0.1564,0.12655,-0.20176,-0.23161 0.35428,0.001177,-0.028248,-0.17537,-0.17537,0.1483,0.060027,0.060027,-0.11652,-0.38135,0.20715,0.17773,0.089452,-0.2048,-0.17537,0.41313,0.1483,0.030602,-0.14595,-0.2048,0.29543,0.001177,0.089452,-0.17537,-0.29307 -0.20147,-0.18523,-0.087738,0.10724,0.28596,-0.21772,-0.20147,-0.07149,0.20472,0.20472,-0.25022,-0.15273,-0.10399,0.26971,0.22097,-0.25022,-0.18523,-0.055243,0.23722,0.20472,-0.26646,-0.13648,0.13973,0.26971,0.22097 0.19291,0.13499,0.14093,-0.092269,-0.26902,0.27609,0.20628,-0.2913,-0.086327,-0.25714,0.22262,0.1439,0.096368,-0.1398,-0.27645,0.21074,0.17658,0.048838,-0.14425,-0.31061,0.23747,0.18697,0.020616,-0.13534,-0.29279 0.15481,0.15081,0.15847,-0.23267,-0.23893,0.16682,0.15638,0.17048,-0.24398,-0.24694,0.20303,0.16299,0.18162,-0.24416,-0.2492,0.15742,0.14698,0.17187,-0.24642,-0.24886,0.14994,0.14698,0.16682,-0.24816,-0.24607 -0.26702,-0.24193,-0.24193,-0.19173,-0.26702,-0.16664,-0.16664,-0.14154,-0.21683,-0.16664,-0.016062,0.059227,-0.041158,-0.016062,-0.041158,0.10942,0.26,0.059227,0.13452,0.15961,0.26,0.41057,0.28509,0.18471,0.26 -0.24482,-0.2453,-0.2453,-0.24459,-0.24506,-0.2453,-0.24435,-0.24482,-0.2453,-0.24459,0.16247,0.16058,0.16105,0.16105,0.15963,0.16579,0.16342,0.16484,0.16437,0.1639,0.16579,0.16437,0.16437,0.16342,0.16437 -0.30593,-0.33833,-0.32213,-0.33833,-0.27352,-0.095278,-0.06287,-0.079074,-0.11148,-0.1925,0.13157,0.018148,0.034352,0.0019444,0.018148,0.245,0.099167,0.11537,0.13157,0.13157,0.30982,0.245,0.19639,0.245,0.19639 0.047631,0.045462,0.0042513,-0.11938,-0.30483,0.10186,0.062814,-0.016354,-0.087932,-0.30375,0.42504,0.11379,0.022688,-0.098777,-0.21916,0.38166,0.15391,-0.013101,-0.1042,-0.27772,0.34695,0.21573,-8.676e-05,-0.072749,-0.30375 -0.15447,-0.16567,-0.16941,-0.16567,-0.16941,-0.16567,-0.147,-0.1582,-0.15447,-0.15073,-0.14326,-0.12459,-0.12833,-0.13579,-0.12459,0.088289,0.088289,0.092024,0.11443,0.14431,0.35345,0.34599,0.34972,0.34599,0.33478 -0.33336,-0.30567,-0.36105,-0.30567,-0.30567,-0.056483,-0.070326,-0.056483,-0.098014,-0.098014,0.02658,-0.028795,0.02658,0.02658,-0.014951,0.17886,0.16502,0.095799,0.10964,0.068111,0.28961,0.26192,0.24808,0.28961,0.24808 -0.17457,-0.16217,-0.095221,0.2321,0.22714,-0.19193,-0.16961,-0.1349,0.14531,0.27921,-0.19689,-0.17209,-0.16217,0.22962,0.25938,-0.18945,-0.16217,-0.12498,0.2321,0.27921,-0.18945,-0.15721,-0.11754,0.17507,0.34121 0.39571,0.32646,0.36603,0.25721,0.2671,0.19786,0.17807,0.11871,0.10882,0.039571,-0.079142,-0.089035,-0.12861,-0.098928,-0.098928,-0.16818,-0.14839,-0.14839,-0.14839,-0.14839,-0.20775,-0.19786,-0.18796,-0.18796,-0.21764 0.1987,0.10206,0.042724,0.012207,-0.37434,0.21735,0.096976,0.034247,-0.048827,-0.38112,0.23939,0.13597,0.020684,0.013902,-0.34043,0.22243,0.13258,0.015597,0.010511,-0.34891,0.25465,0.10376,0.012207,0.008816,-0.38112 0.32996,0.14187,-0.046217,-0.18057,-0.20744,0.3837,0.22248,-0.12683,-0.1537,-0.18057,0.16874,0.32996,-0.1537,-0.18057,-0.1537,0.16874,0.14187,0.034394,-0.18057,-0.20744,0.24935,0.115,-0.073087,-0.26118,-0.18057 -0.26854,-0.25175,-0.33567,-0.18462,-0.21819,-0.15105,-0.21819,-0.16784,-0.11749,-0.11749,-0.15105,-0.016784,-0.016784,0.033567,0.033567,0.13427,0.083918,0.13427,0.18462,0.23497,0.28532,0.28532,0.23497,0.33567,0.23497 -0.24185,-0.12558,-0.009302,0.16511,0.31045,-0.24185,-0.18371,-0.096508,0.019767,0.25232,-0.24185,-0.15465,0.048836,0.048836,0.22325,-0.24185,-0.15465,-0.06744,0.22325,0.31045,-0.21278,-0.24185,0.048836,0.31045,0.25232 0.21874,0.21874,0.15962,-0.07458,-0.23602,0.22329,0.21419,0.18236,-0.21555,-0.26103,0.22783,0.098227,0.04593,-0.25648,-0.2633,0.23238,0.068668,0.04593,-0.070033,-0.28377,0.21874,0.16871,-0.15644,-0.24739,-0.25876 -0.15885,-0.25303,-0.096064,0.24926,0.34344,-0.22164,-0.23733,-0.048974,0.17078,0.29635,-0.19024,-0.12746,-0.11176,0.15508,0.29635,-0.17455,-0.19024,-0.11176,0.20217,0.26496,-0.14315,-0.14315,-0.11176,0.0766,0.26496 0.39125,0.39125,0.39357,0.39589,0.3866,-0.014948,-0.038159,-0.035838,-0.024232,-0.0033424,-0.10083,-0.098508,-0.10547,-0.10779,-0.10547,-0.12636,-0.13332,-0.13797,-0.13797,-0.13332,-0.13332,-0.12636,-0.13565,-0.12636,-0.13332 -0.24429,-0.2523,-0.2533,-0.2513,-0.2523,-0.23229,-0.23229,-0.24229,-0.24029,-0.24529,0.14479,0.15179,0.1628,0.1708,0.1808,0.14679,0.1568,0.1688,0.1688,0.1818,0.14279,0.1578,0.1608,0.1718,0.1788 -0.34863,-0.011414,-0.011414,0.19611,0.27392,-0.34863,-0.063293,-0.011414,0.11829,0.19611,-0.16705,-0.21893,-0.011414,0.22204,0.17017,-0.27081,-0.14111,0.040466,0.19611,0.29986,-0.32269,-0.089233,-0.089233,0.11829,0.27392 0.19015,0.19015,0.19322,0.19322,0.19015,0.16871,0.16871,0.14115,0.16259,0.14115,0.15952,0.13196,0.14115,0.14115,0.11051,-0.23867,-0.24174,-0.20498,-0.19273,-0.1866,-0.27543,-0.27237,-0.26318,-0.27543,-0.27237 0.26437,0.27604,0.27992,0.26049,0.23716,0.14774,0.17301,0.1594,0.14968,0.12052,0.019439,0.048598,0.040822,0.029159,-0.0097196,-0.13024,-0.10497,-0.1594,-0.16718,-0.20994,-0.27604,-0.27604,-0.27798,-0.29548,-0.29936 -0.33907,-0.29792,-0.009876,0.13415,0.2576,-0.25677,-0.17448,-0.071601,0.092999,0.29875,-0.33907,-0.030451,0.072424,0.11357,0.23702,-0.25677,-0.13333,0.010699,0.1753,0.29875,-0.17448,0.010699,-0.030451,0.1753,0.23702 -0.2105,-0.19772,-0.11676,0.22414,0.25396,-0.17641,-0.17641,-0.09545,0.24544,0.25396,-0.1892,-0.19772,-0.10397,0.23692,0.23692,-0.18493,-0.21476,-0.091189,0.23692,0.23692,-0.1892,-0.20624,-0.048577,0.2497,0.22414 -0.17617,-0.18031,-0.17617,-0.18031,-0.18238,-0.16376,-0.1679,-0.17204,-0.17411,-0.18238,-0.12342,-0.12652,-0.1317,-0.13894,-0.16376,0.23447,0.23137,0.24688,0.26964,0.25412,0.23757,0.23964,0.23137,0.23757,0.25723 0.33402,0.27329,0.22774,0.33402,0.25811,0.1822,0.16701,0.12146,0.19738,0.15183,0.045549,-0.030366,-0.060732,-0.060732,-0.13665,-0.19738,-0.15183,-0.16701,-0.19738,-0.1822,-0.19738,-0.1822,-0.27329,-0.27329,-0.1822 0.24192,0.26437,0.24691,0.23693,0.23194,0.2494,0.25938,0.24442,0.23194,0.23194,-0.13226,-0.12478,-0.13101,-0.13226,-0.13974,-0.1809,-0.17467,-0.17217,-0.17592,-0.17467,-0.17966,-0.17966,-0.17966,-0.17966,-0.18215 0.33577,0.063468,-0.14199,-0.15898,-0.15843,0.32646,0.049223,-0.13651,-0.15185,-0.15131,0.33248,0.063468,-0.13651,-0.15295,-0.15131,0.33413,0.054154,-0.1387,-0.15624,-0.1535,0.32974,0.3281,-0.13432,-0.1409,-0.1535 0.28784,-0.070017,-0.12827,-0.16711,-0.17543,0.34054,-0.01731,-0.13382,-0.15046,-0.16711,0.34886,0.0992,-0.1144,-0.16711,-0.16711,0.34609,0.13249,-0.072791,-0.15046,-0.15879,0.33499,0.31558,-0.064469,-0.14214,-0.15879 -0.24549,-0.24549,-0.24388,-0.2442,-0.24323,-0.24646,-0.24549,-0.24549,-0.24549,-0.2442,0.16312,0.1628,0.16312,0.16151,0.16054,0.16474,0.16442,0.16312,0.16377,0.16151,0.16539,0.16539,0.16442,0.16409,0.16151 -0.16775,-0.16674,-0.17482,-0.16775,-0.16876,-0.17482,-0.16371,-0.17482,-0.17785,-0.1728,-0.15158,-0.13845,-0.14249,-0.15866,-0.14552,0.24849,0.24849,0.24445,0.24849,0.2394,0.24546,0.24243,0.24647,0.24344,0.2394 0.25642,0.21347,0.26716,0.23495,0.28864,0.22421,0.18126,0.23495,0.20273,0.17052,-0.054979,0.020187,-0.065717,0.0094495,-0.065717,-0.21605,-0.21605,-0.18383,-0.259,-0.259,-0.19457,-0.15162,-0.19457,-0.22679,-0.21605 0.23728,0.21442,0.23728,0.283,0.22585,0.26014,0.22585,0.24871,0.22585,0.22585,-0.071322,-0.082752,-0.059892,-0.17419,-0.094182,-0.18562,-0.16276,-0.11704,-0.20848,-0.21991,-0.20848,-0.24277,-0.17419,-0.20848,-0.17419 0.25053,0.29959,0.26688,0.20147,0.20147,0.20147,0.18512,0.18512,0.18512,0.18512,0.021586,0.021586,0.021586,-0.043826,0.005233,-0.14194,-0.17465,-0.20736,-0.1583,-0.17465,-0.191,-0.30547,-0.25641,-0.25641,-0.32183 -0.16418,-0.16535,-0.16535,-0.15978,-0.16359,-0.16565,-0.16447,-0.16565,-0.15919,-0.16154,-0.16389,-0.16418,-0.16711,-0.15303,-0.16242,0.24651,0.24739,0.26147,0.21453,0.21776,0.24739,0.26176,0.25237,0.2688,0.22744 -0.24493,-0.24501,-0.24508,-0.24478,-0.24501,-0.24501,-0.24493,-0.24463,-0.24508,-0.24501,0.16194,0.16217,0.16217,0.16239,0.16217,0.16337,0.16314,0.16337,0.16352,0.16359,0.16419,0.16419,0.16419,0.16464,0.16442 0.26915,0.050814,-0.14768,-0.16753,-0.18738,0.22946,0.011115,-0.10798,-0.20722,-0.14768,0.3684,0.11036,-0.14768,-0.20722,-0.10798,0.4081,0.13021,-0.048432,-0.20722,-0.14768,0.4081,0.16991,-0.08813,-0.068281,-0.16753 -0.41307,-0.19335,0.099606,0.099606,0.31932,-0.26659,-0.12011,0.099606,0.12402,0.19726,-0.24218,-0.12011,-0.12011,0.19726,0.22167,-0.19335,-0.0957,0.026366,0.19726,0.2705,-0.24218,-0.19335,0.0019531,0.050779,0.29491 -0.27621,-0.28115,-0.28443,-0.28279,-0.28279,-0.21372,-0.20056,-0.20056,-0.20056,-0.2055,0.18261,0.17767,0.17274,0.17274,0.16781,0.16452,0.16945,0.15958,0.15958,0.16123,0.15629,0.15301,0.14478,0.14314,0.14314 0.29669,0.24631,-0.16251,-0.16309,-0.16212,0.24129,0.24554,-0.16135,-0.16328,-0.16328,0.24284,0.24284,-0.16135,-0.16193,-0.16347,0.18995,0.24245,-0.16,-0.16232,-0.16212,0.18821,0.29881,-0.16174,-0.16309,-0.16328 -0.244,-0.24445,-0.24513,-0.2449,-0.24513,-0.24445,-0.24581,-0.24581,-0.24581,-0.244,0.16277,0.16277,0.16209,0.16255,0.16277,0.16345,0.16255,0.163,0.16322,0.16345,0.16435,0.16435,0.1648,0.16345,0.1639 -0.2733,-0.19696,-0.34964,-0.29238,-0.25421,-0.10153,-0.17787,-0.063362,-0.082448,-0.23513,-0.044277,0.051148,0.012978,-0.044277,-0.044277,0.16566,0.14657,0.14657,0.051148,0.22291,0.242,0.29925,0.28017,0.242,0.29925 -0.2551,-0.2395,-0.24243,-0.24048,-0.24145,-0.24633,-0.24243,-0.24145,-0.2512,-0.24828,0.15428,0.16305,0.16402,0.15818,0.1611,0.165,0.17085,0.15818,0.15818,0.16402,0.17085,0.17475,0.16402,0.15818,0.16402 0.43714,0.03491,-0.040981,-0.0979,-0.11687,0.45611,0.031116,-0.025803,-0.10928,-0.15102,0.40298,0.00075892,-0.071338,-0.13585,-0.17759,0.36124,-0.0068302,-0.11687,-0.17,-0.18518,0.1791,-0.014419,-0.11687,-0.17,-0.19656 0.2748,0.22619,0.20999,0.17759,0.2586,0.2424,0.2748,0.2586,0.19379,0.20999,-0.049257,-0.06546,-0.049257,-0.049257,-0.049257,-0.22749,-0.19508,-0.2599,-0.16268,-0.17888,-0.17888,-0.21129,-0.22749,-0.19508,-0.22749 -0.30483,-0.27837,-0.04022,0.19793,0.35669,-0.22544,-0.1196,-0.14606,0.065622,0.27731,-0.19898,-0.066681,0.039162,0.19793,0.145,-0.22544,-0.1196,0.039162,0.11854,0.27731,-0.30483,-0.1196,-0.01376,0.11854,0.33023 -0.25325,-0.25039,-0.24658,-0.24278,-0.24278,-0.25039,-0.24278,-0.24944,-0.23135,-0.23801,0.17239,0.16763,0.16477,0.15715,0.15049,0.17239,0.17144,0.16096,0.15525,0.14954,0.17525,0.16953,0.16477,0.16382,0.15239 0.1607,0.31722,0.052982,-0.14898,-0.30719,0.15565,0.28019,0.090008,-0.091759,-0.30887,0.12367,0.24485,0.051299,-0.098491,-0.3257,0.13377,0.18931,0.04625,-0.13888,-0.33411,0.10347,0.15733,0.064763,-0.081661,-0.3358 -0.27402,-0.22438,-0.19129,-0.22438,-0.20783,-0.20783,-0.058908,-0.17474,-0.22438,-0.10855,-0.025814,-0.042361,-0.025814,-0.042361,-0.075455,0.10656,0.07347,0.13966,0.12311,0.023828,0.30513,0.35477,0.28858,0.33823,0.35477 -0.16594,-0.29166,-0.35452,-0.24976,-0.29166,-0.16594,-0.16594,-0.14499,-0.12404,-0.061182,-0.040229,0.043581,-0.061182,-0.10309,0.043581,0.25311,0.1693,0.1693,0.10644,0.10644,0.27406,0.27406,0.25311,0.29501,0.23216 0.21827,0.29302,0.1809,0.21827,0.19958,0.23696,0.21827,0.27434,0.23696,0.21827,-0.043355,-0.043355,-0.043355,-0.0059801,-0.043355,-0.19286,-0.23023,-0.19286,-0.23023,-0.17417,-0.24892,-0.23023,-0.15548,-0.23023,-0.23023 -0.28226,-0.36938,-0.24742,-0.33453,-0.33453,-0.055756,-0.12545,-0.12545,-0.21257,-0.1603,0.10106,0.048786,0.15333,0.031363,0.06621,0.17075,0.2056,0.15333,0.15333,0.15333,0.25787,0.15333,0.2056,0.18818,0.2056 -0.24567,-0.24663,-0.2435,-0.24422,-0.24253,-0.24567,-0.24543,-0.24326,-0.2447,-0.2435,0.16355,0.16548,0.14571,0.14957,0.15077,0.16741,0.1908,0.17778,0.14499,0.14812,0.17875,0.18019,0.18381,0.1474,0.15077 -0.24763,-0.24946,-0.24579,-0.24946,-0.24763,-0.24152,-0.23968,-0.23724,-0.24885,-0.23968,0.17833,0.17099,0.16366,0.1551,0.14533,0.17833,0.17283,0.16183,0.15877,0.14838,0.17833,0.17099,0.16366,0.15327,0.14716 -0.24498,-0.2421,-0.24114,-0.2469,-0.24882,-0.2421,-0.24498,-0.24018,-0.24786,-0.24978,0.16249,0.16345,0.174,0.15913,0.15769,0.16153,0.16393,0.17016,0.16297,0.15865,0.16345,0.174,0.16441,0.15865,0.15433 -0.23831,-0.24203,-0.24574,-0.25318,-0.22715,-0.12302,-0.13046,-0.13418,-0.1379,-0.13046,-0.011454,-0.030049,-0.033768,-0.037486,-0.015173,0.033172,0.055486,0.051767,0.048048,0.062924,0.34928,0.34184,0.33068,0.36415,0.353 -0.25999,-0.29293,-0.28587,-0.25058,-0.24588,-0.21059,-0.2153,-0.22706,-0.15178,-0.15649,0.19403,0.2152,0.012891,0.017596,0.022301,0.24814,0.20344,0.14698,0.090522,0.081113,0.23637,0.19168,0.21755,0.2105,0.20814 -0.24517,-0.24517,-0.24517,-0.24628,-0.24628,-0.23117,-0.24591,-0.24628,-0.24959,-0.24554,0.12907,0.15706,0.16038,0.1648,0.17843,0.1497,0.16001,0.16259,0.17585,0.16885,0.16259,0.16185,0.16443,0.17106,0.1799 -0.2732,-0.13258,0.0080354,0.14866,0.22901,-0.33347,-0.19285,-0.072319,0.08839,0.2491,-0.25312,-0.092407,0.08839,0.16874,0.40981,-0.17276,-0.072319,-0.032142,0.18883,0.32945,-0.31338,-0.1125,-0.092407,0.068301,0.16874 -0.2441,-0.24606,-0.24508,-0.24508,-0.24508,-0.24606,-0.24378,-0.2441,-0.24312,-0.2428,0.18043,0.15918,0.15395,0.15167,0.14611,0.19873,0.16833,0.15297,0.15461,0.15036,0.18762,0.17422,0.15886,0.16016,0.14807 -0.14619,-0.15487,-0.085422,0.15765,0.35731,-0.18091,-0.14619,-0.11147,0.18369,0.32259,-0.1896,-0.19828,-0.15487,0.13161,0.32259,-0.16355,-0.16355,-0.085422,0.062157,0.31391,-0.1896,-0.1896,-0.13751,0.13161,0.31391 0.32001,0.23216,-0.025917,-0.19065,-0.17417,0.25412,0.061938,0.028992,-0.2181,-0.25654,0.25412,-0.014935,-0.091809,-0.21261,-0.24555,0.27608,0.056447,0.089392,-0.28399,-0.24555,0.25412,0.22667,0.14979,-0.025917,-0.2181 -0.16045,-0.161,-0.16319,-0.16538,-0.16812,-0.16319,-0.16319,-0.16977,-0.16319,-0.16977,-0.16593,-0.16154,-0.15442,-0.15442,-0.15606,0.21726,0.22768,0.23535,0.29346,0.2074,0.22275,0.237,0.27811,0.27866,0.24193 -0.24479,-0.24465,-0.24452,-0.24506,-0.24506,-0.24492,-0.24492,-0.24532,-0.24532,-0.24492,0.16281,0.16281,0.16281,0.16267,0.16348,0.16374,0.16401,0.16294,0.16294,0.16267,0.16495,0.16401,0.16374,0.16334,0.16254 0.29606,0.25009,-0.071717,-0.048731,-0.16366,0.11217,0.15814,0.0662,-0.16366,-0.30158,0.29606,0.13516,0.089186,-0.071717,-0.34755,0.15814,0.043214,-0.025744,-0.11769,-0.23262,0.27308,0.15814,0.11217,-0.18665,-0.41651 0.31042,0.34897,0.28473,0.23333,0.22048,0.22048,0.23333,0.20763,0.16909,0.16909,-0.13928,-0.13928,-0.12643,-0.12643,-0.13928,-0.16498,-0.21637,-0.17783,-0.16498,-0.17783,-0.19067,-0.11358,-0.16498,-0.17783,-0.17783 0.2005,0.1951,0.072331,0.029446,-0.27442,0.1951,0.19339,0.059098,0.017683,-0.27687,0.18824,0.18432,0.06694,-0.27614,-0.2808,0.18285,0.18138,0.065959,-0.2781,-0.28521,0.1782,0.17452,0.053707,-0.27761,-0.28962 0.22961,0.22064,-0.17511,-0.19305,-0.22533,0.23081,0.22543,-0.093811,-0.16973,-0.21517,0.22961,0.22304,-0.13207,-0.16136,-0.2056,0.22842,0.22064,-0.16495,-0.16734,-0.20202,0.22961,0.22064,0.20271,-0.15479,-0.20082 -0.23352,-0.2481,-0.24486,-0.24324,-0.24486,-0.24486,-0.25782,-0.25296,-0.23352,-0.24486,0.15687,0.16659,0.16983,0.16173,0.15849,0.16011,0.16335,0.15687,0.16659,0.16335,0.16497,0.16659,0.16335,0.16659,0.16335 -0.2448,-0.24564,-0.2448,-0.24564,-0.2448,-0.24564,-0.24649,-0.24058,-0.24396,-0.24564,0.16742,0.15645,0.16067,0.16151,0.15687,0.17586,0.16109,0.16278,0.16109,0.15898,0.18894,0.16362,0.1632,0.16109,0.14843 0.10548,0.11221,0.12566,0.058391,-0.3856,0.1593,0.11894,0.11221,-0.082878,-0.36542,0.13912,0.078573,0.092027,-0.05597,-0.37214,0.15257,0.11221,0.13239,0.078573,-0.37887,0.17275,0.17948,0.15257,-0.05597,-0.3856 -0.24968,-0.24774,-0.25226,-0.24774,-0.24774,-0.24001,-0.23872,-0.23614,-0.24001,-0.24903,0.16671,0.16606,0.16284,0.16155,0.1622,0.16671,0.16284,0.16284,0.16284,0.16091,0.16155,0.16349,0.16542,0.16284,0.16026 -0.24706,-0.2451,-0.2451,-0.2451,-0.24706,-0.23986,-0.24772,-0.24575,-0.24182,-0.24313,0.17611,0.17021,0.16366,0.1558,0.14859,0.17611,0.16825,0.16366,0.15777,0.14663,0.17611,0.17218,0.16366,0.15777,0.15121 -0.23775,-0.058541,-0.058541,0.1804,0.35961,-0.26762,-0.088409,-0.088409,0.15053,0.21027,-0.23775,-0.14814,-0.088409,0.24014,0.21027,-0.26762,-0.088409,0.031063,0.12067,0.1804,-0.41696,-0.088409,0.0011947,0.12067,0.32974 0.31857,0.27924,0.22024,0.23991,0.20058,0.22024,0.16125,0.16125,0.22024,0.18091,-0.015732,-0.035396,0.043262,-0.015732,-0.055061,-0.09439,-0.17305,-0.21238,-0.17305,-0.17305,-0.23204,-0.21238,-0.29104,-0.27137,-0.29104 -0.1407,-0.22156,-0.22156,-0.28221,-0.24178,-0.16092,-0.10027,-0.16092,-0.22156,-0.16092,-0.080054,-0.059838,-0.059838,0.021024,-0.039623,0.081671,0.18275,0.1221,0.021024,0.1221,0.32426,0.34447,0.32426,0.2434,0.36469 -0.2776,-0.24158,-0.24158,-0.2776,-0.24158,-0.24158,-0.24158,-0.24158,-0.20556,-0.037461,-0.025454,-0.0014408,0.058593,0.0706,0.094613,0.14264,0.19067,0.16665,0.19067,0.22669,0.19067,0.21468,0.20267,0.2507,0.27471 -0.24433,-0.2447,-0.24508,-0.24558,-0.24546,-0.2437,-0.24508,-0.24483,-0.24458,-0.24571,0.15898,0.15823,0.16112,0.16237,0.16677,0.16501,0.16074,0.15886,0.16212,0.16664,0.17857,0.16413,0.16062,0.15911,0.16576 0.06686,0.061934,-0.053002,-0.15645,-0.20899,0.12433,0.11448,-0.05957,-0.13674,-0.21063,0.40018,0.2015,-0.05957,-0.14167,-0.2172,0.39525,0.15388,-0.05136,-0.15645,-0.20078,0.41988,0.20971,-0.11868,-0.16301,-0.21391 0.32215,0.30377,0.28846,0.28846,0.29459,0.14454,0.13841,0.12004,0.12004,0.11391,0.00061244,-0.014699,-0.017761,-0.005512,-0.033072,-0.14025,-0.14331,-0.13106,-0.14331,-0.15556,-0.26274,-0.25661,-0.27805,-0.27499,-0.27805 0.28945,0.067349,-0.14799,-0.15215,-0.17452,0.34251,0.062148,-0.14643,-0.15163,-0.16672,0.28789,0.057466,-0.14539,-0.14799,-0.14799,0.28061,0.34147,-0.1558,-0.15632,-0.14487,0.28269,0.27957,-0.14747,-0.15319,-0.15267 -0.24515,-0.24422,-0.24515,-0.245,-0.24515,-0.24422,-0.24484,-0.24562,-0.24608,-0.24391,0.16448,0.16495,0.16572,0.16464,0.16029,0.16401,0.16464,0.16479,0.16541,0.15672,0.16355,0.16448,0.16417,0.16401,0.1575 -0.14934,-0.22554,-0.24078,-0.22554,-0.16458,-0.16458,-0.16458,-0.10363,-0.10363,-0.24078,-0.027431,-0.057909,-0.10363,-0.2103,-0.073148,0.17068,0.2164,0.17068,0.064005,0.10972,0.35355,0.26211,0.33831,0.30783,0.26211 -0.15627,-0.1386,-0.20931,-0.18279,-0.14743,-0.12976,-0.18279,-0.15627,-0.15627,-0.14743,-0.12976,-0.12976,-0.12976,-0.12976,-0.12976,0.16193,0.11774,0.10006,0.073541,0.091219,0.37407,0.35639,0.30336,0.32987,0.34755 -0.24918,-0.2295,-0.28854,-0.26886,-0.25902,-0.24918,-0.17045,-0.2295,-0.15077,-0.16061,-0.10156,0.016533,0.046057,0.095262,0.15431,0.18383,0.21336,0.2232,0.2232,0.17399,0.15431,0.20351,0.24288,0.20351,0.2232 -0.17758,-0.17758,-0.17678,-0.1752,-0.17758,-0.15695,-0.16012,-0.15457,-0.15695,-0.15457,-0.17123,-0.14901,-0.1387,-0.16488,-0.15377,0.2628,0.25327,0.24534,0.23741,0.23106,0.25804,0.2501,0.24137,0.23503,0.23106 -0.2425,-0.24447,-0.24348,-0.24496,-0.24594,-0.2425,-0.24496,-0.24348,-0.24348,-0.24643,0.15216,0.14332,0.12956,0.17133,0.17232,0.18706,0.14725,0.15561,0.16937,0.17428,0.21114,0.1443,0.14479,0.17035,0.16937 0.19178,0.18056,-0.16351,-0.24205,-0.24205,0.19178,0.18056,0.0047871,-0.24205,-0.25327,0.19926,0.19178,0.1095,-0.23457,-0.25701,0.203,0.203,0.17308,-0.18221,-0.23083,0.20674,0.203,0.18056,-0.20091,-0.17099 -0.25186,-0.24675,-0.25186,-0.25101,-0.24249,-0.25357,-0.25016,-0.22631,-0.23909,-0.23483,0.17058,0.16802,0.16632,0.16121,0.15695,0.16973,0.16887,0.16376,0.1578,0.15354,0.16887,0.16717,0.16376,0.16036,0.15099 0.302,0.26912,0.25817,0.25817,0.23625,0.1705,0.19242,0.1705,0.19242,0.14859,0.060926,-0.026737,-0.048653,-0.026737,-0.081526,-0.16919,-0.1144,-0.1144,-0.13632,-0.18015,-0.31164,-0.24589,-0.26781,-0.27877,-0.25685 -0.24511,-0.2453,-0.24559,-0.24472,-0.24492,-0.24395,-0.24453,-0.24453,-0.24472,-0.24472,0.1532,0.17799,0.168,0.16713,0.15666,0.17597,0.17732,0.16713,0.15551,0.15743,0.15358,0.15272,0.16752,0.15695,0.16098 -0.24396,-0.24454,-0.24513,-0.24513,-0.24396,-0.24513,-0.24396,-0.24454,-0.24396,-0.24454,0.13438,0.13817,0.15247,0.17085,0.17435,0.14576,0.15451,0.16355,0.1723,0.18135,0.15568,0.15889,0.16997,0.18106,0.19156 -0.33561,-0.36367,-0.2374,-0.20934,-0.15321,-0.25143,-0.22337,-0.16724,-0.12515,-0.15321,-0.026939,0.043214,0.043214,0.057245,0.085306,0.15546,0.14143,0.1274,0.16949,0.15546,0.23964,0.28173,0.23964,0.25367,0.25367 -0.21797,-0.144,-0.082353,0.2012,0.25051,-0.19331,-0.21797,-0.020712,0.27517,0.2012,-0.21797,-0.20564,-0.10701,0.2012,0.2012,-0.20564,-0.23029,0.016273,0.22586,0.25051,-0.20564,-0.25495,-0.0083833,0.27517,0.21353 0.15035,-0.0042821,-0.17081,-0.1946,-0.15892,0.29309,0.019508,-0.14702,-0.17081,-0.14702,0.32877,0.13846,-0.063756,-0.1946,-0.17081,0.37635,0.20983,-0.075651,-0.12323,-0.1946,0.43583,0.19793,-0.0042821,-0.15892,-0.17081 -0.28181,-0.12408,-0.045216,0.24395,0.24395,-0.3081,-0.12408,-0.018927,0.11251,0.24395,-0.33439,-0.097792,-0.018927,0.29653,0.27024,-0.22923,-0.097792,-0.045216,0.21767,0.19138,-0.36067,-0.045216,0.059937,0.086225,0.16509 0.18503,0.19586,-0.1121,-0.15853,-0.20496,0.20514,0.20205,-0.096629,-0.15389,-0.25603,0.20669,0.19741,-0.084249,-0.099724,-0.31329,0.20669,0.19276,0.20514,-0.19567,-0.29472,0.20979,0.20824,0.18657,-0.15698,-0.2746 -0.18823,-0.18823,-0.10027,0.097632,0.25156,-0.23221,-0.23221,0.031664,0.11962,0.40548,-0.34215,-0.16624,-0.056292,0.18559,0.25156,-0.16624,-0.14425,-0.078281,0.1636,0.29553,-0.14425,-0.14425,0.031664,0.031664,0.31752 -0.32159,-0.26312,-0.029235,0.11694,0.29235,-0.17541,-0.17541,0,0.087706,0.23388,-0.38006,-0.20465,0,0.11694,0.29235,-0.17541,-0.20465,0.029235,0.14618,0.23388,-0.14618,-0.029235,0.029235,0.20465,0.32159 0.27048,0.27486,0.2266,0.2266,0.21782,0.28364,0.25731,0.25731,0.22221,0.19588,-0.12883,-0.15516,-0.142,-0.142,-0.12883,-0.14638,-0.1771,-0.17271,-0.16394,-0.16394,-0.17271,-0.19465,-0.18149,-0.18588,-0.1771 -0.30352,-0.18094,0.088752,0.13779,0.13779,-0.35256,-0.18094,0.064235,0.15005,0.13779,-0.27901,-0.14416,0.088752,0.1623,0.18682,-0.31578,-0.11964,0.13779,0.17456,0.21134,-0.29126,-0.14416,0.12553,0.24811,0.26037 0.29745,0.11608,-0.10157,-0.17411,-0.24666,0.11608,0.18862,-0.065293,0.0072548,-0.24666,0.36999,0.043529,-0.065293,-0.17411,-0.10157,0.26117,0.079802,0.0072548,-0.17411,-0.24666,0.44254,0.079802,0.079802,-0.21039,-0.28294 0.25271,0.25839,0.26406,0.27541,0.24703,0.23,0.13351,0.23568,0.24136,0.12215,0.13351,-0.07084,-0.099222,-0.11057,-0.11625,-0.19004,-0.20707,-0.2014,-0.16734,-0.16734,-0.23545,-0.24681,-0.20707,-0.19004,-0.18437 -0.24323,-0.24371,-0.24468,-0.24371,-0.24227,-0.24323,-0.24468,-0.24371,-0.2466,-0.24323,0.17273,0.15923,0.14718,0.14332,0.14525,0.19345,0.16887,0.15634,0.14573,0.15055,0.23828,0.15634,0.15682,0.152,0.15296 -0.24252,-0.24044,-0.2394,-0.2446,-0.24252,-0.2498,-0.2446,-0.25291,-0.24772,-0.2446,0.16279,0.16071,0.16175,0.15863,0.15967,0.16279,0.16279,0.16175,0.15967,0.16902,0.16591,0.16695,0.16175,0.16902,0.16591 -0.23129,-0.16558,-0.26415,-0.26415,-0.28057,-0.083449,-0.13273,-0.1163,-0.16558,-0.23129,-0.1163,-0.13273,-0.067022,0.03154,0.015113,0.16296,0.11367,0.16296,0.22866,0.11367,0.34365,0.24509,0.32722,0.26152,0.24509 -0.19734,-0.17379,-0.11492,0.061698,0.2442,-0.22089,-0.15024,-0.14435,0.055811,0.30896,-0.19145,-0.17379,-0.079595,0.073472,0.32662,-0.19734,-0.13847,-0.079595,0.21477,0.3384,-0.17968,-0.12669,-0.073708,0.2442,0.37372 0.37571,0.37571,0.38633,0.3934,0.38986,0.021934,-0.0099058,0.021934,0.00070756,0.014859,-0.11958,-0.12665,-0.1408,-0.12312,-0.1408,-0.12665,-0.12312,-0.15496,-0.1408,-0.14434,-0.12312,-0.13019,-0.13019,-0.12312,-0.12312 0.25264,0.23151,-0.12925,-0.16167,-0.15039,0.28787,0.28928,-0.14335,-0.15885,-0.1518,0.28928,0.24137,-0.14053,-0.16448,-0.16871,0.28506,0.26674,-0.14335,-0.16448,-0.17717,0.23151,-0.037654,-0.15462,-0.15744,-0.17153 0.28006,0.22276,0.067248,-0.23314,-0.2667,0.27269,0.22276,0.097533,-0.23069,-0.26261,0.27597,0.18675,0.089348,-0.23314,-0.27161,0.069704,0.15728,0.049241,-0.086631,-0.27652,0.018957,0.15892,0.0828,-0.11119,-0.2798 -0.1622,-0.16267,-0.16173,-0.16454,-0.16454,-0.16173,-0.16314,-0.16361,-0.16454,-0.16548,-0.16173,-0.16033,-0.15939,-0.16501,-0.16361,0.21019,0.23595,0.23689,0.24017,0.24344,0.29731,0.23876,0.25188,0.24485,0.24485 0.33924,0.32999,0.32999,0.33462,0.33462,0.12178,0.12641,0.13566,0.13103,0.13103,-0.14658,-0.12345,-0.15583,-0.13733,-0.15583,-0.16046,-0.17897,-0.16046,-0.14658,-0.15583,-0.16971,-0.16046,-0.14195,-0.16046,-0.16046 -0.27806,-0.27806,-0.052199,0.22385,0.34933,-0.27806,-0.052199,-0.052199,0.22385,0.24895,-0.15258,-0.10239,-0.052199,0.14857,0.22385,-0.27806,-0.077294,-0.027103,0.048183,0.22385,-0.30315,-0.10239,-0.027103,0.073279,0.34933 -0.24574,-0.24574,-0.24548,-0.24599,-0.24548,-0.24107,-0.24379,-0.24496,-0.24496,-0.24625,0.16223,0.16327,0.16405,0.16379,0.16483,0.16145,0.16249,0.16353,0.16405,0.16392,0.1612,0.16301,0.16535,0.16288,0.1634 -0.29015,-0.19024,-0.010391,0.12949,0.18944,-0.17026,-0.19024,-0.07034,0.069541,0.40925,-0.33012,-0.19024,-0.07034,0.18944,0.22941,-0.25019,-0.07034,-0.07034,0.16946,0.28935,-0.19024,-0.13029,0.12949,0.16946,0.24939 -0.2435,-0.2435,-0.24541,-0.24541,-0.24541,-0.24392,-0.24371,-0.24626,-0.24583,-0.24647,0.16542,0.16096,0.16308,0.16181,0.16457,0.16563,0.16308,0.16287,0.16478,0.16308,0.16563,0.16181,0.16202,0.16457,0.16011 0.27868,0.33797,0.30833,0.26386,0.24903,0.1675,0.15268,0.15268,0.11562,0.13045,-0.017788,0.01927,-0.0252,-0.032611,-0.054846,-0.11414,-0.13637,-0.11414,-0.13637,-0.17343,-0.26237,-0.25496,-0.2772,-0.30684,-0.26979 -0.24958,-0.24754,-0.24652,-0.24448,-0.23938,-0.25264,-0.24652,-0.25162,-0.23632,-0.23428,0.16944,0.16638,0.16231,0.16129,0.15619,0.16333,0.16027,0.16333,0.16231,0.16027,0.16638,0.16638,0.16435,0.16435,0.16231 -0.24038,-0.24038,-0.23972,-0.23994,-0.23862,-0.24016,-0.24082,-0.24016,-0.23972,-0.28333,0.144,0.16602,0.1636,0.15721,0.15325,0.14047,0.15347,0.14554,0.15611,0.16624,0.1603,0.19466,0.17946,0.1799,0.18298 0.2229,0.30443,-0.15398,-0.15441,-0.15528,0.22073,0.31874,-0.15484,-0.15875,-0.15398,0.23157,0.21205,-0.15875,-0.15831,-0.23681,0.23591,0.21683,-0.15918,-0.15831,-0.15961,0.24241,0.22073,-0.15658,-0.15658,-0.15094 -0.16387,-0.1644,-0.16628,-0.16548,-0.16655,-0.16387,-0.16226,-0.16333,-0.16306,-0.16333,-0.16065,-0.16226,-0.16065,-0.16172,-0.16172,0.24505,0.24558,0.24666,0.24505,0.24183,0.24558,0.24612,0.24558,0.24478,0.24317 0.3321,0.14045,-0.30435,-0.28898,-0.18854,0.28086,0.11585,-0.057353,-0.14549,-0.19366,0.33006,0.18555,-0.013283,-0.14754,-0.18546,0.15275,0.12508,0.032837,-0.12192,-0.19571,0.36593,0.12508,4.0996e-05,-0.13832,-0.20596 -0.28805,-0.30588,-0.3237,-0.3237,-0.3237,-0.12763,-0.1811,-0.074152,-0.1811,-0.19893,0.15757,0.068448,0.1754,0.1754,0.12192,0.15757,0.1754,0.13975,0.12192,0.22887,0.13975,0.13975,0.1754,0.21105,0.13975 -0.3309,-0.051767,0.049737,0.024361,0.35425,-0.30552,-0.15327,0.024361,0.024361,0.25274,-0.2294,-0.10252,0.075112,0.22737,0.25274,-0.35628,-0.15327,-0.001015,0.075112,0.32887,-0.2294,-0.15327,0.075112,0.12586,0.17662 0.30527,0.28819,0.28819,0.29673,0.30527,0.11746,0.15161,0.126,0.126,0.13454,-0.036195,-0.027658,-0.0020488,-0.0020488,-0.019122,-0.12156,-0.13863,-0.13863,-0.13863,-0.13863,-0.27522,-0.27522,-0.27522,-0.27522,-0.27522 0.39027,-0.023063,-0.11858,-0.12553,-0.11511,0.39027,-0.04043,-0.12553,-0.129,-0.12379,0.38853,-0.036957,-0.12553,-0.11858,-0.11858,0.39722,-0.00048627,-0.12553,-0.12205,-0.11511,0.40069,-0.05085,-0.12205,-0.11511,-0.11511 -0.22743,-0.16662,0.19824,0.19824,0.19824,-0.28063,-0.13621,0.099423,0.18304,0.19824,-0.26543,-0.18942,0.099423,0.21344,0.19064,-0.27303,-0.23503,0.046215,0.18304,0.19824,-0.28824,-0.24263,-0.075403,0.15263,0.22104 -0.2421,-0.24304,-0.24774,-0.2421,-0.24586,-0.24868,-0.24117,-0.23741,-0.24868,-0.25243,0.16453,0.16453,0.16359,0.16359,0.16266,0.16266,0.16547,0.16453,0.16547,0.16266,0.16172,0.16078,0.16453,0.15984,0.16266 -0.24704,-0.24517,-0.24704,-0.24704,-0.24704,-0.24205,-0.25203,-0.24143,-0.24018,-0.24018,0.16653,0.1659,0.16528,0.16403,0.16403,0.16403,0.16403,0.16278,0.16528,0.15842,0.16216,0.15904,0.16278,0.16278,0.16216 -0.16416,-0.16459,-0.16438,-0.16416,-0.16408,-0.16313,-0.1635,-0.16343,-0.16321,-0.16313,-0.1627,-0.16182,-0.16204,-0.16204,-0.16204,0.2554,0.25693,0.234,0.23831,0.23955,0.25533,0.25671,0.23532,0.23729,0.23955 -0.24997,-0.24694,-0.25452,-0.2568,-0.25301,-0.23784,-0.24239,-0.24239,-0.23557,-0.22875,0.16549,0.16928,0.17231,0.167,0.16928,0.16018,0.16018,0.16549,0.16321,0.16321,0.16018,0.15563,0.16018,0.15715,0.15942 -0.24474,-0.24453,-0.24474,-0.24599,-0.24474,-0.24411,-0.24474,-0.24432,-0.24557,-0.24557,0.16424,0.16174,0.16403,0.16153,0.16716,0.1582,0.16612,0.1559,0.16362,0.16716,0.15778,0.17216,0.15403,0.16945,0.16591 -0.17124,-0.30661,-0.34045,-0.35737,-0.27276,-0.20508,-0.15432,-0.17124,-0.1374,-0.17124,0.099495,0.01489,0.065653,0.099495,0.082574,0.20102,0.21794,0.21794,0.23486,0.21794,0.20102,0.1841,0.099495,0.1841,0.16718 0.36685,0.026631,-0.12588,-0.13468,-0.15228,0.38445,-0.0085642,-0.13468,-0.12588,-0.13468,0.38152,0.17328,-0.12588,-0.13175,-0.12295,0.36979,-0.049625,-0.11708,-0.13468,-0.14935,0.37565,-0.061357,-0.11708,-0.12588,-0.12588 0.39978,-0.047609,-0.089816,-0.12358,-0.12358,0.3829,0.01148,-0.11514,-0.14046,-0.13202,0.39978,-0.064492,-0.098258,-0.12358,-0.14046,0.41667,-0.030727,-0.12358,-0.1067,-0.13202,0.36602,-0.056051,-0.081375,-0.1067,-0.14046 0.31263,0.030618,-0.1171,-0.18425,-0.21111,0.42006,0.070906,-0.17082,-0.18425,-0.17082,0.31263,0.12462,-0.1171,-0.25139,-0.090244,0.36635,0.12462,-0.1171,-0.15739,-0.1171,0.31263,0.097764,-0.090244,-0.1171,-0.076815 0.13893,0.13531,0.14346,-0.24045,-0.24769,0.14436,0.13893,0.14074,-0.23954,-0.24135,0.14165,0.14165,0.14255,-0.24226,-0.23864,0.17243,0.16428,0.1507,-0.2495,-0.24769,0.26479,0.21861,0.18782,-0.23954,-0.23954 -0.24655,-0.24164,-0.26376,-0.2613,-0.23426,-0.23918,-0.2441,-0.23426,-0.2441,-0.23426,0.186,0.16388,0.186,0.16388,0.12701,0.1565,0.17617,0.17617,0.16633,0.14422,0.15896,0.17125,0.17371,0.15405,0.1393 0.40351,0.38208,0.36064,0.36779,0.36064,0.032006,0.010574,0.024862,0.046295,0.074872,-0.15374,-0.11802,-0.13946,-0.11802,-0.13231,-0.15374,-0.13231,-0.13231,-0.15374,-0.13231,-0.1466,-0.15374,-0.11802,-0.1466,-0.13231 -0.16572,-0.1652,-0.16502,-0.1645,-0.16555,-0.16415,-0.16415,-0.16363,-0.1638,-0.16363,-0.16066,-0.16118,-0.16066,-0.16118,-0.16031,0.24893,0.24736,0.24352,0.24352,0.24248,0.24823,0.24579,0.24352,0.24352,0.24248 0.21891,0.33175,0.10607,-0.091402,-0.20424,0.1907,0.077861,-0.23245,-0.063191,-0.23245,0.27533,0.10607,-0.034981,-0.14782,-0.20424,0.35996,0.13428,-0.063191,-0.20424,-0.31708,0.24712,0.13428,0.04965,-0.17603,-0.26066 -0.24015,-0.21963,-0.17858,-0.17858,-0.20937,-0.117,-0.13752,-0.14779,-0.14779,-0.17858,-0.034894,-0.065683,-0.086209,-0.096472,-0.12726,0.1601,0.14984,0.088262,0.067736,0.016421,0.38589,0.39615,0.33457,0.30379,0.26273 -0.27043,-0.27043,-0.27043,-0.13151,-0.17782,-0.17782,-0.13151,-0.15466,-0.15466,-0.20097,-0.085203,0.053715,-0.038897,-0.038897,-0.085203,0.21579,0.053715,0.10002,0.076868,0.12317,0.33155,0.3084,0.28525,0.35471,0.28525 0.1786,0.043297,0.073364,-0.24234,-0.33254,0.1786,0.028263,0.1335,-0.21227,-0.27241,0.25377,0.10343,0.10343,-0.25737,-0.22731,0.25377,0.1335,0.16356,-0.046905,-0.25737,0.34397,0.1335,0.1335,-0.16717,-0.24234 -0.16449,-0.16529,-0.16449,-0.16288,-0.16288,-0.16328,-0.16489,-0.16208,-0.16529,-0.16328,-0.15886,-0.16288,-0.16328,-0.16328,-0.16208,0.24846,0.24123,0.24565,0.24645,0.23842,0.25328,0.24042,0.24324,0.24685,0.24525 0.14749,0.14846,0.15073,-0.24608,-0.24414,0.14781,0.15073,0.1556,-0.24576,-0.24544,0.14878,0.19259,0.16793,-0.24414,-0.24446,0.15755,0.19161,0.1569,-0.24446,-0.24414,0.15073,0.18999,0.18707,-0.24122,-0.24414 -0.24157,-0.24178,-0.24164,-0.24157,-0.24157,-0.24074,-0.24074,-0.2422,-0.23997,-0.24137,0.15364,0.15398,0.15238,0.15204,0.064652,0.15336,0.15217,0.21164,0.21052,0.064582,0.15552,0.18831,0.19339,0.2046,0.20238 -0.21335,-0.21335,-0.11742,-0.21335,-0.29009,-0.15579,-0.1366,-0.1366,-0.15579,-0.1366,-0.1366,-0.098232,-0.098232,-0.05986,-0.05986,0.074442,0.132,0.18956,0.074442,0.132,0.24712,0.36223,0.30467,0.34305,0.36223 -0.16333,-0.16382,-0.1637,-0.16358,-0.16419,-0.16321,-0.16296,-0.16309,-0.1637,-0.16296,-0.16272,-0.16309,-0.16309,-0.16284,-0.16259,0.25045,0.25082,0.25045,0.24406,0.23289,0.24971,0.24934,0.24934,0.24087,0.23093 0.18797,0.1033,0.065666,0.044834,-0.37851,0.17923,0.11405,0.069026,0.044834,-0.37314,0.16848,0.095233,0.067682,0.05021,-0.38725,0.16848,0.098593,0.058274,0.05021,-0.41009,0.1631,0.1033,0.060962,0.058274,-0.4027 0.36738,0.21302,-0.10164,-0.15507,-0.15507,0.37925,0.10022,-0.11352,-0.13133,-0.13726,0.34957,-0.060082,-0.10164,-0.12539,-0.14914,0.37925,-0.018523,-0.10164,-0.13133,-0.14914,0.34957,-0.08383,-0.11352,-0.16101,-0.14914 0.085218,-0.040103,-0.13244,-0.1984,-0.23138,0.28969,0.052239,-0.10606,-0.17202,-0.21819,0.29628,0.21054,-0.086274,-0.17202,-0.1984,0.32926,0.21054,0.072027,-0.15223,-0.21819,0.34905,0.26331,0.1182,-0.14564,-0.205 -0.23936,-0.24783,-0.24359,-0.25065,-0.24642,-0.2323,-0.24218,-0.25912,-0.23654,-0.25065,0.16428,0.16428,0.16004,0.1671,0.16428,0.16004,0.1671,0.16428,0.16992,0.16287,0.16004,0.16428,0.16004,0.16146,0.15863 -0.16895,-0.25123,-0.33351,-0.33351,-0.25123,-0.16895,-0.086669,-0.086669,-0.16895,-0.16895,-0.0043883,-0.086669,-0.0043883,-0.0043883,-0.0043883,0.10532,0.1876,0.10532,0.26988,0.10532,0.35216,0.26988,0.24245,0.24245,0.24245 -0.16457,-0.16574,-0.16457,-0.16574,-0.16457,-0.16225,-0.16341,-0.16399,-0.16283,-0.16341,-0.16108,-0.16283,-0.16225,-0.16108,-0.16108,0.24488,0.24488,0.24139,0.24372,0.24284,0.24634,0.24459,0.24576,0.24634,0.24867 -0.26039,-0.29207,-0.24455,-0.35542,-0.35542,0.024709,-0.11784,-0.16536,-0.13368,-0.16536,0.056386,0.056386,0.0088697,0.0088697,-0.054486,0.16726,0.1831,0.15142,0.072225,0.13558,0.24645,0.23061,0.29397,0.24645,0.26229 0.25704,0.24699,0.27715,0.33749,0.31738,0.15648,0.14642,0.12631,0.20676,0.12631,-0.064763,-0.014481,-0.0044248,-0.07482,-0.0044248,-0.15527,-0.17538,-0.1251,-0.14521,-0.13516,-0.26589,-0.30612,-0.23572,-0.25583,-0.23572 -0.18429,-0.18429,-0.095307,0.21612,0.26061,-0.18429,-0.19912,-0.10519,0.23095,0.25567,-0.18429,-0.15957,-0.090363,0.20129,0.2705,-0.1744,-0.16451,-0.15463,0.21612,0.25567,-0.18429,-0.19417,-0.15957,0.22106,0.29027 0.42886,0.22869,-0.16008,-0.16073,-0.16094,0.23255,0.21606,-0.16008,-0.16073,-0.16094,0.21992,0.21392,-0.1603,-0.15944,-0.16008,0.21649,0.21392,-0.15944,-0.15987,-0.1588,0.21478,0.21478,-0.15944,-0.15966,-0.15944 -0.35734,-0.35228,-0.35734,-0.32697,-0.31685,-0.14982,-0.12451,-0.10427,-0.053652,-0.053652,0.08807,0.083008,0.093131,0.077947,0.083008,0.17412,0.14881,0.13362,0.14375,0.15893,0.20448,0.20955,0.19436,0.22473,0.17918 0.40529,0.027041,-0.10977,-0.10172,-0.13392,0.40529,0.010945,-0.11782,-0.10172,-0.13392,0.357,-0.061486,-0.10172,-0.13392,-0.093677,0.357,-0.077581,-0.11782,-0.093677,-0.15001,0.42943,-0.069533,-0.11782,-0.14196,-0.13392 0.26997,0.23027,0.21703,0.26997,0.23027,0.19057,0.21703,0.11116,0.13763,0.17733,-0.0079402,0.0052935,0.11116,0.031761,0.044995,-0.19321,-0.19321,-0.19321,-0.11381,-0.14028,-0.27261,-0.31232,-0.27261,-0.27261,-0.27261 -0.19739,-0.22944,-0.069216,0.18714,0.25123,-0.30955,-0.24546,-0.11728,0.12305,0.25123,-0.21342,-0.22944,0.010895,0.20316,0.25123,-0.19739,-0.16535,0.026917,0.26725,0.21918,-0.14933,-0.18137,0.042939,0.25123,0.21918 0.15926,-0.012357,-0.19771,-0.2183,-0.25262,0.22791,0.076886,-0.13592,-0.20457,-0.24576,0.28283,0.12494,0.001373,-0.17711,-0.23889,0.31029,0.23478,0.063156,-0.094734,-0.21144,0.35148,0.27596,0.11807,-0.046681,-0.19084 0.26634,0.14743,0.14285,-0.24331,-0.24066,0.14381,0.14502,0.14092,-0.24331,-0.24186,0.14574,0.14598,0.14502,-0.24162,-0.24114,0.14719,0.14598,0.14888,-0.24162,-0.24259,0.14695,0.25935,0.14864,-0.24138,-0.24259 0.1862,0.11863,0.055729,0.039421,-0.42188,0.18387,0.13261,0.060389,0.037091,-0.30772,0.16523,0.12795,0.067378,0.0044733,-0.3916,0.16756,0.11397,0.065049,0.020782,-0.45683,0.15358,0.12329,0.065049,0.032431,-0.34267 -0.19237,-0.19073,-0.19729,-0.19237,-0.18581,-0.15299,-0.15135,-0.14314,-0.15135,-0.14643,-0.15791,-0.14971,-0.13822,-0.13986,-0.15135,0.23752,0.24409,0.25065,0.24737,0.25229,0.23588,0.23917,0.23917,0.24737,0.24737 0.40059,0.38898,0.38318,0.36576,0.39479,0.011611,0.011611,0.0058057,0.011611,-0.075474,-0.1045,-0.098697,-0.1045,-0.098697,-0.13353,-0.11611,-0.13353,-0.12773,-0.11611,-0.12773,-0.14514,-0.16256,-0.13934,-0.14514,-0.14514 -0.24607,-0.24517,-0.24539,-0.24584,-0.24427,-0.24449,-0.24472,-0.24472,-0.24472,-0.24405,0.16655,0.1625,0.16273,0.16228,0.16655,0.1634,0.1625,0.16273,0.16026,0.16363,0.16363,0.16363,0.1634,0.16205,0.16363 -0.244,-0.24485,-0.24549,-0.2472,-0.24634,-0.24336,-0.24315,-0.244,-0.24528,-0.2457,0.16578,0.1613,0.16322,0.16471,0.16727,0.15981,0.1613,0.16343,0.16642,0.16556,0.1596,0.16173,0.16301,0.16301,0.16322 -0.24507,-0.24335,-0.24482,-0.24556,-0.24482,-0.2458,-0.2436,-0.24433,-0.24507,-0.24703,0.16429,0.16576,0.16429,0.16503,0.16503,0.16356,0.16331,0.16307,0.16233,0.16209,0.16258,0.16209,0.16209,0.16258,0.16135 0.34478,0.34478,0.26619,0.31858,0.21379,0.21379,0.21379,0.09589,0.09589,0.10899,-0.048207,-0.061307,-0.022007,-0.061307,-0.074406,-0.1792,-0.11371,-0.1399,-0.153,-0.153,-0.2709,-0.2054,-0.2447,-0.2447,-0.2447 0.2456,0.09163,0.054689,0.035598,-0.30927,0.23878,0.095597,0.057664,-0.27568,-0.30332,0.25849,0.099068,0.059399,-0.2758,-0.30394,0.25849,0.098076,0.049482,0.022706,-0.30518,0.25539,0.095597,0.048366,0.017995,-0.3094 -0.16496,-0.16324,-0.16496,-0.16539,-0.16367,-0.16625,-0.16367,-0.16453,-0.16496,-0.16453,-0.16152,-0.15766,-0.16625,-0.15809,-0.15551,0.27857,0.25667,0.23906,0.23091,0.22404,0.27127,0.25237,0.23778,0.22919,0.22533 -0.24058,-0.15,-0.18623,-0.16812,-0.24058,-0.24058,-0.15,-0.22246,-0.15,-0.15,-0.077536,-0.05942,-0.11377,-0.05942,-0.041304,0.067391,0.13986,0.13986,0.3029,0.12174,0.23043,0.26667,0.33913,0.33913,0.3029 -0.24465,-0.24498,-0.24531,-0.24547,-0.24514,-0.24449,-0.24449,-0.24449,-0.24498,-0.24531,0.16776,0.15905,0.16176,0.16094,0.16497,0.16382,0.15996,0.16341,0.15938,0.16875,0.16604,0.16144,0.16226,0.1616,0.16818 -0.24397,-0.24475,-0.24475,-0.24378,-0.24475,-0.24436,-0.24456,-0.24553,-0.24611,-0.2467,0.16911,0.16385,0.16424,0.16541,0.16016,0.16969,0.16502,0.16385,0.16444,0.15782,0.16424,0.1621,0.16094,0.16171,0.15666 -0.21672,-0.19576,-0.21672,-0.21672,-0.18528,-0.21672,-0.20624,-0.15384,-0.19576,-0.20624,0.076712,0.034793,-0.038565,-0.10144,-0.1748,0.18151,0.21295,0.18151,0.16055,0.087191,0.24439,0.35966,0.30727,0.25487,0.22343 0.13622,0.1507,0.14242,-0.21964,-0.22377,0.14656,0.16311,0.16311,-0.21136,-0.24239,0.14242,0.16311,0.17967,-0.25274,-0.24653,0.16725,0.15898,0.18794,-0.26722,-0.25688,0.17553,0.17553,0.18794,-0.25274,-0.26722 -0.33385,-0.12594,0.081977,0.16514,0.16514,-0.33979,-0.042771,0.076037,0.18296,0.18296,-0.32791,-0.19722,0.10574,0.18296,0.20079,-0.34573,-0.12594,0.099799,0.15326,0.18296,-0.32197,-0.084354,0.099799,0.18296,0.18296 -0.375,-0.33705,-0.22318,-0.18522,-0.26113,-0.18522,-0.18522,-0.22318,-0.12829,-0.18522,0.061488,0.061488,0.11842,0.023533,0.080466,0.15638,0.15638,0.25127,0.23229,0.23229,0.11842,0.19433,0.15638,0.21331,0.23229 -0.13401,-0.13401,-0.13401,-0.13401,-0.13401,-0.13401,-0.14761,-0.13401,-0.13401,-0.13401,-0.13401,-0.12041,-0.12041,-0.12041,-0.10681,0.0019947,-0.0070721,-0.0025387,0.0019947,0.038262,0.38733,0.41,0.39187,0.342,0.39187 0.22973,0.12688,0.030996,-0.039608,-0.35253,0.21404,0.13734,0.037097,-0.35253,-0.3595,0.24629,0.13734,0.052787,-0.035249,-0.34643,0.24019,0.13211,0.037097,-0.035249,-0.34381,0.22189,0.13995,0.039712,-0.045709,-0.11283 0.040062,0.040062,0.040062,-0.058129,-0.23487,0.27572,0.0597,-0.018853,-0.058129,-0.29379,0.19717,0.17753,0.00078553,-0.1956,-0.37234,0.29536,0.21681,0.020424,-0.17596,-0.33306,0.35427,0.27572,0.00078553,-0.058129,-0.1956 -0.24463,-0.24518,-0.24686,-0.24518,-0.24574,-0.24407,-0.24295,-0.24295,-0.24463,-0.24463,0.1735,0.17154,0.15198,0.16819,0.14667,0.17043,0.16931,0.17322,0.14387,0.17825,0.16903,0.17043,0.16959,0.14862,0.1422 0.27717,0.26337,0.26337,0.26337,0.24957,0.20125,0.20125,0.18745,0.16675,0.11843,0.049417,0.028711,0.028711,-0.074815,-0.12313,-0.09552,-0.14383,-0.18524,-0.23356,-0.20595,-0.20595,-0.26806,-0.26806,-0.26116,-0.23356 -0.16316,-0.16337,-0.16337,-0.1639,-0.16412,-0.16263,-0.16327,-0.16274,-0.16327,-0.16337,-0.16274,-0.16316,-0.16316,-0.16348,-0.16359,0.24783,0.24762,0.23966,0.24083,0.24051,0.25123,0.24836,0.24465,0.24358,0.24507 -0.16526,-0.16526,-0.16242,-0.15816,-0.16668,-0.15816,-0.16242,-0.16951,-0.16668,-0.16668,-0.1681,-0.16384,-0.18087,-0.17519,-0.11557,0.25782,0.2493,0.24078,0.24078,0.22659,0.25498,0.25072,0.25356,0.23795,0.23227 0.29446,0.34686,0.29446,0.29446,0.32066,0.11108,0.15037,0.17657,0.12418,0.12418,0.0062874,-0.033009,-0.085404,-0.059207,-0.098503,-0.1771,-0.20329,-0.164,-0.22949,-0.1509,-0.20329,-0.24259,-0.24259,-0.20329,-0.1509 -0.16323,-0.16333,-0.16365,-0.16354,-0.16281,-0.16365,-0.16323,-0.16323,-0.16291,-0.16323,-0.16302,-0.16375,-0.16344,-0.16333,-0.16281,0.23795,0.24963,0.24574,0.23827,0.24195,0.24121,0.25047,0.24689,0.24237,0.25468 -0.24899,-0.24618,-0.24577,-0.24618,-0.24618,-0.24819,-0.24859,-0.24859,-0.24577,-0.22323,0.18333,0.17528,0.15636,0.15515,0.15314,0.16079,0.16723,0.16119,0.15797,0.15717,0.15797,0.16965,0.16804,0.16401,0.16039 -0.16369,-0.16369,-0.16437,-0.16369,-0.16437,-0.16278,-0.16278,-0.16324,-0.16414,-0.16255,-0.16142,-0.16301,-0.16573,-0.16097,-0.16097,0.26249,0.26067,0.23571,0.23049,0.2323,0.23866,0.23321,0.25885,0.23548,0.25954 -0.33672,-0.17789,0.0074121,0.13977,0.32507,-0.2573,-0.15142,0.0074121,0.21919,0.24566,-0.28378,-0.098475,0.0074121,0.21919,0.32507,-0.28378,-0.098475,-0.098475,0.0074121,0.13977,-0.28378,0.0074121,0.0074121,0.16624,0.24566 0.26769,0.26769,0.20846,0.28249,0.3121,0.17885,0.19366,0.17885,0.13444,0.17885,-0.028427,-0.072844,-0.043233,0.045602,0.0011845,-0.14687,-0.19129,-0.11726,-0.17648,-0.17648,-0.29493,-0.2209,-0.26532,-0.28012,-0.23571 0.38468,0.040097,0.10275,-0.11653,-0.33581,0.22805,0.13408,-0.14786,-0.11653,-0.30449,0.2907,0.13408,0.10275,-0.17918,-0.17918,0.13408,0.0087713,0.040097,-0.085207,-0.21051,0.32203,0.10275,0.10275,-0.085207,-0.36714 -0.2438,-0.24425,-0.24448,-0.24463,-0.2441,-0.2441,-0.24463,-0.24433,-0.24425,-0.24373,0.18307,0.16999,0.17157,0.142,0.12604,0.18027,0.17112,0.17082,0.14404,0.17233,0.18005,0.18103,0.17906,0.1243,0.14662 -0.17517,-0.17169,-0.17517,-0.17778,-0.17256,-0.16821,-0.16474,-0.16735,-0.17169,-0.16821,-0.15256,-0.14647,-0.14126,-0.14039,-0.13343,0.29528,0.26658,0.24224,0.21441,0.18832,0.30311,0.27441,0.23963,0.21354,0.18919 -0.24716,-0.24432,-0.24635,-0.24513,-0.24513,-0.23906,-0.24392,-0.24149,-0.24149,-0.24149,0.15544,0.17405,0.16919,0.14208,0.13804,0.16717,0.15989,0.16919,0.14613,0.13966,0.25538,0.16636,0.1607,0.1437,0.14856 -0.20812,-0.18352,-0.18352,-0.14662,-0.19582,-0.14662,-0.18352,-0.14662,-0.17122,-0.14662,-0.12202,-0.097416,-0.12202,-0.048216,-0.12202,0.12398,0.12398,0.099384,0.074784,0.099384,0.38228,0.39458,0.29618,0.34538,0.28388 0.11503,0.052514,0.052514,-0.19755,-0.19755,0.20881,0.24007,0.052514,-0.10378,-0.29133,0.20881,0.052514,-0.010003,-0.041261,-0.35385,0.24007,0.24007,0.083773,-0.22881,-0.38511,0.33384,0.11503,0.11503,-0.041261,-0.26007 0.23297,0.28492,-0.15111,-0.14925,-0.15111,0.24782,0.29606,-0.1975,-0.17152,-0.1641,0.21442,0.24039,-0.16224,-0.16224,-0.15668,0.21071,0.21813,-0.17709,-0.16781,-0.17152,0.23483,0.25709,-0.14925,-0.15296,-0.15296 0.20307,0.082197,-0.038681,-0.099119,-0.28044,0.26351,0.051977,0.14264,-0.18978,-0.22,0.23329,0.021758,0.021758,-0.18978,-0.25022,0.35417,0.051977,-0.12934,-0.0084614,-0.28044,0.35417,0.20307,0.051977,0.021758,-0.37109 -0.23989,-0.24588,-0.24348,-0.24348,-0.24588,-0.24588,-0.24947,-0.24228,-0.24827,-0.24468,0.16496,0.15777,0.16735,0.16615,0.16735,0.16376,0.16615,0.16735,0.16256,0.16615,0.16016,0.15657,0.16256,0.15897,0.16136 -0.15991,-0.16248,-0.16876,-0.17056,-0.171,-0.15878,-0.16002,-0.1645,-0.16831,-0.1691,-0.1543,-0.15508,-0.15464,-0.16428,-0.16708,0.25042,0.2419,0.24403,0.24436,0.24201,0.24784,0.2447,0.24504,0.24739,0.24111 0.13795,0.13795,0.094402,0.04215,-0.27136,0.15536,0.12924,0.13795,0.10311,-0.34974,0.12053,0.10311,0.13795,-0.0013934,-0.38458,0.12053,0.11182,0.11182,-0.062354,-0.43683,0.13795,0.12924,0.11182,-0.062354,-0.45425 0.093837,0.077246,0.093837,-0.012343,-0.40056,0.10379,0.10379,0.1237,0.060655,-0.4072,0.1237,0.11375,0.15024,-0.07207,-0.38397,0.16684,0.15024,0.15356,-0.082024,-0.34416,0.1967,0.16352,0.15024,0.020838,-0.34416 -0.24473,-0.24523,-0.24489,-0.24556,-0.24523,-0.24506,-0.24389,-0.24456,-0.24439,-0.24489,0.15638,0.1696,0.1763,0.17195,0.16358,0.15002,0.16625,0.17546,0.1614,0.15772,0.15788,0.1686,0.15822,0.15872,0.15638 -0.22624,-0.12872,-0.18445,-0.12872,-0.14266,-0.22624,-0.21231,-0.15659,-0.12872,-0.15659,-0.14266,-0.15659,-0.10086,-0.10086,-0.12872,0.26135,0.094175,0.1499,0.10811,0.17776,0.26135,0.26135,0.33101,0.34494,0.33101 -0.24725,-0.24725,-0.24653,-0.24617,-0.24508,-0.24435,-0.24508,-0.24327,-0.24218,-0.24218,0.16795,0.16541,0.16397,0.16505,0.16686,0.1636,0.16324,0.16252,0.16252,0.16541,0.16034,0.1607,0.15926,0.16179,0.1607 -0.16358,-0.16358,-0.16326,-0.16264,-0.16421,-0.16264,-0.16358,-0.16295,-0.16201,-0.16232,-0.16421,-0.16421,-0.16295,-0.16138,-0.16326,0.26292,0.25978,0.24376,0.23057,0.22681,0.26481,0.25978,0.24,0.23057,0.22775 -0.16227,-0.16442,-0.16549,-0.16442,-0.16514,-0.16299,-0.16263,-0.16442,-0.16514,-0.16585,-0.16048,-0.16191,-0.16048,-0.16083,-0.16263,0.2396,0.2439,0.23745,0.25394,0.25036,0.2396,0.24462,0.24068,0.24856,0.25036 -0.22636,-0.29892,-0.27473,-0.29892,-0.22636,-0.081259,-0.15381,-0.22636,-0.057075,-0.15381,0.039662,-0.0087063,-0.0087063,-0.0087063,-0.10544,0.23314,0.1364,0.063846,0.16058,0.088031,0.25732,0.37824,0.2815,0.2815,0.20895 0.22186,0.20863,0.24834,0.26158,0.26158,0.22186,0.18215,0.27481,0.2351,0.27481,-0.12232,-0.13555,-0.12232,-0.082603,-0.029652,-0.16203,-0.17527,-0.17527,-0.17527,-0.20174,-0.21498,-0.1885,-0.21498,-0.17527,-0.21498 -0.22852,-0.32703,-0.1054,-0.22852,-0.15465,-0.15465,-0.15465,-0.2039,-0.15465,-0.17927,-0.031521,-0.1054,-0.080772,-0.080772,-0.056146,0.23936,0.21473,0.066981,0.14086,0.11623,0.26398,0.33786,0.23936,0.33786,0.28861 0.23552,0.074355,0.074355,-0.20292,-0.21694,0.22951,0.16244,0.068349,-0.18591,-0.23596,0.23051,0.13041,0.084365,-0.19992,-0.24397,0.23652,0.17646,0.21149,-0.21394,-0.23796,0.23852,0.24252,-0.20793,-0.21594,-0.23396 0.36545,0.20978,0.042574,-0.031227,-0.12002,0.3447,0.14405,-0.050831,-0.11887,-0.14769,0.35162,0.10023,-0.11887,-0.14885,-0.1846,0.30549,0.082934,-0.12233,-0.18921,-0.21458,0.25936,-0.10849,-0.15923,-0.2238,-0.26762 -0.24477,-0.24464,-0.24477,-0.24464,-0.2448,-0.24464,-0.2446,-0.2446,-0.24464,-0.2446,0.14841,0.14864,0.15099,0.17871,0.17854,0.15602,0.15373,0.15307,0.17325,0.17838,0.15066,0.15317,0.17513,0.17259,0.17543 -0.22816,-0.24309,-0.24309,-0.16843,-0.1983,-0.16843,-0.1983,-0.25802,-0.1535,-0.22816,0.055547,0.070479,0.010751,-0.019113,-0.12364,0.18993,0.13021,0.11527,0.11527,0.070479,0.35419,0.32432,0.23473,0.30939,0.24966 -0.16404,-0.16326,-0.1617,-0.16287,-0.16209,-0.16365,-0.16287,-0.16248,-0.16287,-0.16248,-0.16287,-0.16248,-0.16248,-0.16248,-0.15818,0.2829,0.23598,0.22151,0.22268,0.21838,0.29072,0.30167,0.21916,0.22151,0.22229 -0.24412,-0.24428,-0.24467,-0.24467,-0.24538,-0.24436,-0.24467,-0.24451,-0.24475,-0.24467,0.15236,0.18011,0.18262,0.1537,0.1515,0.15417,0.17047,0.17047,0.17032,0.17126,0.1573,0.17588,0.13363,0.17502,0.14727 -0.16364,-0.16323,-0.16323,-0.16405,-0.16426,-0.16282,-0.16282,-0.16364,-0.16282,-0.16405,-0.16323,-0.16323,-0.16282,-0.16241,-0.16282,0.24549,0.26072,0.24178,0.24363,0.23972,0.24528,0.24157,0.24013,0.24446,0.24631 -0.24482,-0.24492,-0.24512,-0.24521,-0.24551,-0.24452,-0.24443,-0.24443,-0.24502,-0.24531,0.16666,0.16342,0.16105,0.16716,0.16558,0.16627,0.16066,0.15928,0.16066,0.16706,0.16785,0.1643,0.15692,0.15909,0.16332 -0.16329,-0.16482,-0.16482,-0.16431,-0.16431,-0.16279,-0.16313,-0.16262,-0.16313,-0.16329,-0.16279,-0.16245,-0.16262,-0.16245,-0.16262,0.24815,0.24494,0.24308,0.24258,0.24359,0.24579,0.24984,0.24325,0.24376,0.24443 -0.16508,-0.16247,-0.16377,-0.16377,-0.16377,-0.1605,-0.16574,-0.16377,-0.16574,-0.16247,-0.16116,-0.16443,-0.1605,-0.16639,-0.15919,0.24056,0.24383,0.24318,0.24318,0.24383,0.26607,0.2399,0.24252,0.24056,0.24514 -0.12568,-0.12568,-0.12568,-0.14452,-0.16807,-0.13981,-0.1351,-0.13039,-0.13981,-0.13039,-0.10684,-0.13981,-0.12568,-0.12568,-0.12568,0.072167,0.029771,-0.0079138,-0.0032032,-0.0079138,0.35951,0.3972,0.36894,0.38778,0.39249 0.19677,0.11057,0.086791,0.045179,-0.42444,0.18636,0.1284,0.07936,0.06004,-0.38134,0.16853,0.10165,0.067471,0.03329,-0.37243,0.1611,0.097194,0.077874,0.031804,-0.40364,0.15218,0.085305,0.042207,0.031804,-0.36202 -0.24343,-0.24499,-0.24395,-0.24473,-0.24576,-0.24447,-0.24602,-0.24551,-0.24499,-0.24525,0.17876,0.16141,0.16322,0.1596,0.15908,0.164,0.16167,0.16503,0.164,0.15985,0.16037,0.16374,0.16296,0.16503,0.16037 -0.16444,-0.1628,-0.16116,-0.16772,-0.16608,-0.16608,-0.16116,-0.16608,-0.16936,-0.16444,-0.1546,-0.15952,-0.1628,-0.1628,-0.1546,0.216,0.23404,0.23732,0.257,0.27995,0.21764,0.22912,0.24224,0.25372,0.27667 0.2757,0.28881,-0.045834,-0.18382,-0.20447,0.27898,-0.045834,-0.045506,-0.18611,-0.21365,0.27176,-0.047145,-0.043867,-0.18284,-0.22643,0.26685,0.26423,-0.046489,-0.18808,-0.2225,0.27471,0.27996,-0.0478,-0.042884,-0.22774 -0.16331,-0.16345,-0.16288,-0.16345,-0.16374,-0.1636,-0.16316,-0.16302,-0.16302,-0.16345,-0.16331,-0.16374,-0.16273,-0.1636,-0.16302,0.24371,0.24486,0.24486,0.24486,0.24457,0.24429,0.24472,0.24544,0.2463,0.24587 0.33473,-0.020809,-0.083913,-0.13624,-0.17472,0.34396,-0.010035,-0.083913,-0.13624,-0.17164,0.36243,0.31934,-0.083913,-0.1347,-0.18396,0.3455,-0.0069568,-0.10084,-0.14394,-0.17472,0.35012,0.0084344,-0.091608,-0.14856,-0.1778 -0.24296,-0.24405,-0.24471,-0.24515,-0.2458,-0.24296,-0.24362,-0.24362,-0.24493,-0.24558,0.18156,0.18156,0.1809,0.13024,0.13046,0.17894,0.17544,0.18025,0.15732,0.14356,0.17086,0.17217,0.16518,0.15382,0.14116 -0.16344,-0.16306,-0.16319,-0.1642,-0.16357,-0.16344,-0.16319,-0.16319,-0.16332,-0.16281,-0.16332,-0.16332,-0.16332,-0.16294,-0.16319,0.2437,0.24496,0.24635,0.24483,0.24433,0.24483,0.24521,0.24648,0.24382,0.24496 -0.16459,-0.16459,-0.16459,-0.16526,-0.16392,-0.16158,-0.16358,-0.16258,-0.16425,-0.16358,-0.15823,-0.16124,-0.16225,-0.16358,-0.16559,0.24768,0.24534,0.24601,0.24568,0.24367,0.24434,0.24467,0.24467,0.24367,0.24367 0.14621,0.15582,0.1334,-0.065225,-0.30549,0.1398,0.15262,0.11097,-0.065225,-0.41442,0.14301,0.15262,0.1398,-0.052411,-0.28307,0.1398,0.1366,0.1398,-0.055614,-0.47849,0.1334,0.14942,0.12058,-0.033189,-0.34073 0.14149,0.1006,-0.0016358,-0.18566,-0.247,0.18239,-0.0016358,-0.062977,-0.18566,-0.22656,0.20284,0.26418,-0.062977,-0.247,-0.22656,0.32552,0.20284,0.14149,-0.12432,-0.247,0.26418,0.32552,0.080153,-0.12432,-0.2879 -0.1674,-0.1579,-0.16581,-0.16898,-0.16265,-0.16581,-0.15632,-0.15157,-0.1674,-0.15948,-0.17689,-0.17689,-0.15632,-0.15316,-0.1579,0.27087,0.25663,0.23448,0.2329,0.21866,0.27087,0.2598,0.24239,0.23448,0.22341 -0.16403,-0.16445,-0.16424,-0.16382,-0.16445,-0.16258,-0.1632,-0.16299,-0.16299,-0.16382,-0.16216,-0.16278,-0.16175,-0.16258,-0.16362,0.24675,0.24634,0.24592,0.24509,0.24468,0.24509,0.24426,0.24426,0.24322,0.24384 0.14925,0.20702,0.2071,-0.24459,-0.24518,0.15079,0.15153,0.20952,-0.24393,-0.24489,0.15219,0.15572,0.15726,-0.24371,-0.2443,0.15263,0.14961,0.14888,-0.24305,-0.244,0.14851,0.15131,0.14866,-0.2429,-0.24342 -0.16416,-0.16485,-0.1652,-0.16348,-0.16348,-0.16416,-0.16416,-0.1652,-0.16348,-0.16245,-0.16107,-0.16176,-0.16039,-0.16313,-0.16245,0.24432,0.2481,0.24707,0.24673,0.2457,0.24398,0.24157,0.24432,0.24398,0.24364 -0.16041,-0.16131,-0.16222,-0.16313,-0.16676,-0.16222,-0.15995,-0.16131,-0.16403,-0.16676,-0.16131,-0.16313,-0.16313,-0.16494,-0.16857,0.24329,0.24555,0.24329,0.24419,0.24238,0.24601,0.2392,0.24555,0.25553,0.24419 -0.16389,-0.16389,-0.16313,-0.16313,-0.16389,-0.16338,-0.16389,-0.16389,-0.16389,-0.1649,-0.16135,-0.16186,-0.16211,-0.16287,-0.16338,0.24332,0.24611,0.24611,0.24712,0.24738,0.24332,0.24307,0.24484,0.24459,0.24358 -0.18374,-0.18474,-0.18507,-0.18474,-0.18209,-0.17679,-0.17679,-0.17381,-0.17546,-0.17844,-0.18341,-0.17811,-0.17911,-0.015475,-0.020113,0.22699,0.22202,0.21937,0.23891,0.23759,0.22434,0.21937,0.22202,0.33861,0.22864 0.22661,0.18214,0.19548,0.18214,0.18214,0.19548,0.18214,0.1599,0.19548,0.18214,0.1599,0.1021,0.1021,0.088757,0.075417,-0.24919,-0.24475,-0.24475,-0.23141,-0.23141,-0.25809,-0.2403,-0.23585,-0.22696,-0.24919 -0.16138,-0.16138,-0.16352,-0.16138,-0.16481,-0.16224,-0.16524,-0.16438,-0.16524,-0.16481,-0.16395,-0.16395,-0.16181,-0.16438,-0.16095,0.24241,0.24455,0.24756,0.24541,0.2467,0.24327,0.24241,0.2437,0.24713,0.24627 -0.16457,-0.16724,-0.16591,-0.16056,-0.16189,-0.16858,-0.16368,-0.16323,-0.16279,-0.16056,-0.161,-0.16457,-0.16056,-0.16323,-0.161,0.24645,0.24511,0.24556,0.24601,0.24601,0.24645,0.24288,0.24288,0.24288,0.24511 -0.2446,-0.24503,-0.2446,-0.2446,-0.24439,-0.24503,-0.24631,-0.24567,-0.24374,-0.2446,0.16735,0.17355,0.17227,0.17227,0.15536,0.16499,0.16093,0.17312,0.16242,0.15237,0.16456,0.15365,0.15707,0.15622,0.16242 0.43102,0.22602,-0.17152,-0.18243,-0.18788,0.24628,0.21978,-0.17619,-0.18399,-0.18866,0.21978,0.22134,-0.16606,-0.16372,-0.18711,0.21666,0.21978,-0.13254,-0.15125,-0.17931,0.21354,0.079475,0.073239,-0.14891,-0.14735 -0.19639,-0.26994,-0.26994,-0.23316,-0.25155,-0.14122,-0.14122,-0.14122,-0.14122,-0.15961,-0.049281,0.024273,-0.030892,0.024273,-0.030892,0.079438,0.042661,0.079438,0.061049,0.097826,0.37365,0.24493,0.31849,0.3001,0.41043 0.39853,0.38452,0.38452,0.38452,0.38919,0.0061657,-0.0078473,-0.0078473,-0.0078473,-0.0078473,-0.13863,-0.11995,-0.12929,-0.12462,-0.13863,-0.13396,-0.11995,-0.12462,-0.13863,-0.11528,-0.11061,-0.12929,-0.12462,-0.13863,-0.12929 -0.29312,-0.29312,-0.39083,-0.29312,-0.29312,-0.17099,-0.14656,-0.14656,-0.12213,-0.097706,0.024427,0.07328,0.07328,0.07328,0.097706,0.19541,0.17099,0.26869,0.17099,0.17099,0.24427,0.12213,0.19541,0.21984,0.14656 0.11637,0.15287,0.15198,-0.24458,-0.24279,0.11749,0.17594,0.15377,-0.24402,-0.24346,0.17347,0.17415,0.17549,-0.24357,-0.24346,0.17515,0.17415,0.17795,-0.24458,-0.24514,0.1737,0.17415,0.17549,-0.24525,-0.24525 0.21198,0.22766,0.22766,0.23942,0.22766,0.23158,0.20806,0.22374,0.23942,0.20806,0.027752,0.043431,-0.019285,-0.085922,-0.050644,-0.16432,-0.21528,-0.21136,-0.21919,-0.15648,-0.20744,-0.26231,-0.28583,-0.24663,-0.19176 0.39715,0.39035,0.39035,0.39035,0.38129,-0.012773,-0.010508,-0.010508,-0.012773,-0.010508,-0.12601,-0.11695,-0.12601,-0.11695,-0.12375,-0.12601,-0.12828,-0.12375,-0.12375,-0.13054,-0.13281,-0.12375,-0.13281,-0.12828,-0.13281 0.18045,0.18045,0.18705,0.18375,0.18045,0.14085,0.13755,0.15405,0.15075,0.13095,0.14745,0.14085,0.14745,0.14085,0.14745,-0.16606,-0.16606,-0.15946,-0.13966,-0.11986,-0.30796,-0.32116,-0.31456,-0.33436,-0.32116 0.14671,0.12551,0.061908,0.053427,-0.42784,0.17003,0.11279,0.070388,0.049187,-0.35364,0.17639,0.11279,0.070388,0.027986,-0.42996,0.15095,0.11067,0.078869,0.044947,-0.41724,0.15095,0.12127,0.078869,0.034346,-0.31972 0.15543,0.21742,0.19142,-0.24254,-0.27054,0.18142,0.18542,0.18542,-0.23454,-0.27654,0.18742,0.16743,0.14943,-0.23854,-0.25054,0.16543,0.17542,0.18542,-0.21054,-0.24654,0.043436,0.10743,0.11343,-0.20654,-0.23454 -0.16381,-0.16251,-0.16251,-0.16251,-0.16316,-0.16272,-0.16359,-0.16207,-0.16403,-0.16337,-0.16403,-0.16446,-0.16272,-0.16294,-0.16337,0.21952,0.2332,0.25232,0.25166,0.2508,0.23016,0.25471,0.25275,0.25166,0.25101 -0.16466,-0.16406,-0.16386,-0.16426,-0.16386,-0.16266,-0.16206,-0.16386,-0.16346,-0.16306,-0.15806,-0.16266,-0.16326,-0.16286,-0.16446,0.26883,0.24425,0.24844,0.25264,0.22026,0.24944,0.25504,0.25024,0.23266,0.22526 -0.26981,-0.23116,-0.13452,-0.15385,-0.13452,-0.15385,-0.17318,-0.17318,-0.13452,-0.095865,-0.23116,-0.17318,-0.11519,-0.095865,-0.076537,0.13607,0.17472,0.15539,0.21338,0.2327,0.32934,0.27136,0.2327,0.27136,0.32934 0.17769,0.16954,0.16546,0.16954,0.16954,0.16546,0.15322,0.16138,0.16546,0.14914,0.16138,0.15322,0.14506,0.16138,0.14506,-0.1772,-0.20576,-0.18944,-0.1976,-0.17312,-0.28734,-0.29142,-0.29958,-0.28734,-0.30366 0.40288,0.25435,0.1338,-0.014724,-0.14818,0.32969,0.1747,0.041243,-0.066385,-0.20846,0.22852,0.12735,-0.027639,-0.15464,-0.24935,0.21345,0.060617,-0.047012,-0.17401,-0.29456,0.14241,-0.0061133,-0.12666,-0.22783,-0.36344 -0.16387,-0.16292,-0.16301,-0.16241,-0.16249,-0.16327,-0.16275,-0.16353,-0.16327,-0.16387,-0.16353,-0.16387,-0.16421,-0.16284,-0.16361,0.24561,0.24501,0.24182,0.24561,0.24612,0.24397,0.24311,0.24423,0.24698,0.24698 -0.10859,-0.23293,-0.15004,-0.12931,-0.12931,-0.19148,-0.19148,-0.19148,-0.21221,-0.17076,-0.15004,-0.17076,-0.087866,-0.12931,-0.10859,0.2437,0.11937,0.14009,0.20226,0.18154,0.28515,0.28515,0.2437,0.36804,0.28515 -0.1634,-0.16346,-0.16335,-0.16361,-0.1634,-0.16299,-0.16304,-0.1633,-0.16314,-0.16335,-0.1632,-0.16335,-0.16325,-0.1633,-0.16314,0.24164,0.24096,0.2432,0.24612,0.25082,0.24132,0.242,0.24216,0.24999,0.25108 -0.16371,-0.16371,-0.16371,-0.16371,-0.16371,-0.16309,-0.16401,-0.16309,-0.16401,-0.16309,-0.16617,-0.16186,-0.16278,-0.1634,-0.1594,0.24744,0.24467,0.24436,0.2459,0.24528,0.24713,0.24313,0.24251,0.24405,0.24497 -0.16226,-0.16226,-0.16189,-0.16115,-0.16263,-0.16595,-0.16226,-0.16337,-0.16226,-0.16447,-0.16337,-0.16447,-0.1641,-0.16521,-0.16373,0.24774,0.24331,0.2459,0.24073,0.24405,0.24959,0.24737,0.24258,0.24221,0.2459 -0.17775,-0.17991,-0.11939,0.22101,0.27072,-0.17342,-0.17883,-0.12695,0.22966,0.26856,-0.17558,-0.17558,-0.14533,0.21669,0.26532,-0.17558,-0.17666,-0.1302,0.21777,0.26424,-0.17775,-0.17775,-0.14424,0.22318,0.25776 0.25642,0.088354,-0.18375,-0.23177,-0.23177,0.24041,0.16838,-0.11172,-0.23177,-0.27979,0.23241,0.16038,-0.063705,-0.23177,-0.23177,0.26442,0.16838,0.11236,-0.15174,-0.19175,0.23241,0.23241,0.18439,0.024329,-0.22377 0.30626,0.29942,0.27891,0.28347,0.28119,0.19913,0.18545,0.19001,0.19913,0.19685,-0.16558,-0.1633,-0.15874,-0.15418,-0.1633,-0.17241,-0.1633,-0.1633,-0.17013,-0.15418,-0.15646,-0.15874,-0.1633,-0.15646,-0.15646 -0.16606,-0.16426,-0.16426,-0.16426,-0.16787,-0.16426,-0.16066,-0.16246,-0.16306,-0.16306,-0.15525,-0.15946,-0.16366,-0.16727,-0.16306,0.24375,0.24255,0.24135,0.23894,0.25216,0.24255,0.23894,0.24074,0.25216,0.25577 -0.23779,-0.24334,-0.24611,-0.24888,-0.23918,-0.24056,-0.2572,-0.25304,-0.23224,-0.25027,0.16564,0.1601,0.16564,0.16564,0.16842,0.16564,0.16426,0.16426,0.16426,0.16564,0.16287,0.15455,0.16287,0.16287,0.15594 0.21972,0.21881,-0.1612,-0.16132,-0.16132,0.21985,0.21907,-0.16094,-0.1612,-0.16029,0.3857,0.29546,-0.16016,-0.16094,-0.16132,0.2126,0.21311,-0.16042,-0.1612,-0.16081,0.21557,0.21415,-0.16132,-0.1612,-0.16042 -0.19709,-0.17016,-0.08939,0.17986,0.31448,-0.33171,-0.17016,0.018309,0.23371,0.20678,-0.30479,-0.11631,0.072158,0.099082,0.17986,-0.27786,-0.22401,0.072158,0.17986,0.3414,-0.19709,-0.08939,-0.08939,0.20678,0.15293 -0.18845,-0.20883,-0.066168,0.10027,0.24293,-0.19524,-0.20883,-0.062771,0.22255,0.25992,-0.17826,-0.20883,0.076494,0.24633,0.26331,-0.19864,-0.20204,-0.12052,0.24633,0.24293,-0.19864,-0.21223,-0.1341,0.23614,0.24633 -0.16567,-0.16427,-0.1727,-0.15724,-0.16146,-0.15724,-0.16567,-0.16146,-0.16848,-0.16427,-0.15021,-0.16005,-0.17692,-0.15443,-0.16848,0.24471,0.24471,0.2405,0.24753,0.24471,0.2405,0.24753,0.24471,0.25034,0.24331 -0.17979,-0.18317,-0.11394,0.22714,0.2626,-0.17979,-0.1781,-0.13083,0.22883,0.25416,-0.18148,-0.1781,-0.14433,0.23558,0.25078,-0.17979,-0.18317,-0.11394,0.23052,0.25922,-0.1781,-0.17473,-0.13589,0.22883,0.25753 0.21005,0.17322,0.17322,0.16094,0.16094,0.18959,0.16912,0.14866,0.14866,0.16912,0.14457,0.12819,0.12819,0.13638,0.11591,-0.12557,-0.13785,-0.14195,-0.17878,-0.21153,-0.28111,-0.31795,-0.33841,-0.32204,-0.30157 -0.17083,-0.17187,-0.16927,-0.17031,-0.16771,-0.16875,-0.16249,-0.15937,-0.16093,-0.16145,-0.15468,-0.15416,-0.15624,-0.15468,-0.15885,0.25281,0.24812,0.24343,0.24812,0.23509,0.26584,0.24916,0.24603,0.17881,0.27417 -0.16326,-0.15963,-0.17416,-0.1669,-0.18142,-0.094269,-0.11969,-0.11969,-0.14148,-0.13421,-0.06885,-0.061587,-0.090638,-0.094269,-0.10879,0.036459,0.00014525,-0.018011,-0.018011,-0.039799,0.42501,0.40322,0.3887,0.34512,0.35602 0.2488,0.24369,-0.1255,-0.18682,-0.21876,0.2322,0.2322,-0.13061,-0.17916,-0.21876,0.22709,0.22581,-0.12422,-0.19321,-0.21365,0.21559,0.21303,0.21048,-0.18554,-0.20343,0.20537,0.20281,-0.114,-0.17532,-0.1881 0.23119,0.25593,0.263,0.23472,0.25593,0.12867,0.14281,0.17109,0.20644,0.21351,0.008484,0.012019,0.008484,0.001414,0.019089,-0.11878,-0.11524,-0.10817,-0.15766,-0.15766,-0.29199,-0.30613,-0.30613,-0.29906,-0.29199 -0.19172,-0.1841,0.014021,0.25787,0.29597,-0.2222,-0.20696,0.036882,0.26549,0.25025,-0.19172,-0.20696,-0.11552,0.25025,0.24263,-0.20696,-0.21458,-0.11552,0.21977,0.21977,-0.20696,-0.16886,-0.12314,0.11308,0.18929 -0.24025,-0.23262,-0.24787,-0.24787,-0.2555,-0.22118,-0.23453,-0.25741,-0.24978,-0.25359,0.12775,0.14491,0.16207,0.16207,0.21927,0.16588,0.15826,0.15826,0.13728,0.15635,0.16779,0.1697,0.1697,0.18304,0.15826 0.21923,0.20059,0.13224,0.070095,-0.23439,0.21923,0.2068,0.11359,-0.11011,-0.25925,0.21923,0.16952,0.13224,-0.14118,-0.32139,0.21923,0.082523,-0.010688,-0.23439,-0.29032,0.23166,0.088737,-0.14118,-0.27168,-0.29032 -0.16235,-0.16306,-0.16283,-0.16354,-0.16401,-0.1633,-0.16306,-0.16306,-0.16306,-0.16448,-0.16117,-0.16519,-0.16259,-0.16212,-0.16212,0.27385,0.25823,0.24734,0.23669,0.21752,0.26012,0.25326,0.24734,0.22675,0.22486 -0.23212,-0.046424,-0.069636,0.046424,0.25533,-0.30175,-0.023212,-0.023212,0.11606,0.25533,-0.16248,-0.11606,-0.046424,0.13927,0.27854,-0.30175,-0.23212,-0.092848,0.23212,0.27854,-0.23212,-0.16248,-0.092848,0.11606,0.41781 0.26572,0.18832,0.18077,-0.14392,-0.14959,0.26761,0.20342,-0.16846,-0.21566,-0.22132,0.29404,0.27138,-0.16469,-0.18734,-0.27795,0.28649,0.086384,-0.032545,-0.10805,-0.26285,0.24118,0.0070979,-0.066524,-0.098616,-0.19489 -0.1693,-0.13105,-0.15655,-0.10556,-0.18205,-0.1438,-0.18205,-0.1438,-0.11831,-0.1948,-0.13105,-0.20754,-0.15655,-0.22029,-0.15655,0.17491,0.18766,0.2004,0.18766,0.2004,0.28964,0.28964,0.30239,0.28964,0.27689 -0.16321,-0.16337,-0.16337,-0.16343,-0.16343,-0.163,-0.16321,-0.16337,-0.16305,-0.16343,-0.163,-0.16327,-0.16343,-0.16348,-0.16327,0.24236,0.24284,0.24446,0.24571,0.25521,0.24295,0.24295,0.24284,0.24403,0.24598 -0.24493,-0.24493,-0.24606,-0.24561,-0.24448,-0.24403,-0.24358,-0.24381,-0.24448,-0.24493,0.19176,0.16356,0.16243,0.15973,0.14709,0.16739,0.17258,0.16536,0.16424,0.14574,0.17055,0.16852,0.16424,0.16401,0.13965 0.17228,0.175,0.1859,-0.24447,-0.2412,0.14994,0.1652,0.17827,-0.25482,-0.24338,0.15321,0.16193,0.16574,-0.2461,-0.24392,0.13578,0.16356,0.16792,-0.24392,-0.24392,0.13469,0.16792,0.16846,-0.24229,-0.24175 0.26341,0.37872,0.21217,0.26341,0.30185,0.17373,0.14811,0.23779,0.2506,0.12248,-0.15938,-0.12094,-0.10813,-0.069697,-0.12094,-0.14657,-0.14657,-0.19782,-0.21063,-0.15938,-0.22344,-0.185,-0.19782,-0.12094,-0.185 -0.27486,-0.041136,-0.064509,0.23934,0.21596,-0.18137,-0.20474,0.028982,0.052355,0.37957,-0.13463,-0.18137,-0.064509,0.16922,0.21596,-0.29824,-0.18137,-0.017763,0.052355,0.28608,-0.29824,-0.158,-0.041136,0.16922,0.33283 -0.24693,-0.29045,-0.29715,-0.30049,-0.31054,-0.25363,-0.20006,-0.25028,-0.1398,-0.069499,0.057715,0.13806,0.19497,0.16819,0.17823,0.10458,0.18493,0.16484,0.16819,0.19163,0.16484,0.16484,0.15815,0.16484,0.1548 0.2586,0.24599,0.24879,0.23479,0.22778,0.26701,0.24179,0.24739,0.24459,0.22638,-0.14625,-0.12944,-0.15185,-0.14765,-0.13644,-0.17007,-0.16726,-0.16726,-0.17007,-0.16726,-0.17707,-0.17707,-0.17707,-0.18127,-0.17707 0.36149,0.41974,0.36149,0.40032,0.3712,-0.017085,-0.046206,0.031451,-0.0073774,0.070279,-0.13357,-0.11416,-0.15298,-0.10445,-0.13357,-0.12386,-0.14328,-0.12386,-0.16269,-0.14328,-0.12386,-0.12386,-0.13357,-0.12386,-0.10445 0.18568,0.1732,0.15448,0.15448,0.18568,0.17944,0.16696,0.15448,0.18568,0.14824,0.14824,0.14824,0.15448,0.15448,0.142,-0.22611,-0.22611,-0.20739,-0.20739,-0.21987,-0.26978,-0.26978,-0.26354,-0.2885,-0.25731 -0.16453,-0.16426,-0.16536,-0.16536,-0.16591,-0.16039,-0.16122,-0.16398,-0.1637,-0.16398,-0.15984,-0.1615,-0.1626,-0.16315,-0.16288,0.24233,0.23736,0.24509,0.24895,0.25833,0.23654,0.23654,0.23654,0.25116,0.25584 0.26155,0.25248,0.26155,0.26381,0.25928,0.22755,0.23435,0.22755,0.22982,0.22755,-0.15774,-0.16908,-0.15321,-0.16001,-0.15548,-0.16681,-0.16681,-0.17588,-0.17361,-0.16681,-0.17134,-0.16454,-0.15774,-0.15548,-0.15094 0.14453,0.11198,0.082828,0.053677,-0.39331,0.14356,0.12024,0.072139,0.05805,-0.39622,0.13773,0.12267,0.080885,0.052705,-0.39282,0.14356,0.11732,0.092059,0.05562,-0.39816,0.14064,0.11538,0.076998,0.054649,-0.39671 -0.16359,-0.1639,-0.16328,-0.16277,-0.16277,-0.16359,-0.16328,-0.16349,-0.16349,-0.16349,-0.16226,-0.16247,-0.16441,-0.16277,-0.16318,0.26298,0.25462,0.23943,0.24178,0.238,0.24657,0.24534,0.2428,0.23862,0.23862 0.30526,0.28936,0.32116,0.30526,0.30526,0.11447,0.13037,0.11447,0.14627,0.11447,-0.012719,-0.012719,-0.012719,-0.012719,-0.044517,-0.15581,-0.20351,-0.15581,-0.10811,-0.17171,-0.25121,-0.2989,-0.283,-0.21941,-0.20351 0.18383,0.19975,-0.12379,-0.24048,-0.28821,0.18118,0.18914,0.17853,-0.21926,-0.25109,0.17323,0.18383,0.18649,-0.10788,-0.267,0.17057,0.1414,0.17057,-0.19805,-0.28821,0.14936,0.15201,0.17323,-0.21396,-0.23518 -0.16453,-0.16392,-0.16392,-0.16453,-0.16392,-0.1627,-0.16453,-0.16331,-0.16331,-0.1627,-0.16209,-0.16209,-0.1627,-0.16209,-0.16209,0.2436,0.24055,0.23902,0.25,0.25061,0.22683,0.23659,0.24817,0.26097,0.25213 -0.25406,-0.080385,0.018856,0.14291,0.24215,-0.22925,-0.20444,0.018856,0.018856,0.24215,-0.32849,0.018856,0.093287,0.16772,0.26696,-0.17963,-0.20444,-0.0059545,0.16772,0.31658,-0.3533,-0.17963,-0.1052,0.093287,0.31658 -0.16054,-0.16054,-0.15776,-0.1624,-0.15035,-0.16425,-0.15962,-0.16981,-0.16332,-0.1624,-0.17537,-0.1661,-0.16425,-0.1661,-0.16425,0.23424,0.23424,0.23887,0.23609,0.23794,0.24628,0.23146,0.26296,0.26018,0.26482 0.11351,0.12802,0.11351,-0.24907,-0.099203,0.15219,0.16186,0.12318,-0.19589,-0.25874,0.16186,0.1812,0.11351,-0.27324,-0.28291,0.21987,0.20053,0.094175,-0.23457,-0.28291,0.2102,0.21987,0.18603,-0.2104,-0.29258 0.14959,0.17557,0.10412,-0.23057,-0.23844,0.15609,0.30924,0.10754,-0.23057,-0.24254,0.13933,0.29899,0.12874,-0.23297,-0.24391,0.13933,0.12839,0.13215,-0.23433,-0.24561,0.15711,0.12874,0.12771,-0.23502,-0.24869 -0.32235,-0.24975,-0.0077442,0.16166,0.25846,-0.32235,-0.24975,0.11326,0.11326,0.30686,-0.29815,-0.15295,0.016456,0.18586,0.25846,-0.22555,-0.080346,-0.056146,0.13746,0.21006,-0.22555,-0.0077442,0.13746,0.11326,0.18586 0.14922,0.15395,0.14212,0.085349,-0.27658,0.14212,0.14449,0.15158,-0.11809,-0.30024,0.15395,0.15632,0.15632,-0.23637,-0.30497,0.14212,0.15158,0.16814,-0.2269,-0.30733,0.16341,0.15632,0.13976,-0.27658,-0.3097 0.28872,0.11342,-0.17323,-0.17535,-0.19065,0.28617,0.11384,-0.17216,-0.18767,-0.18874,0.28319,0.11469,0.11405,-0.18555,-0.19044,0.28489,0.27788,-0.18045,-0.18449,-0.18895,0.2783,0.1166,0.11703,-0.18364,-0.18746 -0.22512,-0.21063,-0.20942,-0.20097,-0.19735,-0.16958,-0.18165,-0.1575,-0.15388,-0.1406,-0.046415,-0.064528,-0.044,-0.044,-0.024681,0.07554,0.04173,0.06105,0.077955,0.087614,0.24217,0.42812,0.31341,0.37499,0.36775 -0.23413,-0.173,-0.29527,-0.18829,-0.23413,-0.2647,-0.23413,-0.18829,-0.23413,-0.20357,0.040958,0.025675,0.10209,-0.0048905,0.086807,0.13266,0.13266,0.10209,0.13266,0.16322,0.31605,0.28548,0.28548,0.28548,0.16322 -0.17924,-0.16254,-0.10407,0.24256,0.23838,-0.2043,-0.17089,-0.14583,0.24673,0.25926,-0.22936,-0.14583,-0.1166,0.19244,0.24256,-0.21265,-0.15836,-0.10407,0.24673,0.24673,-0.1876,-0.15001,-0.15001,0.24256,0.26344 0.11199,0.1376,0.043704,-0.22091,-0.4087,0.1376,0.1376,0.094919,-0.13555,-0.41723,0.16321,0.16321,0.14613,-0.016047,-0.3148,0.18881,0.17174,0.12906,-0.024583,-0.29773,0.16321,0.17174,0.16321,0.0010243,-0.2892 0.12379,0.090868,0.025022,-0.20544,-0.13959,0.35425,0.12379,-0.040825,-0.20544,-0.20544,0.25548,0.22256,0.090868,-0.040825,-0.20544,0.25548,0.025022,0.12379,-0.13959,-0.37006,0.35425,0.12379,-0.10667,-0.23836,-0.27129 -0.16203,-0.15829,-0.16763,-0.16763,-0.16203,-0.16763,-0.17697,-0.15829,-0.16763,-0.16016,-0.16016,-0.15829,-0.15829,-0.1639,-0.15829,0.22847,0.24155,0.24715,0.25462,0.25649,0.22099,0.23968,0.24341,0.25462,0.26023 -0.34244,-0.34244,-0.33208,-0.35281,-0.30099,-0.10406,-0.14552,-0.10406,-0.10406,-0.10406,0.061773,0.082502,0.061773,0.1136,0.082502,0.18615,0.14469,0.18615,0.23797,0.17578,0.17578,0.17578,0.16542,0.21724,0.16542 -0.36575,-0.093172,-0.043612,0.12985,0.27853,-0.21707,-0.093172,-0.018833,0.080287,0.35286,-0.31619,-0.24185,0.080287,0.20419,0.15463,-0.19229,-0.068392,0.055507,0.055507,0.20419,-0.24185,-0.21707,0.0059472,0.15463,0.35286 -0.33531,-0.33531,-0.33531,-0.2793,-0.33531,-0.14861,-0.036593,-0.092602,-0.14861,-0.092602,0.094095,0.075426,0.075426,0.038086,-0.017923,0.22478,0.11277,0.22478,0.075426,0.13143,0.26212,0.24345,0.24345,0.18744,0.16877 -0.22951,-0.076729,0.042099,0.2458,0.2458,-0.17858,-0.16161,0.059074,0.26278,0.29673,-0.21253,-0.17858,0.042099,0.22883,0.1779,-0.29741,-0.19556,-0.11068,0.11,0.26278,-0.29741,-0.24648,-0.076729,0.042099,0.2458 0.11869,0.10762,0.11869,-0.2024,-0.34634,0.14084,0.17405,0.15191,-0.23562,-0.31312,0.16298,0.15191,0.1962,-0.19133,-0.24669,0.1962,0.15191,0.1962,-0.23562,-0.2024,0.18513,0.20727,0.14084,-0.24669,-0.18026 -0.32191,-0.11752,0.035768,0.24016,0.26571,-0.24527,-0.11752,0.035768,0.086866,0.29126,-0.39856,0.01022,0.01022,0.16351,0.13796,-0.34746,-0.040878,0.01022,0.13796,0.18906,-0.29637,-0.16862,0.061317,0.11241,0.26571 0.203,0.20943,0.18734,-0.21838,-0.22117,0.20214,0.20922,0.20171,-0.21945,-0.2246,0.19892,0.20858,-0.075916,-0.21945,-0.22267,0.20407,0.20407,-0.075916,-0.21838,-0.22202,0.20815,0.19978,-0.076774,-0.21752,-0.22417 -0.24121,-0.23032,-0.24898,-0.23809,-0.23809,-0.22876,-0.25676,-0.25987,-0.25054,-0.2552,0.16008,0.16941,0.17097,0.16941,0.15697,0.16319,0.16163,0.16319,0.16163,0.16163,0.15852,0.16474,0.15697,0.16474,0.16474 0.15961,0.17846,0.18474,0.17217,0.17846,0.14704,0.17217,0.16589,0.16589,0.16589,0.084202,0.10305,0.14704,0.17217,0.18474,-0.21113,-0.19228,-0.19228,-0.15458,-0.13573,-0.27397,-0.29282,-0.28654,-0.31167,-0.33052 -0.16376,-0.16298,-0.16272,-0.16376,-0.16298,-0.16246,-0.16402,-0.16324,-0.16246,-0.16402,-0.16272,-0.16142,-0.16402,-0.16168,-0.16428,0.23884,0.25623,0.26038,0.23261,0.24039,0.22586,0.23754,0.24844,0.22767,0.27855 0.39127,0.3359,0.32206,0.28053,0.24823,0.25285,0.19287,0.11443,0.11443,0.054446,-0.1578,-0.13934,-0.13934,-0.14396,-0.13934,-0.13473,-0.13473,-0.1255,-0.16703,-0.15319,-0.18087,-0.1578,-0.18087,-0.17626,-0.17626 -0.2391,-0.28789,-0.26349,-0.26349,-0.26349,-0.1659,-0.11711,-0.11711,-0.1903,-0.2391,-0.019518,0.053675,0.029277,0.029277,0.0048795,0.20006,0.12687,0.22446,0.20006,0.029277,0.17566,0.34644,0.34644,0.20006,0.20006 -0.16361,-0.16361,-0.16459,-0.16263,-0.1641,-0.16312,-0.16361,-0.16508,-0.16215,-0.16263,-0.16459,-0.16263,-0.16166,-0.16166,-0.16166,0.25816,0.25032,0.24836,0.24836,0.23318,0.27187,0.22338,0.24052,0.23807,0.23513 0.14989,0.20002,0.024563,-0.038098,-0.40154,0.21255,0.16242,0.024563,0.024563,-0.35141,0.23761,0.13736,0.11229,-0.0005013,-0.35141,0.14989,0.14989,0.087225,-0.0005013,-0.38901,0.20002,0.062161,-0.0005013,-0.063163,-0.33888 -0.15755,-0.15938,-0.16303,-0.16485,-0.15847,-0.16485,-0.16394,-0.16485,-0.16303,-0.16485,-0.14661,-0.16485,-0.17123,-0.16485,-0.16485,0.23086,0.2108,0.2418,0.24271,0.23542,0.23451,0.31292,0.28648,0.23724,0.20442 -0.16413,-0.16289,-0.16413,-0.16351,-0.16134,-0.16289,-0.16134,-0.16289,-0.16227,-0.16227,-0.16351,-0.16289,-0.16289,-0.16413,-0.16103,0.28493,0.25609,0.23903,0.22601,0.21267,0.2809,0.26198,0.23841,0.22632,0.21578 0.19851,0.27227,0.33549,0.27227,0.29334,0.21958,0.19851,0.18797,0.20905,0.21958,-0.1492,-0.17027,-0.096515,-0.1492,-0.10705,-0.18081,-0.17027,-0.1492,-0.17027,-0.19134,-0.21242,-0.1492,-0.18081,-0.1492,-0.18081 -0.25233,-0.25262,-0.24707,-0.24298,-0.24415,-0.24882,-0.23977,-0.24006,-0.23977,-0.23977,0.15202,0.1637,0.17304,0.17859,0.18005,0.14735,0.15582,0.16107,0.16137,0.17947,0.15115,0.16107,0.1637,0.16107,0.15786 -0.16324,-0.16247,-0.16401,-0.16324,-0.16343,-0.16305,-0.16362,-0.16305,-0.16266,-0.16266,-0.16362,-0.16189,-0.16382,-0.16439,-0.16266,0.22922,0.23559,0.2539,0.23501,0.2566,0.25968,0.23134,0.23539,0.2566,0.25448 -0.23313,-0.15437,-0.075609,0.06222,0.41664,-0.23313,-0.19375,-0.036229,0.06222,0.43633,-0.23313,-0.13468,-0.075609,0.06222,0.27881,-0.17406,-0.13468,-0.075609,0.06222,0.33788,-0.13468,-0.13468,-0.036229,0.06222,0.27881 -0.30183,-0.0019989,-0.05197,0.22287,0.097944,-0.22687,-0.10194,0.072958,0.097944,0.32281,-0.27684,-0.22687,0.022987,0.14791,0.24786,-0.22687,-0.1769,-0.0019989,0.22287,0.29783,-0.27684,-0.20188,-0.076956,0.072958,0.32281 -0.2275,-0.048835,0.070275,0.12983,0.3085,-0.2275,-0.13817,-0.019058,0.10005,0.15961,-0.34661,-0.10839,-0.078613,0.01072,0.36805,-0.28706,-0.25728,0.01072,0.21916,0.21916,-0.25728,-0.078613,0.01072,0.12983,0.33828 -0.28493,-0.24116,-0.23751,-0.23934,-0.23022,-0.27399,-0.23934,-0.23022,-0.2211,-0.24481,0.16734,0.16369,0.15275,0.15457,0.16552,0.12904,0.18375,0.16005,0.16187,0.17281,0.16734,0.17281,0.16552,0.16552,0.16005 -0.25809,-0.25494,-0.25809,-0.26438,-0.26438,-0.23135,-0.21719,-0.22348,-0.22978,-0.22978,0.12886,0.14773,0.15874,0.18391,0.20121,0.12571,0.14773,0.1556,0.18705,0.20278,0.12256,0.12886,0.16503,0.1729,0.20278 -0.16328,-0.1637,-0.16328,-0.16618,-0.16453,-0.16204,-0.16577,-0.16121,-0.16328,-0.16453,-0.16121,-0.16163,-0.16246,-0.16204,-0.16328,0.2371,0.24165,0.23958,0.25159,0.25987,0.23213,0.24,0.23669,0.25242,0.25739 -0.13852,-0.1458,-0.14094,-0.13366,-0.12396,-0.13609,-0.13124,-0.13852,-0.12396,-0.1458,-0.11425,-0.11425,-0.11425,-0.10454,-0.094835,-0.022034,-0.017181,-0.022034,-0.0099009,0.03378,0.37594,0.40021,0.41477,0.39293,0.3541 -0.21098,-0.23411,-0.30351,-0.16471,-0.23411,-0.072176,-0.18784,-0.049043,-0.18784,-0.18784,-0.095309,-0.049043,-0.11844,-0.049043,-0.11844,0.089757,0.25169,0.13602,0.25169,0.15916,0.18229,0.29796,0.25169,0.34422,0.29796 -0.24447,-0.24886,-0.243,-0.24593,-0.24227,-0.24447,-0.25032,-0.24593,-0.24081,-0.24154,0.15942,0.1543,0.16966,0.16673,0.1799,0.15503,0.15503,0.17259,0.16893,0.17405,0.14186,0.15356,0.15795,0.16966,0.16893 0.12566,0.17498,0.17632,-0.24353,-0.24403,0.17195,0.17288,0.17582,-0.2442,-0.24361,0.17002,0.17288,0.17271,-0.24437,-0.24453,0.12574,0.17002,0.17178,-0.24487,-0.2447,0.12599,0.168,0.16834,-0.24453,-0.2447 0.24674,0.24832,0.24674,0.24515,0.23776,0.24938,0.24991,0.24515,0.2404,0.2367,-0.15625,-0.1552,-0.15467,-0.14939,-0.14622,-0.16153,-0.15837,-0.15678,-0.15678,-0.14939,-0.18002,-0.18002,-0.18161,-0.18002,-0.18002 -0.24001,-0.24239,-0.24656,-0.24954,-0.24656,-0.24239,-0.23942,-0.24715,-0.24537,-0.24715,0.14925,0.16473,0.16592,0.17782,0.17782,0.16592,0.16354,0.16056,0.1689,0.17366,0.17009,0.12842,0.15164,0.1564,0.17187 0.33428,0.32443,0.23579,0.21117,0.21117,0.30966,0.21117,0.18162,0.18162,0.19639,-0.1434,-0.11878,-0.13848,-0.12371,-0.11386,-0.19265,-0.1631,-0.19265,-0.15818,-0.1631,-0.1631,-0.17788,-0.17788,-0.19265,-0.17788 0.049392,0.049392,-0.185,-0.16809,-0.16326,0.28621,0.25962,-0.14392,-0.17534,-0.15842,0.28137,0.27412,-0.098012,-0.17775,-0.17292,0.27896,0.26929,-0.081096,-0.19467,-0.18259,0.28862,0.25962,-0.0061861,-0.19709,-0.19225 -0.11312,-0.033457,0.10595,0.22544,0.24535,-0.35209,-0.11312,0.026288,0.12586,0.22544,-0.29235,-0.17286,-0.033457,0.18561,0.22544,-0.25252,-0.17286,0.026288,0.18561,0.30509,-0.35209,-0.17286,-0.13303,0.066117,0.24535 0.14161,0.033708,-0.053645,-0.12558,-0.21807,0.17758,0.0080159,-0.033091,-0.094752,-0.2078,0.44478,0.023431,-0.033091,-0.087044,-0.25147,0.40881,0.023431,-0.033091,-0.12815,-0.2412,0.48845,0.095368,-0.0022609,-0.097321,-0.23863 -0.27224,-0.26689,-0.26154,-0.26333,-0.25976,-0.19561,-0.20452,-0.19561,-0.25798,-0.25976,0.16438,0.1626,0.17508,0.17508,0.17329,0.15904,0.15547,0.15904,0.14834,0.1626,0.15547,0.16082,0.15904,0.15191,0.17508 0.37395,0.34811,-0.073074,-0.18935,-0.21261,0.23183,0.20599,-0.12734,-0.17126,-0.20486,0.22666,0.20341,-0.12734,-0.14801,-0.18935,0.23183,0.28609,-0.11183,-0.14284,-0.17126,0.20858,-0.029147,-0.11442,-0.1325,-0.17126 -0.16221,-0.16059,-0.16221,-0.16059,-0.15736,-0.17189,-0.16382,-0.15898,-0.15898,-0.16544,-0.16544,-0.17189,-0.17028,-0.14768,-0.17028,0.2559,0.25106,0.24622,0.2446,0.2333,0.25913,0.25267,0.23976,0.23653,0.22846 -0.19715,-0.1682,-0.12839,0.25158,0.25881,-0.18991,-0.17544,-0.10668,0.24796,0.24796,-0.18629,-0.18629,-0.13201,0.26605,0.26605,-0.18629,-0.17182,-0.13563,0.20815,0.25158,-0.17182,-0.16096,-0.12839,0.16835,0.25881 0.19654,0.23232,0.21443,0.23232,0.21443,0.17865,0.19654,0.17865,0.19654,0.21443,0.11902,0.065355,0.065355,-0.0062016,-0.065832,-0.10161,-0.12546,-0.1672,-0.19702,-0.25069,-0.24472,-0.24472,-0.30435,-0.27454,-0.32224 0.364,0.37894,0.37147,0.40135,0.364,0.035264,0.035264,0.035264,0.035264,0.027793,-0.12163,-0.15899,-0.12163,-0.12163,-0.1291,-0.11416,-0.10669,-0.15152,-0.1291,-0.14404,-0.15152,-0.15152,-0.10669,-0.1814,-0.15899 0.3212,0.32352,-0.15703,-0.16192,-0.15394,0.20769,0.20795,-0.15651,-0.16192,-0.16527,0.20847,0.31786,-0.14648,-0.16218,-0.16578,0.2028,0.20769,-0.1596,-0.16449,-0.16681,0.20975,0.20872,-0.16424,-0.16501,-0.16449 0.1651,0.14393,0.11218,-0.17357,-0.37465,0.15452,0.091017,0.15452,-0.14182,-0.37465,0.1016,0.14393,0.13335,0.016933,-0.37465,0.19685,0.091017,0.17568,-0.035983,-0.3429,0.17568,0.14393,0.13335,-0.0042333,-0.31115 -0.22302,-0.22302,-0.33588,-0.26816,-0.26816,-0.22302,-0.24559,-0.22302,-0.11015,-0.20044,0.047854,0.047854,0.13814,0.070426,0.092999,0.16072,0.31872,0.18329,0.22843,0.18329,0.13814,0.13814,0.20586,0.18329,0.18329 0.20954,0.24609,0.25047,0.25193,0.26363,0.20954,0.21247,0.26801,0.26509,0.25778,-0.13979,-0.13248,-0.14272,-0.13979,-0.13248,-0.1851,-0.1778,-0.16464,-0.17195,-0.13248,-0.18218,-0.18218,-0.18657,-0.18364,-0.18072 -0.18618,-0.13566,-0.14288,0.13133,0.37668,-0.15731,-0.17896,-0.08515,0.088037,0.31174,-0.19339,-0.17896,-0.1068,0.12412,0.36947,-0.15731,-0.1501,-0.12845,0.10969,0.33339,-0.17896,-0.1501,-0.12123,0.088037,0.31895 0.30695,-0.053397,-0.14758,-0.16396,-0.18443,0.29057,0.05307,-0.1312,-0.15986,-0.16396,0.31105,0.28238,-0.11892,-0.15167,-0.16396,0.29057,0.15544,-0.14758,-0.1312,-0.15986,0.38476,0.21277,-0.1312,-0.15167,-0.12711 0.39084,-0.055935,-0.12102,-0.13157,-0.13685,0.39436,-0.018997,-0.12805,-0.12981,-0.13157,0.39436,-0.045381,-0.10519,-0.13157,-0.13157,0.39612,-0.045381,-0.089355,-0.12981,-0.13333,0.3926,-0.045381,-0.036586,-0.099908,-0.12102 0.20886,0.20372,-0.14965,-0.21655,-0.22169,0.21572,0.22087,0.20886,-0.20454,-0.21312,0.22773,0.22087,-0.11191,-0.20454,-0.20454,0.23974,0.22087,-0.089611,-0.19596,-0.17881,0.23974,0.23802,-0.089611,-0.17366,-0.19082 -0.16249,-0.16175,-0.16234,-0.16338,-0.16441,-0.16308,-0.16175,-0.16249,-0.16367,-0.16397,-0.16397,-0.16249,-0.16323,-0.16338,-0.16441,0.2574,0.25268,0.27275,0.23054,0.2332,0.2242,0.25342,0.25431,0.23217,0.23615 0.18695,0.056397,-0.16554,-0.21776,-0.19165,0.26528,0.13473,-0.11332,-0.19165,-0.28303,0.17389,0.18695,0.017233,-0.19165,-0.28303,0.3175,0.25222,-0.0088774,-0.2047,-0.11332,0.29139,0.25222,0.16084,-0.19165,-0.13943 -0.13505,-0.16951,-0.15228,-0.15228,-0.15228,-0.15228,-0.16089,-0.12644,-0.12644,-0.15228,-0.13505,-0.13505,-0.11783,-0.12644,-0.11783,0.088888,0.045822,0.045822,0.028596,0.063049,0.38174,0.40758,0.3559,0.31283,0.38174 -0.24421,-0.24543,-0.24421,-0.24421,-0.24421,-0.24502,-0.24421,-0.24502,-0.24339,-0.24421,0.19039,0.17694,0.16593,0.15288,0.14432,0.18958,0.17408,0.16145,0.15125,0.13861,0.18509,0.16878,0.15941,0.1484,0.13698 0.25848,0.26215,0.26306,0.26092,0.26092,0.24777,0.26092,0.21077,0.20955,0.20833,-0.15956,-0.15956,-0.162,-0.16078,-0.1617,-0.162,-0.16323,-0.16231,-0.16414,-0.16323,-0.16414,-0.16353,-0.16537,-0.16537,-0.16598 -0.24848,-0.23914,-0.24771,-0.23991,-0.23758,-0.2516,-0.24926,-0.25394,-0.23602,-0.24381,0.17303,0.1707,0.17459,0.1629,0.152,0.1855,0.16836,0.15667,0.15511,0.15044,0.15511,0.15823,0.15979,0.1629,0.16212 0.39718,0.38114,0.37793,0.37793,0.37793,-0.029654,-0.029654,-0.039282,0.018486,0.11156,-0.13877,-0.12914,-0.12914,-0.13877,-0.13877,-0.12593,-0.12593,-0.12593,-0.11951,-0.12593,-0.12593,-0.13235,-0.11951,-0.13556,-0.13235 -0.16264,-0.16312,-0.1639,-0.16359,-0.16359,-0.1628,-0.1628,-0.16327,-0.16327,-0.1628,-0.16296,-0.1628,-0.16422,-0.16296,-0.16327,0.23387,0.23671,0.25421,0.24333,0.25106,0.23261,0.23324,0.23955,0.26493,0.25847 -0.2968,-0.058437,0.11072,0.16455,0.21068,-0.34293,-0.11995,0.11841,0.1261,0.21068,-0.31987,-0.089194,0.1261,0.14148,0.1953,-0.31218,-0.11226,0.087656,0.16455,0.17993,-0.39676,-0.19684,0.087656,0.13379,0.18761 0.13582,0.10194,0.062561,0.046774,-0.39439,0.14008,0.10123,0.071076,0.050676,-0.39226,0.14842,0.11596,0.072495,0.057062,-0.39492,0.14877,0.12429,0.076575,0.057949,-0.39315,0.18407,0.12624,0.086331,0.061142,-0.39475 0.26355,0.12261,0.021316,0.0095717,-0.378,0.20336,0.13289,0.037465,0.0066356,-0.35598,0.19895,0.1094,0.01838,0.01104,-0.43965,0.2151,0.1138,0.012508,0.0036995,-0.34717,0.20336,0.1138,0.038933,0.0066356,-0.32221 -0.16294,-0.16353,-0.16382,-0.16382,-0.16323,-0.16264,-0.16264,-0.16353,-0.16441,-0.16353,-0.16088,-0.16323,-0.16323,-0.16323,-0.16382,0.2557,0.24479,0.233,0.23241,0.24774,0.256,0.2501,0.23536,0.23919,0.25423 0.13476,0.14334,0.11761,-0.23688,-0.23879,0.13953,0.24721,0.12047,-0.23879,-0.23783,0.13667,0.2453,0.13715,-0.23879,-0.24355,0.14048,0.26246,0.14858,-0.24593,-0.24165,0.14429,0.13715,0.1543,-0.24546,-0.24165 0.16078,0.1661,0.15014,-0.25952,-0.29144,0.15014,0.16078,0.1395,0.035752,-0.2808,0.16078,0.15014,0.15014,-0.2542,-0.27814,0.16078,0.1661,0.1395,-0.25952,-0.28878,0.16078,0.16078,0.16078,-0.1877,-0.27282 -0.2536,-0.2846,-0.2226,-0.2226,-0.16059,-0.16059,-0.14509,-0.14509,-0.12959,-0.16059,0.0099207,-0.067585,-0.052084,-0.052084,-0.036583,0.040923,0.11843,0.056424,0.087426,0.13393,0.27344,0.42845,0.30444,0.25794,0.38195 0.23974,0.22575,-0.13442,-0.22533,-0.19736,0.23974,0.22575,-0.18337,-0.22533,-0.19037,0.20477,0.21876,-0.085462,-0.18337,-0.20435,0.20477,0.21876,0.033429,-0.17638,-0.21135,0.20477,0.21876,0.19778,-0.19736,-0.21834 0.34259,0.22313,-0.15538,-0.15269,-0.18356,0.2379,0.30635,-0.14732,-0.13256,-0.16477,0.19092,0.18823,-0.15538,-0.15806,-0.15672,0.19763,0.23924,-0.16074,-0.15806,-0.17417,0.1936,0.29293,-0.15538,-0.16477,-0.19296 -0.16221,-0.16633,-0.16838,-0.1725,-0.17868,-0.17662,-0.16221,-0.16838,-0.15192,-0.16427,-0.14986,-0.15192,-0.15809,-0.15192,-0.16427,0.25566,0.25155,0.24331,0.24331,0.25361,0.24743,0.2392,0.2392,0.23714,0.23714 0.36648,0.38964,0.36648,0.36648,0.38964,0.07691,0.042161,-0.050501,0.030579,0.018996,-0.12,-0.12,-0.12,-0.096832,-0.096832,-0.096832,-0.12,-0.096832,-0.16633,-0.13158,-0.15475,-0.16633,-0.21266,-0.13158,-0.16633 0.20107,0.15199,0.11694,0.046832,-0.24061,0.20808,0.16602,0.159,-0.15648,-0.25463,0.20808,0.15199,0.14498,-0.2336,-0.24762,0.22911,0.19406,-0.0022435,-0.26865,-0.25463,0.18705,0.18004,-0.10741,-0.28969,-0.28969 0.31866,0.26832,0.40676,0.26832,0.34383,0.15505,0.1173,0.12988,0.12988,0.16764,-0.10924,-0.147,-0.10924,-0.096656,-0.147,-0.20992,-0.18475,-0.147,-0.147,-0.15958,-0.15958,-0.147,-0.17217,-0.22251,-0.147 -0.24515,-0.24515,-0.24515,-0.24423,-0.24354,-0.24377,-0.24377,-0.24285,-0.244,-0.244,0.18959,0.18243,0.16859,0.15151,0.13351,0.18774,0.17874,0.16697,0.14897,0.1289,0.1852,0.1769,0.16444,0.1499,0.12821 -0.1661,-0.16483,-0.15848,-0.15764,-0.15848,-0.16863,-0.16652,-0.16694,-0.15764,-0.15764,-0.16821,-0.16821,-0.16821,-0.15848,-0.15679,0.23239,0.23831,0.23747,0.28273,0.22943,0.21039,0.22647,0.24254,0.26031,0.28273 -0.16419,-0.16494,-0.16681,-0.16569,-0.16606,-0.16158,-0.16233,-0.16233,-0.16345,-0.16345,-0.16158,-0.16046,-0.16195,-0.16195,-0.16195,0.2501,0.2501,0.23629,0.24935,0.25084,0.24748,0.24599,0.22733,0.2389,0.25234 0.20089,0.19713,0.17585,-0.19881,-0.31226,0.18987,0.18687,0.16883,-0.19154,-0.3095,0.19463,0.19463,0.19137,-0.18478,-0.26217,0.12876,0.21341,0.13327,-0.15949,-0.24489,0.12376,0.12601,-0.15874,-0.165,-0.23813 -0.22316,-0.19079,-0.27712,-0.27712,-0.22316,-0.12604,-0.19079,-0.27712,-0.15841,-0.15841,0.089782,0.035827,-0.018129,-0.082876,0.014244,0.0682,0.0682,0.11136,0.15453,0.23007,0.3164,0.26244,0.23007,0.29481,0.32719 0.22067,0.21815,-0.12452,-0.19255,-0.19885,0.22571,0.22193,-0.13964,-0.18751,-0.19633,0.22697,0.22067,-0.1409,-0.19255,-0.19507,0.22571,0.22823,-0.14468,-0.18373,-0.20263,0.23201,0.22697,0.22319,-0.17743,-0.19381 0.29031,0.30704,0.32376,0.30704,0.30704,0.17325,0.12308,0.17325,0.15653,0.17325,-0.077595,-0.11104,-0.21138,-0.11104,-0.12776,-0.21138,-0.21138,-0.077595,-0.16121,-0.14449,-0.21138,-0.19466,-0.14449,-0.21138,-0.12776 0.1064,0.067527,-0.026878,-0.22124,-0.23235,0.19525,0.078633,-0.076856,-0.2379,-0.17681,0.27855,0.19525,-0.060197,-0.24345,-0.21569,0.30632,0.26189,0.078633,-0.22124,-0.18792,0.2841,0.28966,0.15083,-0.19347,-0.19903 0.15943,0.16747,0.17206,-0.23926,-0.24299,0.15197,0.15168,0.17866,-0.24127,-0.2473,0.15053,0.14881,0.20392,-0.24156,-0.2473,0.15053,0.14795,0.19789,-0.24184,-0.24902,0.15168,0.1468,0.16431,-0.24557,-0.24758 -0.23836,-0.25299,-0.24385,-0.24202,-0.24019,-0.25299,-0.23654,-0.23471,-0.25299,-0.25116,0.18206,0.17841,0.1583,0.15647,0.14916,0.18389,0.1711,0.1583,0.16013,0.14185,0.18024,0.16378,0.16013,0.1583,0.14368 -0.24425,-0.24504,-0.24346,-0.2424,-0.24478,-0.2424,-0.24398,-0.24478,-0.24451,-0.24293,0.19577,0.181,0.16121,0.1438,0.12982,0.19973,0.17863,0.16464,0.14539,0.12929,0.19841,0.17704,0.16069,0.14539,0.12771 -0.22269,-0.15719,-0.11353,-0.24452,-0.15719,-0.15719,-0.13536,-0.20086,-0.20086,-0.20086,-0.091695,-0.20086,-0.11353,-0.048031,-0.026199,0.19212,0.17029,0.12663,0.12663,0.14846,0.30128,0.19212,0.36678,0.38861,0.25762 0.26539,0.26958,0.27796,0.28215,0.28633,0.18162,0.19837,0.21932,0.20256,0.24445,-0.16185,-0.1786,-0.15766,-0.13253,-0.14928,-0.19117,-0.1786,-0.15347,-0.13253,-0.15766,-0.16185,-0.17023,-0.15347,-0.1786,-0.17023 0.35125,0.0397,-0.13388,-0.14278,-0.12201,0.32158,-0.038929,-0.1413,-0.13684,-0.12943,0.38686,-0.10272,-0.1413,-0.13091,-0.12201,0.41356,0.11833,-0.13981,-0.13981,-0.11311,0.39131,0.09756,-0.13536,-0.13388,-0.11607 0.39649,-0.046626,-0.11154,-0.14823,-0.12565,0.40496,-0.01558,-0.11154,-0.12847,-0.10307,0.38802,-0.024047,-0.12283,-0.11154,-0.12001,0.39084,-0.049448,-0.10872,-0.12001,-0.11154,0.39367,-0.069205,-0.11154,-0.11436,-0.12001 -0.26454,-0.18995,-0.18995,-0.21481,-0.11536,-0.11536,-0.18995,-0.18995,-0.21481,-0.11536,-0.015912,-0.040774,-0.18995,-0.14022,-0.090499,0.083538,0.15812,0.15812,0.15812,0.25757,0.33216,0.23271,0.23271,0.33216,0.33216 -0.079885,-0.16267,-0.16267,-0.19371,-0.18336,-0.11093,-0.16267,-0.19371,-0.20406,-0.19371,-0.15232,-0.11093,-0.16267,-0.10058,-0.11093,-0.0074504,0.16846,0.19951,0.17881,0.15811,0.31333,0.31333,0.32368,0.30298,0.33403 -0.33452,-0.095387,0.13046,0.21017,0.21681,-0.30131,-0.12196,0.15039,0.17696,0.16367,-0.30131,-0.24152,0.11053,0.17696,0.1836,-0.29466,-0.15517,0.090604,0.12382,0.16367,-0.32788,-0.15517,0.097247,0.16367,0.17031 -0.16531,-0.1664,-0.16713,-0.16531,-0.16331,-0.16313,-0.16422,-0.16331,-0.16422,-0.15785,-0.16222,-0.16331,-0.16186,-0.16277,-0.15713,0.24761,0.24761,0.24779,0.24724,0.24688,0.24833,0.20813,0.25015,0.2507,0.25306 -0.15872,-0.15969,-0.15775,-0.15775,-0.15775,-0.1626,-0.1655,-0.16454,-0.16163,-0.16357,-0.15678,-0.1655,-0.16066,-0.18004,-0.17616,0.24535,0.24535,0.24438,0.24341,0.24535,0.24341,0.2405,0.25019,0.24535,0.24535 -0.15163,-0.18756,-0.043837,0.063958,0.29751,-0.2235,-0.20553,0.010061,0.028027,0.38734,-0.20553,-0.2235,0.063958,0.081924,0.29751,-0.20553,-0.24146,-0.043837,0.09989,0.29751,-0.15163,-0.20553,-0.007905,0.09989,0.36938 0.25216,0.22204,0.16216,-0.17752,-0.1757,0.23329,0.22276,-0.17643,-0.17933,-0.17643,0.24417,0.21986,-0.17389,-0.17534,-0.17606,0.23837,0.22131,-0.17679,-0.17897,-0.17752,0.23691,0.22204,-0.17824,-0.17606,-0.17679 -0.20998,-0.19609,-0.20998,-0.2447,-0.20998,-0.11277,-0.11971,-0.11277,-0.12665,-0.11971,-0.050272,-0.057216,-0.06416,-0.071103,-0.06416,0.026108,0.026108,0.026108,0.026108,0.033052,0.40801,0.38718,0.36635,0.3594,0.3108 0.11219,0.14468,0.1501,-0.0086649,-0.38804,0.13186,0.13756,0.15352,-0.0055296,-0.38662,0.12159,0.12501,0.13414,0.11504,-0.38633,0.11988,0.13186,0.12501,-0.00895,-0.38462,0.12501,0.11532,0.010717,0.00074108,-0.38548 -0.16278,-0.16278,-0.16213,-0.16213,-0.1631,-0.16375,-0.16439,-0.16375,-0.16536,-0.16342,-0.16375,-0.16278,-0.16181,-0.1631,-0.16181,0.23237,0.22817,0.24497,0.25661,0.2747,0.23528,0.22623,0.24174,0.24627,0.26048 -0.16433,-0.16433,-0.16433,-0.16412,-0.16649,-0.16239,-0.16131,-0.16218,-0.16153,-0.16347,-0.16002,-0.16304,-0.16024,-0.16067,-0.16196,0.24632,0.26077,0.26551,0.27866,0.19437,0.23598,0.24546,0.2515,0.26616,0.19567 0.21368,0.18313,0.16684,-0.22419,-0.25067,0.20757,0.21979,0.13629,-0.23234,-0.25474,0.16277,0.23405,0.18924,-0.24863,-0.24252,0.1037,0.12,0.17295,-0.25678,-0.24863,0.075192,0.10778,0.11185,-0.19975,-0.24659 0.25097,0.25198,0.25249,0.24894,0.23979,0.24437,0.24386,0.23979,0.221,0.21999,-0.1924,-0.15837,-0.10657,-0.094382,-0.10352,-0.19596,-0.20053,-0.17056,-0.10556,-0.099969,-0.19646,-0.21068,-0.19494,-0.18834,-0.19494 0.27818,0.10174,-0.12999,-0.23585,-0.16332,0.2872,0.32994,-0.16488,-0.13312,-0.10176,0.35817,0.037045,-0.14842,-0.14449,-0.14018,0.34366,0.097036,-0.12646,-0.12763,-0.15234,0.30838,0.10605,-0.084896,-0.19272,-0.20135 0.30991,0.36816,0.36816,0.25165,0.32447,0.13515,0.14971,0.091457,0.16427,0.12058,-0.097865,-0.14155,-0.11243,-0.083302,-0.18524,-0.15612,-0.097865,-0.11243,-0.18524,-0.18524,-0.18524,-0.15612,-0.15612,-0.21437,-0.21437 -0.27956,-0.24695,-0.07921,0.22365,0.24229,-0.27024,-0.21433,0.018638,0.19103,0.20967,-0.20035,-0.18172,-0.023297,0.20967,0.24229,-0.21433,-0.16308,0.027956,0.1724,0.1724,-0.24229,-0.21899,0.22365,0.20035,0.20035 0.26588,0.24882,0.24243,0.23497,0.22644,0.26482,0.24882,0.24776,0.23923,0.22537,-0.15096,-0.15416,-0.15309,-0.15842,-0.14563,-0.15629,-0.15949,-0.15949,-0.15522,-0.15416,-0.17441,-0.18294,-0.17441,-0.18187,-0.18401 0.31499,0.31578,-0.14879,-0.14642,-0.16775,0.31341,0.32131,-0.15353,-0.148,-0.17723,0.35529,0.14275,-0.14958,-0.14484,-0.1717,0.1712,0.13248,-0.1559,-0.14721,-0.16064,0.14512,0.13169,-0.15827,-0.15037,-0.1638 -0.29087,-0.31813,-0.33448,-0.35083,-0.37809,-0.018316,-0.061924,-0.11644,-0.14369,-0.1982,0.11251,0.11251,0.096157,0.058,0.052548,0.18337,0.17247,0.17247,0.15612,0.17247,0.17792,0.19973,0.17792,0.17247,0.19428 -0.16183,-0.16205,-0.16291,-0.16269,-0.16399,-0.16161,-0.16248,-0.16248,-0.16334,-0.16313,-0.1614,-0.16205,-0.1614,-0.16248,-0.16183,0.31384,0.22505,0.22657,0.22289,0.21749,0.3052,0.24018,0.22851,0.23283,0.22311 0.23044,0.16827,0.0024867,-0.038959,-0.32908,0.23044,0.16827,0.0024867,-0.28763,-0.32908,0.23044,0.16827,0.064655,-0.080405,-0.47414,0.23044,0.12682,-0.059682,0.0024867,-0.1633,0.23044,0.12682,0.0024867,0.0024867,-0.22546 -0.1502,-0.1221,-0.14083,-0.14083,-0.18765,-0.1502,-0.13147,-0.13147,-0.1221,-0.14083,-0.084649,-0.075285,-0.1221,-0.084649,-0.10338,-0.00037455,0.037081,0.0089893,-0.056557,-0.028466,0.39291,0.39291,0.39291,0.34609,0.40227 0.211,0.12509,0.12509,-0.063919,-0.32166,0.090724,0.211,0.15945,-0.098285,-0.37321,0.14227,0.12509,0.12509,0.0048111,-0.37321,0.12509,0.073542,0.12509,-0.063919,-0.32166,0.19382,0.17664,0.12509,-0.13265,-0.39039 -0.24323,-0.24469,-0.24469,-0.24469,-0.24469,-0.24372,-0.24517,-0.24372,-0.24372,-0.24469,0.16093,0.15462,0.16432,0.1716,0.175,0.20362,0.18033,0.15219,0.15219,0.15462,0.17645,0.18373,0.1488,0.12745,0.13715 0.33402,0.33402,0.33795,0.33598,0.33795,0.13998,0.14195,0.11043,0.06808,0.06414,-0.062918,-0.065873,-0.068828,-0.060948,-0.064888,-0.18899,-0.18505,-0.18702,-0.18407,-0.18604,-0.18604,-0.19195,-0.18998,-0.19096,-0.19096 0.17323,-0.11478,-0.15744,-0.21078,-0.22145,0.30124,0.055895,-0.11478,-0.15744,-0.21078,0.3759,0.098563,0.034561,-0.14678,-0.18945,0.4079,0.2479,-0.0081069,-0.12544,-0.17878,0.3439,0.13056,-0.061442,-0.11478,-0.15744 0.13517,-0.019309,-0.13517,-0.13517,-0.27033,0.2124,0.2124,-0.19309,-0.096547,-0.27033,0.30895,0.13517,-0.077238,-0.13517,-0.13517,0.30895,0.2124,0,-0.15448,-0.27033,0.32826,0.25102,0.13517,-0.077238,-0.27033 0.28169,0.36008,0.34701,0.28169,0.28169,0.085708,0.17717,0.15103,0.085708,0.17717,-0.084141,-0.11027,-0.031879,-0.031879,-0.071075,-0.1756,-0.14947,-0.21479,-0.097206,-0.1364,-0.22786,-0.25399,-0.25399,-0.1756,-0.21479 0.24185,0.24304,0.30464,0.25844,0.32418,0.23948,0.24659,0.19328,0.18973,0.18381,-0.15203,-0.15026,-0.16033,-0.1621,-0.15973,-0.1621,-0.15796,-0.1621,-0.1621,-0.16566,-0.1621,-0.16447,-0.16566,-0.16803,-0.1704 0.19996,0.18439,0.2311,0.16881,0.16881,0.13767,0.16881,0.16881,0.15324,0.2311,0.12209,0.15324,0.13767,0.090947,0.075374,-0.22051,-0.14265,-0.20494,-0.26723,-0.22051,-0.23609,-0.28281,-0.23609,-0.28281,-0.29838 -0.20133,-0.134,-0.15083,-0.1845,-0.1845,-0.15083,-0.20133,-0.235,-0.15083,-0.235,-0.083495,-0.16766,-0.11716,-0.10033,-0.066661,0.15218,0.18584,0.23634,0.23634,0.28684,0.15218,0.30368,0.21951,0.27001,0.32051 0.1714,0.16691,-0.18446,-0.18609,-0.29138,0.17181,0.16895,0.076313,-0.19221,-0.27587,0.17956,0.17793,0.17793,-0.19303,-0.27587,0.18119,0.17834,0.1918,-0.19711,-0.2318,0.16936,0.25016,0.17793,-0.17711,-0.23465 0.27816,0.17567,0.029624,-0.15618,-0.37291,0.27972,0.1857,-0.076152,-0.16637,-0.25366,0.241,0.19399,0.18725,-0.16257,-0.15168,0.23133,0.23495,-0.097929,-0.056449,-0.13042,0.21577,-0.0030419,-0.097411,-0.22877,-0.29963 -0.32041,-0.10865,0.15837,0.14916,0.14916,-0.33883,-0.21913,0.084707,0.16757,0.19519,-0.31121,-0.099439,0.084707,0.2044,0.21361,-0.31121,-0.11785,0.11233,0.18599,0.15837,-0.29279,-0.19151,0.084707,0.18599,0.17678 0.089319,0.13822,0.024123,-0.073672,-0.38335,0.20341,0.10562,0.15451,0.089319,-0.35075,0.15451,0.13822,0.13822,-0.0084755,-0.38335,0.10562,0.15451,0.089319,-0.073672,-0.38335,0.17081,0.10562,0.13822,0.040422,-0.38335 0.16656,0.1495,0.12779,-0.20874,-0.3266,0.17121,0.14795,0.13864,-0.21184,-0.30799,0.165,0.15725,0.13864,-0.20719,-0.29403,0.16811,0.14484,0.13399,0.12003,-0.31729,0.16345,0.14484,0.12934,-0.20098,-0.29248 0.23969,0.24675,0.24322,0.22791,0.22438,0.29033,0.27384,0.24675,0.23969,0.20553,-0.14307,-0.14071,-0.13718,-0.136,-0.14071,-0.17251,-0.17604,-0.17604,-0.17251,-0.17604,-0.17958,-0.17369,-0.17369,-0.17015,-0.17015 -0.24627,-0.24627,-0.24169,-0.23864,-0.23559,-0.25542,-0.2455,-0.2455,-0.24322,-0.24322,0.19448,0.17846,0.16779,0.14567,0.13271,0.19295,0.17694,0.16245,0.14644,0.13424,0.18837,0.17465,0.16321,0.14644,0.13652 0.20209,0.21402,0.20805,0.19612,0.1663,0.17525,0.18718,0.19314,0.1663,0.15735,-0.0096631,0.13946,0.14841,0.14841,0.10069,-0.21545,-0.23334,-0.25124,-0.21545,-0.23036,-0.2572,-0.25422,-0.24527,-0.24826,-0.24229 0.29679,0.29679,0.29679,0.25042,0.25042,0.1113,0.20405,0.22723,0.20405,0.13448,-0.14376,-0.12057,-0.027824,-0.074198,0.041737,-0.19013,-0.21332,-0.19013,-0.097385,-0.28288,-0.23651,-0.21332,-0.14376,-0.19013,-0.19013 -0.17676,-0.17676,-0.075339,0.21443,0.35931,-0.22022,-0.17676,-0.075339,0.19994,0.30135,-0.19124,-0.19124,-0.031874,0.17096,0.30135,-0.19124,-0.13329,-0.089827,-0.046362,0.35931,-0.23471,-0.10431,-0.10431,0.040567,0.27238 0.18057,0.18057,0.17766,0.17766,0.19512,0.18057,0.17766,0.19512,0.18057,0.1893,0.081612,0.11072,0.11945,0.12527,0.15147,-0.23273,-0.22691,-0.24146,-0.24146,-0.20362,-0.25019,-0.24728,-0.23564,-0.26474,-0.2793 -0.15868,-0.1606,-0.15676,-0.17404,-0.15291,-0.15483,-0.16636,-0.15868,-0.1702,-0.16444,-0.16828,-0.16828,-0.15099,-0.1894,-0.15291,0.24646,0.24838,0.2407,0.2407,0.24838,0.25606,0.24454,0.24454,0.23302,0.24454 -0.15972,-0.15641,-0.16138,-0.16304,-0.15807,-0.16802,-0.16304,-0.16304,-0.16138,-0.16304,-0.16968,-0.16138,-0.1647,-0.16802,-0.16802,0.25187,0.23859,0.24855,0.25187,0.24689,0.24357,0.24357,0.23859,0.24191,0.24357 0.17756,0.19664,0.18301,-0.026814,-0.32384,0.16121,0.16939,0.15849,-0.026814,-0.33202,0.12579,0.13124,0.15304,-0.070414,-0.29659,0.12579,0.14486,0.11216,-0.10856,-0.41104,0.087636,0.11761,0.095812,-0.12764,-0.41649 -0.16484,-0.12738,-0.071181,0.22853,0.28472,-0.18357,-0.31469,-0.12738,0.11614,0.28472,-0.18357,-0.18357,0.0037463,0.17233,0.28472,-0.22103,-0.23977,0.0037463,0.22853,0.28472,-0.18357,-0.23977,0.0037463,0.11614,0.22853 0.084634,0.11298,0.12513,-0.094893,-0.35203,0.086659,0.11568,0.14875,-0.068571,-0.35676,0.11298,0.1744,0.1798,-0.087469,-0.35946,0.1771,0.1825,0.17575,-0.12054,-0.33854,0.17102,0.17777,0.17777,-0.07667,-0.34798 -0.16235,-0.16235,-0.16266,-0.16235,-0.16361,-0.16329,-0.16203,-0.16298,-0.16298,-0.16298,-0.16329,-0.16487,-0.16361,-0.16329,-0.16014,0.27213,0.26645,0.2485,0.22833,0.20974,0.27024,0.26393,0.24944,0.22644,0.20754 -0.23198,-0.16657,-0.23198,-0.27558,-0.18837,-0.21017,-0.21017,-0.23198,-0.21017,-0.18837,0.073256,-0.057558,0.029651,0.073256,-0.10116,0.11686,0.18227,0.20407,0.073256,0.18227,0.29128,0.31308,0.22587,0.26948,0.26948 0.46706,0.048683,-0.10345,-0.093944,-0.13198,0.42902,0.029666,-0.14149,-0.13198,-0.12247,0.36246,0.058192,-0.11296,-0.12247,-0.15099,0.39099,-0.036893,-0.12247,-0.12247,-0.17001,0.22934,-0.074927,-0.15099,-0.12247,-0.10345 -0.26,-0.14139,-0.046496,0.048394,0.33306,-0.26,-0.070219,-0.070219,0.072117,0.33306,-0.33117,-0.23628,-0.046496,0.11956,0.33306,-0.35489,-0.046496,0.024671,0.11956,0.21445,-0.11766,-0.11766,0.095839,0.16701,0.23817 -0.24489,-0.24489,-0.2223,-0.35785,-0.35785,-0.06416,-0.17712,-0.10934,-0.17712,-0.19971,0.071389,0.071389,0.048797,-0.018977,0.026206,0.09398,0.13916,0.27471,0.09398,0.11657,0.22953,0.31989,0.25212,0.18435,0.25212 0.22041,0.24993,0.24009,0.22041,0.19089,0.22041,0.22041,0.23025,0.22041,0.22041,0.003936,0.043296,0.013776,-0.015744,-0.074783,-0.17318,-0.24206,-0.2027,-0.23222,-0.24206,-0.23222,-0.2519,-0.2027,-0.21254,-0.21254 -0.30599,-0.15299,-0.28049,-0.17849,-0.33149,-0.17849,-0.076497,-0.17849,-0.17849,-0.12749,-0.050998,-0.025499,-0.12749,-0.025499,0.050998,0.22949,0.15299,0.12749,0.12749,0.15299,0.28049,0.22949,0.28049,0.22949,0.35698 -0.16571,-0.16422,-0.16422,-0.16422,-0.15826,-0.15677,-0.16571,-0.16124,-0.15826,-0.16273,-0.15826,-0.15826,-0.17018,-0.17465,-0.16422,0.24246,0.2365,0.23203,0.24842,0.27375,0.25587,0.25587,0.23799,0.22905,0.23501 -0.31052,-0.3235,-0.34947,-0.3235,-0.34947,-0.19369,-0.14176,-0.050888,-0.050888,-0.06387,-0.024925,0.065947,0.10489,0.10489,0.078929,0.14384,0.14384,0.18278,0.13086,0.14384,0.23471,0.23471,0.22173,0.1698,0.22173 0.10517,0.10264,0.10629,0.11106,-0.3936,0.10348,0.12202,0.13746,0.012492,-0.395,0.11696,0.13606,0.14757,0.009964,-0.39388,0.12005,0.14252,0.11724,0.019793,-0.39107,0.10657,0.11163,0.11415,0.018951,-0.38854 0.20186,0.13816,0.10553,-0.2394,-0.29844,0.29509,0.11641,0.082224,-0.2394,-0.28757,0.18788,0.11175,0.091547,-0.23319,-0.29378,0.177,0.16457,0.10242,-0.23319,-0.27669,0.1739,0.1739,0.11175,0.10242,-0.23474 0.23384,0.19005,0.09312,0.031619,-0.25717,0.2325,0.16832,0.091783,-0.22942,-0.26285,0.25021,0.16699,-0.16525,-0.22107,-0.25382,0.25757,0.20877,-0.16959,-0.18932,-0.19132,0.26559,0.20041,-0.14085,-0.15656,-0.15355 0.24324,0.23443,0.24324,0.24764,0.24764,0.23443,0.24764,0.24984,0.25204,0.24764,-0.14411,-0.15511,-0.16172,-0.16172,-0.15511,-0.16392,-0.15732,-0.15732,-0.17272,-0.16392,-0.16392,-0.17052,-0.17052,-0.17052,-0.17932 0.17761,0.16391,0.17761,0.16391,0.17076,0.14335,0.17076,0.17761,0.1365,0.1502,0.16391,0.17761,0.1365,0.17076,0.12964,-0.18556,-0.21982,-0.18556,-0.19241,-0.17185,-0.29519,-0.28834,-0.28834,-0.31575,-0.26779 0.25909,0.27136,0.28363,0.25909,0.3327,0.13642,0.17322,0.13642,0.14868,0.14868,0.026008,-0.035331,-0.047599,0.01374,-0.047599,-0.12121,-0.13347,-0.15801,-0.13347,-0.12121,-0.30522,-0.29295,-0.24388,-0.31749,-0.23161 -0.2467,-0.24603,-0.22881,-0.24661,-0.24651,-0.2467,-0.24575,-0.24527,-0.24632,-0.24603,0.15261,0.15309,0.15558,0.19452,0.19308,0.15252,0.15462,0.15596,0.1573,0.19365,0.15414,0.15577,0.15596,0.15673,0.15921 -0.31,-0.054289,0.0047208,0.16208,0.24076,-0.38868,-0.09363,0.083401,0.18175,0.20142,-0.23132,-0.21165,0.044061,0.14241,0.37845,-0.17231,-0.19198,0.10307,0.12274,0.24076,-0.27066,-0.15264,-0.1133,0.063731,0.22109 0.10408,0.17801,0.11887,0.00059138,-0.38381,0.11887,0.13365,0.16322,-0.014193,-0.32467,0.14844,0.14844,0.10408,0.00059138,-0.47251,0.10408,0.074514,0.11887,0.03016,-0.42816,0.10408,0.14844,0.089298,0.044945,-0.30988 0.28574,0.30011,0.24262,0.25699,0.28574,0.11326,0.1995,0.15638,0.1995,0.1995,-0.07359,-0.030471,-0.07359,0.012648,0.012648,-0.23169,-0.24607,-0.18857,-0.10234,-0.24607,-0.18857,-0.18857,-0.23169,-0.23169,-0.23169 0.18755,0.18755,0.18755,0.17435,0.18425,0.16775,0.18095,0.17105,0.16115,0.15126,0.14796,0.15785,0.14136,0.14136,0.035768,-0.079719,-0.18201,-0.2117,-0.2546,-0.2612,-0.2711,-0.281,-0.2711,-0.281,-0.2843 -0.19431,-0.17593,-0.084012,0.25148,0.26067,-0.18512,-0.18052,-0.14376,0.25148,0.26987,-0.18512,-0.17593,-0.11159,0.21931,0.27446,-0.15754,-0.17133,-0.15754,0.19174,0.24689,-0.16674,-0.18052,-0.15295,0.18714,0.26987 -0.24793,-0.239,0.15397,0.17184,0.26115,-0.25686,-0.23007,0.13611,0.1897,0.25222,-0.23007,-0.239,0.028937,0.20756,0.22542,-0.22114,-0.17648,-0.060375,0.1897,0.20756,-0.18541,-0.20327,-0.10503,0.1897,0.18077 0.182,0.18757,0.16527,0.16527,0.15969,0.13739,0.14297,0.16527,0.18757,0.15412,0.14854,0.15412,0.15969,0.15412,0.13181,-0.24177,-0.20832,-0.19159,-0.16928,-0.11353,-0.30868,-0.28638,-0.30311,-0.29753,-0.27523 -0.20539,-0.12028,0.02156,0.22014,0.24851,-0.20539,-0.14865,0.02156,0.02156,0.30525,-0.2905,-0.26213,0.049929,0.22014,0.24851,-0.20539,-0.14865,-0.091915,0.049929,0.22014,-0.31887,-0.14865,0.078298,0.049929,0.39036 0.25327,0.2541,0.24335,0.21401,0.21401,0.25658,0.26732,0.28055,0.21732,0.21112,-0.18105,-0.17692,-0.08022,-0.08146,-0.076501,-0.17775,-0.17981,-0.18147,-0.18147,-0.17981,-0.18023,-0.18312,-0.18353,-0.18188,-0.18643 -0.19458,-0.1421,-0.14046,0.2384,0.2466,-0.19786,-0.16506,-0.13062,0.2384,0.24332,-0.18966,-0.1667,-0.1175,0.2384,0.24988,-0.18966,-0.17162,-0.13718,0.2384,0.2466,-0.19294,-0.17982,-0.11914,0.2384,0.25644 -0.22395,-0.37586,-0.33246,-0.18055,-0.13715,-0.18055,-0.20225,-0.11545,-0.11545,-0.15885,-0.0069443,-0.0069443,0.036458,-0.072047,0.014757,0.12326,0.12326,0.07986,0.10156,0.14496,0.27517,0.29687,0.27517,0.27517,0.36197 -0.17899,-0.061234,-0.12011,0.20372,0.38036,-0.32619,-0.14955,0.027084,0.085963,0.32148,-0.20843,-0.17899,-0.12011,0.14484,0.23316,-0.26731,-0.061234,-0.090673,0.056523,0.2626,-0.20843,-0.17899,0.027084,0.056523,0.35092 0.2985,0.26946,0.26946,0.31302,0.22591,0.16783,0.15331,0.12428,0.22591,0.12428,-0.0063881,0.0081303,-0.0063881,-0.07898,-0.0063881,-0.16609,-0.16609,-0.16609,-0.15157,-0.12254,-0.2532,-0.29676,-0.20965,-0.34031,-0.20965 0.39578,0.19269,-0.13225,-0.10788,-0.13225,0.36329,0.087085,-0.099758,-0.10788,-0.12413,0.38766,-0.067264,-0.12413,-0.1485,-0.15662,0.39578,0.005849,-0.16475,-0.12413,-0.14038,0.28205,-0.034769,-0.15662,-0.13225,-0.15662 -0.19032,-0.018639,0.079461,0.27566,0.20209,-0.26389,-0.16579,-0.018639,0.10399,0.15304,-0.28842,-0.23937,-0.018639,0.17756,0.22661,-0.26389,-0.14126,-0.092214,0.17756,0.27566,-0.26389,-0.26389,0.054936,0.17756,0.32471 -0.24478,-0.2448,-0.24485,-0.2448,-0.24467,-0.24478,-0.2448,-0.2448,-0.24465,-0.24476,0.16532,0.1743,0.17399,0.17482,0.17477,0.1481,0.17136,0.15684,0.15608,0.17643,0.14925,0.15929,0.15649,0.15625,0.15442 -0.25643,-0.17981,-0.026562,0.17776,0.22885,-0.25643,-0.077644,0.075601,0.15222,0.40763,-0.30751,-0.17981,0.075601,-0.026562,0.25439,-0.30751,-0.17981,0.10114,0.12668,0.22885,-0.25643,-0.12873,-0.0010216,0.2033,0.15222 0.26168,0.25419,0.2467,0.23755,0.23755,0.2517,0.2492,0.24338,0.23838,0.22756,-0.16025,-0.1511,-0.16275,-0.15443,-0.16608,-0.16941,-0.16441,-0.16441,-0.16941,-0.15859,-0.16275,-0.16608,-0.16275,-0.17024,-0.16525 -0.17426,-0.12775,-0.019224,0.18232,0.41487,-0.17426,-0.081237,-0.050231,0.18232,0.35286,-0.20526,-0.12775,-0.096741,0.16682,0.25984,-0.29828,-0.18976,-0.11224,0.027286,0.32185,-0.23627,-0.17426,-0.081237,0.011783,0.22883 0.18088,0.18088,0.18088,0.21663,0.21663,0.1213,0.14513,0.16301,0.18088,0.18088,0.14513,0.085555,0.10343,0.14513,0.16301,-0.2183,-0.23617,-0.20042,-0.22426,-0.17659,-0.26,-0.28979,-0.24213,-0.26596,-0.29575 -0.24358,-0.24438,-0.24331,-0.24277,-0.24358,-0.24572,-0.24169,-0.24438,-0.24331,-0.24277,0.20456,0.18253,0.16104,0.14734,0.12343,0.2,0.182,0.15889,0.1417,0.1245,0.20349,0.17716,0.16373,0.13955,0.12558 -0.21363,-0.3144,-0.25394,-0.33455,-0.39501,-0.072554,-0.13301,-0.11286,-0.11286,-0.13301,0.048369,0.0080615,0.048369,0.0080615,0.028215,0.028215,0.12898,0.2096,0.068523,0.16929,0.24991,0.31037,0.24991,0.24991,0.27006 0.23214,0.12316,0.11727,-0.23752,-0.23832,0.23053,0.21286,0.13735,-0.23752,-0.24019,0.22893,0.11727,-0.12506,-0.23832,-0.23939,0.23401,0.20938,0.14378,-0.23484,-0.23377,0.23348,0.20135,-0.12532,-0.13148,-0.13978 -0.17883,-0.14173,-0.23449,-0.23449,-0.30869,-0.12318,-0.12318,-0.19738,-0.17883,-0.067526,-0.086077,-0.12318,-0.030424,-0.067526,-0.048975,0.15509,0.13654,0.099434,0.0066784,0.099434,0.3406,0.32205,0.3406,0.3035,0.3406 -0.15646,-0.16176,-0.16252,-0.16252,-0.1648,-0.16176,-0.1701,-0.1701,-0.16252,-0.16783,-0.15343,-0.16328,-0.16101,-0.16252,-0.16631,0.26804,0.25136,0.24075,0.24682,0.24454,0.26122,0.23999,0.21649,0.23469,0.24303 -0.32406,-0.22086,0.037154,0.11456,0.32097,-0.24666,-0.22086,-0.04025,0.088757,0.19196,-0.29826,-0.066051,-0.04025,0.26937,0.14036,-0.22086,-0.11765,0.037154,0.16616,0.42417,-0.22086,-0.091853,-0.014449,0.14036,0.19196 0.19125,0.12326,0.090579,0.070967,-0.41147,0.17687,0.11542,0.078812,0.053971,-0.42324,0.17033,0.11673,0.067045,0.043511,-0.35395,0.15334,0.091886,0.056586,0.034359,-0.38925,0.14026,0.10365,0.044819,0.025207,-0.37094 -0.24319,-0.24299,-0.24379,-0.24399,-0.24399,-0.24219,-0.24339,-0.24379,-0.24359,-0.24399,0.092528,0.18101,0.17621,0.1672,0.1668,0.17461,0.17681,0.1726,0.166,0.1692,0.090526,0.18101,0.17381,0.17441,0.1722 0.38444,-0.0053888,-0.098546,-0.12434,-0.16304,0.38587,0.29271,-0.088513,-0.13294,-0.15444,0.36007,-0.0096883,-0.097113,-0.13867,-0.16304,0.33428,-0.031186,-0.099979,-0.14584,-0.16877,0.30561,-0.0010892,-0.12434,-0.14727,-0.16877 0.42672,0.1976,-0.012101,-0.1777,-0.21871,0.19821,0.1976,-0.19836,-0.11818,-0.22396,0.1976,0.19575,-0.21409,-0.1555,-0.22272,0.19636,0.19205,0.075787,-0.17153,-0.21686,0.19575,0.19205,0.070236,-0.18973,-0.21625 -0.16065,-0.16112,-0.16065,-0.16096,-0.16096,-0.16238,-0.16238,-0.16206,-0.16143,-0.16175,-0.163,-0.16269,-0.16065,-0.16175,-0.16206,0.21813,0.20857,0.20669,0.20826,0.27254,0.34748,0.27332,0.20935,0.20763,0.27254 0.24082,0.035731,-0.057699,-0.13062,-0.18303,0.29323,-0.012123,-0.066814,-0.11695,-0.18987,0.51883,-0.012123,-0.069093,-0.10327,-0.17392,0.48921,-0.0052868,-0.075929,-0.11695,-0.17164,0.29323,-0.0075656,-0.071372,-0.10327,-0.20354 -0.26232,-0.095691,0.17805,0.1483,0.21971,-0.27422,-0.1552,0.184,0.17805,0.18995,-0.26827,-0.19686,0.10069,0.16615,0.21376,-0.25637,-0.26232,-0.00047607,0.184,0.21376,-0.27422,-0.23256,-0.083789,0.184,0.20186 0.21233,0.13599,0.063401,0.0014517,-0.25072,0.20357,0.14162,0.055892,-0.006683,-0.27888,0.20983,0.13161,0.073413,-0.29015,-0.30266,0.22234,0.14975,0.077167,0.011464,-0.32769,0.21421,0.15351,0.069658,-0.32456,-0.34584 -0.24114,-0.10835,-0.055239,0.024433,0.26345,-0.32081,-0.13491,-0.028682,0.21034,0.26345,-0.34737,-0.13491,0.05099,0.21034,0.10411,-0.37393,-0.081797,-0.055239,0.21034,0.29001,-0.16147,-0.081797,0.024433,0.21034,0.26345 0.12547,0.16777,0.20339,-0.23296,-0.25077,0.1366,0.17668,0.17445,-0.23963,-0.2619,0.1277,0.17,0.17,-0.23073,-0.25299,0.14773,0.16109,0.18113,-0.19956,-0.2619,0.13883,0.16332,0.19226,-0.25299,-0.25299 0.27365,0.043693,-0.12878,-0.21501,-0.24376,0.3024,0.10118,0.043693,-0.10003,-0.30125,0.18742,0.15867,-0.10003,-0.10003,-0.15752,0.18742,0.072438,0.10118,-0.071288,-0.44497,0.35989,0.21616,0.043693,0.014947,-0.24376 -0.19926,-0.17315,-0.19404,-0.20448,-0.19926,-0.14704,-0.14182,-0.14704,-0.14182,-0.14704,-0.11571,-0.13138,-0.1366,-0.14182,-0.021722,0.28114,0.21325,0.093155,0.093155,0.01483,0.32813,0.3438,0.36991,0.2968,0.20803 0.28396,0.24327,0.22293,0.28396,0.32464,0.22293,0.22293,0.24327,0.18225,0.18225,-0.1432,-0.12286,-0.18388,-0.16354,-0.12286,-0.16354,-0.16354,-0.18388,-0.16354,-0.18388,-0.18388,-0.18388,-0.1432,-0.10252,-0.20422 0.1738,0.19273,0.21166,0.21166,0.1738,0.1738,0.1738,0.12647,0.1738,0.1738,0.13593,0.10754,0.10754,0.10754,0.1738,-0.23325,-0.17645,-0.24271,-0.22378,-0.23325,-0.28058,-0.27111,-0.25218,-0.27111,-0.23325 -0.23867,-0.17212,-0.30521,-0.32739,-0.39393,-0.061219,-0.10558,-0.12776,-0.14994,-0.17212,0.071866,0.027504,0.027504,-0.039038,-0.061219,0.16059,0.18277,0.20495,0.071866,0.13841,0.27149,0.27149,0.33804,0.18277,0.20495 0.30939,0.18175,0.18175,-0.20115,-0.20115,0.2328,0.25833,-0.099044,-0.32879,-0.20115,0.20728,0.15622,0.0030632,-0.22668,-0.2522,0.18175,0.10517,0.054117,-0.22668,-0.2522,0.18175,0.2328,0.0030632,-0.12457,-0.17562 -0.35273,-0.34837,-0.34837,-0.32218,-0.36147,-0.11263,-0.12573,-0.12136,-0.068975,-0.095168,0.1624,0.15367,0.1624,0.14494,0.14494,0.14494,0.1362,0.1624,0.15367,0.14494,0.14494,0.16676,0.1624,0.12747,0.14494 0.39828,-0.027122,-0.099311,-0.12509,-0.12251,0.40859,-0.037435,-0.10705,-0.1122,-0.13025,0.3957,-0.068373,-0.10447,-0.11478,-0.13283,0.38539,-0.07353,-0.094155,-0.10447,-0.11994,0.3957,-0.076108,-0.10447,-0.10962,-0.11994 -0.35149,-0.31278,-0.31278,-0.33213,-0.25471,-0.17729,-0.11923,-0.17729,-0.080517,-0.061162,-0.061162,0.074324,0.054969,0.093679,0.093679,0.11303,0.24852,0.15174,0.1711,0.19045,0.1711,0.19045,0.26788,0.20981,0.20981 -0.25346,-0.23971,-0.24168,-0.25739,-0.2623,-0.24266,-0.23382,-0.23971,-0.23578,-0.23775,0.17867,0.17867,0.14626,0.15411,0.20027,0.15804,0.17277,0.14822,0.15018,0.17965,0.15804,0.15804,0.15018,0.16099,0.15018 0.29367,0.24732,0.21023,-0.035463,-0.22437,0.28209,0.24384,-0.019238,-0.1502,-0.24291,0.2844,-0.026192,-0.023874,-0.18265,-0.23944,0.29831,-0.019238,-0.026192,-0.21742,-0.23712,0.28209,-0.019238,-0.067914,-0.18728,-0.22321 -0.24806,-0.24376,-0.24591,-0.24699,-0.23838,-0.24914,-0.24484,-0.24591,-0.23085,-0.23408,0.20904,0.1843,0.16387,0.14558,0.10149,0.19829,0.18215,0.16279,0.14989,0.10579,0.20904,0.18861,0.16602,0.14774,0.11332 0.24197,0.24197,0.24561,0.24075,0.24075,0.24561,0.24683,0.24926,0.24683,0.24805,-0.15077,-0.1678,-0.14834,-0.14591,-0.1605,-0.17996,-0.17752,-0.17266,-0.16293,-0.17388,-0.16293,-0.1605,-0.16415,-0.1605,-0.15928 0.12707,0.19117,0.15734,-0.15071,-0.36617,0.1057,0.16624,0.15734,-0.0599,-0.34124,0.10036,0.20897,0.1787,-0.12934,-0.32343,0.10748,0.13953,0.18939,-0.11154,-0.35905,0.12885,0.13953,0.12885,-0.050997,-0.33412 0.24983,0.24797,0.24735,0.2489,0.24642,0.24271,0.24086,0.24178,0.24271,0.24055,-0.16061,-0.15907,-0.15814,-0.15907,-0.15968,-0.16371,-0.16061,-0.16216,-0.16216,-0.16278,-0.16865,-0.16742,-0.16896,-0.16834,-0.16773 -0.24305,-0.24412,-0.24287,-0.24125,-0.24197,-0.24412,-0.24358,-0.24358,-0.24233,-0.24251,0.16934,0.17096,0.17042,0.16952,0.11658,0.1837,0.18226,0.18226,0.14009,0.069743,0.19428,0.1941,0.19518,0.14834,0.1426 0.32401,0.077718,0.022987,-0.27803,-0.38749,0.18718,-0.031744,0.077718,-0.031744,-0.3054,0.26927,0.022987,0.022987,-0.14121,-0.2233,0.18718,0.15981,0.13245,-0.086474,-0.16857,0.35137,0.21454,0.022987,-0.14121,-0.27803 0.25649,0.25407,0.24438,0.24438,0.225,0.26376,0.25164,0.23953,0.23469,0.22984,-0.15533,-0.14322,-0.15775,-0.15775,-0.15048,-0.15775,-0.17228,-0.15775,-0.14564,-0.16259,-0.19651,-0.17955,-0.18924,-0.16502,-0.1529 -0.24688,-0.24449,-0.24767,-0.2397,-0.24449,-0.24608,-0.24209,-0.25166,-0.23571,-0.24289,0.17096,0.22439,0.18452,0.15262,0.13827,0.16219,0.1606,0.15741,0.16538,0.14066,0.15262,0.15821,0.1598,0.17176,0.14226 0.17984,0.12349,0.089103,0.045181,-0.37814,0.1807,0.12002,0.096616,0.03998,-0.50355,0.12782,0.12262,0.084479,0.03998,-0.37005,0.12609,0.12349,0.083902,0.032467,-0.33451,0.11858,0.084191,0.084479,0.043159,-0.35994 0.15993,0.18051,0.16679,0.18051,0.16679,0.15307,0.14621,0.17365,0.18051,0.13936,0.10507,0.16679,0.18051,0.13936,0.17365,-0.20355,-0.18297,-0.21726,-0.18297,-0.18983,-0.25841,-0.2927,-0.28585,-0.28585,-0.31328 0.18137,0.12541,0.10618,-0.013604,-0.32573,0.1971,0.12541,0.10967,-0.017976,-0.34934,0.17787,0.1394,0.10093,-0.0066098,-0.3336,0.17787,0.12541,0.1053,-0.026719,-0.34672,0.18486,0.13503,0.10443,-0.31437,-0.36158 0.25745,0.18321,0.17016,-0.099731,-0.29538,0.041739,0.17719,0.15712,-0.096721,-0.35157,0.2103,0.17117,0.15311,-0.10174,-0.34755,0.099932,0.12501,0.15511,-0.11378,-0.32849,0.099932,0.091905,0.13003,-0.1218,-0.36662 0.24861,0.24677,0.24603,0.24567,0.24199,0.24787,0.24419,0.24419,0.24309,0.24089,-0.15841,-0.16098,-0.15951,-0.16061,-0.16209,-0.16282,-0.16282,-0.16429,-0.16429,-0.1665,-0.16356,-0.16503,-0.16503,-0.16539,-0.16797 0.20583,0.13278,0.1901,-0.24405,-0.23993,0.20059,0.14515,0.19197,-0.24555,-0.24068,0.1208,0.18897,0.2062,-0.24405,-0.23993,0.12754,0.12679,0.12792,-0.24218,-0.24255,0.21295,0.12529,0.1223,-0.24443,-0.24181 -0.26312,-0.28766,-0.29994,-0.31834,-0.28766,-0.079034,-0.060625,-0.066761,-0.08517,-0.079034,-0.091306,-0.072898,-0.091306,-0.091306,-0.079034,0.24618,0.20937,0.20937,0.22164,0.22164,0.20937,0.24618,0.23391,0.22164,0.23391 -0.15826,-0.15826,0.04757,0.18479,0.20766,-0.29549,-0.15826,0.04757,0.11618,0.20766,-0.15826,-0.22687,0.04757,0.13905,0.23053,-0.22687,-0.22687,-0.021041,0.27627,0.2534,-0.3641,-0.22687,-0.021041,0.27627,0.20766 0.33847,0.028743,-0.089431,-0.094196,-0.089431,0.35849,-0.018908,-0.10658,-0.10849,-0.10563,0.40995,-0.049404,-0.11897,-0.12279,-0.12374,0.42329,-0.02272,-0.13327,-0.13327,-0.12946,0.42138,-0.11516,-0.15138,-0.13899,-0.1285 0.17527,-0.0089687,-0.1428,-0.25404,-0.28012,0.25349,0.065771,-0.097613,-0.18104,-0.26969,0.2222,0.11444,-0.068065,-0.097613,-0.24883,0.34735,0.14746,0.017103,-0.0089687,-0.22971,0.43252,0.21177,0.060556,0.060556,-0.22102 -0.16332,-0.16337,-0.16337,-0.16351,-0.16342,-0.16285,-0.16309,-0.16304,-0.16285,-0.16309,-0.16299,-0.16304,-0.16299,-0.16304,-0.16328,0.24985,0.22185,0.25308,0.25318,0.25337,0.25276,0.22438,0.22687,0.25665,0.25529 0.27815,0.33378,0.26425,0.23643,0.30597,0.13908,0.11126,0.15298,0.15298,0.11126,0.055631,0.027815,-0.069538,0.027815,0,-0.12517,-0.16689,-0.15298,-0.16689,-0.15298,-0.26425,-0.30597,-0.27815,-0.26425,-0.25034 -0.29967,-0.25573,-0.25573,-0.25573,-0.2777,-0.12391,-0.23376,-0.036031,-0.18982,-0.079971,-0.036031,-0.036031,0.073819,-0.079971,-0.014061,0.27155,0.073819,0.13973,0.1617,0.095789,0.29352,0.29352,0.29352,0.27155,0.20564 -0.19451,-0.19451,0.049791,0.22429,0.24756,-0.25268,-0.26431,-0.078176,0.25919,0.18939,-0.18288,-0.24104,0.061424,0.18939,0.21266,-0.24104,-0.21778,0.084691,0.16612,0.24756,-0.21778,-0.21778,-0.05491,0.23592,0.18939 0.26732,0.22257,0.15544,-0.060863,-0.22495,0.22257,0.19273,0.1629,-0.090697,-0.24733,0.23003,0.20019,0.14052,-0.17274,-0.27716,0.23748,0.11069,-0.060863,-0.21004,-0.27716,0.17036,0.028641,-0.20258,-0.23987,-0.27716 0.22178,0.23819,0.23819,0.22178,0.3038,0.18897,0.13976,0.20538,0.20538,0.17257,-0.040682,0.041338,-0.0078739,-0.0078739,0.09055,-0.22113,-0.17191,-0.17191,-0.18832,-0.15551,-0.18832,-0.30314,-0.28674,-0.27034,-0.25393 -0.21057,-0.23997,-0.22037,-0.19096,-0.21057,-0.10273,-0.092931,-0.12234,-0.16155,-0.092931,-0.12234,-0.13214,-0.13214,-0.083128,-0.11254,0.19135,0.19135,0.16194,0.034506,0.024703,0.28938,0.33839,0.3482,0.32859,0.31879 -0.24362,-0.24239,-0.25221,-0.2473,-0.24362,-0.22888,-0.24362,-0.2338,-0.23748,-0.25344,0.16151,0.19834,0.15537,0.1345,0.12714,0.17502,0.26218,0.16028,0.12223,0.14432,0.17993,0.18852,0.12714,0.14187,0.14801 -0.21425,-0.22412,-0.23398,-0.24385,-0.24385,-0.21425,-0.2833,-0.16493,-0.16493,-0.20439,0.11127,0.032355,-0.016967,-0.0071023,-0.046559,0.28883,0.20005,0.20005,0.14086,0.11127,0.32828,0.25923,0.23951,0.20991,0.14086 0.4126,-0.087967,-0.12477,-0.12661,-0.14318,0.431,-0.018035,-0.1395,-0.11557,-0.11557,0.39788,-0.010674,-0.099009,-0.089808,-0.15238,0.39972,-0.025396,-0.082446,-0.11005,-0.11741,0.32058,-0.069564,-0.10269,-0.10637,-0.12477 -0.29888,-0.25625,-0.012666,0.17611,0.17611,-0.31715,-0.17709,0.04823,0.18829,0.20047,-0.31106,-0.20145,0.090858,0.20047,0.17611,-0.30497,-0.14055,0.13958,0.18829,0.1822,-0.25625,-0.0065768,0.15175,0.18829,0.17611 -0.32132,-0.09955,-0.00098564,0.14686,0.36863,-0.27204,-0.12419,-0.050268,0.14686,0.24542,-0.27204,-0.17347,-0.025627,0.072937,0.12222,-0.27204,-0.17347,-0.00098564,0.24542,0.29471,-0.27204,0.072937,-0.074909,0.14686,0.27007 -0.27615,-0.25218,0.011506,-0.012465,0.32314,-0.18027,-0.15629,-0.012465,0.083421,0.32314,-0.25218,-0.060408,-0.08438,0.25122,0.27519,-0.20424,-0.10835,-0.060408,0.13136,0.20328,-0.20424,-0.25218,-0.012465,0.17931,0.34711 0.17172,0.14673,0.15673,0.15673,0.14173,0.16172,0.17172,0.16172,0.16172,0.15673,0.13174,0.15173,0.14673,0.14173,0.15173,-0.15813,-0.11814,-0.12814,-0.13314,-0.10315,-0.34304,-0.31805,-0.34804,-0.33304,-0.32805 0.15839,0.22125,0.18354,-0.2313,-0.25645,0.17096,0.095539,0.19611,-0.2313,-0.28159,0.18354,0.13325,0.17096,-0.21873,-0.25645,0.25896,0.13325,0.045255,-0.26902,-0.19359,0.29667,0.057826,0.032684,-0.19359,-0.20616 0.41153,-0.071519,-0.13929,-0.13407,-0.12886,0.39415,-0.088895,-0.1445,-0.13581,-0.1028,0.3872,-0.0072284,-0.12538,-0.12017,-0.11148,0.3872,-0.012441,-0.068044,-0.094108,-0.12712,0.36983,0.0049348,-0.048931,-0.10453,-0.18968 0.40263,0.39415,0.38568,0.40687,0.3772,-0.016953,-0.04662,-0.021191,-0.021191,-0.050858,-0.13138,-0.13562,-0.12291,-0.11443,-0.13562,-0.13562,-0.11019,-0.13138,-0.11443,-0.10172,-0.11443,-0.11443,-0.11443,-0.11019,-0.12291 0.03088,0.039782,-0.069593,-0.13191,-0.27181,0.3323,0.041054,-0.030167,-0.12047,-0.26672,0.30177,0.33611,-0.03907,-0.11156,-0.25782,0.28778,0.29669,-0.060691,-0.11792,-0.24892,0.32848,0.056316,0.0028997,-0.12428,-0.20313 0.24142,0.25552,0.24014,0.24014,0.24014,0.25552,0.24398,0.24911,0.24142,0.24014,-0.13608,-0.15018,-0.16556,-0.17197,-0.16813,-0.15787,-0.16364,-0.16364,-0.16172,-0.16364,-0.17133,-0.17069,-0.16556,-0.16877,-0.16877 -0.29431,-0.27807,-0.2131,-0.18061,-0.32679,-0.22934,-0.08316,-0.11564,-0.18061,-0.18061,-0.034433,0.046777,0.11175,-0.050676,-0.066918,0.22544,0.095504,0.17671,0.16047,0.079262,0.2092,0.30665,0.25793,0.32289,0.24168 0.39089,-0.1129,-0.10722,-0.11231,-0.11949,0.39388,-0.1144,-0.1141,-0.11679,-0.12248,0.38969,0.019326,-0.11021,-0.1162,-0.12397,0.39508,0.012146,-0.10602,-0.12248,-0.13056,0.38251,0.019924,-0.12487,-0.12457,-0.12487 0.18398,0.20578,0.19125,0.22032,0.21305,0.17672,0.16218,0.18398,0.19852,0.21305,0.11132,0.11132,0.082255,0.016858,-0.034007,-0.055806,-0.11394,-0.13574,-0.2084,-0.2084,-0.2738,-0.2738,-0.2956,-0.32466,-0.34646 0.35675,-0.061081,-0.12853,-0.12666,-0.11729,0.39797,-0.057334,-0.12291,-0.12479,-0.11917,0.42795,-0.066702,-0.11917,-0.11917,-0.11354,0.39984,-0.017987,-0.11542,-0.11354,-0.10792,0.39047,-0.010493,-0.1098,-0.11542,-0.10605 -0.28052,-0.19833,-0.088757,0.15779,0.32215,-0.22573,-0.14354,0.048214,0.103,0.34955,-0.22573,-0.22573,0.020819,0.18518,0.18518,-0.25312,-0.17094,-0.0065746,0.26737,0.23997,-0.22573,-0.061363,-0.0065746,-0.061363,0.29476 0.24364,0.24313,0.24466,0.24364,0.24517,0.24619,0.24568,0.24517,0.24568,0.24619,-0.15463,-0.16073,-0.16073,-0.15921,-0.16582,-0.16378,-0.17294,-0.16073,-0.16277,-0.16989,-0.16735,-0.16277,-0.16277,-0.16277,-0.16226 0.35746,-0.015481,-0.14918,-0.1351,-0.078811,0.33635,0.0056293,-0.1351,-0.17732,-0.092884,0.37857,-0.0014073,-0.1351,-0.16325,-0.12103,0.42783,0.061923,-0.14918,-0.15621,-0.085847,0.38561,0.054886,-0.14214,-0.16325,-0.10696 -0.41992,-0.14426,-0.006432,0.17734,0.31517,-0.25912,-0.16723,0.062483,0.10843,0.24626,-0.25912,-0.006432,-0.006432,0.1314,0.2922,-0.21318,-0.21318,-0.075347,0.17734,0.1314,-0.21318,-0.075347,-0.006432,0.062483,0.36111 0.2274,0.24019,0.23507,0.25298,0.26833,0.22484,0.25298,0.24531,0.24787,0.25042,-0.1487,-0.16405,-0.1487,-0.14614,-0.16149,-0.16149,-0.18452,-0.16405,-0.16149,-0.16149,-0.16149,-0.16149,-0.16405,-0.18708,-0.16917 -0.26591,-0.0227,-0.049723,0.058371,0.16646,-0.40103,-0.21186,0.058371,0.085394,0.38265,-0.21186,-0.076747,-0.0227,0.11242,0.24754,-0.21186,-0.13079,-0.0227,0.22051,0.32861,-0.21186,-0.21186,0.0043238,0.085394,0.30158 0.17234,0.17477,0.074916,-0.29528,-0.29609,0.17883,0.17802,0.071669,0.0042865,-0.30421,0.18289,0.18127,0.055432,0.0010392,-0.30665,0.18857,0.18776,0.052185,-0.02088,-0.31883,0.19182,0.1902,0.059492,-0.29122,-0.31233 0.17334,0.17334,0.025943,-0.062498,-0.26886,0.2323,0.17334,0.084903,0.025943,-0.3573,0.32074,0.14386,0.025943,-0.18042,-0.12146,0.2323,0.17334,-0.062498,-0.26886,-0.44574,0.20282,0.14386,-0.062498,-0.12146,-0.18042 0.17915,0.23479,0.13743,0.13743,0.16524,0.27652,0.19306,0.23479,0.19306,0.16524,0.10961,0.12352,0.067878,0.12352,-0.0016691,-0.1964,-0.23813,-0.21031,-0.16858,-0.18249,-0.27986,-0.26595,-0.23813,-0.32159,-0.23813 0.27995,0.19283,0.047626,-0.1847,-0.1847,0.27995,0.10571,0.018586,-0.12662,-0.27182,0.39611,0.19283,-0.010455,-0.097576,-0.24278,0.33803,0.19283,0.076666,-0.12662,-0.24278,0.047626,-0.068535,-0.1847,-0.15566,-0.27182 0.24958,0.17108,-0.030994,-0.24034,-0.45985,0.22777,0.14927,0.031517,-0.19963,-0.39007,0.22777,0.13473,0.067861,-0.086237,-0.33628,0.21324,0.14927,0.059139,-0.01791,-0.18655,0.18562,0.1231,0.053324,0.031517,-0.12694 -0.27763,-0.15198,0.11942,0.20988,0.17973,-0.29774,-0.20224,0.14957,0.1948,0.17973,-0.26255,-0.21732,0.11439,0.18475,0.16465,-0.27763,-0.21732,0.079208,0.1747,0.1747,-0.25753,-0.24245,0.11439,0.1948,0.16967 -0.1478,-0.28217,-0.28217,-0.28217,-0.21499,-0.10301,-0.21499,-0.12541,-0.23738,-0.1702,-0.058225,0.053746,-0.080619,0.031352,0.031352,0.16572,0.2329,0.14332,0.12093,0.0089577,0.32248,0.30008,0.25529,0.2329,0.30008 0.24125,0.11321,0.024193,-0.089213,-0.43065,0.2254,0.13516,0.0095603,-0.081896,-0.17823,0.24979,0.12784,0.040046,-0.081896,-0.16238,0.25101,0.11565,0.024193,-0.089213,-0.56113,0.23028,0.1376,0.018096,-0.080677,-0.18799 -0.1417,-0.19592,-0.25014,-0.1417,-0.17784,-0.087476,-0.15977,-0.10555,-0.25014,-0.087476,-0.12362,-0.1417,-0.17784,-0.1417,-0.087476,0.14748,0.093259,0.11133,0.12941,0.18363,0.34629,0.29207,0.38244,0.32822,0.25592 -0.28508,-0.29038,-0.28684,-0.28508,-0.28508,-0.19497,-0.19321,-0.18791,-0.20381,-0.19497,0.17073,0.1725,0.17603,0.18487,0.2043,0.14247,0.13363,0.13363,0.1566,0.21844,0.11773,0.12127,0.12657,0.1725,0.17603 -0.1866,-0.21844,-0.2662,-0.20252,-0.37765,-0.15475,-0.12291,-0.12291,-0.25028,-0.2662,0.0363,0.052221,0.052221,-0.043306,-0.043306,0.24328,0.24328,0.16367,0.17959,0.14775,0.27512,0.24328,0.24328,0.16367,0.21143 -0.13029,-0.1765,0.031418,0.17003,0.26243,-0.2689,-0.10719,-0.037887,0.05452,0.23933,-0.2458,-0.15339,-0.014785,0.077622,0.33174,-0.31511,-0.037887,-0.08409,0.17003,0.23933,-0.38441,-0.060988,0.0083166,0.031418,0.40104 -0.24377,-0.24322,-0.24405,-0.24488,-0.24516,-0.24308,-0.24349,-0.24391,-0.24419,-0.24502,0.1689,0.18068,0.17528,0.14854,0.16475,0.16974,0.14231,0.18414,0.22252,0.15477,0.13995,0.13663,0.1394,0.15838,0.15477 0.365,0.365,0.365,0.39719,0.45083,-0.085617,-0.015879,-0.031972,-0.010514,0.037766,-0.12317,-0.10171,-0.10708,-0.13926,-0.085617,-0.1339,-0.1339,-0.15536,-0.1178,-0.12317,-0.13926,-0.10708,-0.12317,-0.12853,-0.1178 0.12311,-0.037747,-0.12353,-0.1986,-0.17715,0.26251,0.048041,-0.12353,-0.20932,-0.14498,0.36974,0.12311,-0.14498,-0.18787,-0.1986,0.36974,0.166,-0.027023,-0.11281,-0.20932,0.44481,0.21962,0.0051473,-0.08064,-0.1557 0.14056,0.12162,0.11215,0.070816,-0.3735,0.14659,0.1199,0.11473,-0.14876,-0.37437,0.15262,0.11645,0.11215,0.084593,-0.41656,0.13712,0.12248,0.11473,0.070816,-0.36662,0.1354,0.12248,0.11904,-0.078152,-0.35628 0.21851,0.19964,-0.17905,-0.19994,-0.17905,0.23468,0.21245,-0.17501,-0.18107,-0.17905,0.24614,0.21245,-0.17568,-0.17433,-0.17096,0.26703,0.21042,-0.15412,-0.1777,-0.17838,0.27107,0.20099,0.19829,-0.16423,-0.18309 0.34276,-0.048651,-0.14569,-0.13599,-0.14246,0.34923,0.15191,-0.13599,-0.16187,-0.13923,0.3557,-0.0033642,-0.13923,-0.13276,-0.1554,0.34923,0.022514,-0.13276,-0.14246,-0.12952,0.36864,0.22631,-0.13923,-0.13923,-0.14246 0.36921,0.38178,0.34406,0.38178,0.38178,0.029677,0.029677,-0.033198,0.092553,0.067403,-0.070924,-0.096074,-0.096074,-0.10865,-0.15895,-0.14637,-0.17152,-0.12122,-0.15895,-0.14637,-0.1338,-0.14637,-0.15895,-0.17152,-0.15895 0.24605,0.24469,0.24401,0.24469,0.24537,0.24469,0.24605,0.24537,0.24469,0.24333,-0.15516,-0.15516,-0.16399,-0.16399,-0.16195,-0.16535,-0.16806,-0.15788,-0.15788,-0.16399,-0.16195,-0.16195,-0.1701,-0.16602,-0.17553 -0.40489,-0.11643,0.067133,0.093356,0.1458,-0.1951,-0.24755,-0.09021,0.1458,0.30315,-0.1951,-0.11643,-0.011538,0.067133,0.40804,-0.24755,-0.09021,0.040909,0.093356,0.27692,-0.24755,-0.11643,-0.011538,0.1458,0.30315 0.45159,0.16087,-0.17831,-0.081402,-0.17831,0.30623,-0.032948,-0.057175,-0.081402,-0.22676,0.33045,0.039732,-0.0087216,-0.15408,-0.17831,0.33045,-0.032948,-0.057175,-0.22676,-0.10563,0.30623,0.16087,-0.12986,-0.15408,-0.20254 0.25845,0.25762,0.25098,0.24849,0.21737,0.25637,0.25513,0.24725,0.2377,0.21737,-0.16312,-0.15938,-0.16146,-0.16187,-0.16146,-0.16229,-0.16519,-0.16353,-0.16312,-0.16436,-0.16519,-0.16395,-0.16395,-0.16229,-0.16561 0.24848,0.25194,0.24386,0.24646,0.24242,0.24646,0.24098,0.243,0.24415,0.24156,-0.16046,-0.16161,-0.16104,-0.16248,-0.16161,-0.16306,-0.16421,-0.16248,-0.16335,-0.1645,-0.1645,-0.16363,-0.16565,-0.16479,-0.16594 0.2337,0.23016,0.23104,0.239,0.24431,0.25139,0.2505,0.24166,0.26908,0.25493,-0.14318,-0.14937,-0.14494,-0.15025,-0.15556,-0.16795,-0.16972,-0.16795,-0.17325,-0.16618,-0.17149,-0.16972,-0.17149,-0.17149,-0.17325 0.20027,0.18507,-0.13795,-0.21205,-0.25386,0.19362,0.17842,-0.14555,-0.20065,-0.25481,0.20882,0.18222,0.17842,-0.17785,-0.24721,0.20882,0.18127,0.18032,-0.1921,-0.24531,0.20882,0.18222,0.18222,-0.16455,-0.23866 -0.24265,-0.24328,-0.2434,-0.24328,-0.24328,-0.24315,-0.24303,-0.24328,-0.24315,-0.24315,0.13514,0.13027,0.13364,0.18387,0.19611,0.13552,0.1279,0.14551,0.20211,0.20286,0.13764,0.12565,0.18349,0.18524,0.20673 0.40363,0.39343,0.33221,0.40363,0.35261,-0.014692,0.0057136,0.046525,-0.014692,0.036322,-0.13713,-0.086113,-0.055504,-0.024895,-0.096316,-0.16774,-0.12692,-0.13713,-0.15753,-0.14733,-0.17794,-0.16774,-0.14733,-0.17794,-0.13713 0.16563,0.16275,0.16851,0.17714,0.17426,0.16563,0.15124,0.157,0.16563,0.16563,0.16563,0.15124,0.14837,0.15412,0.16563,-0.22284,-0.21421,-0.21421,-0.21421,-0.21421,-0.26888,-0.27751,-0.27176,-0.26312,-0.27751 0.22877,0.11853,-0.15163,-0.16011,-0.16253,0.24816,0.12701,0.1258,-0.14194,-0.16253,0.25906,0.20091,-0.12619,-0.17707,-0.18797,0.26148,0.29419,-0.17465,-0.18434,-0.19645,0.26875,0.2845,-0.17949,-0.20372,-0.20857 -0.24511,-0.24168,-0.24432,-0.24353,-0.24221,-0.24432,-0.24643,-0.24564,-0.24459,-0.24247,0.2421,0.16315,0.17107,0.14651,0.15047,0.15153,0.16367,0.16948,0.15205,0.15232,0.15443,0.15654,0.15707,0.15813,0.15179 -0.27581,-0.10156,-0.026884,0.14736,0.22204,-0.22602,-0.12645,0.14736,0.072686,0.22204,-0.32559,-0.076669,-0.026884,0.17226,0.19715,-0.20113,-0.10156,-0.17624,0.19715,0.27183,-0.3007,-0.25092,-0.0019914,0.22204,0.3465 -0.14891,-0.28902,-0.28902,-0.24899,-0.1289,-0.22898,-0.16893,-0.1289,-0.18895,-0.16893,-0.028822,0.011209,-0.088868,-0.0088068,-0.10888,0.25139,0.15132,0.15132,0.15132,0.17133,0.37149,0.35147,0.23138,0.19135,0.19135 0.2452,0.24385,0.24016,0.25561,0.25494,0.23377,0.24117,0.24419,0.24923,0.24083,-0.16237,-0.16237,-0.16304,-0.16237,-0.16102,-0.16405,-0.16438,-0.16371,-0.16405,-0.16506,-0.16237,-0.16304,-0.16304,-0.16405,-0.16405 0.25484,0.2511,0.24408,0.24018,0.23722,0.25438,0.24861,0.24362,0.23878,0.23613,-0.16276,-0.16198,-0.16183,-0.16214,-0.16276,-0.16292,-0.16339,-0.16339,-0.1637,-0.16401,-0.16339,-0.16401,-0.16401,-0.16417,-0.16448 0.1541,-0.015925,-0.1708,-0.2676,-0.21794,0.2105,0.079189,-0.084104,-0.22635,-0.2575,0.26858,0.097707,-0.023501,-0.18932,-0.21541,0.3578,0.1844,0.01101,-0.11525,-0.17585,0.41167,0.27868,0.10528,-0.057169,-0.14218 -0.12569,-0.15326,0.039692,0.067257,0.23264,-0.29108,-0.15326,0.067257,0.094821,0.17751,-0.26351,-0.070564,0.067257,0.23264,0.26021,-0.26351,-0.29108,0.012128,0.17751,0.26021,-0.40133,-0.15326,0.012128,0.23264,0.23264 0.12863,0.083573,0.06986,0.052228,-0.41892,0.13059,0.10022,0.078675,0.02872,-0.39639,0.14724,0.10512,0.079655,0.063983,-0.39346,0.15802,0.1159,0.086512,0.071819,-0.40521,0.15312,0.12765,0.099245,0.094348,-0.36113 -0.13455,-0.11436,-0.12698,-0.12445,-0.13455,-0.12698,-0.12445,-0.1295,-0.13202,-0.12445,-0.10427,-0.11184,-0.10931,-0.11941,-0.11184,-0.013424,-0.026041,-0.036135,-0.023518,-0.036135,0.40041,0.39032,0.39032,0.39284,0.39032 0.24645,0.24194,0.24194,0.24307,0.24081,0.24532,0.2487,0.24758,0.2487,0.24419,-0.16107,-0.15938,-0.17234,-0.15656,-0.14754,-0.16614,-0.17009,-0.17178,-0.16107,-0.16839,-0.16219,-0.1605,-0.16219,-0.16614,-0.16332 -0.12487,-0.13157,-0.1366,-0.12822,-0.13157,-0.1299,-0.12822,-0.13157,-0.12152,-0.13157,-0.091378,-0.083004,-0.10478,-0.093053,-0.11315,-0.016011,-0.0042875,-0.037784,-0.047833,-0.07798,0.41777,0.41442,0.39097,0.3692,0.37255 -0.18805,-0.18805,-0.13777,0.21419,0.23933,-0.36403,-0.11263,-0.062347,0.063353,0.39017,-0.21319,-0.13777,-0.11263,0.18905,0.26447,-0.26347,-0.11263,-0.087487,0.11363,0.23933,-0.16291,-0.037207,-0.037207,0.21419,0.28961 -0.18977,-0.18433,-0.031991,0.25092,0.25364,-0.18705,-0.18977,-0.094559,0.24004,0.2482,-0.17617,-0.18977,-0.1408,0.2482,0.25909,-0.18977,-0.18705,-0.14897,0.19652,0.25092,-0.16801,-0.17889,-0.15441,0.21556,0.2482 -0.27975,-0.15618,0.06623,0.18979,0.2145,-0.27975,-0.057333,-0.13147,0.14037,0.26393,-0.30446,-0.15618,0.11565,0.18979,0.36278,-0.1809,-0.20561,0.016805,0.11565,0.31335,-0.27975,-0.082046,-0.13147,0.090942,0.16508 -0.2438,-0.2438,-0.24458,-0.24403,-0.24414,-0.24535,-0.2438,-0.24425,-0.2427,-0.24469,0.15208,0.17336,0.20556,0.20126,0.15671,0.15185,0.14645,0.14403,0.20258,0.15505,0.15163,0.14645,0.14458,0.15538,0.15417 -0.2879,-0.28328,-0.27634,-0.2879,-0.28212,-0.11337,-0.11337,-0.11452,-0.11915,-0.12146,-0.020898,-0.033612,-0.041703,-0.03708,-0.027833,0.12012,0.11318,0.10971,0.30505,0.30274,0.21027,0.20681,0.21027,0.28656,0.29581 -0.2777,-0.11687,-0.036455,0.2316,0.12438,-0.33131,0.017155,-0.036455,0.12438,0.2316,-0.2509,-0.19729,0.04396,0.017155,0.28521,-0.19729,-0.11687,-0.0096498,0.12438,0.31201,-0.33131,-0.17048,-0.0096498,0.2316,0.33882 0.28104,0.28104,0.28104,0.30545,0.28917,0.16306,0.16306,0.12644,0.14272,0.12644,0.06135,0.053213,0.024735,-0.11765,-0.10138,-0.138,-0.19902,-0.19495,-0.19495,-0.17054,-0.28445,-0.26411,-0.23563,-0.20716,-0.19088 0.28706,0.29979,0.32524,0.28706,0.24889,0.1471,0.10892,0.17254,0.13437,0.12165,-0.0055988,0.01985,-0.043772,-0.043772,-0.018323,-0.069221,-0.17102,-0.14557,-0.12012,-0.15829,-0.23464,-0.27281,-0.28554,-0.27281,-0.31099 -0.26007,-0.20202,-0.23104,-0.26007,-0.4052,-0.10043,-0.11494,-0.085916,-0.12945,-0.24556,0.015674,0.073725,-0.027865,0.001161,-0.085916,0.21885,0.1608,0.18983,0.13178,0.059212,0.2769,0.34947,0.2769,0.21885,0.17531 0.21301,0.23782,0.23782,0.25022,0.26758,0.20805,0.23782,0.25518,0.26014,0.27006,-0.12928,-0.13424,-0.14416,-0.14912,-0.12928,-0.18136,-0.16896,-0.1764,-0.18632,-0.18136,-0.17144,-0.16152,-0.17144,-0.1764,-0.1764 -0.23694,-0.33097,-0.30746,-0.30746,-0.4485,-0.072399,-0.095905,-0.14292,-0.11941,-0.072399,0.13916,0.045132,0.045132,-0.0018805,0.068638,0.18617,0.13916,0.13916,0.16266,0.092144,0.25669,0.23318,0.23318,0.18617,0.20967 -0.21323,-0.21323,0.016049,0.13069,0.37907,-0.17501,-0.098588,-0.003057,0.1689,0.26443,-0.17501,-0.098588,0.035155,0.016049,0.26443,-0.27054,-0.21323,-0.098588,0.073368,0.24532,-0.28965,-0.15591,-0.060376,0.035155,0.43639 -0.23899,-0.2398,-0.23846,-0.24007,-0.23926,-0.23819,-0.23899,-0.23953,-0.23873,-0.23873,0.076918,0.078264,0.084728,0.20215,0.20458,0.080419,0.081496,0.19703,0.20215,0.20269,0.17926,0.19515,0.20188,0.19946,0.20458 0.17405,0.17832,0.18259,0.1954,0.16978,0.14416,0.1527,0.16551,0.16551,0.16124,0.12708,0.1527,0.1527,0.13989,0.17405,-0.2188,-0.24442,-0.21453,-0.20599,-0.22307,-0.24442,-0.25296,-0.28285,-0.27431,-0.27431 0.24929,0.23314,0.12012,-0.073624,-0.31581,0.13627,0.20085,0.20085,-0.10591,-0.3481,0.1847,0.071686,0.087832,-0.12206,-0.26737,0.10398,0.039395,0.087832,-0.18664,-0.29966,0.16856,0.15241,0.1847,-0.10591,-0.39653 -0.20315,-0.11658,-0.03001,0.056558,0.34512,-0.34743,-0.26086,0.085414,0.085414,0.25855,-0.26086,-0.14543,-0.03001,0.17198,0.25855,-0.14543,-0.087722,-0.087722,0.22969,0.31626,-0.232,-0.14543,-0.0011542,-0.03001,0.31626 0.24643,0.24643,0.24563,0.2454,0.24506,0.24472,0.24506,0.24392,0.24357,0.24323,-0.16257,-0.16257,-0.16257,-0.16245,-0.16314,-0.16325,-0.1636,-0.16314,-0.16371,-0.16337,-0.16417,-0.16382,-0.16348,-0.16405,-0.1636 -0.17576,-0.17537,-0.17025,-0.16868,-0.1675,-0.17458,-0.16081,-0.14821,-0.15687,-0.17537,-0.13601,-0.13994,-0.13798,-0.17891,-0.17301,0.2285,0.23637,0.23519,0.27298,0.28833,0.22574,0.23007,0.22732,0.22377,0.27101 -0.14766,-0.25753,-0.21359,-0.30148,-0.21359,-0.12569,-0.30148,-0.14766,-0.23556,-0.19161,0.028127,0.028127,-0.081743,0.0061527,0.0061527,0.24786,0.15997,0.094048,0.18194,0.18194,0.24786,0.33576,0.24786,0.24786,0.20392 0.24579,0.24579,0.24485,0.24453,0.24422,0.24485,0.24453,0.24453,0.24516,0.24516,-0.15932,-0.16121,-0.16247,-0.16027,-0.1631,-0.16247,-0.16247,-0.16374,-0.16374,-0.165,-0.16374,-0.1631,-0.165,-0.16689,-0.16689 -0.24321,-0.24534,-0.24364,-0.24428,-0.24321,-0.24258,-0.24364,-0.24449,-0.24215,-0.2447,0.13865,0.14375,0.14885,0.20729,0.19709,0.13695,0.14375,0.17372,0.14524,0.19114,0.13483,0.14099,0.19178,0.14758,0.19561 -0.28451,-0.21865,-0.1967,-0.24061,-0.17475,-0.21865,-0.24061,-0.24061,-0.1967,-0.15279,0.00087812,0.08869,-0.043028,0.022831,0.00087812,0.08869,0.08869,0.08869,0.26431,0.19846,0.28627,0.26431,0.24236,0.26431,0.30822 -0.32481,-0.21852,-0.2823,-0.19727,-0.21852,-0.15475,-0.15475,-0.19727,-0.11224,-0.069724,-0.069724,0.057819,-0.048466,-0.069724,0.015305,0.18536,0.079077,0.057819,0.079077,0.057819,0.27039,0.33416,0.31291,0.31291,0.35542 0.24548,0.24548,0.24573,0.24524,0.24499,0.24426,0.24524,0.24499,0.24426,0.24377,-0.16141,-0.16141,-0.1619,-0.1619,-0.16312,-0.16312,-0.16409,-0.16312,-0.16312,-0.16409,-0.16336,-0.16385,-0.16532,-0.16556,-0.16409 -0.14406,-0.11315,-0.11315,-0.14406,-0.097689,-0.1286,-0.17497,-0.11315,-0.1286,-0.11315,-0.11315,-0.097689,-0.11315,-0.097689,-0.15952,0.025968,-0.020403,-0.082232,-0.020403,0.010511,0.35057,0.42785,0.4124,0.38148,0.36603 0.16667,0.16187,0.15226,-0.25626,-0.32354,0.15226,0.14745,0.14745,-0.27068,-0.30432,0.17629,0.17148,0.18109,-0.2899,-0.29951,0.16667,0.15706,0.15706,-0.17456,-0.27068,0.13784,0.14264,0.13303,-0.049599,-0.11208 0.24254,0.23687,0.23687,0.25122,0.25122,0.23687,0.23687,0.25222,0.25222,0.25189,-0.15907,-0.16107,-0.16174,-0.16074,-0.1614,-0.16274,-0.16241,-0.16374,-0.16374,-0.16374,-0.16875,-0.16408,-0.16508,-0.16508,-0.16541 0.4264,-0.056735,-0.089694,-0.11451,-0.13118,0.42523,-0.062551,-0.088143,-0.1118,-0.13545,0.40585,-0.056735,-0.091632,-0.10986,-0.13157,0.37056,-0.058286,-0.091632,-0.1149,-0.13273,0.35273,-0.067592,-0.088918,-0.11218,-0.13467 -0.25768,-0.19473,0.07806,0.14101,0.26692,-0.25768,-0.13178,0.057076,0.162,0.162,-0.21572,-0.25768,0.057076,0.18298,0.162,-0.34162,-0.15276,0.015108,0.30888,0.26692,-0.32064,-0.026859,-0.068827,0.162,0.20396 0.19339,0.14084,0.018218,-0.15695,-0.2095,0.28097,0.070769,0.00070068,-0.016816,-0.22702,0.26346,0.17587,-0.016816,-0.15695,-0.15695,0.21091,0.070769,0.088286,-0.13944,-0.15695,0.33352,0.15835,-0.016816,-0.19199,-0.55984 0.28398,0.012662,0.080491,-0.14561,-0.25866,0.30659,0.057881,0.035271,-0.25866,-0.19083,0.37442,-0.032558,-0.0099483,-0.23605,-0.19083,0.26137,0.14832,-0.0099483,-0.10039,-0.077778,0.3292,0.14832,0.012662,-0.32649,-0.21344 -0.33686,-0.33686,-0.26746,-0.29059,-0.31373,-0.15177,-0.17491,0.01018,-0.15177,-0.12864,-0.012956,0.079589,0.079589,0.033316,0.033316,0.12586,0.10272,0.21841,0.079589,0.24154,0.26468,0.21841,0.21841,0.24154,0.21841 0.2451,0.18503,0.23009,0.36525,0.36525,0.2451,0.18503,0.12495,0.23009,0.17001,-0.070287,-0.13036,-0.070287,-0.14538,-0.1604,-0.13036,-0.1604,-0.17542,-0.19044,-0.17542,-0.20545,-0.14538,-0.1604,-0.22047,-0.20545 0.24596,0.24456,0.24456,0.24526,0.24369,0.24596,0.24544,0.24509,0.24404,0.24491,-0.16169,-0.16204,-0.16239,-0.16239,-0.16309,-0.16239,-0.16344,-0.16379,-0.16379,-0.16379,-0.16379,-0.16344,-0.16414,-0.16414,-0.16519 -0.2437,-0.10068,0.01373,0.070937,0.24256,-0.27231,-0.12929,-0.014874,0.35697,0.29977,-0.30091,-0.072081,-0.014874,0.12814,0.18535,-0.27231,-0.1865,-0.072081,0.12814,0.32837,-0.2151,-0.12929,-0.043478,-0.014874,0.32837 0.24362,0.24489,0.24505,0.24553,0.24489,0.24537,0.24505,0.24521,0.24458,0.24505,-0.15902,-0.15918,-0.15966,-0.15966,-0.15918,-0.16284,-0.16284,-0.16284,-0.16204,-0.16236,-0.16809,-0.16793,-0.16825,-0.16777,-0.16761 0.22136,0.21438,0.16782,0.019616,-0.37844,0.20662,0.18955,0.15773,-0.093671,-0.39551,0.19498,0.18489,-0.061858,-0.099103,-0.25895,0.18024,0.16937,-0.081256,-0.11307,-0.27524,0.17015,0.15541,-0.083584,-0.099103,-0.29231 -0.17778,-0.16933,-0.10173,0.23625,0.32074,-0.17778,-0.21157,-0.076383,0.1433,0.38834,-0.20312,-0.16933,-0.067934,0.0081115,0.32919,-0.18623,-0.19468,-0.042585,0.0081115,0.34609,-0.21157,-0.11863,-0.0087874,0.058808,0.27849 -0.21843,-0.17135,-0.10074,0.13463,0.27586,-0.2655,-0.10074,-0.030128,0.087559,0.27586,-0.24196,-0.053665,0.13463,0.13463,0.25232,-0.38319,-0.053665,-0.17135,0.15817,0.22878,-0.2655,-0.077202,-0.077202,0.18171,0.34647 -0.24306,-0.24282,-0.24163,-0.24234,-0.24234,-0.24163,-0.24187,-0.24163,-0.24091,-0.24234,0.023029,0.18344,0.19058,0.18677,0.17178,0.18534,0.18725,0.15417,0.15964,0.16392,0.17725,0.18177,0.15274,0.15036,0.1525 -0.2452,-0.094216,0.086968,0.11717,0.29835,-0.2754,-0.12441,0.026574,0.23795,0.29835,-0.2754,-0.215,0.11717,0.086968,0.29835,-0.18481,-0.12441,-0.0036237,0.056771,0.20776,-0.39619,-0.15461,0.026574,-0.033821,0.26815 -0.11199,-0.13592,-0.15985,-0.15985,-0.14788,-0.15985,-0.18377,-0.19574,-0.17181,-0.10002,-0.14788,-0.12395,-0.18377,-0.15985,-0.11199,0.06748,0.1273,0.10337,0.13927,0.10337,0.31873,0.34266,0.34266,0.36659,0.34266 -0.20186,-0.28133,-0.18199,-0.24159,-0.26146,-0.20186,-0.22173,-0.32106,-0.22173,-0.16212,0.056425,0.016689,0.056425,0.11603,0.036557,0.15576,0.23524,0.21537,0.29484,0.15576,0.11603,0.1955,0.1955,0.2551,0.1955 -0.25082,-0.24255,-0.24255,-0.22328,-0.39401,-0.19849,-0.17646,-0.17646,-0.17371,-0.3114,0.15675,0.15675,0.14848,0.14848,0.14022,0.19254,0.17602,0.15675,0.14573,0.13747,0.19254,0.18153,0.16776,0.14573,0.14298 0.24631,0.24327,0.24374,0.24403,0.24327,0.24784,0.24917,0.24403,0.24279,0.24498,-0.16259,-0.16259,-0.16259,-0.16278,-0.16307,-0.16307,-0.16259,-0.16326,-0.16316,-0.16345,-0.16364,-0.16392,-0.16383,-0.16459,-0.1643 -0.29855,-0.17118,0.10903,0.18545,0.26187,-0.17118,-0.043815,-0.018341,0.18545,0.2364,-0.29855,-0.2476,-0.069289,0.31282,0.18545,-0.29855,-0.17118,0.0071327,0.10903,0.2364,-0.19666,-0.2476,0.05808,0.10903,0.2364 -0.18016,-0.18334,-0.18122,-0.1791,-0.17592,-0.16427,-0.16427,-0.16533,-0.16215,-0.16427,-0.15262,-0.14732,-0.13249,-0.13037,-0.12614,0.32723,0.27956,0.23825,0.20118,0.17152,0.30816,0.27744,0.23507,0.19694,0.17364 0.26747,0.26209,0.23469,0.23371,0.23763,0.26258,0.25964,0.24056,0.2298,0.21805,-0.1592,-0.15773,-0.16311,-0.16067,-0.16556,-0.16556,-0.16311,-0.1636,-0.16409,-0.16214,-0.16458,-0.16409,-0.16409,-0.16263,-0.16605 0.24261,0.24261,0.26897,0.25232,0.25093,0.16769,0.1344,0.14689,0.16492,0.15243,0.063648,-0.022363,-0.011265,-0.0084902,0.1455,-0.14861,-0.15832,-0.14861,-0.13751,-0.12225,-0.29982,-0.29982,-0.30814,-0.29427,-0.27346 -0.27133,-0.27133,-0.27133,-0.23476,-0.38103,-0.16163,-0.088493,-0.07021,-0.12506,-0.10678,-0.051926,-0.10678,0.039493,0.021209,0.07606,0.07606,0.11263,0.18576,0.094344,0.094344,0.31375,0.24061,0.27718,0.27718,0.33203 0.22181,0.22705,0.22181,-0.1466,-0.20072,0.22007,0.22181,-0.13088,-0.1885,-0.19548,0.22181,0.22531,-0.13263,-0.1885,-0.19374,0.22007,0.22356,-0.15707,-0.18675,-0.19548,0.22356,0.24451,-0.16755,-0.1885,-0.19898 0.35506,0.35487,-0.077189,-0.095056,-0.24161,0.35544,0.056819,-0.08023,-0.099048,-0.2437,0.35582,0.054538,-0.076048,-0.097337,-0.22754,0.35392,0.054728,-0.075858,-0.086312,-0.23287,0.05948,0.047125,-0.082321,-0.098288,-0.23439 0.1148,0.11555,0.1148,-0.23598,-0.23762,0.1163,0.11555,0.11525,-0.23762,-0.23897,0.116,0.11645,0.11914,-0.23747,-0.23867,0.30051,0.20078,0.16654,-0.23673,-0.23822,0.2872,0.20826,0.17088,-0.23822,-0.23852 -0.23671,-0.28022,-0.23671,-0.34549,-0.34549,-0.062658,-0.14968,-0.040902,-0.14968,-0.12793,-0.019146,0.089636,0.06788,-0.062658,-0.084415,0.11139,0.17666,0.06788,0.11139,0.089636,0.3072,0.3072,0.26369,0.3072,0.24193 -0.18559,-0.18395,-0.18468,-0.18413,-0.1845,-0.18523,-0.18395,-0.18395,-0.1845,-0.18413,0.012721,0.014358,-0.18086,-0.1845,-0.18213,0.23741,0.23614,0.23596,0.23305,0.23377,0.24214,0.24323,0.23614,0.23414,0.23305 -0.20279,-0.35245,-0.25891,-0.24021,-0.24021,-0.12796,-0.05313,-0.24021,-0.14667,-0.05313,-0.071837,-0.12796,-0.034422,0.021701,-0.05313,0.19007,0.13395,0.15265,0.11524,0.20878,0.22748,0.33973,0.28361,0.22748,0.30231 0.29487,-0.035537,-0.094276,-0.14567,-0.13833,0.28753,-0.042879,-0.14567,-0.13833,-0.13099,0.52248,0.059914,-0.14567,-0.1163,-0.14567,0.39032,0.059914,-0.13099,-0.14567,-0.1163,0.33892,0.11131,-0.10162,-0.13833,-0.15301 0.12637,0.18416,0.136,0.010788,-0.40339,0.136,0.097476,0.12637,0.010788,-0.47081,0.097476,0.11674,0.136,0.030052,-0.39376,0.1649,0.10711,0.11674,0.049316,-0.3167,0.078212,0.087844,0.097476,0.030052,-0.35523 0.26142,0.29119,0.29119,0.32096,0.30608,0.097659,0.12743,0.14232,0.097659,0.15721,-0.021437,0.038111,-0.021437,0.038111,-0.021437,-0.14053,-0.14053,-0.14053,-0.17031,-0.17031,-0.24474,-0.30429,-0.2894,-0.24474,-0.25963 0.085758,0.014909,-0.068261,-0.19148,-0.26541,0.16893,0.20281,0.1104,-0.083663,-0.27157,0.19665,0.19665,0.17817,-0.12679,-0.29929,0.21513,0.20281,0.19049,-0.11139,-0.33009,0.19049,0.21821,0.13504,-0.27157,-0.28697 -0.12318,-0.1708,-0.26605,-0.10731,-0.21842,-0.15493,-0.1708,-0.13906,-0.18668,-0.1708,-0.10731,-0.13906,-0.10731,-0.21842,-0.012064,0.099053,0.1308,0.099053,0.21017,0.27367,0.33716,0.25779,0.32129,0.30541,0.25779 -0.33952,-0.35095,-0.34809,-0.35381,-0.35095,-0.088023,-0.099455,-0.085165,-0.068018,-0.15661,0.1206,0.12346,0.13489,0.13489,0.14347,0.15204,0.15204,0.16633,0.14347,0.16919,0.16061,0.16061,0.1549,0.16633,0.15776 0.24893,0.10255,0.052868,0.0095949,-0.36223,0.063553,0.081717,0.056073,0.0095949,-0.38734,0.23023,0.21634,0.056073,0.0095949,-0.36063,0.22115,0.10202,0.038444,0.0074579,-0.36223,0.21314,0.08973,0.04432,0.0047868,-0.38574 0.15175,0.2187,0.24101,0.26333,0.28565,0.2187,0.19638,0.15175,0.10712,0.19638,0.017853,-0.026779,-0.0044632,0.084801,0.15175,-0.20531,-0.16068,-0.22762,-0.18299,-0.18299,-0.27226,-0.27226,-0.18299,-0.29457,-0.27226 0.29489,0.2657,0.26326,0.2292,0.2146,0.24867,0.29489,0.24137,0.19027,0.19027,-0.16253,-0.15767,-0.1601,-0.1601,-0.1528,-0.16983,-0.1601,-0.15767,-0.17227,-0.15767,-0.1601,-0.1674,-0.16253,-0.16253,-0.16983 -0.2083,-0.2083,-0.2834,-0.35851,-0.35851,-0.058083,-0.10815,-0.083119,-0.15823,-0.13319,0.017024,0.067096,-0.058083,-0.083119,-0.058083,0.19227,0.11717,0.11717,0.16724,0.11717,0.26738,0.31745,0.16724,0.31745,0.29242 -0.16238,-0.16198,-0.16145,-0.16185,-0.16171,-0.16238,-0.16211,-0.16211,-0.16305,-0.16238,-0.16398,-0.16265,-0.16345,-0.16278,-0.16225,0.29345,0.26423,0.25236,0.21101,0.20434,0.28784,0.2593,0.25023,0.21141,0.20234 -0.12813,-0.13134,-0.11849,-0.11849,-0.12491,-0.13455,-0.12491,-0.12491,-0.1217,-0.12813,-0.12813,-0.10564,-0.11206,-0.10564,-0.13134,-0.012466,-0.022104,-0.025317,-0.041381,-0.022104,0.38592,0.40841,0.39235,0.39235,0.38271 0.25485,0.25564,0.24742,0.23747,0.23879,0.25073,0.25379,0.23933,0.23468,0.23601,-0.16317,-0.16303,-0.16343,-0.16317,-0.1637,-0.16303,-0.1629,-0.16317,-0.16383,-0.16343,-0.16264,-0.16303,-0.16277,-0.16343,-0.16396 -0.17906,-0.16507,-0.13709,-0.19305,-0.16507,-0.10911,-0.1231,-0.19305,-0.10911,-0.1231,-0.081137,-0.067148,-0.081137,-0.081137,-0.081137,0.0027978,-0.053159,0.0027978,0.030776,0.0027978,0.36651,0.43646,0.32455,0.36651,0.40848 -0.23386,-0.31358,-0.20728,-0.23386,-0.18071,-0.10098,-0.18071,-0.18071,-0.02126,-0.15413,-0.047834,-0.10098,-0.047834,-0.12756,-0.047834,0.13819,0.19134,0.13819,0.13819,0.03189,0.35079,0.35079,0.24449,0.24449,0.35079 -0.16161,-0.16282,-0.16252,-0.16342,-0.16402,-0.16101,-0.16221,-0.16191,-0.16221,-0.16312,-0.16131,-0.16131,-0.16221,-0.16221,-0.16221,0.30044,0.3024,0.22127,0.21044,0.20938,0.28403,0.23617,0.23136,0.21601,0.22263 0.24169,0.24169,0.24468,0.24243,0.24356,0.24767,0.24786,0.24674,0.24617,0.24692,-0.16187,-0.16299,-0.16225,-0.16225,-0.16225,-0.16262,-0.16299,-0.16374,-0.16374,-0.16262,-0.16486,-0.16486,-0.16449,-0.16374,-0.16412 -0.39664,-0.33225,-0.33225,-0.33225,-0.33225,-0.053229,-0.074692,-0.021034,-0.10689,-0.12835,0.11848,0.021893,0.086282,0.10775,0.011161,0.13994,0.15067,0.15067,0.13994,0.10775,0.24726,0.20433,0.22579,0.22579,0.17214 0.24538,0.24289,0.24289,0.2414,0.2394,0.24837,0.24837,0.24837,0.24638,0.24588,-0.16349,-0.16149,-0.159,-0.161,-0.16647,-0.16199,-0.16149,-0.16498,-0.16349,-0.16498,-0.16349,-0.16398,-0.16398,-0.16398,-0.16548 0.25332,0.25291,0.25372,0.25332,0.25251,0.2552,0.25466,0.25426,0.25426,0.15442,-0.16244,-0.16203,-0.16203,-0.16298,-0.16244,-0.16257,-0.16244,-0.16244,-0.16217,-0.16244,-0.16284,-0.16284,-0.16351,-0.16284,-0.16257 -0.22585,-0.28148,-0.3371,-0.11459,-0.36492,-0.086779,-0.14241,-0.17022,-0.19803,-0.17022,0.024476,0.024476,0.05229,0.024476,-0.058965,0.19136,0.16355,0.080104,0.080104,0.16355,0.2748,0.33043,0.24699,0.30261,0.19136 0.26144,0.26144,0.22797,0.23368,0.23786,0.25079,0.2565,0.24014,0.23634,0.24166,-0.16032,-0.16032,-0.1588,-0.16146,-0.16375,-0.16641,-0.16108,-0.16413,-0.16337,-0.16489,-0.16413,-0.16413,-0.16489,-0.16527,-0.16489 0.24588,0.24588,0.24502,0.2457,0.24467,0.24536,0.2445,0.24484,0.24433,0.24329,-0.16356,-0.16442,-0.16253,-0.16218,-0.16615,-0.16322,-0.16339,-0.16287,-0.1627,-0.16391,-0.16322,-0.16287,-0.1627,-0.16287,-0.16287 -0.24023,-0.20281,-0.090553,-0.15603,-0.12797,-0.23087,-0.14668,-0.21216,-0.15603,-0.23087,-0.20281,-0.14668,-0.034425,-0.081198,-0.0063611,0.087185,0.087185,0.19009,0.19944,0.19944,0.28363,0.29299,0.33976,0.29299,0.29299 0.24534,0.24513,0.24472,0.24513,0.24367,0.24513,0.24534,0.24451,0.24555,0.24492,-0.1652,-0.16416,-0.15853,-0.16416,-0.16228,-0.16353,-0.1627,-0.16291,-0.16332,-0.16478,-0.16374,-0.16249,-0.16395,-0.16353,-0.16416 0.40869,0.3834,0.40448,0.39183,0.38762,-0.046534,-0.038104,-0.059179,-0.029674,-0.038104,-0.097115,-0.10555,-0.11819,-0.10133,-0.10976,-0.11819,-0.12662,-0.10976,-0.12662,-0.12241,-0.12241,-0.12662,-0.12241,-0.12241,-0.13505 0.16381,0.14359,0.15976,-0.07875,-0.39003,0.15572,0.15572,0.16785,-0.10301,-0.36982,0.13146,0.13146,0.15572,-0.082792,-0.28088,0.11529,0.13955,0.15572,-0.014068,-0.40216,0.082954,0.086996,0.10317,0.062741,-0.39003 0.32509,0.28686,0.19384,-0.15658,-0.14893,0.24099,0.20021,-0.13109,-0.16932,-0.16422,0.26137,0.19511,-0.14766,-0.19481,-0.18079,0.20531,0.17472,-0.16805,-0.19863,-0.19736,0.19384,0.16326,-0.16805,-0.2101,-0.205 0.30196,0.21878,0.052406,-0.072371,-0.19715,0.32276,0.19798,0.052406,0.073203,-0.28033,0.30196,0.13559,0.03161,-0.072371,-0.19715,0.11479,0.093999,-0.051575,-0.30113,-0.32192,0.17718,0.052406,-0.072371,-0.19715,-0.36352 0.17137,0.2246,0.13146,0.19798,0.13146,0.13146,0.13146,0.21129,0.14476,0.19798,0.17137,0.13146,0.13146,0.17137,0.13146,-0.20118,-0.21448,-0.21448,-0.21448,-0.17457,-0.28101,-0.28101,-0.28101,-0.2677,-0.28101 0.21643,0.31663,0.288,0.31663,0.30231,0.15917,0.15917,0.10192,0.14486,0.14486,-0.055538,0.0017177,-0.02691,-0.055538,0.030346,-0.14142,-0.11279,-0.15574,-0.12711,-0.15574,-0.24162,-0.27025,-0.24162,-0.3275,-0.27025 -0.12574,-0.18861,-0.20433,-0.23576,-0.34578,-0.078587,-0.14146,-0.18861,-0.20433,-0.2672,0.094304,-0.094304,-0.062869,0,-0.078587,0.17289,0.17289,0.11002,0.094304,0.11002,0.3615,0.29863,0.29863,0.23576,0.2672 0.28727,0.26317,0.2399,0.22162,0.20167,0.29059,0.2615,0.24821,0.22162,0.19918,-0.15899,-0.15567,-0.15899,-0.15483,-0.13572,-0.17229,-0.15234,-0.14985,-0.154,-0.15483,-0.17977,-0.17893,-0.17727,-0.17312,-0.1781 -0.24943,-0.23591,-0.25188,-0.231,-0.24328,-0.24697,-0.2396,-0.24328,-0.24083,-0.25311,0.12164,0.14376,0.16465,0.19045,0.19659,0.12164,0.13884,0.16833,0.18922,0.19045,0.1241,0.14007,0.16833,0.19045,0.18676 0.3928,-0.06675,-0.10451,-0.1174,-0.14687,0.3928,-0.073197,-0.10451,-0.11556,-0.12753,0.39649,-0.050173,-0.11096,-0.11556,-0.12293,0.39833,-0.04649,-0.10359,-0.11648,-0.12845,0.40293,-0.039122,-0.089774,-0.099905,-0.10359 -0.2434,-0.2434,-0.24287,-0.24287,-0.2434,-0.24553,-0.24446,-0.24446,-0.24393,-0.24446,0.20241,0.18779,0.17423,0.16041,0.14579,0.19656,0.11176,0.16732,0.15403,0.14233,0.18486,0.17423,0.15934,0.14392,0.13382 0.24322,0.24322,0.24116,0.24188,0.24395,0.24446,0.24694,0.24746,0.24581,0.25128,-0.16268,-0.16309,-0.1634,-0.16371,-0.1634,-0.16371,-0.16351,-0.1633,-0.16392,-0.16392,-0.16289,-0.16351,-0.16289,-0.16258,-0.16289 -0.24655,-0.13448,-0.05043,0.20172,0.22974,-0.30258,-0.19051,0.061636,0.14569,0.28577,-0.3306,-0.24655,0.089653,0.061636,0.28577,-0.10646,-0.21853,-0.10646,0.20172,0.1737,-0.19051,-0.10646,0.0056033,0.14569,0.3418 0.39718,-0.063694,-0.092293,-0.11392,-0.13446,0.39755,-0.055995,-0.093026,-0.10953,-0.12896,0.39645,-0.057828,-0.093393,-0.11649,-0.12822,0.39718,-0.062961,-0.090093,-0.11429,-0.13629,0.39755,-0.061494,-0.093026,-0.11099,-0.12896 0.24655,0.27655,0.33654,0.30654,0.29154,0.11158,0.15657,0.12658,0.17157,0.11158,-0.05339,-0.0083984,-0.023395,-0.023395,0.021596,-0.17337,-0.11338,-0.11338,-0.12838,-0.17337,-0.23335,-0.26335,-0.23335,-0.32334,-0.29334 -0.12035,-0.16933,-0.17632,-0.16233,-0.16233,-0.14834,-0.17632,-0.15533,-0.12035,-0.16233,-0.16233,-0.11335,-0.12734,-0.14834,-0.13434,0.10355,0.10355,0.096558,0.096558,0.11055,0.29247,0.42541,0.34145,0.32046,0.34845 0.24475,0.24475,0.24519,0.24519,0.24519,0.24464,0.24497,0.24475,0.24454,0.24551,-0.1637,-0.16532,-0.16424,-0.16326,-0.16055,-0.16391,-0.16305,-0.1638,-0.1624,-0.1638,-0.16315,-0.16337,-0.16283,-0.16305,-0.16305 -0.31557,-0.066911,0.046115,0.06872,0.20435,-0.13473,-0.27036,0.06872,0.13654,0.24956,-0.27036,-0.089517,-0.089517,0.15914,0.38519,-0.33817,-0.20254,0.023509,0.13654,0.27217,-0.20254,-0.20254,0.046115,0.18175,0.20435 0.26349,0.26409,-0.094209,-0.11272,-0.14736,0.2617,0.2623,-0.095404,-0.10914,-0.18199,0.25872,0.25872,-0.098987,-0.10257,-0.21902,0.25693,-0.088238,-0.093015,-0.2226,-0.22141,0.25454,0.25752,-0.10018,-0.22738,-0.22379 0.31913,0.2117,-0.16149,-0.1728,-0.17845,0.30782,0.23997,-0.12191,-0.13887,-0.1728,0.31913,0.24562,-0.12191,-0.15018,-0.17845,0.29086,0.26824,-0.14452,-0.14452,-0.1728,0.030759,0.10427,-0.14452,-0.14452,-0.18976 -0.26879,-0.25631,-0.24522,-0.23135,-0.23412,-0.24106,-0.24938,-0.22858,-0.2369,-0.2466,0.19297,0.19574,0.19158,0.18326,0.12641,0.16939,0.16523,0.17771,0.1791,0.13057,0.14443,0.14443,0.14166,0.14305,0.15275 0.23775,0.2402,0.24233,0.25572,0.25673,0.23641,0.23775,0.24367,0.24456,0.25371,-0.16279,-0.16279,-0.1619,-0.16246,-0.16268,-0.16302,-0.16335,-0.16346,-0.16313,-0.16346,-0.16391,-0.16391,-0.16402,-0.1638,-0.16413 0.070744,0.10899,0.10717,0.06528,-0.41193,0.061637,0.11628,0.083494,0.043423,-0.38643,0.098066,0.15817,0.10171,0.032494,-0.36276,0.18003,0.13267,0.07803,0.025209,-0.40465,0.16728,0.15089,0.14178,0.032494,-0.39008 0.40252,-0.06825,-0.1256,-0.12082,-0.10649,0.39536,-0.0085074,-0.1256,-0.11843,-0.1256,0.4073,-0.020456,-0.12082,-0.12321,-0.10888,0.38819,-0.058691,-0.10888,-0.11127,-0.11366,0.38341,-0.07542,-0.11604,-0.10649,-0.11366 -0.30449,-0.3114,-0.3114,-0.29067,-0.30449,-0.15245,-0.15936,-0.14554,-0.17318,-0.16627,0.17927,0.19309,0.1689,0.16544,0.054871,0.19309,0.19309,0.20345,0.19654,-0.00041465,0.18272,0.1689,0.1689,0.1689,0.082514 -0.2455,-0.24215,-0.2388,-0.24598,-0.2455,-0.24598,-0.24167,-0.24024,-0.24406,-0.24263,0.15113,0.15209,0.17888,0.18175,0.16501,0.15687,0.15592,0.17075,0.18558,0.16548,0.1784,0.16357,0.18367,0.057834,0.18558 0.14293,0.1577,0.11506,-0.23108,-0.33012,0.14964,0.15972,0.11708,-0.23276,-0.31031,0.17919,0.16106,0.12379,0.032808,-0.31401,0.17315,0.15904,0.11943,0.035494,-0.32475,0.16576,0.1671,0.12178,-0.23074,-0.30696 0.2007,0.18674,-0.10867,-0.22038,-0.22898,0.1674,0.18996,-0.010914,-0.21071,-0.2279,0.21144,0.26515,0.12658,-0.15163,-0.19568,0.25226,0.26623,-0.17419,-0.17204,-0.1656,0.25012,0.28234,-0.18923,-0.18493,-0.15808 -0.29232,-0.017583,0.16557,0.16557,0.2022,-0.31063,-0.12748,0.092311,0.16557,0.18389,-0.29232,-0.090846,0.019048,0.16557,0.18389,-0.34726,-0.16411,0.12894,0.16557,0.25715,-0.32895,-0.25569,0.073995,0.05568,0.2022 0.25725,0.18865,0.1372,-0.085749,-0.343,0.1715,0.1372,0.2401,0.01715,-0.2744,0.2058,0.15435,0.068599,-0.1029,-0.2401,0.15435,0.15435,0.068599,-0.25725,-0.3773,0.12005,0.085749,0.05145,-0.2058,-0.32585 -0.18652,-0.30795,-0.23509,-0.2108,-0.18652,-0.18652,-0.16223,-0.18652,-0.18652,-0.23509,-0.065087,0.0077716,0.0077716,0.032058,0.056344,0.15349,0.056344,0.15349,0.15349,0.032058,0.32349,0.34778,0.22635,0.37206,0.22635 -0.16467,-0.16467,-0.1632,-0.16408,-0.16408,-0.16172,-0.16201,-0.1629,-0.1632,-0.16261,-0.16261,-0.1632,-0.16113,-0.16024,-0.16054,0.24367,0.22624,0.22713,0.25963,0.3075,0.23422,0.22269,0.22151,0.27174,0.22653 0.13731,0.09456,0.10739,0.030437,-0.20468,0.16296,0.12021,0.09456,-0.06361,-0.2859,0.17151,0.18006,0.14158,-0.067885,-0.33293,0.20143,0.15013,0.10739,-0.26025,-0.34575,0.21426,0.18433,0.13303,-0.31583,-0.3543 0.25842,0.25369,0.23362,0.22653,0.21709,0.26196,0.2596,0.25487,0.24425,0.23598,-0.1537,-0.16197,-0.15842,-0.1537,-0.15134,-0.16315,-0.16669,-0.16433,-0.16669,-0.16197,-0.17732,-0.16433,-0.16905,-0.17023,-0.16315 0.24558,0.24961,0.24165,0.23379,0.2351,0.2482,0.25143,0.25495,0.23449,0.25395,-0.1623,-0.1622,-0.1623,-0.1623,-0.16311,-0.16311,-0.16301,-0.16301,-0.16381,-0.16351,-0.16341,-0.16402,-0.16412,-0.16412,-0.16442 -0.2815,-0.14396,0.062351,0.085274,0.36035,-0.2815,-0.25857,-0.075188,0.062351,0.17697,-0.21273,-0.16688,0.062351,0.062351,0.15404,-0.2815,-0.14396,0.062351,0.13112,0.31451,-0.16688,-0.16688,0.039428,0.24574,0.36035 0.26132,0.24578,0.24792,0.23077,0.23453,0.25811,0.24685,0.24685,0.24364,0.23238,-0.16314,-0.16475,-0.16528,-0.15456,-0.16743,-0.16421,-0.16421,-0.1626,-0.16743,-0.16421,-0.15939,-0.16314,-0.1626,-0.15939,-0.16582 0.25917,0.26179,-0.14464,-0.16947,-0.18123,0.25917,-0.10413,-0.11328,-0.1747,-0.18254,0.25917,0.26179,-0.015264,-0.14856,-0.19561,0.2644,0.25525,-0.057083,-0.17731,-0.19822,0.26179,0.2644,-0.10544,-0.17862,-0.20084 -0.25243,-0.25232,-0.25243,-0.25254,-0.25209,-0.25232,-0.25243,-0.25367,-0.17329,-0.17114,0.17054,0.1693,0.18467,0.18422,-0.073451,0.17156,0.1693,0.17518,0.18207,0.17201,0.17122,0.16941,0.16884,0.1823,0.16749 -0.18291,-0.15562,-0.15952,0.21862,0.22642,-0.17122,-0.18291,-0.14003,0.26151,0.26151,-0.17902,-0.14783,-0.15562,0.19913,0.2693,-0.18681,-0.15952,-0.13223,0.19523,0.2849,-0.15952,-0.18291,-0.13613,0.23422,0.281 0.222,0.24552,0.12793,-0.20131,-0.29537,0.057381,0.17497,0.17497,-0.27186,-0.22482,0.19848,0.222,0.010347,-0.27186,-0.22482,0.15145,0.17497,0.222,-0.20131,-0.22482,0.12793,0.15145,0.080898,-0.13075,-0.29537 -0.1725,-0.18202,-0.17726,-0.20582,-0.19154,-0.13918,-0.1725,-0.1725,-0.19154,-0.19154,-0.048742,-0.091581,-0.096341,-0.077301,-0.020182,0.036937,0.032177,0.055977,0.10834,0.18449,0.29397,0.28921,0.34633,0.39393,0.38917 0.26408,0.020256,-0.11854,-0.14479,-0.14855,0.26033,0.076523,-0.11478,-0.13729,-0.1748,0.21532,0.10278,-0.12229,-0.14855,-0.16355,0.36911,0.054016,-0.084776,-0.1598,-0.1748,0.57918,0.14779,-0.084776,-0.14479,-0.1673 0.23575,0.24902,0.23045,0.22868,0.25609,0.27731,0.2499,0.23575,0.2331,0.24902,-0.15063,-0.14797,-0.15063,-0.15416,-0.15328,-0.16477,-0.16919,-0.16831,-0.17627,-0.18069,-0.15328,-0.16124,-0.17185,-0.17361,-0.16919 -0.30689,-0.3249,-0.36092,-0.28888,-0.28888,-0.12679,-0.1448,-0.072761,-0.10878,-0.18082,-0.0007204,0.08933,0.0353,0.05331,0.07132,0.26943,0.19739,0.14336,0.23341,0.2154,0.2154,0.12535,0.19739,0.19739,0.16137 0.30727,0.13169,0,-0.15363,-0.28532,0.28532,-0.043895,-0.043895,-0.19753,-0.32921,0.19753,0.10974,0.065843,-0.065843,-0.21948,0.32921,0.13169,0.021948,-0.10974,-0.24142,0.15363,0.39506,-0.10974,-0.15363,-0.17558 -0.15511,-0.15511,-0.15745,-0.15453,-0.15686,-0.15424,-0.15686,-0.15511,-0.15686,-0.15686,-0.15657,-0.14929,-0.15424,-0.15599,-0.15162,0.24753,0.10681,0.25015,0.10827,0.09836,0.24403,0.24782,0.25219,0.37689,0.39466 0.23794,0.17707,0.17707,0.15098,0.12488,0.23794,0.19446,0.13358,0.14228,0.11619,0.17707,0.16837,0.14228,0.12488,0.098795,-0.22298,-0.21429,-0.23168,-0.1795,-0.20559,-0.28386,-0.27516,-0.28386,-0.22298,-0.28386 0.32114,0.29429,0.33904,0.17794,0.11528,0.30324,0.28534,0.15108,0.16899,0.15108,-0.010025,-0.027926,-0.12638,-0.15323,-0.14428,-0.17113,-0.18008,-0.18903,-0.18903,-0.18903,-0.18008,-0.20694,-0.18008,-0.18903,-0.17113 -0.24295,-0.24152,-0.24438,-0.24045,-0.24009,-0.2451,-0.24081,-0.24259,-0.24259,-0.24045,0.15039,0.14718,0.1654,0.17147,0.1361,0.14182,0.13753,0.2565,0.16754,0.1311,0.14468,0.13432,0.14611,0.25686,0.13396 0.25854,0.23917,0.2472,0.2472,0.24578,0.26043,0.23302,0.24295,0.23586,0.23822,-0.16666,-0.16571,-0.16288,-0.16146,-0.15957,-0.15957,-0.16099,-0.16335,-0.17327,-0.15863,-0.16288,-0.16146,-0.16382,-0.1624,-0.16571 -0.20825,-0.23442,-0.077441,0.15802,0.23651,-0.20825,-0.025116,-0.051279,0.26267,0.18418,-0.33907,-0.051279,0.027209,0.21035,0.21035,-0.18209,-0.18209,0.027209,0.13186,0.28884,-0.36523,-0.18209,-0.1036,0.21035,0.26267 0.25906,0.27202,0.27202,0.24611,0.32383,0.064766,0.15544,0.1943,0.16839,0.18134,0.012953,-0.012953,0.03886,-0.03886,-0.025906,-0.1943,-0.12953,-0.1943,-0.090672,-0.16839,-0.31088,-0.23316,-0.27202,-0.25906,-0.25906 0.088724,0.081744,0.046847,-0.071806,-0.30213,0.088724,0.094308,0.088724,-0.021553,-0.33982,0.12781,0.12781,0.11106,-0.045283,-0.37332,0.23529,0.17667,0.13339,-0.11368,-0.35657,0.28974,0.21156,0.17667,-0.066222,-0.38868 0.22743,0.22743,0.027429,-0.11543,-0.17257,0.22743,0.11314,-0.11543,-0.144,-0.11543,0.31315,0.17029,-0.144,-0.029715,-0.25829,0.37029,0.11314,-0.029715,-0.144,-0.40115,0.256,0.027429,-0.086859,0.027429,-0.34401 0.41332,0.41332,0.38732,0.37865,0.35264,0.023232,-0.063455,-0.02878,-0.046117,-0.037449,-0.063455,-0.1328,-0.12414,-0.14147,-0.1068,-0.080792,-0.12414,-0.1328,-0.16748,-0.1328,-0.037449,-0.12414,-0.16748,-0.12414,-0.1328 0.09638,0.09638,0.09638,0.06326,-0.38387,0.06326,0.12122,0.12122,0.06326,-0.43355,0.12122,0.12122,0.12122,0.03842,-0.38387,0.1709,0.14606,0.14606,0.0467,-0.38387,0.09638,0.09638,0.12122,0.021859,-0.38387 -0.24125,-0.24125,0.16711,0.1357,0.22994,-0.33548,-0.052773,-0.052773,0.1357,0.22994,-0.14701,-0.1156,-0.052773,0.1357,0.16711,-0.30407,-0.1156,0.010052,0.16711,0.32418,-0.3669,-0.14701,0.072877,0.072877,0.32418 0.24806,0.24582,-0.11388,-0.11388,-0.19381,0.25255,0.25105,-0.11463,-0.18634,-0.19568,0.2645,0.26151,-0.11463,-0.11313,-0.19493,0.27944,0.28205,-0.11164,-0.11313,-0.19531,0.2828,-0.11612,-0.10902,-0.18522,-0.19643 0.24129,0.24129,0.24445,0.24761,0.24972,0.2455,0.24129,0.24656,0.24234,0.24866,-0.16009,-0.16535,-0.16219,-0.1643,-0.14639,-0.1643,-0.16009,-0.16851,-0.1643,-0.17378,-0.16535,-0.16114,-0.15903,-0.16219,-0.17167 -0.3083,-0.19495,-0.013601,0.19042,0.077074,-0.35363,-0.10428,-0.081608,0.21309,0.19042,-0.3083,-0.03627,0.099743,0.19042,0.28109,-0.28563,-0.10428,0.054405,0.14508,0.32643,-0.17228,-0.19495,-0.013601,0.14508,0.25842 -0.32951,-0.17696,-0.27866,-0.30408,-0.30408,-0.049833,-0.12611,-0.10068,-0.10068,-0.12611,-0.075258,-0.10068,-0.049833,-0.024408,0.001017,0.15357,0.10272,0.15357,0.22984,0.12814,0.20442,0.20442,0.33154,0.30612,0.33154 0.2748,0.22764,0.22764,0.22764,0.24336,0.21192,0.13331,0.21192,0.21192,0.070429,-0.0081748,0.023267,0.070429,0.023267,0.007546,-0.11822,-0.11822,-0.11822,-0.14966,-0.13394,-0.30687,-0.32259,-0.32259,-0.25971,-0.30687 0.22342,0.18542,0.18542,0.22342,0.22342,0.14743,0.26142,0.14743,0.18542,0.16643,0.033437,0.014439,0.033437,0.20442,0.033437,-0.21354,-0.19454,-0.19454,-0.19454,-0.080553,-0.30853,-0.27054,-0.30853,-0.30853,-0.19454 0.11644,0.18743,0.045439,-0.096557,-0.3628,0.22293,0.18743,0.080938,-0.096557,-0.4693,0.20518,0.15194,0.0099397,-0.11431,-0.3628,0.18743,0.098687,0.098687,-0.043309,-0.3628,0.20518,0.15194,0.080938,0.0099397,-0.13206 -0.25819,-0.32501,-0.16464,-0.25819,-0.27155,-0.25819,-0.16464,-0.19137,-0.13791,-0.178,-0.071095,0.075906,0.08927,0.10263,0.08927,0.10263,0.116,0.12936,0.10263,0.12936,0.16945,0.31645,0.30309,0.28973,0.263 -0.28694,-0.13267,0.14694,0.18551,0.18551,-0.29659,-0.18088,0.098733,0.19515,0.20479,-0.2773,-0.15196,0.021598,0.18551,0.14694,-0.393,-0.12303,0.089091,0.17587,0.14694,-0.26766,-0.20981,0.15658,0.19515,0.18551 -0.20593,-0.16024,-0.038384,0.20532,0.28148,-0.17547,-0.11454,-0.068847,0.28148,0.29671,-0.17547,-0.20593,-0.038384,0.12917,0.37287,-0.1907,-0.20593,-0.12977,0.037775,0.29671,-0.25163,-0.11454,-0.11454,-0.0079205,0.29671 -0.34863,-0.11307,-0.05418,0.12249,0.29917,-0.14252,-0.23085,-0.083625,0.063602,0.24027,-0.14252,-0.05418,0.0047113,0.21083,0.29917,-0.37808,-0.11307,0.0047113,0.18138,0.21083,-0.31919,-0.14252,0.034157,0.24027,0.21083 -0.24096,-0.24188,-0.24142,-0.2451,-0.2405,-0.23728,-0.23774,-0.23176,-0.24142,-0.2359,0.16926,0.13293,0.099354,0.10303,0.12465,0.12649,0.12097,0.13385,0.17018,0.25342,0.12649,0.14074,0.16282,0.26767,0.26215 0.14072,0.14476,0.14678,-0.24508,-0.24351,0.14521,0.21097,0.21254,-0.24306,-0.24419,0.14162,0.14992,0.21187,-0.24239,-0.24306,0.14027,0.14162,0.21164,-0.24194,-0.24329,0.14252,0.14431,0.14813,-0.24239,-0.24396 0.38352,0.33363,-0.10536,-0.14527,-0.2151,0.38352,0.18398,-0.045495,-0.12531,-0.23506,0.35358,0.10416,-0.065449,-0.14527,-0.1752,0.27377,-0.035518,-0.045495,-0.15524,-0.19515,0.064252,0.024344,-0.055472,-0.13529,-0.22508 0.5333,0.13912,0.046374,-0.16231,-0.13912,0.23187,0.092748,-0.11593,-0.23187,-0.20868,0.25506,0.13912,0,-0.023187,-0.20868,0.32462,0,-0.046374,-0.13912,-0.20868,0.25506,-0.023187,-0.046374,-0.25506,-0.20868 0.2418,0.24409,0.24547,0.24395,0.24386,0.085253,0.24092,0.2423,0.24175,0.24244,0.021607,0.08438,-0.15207,-0.15298,-0.15349,-0.1517,-0.15216,-0.1523,-0.1534,-0.15372,-0.23128,-0.2311,-0.23128,-0.2311,-0.23128 0.36031,0.18874,-0.068631,-0.15442,-0.11153,0.42465,0.12439,-0.13297,-0.17587,-0.11153,0.36031,0.21018,-0.13297,-0.17587,-0.15442,0.23163,0.10295,-0.11153,-0.21876,-0.13297,0.23163,-0.025737,-0.17587,-0.19731,-0.15442 -0.25202,-0.21009,-0.18912,-0.18912,-0.1996,-0.12622,-0.1367,-0.12622,-0.12622,-0.10525,-0.073803,-0.11574,-0.042353,-0.052837,-0.042353,-0.00041934,-0.00041934,0.020548,0.041514,0.10442,0.3665,0.3665,0.37698,0.37698,0.33505 0.26834,0.22189,0.15714,-0.15675,-0.23838,0.26693,0.205,0.14869,-0.1666,-0.32847,0.2613,-0.06244,-0.058217,-0.15815,-0.19616,0.27397,-0.055402,-0.076515,-0.17082,-0.20179,0.26834,0.22189,-0.017397,-0.15534,-0.25105 0.15242,0.13483,0.10648,0.067375,-0.39013,0.15633,0.14069,0.1231,0.076173,-0.3872,0.14069,0.11332,0.10159,0.082038,-0.40479,0.12505,0.10843,0.064442,0.020451,-0.39893,0.091814,0.056621,0.076173,0.033159,-0.39013 -0.2833,-0.15174,-0.23945,0.16621,0.24295,-0.23945,-0.15174,-0.031137,0.089463,0.21006,-0.19559,-0.12981,-0.064028,0.24295,0.27585,-0.18463,-0.18463,-0.031137,0.24295,0.28681,-0.12981,-0.21752,-0.064028,0.26488,0.27585 -0.14592,-0.14592,-0.14592,-0.13732,-0.13732,-0.1115,-0.12871,-0.1072,-0.14592,-0.14592,-0.085694,-0.081392,-0.081392,-0.059882,-0.098599,-0.05558,0.00034415,-0.0082596,-0.038373,-0.05558,0.46495,0.43914,0.43914,0.3488,0.22404 0.44874,0.44756,0.38869,0.34866,0.32511,-0.035181,-0.032826,-0.04931,-0.042246,-0.039891,-0.089342,-0.089342,-0.091697,-0.097584,-0.097584,-0.11642,-0.11878,-0.12113,-0.11996,-0.12113,-0.13997,-0.14586,-0.13526,-0.13997,-0.13526 -0.26193,-0.21306,0.080142,0.12901,0.27561,-0.18863,-0.13976,-0.090893,0.055709,0.34891,-0.3841,-0.16419,0.055709,0.0068414,0.30004,-0.21306,-0.21306,-0.066459,0.17788,0.25118,-0.16419,-0.017592,-0.017592,0.15344,0.30004 -0.25205,-0.25425,-0.24544,-0.23222,-0.25425,-0.24103,-0.23663,-0.22782,-0.25425,-0.24544,0.17317,0.17538,0.1886,0.18419,0.193,0.15775,0.15555,0.15996,0.16657,0.16436,0.13572,0.14674,0.14453,0.15114,0.14674 0.26321,0.27107,0.24857,0.24714,0.24535,0.25928,0.26107,0.25035,0.25,0.13712,-0.16614,-0.16614,-0.16721,-0.15614,-0.15828,-0.16043,-0.1615,-0.16007,-0.16221,-0.16293,-0.16185,-0.16221,-0.16328,-0.16185,-0.16293 -0.33654,-0.39235,-0.33654,-0.32259,-0.32259,-0.071438,-0.043533,-0.085391,-0.12725,-0.085391,0.082042,0.082042,0.082042,0.054137,0.040184,0.16576,0.10995,0.082042,0.16576,0.17971,0.15181,0.20762,0.27738,0.19366,0.24948 -0.20083,-0.24087,-0.25544,-0.23359,-0.26272,-0.15714,-0.14985,-0.1535,-0.18262,-0.12437,-0.03699,-0.095243,-0.029709,-0.066117,0.006699,0.068592,0.19966,0.26884,0.15233,0.12685,0.17053,0.20694,0.45452,0.27976,0.25427 -0.18041,-0.17311,-0.12635,0.24183,0.24622,-0.17749,-0.18187,-0.14096,0.24037,0.24622,-0.17749,-0.18187,-0.12927,0.24037,0.24914,-0.17749,-0.17018,-0.1322,0.24476,0.2433,-0.17457,-0.17311,-0.14535,0.24476,0.24476 0.11649,0.11226,-0.063673,-0.13574,-0.23324,0.12497,0.12073,-0.093348,-0.1527,-0.22476,0.15041,0.2034,-0.040358,-0.15694,-0.21205,0.38145,0.3221,-0.076391,-0.1527,-0.21629,0.36449,0.33058,-0.095468,-0.14846,-0.22476 -0.18527,-0.18527,-0.15245,0.23491,0.24475,-0.19184,-0.16886,-0.080228,0.22834,0.22506,-0.18856,-0.17543,-0.053967,0.22178,0.24475,-0.18527,-0.17214,-0.15573,0.24475,0.24475,-0.18199,-0.18856,-0.15245,0.25132,0.27758 0.30491,0.12764,0.061159,-0.0053182,-0.27123,0.32707,-0.027477,0.1498,-0.13827,-0.29339,0.30491,0.016841,0.083318,-0.049636,-0.3377,0.17195,0.17195,-0.049636,-0.049636,-0.38202,0.19411,0.12764,-0.093954,-0.049636,-0.29339 -0.14083,-0.16672,-0.011391,0.09216,0.29926,-0.24438,-0.063166,-0.14083,0.09216,0.16982,-0.27027,-0.063166,-0.063166,0.09216,0.35104,-0.24438,-0.16672,0.040385,0.11805,0.40281,-0.34793,-0.089053,-0.037278,0.040385,0.35104 -0.16494,-0.16494,-0.16416,-0.16532,-0.16416,-0.16338,-0.16182,-0.16416,-0.16532,-0.16532,-0.1591,-0.1591,-0.16027,-0.16182,-0.16104,0.24589,0.24861,0.25522,0.25133,0.29413,0.2311,0.23149,0.23032,0.22877,0.22799 0.18318,0.16327,0.18318,0.12345,0.17322,0.16327,0.18318,0.1334,0.17322,0.15331,0.17322,0.15331,0.14336,0.17322,0.15331,-0.22499,-0.22499,-0.19512,-0.21503,-0.19512,-0.27477,-0.25486,-0.29468,-0.27477,-0.27477 0.10925,0.1277,0.16,0.013902,-0.30751,0.13385,0.14,0.16,-0.10605,-0.31058,0.14,0.14769,0.17999,-0.06299,-0.33519,0.17999,0.20921,0.17845,-0.13527,-0.37056,0.092332,0.092332,0.15385,-0.21831,-0.3721 -0.19084,-0.14477,-0.096139,-0.02191,0.38635,-0.18956,-0.14477,-0.08974,0.071515,0.36715,-0.19596,-0.13325,-0.080781,0.008805,0.35691,-0.20108,-0.13197,-0.061584,0.052318,0.35563,-0.19468,-0.11662,-0.052625,0.076634,0.37099 -0.19219,-0.18002,0.1218,0.11936,0.36762,-0.236,-0.13134,0.082852,0.097456,0.28244,-0.2506,-0.19219,0.068248,0.056078,0.29704,-0.29928,-0.21409,0.031739,0.024437,0.28244,-0.33579,-0.031544,-0.021808,-0.012072,0.2654 -0.25228,-0.2563,-0.25228,-0.25148,-0.25228,-0.23379,-0.23137,-0.22655,-0.22494,-0.22172,0.21252,0.18759,0.17634,0.16186,0.064558,0.21896,0.18277,0.1691,0.15382,0.0726,0.21574,0.18599,0.1699,0.15704,0.074208 0.21524,0.21813,-0.19589,-0.19789,-0.19808,0.21833,0.19297,-0.19847,-0.19937,-0.20046,0.22637,0.22843,-0.19866,-0.20027,-0.20104,0.23107,0.23454,0.10629,-0.19995,-0.20008,0.23403,0.23609,0.095417,-0.046151,-0.20059 0.21963,-0.088704,-0.10353,-0.12132,-0.12725,0.38565,-0.076845,-0.10056,-0.11835,-0.10946,0.41233,-0.085739,-0.12132,-0.11835,-0.13317,0.42123,0.02692,-0.10946,-0.13614,-0.13614,0.44494,0.13661,-0.10353,-0.13021,-0.12725 -0.39974,-0.31771,-0.34506,-0.2767,-0.2767,-0.12632,-0.057965,-0.085307,-0.15366,-0.11265,-0.003281,-0.003281,0.065074,0.078745,0.078745,0.17444,0.20178,0.20178,0.20178,0.18811,0.10609,0.21546,0.20178,0.18811,0.25647 0.21701,0.22423,-0.18055,-0.17311,-0.16205,0.21318,0.21859,-0.18236,-0.18191,-0.17265,0.21228,0.21589,-0.18394,-0.17897,-0.16543,0.27184,0.22965,-0.18123,-0.18078,-0.17311,0.2671,0.23484,0.1667,-0.18033,-0.17491 -0.16247,-0.16186,-0.16431,-0.16431,-0.16369,-0.16002,-0.16186,-0.16124,-0.16186,-0.16247,-0.16002,-0.16124,-0.16002,-0.16124,-0.16186,0.30225,0.22654,0.29643,0.2063,0.19833,0.28202,0.22592,0.22163,0.28294,0.18607 0.23718,0.23783,0.23783,0.2362,0.23522,0.2538,0.25217,0.25412,0.25217,0.25217,-0.1617,-0.16235,-0.16268,-0.16105,-0.1617,-0.16463,-0.16268,-0.16431,-0.16366,-0.16463,-0.16496,-0.16268,-0.16268,-0.16496,-0.16398 0.41422,0.39325,0.38562,0.39325,0.38562,-0.056658,-0.054751,-0.064283,-0.031875,-0.024249,-0.12147,-0.12147,-0.11385,-0.083347,-0.041407,-0.13101,-0.11385,-0.1291,-0.1291,-0.12147,-0.12719,-0.12529,-0.12529,-0.13101,-0.12529 -0.24706,-0.24706,0.00094479,0.28438,0.33162,-0.1762,-0.16439,-0.034485,0.26076,0.29619,-0.19982,-0.19982,-0.10534,0.26076,0.27257,-0.16439,-0.14077,-0.10534,0.024565,0.22533,-0.19982,-0.1762,-0.093534,0.095424,0.20171 0.4572,0.19073,-0.071058,-0.10378,-0.14118,0.38708,0.041139,-0.13651,-0.12716,-0.13651,0.4011,0.022439,-0.11781,-0.13651,-0.11781,0.35435,-0.057033,-0.15053,-0.15988,-0.12248,0.22346,-0.089757,-0.12716,-0.14585,-0.13651 0.23287,0.21546,-0.18087,-0.18087,-0.17692,0.23524,0.21309,-0.16901,-0.18087,-0.17692,0.23999,0.21783,-0.16505,-0.18483,-0.17929,0.23524,0.22258,-0.16743,-0.18087,-0.17613,0.24552,0.21783,0.2036,-0.18167,-0.1785 0.23763,0.1119,-0.17099,-0.13956,-0.26529,0.23763,0.14333,0.017602,-0.20242,-0.32815,0.2062,0.33192,-0.01383,-0.13956,-0.20242,0.33192,-0.01383,0.14333,-0.10813,-0.23386,0.26906,0.14333,-0.10813,0.017602,-0.26529 0.31563,0.28383,0.24931,0.19843,0.16754,0.31472,0.27475,0.23931,0.19752,0.17026,-0.14501,-0.14591,-0.1441,-0.13501,-0.14046,-0.17044,-0.16772,-0.16499,-0.16772,-0.17044,-0.17408,-0.16954,-0.16772,-0.17408,-0.17408 0.24577,0.082358,0.082358,-0.1791,-0.24446,0.24577,0.082358,-0.1791,-0.14641,-0.1791,0.37649,0.14772,-0.015687,-0.14641,-0.1791,0.24577,0.14772,-0.015687,-0.24446,-0.37519,0.24577,0.082358,0.24577,-0.14641,-0.1791 0.39442,0.19543,0.01066,-0.1599,-0.25939,0.16701,0.36599,-0.039086,-0.16701,-0.24518,0.15279,0.24518,-0.1066,-0.20254,-0.25228,0.13503,0.099492,0.071066,-0.18122,-0.28426,0.24518,0.0533,0.046193,-0.071066,-0.2132 0.23532,0.23664,0.24375,0.24929,0.2593,0.23256,0.23387,0.24744,0.24968,0.26049,-0.16256,-0.16308,-0.16295,-0.16348,-0.16308,-0.16321,-0.16282,-0.16282,-0.16348,-0.16335,-0.16282,-0.16335,-0.16374,-0.16387,-0.16374 0.32869,0.34939,0.38044,0.34939,0.28729,0.08031,0.090659,0.11136,0.1631,0.090659,-0.13702,-0.10598,-0.10598,-0.10598,-0.05423,-0.18877,-0.13702,-0.18877,-0.13702,-0.19912,-0.19912,-0.17842,-0.19912,-0.15772,-0.13702 0.24427,0.23958,0.23713,0.23489,0.2637,0.2503,0.2407,0.23802,0.23601,0.26326,-0.16334,-0.16334,-0.16356,-0.15329,-0.15195,-0.16535,-0.1658,-0.16535,-0.16535,-0.1649,-0.16513,-0.16513,-0.16446,-0.16535,-0.16557 0.18143,0.18338,0.16973,-0.18713,-0.21443,0.18728,0.17558,0.17558,-0.19883,-0.22223,0.19508,0.18533,0.19313,-0.17933,-0.24563,0.20678,0.19313,-0.10913,-0.23588,-0.24953,0.21263,0.20678,-0.13448,-0.23588,-0.25343 0.18573,0.1869,0.18046,-0.20648,-0.26092,0.17988,0.18105,-0.16433,-0.19711,-0.26209,0.17929,0.17754,0.17695,-0.19711,-0.2498,0.16934,0.16758,0.16934,-0.20589,-0.25799,0.16758,0.17168,0.17168,-0.19536,-0.26794 0.14554,0.14554,0.11869,-0.19012,-0.32438,0.18582,0.07841,0.07841,-0.042427,-0.44522,0.13211,0.14554,0.13211,-0.13641,-0.32438,0.14554,0.19925,0.17239,-0.029001,-0.32438,0.14554,0.17239,0.10526,0.051557,-0.33781 0.38572,0.039679,-0.075667,-0.075667,-0.075667,0.45492,0.062748,-0.0064594,-0.21408,-0.19101,0.29344,0.039679,-0.12181,-0.052598,-0.16794,0.36265,0.039679,-0.075667,-0.19101,-0.12181,0.29344,0.01661,-0.19101,-0.23715,-0.19101 0.4005,0.39679,0.38193,0.32623,0.37079,0.18139,0.017975,-0.060016,-0.082299,-0.01545,-0.10087,-0.11944,-0.13058,-0.13058,-0.10458,-0.14172,-0.13058,-0.14172,-0.14172,-0.10458,-0.12315,-0.14172,-0.15286,-0.12687,-0.12687 0.11669,0.11073,0.12122,-0.10686,-0.31848,0.47536,0.17242,0.13335,-0.099045,-0.33247,0.14775,0.13952,0.087076,-0.12496,-0.29751,0.14445,0.1169,0.084608,-0.12085,-0.28743,0.14363,0.097565,0.075559,-0.16835,-0.31087 0.32588,0.14142,-0.012298,-0.19676,-0.35048,0.29514,0.14142,-0.073785,-0.043041,-0.19676,0.20291,0.04919,-0.043041,-0.043041,-0.073785,0.2644,0.04919,0.11068,-0.28899,-0.35048,0.20291,0.2644,0.04919,-0.13527,-0.28899 -0.3338,-0.0024101,-0.092788,0.14822,0.2386,-0.24342,-0.092788,-0.092788,0.20847,0.32898,-0.24342,-0.032536,0.057842,0.027716,0.2386,-0.3338,-0.15304,-0.032536,0.2386,0.2386,-0.24342,-0.24342,0.057842,0.087968,0.26872 0.23903,0.24614,0.22836,0.24258,0.22836,0.25325,0.25681,0.25325,0.25325,0.24614,-0.15935,-0.15579,-0.17002,-0.16646,-0.15579,-0.15935,-0.17002,-0.17002,-0.17714,-0.17002,-0.15935,-0.17358,-0.15579,-0.15224,-0.15224 0.22757,0.19282,0.18517,-0.17983,-0.17983,0.23458,0.2314,-0.17409,-0.1776,-0.17632,0.23331,0.2314,-0.17537,-0.17728,-0.17664,0.23331,0.23458,-0.17569,-0.17696,-0.17792,0.2365,0.23713,-0.17601,-0.17696,-0.17728 -0.31341,-0.24513,0.13895,0.16456,0.16456,-0.2622,-0.22806,0.10481,0.17309,0.16456,-0.27927,-0.17685,0.12188,0.18163,0.18163,-0.23659,-0.19392,0.15602,0.17309,0.18163,-0.27927,-0.20245,0.13042,0.18163,0.1987 -0.24192,-0.24224,-0.24287,-0.24256,-0.24224,-0.24112,-0.24064,-0.24192,-0.24224,-0.24176,0.22835,0.12383,0.11888,0.15511,0.15303,0.2317,0.12591,0.12575,0.1567,0.15607,0.24942,0.12734,0.15527,0.15543,0.1567 -0.23862,-0.25001,-0.23862,-0.23862,-0.25001,-0.25001,-0.073385,-0.022107,-0.090478,-0.17024,-0.090478,-0.056292,-0.067687,-0.090478,-0.14745,0.23998,0.15452,0.22859,0.21719,0.18301,0.2058,0.15452,0.22859,0.31405,0.34824 0.37566,0.37566,0.36942,0.39438,0.3819,-0.067395,0.0012481,0.032449,0.05117,0.063651,-0.14228,-0.14228,-0.161,-0.12356,-0.15476,-0.14228,-0.12356,-0.13604,-0.15476,-0.1298,-0.1298,-0.14228,-0.12356,-0.086116,-0.086116 0.30815,0.4004,0.33121,0.26202,0.23895,0.19282,0.16976,0.10056,0.16976,0.077498,-0.15315,-0.10702,-0.060891,-0.10702,-0.060891,-0.10702,-0.10702,-0.24541,-0.19928,-0.083956,-0.24541,-0.24541,-0.19928,-0.15315,-0.17621 0.3462,-0.063337,-0.11663,-0.11804,-0.12365,0.37144,-0.050715,-0.10962,-0.12084,-0.12084,0.39388,-0.050715,-0.10822,-0.10962,-0.11944,0.42053,-0.04791,-0.11102,-0.10962,-0.11383,0.44718,-0.054922,-0.10401,-0.11102,-0.11523 0.23388,0.23763,0.24287,0.24625,0.25224,0.23388,0.238,0.24587,0.24924,0.26836,-0.16037,-0.16524,-0.15924,-0.16187,-0.16224,-0.16074,-0.16261,-0.16224,-0.16449,-0.16299,-0.16299,-0.16524,-0.16486,-0.16711,-0.16599 0.33693,0.33693,0.28002,0.35116,0.35116,0.06659,0.023904,0.15196,0.15196,0.10928,-0.03301,-0.03301,-0.03301,-0.11838,-0.061467,-0.16107,-0.16107,-0.16107,-0.16107,-0.16107,-0.20375,-0.26067,-0.20375,-0.20375,-0.20375 -0.20251,-0.20251,-0.16916,0.21888,0.22191,-0.19644,-0.18432,-0.16007,0.231,0.2401,-0.19038,-0.18735,-0.12975,0.23707,0.23404,-0.16613,-0.16613,-0.05093,0.24616,0.24919,-0.16613,-0.1631,-0.078214,0.26132,0.27345 0.22577,0.22577,0.24715,0.26853,0.26853,0.22577,0.23646,0.23646,0.27922,0.21508,-0.19114,-0.15907,-0.14838,-0.14838,-0.094928,-0.20183,-0.16976,-0.19114,-0.15907,-0.15907,-0.20183,-0.18045,-0.14838,-0.11631,-0.15907 -0.23038,-0.052252,0.0071252,0.09619,0.27432,-0.171,-0.28976,0.066502,0.12588,0.27432,-0.26007,-0.08194,-0.11163,0.18526,0.3337,-0.28976,-0.052252,0.0071252,0.24463,0.18526,-0.31945,-0.23038,-0.052252,0.066502,0.27432 0.22155,-0.0058102,-0.13212,-0.13212,-0.13212,0.27207,-0.031072,-0.10686,-0.1637,-0.15107,0.34154,0.069976,-0.15107,-0.13212,-0.13212,0.46154,0.088922,-0.10054,-0.13212,-0.15107,0.49943,0.095238,-0.10686,-0.15107,-0.13844 0.23784,0.23891,0.24246,0.2414,0.24033,0.22612,0.24033,0.25543,0.25863,0.26645,-0.1612,-0.16085,-0.1612,-0.16191,-0.16085,-0.16351,-0.16369,-0.16369,-0.16405,-0.16334,-0.16422,-0.16511,-0.16476,-0.16476,-0.16476 0.22643,0.23409,0.20346,-0.19724,-0.19213,0.23664,0.22388,-0.10791,-0.19468,-0.13598,0.21112,0.21623,-0.11557,-0.16151,-0.16661,0.2392,0.21878,-0.2151,-0.18703,-0.21766,0.23154,0.21878,-0.17171,-0.18192,-0.2151 0.25015,0.12039,0.092185,0.097827,-0.28863,0.23887,0.12039,0.10347,0.021664,-0.29427,0.23605,0.11193,0.11193,-0.18426,-0.27452,0.23605,0.097827,0.089364,-0.28017,-0.29145,0.21348,0.10911,-0.065782,-0.27452,-0.29709 0.43893,-0.04095,-0.10493,-0.16892,-0.20091,0.34296,-0.0089578,-0.10493,-0.20091,-0.072942,0.37495,-0.04095,-0.10493,-0.16892,-0.13693,0.37495,0.11901,-0.10493,-0.10493,-0.072942,0.34296,-0.0089578,-0.072942,-0.072942,-0.20091 -0.2881,-0.2881,-0.40063,-0.24308,-0.33311,-0.040513,-0.17556,-0.15305,-0.063021,-0.040513,0.0045015,-0.018006,0.049516,-0.018006,0.027009,0.094531,0.13955,0.16205,0.11704,0.20707,0.22958,0.2971,0.25208,0.2971,0.18456 0.15723,0.16722,0.15723,0.17388,0.13394,0.21049,0.21049,0.20383,0.21715,0.21049,0.11064,0.10731,0.097323,0.12728,0.13394,-0.2455,-0.24883,-0.23219,-0.22886,-0.23552,-0.2455,-0.24883,-0.23552,-0.24883,-0.24883 0.23225,0.23491,-0.17397,-0.17597,-0.025591,0.23158,0.23491,-0.17397,-0.17264,-0.16832,0.2552,0.23657,-0.17231,-0.17264,-0.16466,0.25021,0.24855,-0.17563,-0.17297,-0.16931,0.25187,0.24788,-0.17098,-0.17231,-0.16266 -0.33292,-0.014554,-0.10552,0.12189,0.25833,-0.2647,-0.082775,-0.014554,0.12189,0.19011,-0.2647,-0.12826,-0.10552,0.32655,0.23559,-0.28744,-0.10552,-0.037294,0.19011,0.19011,-0.28744,-0.17374,0.076408,0.25833,0.23559 0.19701,0.21505,0.26015,0.3233,0.3233,0.16093,0.19701,0.17897,0.13387,0.11582,0.034639,0.025619,-0.028505,0.016598,-0.037526,-0.13675,-0.11871,-0.16381,-0.12773,-0.13675,-0.2901,-0.26304,-0.2901,-0.2901,-0.29912 0.17293,0.15357,0.22373,-0.12948,-0.33028,0.11728,0.14148,0.18986,-0.12464,-0.36414,0.078577,0.14148,0.15357,-0.042385,-0.3206,0.13422,0.093092,0.19228,-0.12706,-0.31334,0.14874,0.1197,0.17293,-0.10287,-0.37866 0.22505,0.19409,0.14645,-0.23944,-0.24182,0.24411,0.2584,0.20362,-0.218,-0.218,0.1655,0.21553,-0.10128,-0.21324,-0.22753,0.17027,0.19409,-0.13701,-0.21324,-0.22753,0.19885,0.19885,-0.0083848,-0.17513,-0.19418 -0.16605,-0.16261,-0.16123,-0.16467,-0.16536,-0.16123,-0.16467,-0.16467,-0.16467,-0.16536,-0.13855,-0.16467,-0.16261,-0.15848,-0.16123,0.23127,0.21064,0.21752,0.22989,0.30757,0.21339,0.21477,0.21339,0.24639,0.34125 -0.34973,-0.347,-0.347,-0.35519,-0.35519,-0.071387,-0.10413,-0.10413,-0.093217,-0.11505,0.14965,0.14146,0.15511,0.15784,0.14965,0.13328,0.14146,0.15238,0.14965,0.14146,0.15238,0.15511,0.16057,0.14965,0.15238 -0.24115,-0.11511,-0.22014,-0.30417,-0.22014,-0.11511,-0.15713,-0.19914,-0.15713,-0.15713,-0.073102,-0.031089,-0.052095,-0.11511,0.010923,0.22098,0.11595,0.15797,0.052936,0.073942,0.43105,0.34702,0.284,0.22098,0.24199 0.29201,0.25623,0.22044,0.23833,0.23833,0.22044,0.22044,0.14887,0.18466,0.14887,0.041512,-0.012167,-0.047953,-0.012167,-0.065846,-0.10163,-0.15531,-0.1911,-0.1732,-0.065846,-0.35213,-0.29846,-0.29846,-0.20899,-0.22688 -0.33381,-0.11201,-0.001109,0.10979,0.27614,-0.38926,0.026616,-0.084283,0.10979,0.35931,-0.27836,-0.084283,0.054341,0.082065,0.27614,-0.27836,-0.11201,0.082065,0.054341,0.13751,-0.27836,-0.084283,-0.001109,0.19296,0.27614 0.078685,0.083675,-0.14937,-0.15136,-0.15136,0.34316,0.25584,-0.16134,-0.15585,-0.15086,0.2728,0.26182,-0.15585,-0.16084,-0.16034,0.25384,0.24835,-0.15835,-0.16034,-0.16084,0.31173,0.25384,-0.15485,-0.16883,-0.16334 0.1402,0.15255,0.14432,0.16077,0.15666,0.15666,0.14843,0.15666,0.16489,0.16489,0.17311,0.15666,0.15666,0.15255,0.16077,-0.156,-0.16834,-0.1272,-0.13543,-0.13954,-0.34524,-0.31644,-0.32879,-0.29999,-0.32879 -0.32797,-0.24229,-0.07094,0.13468,0.17752,-0.3194,-0.22516,0.014736,0.19466,0.16895,-0.28513,-0.18232,0.066142,0.21179,0.19466,-0.24229,-0.088076,0.12612,0.22893,0.19466,-0.25086,-0.07094,0.18609,0.19466,0.21179 -0.27844,-0.16924,-0.36033,-0.27844,-0.22384,-0.19654,-0.19654,-0.16924,-0.25114,-0.11465,0.10373,-0.060055,0.049136,0.076433,0.15833,0.18562,0.15833,0.13103,0.15833,0.13103,0.29481,0.29481,0.13103,0.26752,0.15833 0.19371,0.16635,0.0021888,0.0021888,-0.3535,0.33051,0.08427,-0.10725,-0.21669,-0.3535,0.33051,0.05691,-0.079892,-0.025172,-0.29878,0.24843,0.24843,-0.10725,-0.079892,-0.10725,0.33051,0.05691,-0.079892,-0.10725,-0.13461 0.19953,0.16923,-0.22144,-0.22485,-0.22528,0.2087,0.17776,0.14256,-0.22336,-0.22634,0.20934,0.1703,0.14107,-0.22506,-0.22528,0.2119,0.17456,0.13851,-0.22336,-0.22528,0.20379,0.18054,0.14192,-0.22357,-0.22592 0.42659,-0.023717,-0.062896,-0.1329,-0.17626,0.4198,0.055165,-0.051403,-0.13446,-0.17051,0.41562,0.022776,-0.059762,-0.14282,-0.18043,0.43233,0.0097165,-0.085881,-0.13133,-0.18357,0.096434,0.025911,-0.066553,-0.1329,-0.16894 0.23529,0.24192,0.25234,0.26019,0.2633,0.23434,0.19212,0.25126,0.25667,0.25721,-0.16204,-0.1615,-0.16393,-0.16244,-0.16366,-0.16271,-0.16271,-0.16285,-0.16326,-0.16285,-0.16285,-0.16326,-0.16366,-0.16339,-0.16353 0.31001,0.054105,-0.055568,0.054105,-0.23836,0.20034,0.27345,-0.16524,-0.16524,-0.31147,0.23689,0.16378,0.054105,-0.2018,-0.23836,0.27345,0.090663,-0.12868,-0.055568,-0.23836,0.20034,0.23689,0.12722,-0.2018,-0.27491 0.13662,0.1461,0.18405,-0.12903,-0.3757,0.11764,0.13662,0.13662,-0.01518,-0.32826,0.16508,0.13662,0.15559,-0.091078,-0.34724,0.12713,0.060719,0.16508,-0.11954,-0.3757,0.13662,0.17457,0.15559,0.013282,-0.36621 -0.29139,-0.26635,-0.24132,-0.29139,-0.39152,-0.091121,-0.066088,-0.19125,-0.11615,-0.11615,0.084112,-0.041054,0.059078,0.059078,-0.041054,0.084112,0.18424,0.20928,0.13418,0.034045,0.23431,0.35948,0.23431,0.25934,0.20928 0.27707,0.069333,-0.011815,-0.1449,-0.31369,0.18294,0.082317,0.0076604,-0.14165,-0.31693,0.3355,0.31927,-0.083226,-0.13841,-0.265,0.42314,0.04012,0.0076604,-0.06375,-0.21306,0.043366,0.14724,0.079071,-0.073488,-0.24877 0.37808,0.3837,0.37808,0.38932,0.3837,-0.071881,-0.0071993,-0.057819,-0.040946,0.13904,-0.10282,-0.10563,-0.11688,-0.10282,-0.10563,-0.14781,-0.11406,-0.14219,-0.1225,-0.11406,-0.15062,-0.12531,-0.14781,-0.13937,-0.13656 -0.17117,-0.1845,-0.16673,0.15322,0.25098,-0.18895,-0.1845,-0.18006,0.22876,0.23765,-0.16228,-0.19339,-0.1534,0.2332,0.25098,-0.20228,-0.19339,0.0065767,0.24209,0.25542,-0.18006,-0.17117,-0.055635,0.25987,0.26875 0.34701,0.040825,-0.19732,-0.095258,-0.19732,0.14289,0.24495,0.14289,-0.19732,-0.26536,0.34701,0.14289,0.040825,-0.19732,-0.26536,0.24495,0.040825,-0.095258,-0.19732,-0.19732,0.24495,0.14289,0.14289,-0.095258,-0.26536 -0.40589,-0.15963,-0.014397,0.14978,0.18135,-0.39957,-0.17857,0.055061,0.1624,0.18135,-0.30486,-0.083854,0.061375,0.19398,0.20029,-0.2796,-0.027025,0.099261,0.18766,0.18766,-0.24171,-0.090169,0.14978,0.17503,0.20029 0.23013,-0.014342,-0.11213,-0.16103,-0.30771,0.18124,0.083447,-0.063237,-0.24252,-0.30771,0.23013,0.099745,0.018254,-0.079535,-0.24252,0.32792,0.16494,-0.12843,-0.046939,-0.24252,0.36052,0.29532,0.18124,-0.095833,-0.12843 0.20533,0.24274,0.21157,-0.21032,-0.22487,0.21157,0.20533,-0.12096,-0.13135,-0.20616,0.24482,0.23027,-0.19369,-0.21032,-0.1646,0.22819,0.23027,-0.14589,-0.15836,-0.17083,0.2178,0.23027,-0.12096,-0.1833,-0.21656 -0.2421,-0.24188,-0.24188,-0.24253,-0.24232,-0.24297,-0.24167,-0.24188,-0.2434,-0.2434,0.20141,0.19557,0.15965,0.14148,0.1166,0.20336,0.1999,0.1655,0.13953,0.083068,0.20336,0.196,0.16485,0.13867,0.11509 -0.22623,-0.081212,-0.032871,0.20883,0.28134,-0.29874,-0.15372,0.087979,0.16049,0.18466,-0.32291,-0.20206,0.087979,0.13632,0.20883,-0.34708,0.015469,-0.032871,0.13632,0.37802,-0.29874,-0.081212,-0.081212,0.13632,0.13632 -0.24299,-0.22684,-0.22684,-0.19452,-0.16221,-0.17837,-0.17837,-0.19452,-0.17837,-0.11374,-0.11374,-0.19452,-0.065272,-0.049116,0.031667,0.25786,0.2417,0.19323,0.20939,0.19323,0.38711,0.27401,0.2417,0.16092,0.12861 0.17757,0.17757,0.24831,0.1422,0.17757,0.17757,0.23063,0.12451,0.17757,0.23063,0.12451,0.12451,0.018394,0.071452,0.071452,-0.17615,-0.14078,-0.14078,-0.17615,-0.1231,-0.28227,-0.31764,-0.21153,-0.29996,-0.40607 -0.27559,-0.088921,0.11472,0.11472,0.11472,-0.27559,-0.071952,0.046836,0.18259,0.19956,-0.29256,-0.1568,0.11472,0.2335,0.16562,-0.3265,-0.12286,0.063806,0.18259,0.2335,-0.44529,-0.1568,0.063806,0.16562,0.21653 0.3625,0.19819,0.24875,0.28667,0.33722,0.13499,0.22347,0.23611,0.10971,0.21083,-0.13044,-0.1178,-0.079882,-0.13044,-0.13044,-0.15572,-0.20628,-0.21892,-0.16836,-0.16836,-0.19364,-0.20628,-0.13044,-0.19364,-0.1178 0.23367,0.29238,0.32173,0.23367,0.29238,0.1456,0.1456,0.1456,0.18963,0.10157,-0.030529,-0.015852,0.057536,-0.015852,0.028181,-0.17731,-0.08924,-0.20666,-0.11859,-0.16263,-0.29473,-0.26537,-0.28005,-0.29473,-0.23602 -0.21635,-0.21635,-0.18732,-0.2744,-0.21635,-0.17764,-0.21635,-0.21635,-0.18732,-0.21635,0.13198,0.035219,0.015868,-0.042186,-0.14862,0.27711,0.20938,0.23841,0.13198,0.05457,0.27711,0.25776,0.20938,0.25776,0.21906 -0.29555,-0.24091,-0.32591,-0.24091,-0.20448,-0.23484,-0.12555,-0.064841,-0.046627,-0.10127,0.026228,-0.095198,-0.11948,0.014085,-0.028414,0.16587,0.14765,0.11123,0.093012,0.050513,0.34801,0.29944,0.31765,0.27515,0.27515 0.12879,0.10298,0.1241,0.053694,-0.45321,0.10767,0.17103,0.15226,0.025533,-0.3875,0.11706,0.1194,0.12175,-0.047217,-0.39923,0.11471,0.10063,0.072469,0.091243,-0.35465,0.12175,0.12175,0.11002,0.037267,-0.3523 0.18108,0.18013,0.17887,-0.22584,-0.2707,0.18487,0.18392,0.18266,-0.12664,-0.27133,0.18771,0.18708,0.18771,-0.12569,-0.26501,0.18992,0.19182,-0.114,-0.23437,-0.27323,0.19593,0.19593,-0.12474,-0.12822,-0.26786 0.27751,0.22389,0.23557,0.236,0.25546,0.26843,0.26324,0.21438,0.20659,0.25546,-0.11772,-0.14237,-0.1614,-0.16832,-0.16918,-0.15751,-0.15707,-0.16269,-0.16399,-0.16659,-0.16053,-0.16269,-0.17005,-0.21502,-0.1614 0.30508,0.30133,-0.15664,-0.16004,-0.16182,0.30276,0.3008,-0.15807,-0.16039,-0.15986,0.30365,0.30187,-0.15843,-0.15896,-0.15896,0.13867,0.13939,-0.15629,-0.15682,-0.157,0.1376,0.1376,-0.15521,-0.15575,-0.1545 -0.34407,-0.36677,-0.32137,-0.27598,-0.20789,-0.1625,-0.1625,-0.094415,-0.071719,-0.026327,-0.026327,0.087152,0.019065,0.019065,0.019065,0.13254,0.087152,0.064456,0.17794,0.087152,0.26872,0.24602,0.24602,0.33681,0.26872 -0.23901,-0.23901,-0.16573,0.18605,0.21537,-0.2439,-0.23413,0.00039086,0.21048,0.20071,-0.24878,-0.2097,0.12254,0.19582,0.21537,-0.23413,-0.19504,0.093221,0.17139,0.21048,-0.25367,-0.1413,0.18605,0.20071,0.19582 0.14899,0.18765,0.17477,0.20699,0.18121,0.18765,0.16832,0.18765,0.1941,0.1941,0.11032,0.071659,0.071659,0.090991,0.052327,-0.10878,-0.10878,-0.089445,-0.10878,-0.12811,-0.33432,-0.33432,-0.35366,-0.30855,-0.35366 0.53409,-0.0055311,-0.096593,-0.14044,-0.19103,0.45315,0.018077,-0.056121,-0.14381,-0.18428,0.39581,-0.0021585,-0.076357,-0.13706,-0.17754,0.2373,0.0012142,-0.086475,-0.11008,-0.15056,0.18334,0.045059,-0.04263,-0.11008,-0.1573 0.28455,0.28455,0.26979,0.18124,0.16648,0.24027,0.25503,0.18124,0.16648,0.13696,0.0041324,0.0041324,-0.025385,-0.06966,0.03365,-0.12869,-0.14345,-0.20249,-0.099178,-0.18773,-0.3058,-0.32056,-0.24676,-0.21725,-0.26152 0.30071,0.19453,0.237,0.237,0.32194,0.19453,0.17329,0.17329,0.15205,0.13082,0.024634,0.067107,-0.039075,0.0033978,-0.039075,-0.18773,-0.060312,-0.14526,-0.16649,-0.18773,-0.2302,-0.29391,-0.29391,-0.27268,-0.29391 -0.24244,-0.14348,-0.16822,-0.2177,-0.19296,-0.16822,-0.2177,-0.14348,-0.2177,-0.24244,-0.044529,-0.069268,-0.11874,-0.044529,0.079163,0.1039,0.079163,0.054425,0.15338,0.20286,0.32655,0.32655,0.25233,0.35129,0.30181 0.17397,0.15774,0.20643,-0.1506,-0.16683,0.17397,0.12528,0.15774,-0.24797,-0.19929,0.17397,0.12528,0.17397,-0.28043,-0.2642,0.23888,0.17397,0.17397,-0.2642,-0.2642,0.092827,0.12528,0.12528,-0.2642,-0.29666 -0.16062,-0.16208,-0.16013,-0.16354,-0.16354,-0.15964,-0.15915,-0.16354,-0.16549,-0.165,-0.15867,-0.15915,-0.16208,-0.16159,-0.16062,0.28348,0.27812,0.28446,0.18989,0.18355,0.27763,0.27227,0.27666,0.19525,0.18355 0.29497,-0.062221,-0.073744,-0.13136,-0.11983,0.4102,-0.004609,-0.062221,-0.096789,-0.10831,0.43324,-0.073744,-0.085266,-0.1544,-0.14288,0.37563,-0.062221,-0.13136,-0.096789,-0.14288,0.44477,-0.062221,-0.11983,-0.10831,-0.11983 0.38286,0.40065,0.39472,0.39472,0.40658,-0.032261,-0.050052,-0.055982,-0.050052,-0.050052,-0.097495,-0.13308,-0.10343,-0.10936,-0.11529,-0.13308,-0.12122,-0.10936,-0.12715,-0.10936,-0.097495,-0.10936,-0.13308,-0.11529,-0.12715 0.17813,0.27238,0.15457,0.21348,0.18991,0.2017,0.2606,0.29595,0.21348,0.16635,0.048539,0.024976,0.0014138,0.0014138,0.013195,-0.18709,-0.17531,-0.26956,-0.18709,-0.16352,-0.28134,-0.24599,-0.25778,-0.23421,-0.23421 0.28385,0.24528,0.22461,0.24329,0.21705,0.27908,0.27431,0.23216,0.23693,0.20473,-0.15986,-0.15907,-0.15947,-0.15827,-0.15947,-0.16185,-0.16384,-0.16463,-0.16503,-0.16384,-0.16424,-0.16622,-0.16424,-0.16463,-0.16662 -0.21852,-0.14157,-0.038984,0.1662,0.21749,-0.32111,-0.24416,0.063606,0.012311,0.42267,-0.29546,0.012311,0.089253,0.089253,0.26879,-0.24416,-0.064632,-0.090279,0.089253,0.26879,-0.24416,-0.19287,0.012311,0.1149,0.26879 0.2909,-0.087087,-0.056849,-0.20804,-0.22316,0.24554,-0.02661,-0.071968,-0.087087,-0.20804,0.35137,0.018748,-0.071968,-0.14756,-0.1778,0.38161,0.10946,-0.11733,-0.11733,-0.13245,0.51769,0.079225,-0.041729,-0.041729,-0.1778 -0.19022,-0.19022,-0.20547,-0.21563,-0.21055,-0.10385,-0.12926,-0.13942,-0.15974,-0.15466,-0.037801,-0.047963,-0.09369,-0.10893,-0.10385,0.17559,0.12986,0.063815,0.007926,-0.017478,0.42455,0.3585,0.3331,0.33818,0.27721 0.19078,0.21091,0.22451,-0.24113,-0.24276,0.19568,0.19894,0.26041,-0.2395,-0.24059,0.17392,0.11789,0.11843,-0.2395,-0.24059,0.12714,0.11191,0.11843,-0.2395,-0.24113,0.1217,0.11299,0.12333,-0.23841,-0.24385 -0.18927,-0.14265,-0.21257,-0.21257,-0.14265,-0.14265,-0.16596,-0.11934,-0.18927,-0.11934,-0.072723,-0.072723,-0.11934,-0.14265,-0.18927,0.067129,0.18367,0.090437,0.13705,0.11375,0.39345,0.2536,0.41676,0.2536,0.32352 -0.32465,-0.17103,0.085004,0.059401,0.36664,-0.24784,-0.17103,0.033797,0.23863,0.31544,-0.29905,-0.043014,0.0081932,0.23863,0.21302,-0.24784,-0.068618,-0.043014,0.059401,0.23863,-0.27345,-0.22224,0.059401,0.059401,0.13621 0.21634,0.22561,0.23296,0.27293,0.30426,0.22561,0.23073,0.23488,0.24288,0.25534,-0.16573,-0.16222,-0.16222,-0.16637,-0.16285,-0.16317,-0.16445,-0.16477,-0.16317,-0.16222,-0.1619,-0.15966,-0.16062,-0.15934,-0.16285 0.22834,-0.011898,-0.11486,-0.13774,-0.13774,0.2169,0.056742,-0.091978,-0.16062,-0.19494,0.4457,0.010982,-0.034778,-0.17206,-0.10342,0.45714,0.010982,-0.11486,-0.14918,-0.1263,0.45714,0.079622,-0.11486,-0.13774,-0.16062 0.30802,0.1528,0.17673,-0.24433,-0.24821,0.17414,0.16379,0.17673,-0.24821,-0.22881,0.15603,0.15668,0.1832,-0.24498,-0.22169,0.16897,0.14762,0.14762,-0.23269,-0.22104,0.15926,0.1528,-0.074872,-0.24045,-0.2191 0.43753,0.40993,0.39553,0.38113,0.35953,-0.026881,-0.070081,-0.068881,-0.084482,-0.064081,-0.10488,-0.092882,-0.090482,-0.090482,-0.098882,-0.11568,-0.11808,-0.11808,-0.11328,-0.11448,-0.12528,-0.12648,-0.12168,-0.11928,-0.11928 -0.27103,-0.17524,0.16323,0.16323,0.18239,-0.27741,-0.11137,0.11853,0.20155,0.20155,-0.32212,-0.19439,0.16323,0.099368,0.2207,-0.29657,-0.23271,0.08021,0.13769,0.13769,-0.2838,-0.20717,0.11853,0.18239,0.20155 0.28485,0.29804,-0.15878,-0.15824,-0.15824,0.28323,0.29561,-0.15905,-0.15663,-0.15663,0.15967,0.29184,-0.15824,-0.15716,-0.15609,0.17152,0.27408,-0.16174,-0.16659,-0.16685,0.17394,0.17421,-0.1534,-0.17089,-0.16847 0.35915,0.32205,0.32205,0.3035,0.28495,0.13654,0.080883,0.17364,0.080883,0.080883,-0.048975,-0.011873,-0.067526,-0.030424,0.0066784,-0.16028,-0.19738,-0.21594,-0.10463,-0.21594,-0.25304,-0.19738,-0.19738,-0.25304,-0.19738 0.11892,0.11905,0.11675,0.062277,-0.37865,0.12054,0.12014,0.11851,0.064445,-0.38393,0.12176,0.12217,0.11756,0.073659,-0.3838,0.12298,0.12339,0.12176,0.074879,-0.38027,0.12461,0.12407,0.12298,-0.18298,-0.38082 0.17581,0.1241,0.15857,-0.048262,-0.28957,0.17581,0.17581,0.14134,-0.048262,-0.28957,0.21028,0.19305,0.14134,-0.15168,-0.22062,0.15857,0.19305,0.10686,-0.09997,-0.32404,0.1241,0.15857,-0.031025,-0.34128,-0.39299 0.18952,0.17362,0.14182,0.046426,-0.23976,0.18952,0.094124,0.078225,-0.04897,-0.33516,0.14182,0.20542,0.014627,-0.096668,-0.39876,0.14182,0.17362,0.030527,-0.017171,-0.39876,0.12592,0.12592,0.12592,-0.017171,-0.44646 0.17659,0.16665,0.16665,0.14426,0.14426,0.17411,0.17411,0.16416,0.15421,0.14923,0.17411,0.17162,0.16416,0.1567,0.15172,-0.24126,-0.24872,-0.19152,-0.18654,-0.20147,-0.27111,-0.27111,-0.27111,-0.27857,-0.27111 -0.20785,-0.24536,-0.0015007,0.16733,0.33615,-0.20785,-0.15157,0.017258,0.16733,0.35491,-0.28288,-0.20785,-0.0015007,0.18609,0.33615,-0.15157,-0.13281,-0.0015007,0.092292,0.3174,-0.2266,-0.2266,-0.057776,0.073534,0.054775 0.23647,0.16879,0.056487,-0.34117,-0.12196,0.22955,0.1411,0.044181,-0.34732,-0.33194,0.23878,0.13033,0.050334,-0.071194,-0.33502,0.23186,0.14802,0.044181,-0.061195,-0.32271,0.2257,0.14186,0.049565,-0.071194,-0.1335 -0.23537,-0.20197,-0.27434,-0.21867,-0.23537,-0.07393,-0.15187,-0.18527,-0.11847,-0.12403,-0.051662,0.015142,-0.01826,-0.068363,-0.057229,0.12092,0.070812,0.076379,0.054111,-0.034961,0.35473,0.28792,0.33803,0.33803,0.3937 0.13654,0.14443,0.23894,0.26019,0.26788,0.13532,0.13492,0.13451,0.13532,0.13451,0.1335,0.1335,0.1333,0.1337,0.1337,-0.27044,-0.19677,-0.19617,-0.19353,-0.19718,-0.26841,-0.26841,-0.26598,-0.26477,-0.26861 -0.23869,-0.23826,-0.23812,-0.23812,-0.23756,-0.23727,-0.23756,-0.23756,-0.23727,-0.2367,-0.072858,0.17795,0.18107,0.17525,0.16107,0.17951,0.17837,0.17922,0.1639,0.16277,0.18078,0.1805,0.1822,0.16376,0.18362 -0.26202,-0.24276,-0.24276,-0.26202,-0.18496,-0.16569,-0.22349,-0.18496,-0.16569,-0.10789,-0.01156,-0.030826,-0.030826,-0.01156,0.065506,0.14257,0.12331,0.046239,0.16184,0.12331,0.33524,0.3545,0.31597,0.10404,0.3545 -0.16118,-0.16699,-0.15538,0.23945,0.26267,-0.16118,-0.19602,-0.13796,0.23364,0.26267,-0.17279,-0.19021,-0.13796,0.23364,0.25106,-0.16699,-0.1786,-0.13796,0.23364,0.23945,-0.17279,-0.1786,-0.12634,0.24526,0.23945 0.1893,0.17981,0.15133,0.12759,0.12285,0.19879,0.17506,0.14658,0.14658,0.13234,0.19405,0.19879,0.16557,0.12285,0.094365,-0.14772,-0.15246,-0.15721,-0.19519,-0.12398,-0.35657,-0.31385,-0.30436,-0.29012,-0.30436 -0.19588,-0.13451,-0.17133,0.11095,0.30732,-0.15906,-0.17133,-0.13451,0.19686,0.30732,-0.1836,-0.14678,-0.1836,0.24595,0.24595,-0.1836,-0.15906,-0.10997,0.20913,0.2705,-0.15906,-0.19588,-0.10997,0.23368,0.2705 -0.19398,-0.21846,-0.21846,-0.22661,-0.19398,-0.075701,-0.11649,-0.10833,-0.12465,-0.12057,-0.043071,-0.063465,-0.059386,-0.051229,-0.034914,-0.018599,-0.010442,0.0058734,-0.01452,0.01811,0.32402,0.37296,0.40967,0.37296,0.38927 0.20326,0.1256,0.051784,-0.024595,-0.49571,0.20583,0.11147,0.051784,-0.028446,-0.47838,0.21224,0.11982,0.039589,-0.018819,-0.26529,0.21224,0.13009,0.055635,-0.024595,-0.26272,0.21224,0.11533,0.053067,-0.020744,-0.28069 0.13138,0.26022,0.25602,-0.24278,-0.23903,0.14241,0.14682,0.14748,-0.24476,-0.24256,0.14484,0.14594,0.1466,-0.24212,-0.24057,0.14307,0.15432,0.15212,-0.24278,-0.24123,0.14153,0.15432,0.1552,-0.24476,-0.24168 0.16523,0.17574,0.17341,0.17224,0.17457,0.15588,0.16172,0.16523,0.16289,0.16756,0.14537,0.15705,0.15471,0.15355,0.16172,-0.23546,-0.23896,-0.23663,-0.22962,-0.23312,-0.25765,-0.25181,-0.25532,-0.25415,-0.25415 0.28684,0.28684,0.29745,0.28861,0.29568,0.12414,0.12061,0.12061,0.13299,0.12591,-0.0049516,-0.010257,-0.010257,-0.0049516,-0.0031832,-0.11813,-0.11636,-0.11636,-0.11106,-0.11636,-0.2879,-0.30205,-0.29497,-0.2879,-0.29497 0.36408,0.29067,0.27599,0.27599,0.27599,0.18791,0.085147,0.099827,0.12919,0.11451,0.011744,-0.017617,0.011744,-0.017617,-0.046978,-0.1057,-0.16442,-0.13506,-0.16442,-0.1057,-0.28187,-0.2525,-0.2525,-0.28187,-0.29655 -0.16277,-0.16258,-0.16239,-0.16202,-0.16315,-0.1605,-0.16088,-0.16145,-0.16183,-0.16183,-0.1605,-0.16239,-0.1605,-0.16107,-0.1622,0.17465,0.28328,0.27894,0.2489,0.24588,0.18221,0.17919,0.27592,0.27818,0.27894 0.28218,0.24958,0.24306,0.22676,0.1746,0.2398,0.22676,0.2561,0.27566,0.26262,-0.14487,-0.15139,-0.15791,-0.14487,-0.15465,-0.16443,-0.16443,-0.17747,-0.17747,-0.15791,-0.16443,-0.17747,-0.16443,-0.17421,-0.16117 -0.17222,-0.17222,-0.17222,-0.24561,-0.19669,-0.049905,-0.14776,-0.14776,-0.049905,-0.19669,-0.098832,-0.1233,-0.17222,-0.14776,-0.19669,0.072412,0.1458,0.1458,0.21919,0.17027,0.36597,0.26812,0.36597,0.24366,0.29258 0.38092,0.38092,0.40376,0.3695,0.4266,-0.041563,-0.0073078,-0.041563,-0.018726,-0.052982,-0.12149,-0.11007,-0.11007,-0.12149,-0.11007,-0.12149,-0.13291,-0.13291,-0.098656,-0.098656,-0.087237,-0.13291,-0.14433,-0.16717,-0.11007 -0.29156,-0.18195,-0.15455,0.22908,0.31129,-0.20935,-0.099744,-0.04494,0.22908,0.20168,-0.15455,-0.072342,0.0098648,0.064669,0.28389,-0.37377,-0.20935,0.064669,0.22908,0.28389,-0.26416,-0.099744,-0.017537,0.064669,0.20168 -0.23409,-0.28128,-0.25768,-0.32848,-0.28128,-0.16329,-0.092502,-0.068905,-0.045307,-0.18689,-0.045307,-0.068905,0.07268,-0.068905,-0.02171,0.096278,0.21427,0.19067,0.096278,0.07268,0.30866,0.28506,0.28506,0.35585,0.16707 0.25645,0.30922,0.28284,0.30922,0.26964,0.098149,0.15092,0.098149,0.1773,0.20368,-0.060156,-0.033772,-0.060156,-0.0073875,0.045381,-0.19208,-0.1525,-0.12612,-0.13931,-0.11292,-0.3108,-0.27123,-0.28442,-0.17888,-0.27123 0.14184,0.028124,-0.049536,-0.088366,-0.13552,0.44416,0.023964,-0.037055,-0.099461,-0.14522,0.43723,0.012869,-0.077272,-0.12165,-0.16603,0.40533,0.019803,-0.12304,-0.15077,-0.16741,0.40256,-0.073112,-0.10085,-0.18822,-0.19238 -0.24227,-0.24227,-0.16841,-0.13148,-0.18687,-0.20534,-0.16841,-0.16841,-0.22381,-0.24227,-0.057614,-0.094545,0.053182,-0.094545,-0.0022159,0.034716,0.12705,0.16398,0.14551,0.20091,0.33017,0.3117,0.27477,0.21937,0.3671 -0.22643,-0.21599,-0.10893,0.099951,0.13128,-0.23687,-0.23687,-0.13765,0.24356,0.23311,-0.2421,-0.21599,0.039897,0.22789,0.31145,-0.22643,-0.033213,0.060785,0.11562,0.2775,-0.22121,-0.19771,0.068619,0.20439,0.28534 0.23562,0.23562,0.20737,0.20737,0.13674,0.23562,0.32038,0.19324,0.16499,0.16499,0.037858,0.0096057,0.023732,0.06611,0.023732,-0.23054,-0.23054,-0.21641,-0.21641,-0.18816,-0.30117,-0.28704,-0.23054,-0.17403,-0.18816 -0.24136,-0.2418,-0.23963,-0.24136,-0.2405,-0.2418,-0.2431,-0.24136,-0.24266,-0.24136,0.22093,0.1884,0.15848,0.12726,0.10427,0.22873,0.18407,0.15848,0.12856,0.099067,0.22613,0.19361,0.15935,0.13333,0.10427 -0.25312,-0.03913,0.11372,0.098436,0.26657,-0.28369,-0.13084,0.098436,0.11372,0.20543,-0.36012,-0.10027,0.083151,0.236,0.236,-0.32955,-0.14613,0.11372,0.15958,0.12901,-0.3754,-0.1767,-0.0085597,0.20543,0.14429 -0.24248,-0.24407,-0.24208,-0.24327,-0.24327,-0.24248,-0.24208,-0.24287,-0.24606,-0.24367,0.26898,0.16995,0.16637,0.14131,0.14967,0.15166,0.17114,0.15563,0.14052,0.14291,0.13575,0.15842,0.15484,0.15842,0.16677 -0.17237,-0.1728,-0.17209,-0.17265,-0.17265,-0.17097,-0.17097,-0.17068,-0.1697,-0.17026,-0.17026,-0.12058,-0.1203,-0.12171,-0.16759,0.2856,0.28602,0.28897,0.1944,0.19594,0.28925,0.28925,0.19524,0.19566,0.19524 -0.35629,-0.19528,0.14607,0.15251,0.18472,-0.32409,-0.17596,0.12031,0.15251,0.17183,-0.32409,-0.13731,0.12675,0.15251,0.16539,-0.32409,-0.09867,0.13319,0.17183,0.15895,-0.29833,-0.085788,0.14607,0.18472,0.15251 0.38988,0.38988,0.40276,0.39632,0.40276,-0.064142,-0.044822,-0.057702,-0.044822,-0.060922,-0.096342,-0.089902,-0.093122,-0.096342,-0.099562,-0.11566,-0.1221,-0.106,-0.10278,-0.10922,-0.14142,-0.13176,-0.13176,-0.13176,-0.14142 0.29391,0.23294,-0.010976,-0.16342,-0.16342,0.29391,0.17196,0.019513,-0.13293,-0.25489,0.11098,0.26342,-0.2244,-0.19391,-0.19391,0.29391,0.019513,0.019513,-0.19391,-0.16342,0.20245,0.29391,-0.041465,-0.19391,-0.28538 -0.2836,-0.041395,0.068698,0.20081,0.11273,-0.30562,-0.085432,0.090716,0.20081,0.17879,-0.43773,-0.17351,0.11273,0.15677,0.24485,-0.32764,-0.10745,0.024661,0.13475,0.17879,-0.30562,-0.10745,0.11273,0.11273,0.24485 -0.32912,-0.2286,-0.2286,-0.34348,-0.31476,-0.18552,-0.18552,-0.1568,-0.19988,-0.17116,0.18782,0.11602,0.1591,0.087305,0.14474,0.21654,0.18782,0.18782,0.17346,0.18782,0.20218,0.2309,0.14474,0.058586,0.058586 0.23539,0.217,0.2054,-0.17527,-0.17627,0.23679,0.2184,-0.17767,-0.17907,-0.17687,0.23599,0.2208,-0.17667,-0.17567,-0.17767,0.23639,0.2182,-0.17687,-0.17767,-0.17847,0.23799,0.218,-0.17667,-0.17767,-0.17787 0.18952,0.073467,0.059338,0.052274,-0.43918,0.19457,0.073467,0.068421,0.049247,-0.4079,0.18145,0.09365,0.080531,0.046219,-0.38873,0.15924,0.099705,0.080531,0.059338,-0.3635,0.1431,0.099705,0.080531,0.065393,-0.35038 -0.28047,-0.28047,-0.26263,-0.26263,-0.23586,-0.23586,-0.11989,-0.084211,-0.06637,-0.20018,-0.084211,-0.057449,-0.0039251,-0.030687,-0.0039251,0.29046,0.28154,0.22801,0.15665,0.19233,0.25478,0.29046,0.20125,0.14773,0.16557 0.24429,0.23048,-0.21629,-0.25314,-0.28384,0.18442,0.20898,0.17214,-0.18405,-0.24239,0.14757,0.15371,0.12147,-0.15641,-0.24853,0.16139,0.16446,0.13068,-0.18098,-0.25007,0.22433,0.16139,0.12301,-0.14567,-0.26695 -0.24233,-0.24277,-0.24411,-0.24366,-0.24366,-0.24233,-0.243,-0.243,-0.24344,-0.24344,0.21778,0.23177,0.15205,0.14827,0.14783,0.22133,0.14938,0.14139,0.14894,0.14761,0.15072,0.14605,0.1445,0.14072,0.14339 0.1355,0.13527,0.14519,-0.2461,-0.24518,0.13343,0.13527,0.15188,-0.24356,-0.24425,0.1385,0.14611,0.21206,-0.24241,-0.24425,0.13827,0.20191,0.20906,-0.24149,-0.24287,0.13919,0.20053,0.2086,-0.24056,-0.2401 -0.29153,-0.21961,-0.02889,0.1931,0.18685,-0.27277,-0.20711,0.15871,0.18372,0.17434,-0.27589,-0.21336,0.096175,0.18372,0.17747,-0.29153,-0.16959,0.16496,0.18685,0.18372,-0.26026,-0.16646,0.17747,0.16496,0.16496 -0.25489,-0.16799,-0.13903,0.20854,0.26647,-0.34178,-0.13903,0.15061,0.092686,0.29544,-0.31281,-0.19696,0.063721,0.12165,0.23751,-0.19696,-0.023171,-0.052136,0.12165,0.29544,-0.34178,-0.023171,0.063721,0.092686,0.17958 0.23958,0.13733,0.078139,-0.013346,-0.094068,0.20729,0.11581,0.061994,-0.024109,-0.27166,0.2342,0.12657,0.051232,-0.0079646,-0.35776,0.24496,0.13195,0.061994,-0.19632,-0.36314,0.20191,0.11043,0.051232,-0.33623,-0.39005 -0.28372,-0.28372,-0.28372,-0.32185,-0.32185,-0.093047,-0.093047,-0.24558,-0.15025,-0.24558,0.21203,0.11669,0.17389,0.11669,0.17389,0.17389,0.11669,0.15482,0.15482,0.097623,0.23109,0.11669,0.25016,0.11669,0.11669 0.20902,0.15372,-0.067462,-0.12276,-0.2057,0.26432,0.07078,-0.12276,-0.261,-0.34395,0.37491,0.23667,-0.012165,-0.2057,-0.039814,0.29197,0.15372,-0.12276,-0.12276,-0.039814,0.29197,0.12608,-0.039814,-0.2057,-0.261 0.15491,0.15491,0.15491,0.21652,0.15491,0.16371,0.16371,0.15491,0.15491,0.19012,0.15491,0.1109,0.15491,0.18132,0.16371,-0.20596,-0.23237,-0.24117,-0.24117,-0.18836,-0.24997,-0.27638,-0.30278,-0.24997,-0.24117 0.13364,0.19141,0.19333,-0.25245,-0.25726,0.12112,0.21644,0.19911,-0.24186,-0.24667,0.13171,0.2097,0.19526,-0.24475,-0.22741,0.12594,0.17022,0.14808,-0.23319,-0.23993,0.1009,0.13941,0.14904,-0.23608,-0.24571 0.23125,0.23011,0.22667,0.26591,0.26505,0.23555,0.22868,0.23412,0.25331,0.27507,-0.16055,-0.15969,-0.16083,-0.16083,-0.16169,-0.16284,-0.16398,-0.16398,-0.16312,-0.16513,-0.16284,-0.16513,-0.16427,-0.16541,-0.16541 0.30555,0.2713,0.23426,0.21399,0.18813,0.29926,0.27061,0.24265,0.21329,0.18953,-0.15995,-0.15855,-0.14946,-0.15995,-0.14946,-0.16484,-0.15925,-0.15785,-0.16065,-0.16135,-0.17393,-0.16764,-0.16903,-0.17183,-0.16484 -0.26915,-0.26915,-0.29766,-0.26915,-0.26915,-0.24064,-0.18361,-0.18361,-0.098079,-0.18361,0.15852,0.1015,0.072989,-0.012545,0.13001,0.1015,0.18704,0.27257,0.1015,0.1015,0.30108,0.072989,0.27257,0.24406,0.15852 -0.23957,-0.2403,-0.2403,-0.23957,-0.23994,-0.2403,-0.2403,-0.23589,-0.24251,-0.24104,0.25206,0.11978,0.11611,0.11538,0.12713,0.18703,0.25022,0.11978,0.12346,0.11978,0.24912,0.19143,0.17784,0.12419,0.1264 -0.24192,-0.048899,-0.048899,0.047612,0.33715,-0.17758,-0.24192,0.17629,0.047612,0.33715,-0.33843,-0.24192,-0.048899,0.14412,0.27281,-0.27409,-0.08107,-0.048899,0.11195,0.24064,-0.24192,-0.048899,-0.048899,0.14412,0.27281 0.3436,0.1843,0.0013071,-0.16126,-0.23152,-0.011764,0.19083,-0.00032677,-0.15554,-0.24704,0.41141,0.21943,-0.0035945,-0.14656,-0.23724,0.059309,0.19574,-0.00032677,-0.16453,-0.24214,0.32154,0.12385,-0.0052283,-0.16535,-0.2789 0.22619,0.14147,-0.11267,-0.070314,-0.388,0.26855,0.20501,0.03558,-0.2821,-0.23974,0.1203,0.056759,0.1203,-0.15503,-0.34564,0.20501,0.14147,0.1203,-0.091493,-0.21857,0.20501,0.20501,0.18383,-0.049135,-0.2821 0.17067,-0.0099331,-0.055084,-0.16796,-0.25826,0.21582,0.057793,-0.16796,-0.25826,-0.25826,0.3287,0.14809,-0.032508,-0.10023,-0.16796,0.3287,0.23839,-0.055084,-0.23569,-0.28084,0.3287,0.23839,0.12552,-0.055084,-0.077659 -0.16576,-0.17586,-0.18092,-0.18092,-0.16323,-0.16576,-0.18597,-0.18092,-0.18092,-0.18092,-0.074792,-0.10259,-0.11017,-0.11775,-0.14554,0.26632,0.27137,0.26885,0.24611,-0.054578,0.26632,0.26379,0.25621,0.25369,0.2739 0.32467,0.094409,0.094409,-0.25099,-0.049507,0.15198,-0.020724,0.065626,-0.16464,-0.27977,0.32467,0.094409,0.036843,-0.22221,-0.27977,0.32467,0.15198,-0.020724,-0.020724,-0.27977,0.20954,0.23832,-0.020724,-0.25099,-0.25099 0.18621,0.16677,0.097933,-0.30216,-0.38072,0.17487,0.16596,0.076875,0.010464,-0.35399,0.17487,0.15382,0.11656,0.0064144,-0.32888,0.16353,0.14572,0.076875,0.0023649,-0.34589,0.14248,0.13357,0.050959,-6.4792e-05,-0.33455 0.24304,0.24599,0.23417,0.23053,0.24145,0.25191,0.27556,0.23508,0.23098,0.2585,-0.16548,-0.15866,-0.16298,-0.16344,-0.16821,-0.16275,-0.16093,-0.16344,-0.16253,-0.16321,-0.1623,-0.16207,-0.16298,-0.16321,-0.16503 -0.15455,-0.13674,-0.13318,-0.1225,-0.14743,-0.13674,-0.13674,-0.12606,-0.14387,-0.1225,-0.086889,-0.09045,-0.086889,-0.083328,-0.083328,-0.051279,-0.029913,-0.026352,-0.01923,-0.044157,0.38673,0.40097,0.38673,0.38673,0.40097 0.39656,0.39976,0.39176,0.39976,0.39176,-0.052913,-0.046515,-0.038517,-0.040117,-0.046515,-0.1025,-0.1057,-0.1137,-0.12009,-0.12009,-0.12009,-0.12329,-0.12329,-0.12329,-0.12329,-0.1105,-0.1137,-0.12009,-0.1169,-0.1185 0.22857,0.24048,0.20476,0.2881,0.24048,0.20476,0.22857,0.20476,0.20476,0.15714,0.097619,-0.0095238,0.02619,-0.057143,-0.092857,-0.2,-0.2119,-0.2119,-0.2119,-0.29524,-0.17619,-0.27143,-0.1881,-0.2119,-0.1881 0.31001,0.064869,-0.1237,-0.23685,-0.1237,0.4043,0.083727,-0.1237,-0.16142,-0.19913,0.36659,0.046012,-0.1237,-0.1237,-0.048275,0.31001,0.10258,-0.067132,-0.23685,-0.16142,0.34773,0.10258,-0.21799,-0.067132,-0.1237 -0.24945,-0.25463,-0.2567,-0.26292,-0.26499,-0.21732,-0.22458,-0.23079,-0.21007,-0.208,0.24381,0.19925,0.17542,0.064538,0.061429,0.15158,0.15676,0.25624,0.097697,0.10702,0.135,0.23552,0.20029,0.15158,0.14329 0.28549,0.28549,0.36912,0.22973,0.34125,0.14609,0.034571,0.20185,0.17397,0.17397,-0.049068,-0.049068,-0.076947,-0.076947,-0.076947,-0.21634,-0.16059,-0.2721,-0.2721,-0.16059,-0.16059,-0.16059,-0.16059,-0.16059,-0.18847 -0.18754,-0.25994,-0.18754,-0.20564,-0.18754,-0.22374,-0.18754,-0.13323,-0.11513,-0.15133,-0.11513,-0.042721,-0.097026,-0.060822,0.029687,-0.042721,0.1745,0.1383,0.1202,0.10209,0.30122,0.33742,0.31932,0.39173,0.28311 -0.20989,-0.18803,-0.16616,-0.29734,-0.27548,-0.1443,-0.10057,-0.18803,-0.078709,-0.16616,0.030609,-0.034982,-0.23175,-0.034982,-0.10057,0.13993,0.11806,0.11806,0.13993,0.16179,0.35856,0.20552,0.31483,0.31483,0.31483 0.11479,0.13964,0.065098,0.0029816,-0.35315,0.13136,0.23074,0.16449,-0.096405,-0.41527,0.1355,0.21418,0.12722,0.015405,-0.33659,0.18933,0.098227,0.085804,-0.17923,-0.30346,0.19761,0.089945,0.089945,-0.046712,-0.36144 0.1509,0.18309,0.18169,-0.23309,-0.23332,0.15626,0.18216,0.18262,-0.23239,-0.23402,0.17726,0.18099,0.18402,-0.23216,-0.23402,0.17726,0.18216,0.16839,-0.23192,-0.23216,0.17959,0.18542,-0.14701,-0.23192,-0.22982 0.28636,0.20975,-0.10238,-0.1194,-0.13643,0.32608,0.20975,-0.1194,-0.12791,-0.1421,0.30338,0.16151,-0.068326,-0.12791,-0.14494,0.35162,-0.051302,-0.13643,-0.13926,-0.17048,0.39986,-0.11089,-0.14494,-0.19034,-0.21588 0.26199,0.21911,0.20839,0.17623,0.25127,0.20839,0.21911,0.21911,0.17623,0.18695,-0.0060031,-0.10248,0.0047167,0.069035,0.14407,-0.26328,-0.19896,-0.23112,-0.23112,-0.19896,-0.24184,-0.20968,-0.20968,-0.20968,-0.24184 0.17352,0.17352,-0.1315,-0.063715,-0.36873,0.27519,0.27519,-0.063715,-0.16539,-0.1315,0.17352,0.17352,0.037958,-0.1315,-0.36873,0.17352,0.17352,0.037958,0.037958,-0.36873,0.27519,0.17352,-0.063715,-0.063715,-0.23317 0.078307,0.1055,0.078307,-0.22078,-0.41111,0.15988,0.15988,0.023927,-0.084833,-0.38392,0.18707,0.078307,0.023927,-0.057643,-0.24797,0.24145,0.15988,0.13269,-0.1664,-0.22078,0.35021,0.29583,0.051117,-0.1664,-0.1664 -0.16439,-0.16385,-0.16439,-0.16385,-0.16119,-0.16225,-0.16119,-0.16225,-0.16172,-0.15959,-0.15906,-0.15906,-0.16066,-0.15852,-0.15107,0.32954,0.27093,0.23043,0.20326,0.17449,0.32634,0.27413,0.23097,0.19793,0.17502 0.29378,0.090572,-0.025546,-0.17069,-0.3739,0.26475,0.26475,-0.14166,-0.19972,-0.19972,0.26475,0.17766,-0.19972,-0.25778,-0.14166,0.20669,0.17766,-0.025546,-0.17069,-0.14166,0.29378,0.20669,-0.083605,-0.025546,-0.083605 0.20113,0.13956,0.18061,0.036943,-0.25039,0.16009,0.16009,0.098515,0.036943,-0.41458,0.098515,0.20113,0.077991,-0.0041048,-0.31196,0.11904,0.13956,0.098515,-0.0862,-0.37353,0.11904,0.057467,0.098515,-0.10672,-0.47615 -0.15937,-0.16098,-0.16179,-0.16179,-0.16018,-0.15776,-0.15695,-0.15776,-0.15615,-0.15695,-0.15615,-0.15615,-0.15615,-0.15615,-0.15293,0.21912,0.22355,0.34757,0.10437,0.10558,0.2308,0.23845,0.23241,0.33066,0.33469 -0.14496,-0.16125,-0.11238,-0.12867,-0.11238,-0.13682,-0.16125,-0.13682,-0.16125,-0.11238,-0.12867,-0.10424,-0.1531,-0.063522,-0.12867,-0.0065151,0.02606,0.034204,0.017916,0.0097726,0.49026,0.43325,0.40068,0.28666,0.25409 0.40168,-0.060738,-0.10483,-0.11128,-0.11021,0.39953,-0.054286,-0.10375,-0.11128,-0.11236,0.4006,-0.059663,-0.11236,-0.11451,-0.11558,0.39415,-0.059663,-0.11451,-0.11773,-0.11451,0.39308,-0.063964,-0.11128,-0.11666,-0.11988 0.4288,0.1967,0.1822,-0.13694,-0.26749,0.4288,0.13868,-0.0063827,-0.16595,-0.19496,0.16769,0.095161,0.037136,-0.16595,-0.25299,0.12417,0.10967,0.037136,-0.18046,-0.29651,0.066148,0.080655,0.0081235,-0.19496,-0.23848 -0.19816,-0.17569,-0.22062,-0.15322,-0.17569,-0.063356,-0.13637,-0.14761,-0.097056,-0.11952,-0.074589,-0.074589,-0.091439,-0.057739,-0.11391,0.0096606,-0.040889,0.032127,0.048977,-0.040889,0.39721,0.35228,0.37474,0.37474,0.39159 -0.24716,-0.22399,0.16996,0.16334,0.23121,-0.26703,-0.20909,0.1203,0.1501,0.21796,-0.25047,-0.21406,0.1203,0.20472,0.18982,-0.27696,-0.22399,0.13189,0.16996,0.16003,-0.27034,-0.23723,0.1203,0.13024,0.14017 -0.1791,-0.17512,-0.12933,0.24496,0.24098,-0.1791,-0.16915,-0.14326,0.25292,0.23699,-0.18905,-0.17114,-0.13132,0.24496,0.24297,-0.17512,-0.17711,-0.12933,0.25093,0.24098,-0.17512,-0.17313,-0.14525,0.25292,0.23301 0.31369,0.12292,-0.12803,-0.12656,-0.16031,0.3225,0.21537,-0.1383,-0.15738,-0.16031,0.3225,0.3181,-0.1427,-0.16325,-0.15738,0.32543,-0.056117,-0.11482,-0.15738,-0.15738,0.31369,-0.012092,-0.10748,-0.15444,-0.16031 -0.33505,-0.2089,-0.28459,-0.33505,-0.2089,-0.18367,-0.032294,-0.2089,-0.18367,-0.2089,0.093853,-0.0070642,-0.032294,0.018165,0.14431,0.068624,0.14431,0.14431,0.22,0.22,0.22,0.24523,0.24523,0.22,0.24523 0.25662,0.10166,0.0086781,-0.23927,-0.084301,0.22563,0.25662,-0.11529,-0.20827,-0.17728,0.19464,0.0086781,-0.053308,-0.14629,-0.23927,0.41159,0.22563,0.039671,-0.17728,-0.30125,0.22563,0.070664,0.13265,-0.084301,-0.33225 0.18333,0.091462,0.030215,-0.00040831,-0.2556,0.16292,0.1425,0.050631,0.020007,-0.23519,0.1425,0.18333,0.071046,-0.00040831,-0.40872,0.16292,0.1425,0.091462,0.020007,-0.44955,0.18333,0.12209,0.060839,-0.010616,-0.50059 0.21661,0.099782,0.02419,0.034498,-0.34346,0.21661,0.065422,0.044806,0.037934,-0.38126,0.1204,0.099782,0.079166,0.048242,-0.3847,0.18225,0.11353,0.089474,0.051678,-0.39844,0.18912,0.07573,0.05855,0.079166,-0.41906 -0.26584,-0.26584,-0.26584,-0.26584,-0.33459,-0.12834,0.009167,-0.12834,-0.12834,-0.10542,0.009167,0.009167,-0.10542,-0.059585,-0.036668,0.16959,0.10084,0.077919,0.10084,0.14667,0.16959,0.35293,0.28418,0.33001,0.33001 0.33185,0.037888,-0.12542,-0.15809,-0.25607,0.2012,0.2012,-0.060099,-0.19075,-0.060099,0.39717,0.23386,0.070551,-0.092761,-0.15809,0.33185,0.037888,0.005226,-0.22341,-0.25607,0.2012,0.10321,-0.19075,-0.092761,-0.28873 -0.30127,-0.20454,0.18881,0.20171,0.19526,-0.30127,-0.1594,0.16946,0.20815,0.18236,-0.27548,-0.20454,0.12432,0.20815,0.18881,-0.25613,-0.23678,0.0082539,0.18881,0.18881,-0.21744,-0.1594,-0.049782,0.12432,0.18881 -0.31346,-0.15515,0.14565,0.12982,0.2248,-0.25013,-0.21847,0.082322,0.11398,0.2248,-0.31346,-0.21847,0.20897,0.14565,0.20897,-0.25013,-0.21847,0.16148,0.16148,0.17731,-0.2343,-0.20264,0.082322,0.082322,0.2248 0.29225,0.27449,0.2395,0.21769,0.20349,0.28971,0.26689,0.23544,0.21312,0.20349,-0.16372,-0.16169,-0.1622,-0.16068,-0.16017,-0.16322,-0.16271,-0.16119,-0.16068,-0.1622,-0.16677,-0.16271,-0.16271,-0.16068,-0.16474 0.32461,0.2875,0.23184,0.20129,0.16746,0.32461,0.2875,0.22639,0.18164,0.16855,-0.15558,-0.15231,-0.13812,-0.13812,-0.15012,-0.15231,-0.15558,-0.15231,-0.14358,-0.14685,-0.18068,-0.1916,-0.18286,-0.17741,-0.18396 0.40046,-0.06774,-0.11423,-0.11755,-0.12087,0.39548,-0.064419,-0.11091,-0.11921,-0.11589,0.39714,-0.062759,-0.10593,-0.11423,-0.11589,0.3988,-0.0694,-0.10427,-0.11257,-0.10593,0.3988,-0.054458,-0.095965,-0.10925,-0.10925 0.22258,0.22258,-0.17199,-0.1468,-0.22376,0.22258,0.22258,-0.1496,-0.17199,-0.22376,0.22118,0.22538,0.22538,-0.1566,-0.21956,0.22678,0.22258,-0.1496,-0.1426,-0.20697,0.22678,0.22398,-0.12721,-0.1552,-0.21676 -0.24285,-0.24419,-0.24342,-0.24419,-0.24304,-0.24323,-0.24265,-0.24419,-0.24515,-0.24457,0.17569,0.17954,0.17973,0.17896,0.17877,0.17512,0.12323,0.1167,0.18031,0.17896,0.12112,0.12016,0.17742,0.17666,0.17512 -0.27293,-0.24149,-0.021382,0.16728,0.19872,-0.27293,-0.24149,0.010062,0.19872,0.29305,-0.1786,-0.084268,0.10439,0.16728,0.26161,-0.43015,-0.084268,0.041505,0.072949,0.29305,-0.21004,-0.084268,-0.021382,0.19872,0.13584 -0.37029,-0.1073,0.10309,0.10309,0.28719,-0.2388,-0.1073,-0.054702,0.18199,0.33978,-0.37029,-0.2125,0.024195,0.15569,0.28719,-0.1336,-0.1862,-0.0021039,0.10309,0.18199,-0.2125,-0.0021039,-0.1336,0.10309,0.26089 0.36765,0.38343,0.38343,0.3992,0.4255,-0.11084,-0.026712,-0.010937,-0.010937,-0.021454,-0.10559,-0.12662,-0.08981,-0.08981,-0.08981,-0.11084,-0.12662,-0.16343,-0.12662,-0.12662,-0.12136,-0.13713,-0.13713,-0.10559,-0.12136 -0.25537,-0.28096,-0.29376,-0.29376,-0.26817,-0.17861,-0.21699,-0.2042,-0.21699,-0.17861,0.11566,0.19243,0.12845,0.20522,0.2564,0.090072,0.14125,0.11566,0.21801,0.15404,0.10287,0.12845,0.16684,0.17963,0.19243 -0.09183,-0.1412,-0.09183,-0.16589,-0.15354,-0.12886,-0.12886,-0.16589,-0.1412,-0.17823,-0.12886,-0.10417,-0.079487,-0.17823,-0.15354,0.031597,-0.0054308,0.080968,0.056283,0.0069119,0.37719,0.43891,0.35251,0.32782,0.36485 -0.15753,-0.15887,-0.16021,-0.15954,-0.15686,-0.16088,-0.1629,-0.16021,-0.16357,-0.16223,-0.16021,-0.15686,-0.16692,-0.16491,-0.16491,0.3418,0.21495,0.20555,0.20757,0.20824,0.32502,0.28676,0.20824,0.20824,0.21025 -0.24301,-0.24301,-0.2895,-0.25851,-0.19651,-0.16552,-0.13452,-0.18102,-0.24301,-0.10353,0.12894,0.051453,-0.041534,0.0049593,-0.088028,0.25293,0.12894,0.082449,0.11344,0.020457,0.36141,0.34591,0.26842,0.23743,0.19093 -0.26192,-0.28864,-0.34209,-0.23519,-0.28864,-0.15501,-0.12829,-0.10156,-0.10156,-0.10156,0.0053452,-0.048107,0.085524,-0.021381,-0.021381,0.13898,0.085524,0.24588,0.11225,0.032071,0.32606,0.27261,0.19243,0.37951,0.21915 0.10312,0.084867,0.077227,0.06407,-0.3994,0.11033,0.087838,0.084018,0.075105,-0.396,0.12179,0.15235,0.065768,0.072559,-0.3943,0.14513,0.14131,0.065768,0.058977,-0.39218,0.15829,0.14216,0.10057,0.067466,-0.39685 0.15807,0.054706,-0.15998,-0.27925,-0.35082,0.23759,0.094462,-0.03276,-0.22359,-0.36672,0.24554,0.18193,0.062657,-0.12022,-0.24745,0.22964,0.22168,0.086511,-0.088419,-0.21564,0.23759,0.22168,0.16602,0.038803,-0.15203 0.23985,0.2406,-0.1091,-0.10463,-0.12774,0.23165,0.23091,-0.10015,-0.13594,-0.25524,0.21972,0.2227,-0.17695,-0.14564,-0.25301,0.21599,0.21227,-0.17919,-0.17844,-0.22691,0.20705,0.20705,0.20183,-0.19187,-0.24481 -0.20446,-0.16992,-0.049043,0.12364,0.12364,-0.22173,-0.13539,-0.083581,0.10638,0.15818,-0.27354,-0.22173,0.002763,0.19272,0.17545,-0.22173,-0.18719,-0.031774,0.3136,0.29633,-0.29081,-0.13539,0.089107,0.27906,0.36541 -0.17112,-0.18173,-0.15254,0.23757,0.24819,-0.18173,-0.21093,-0.057004,0.22696,0.24553,-0.1897,-0.18173,-0.096812,0.22961,0.24553,-0.195,-0.14458,-0.21093,0.22696,0.2588,-0.17112,-0.19235,-0.070274,0.24023,0.24819 -0.12331,-0.12197,-0.12197,0.24344,0.2431,-0.18567,-0.20008,-0.12197,0.24344,0.24176,-0.19807,-0.20075,-0.12197,0.2431,0.2421,-0.1974,-0.19338,-0.12365,0.24109,0.2421,-0.19371,-0.1974,-0.12331,0.24243,0.2421 0.16651,0.16968,0.17048,0.17048,0.16889,0.15859,0.16176,0.16255,0.16334,0.16493,0.157,0.15621,0.15779,0.16017,0.157,-0.25207,-0.25524,-0.22194,-0.25524,-0.20212,-0.24731,-0.24493,-0.25841,-0.25445,-0.25365 -0.21981,-0.17797,-0.17797,-0.10823,-0.20586,-0.17797,-0.24771,-0.17797,-0.20586,-0.06639,-0.06639,-0.094285,-0.080337,-0.10823,-0.06639,0.11493,0.059137,0.11493,0.15677,0.059137,0.35203,0.26835,0.36598,0.32414,0.36598 0.25432,0.14145,-0.022465,-0.11652,-0.030526,0.20595,0.2785,-0.0090289,-0.10308,-0.1837,0.25163,0.22207,-0.062773,-0.089644,-0.29118,0.33762,-0.054711,-0.10577,-0.10845,-0.29924,0.35912,0.071587,-0.092332,-0.24819,-0.30462 0.28849,0.21257,0.28849,0.22523,0.25053,0.060735,0.13665,0.124,0.21257,0.16196,-0.015184,-0.0025306,0.086041,0.124,0.048082,-0.15437,-0.15437,-0.12906,-0.14172,-0.15437,-0.30621,-0.30621,-0.30621,-0.26825,-0.2809 0.29431,0.26365,0.29431,0.29431,0.34029,0.12569,0.21766,0.17168,0.11037,0.17168,-0.18088,-0.058248,-0.058248,-0.10423,-0.15022,-0.15022,-0.10423,-0.058248,-0.15022,-0.24219,-0.24219,-0.28818,-0.10423,-0.1962,-0.1962 -0.014754,-0.057619,-0.02496,-0.17581,-0.22663,0.27592,0.2306,0.026683,-0.17315,-0.28501,0.27367,0.27204,0.017701,-0.053741,-0.25643,0.27163,0.23509,0.01566,-0.17642,-0.25358,0.26836,0.22958,0.027295,-0.17417,-0.27195 -0.23121,-0.30136,-0.30136,-0.17509,-0.20315,-0.18912,-0.17509,-0.20315,-0.090914,-0.076884,-0.18912,-0.076884,0.0072956,0.0072956,0.049386,0.077446,0.13357,0.13357,0.16163,0.25984,0.20372,0.30193,0.27387,0.27387,0.32999 0.3341,0.2604,0.30953,0.27269,0.27269,0.16214,0.16214,0.10072,0.17442,0.17442,-0.19407,-0.058959,0.039306,-0.02211,-0.02211,-0.19407,-0.20636,-0.19407,-0.14494,-0.14494,-0.23092,-0.30462,-0.20636,-0.13266,-0.20636 0.26438,0.10317,-0.025793,-0.187,-0.025793,0.1999,0.10317,0.0064483,-0.12252,-0.41269,0.29662,0.1999,0.0064483,-0.31596,-0.34821,0.23214,0.070931,0.10317,-0.12252,-0.187,0.32886,0.16765,-0.058034,-0.12252,-0.15476 -0.16024,-0.16681,-0.16024,-0.15202,-0.16024,-0.16845,-0.16517,-0.16024,-0.16517,-0.15859,-0.15531,-0.1701,-0.16517,-0.17502,-0.16024,0.28012,0.27026,0.27026,0.25547,0.24233,0.23575,0.22261,0.21768,0.22425,0.22425 0.12263,0.10831,0.15129,0.065329,-0.32149,0.065329,0.10831,0.13696,0.065329,-0.37879,0.13696,0.12263,0.15129,0.051002,-0.37879,0.093982,0.10831,0.15129,-0.02063,-0.45042,0.10831,0.093982,0.10831,0.022349,-0.42177 0.39167,0.40901,0.40034,0.396,0.38733,-0.043952,-0.052621,-0.059123,-0.052621,-0.056956,-0.11764,-0.1133,-0.11114,-0.12414,-0.12197,-0.10897,-0.10897,-0.12197,-0.12197,-0.12848,-0.1068,-0.095967,-0.11114,-0.11114,-0.11547 -0.20587,-0.18361,-0.18027,0.26272,0.23601,-0.21588,-0.14465,-0.14799,0.23156,0.23267,-0.21922,-0.19696,-0.12239,0.24269,0.23156,-0.20587,-0.17693,-0.11682,0.23378,0.23378,-0.16914,-0.08232,-0.03112,0.24491,0.24936 -0.20984,-0.14215,-0.14215,-0.24368,-0.20984,-0.12523,-0.1083,-0.12523,-0.091381,-0.12523,-0.091381,-0.057536,-0.091381,-0.091381,-0.040614,0.010153,0.027076,-0.023691,0.027076,-0.023691,0.43321,0.3486,0.39937,0.36552,0.33168 -0.17794,-0.16427,-0.15185,0.23709,0.23833,-0.19037,-0.17049,-0.15433,0.25822,0.23088,-0.18291,-0.18664,-0.14066,0.252,0.23585,-0.18167,-0.14936,-0.14191,0.23585,0.25697,-0.17546,-0.13072,-0.14315,0.23833,0.25822 0.14937,0.065141,0.07918,0.023024,-0.39815,0.13534,0.1213,0.10726,0.065141,-0.42622,0.10726,0.093219,0.093219,0.10726,-0.37007,0.10726,0.14937,0.07918,0.10726,-0.38411,0.13534,0.10726,0.10726,0.037063,-0.39815 -0.26058,-0.25698,-0.2714,-0.26419,-0.275,-0.11998,-0.1344,-0.14882,-0.2065,-0.17406,0.20088,0.038647,-0.019035,-0.19208,0.0098061,0.24054,0.22972,0.15041,0.16843,0.17925,0.25496,0.21891,0.21891,0.19006,0.22251 0.16412,0.17035,0.12673,0.0052338,-0.4278,0.15477,0.17658,0.098694,0.0052338,-0.40599,0.17346,0.14231,0.033272,0.0021184,-0.42468,0.15166,0.10804,0.027041,0.0021184,-0.41845,0.15789,0.098694,0.051964,0.01458,-0.18792 -0.24214,-0.24171,-0.24085,-0.243,-0.24042,-0.243,-0.23956,-0.23999,-0.23956,-0.24171,0.22747,0.18712,0.15665,0.1296,0.10041,0.23005,0.19399,0.15922,0.13304,0.10342,0.22747,0.18884,0.1545,0.12145,0.098696 0.36597,0.35776,0.43161,0.4152,0.39879,-0.052515,-0.036104,-0.085338,-0.019693,-0.04431,-0.10995,-0.10175,-0.11816,-0.10175,-0.060721,-0.14278,-0.093543,-0.12637,-0.11816,-0.13457,-0.13457,-0.13457,-0.12637,-0.093543,-0.13457 0.15354,0.091789,0.0751,0.065086,-0.34546,0.1719,0.096795,0.076769,0.071762,-0.36549,0.14019,0.11015,0.09012,0.071762,-0.42723,0.12183,0.098464,0.0751,0.071762,-0.40721,0.1502,0.098464,0.071762,0.071762,-0.4289 -0.26524,-0.32626,-0.16354,-0.28558,-0.18388,-0.082176,-0.20422,-0.22456,-0.18388,-0.10252,0.019527,-0.082176,-0.00081363,0.019527,-0.00081363,0.20259,0.18225,0.019527,0.10089,0.14157,0.406,0.3043,0.22293,0.24327,0.24327 0.31632,0.30962,0.30293,0.29288,0.2728,0.13553,0.12548,0.11544,0.095352,0.095352,0.018347,-0.005089,-0.051961,0.075263,0.061871,-0.18923,-0.20932,-0.18253,-0.19258,-0.19258,-0.21267,-0.22606,-0.2361,-0.25619,-0.26289 -0.11952,-0.088235,0.036921,0.19337,0.2403,-0.33855,-0.11952,0.005632,0.14643,0.22466,-0.36984,-0.056946,0.036921,0.14643,0.17772,-0.40113,-0.041302,-0.025657,0.2403,0.2403,-0.33855,-0.072591,-0.10388,0.16208,0.22466 0.24905,0.27041,0.33449,0.29177,0.31313,0.16361,0.099536,0.1209,0.099536,0.1209,0.056817,-0.0072623,0.0034175,-0.039302,0.014097,-0.13542,-0.1461,-0.13542,-0.15678,-0.12474,-0.27426,-0.28494,-0.27426,-0.24222,-0.31698 -0.19306,-0.20234,-0.10952,-0.17449,-0.17449,-0.23018,-0.23946,-0.18378,-0.21162,-0.18378,-0.17449,-0.15593,0.038983,-0.0074253,-0.090959,0.2339,0.24318,0.2339,0.2339,0.076109,0.30815,0.2803,0.27102,0.22461,0.18749 0.23714,0.25664,0.25664,0.23714,0.25664,0.23714,0.15913,0.21764,0.23714,0.25664,-0.094389,-0.2309,-0.094389,-0.055385,-0.074887,-0.2309,-0.074887,-0.1724,-0.094389,-0.2114,-0.1919,-0.28941,-0.1724,-0.1724,-0.1919 -0.21164,-0.12819,0.0053412,0.055415,0.33916,-0.19495,-0.14488,-0.1115,0.055415,0.38924,-0.14488,-0.12819,-0.044732,-0.044732,0.2724,-0.21164,-0.19495,-0.094806,0.10549,0.35586,-0.26172,-0.094806,-0.044732,0.072106,0.40593 -0.16542,-0.23551,-0.18879,-0.34065,-0.25888,-0.18879,-0.23551,-0.25888,-0.28224,-0.22383,0.17336,0.068224,0.17336,0.10327,0.13832,0.20841,0.17336,0.13832,0.10327,0.10327,0.25514,0.18505,0.18505,0.18505,0.18505 -0.4065,-0.19527,-0.14833,-0.21874,-0.1718,-0.26568,-0.14833,-0.19527,-0.11312,-0.16006,-0.07792,0.015959,-0.019245,0.0042246,-0.019245,0.062899,0.19198,0.15678,0.098104,0.18025,0.2976,0.3328,0.25066,0.2976,0.25066 -0.24495,-0.38103,-0.29938,-0.24495,-0.24495,-0.10887,-0.19052,-0.13608,-0.08165,-0.13608,0.027217,-0.027217,0.1633,-0.08165,0,0.1633,0.13608,0.10887,0.10887,0.1633,0.38103,0.27217,0.24495,0.21773,0.19052 0.38401,0.41121,0.37041,0.41121,0.40441,-0.057928,-0.057928,-0.057928,-0.078325,-0.037531,-0.10552,-0.091923,-0.078325,-0.091923,-0.085124,-0.13272,-0.12592,-0.12592,-0.13952,-0.11912,-0.11912,-0.12592,-0.13272,-0.098722,-0.11912 -0.23923,-0.23953,-0.23862,-0.23983,-0.23953,-0.23953,-0.23923,-0.23923,-0.23923,-0.23923,0.20185,0.20668,0.16593,0.10524,0.067505,0.21483,0.21725,0.15928,0.12306,0.076864,0.22751,0.22933,0.17559,0.13332,0.088941 -0.23957,-0.2422,-0.23994,-0.24032,-0.24032,-0.23844,-0.23844,-0.2422,-0.24032,-0.23881,0.2238,0.185,0.14055,0.11719,0.083662,0.24377,0.1948,0.15411,0.11945,0.095718,0.24339,0.19969,0.16579,0.13226,0.10137 0.35405,0.35405,0.40378,0.30432,0.40378,0.039118,0.039118,0.055693,0.0059671,0.088844,-0.043759,-0.093485,-0.060334,-0.093485,-0.11006,-0.22609,-0.19294,-0.14321,-0.11006,-0.14321,-0.19294,-0.17636,-0.15979,-0.14321,-0.15979 0.2073,0.21261,0.21128,0.036098,-0.30896,0.21659,0.20597,-0.091307,-0.08998,-0.29834,0.21261,0.20863,-0.12581,-0.1351,-0.3355,0.20199,0.19934,-0.12979,-0.11918,-0.26384,0.20199,0.2073,-0.087326,-0.093962,-0.2426 -0.20381,-0.24241,-0.26022,-0.26319,-0.24538,-0.15927,-0.17709,-0.21569,-0.21569,-0.19787,0.10499,0.087177,-0.061285,-0.055346,0.048577,0.099054,0.18219,0.15547,0.1911,0.19704,0.10796,0.17922,0.3455,0.31878,0.28018 -0.15769,-0.16234,-0.16182,-0.16647,-0.16698,-0.15717,-0.16079,-0.16285,-0.16285,-0.16492,-0.15614,-0.15717,-0.15872,-0.16027,-0.15924,0.32032,0.31825,0.21656,0.20778,0.1701,0.28883,0.28367,0.19952,0.2114,0.19901 0.29468,-0.10625,-0.13966,-0.13966,-0.13966,0.31696,0.049671,-0.16193,-0.16193,-0.16193,0.32253,0.16104,-0.13966,-0.16193,-0.17307,0.28355,0.26127,-0.089541,-0.16193,-0.19534,0.28912,0.29468,0.01626,-0.19534,-0.16193 0.36329,0.36329,0.3985,0.34569,0.3809,0.028866,0.081671,0.081671,0.046468,-0.04154,-0.12955,-0.11195,-0.12955,-0.12955,-0.094344,-0.11195,-0.14715,-0.14715,-0.12955,-0.19995,-0.16475,-0.18235,-0.16475,-0.076742,-0.12955 -0.23869,-0.24038,-0.23975,-0.23848,-0.23933,-0.23806,-0.24017,-0.24017,-0.23933,-0.24144,0.17534,0.17112,0.16901,0.17491,0.05463,0.17956,0.18905,0.19264,0.18652,0.053364,0.18969,0.2091,0.20214,0.19369,0.055052 -0.12738,-0.14284,-0.20467,-0.096463,-0.17376,-0.11192,-0.081004,-0.14284,-0.12738,-0.17376,-0.12738,-0.12738,-0.081004,-0.081004,-0.17376,0.011749,0.073584,0.011749,-0.019169,0.011749,0.32092,0.3673,0.38276,0.39822,0.41368 -0.28018,-0.21128,0.14468,0.22506,0.19062,-0.23425,-0.17684,0.14468,0.25951,0.19062,-0.28018,-0.21128,0.041338,0.22506,0.19062,-0.28018,-0.21128,-0.0045932,0.14468,0.22506,-0.1998,-0.24573,0.052821,0.19062,0.11024 0.33526,0.17761,-0.058855,-0.03258,-0.24277,0.17761,0.23016,-0.16395,-0.1114,-0.26905,0.17761,0.098792,-0.1114,-0.19023,-0.29532,0.25644,0.17761,-0.19023,-0.2165,-0.13768,0.41408,0.17761,-0.03258,-0.058855,-0.1114 0.2796,0.20691,0.2796,0.30383,0.31595,0.14634,0.14634,0.12211,0.13423,0.1948,-0.047489,-0.047489,-0.047489,0.037313,0.061541,-0.21709,-0.16863,-0.1444,-0.095947,-0.12018,-0.27766,-0.30189,-0.26555,-0.21709,-0.27766 0.15231,0.14922,0.14973,-0.24325,-0.24248,0.1134,0.14896,0.15643,-0.24094,-0.24429,0.10876,0.14741,0.21209,-0.24738,-0.24557,0.11623,0.22833,0.22137,-0.24686,-0.24532,0.12242,0.22833,0.16365,-0.22083,-0.24171 0.22874,0.17139,-0.17802,-0.19777,-0.2129,0.22818,0.17839,-0.17508,-0.18897,-0.21008,0.22761,0.18325,-0.1726,-0.1875,-0.20647,0.231,0.23066,0.16643,-0.18299,-0.20003,0.23484,0.23202,0.1706,-0.17407,-0.19665 -0.37255,-0.30956,-0.23871,-0.25445,-0.24658,-0.30169,-0.10487,-0.081249,-0.089122,-0.16785,-0.073376,0.084083,0.11557,0.091956,-0.0025193,0.1077,0.17856,0.1943,0.16281,0.14707,0.21792,0.21792,0.28878,0.24154,0.1943 -0.12215,-0.21469,-0.21469,-0.30723,-0.18385,-0.153,-0.21469,-0.12215,-0.24554,-0.24554,-0.091306,-0.029613,-0.029613,-0.029613,0.03208,0.062927,0.24801,0.15547,0.15547,0.15547,0.34055,0.3097,0.27885,0.15547,0.3097 -0.14711,-0.15468,-0.15468,-0.16225,-0.14711,-0.1572,-0.14963,-0.14711,-0.14711,-0.14711,-0.13701,-0.13701,-0.13701,-0.14458,-0.1572,0.054825,-0.0032309,0.14065,0.14065,0.17598,0.39306,0.29967,0.34258,0.3552,0.32743 0.23555,0.20987,0.22592,0.27301,0.28532,0.23555,0.23127,0.21736,0.23448,0.29174,-0.16042,-0.15507,-0.15347,-0.17005,-0.16256,-0.16149,-0.16042,-0.1631,-0.16256,-0.16631,-0.16256,-0.16631,-0.1631,-0.16631,-0.16631 -0.10078,-0.17029,-0.18766,-0.11816,-0.11816,-0.11816,-0.11816,-0.06603,-0.18766,-0.11816,-0.11816,-0.11816,-0.083406,-0.11816,-0.17029,0.038228,0.020851,-0.031277,0.0034752,-0.031277,0.40313,0.351,0.38575,0.351,0.4205 0.26844,0.31741,0.25727,0.21861,0.1937,0.26715,0.25512,0.24567,0.19542,0.21432,-0.16109,-0.16496,-0.16625,-0.16625,-0.16496,-0.16238,-0.16238,-0.16281,-0.16238,-0.16195,-0.15894,-0.16023,-0.1598,-0.15894,-0.1598 0.33405,0.34735,0.28086,0.29416,0.25426,0.17447,0.10798,0.17447,0.094684,0.054789,0.0015958,-0.038299,0.014894,-0.078194,-0.038299,-0.11809,-0.14469,-0.14469,-0.11809,-0.14469,-0.22448,-0.31756,-0.21118,-0.31756,-0.23777 -0.24002,-0.19001,0.14334,0.21835,0.17668,-0.26502,-0.24002,0.15168,0.16001,0.20168,-0.26502,-0.24002,0.085006,0.20168,0.20168,-0.24002,-0.23168,0.085006,0.16835,0.16001,-0.26502,-0.24002,0.14334,0.13501,0.18501 -0.25687,-0.29884,0.12088,0.099894,0.33074,-0.23588,-0.2149,-0.0050367,0.22581,0.33074,-0.19391,-0.047009,-0.047009,0.078908,0.22581,-0.29884,-0.088981,0.01595,0.078908,0.26778,-0.34082,-0.067995,-0.0050367,0.16285,0.16285 0.23087,0.33124,-0.14555,-0.24592,-0.24592,0.18068,0.20577,-0.17064,-0.070264,-0.22083,0.23087,0.23087,0.080302,-0.22083,-0.095358,0.20577,0.18068,-0.04517,-0.22083,-0.22083,0.23087,0.18068,0.055207,-0.17064,-0.27102 0.22861,0.2747,-0.14011,-0.20157,-0.12475,0.24397,0.25934,-0.10939,-0.10939,-0.10939,0.2747,0.18252,-0.20157,-0.20157,-0.17084,0.18252,0.22861,-0.21693,-0.15548,-0.15548,0.2747,0.25934,-0.18621,-0.20157,-0.12475 0.13991,-0.014317,-0.10453,-0.25294,-0.36352,0.18065,0.040973,-0.081248,-0.18019,-0.31696,0.24468,0.12536,-0.011407,-0.13945,-0.23839,0.33489,0.18356,0.072984,-0.057968,-0.17728,0.41055,0.24759,0.10208,0.0002328,-0.14527 -0.26007,-0.041261,-0.10378,0.20881,0.27132,-0.26007,-0.22881,-0.041261,0.11503,0.27132,-0.1663,-0.19755,-0.07252,0.11503,0.24007,-0.26007,-0.10378,0.021256,0.27132,0.33384,-0.29133,-0.07252,0.021256,-0.07252,0.30258 0.15369,0.20196,0.21536,-0.17075,-0.278,0.12152,0.13761,0.16174,-0.22437,-0.29945,0.17514,0.089342,0.094704,-0.29945,-0.30749,0.18855,0.13492,0.094704,-0.20292,-0.27532,0.22877,0.14029,0.11616,0.083979,-0.28068 0.15007,0.061116,-0.20051,-0.2633,-0.32086,0.19193,0.1396,-0.15342,-0.23191,-0.279,0.30705,0.18147,-0.01214,-0.16388,-0.22667,0.28612,0.25472,0.045419,-0.054,-0.15865,0.28088,0.27042,0.045419,-0.043535,-0.10633 -0.16211,-0.16211,-0.15093,0.24037,0.26832,-0.17329,-0.17888,-0.07826,0.24037,0.25714,-0.17329,-0.19565,-0.16211,0.24037,0.2236,-0.16211,-0.16211,-0.15652,0.24037,0.22919,-0.21801,-0.19565,-0.09503,0.24596,0.24037 -0.31565,-0.26066,-0.24691,-0.26066,-0.28815,-0.081937,-0.095685,-0.10943,-0.10943,-0.20567,0.014298,0.014298,-0.068189,-0.095685,-0.095685,0.23426,0.19302,0.20677,0.22051,0.24801,0.26176,0.27551,0.27551,0.20677,0.083037 0.17041,0.14082,0.14082,-0.036684,-0.21419,0.34791,0.14082,0.11124,-0.036684,-0.36211,0.19999,0.17041,-0.0071002,-0.066269,-0.30294,0.081653,0.22957,-0.036684,-0.18461,-0.42128,0.14082,0.14082,0.11124,-0.18461,-0.27336 0.26696,0.25407,0.15154,-0.06126,-0.3005,0.24891,0.24375,0.054167,-0.067708,-0.31275,0.2315,0.22892,-0.0083829,-0.091568,-0.31662,0.06126,0.21409,-0.0032242,-0.083829,-0.3308,0.04256,0.065129,-0.038046,-0.098016,-0.35015 0.36916,0.36916,0.41524,0.3922,0.41524,-0.068669,-0.057148,-0.022583,0.00046087,-0.034104,-0.1378,-0.11476,-0.11476,-0.11476,-0.068669,-0.11476,-0.12628,-0.091713,-0.12628,-0.10323,-0.16084,-0.14932,-0.10323,-0.10323,-0.14932 0.2086,0.30342,0.2357,0.2357,0.33052,0.15442,0.12733,0.15442,0.12733,0.15442,0.059601,-0.0081274,-0.0081274,0.11378,0.0054183,-0.18422,-0.22486,-0.13004,-0.18422,-0.10295,-0.27904,-0.29259,-0.2384,-0.25195,-0.30613 -0.15095,-0.15095,-0.26129,-0.10681,-0.12888,-0.15095,-0.12888,-0.19508,-0.19508,-0.19508,-0.040606,-0.17301,-0.17301,-0.10681,-0.15095,0.15801,0.069736,0.24628,0.24628,0.13594,0.35662,0.26835,0.26835,0.35662,0.20214 -0.29915,-0.23053,-0.23053,-0.20766,-0.20766,-0.070441,-0.11618,-0.18479,-0.11618,-0.18479,-0.070441,-0.11618,0.089652,-0.093311,-0.04757,0.066782,0.089652,0.066782,0.18113,0.089652,0.22687,0.38697,0.29549,0.31836,0.3641 0.29424,0.36312,0.29424,0.32179,0.34934,0.12894,0.11516,0.12894,0.18404,0.12894,-0.11902,-0.16035,-0.1879,-0.14657,-0.1879,-0.16035,-0.10524,-0.20167,-0.17412,-0.16035,-0.16035,-0.16035,-0.11902,-0.1879,-0.077693 0.34777,0.33504,0.016803,-0.13595,-0.13595,0.38595,0.16956,-0.072303,-0.17414,-0.17414,0.33504,-0.034115,-0.072303,-0.14868,-0.25051,0.33504,0.08045,-0.11049,-0.14868,-0.18687,0.08045,0.054991,-0.12322,-0.18687,-0.18687 0.41783,0.34375,0.17089,0.24497,0.26966,0.17089,0.19558,0.072108,0.17089,0.17089,-0.051364,-0.12545,-0.02667,-0.051364,-0.15014,-0.10075,-0.19953,-0.12545,-0.12545,-0.17484,-0.17484,-0.24892,-0.12545,-0.27361,-0.27361 -0.24329,-0.058177,-0.058177,0.10049,0.33849,-0.1904,-0.24329,-0.0052889,0.0476,0.20627,-0.16395,-0.13751,0.074044,0.12693,0.31204,-0.21684,-0.084622,-0.058177,0.10049,0.39138,-0.40195,-0.21684,0.074044,0.0476,0.25915 0.23912,0.093314,0.093314,-0.023328,-0.43158,0.29744,0.15164,-0.023328,-0.11081,-0.19829,0.29744,0.064153,-0.023328,-0.31493,-0.31493,0.093314,0.20996,-0.052489,-0.08165,-0.19829,0.26828,0.20996,0.0058321,0.0058321,-0.25661 0.26186,0.30551,0.30551,0.30551,0.30551,0.17457,0.17457,0.10911,0.10911,0.17457,-0.1964,-0.1964,-0.021822,-0.021822,0.043644,-0.1964,-0.10911,-0.1964,-0.10911,-0.10911,-0.24004,-0.1964,-0.24004,-0.1964,-0.24004 0.17994,0.16158,0.19391,-0.17568,-0.17727,0.24899,0.20548,-0.17009,-0.17647,-0.17847,0.24978,0.25577,-0.17408,-0.17647,-0.17727,0.24978,0.25617,-0.17608,-0.17647,-0.17847,0.25098,0.21466,-0.17528,-0.17767,-0.17727 -0.20248,-0.33227,-0.2544,-0.2544,-0.15056,-0.046726,-0.15056,-0.20248,-0.28035,-0.20248,-0.072684,-0.046726,0.083068,0.03115,-0.020767,0.1869,0.21286,0.10903,0.057109,0.21286,0.23882,0.26478,0.3167,0.26478,0.23882 -0.29539,-0.24326,-0.24288,-0.24363,-0.15876,-0.29294,-0.29633,-0.24439,-0.2442,-0.16008,0.17133,0.15929,0.15778,0.1591,0.16305,0.17491,0.15722,0.15778,0.15966,0.1623,0.15703,0.15552,0.1623,0.16324,0.16136 -0.24414,-0.24316,-0.24355,-0.24473,-0.24277,-0.24002,-0.23943,-0.23943,-0.24002,-0.24002,0.14096,0.14725,0.23488,0.15099,0.15354,0.14037,0.1504,0.22231,0.22545,0.1504,0.14155,0.11208,0.2227,0.11208,0.11228 0.37078,-0.044431,-0.072822,-0.12014,-0.15444,0.35895,-0.042065,-0.074005,-0.12842,-0.15681,0.34476,-0.019589,-0.12369,-0.14262,-0.16627,0.34712,-0.020772,-0.092932,-0.16154,-0.15681,0.33766,0.31873,-0.060992,-0.16746,-0.17219 -0.31827,-0.25141,-0.31827,-0.22912,-0.16226,-0.20683,-0.11768,-0.20683,-0.16226,-0.11768,-0.028529,-0.028529,-0.0062407,-0.0062407,0.060624,0.12749,0.1052,0.19435,0.28351,0.14978,0.17206,0.28351,0.17206,0.21664,0.39495 -0.17945,-0.11411,-0.223,-0.17945,-0.20122,-0.223,-0.11411,-0.11411,-0.11411,-0.223,-0.11411,-0.17945,-0.11411,-0.13589,-0.11411,0.19077,0.2561,0.14722,0.14722,0.23433,0.16899,0.2561,0.2561,0.40854,0.27788 -0.29669,-0.21298,-0.079029,0.088406,0.13864,-0.31344,-0.26321,0.10515,0.18887,0.2391,-0.22972,-0.16275,0.13864,0.17212,0.12189,-0.31344,-0.045542,0.071662,0.13864,0.30607,-0.22972,-0.12926,0.071662,0.20561,0.28933 -0.2529,-0.20542,0.13378,0.17448,0.2491,-0.19185,-0.19863,0.17448,0.2084,0.22197,-0.22577,-0.18506,0.018452,0.19483,0.24232,-0.22577,-0.17828,-0.15115,0.19483,0.22875,-0.23255,-0.21898,-0.16471,0.17448,0.21519 0.22785,0.30505,0.22814,0.23065,0.23139,0.19065,0.30549,0.22976,0.29206,0.1877,-0.16007,-0.16067,-0.16111,-0.16185,-0.1617,-0.16185,-0.16126,-0.16288,-0.16244,-0.16258,-0.16185,-0.16229,-0.16303,-0.16244,-0.16273 -0.32118,-0.34854,-0.32118,-0.32118,-0.29383,-0.116,-0.10232,-0.061282,-0.12968,-0.10232,0.020792,0.020792,0.020792,0.020792,0.0071131,0.25334,0.23966,0.19862,0.22598,0.25334,0.18494,0.2123,0.1439,0.15758,0.15758 0.25855,-0.090921,-0.13375,-0.13862,-0.13959,0.25563,0.22837,-0.13959,-0.14835,-0.14835,0.27218,0.22448,-0.15517,-0.15906,-0.15517,0.28386,0.28386,-0.1542,-0.16296,-0.16393,0.28678,0.29359,-0.16198,-0.16782,-0.16782 0.17278,0.17353,0.16829,0.17128,0.17054,0.16231,0.1653,0.16231,0.16455,0.16156,0.15259,0.15558,0.15633,0.15259,0.15857,-0.24511,-0.23091,-0.24885,-0.23913,-0.24885,-0.23988,-0.25334,-0.24437,-0.25109,-0.24661 -0.23769,-0.25096,-0.025467,0.23982,0.23982,-0.22443,-0.15811,-0.078524,0.26634,0.21329,-0.15811,-0.22443,-0.025467,0.26634,0.25308,-0.15811,-0.26422,-0.012203,0.25308,0.14697,-0.25096,-0.17137,-0.038731,0.22655,0.17349 0.10592,0.07161,0.068995,0.075205,-0.39115,0.13076,0.079126,0.077819,0.076512,-0.39703,0.12586,0.12815,0.082721,0.071283,-0.39801,0.16115,0.12553,0.089911,0.071283,-0.39703,0.16344,0.12259,0.08893,0.06442,-0.39801 -0.36017,0.013709,-0.17323,0.16949,0.26296,-0.2667,-0.20439,0.10718,0.13833,0.26296,-0.20439,-0.17323,0.076022,0.13833,0.16949,-0.32901,-0.20439,0.013709,0.16949,0.29412,-0.14207,-0.17323,0.013709,0.13833,0.26296 0.21932,0.12442,0.21932,0.17715,0.11388,0.28259,0.21932,0.19824,0.19824,0.24041,0.050613,0.050613,0.092791,0.061158,0.082247,-0.22354,-0.213,-0.19191,-0.26572,-0.19191,-0.31844,-0.23409,-0.23409,-0.22354,-0.23409 0.27326,0.25579,0.34315,0.32568,0.32568,0.15096,0.15096,0.063598,0.13349,0.063598,-0.041234,-0.023762,0.011182,0.028654,0.011182,-0.16354,-0.14607,-0.14607,-0.18101,-0.16354,-0.26837,-0.28584,-0.21595,-0.2509,-0.2509 0.24181,0.21272,0.18946,-0.16974,-0.17701,0.20109,0.20545,-0.14938,-0.18137,-0.17701,0.19673,0.19527,-0.14792,-0.18137,-0.1741,0.20109,0.21563,-0.16247,-0.18283,-0.19155,0.26653,0.33052,-0.17701,-0.18428,-0.20028 -0.16231,-0.16292,-0.16322,-0.16322,-0.16231,-0.16231,-0.16231,-0.16322,-0.1617,-0.16231,-0.16049,-0.16352,-0.1614,-0.16261,-0.16231,0.21017,0.2451,0.26242,0.2849,0.28976,0.21168,0.21472,0.21685,0.21229,0.28825 -0.077044,-0.084213,-0.1798,-0.23237,-0.2252,-0.069875,-0.074654,-0.1559,-0.16307,-0.17024,-0.081823,-0.079433,-0.11767,-0.10811,-0.091382,-0.00057353,0.0042059,0.016154,0.018544,0.0042059,0.4224,0.40328,0.41045,0.3531,0.27902 -0.26115,-0.25344,-0.23995,-0.23899,-0.24091,-0.23834,-0.23802,-0.23995,-0.23995,-0.23995,0.19622,0.19718,0.1975,0.19622,0.14772,0.19461,0.18498,0.1429,0.13391,0.13005,0.19525,0.14419,0.12909,0.12202,0.11881 0.35942,0.039812,-0.055048,-0.15137,-0.18639,0.39882,0.033975,-0.02732,-0.15866,-0.17034,0.43093,0.039812,-0.084236,-0.16158,-0.18056,0.069,0.051487,-0.072561,-0.15429,-0.1791,0.46887,0.041271,-0.043373,-0.13531,-0.17326 -0.27516,0.02275,-0.19391,0.15816,0.2665,-0.19391,-0.058499,0.02275,0.049832,0.2665,-0.32933,-0.13975,0.02275,0.076915,0.37483,-0.27516,-0.13975,0.02275,0.076915,0.2665,-0.24808,-0.13975,-0.058499,0.049832,0.37483 -0.16334,-0.16129,-0.16211,-0.16334,-0.16457,-0.16334,-0.16006,-0.16252,-0.1617,-0.16457,-0.1576,-0.15965,-0.15678,-0.16457,-0.15555,0.38316,0.21002,0.23381,0.22971,0.21617,0.23874,0.23381,0.2371,0.22315,0.21535 0.29125,0.33294,0.40242,0.40242,0.40242,0.055027,-0.00055583,0.055027,0.055027,0.055027,-0.08393,-0.08393,-0.08393,-0.1673,-0.12562,-0.08393,-0.08393,-0.1673,-0.1673,-0.1673,-0.1673,-0.12562,-0.1673,-0.1673,-0.20899 0.40136,-0.058935,-0.10783,-0.11102,-0.11102,0.40136,-0.066376,-0.10146,-0.11528,-0.11102,0.40348,-0.065313,-0.10571,-0.11102,-0.11102,0.39498,-0.072754,-0.11102,-0.11102,-0.11528,0.39073,-0.065313,-0.11102,-0.11102,-0.11846 0.12905,0.10957,0.056001,0.038957,-0.38227,0.10713,0.099829,0.051132,0.0024348,-0.38714,0.13392,0.168,0.168,-0.18018,-0.42366,0.10957,0.15826,0.11931,0.029218,-0.31409,0.2167,0.19479,0.1047,0.026783,-0.33601 0.34078,0.30291,0.20825,0.32185,0.20825,0.18932,0.30291,0.09466,0.18932,0.037864,0.037864,-0.018932,-0.075728,-0.11359,-0.09466,-0.17039,-0.17039,-0.13252,-0.15146,-0.11359,-0.26505,-0.20825,-0.26505,-0.22718,-0.22718 0.087767,-0.016718,-0.06896,-0.13862,-0.21263,0.40412,0.012306,-0.089276,-0.13136,-0.20102,0.3751,0.034074,-0.080569,-0.13136,-0.18651,0.3751,0.022464,-0.06896,-0.13136,-0.19666,0.378,0.31705,-0.060253,-0.1154,-0.17635 0.052637,-0.021072,-0.088277,-0.14681,-0.18583,0.42118,0.043965,-0.08069,-0.1338,-0.17174,0.42118,0.038545,-0.077438,-0.13597,-0.17391,0.42443,0.047217,-0.078522,-0.13055,-0.16524,0.43094,0.055889,-0.065514,-0.12188,-0.15873 0.036531,0.17139,0.0034862,0.0034862,-0.37054,0.17759,0.17594,0.005758,0.0041058,-0.37012,0.17965,0.17738,0.005758,0.00018174,-0.36723,0.18027,0.17862,0.18172,0.0005948,-0.36785,0.18089,0.18172,-0.0008509,-0.00064437,-0.36785 -0.43153,-0.21688,-0.21688,-0.21757,-0.21734,-0.21688,-0.21642,-0.21642,-0.21688,-0.21688,0.14099,0.1411,0.1475,0.14865,0.14785,0.14362,0.14145,0.14716,0.15036,0.21471,0.13699,0.14648,0.14968,0.21277,0.21437 0.40083,0.44013,0.40083,0.32224,0.37463,-0.0052396,-0.057636,-0.057636,-0.018339,-0.044537,-0.070735,-0.12313,-0.057636,-0.057636,-0.12313,-0.096933,-0.14933,-0.12313,-0.096933,-0.096933,-0.20173,-0.096933,-0.11003,-0.16243,-0.18863 0.22464,0.21267,-0.17267,-0.17383,-0.18194,0.20765,0.21267,-0.17383,-0.18155,-0.17808,0.29492,0.22464,-0.17499,-0.1746,-0.18425,0.22426,0.24047,-0.18194,-0.16997,-0.18348,0.20611,0.22117,0.20418,-0.1692,-0.17306 0.16416,0.16416,0.16186,0.1633,0.16531,0.16416,0.16186,0.16244,0.1633,0.16416,0.16416,0.16244,0.16244,0.16186,0.16244,-0.23438,-0.23467,-0.23295,-0.23381,-0.23467,-0.25448,-0.2562,-0.25391,-0.25506,-0.25793 -0.1687,-0.083669,-0.1857,0.13741,0.39249,-0.1687,-0.10067,-0.13469,0.13741,0.35848,-0.25373,-0.10067,-0.15169,0.069384,0.27345,-0.23672,-0.066663,-0.049657,0.13741,0.29046,-0.25373,-0.13469,-0.15169,0.17142,0.27345 0.35866,0.36616,0.35116,0.37367,0.32114,0.096043,0.10355,0.081036,0.066029,0.036016,-0.054024,-0.099044,-0.14406,-0.069031,-0.084037,-0.17408,-0.13656,-0.18158,-0.14406,-0.18908,-0.16657,-0.20409,-0.17408,-0.15907,-0.17408 0.18918,0.18918,0.03591,-0.20495,-0.27064,0.079702,0.079702,0.03591,-0.029779,-0.27064,0.25487,0.21108,-0.029779,-0.13926,-0.20495,0.29866,0.18918,0.18918,-0.051675,-0.33632,0.32056,0.014014,-0.073571,-0.073571,-0.40201 -0.34986,-0.34986,-0.29907,-0.36002,-0.31939,-0.065421,-0.07558,-0.095897,-0.13653,-0.11621,0.13775,0.13775,0.056482,0.066641,0.026006,0.23934,0.20886,0.14791,0.14791,0.086958,0.25965,0.21902,0.1987,0.14791,0.086958 -0.19755,-0.19755,-0.17787,-0.19755,-0.13852,-0.1582,-0.1582,-0.1582,-0.17787,-0.21723,-0.059816,-0.059816,-0.099168,-0.040139,-0.099168,0.19597,0.11727,0.1763,-0.00078705,-0.020463,0.39274,0.35338,0.29436,0.35338,0.27468 -0.23405,-0.33707,-0.27526,-0.33707,-0.23405,-0.069227,-0.17224,-0.11043,-0.11043,-0.11043,0.095599,-0.048624,0.054392,-0.069227,-0.048624,0.095599,0.19861,0.1162,0.13681,0.074996,0.30163,0.15741,0.34284,0.34284,0.23982 0.26702,0.2396,0.25331,0.18477,0.26702,0.14365,0.19848,0.14365,0.15736,0.075116,0.075116,-0.0071278,0.10253,0.047701,0.0065795,-0.10308,-0.13049,-0.11679,-0.10308,-0.11679,-0.28127,-0.30869,-0.3361,-0.36352,-0.29498 0.30175,0.28942,0.2198,0.20783,0.20747,0.29196,0.28036,0.22161,0.21509,0.19442,-0.1613,-0.16457,-0.1584,-0.1584,-0.16457,-0.16312,-0.16312,-0.16058,-0.16203,-0.1613,-0.16167,-0.16275,-0.16203,-0.16275,-0.16312 -0.29026,-0.29026,0.021543,0.021543,0.33335,-0.20523,-0.035149,-0.063495,0.16327,0.33335,-0.20523,-0.17688,-0.035149,0.078235,0.19162,-0.17688,-0.17688,-0.063495,0.16327,0.19162,-0.29026,-0.12019,0.021543,0.27666,0.33335 -0.16204,-0.15263,-0.15577,0.1643,0.27727,-0.15577,-0.15263,-0.16518,0.20196,0.27727,-0.16832,-0.16204,-0.14949,0.21137,0.27413,-0.17146,-0.15891,-0.18087,0.24275,0.2553,-0.17146,-0.1746,-0.14949,0.24275,0.28355 0.26611,0.26611,0.23122,0.26611,0.24285,0.091649,0.10328,0.16143,0.1498,0.091649,0.091649,0.091649,0.021865,0.021865,0.080018,-0.08281,-0.16422,-0.08281,-0.1177,-0.16422,-0.31542,-0.2689,-0.31542,-0.35031,-0.31542 0.23096,0.14707,0.082323,0.058615,-0.33714,0.21819,0.127,0.06135,-0.2651,-0.35902,0.19995,0.12336,0.045849,0.025788,-0.36084,0.20451,0.11333,0.048584,0.013933,-0.34625,0.19813,0.096913,0.024876,-0.0061277,-0.34625 -0.22289,-0.2241,-0.22087,-0.26685,-0.28178,-0.2241,-0.2249,-0.22289,-0.22652,-0.28299,0.14015,0.13813,0.1466,0.13894,0.14579,0.13571,0.15628,0.20711,0.19985,0.18815,0.0090516,0.19702,0.1942,0.20348,0.19743 0.1848,0.14136,0.049459,-0.092568,-0.57713,0.20318,0.18814,0.022724,-0.12933,-0.18447,0.12632,0.18146,0.0528,-0.16609,-0.18948,0.21989,0.20819,0.03275,-0.14437,-0.2112,0.24662,0.24161,-0.005681,-0.1711,-0.22791 0.42235,-0.052522,-0.097748,-0.11132,-0.11885,0.42838,-0.046492,-0.093225,-0.11735,-0.11282,0.38617,-0.061567,-0.10378,-0.11132,-0.11282,0.36657,-0.09021,-0.11132,-0.1083,-0.11584,0.38466,-0.088703,-0.10529,-0.11735,-0.11132 0.19664,0.1718,0.1718,0.14489,0.14489,0.1925,0.16352,0.16973,0.1511,0.14075,0.16766,0.1718,0.16559,0.1511,0.13868,-0.24838,-0.24424,-0.22768,-0.22561,-0.22768,-0.25666,-0.25666,-0.25045,-0.25666,-0.24838 0.33557,0.3783,0.41391,0.44952,0.38543,-0.048997,-0.063241,-0.013389,-0.027632,-0.048997,-0.11309,-0.091727,-0.1487,-0.091727,-0.098849,-0.11309,-0.11309,-0.091727,-0.12734,-0.12021,-0.10597,-0.15582,-0.13446,-0.14158,-0.11309 0.47476,0.009309,-0.08766,-0.10705,-0.12645,0.44567,-0.12645,-0.097357,-0.10705,-0.11675,0.40688,-0.068266,-0.08766,-0.11675,-0.11675,0.3487,-0.058569,-0.11675,-0.077963,-0.12645,0.27112,-0.039175,-0.097357,-0.14584,-0.13614 0.23165,0.22775,-0.17555,-0.17803,-0.17841,0.23146,0.22746,-0.17593,-0.17784,-0.17869,0.22737,0.2247,-0.17565,-0.17803,-0.17803,0.22584,0.22185,-0.1747,-0.17755,-0.17812,0.22813,0.22013,0.21528,-0.17698,-0.17812 0.17277,0.12269,0.085133,-0.20282,-0.36557,0.18529,0.16025,0.097653,-0.1277,-0.32801,0.12269,0.13521,0.12269,0.022535,-0.40313,0.13521,0.097653,0.12269,0.010016,-0.40313,0.11017,0.14773,0.19781,0.072614,-0.29045 0.23438,0.11881,0.10725,-0.19323,-0.20479,0.22282,0.30372,0.095692,-0.34347,-0.21635,0.24593,0.095692,0.11881,-0.18168,-0.32036,0.16503,0.17659,0.037907,0.02635,-0.2279,0.18815,0.10725,-0.031435,-0.20479,-0.32036 -0.13558,-0.21565,-0.29572,-0.29572,-0.29572,-0.21565,-0.21565,-0.13558,-0.055514,-0.13558,-0.0021352,-0.0021352,-0.0021352,-0.0021352,-0.055514,0.18469,0.077933,0.077933,0.077933,0.18469,0.26476,0.26476,0.18469,0.37152,0.37152 -0.3655,-0.10336,0.027712,0.12133,0.12133,-0.2157,-0.19698,0.065161,0.15878,0.12133,-0.30933,-0.06591,0.065161,0.19623,0.19623,-0.30933,-0.19698,0.083885,0.23368,0.2524,-0.2906,-0.19698,0.14006,0.27113,0.19623 -0.13662,-0.12656,-0.13087,-0.13805,-0.13662,-0.12082,-0.12369,-0.12369,-0.12656,-0.12513,-0.094967,-0.087785,-0.090658,-0.097839,-0.10646,-0.034643,-0.049006,-0.043261,-0.037516,-0.037516,0.3431,0.39768,0.41635,0.38044,0.43071 -0.28607,-0.060226,-0.21079,0.065245,0.29109,-0.26098,-0.060226,-0.010038,0.14053,0.31619,-0.26098,-0.11041,-0.13551,0.065245,0.29109,-0.11041,-0.13551,-0.060226,0.21581,0.34128,-0.26098,-0.11041,-0.11041,0.16562,0.29109 0.14782,0.28302,0.19288,0.19288,0.1328,0.26799,0.11777,0.11777,0.26799,0.16284,0.057685,0.087729,0.11777,0.087729,0.10275,-0.18267,-0.22774,-0.19769,-0.18267,-0.22774,-0.25778,-0.33289,-0.25778,-0.21271,-0.25778 -0.32162,-0.13066,0.14561,0.16999,0.16593,-0.33381,-0.18348,0.13343,0.1578,0.17812,-0.29318,-0.15504,0.1578,0.1578,0.15374,-0.30943,-0.11441,0.14155,0.16187,0.16593,-0.32568,-0.19161,0.14968,0.1578,0.16187 -0.313,-0.10222,-0.049531,0.10855,0.37201,-0.33934,-0.075878,0.10855,0.13489,0.31932,-0.33934,-0.12857,0.029508,0.055854,0.24028,-0.20761,-0.10222,-0.023185,0.21393,0.26663,-0.2603,-0.15492,0.13489,0.0031616,0.10855 0.1363,0.1206,0.16771,0.07349,-0.36619,0.1363,0.1363,0.1363,-0.067837,-0.35049,0.1206,0.07349,0.16771,-0.052134,-0.429,0.089193,0.07349,0.152,0.07349,-0.35049,0.089193,0.1206,0.152,0.010678,-0.4133 -0.10672,-0.049549,-0.030491,0.22678,0.36018,-0.18295,-0.16389,-0.068606,0.045737,0.22678,-0.25918,-0.29729,-0.059077,0.12197,0.24584,-0.30682,-0.18295,0.074323,0.20772,0.23631,-0.24012,-0.24012,-0.011434,0.20772,0.24584 0.4914,0.16978,-0.13595,-0.13992,-0.13595,0.32464,0.042724,-0.13595,-0.12007,-0.13992,0.28096,0.034783,-0.16375,-0.16375,-0.13992,0.3167,0.010959,-0.13992,-0.17566,-0.084336,0.3167,0.16184,-0.16772,-0.1439,-0.16375 -0.16948,-0.28589,-0.23933,-0.30917,-0.21605,-0.099642,-0.12292,-0.21605,-0.1462,-0.23933,0.063324,-0.1462,-0.029799,0.063324,0.063324,0.10989,0.040043,0.15645,0.17973,0.10989,0.29613,0.20301,0.31941,0.34269,0.27285 -0.1244,-0.12738,-0.13036,-0.13036,-0.13334,-0.11844,-0.11993,-0.13036,-0.11844,-0.11993,-0.10801,-0.10652,-0.10652,-0.11248,-0.11248,-0.033499,-0.033499,-0.033499,-0.033499,-0.032009,0.33457,0.38077,0.40759,0.42249,0.41951 0.24685,0.24685,-0.074199,-0.18122,-0.18122,0.35387,0.24685,-0.18122,-0.074199,-0.18122,0.13984,0.13984,-0.10987,-0.21689,-0.39525,0.21118,0.13984,0.13984,-0.18122,-0.25256,0.21118,0.17551,0.032819,-0.074199,-0.18122 0.46806,0.017039,-0.14165,-0.14165,-0.074836,0.43465,-0.033075,-0.083188,-0.1333,-0.1333,0.29266,-0.01637,-0.10824,-0.074836,-0.09154,0.38454,-0.049779,-0.10824,-0.12495,-0.15001,0.35948,-0.099893,-0.1166,-0.14165,-0.1333 -0.21694,-0.1508,-0.21694,-0.17285,-0.17285,-0.21694,-0.17285,-0.34922,-0.23899,-0.17285,0.025574,-0.040566,-0.018519,-0.08466,0.0035275,0.15785,0.13581,0.20195,0.20195,0.13581,0.33423,0.224,0.224,0.24604,0.33423 0.16671,0.16637,0.16637,0.16874,0.16908,0.16637,0.16705,0.16603,0.16841,0.16942,0.15417,0.15518,0.15552,0.15485,0.15451,-0.24315,-0.24315,-0.24383,-0.24451,-0.24247,-0.2462,-0.24756,-0.24586,-0.24688,-0.24518 0.22591,0.26625,0.20574,0.32676,0.18557,0.084715,0.1654,0.14523,0.20574,0.14523,0.024204,0.024204,0.084715,0.044374,0.064544,-0.15733,-0.11699,-0.096817,-0.19767,-0.13716,-0.21784,-0.29852,-0.29852,-0.33886,-0.33886 -0.21428,-0.21428,0.047747,0.13509,0.13509,-0.27251,-0.12694,0.076861,0.10598,0.30977,-0.41808,-0.097823,0.047747,0.10598,0.28066,-0.24339,-0.15605,0.13509,0.13509,0.25155,-0.33074,-0.039595,-0.068709,0.25155,0.1642 0.13234,-0.019775,-0.1402,-0.15922,-0.20358,0.17671,0.043607,-0.095833,-0.18457,-0.20358,0.2591,0.10065,-0.057804,-0.1402,-0.20358,0.33516,0.19572,-0.03879,-0.1402,-0.20358,0.49362,0.3415,0.056283,-0.15922,-0.18457 -0.154,-0.22756,-0.30113,-0.17852,-0.20304,-0.17852,-0.20304,-0.10495,-0.10495,-0.22756,0.017656,0.017656,-0.12947,-0.031388,-0.080431,0.14026,0.11574,0.14026,0.042177,0.066699,0.43452,0.36096,0.21383,0.28739,0.28739 0.18891,0.20101,0.1541,0.15632,0.19632,0.15558,0.15064,0.15311,0.15706,0.16224,0.14866,0.14718,0.15632,0.16051,0.15632,-0.24344,-0.24245,-0.24319,-0.24443,-0.24443,-0.24369,-0.24418,-0.24591,-0.24616,-0.2464 0.1142,0.1756,0.237,-0.069995,-0.34629,0.1142,0.1756,0.1756,-0.039296,-0.37699,0.2677,0.1449,0.083503,-0.13139,-0.28489,0.1449,0.1142,0.1756,-0.19279,-0.34629,0.1142,0.052803,0.1449,-0.22349,-0.22349 0.45372,0.21195,0.14748,-0.072128,-0.13056,0.33485,0.13338,0.048757,-0.072128,-0.16279,0.20389,0.13942,-0.021759,-0.11847,-0.24943,0.16763,0.078978,-0.072128,-0.16884,-0.29979,0.13942,0.056816,-0.16279,-0.18092,-0.40456 0.39352,0.34808,0.37574,0.38364,0.37574,0.010196,0.033907,0.13073,-0.074769,-0.043154,-0.031299,-0.064889,-0.12614,-0.138,-0.138,-0.11824,-0.138,-0.16566,-0.14195,-0.138,-0.15381,-0.16961,-0.16171,-0.138,-0.11034 0.22732,0.27915,0.26187,0.2446,0.33097,0.15823,0.089133,0.15823,0.27915,0.14095,-0.031784,-0.01451,-0.049058,-0.066332,0.037312,-0.20452,-0.1527,-0.10088,-0.10088,-0.16997,-0.29089,-0.30817,-0.27362,-0.2218,-0.2218 -0.049099,-0.11524,-0.24751,-0.32158,-0.37184,-0.088781,-0.15756,-0.20783,-0.19724,-0.22899,-0.0094178,-0.0094178,-0.014709,-0.033227,-0.041163,0.15195,0.14137,0.12285,0.10963,0.10698,0.32391,0.30539,0.29745,0.271,0.26306 -0.25517,-0.10448,0.071327,0.17179,0.39782,-0.38075,-0.17982,-0.054249,0.12156,0.1969,-0.17982,-0.029134,-0.079364,0.14667,0.1969,-0.17982,-0.23005,0.046212,0.22202,0.29736,-0.23005,-0.23005,-0.079364,0.14667,0.1969 -0.33519,-0.29308,-0.33519,-0.29308,-0.27202,-0.16675,-0.22992,-0.082534,-0.040425,-0.10359,0.022739,0.022739,0.085903,0.17012,0.043793,0.085903,0.085903,0.12801,0.19118,0.085903,0.14907,0.29645,0.27539,0.25434,0.25434 0.21009,0.11161,-0.151,-0.052523,-0.11818,0.30857,0.21009,0.013131,-0.11818,-0.41362,0.30857,0.21009,0.013131,-0.085349,-0.11818,0.21009,0.11161,0.045957,-0.18383,-0.21666,0.30857,0.11161,-0.21666,-0.24948,-0.24948 -0.23591,-0.23591,-0.23591,-0.29235,-0.32057,-0.23591,-0.038378,-0.17947,-0.038378,-0.17947,-0.038378,-0.038378,-0.010159,-0.038378,0.04628,0.15916,0.13094,0.074499,0.18738,0.15916,0.44135,0.2156,0.24381,0.24381,0.2156 -0.20447,-0.17923,-0.20867,-0.20236,-0.20867,-0.19185,-0.11826,-0.18344,-0.18764,-0.16872,-0.13087,0.052063,-0.093023,-0.11405,-0.13718,0.089911,0.085706,0.28756,0.30649,0.22659,0.33593,0.17822,0.30228,0.26864,0.19505 0.17961,0.18719,-0.20679,-0.20426,-0.21815,0.17709,0.18088,0.1733,-0.19921,-0.24846,0.16825,0.18845,0.17583,-0.18658,-0.25604,0.17204,0.18088,0.17204,-0.2371,-0.25604,0.1733,0.17709,0.16699,-0.20679,-0.25351 0.45834,0.061212,-0.060893,-0.11453,-0.23663,0.47089,0.10115,-0.040352,-0.11909,-0.17615,0.44807,0.038389,-0.044916,-0.12822,-0.20354,0.071483,0.045236,-0.071163,-0.13279,-0.20924,0.17533,0.070342,-0.062034,-0.14648,-0.19441 -0.15845,-0.15845,-0.17982,0.012539,0.32602,-0.15845,-0.15133,-0.1157,0.083785,0.36164,-0.15845,-0.1727,-0.09433,0.09091,0.3474,-0.16558,-0.15845,-0.10145,0.083785,0.35452,-0.18695,-0.15845,-0.080081,0.19065,0.3474 0.37323,0.18729,-0.11697,-0.18459,-0.15078,0.40704,0.20419,-0.18459,-0.21839,-0.20149,0.2549,0.238,-0.18459,-0.16768,-0.083165,0.2549,0.10277,-0.15078,-0.15078,-0.15078,0.238,-0.015551,-0.066262,-0.15078,-0.083165 0.092685,0.1032,0.085674,-0.0896,-0.26838,0.12949,0.11898,0.12599,-0.040523,-0.27364,0.15403,0.14877,0.11021,-0.044029,-0.2789,0.17331,0.16981,0.11372,-0.086095,-0.4752,0.19785,0.19259,0.15403,-0.038771,-0.4752 -0.12643,-0.055001,0.12357,0.195,0.39144,-0.23358,-0.12643,0.087859,0.12357,0.26644,-0.30501,-0.14429,0.070002,0.10572,0.24858,-0.26929,-0.18,-0.072859,0.016429,0.26644,-0.37644,-0.23358,-0.037144,0.087859,0.17715 -0.15078,-0.15547,-0.16484,-0.15078,-0.1414,-0.11796,-0.12734,-0.099207,-0.12734,-0.11796,-0.071076,-0.085142,-0.080453,-0.071076,-0.071076,-0.057011,-0.057011,-0.042946,-0.028881,-0.047634,0.3837,0.38839,0.40245,0.39777,0.39308 0.20052,0.073566,0.14562,0.032391,-0.37936,0.15592,0.042685,0.11817,-0.036234,-0.38279,0.19023,0.1765,0.094154,0.035822,-0.3622,0.042685,0.17307,0.12504,0.018666,-0.39309,0.011804,0.14905,0.15935,-0.015647,-0.37593 0.35242,0.40737,0.35242,0.40737,0.40737,0.004396,0.004396,-0.050555,-0.050555,0.004396,-0.068871,-0.16046,-0.087188,-0.12382,-0.10551,-0.14214,-0.12382,-0.16046,-0.21541,-0.14214,-0.14214,-0.10551,-0.068871,-0.12382,-0.068871 0.22447,0.22717,0.24071,0.22717,0.238,0.25154,0.27319,0.25424,0.25424,0.25424,-0.17617,-0.16264,-0.16264,-0.1491,-0.16805,-0.18159,-0.16805,-0.16805,-0.17076,-0.17076,-0.15181,-0.15993,-0.1491,-0.15722,-0.1491 -0.31254,-0.20752,0.023525,0.086538,0.23357,-0.29154,-0.081497,0.044529,0.065533,0.23357,-0.37556,0.023525,0.17056,0.086538,0.21256,-0.35455,-0.039488,0.065533,0.12855,0.21256,-0.35455,-0.039488,0.044529,0.14955,0.27558 -0.2821,-0.31136,-0.2821,-0.25283,-0.22357,-0.047992,-0.077255,-0.22357,-0.13578,-0.13578,-0.13578,-0.047992,0.010535,0.010535,0.039798,0.18611,0.18611,0.21538,0.069061,0.098325,0.2739,0.24464,0.36169,0.15685,0.30317 0.38947,0.34439,0.32185,0.33312,0.26551,0.20916,0.13027,0.096465,0.096465,-0.0049585,-0.061305,-0.050036,-0.061305,-0.10638,-0.095113,-0.11765,-0.16273,-0.16273,-0.19654,-0.23034,-0.18527,-0.18527,-0.18527,-0.20781,-0.174 0.2816,0.28445,-0.099272,-0.13667,-0.20819,0.28498,-0.058487,-0.099728,-0.12221,-0.21516,0.28673,0.28689,-0.10098,-0.11259,-0.21063,0.28346,0.2797,-0.099995,-0.11361,-0.21052,0.28734,-0.061341,-0.09813,-0.11426,-0.21337 0.30539,0.3682,0.38705,0.52523,0.34622,-0.049496,-0.062058,0.010175,-0.033793,0.0038943,-0.12487,-0.099745,-0.099745,-0.10603,-0.11231,-0.12487,-0.12801,-0.12801,-0.13115,-0.11859,-0.13429,-0.13429,-0.12173,-0.12487,-0.11231 -0.16055,-0.1682,-0.17713,-0.17203,-0.17458,-0.15672,-0.17841,-0.16948,-0.17076,-0.17331,0.12396,-0.18862,-0.18607,-0.16055,-0.19627,0.15203,0.17372,0.20178,0.19413,0.18392,0.28726,0.28981,0.26302,0.2643,0.29875 -0.14756,-0.1832,-0.14162,0.054415,0.33362,-0.14162,-0.14756,-0.15944,0.13164,0.29797,-0.14756,-0.16538,-0.1238,0.11976,0.33362,-0.17132,-0.1535,-0.14756,0.19699,0.3158,-0.17132,-0.17726,-0.14756,0.22669,0.3158 0.48072,-0.0059288,-0.077568,-0.070157,-0.070157,0.40167,0.023715,-0.11956,-0.10968,-0.08992,0.38191,-0.020751,-0.13439,-0.12697,-0.12944,0.35227,-0.087449,-0.13439,-0.12944,-0.1245,0.32262,-0.09486,-0.14921,-0.12944,-0.15909 0.2709,0.20666,0.11987,0.053377,-0.40872,0.25512,0.16834,0.083808,0.038726,-0.33771,0.19539,0.12438,0.035344,-0.017627,-0.33433,0.14805,0.06014,0.020693,-0.067218,-0.39406,0.16496,0.024074,-0.0074836,-0.096521,-0.30615 0.18909,0.2256,0.11608,0.17084,0.28035,0.11608,0.11608,0.17084,0.24385,0.2621,0.043075,0.079579,0.097831,0.097831,0.097831,-0.21245,-0.12119,-0.26721,-0.13945,-0.1942,-0.30371,-0.26721,-0.24896,-0.23071,-0.32197 -0.15663,-0.15611,-0.15663,-0.15585,-0.15663,-0.15637,-0.15637,-0.15637,-0.15546,-0.15559,-0.15637,-0.15546,-0.15637,-0.1548,-0.15663,0.22304,0.09683,0.095788,0.23476,0.2371,0.21913,0.22903,0.35081,0.41893,0.23619 0.22691,0.25758,0.13573,-0.23998,-0.23933,0.12342,0.24505,0.26255,-0.23998,-0.23976,0.11866,0.13076,0.13508,-0.23998,-0.23933,0.10505,0.12061,0.13638,-0.23955,-0.23933,0.13292,0.13292,0.13098,-0.23825,-0.23912 0.26699,0.22465,-0.17807,-0.17817,-0.17789,0.22566,0.22052,-0.17743,-0.17743,-0.17817,0.22511,0.21822,-0.17697,-0.17706,-0.17697,0.22272,0.21905,-0.1767,-0.17633,-0.17651,0.22272,0.21786,0.21593,-0.17587,-0.17587 -0.18278,-0.15958,-0.32195,-0.18278,-0.15958,-0.27556,-0.22917,-0.22917,-0.15958,-0.18278,-0.066803,0.0027835,0.025979,-0.066803,0.049174,0.11876,0.14196,0.21154,0.07237,0.18835,0.28113,0.30432,0.18835,0.32752,0.30432 -0.3352,-0.050596,0.044272,0.10752,0.26563,-0.36682,-0.14546,0.075895,0.044272,0.26563,-0.20871,-0.20871,0.012649,0.20239,0.3605,-0.30358,-0.14546,0.012649,0.26563,0.20239,-0.14546,-0.17709,0.044272,0.012649,0.17076 0.52402,0.21325,-0.14111,-0.15475,-0.16726,0.20112,0.21249,-0.14111,-0.15475,-0.16915,0.19809,0.19847,-0.14338,-0.15399,-0.16877,0.19241,0.19468,-0.14148,-0.15551,-0.16688,0.19809,0.19582,-0.14376,-0.15627,-0.17029 -0.20662,-0.17307,-0.20662,-0.089221,-0.089221,-0.2737,-0.20662,-0.2737,-0.1563,-0.10599,-0.10599,-0.17307,-0.12276,-0.022137,-0.10599,0.17911,0.14557,0.17911,0.17911,0.22942,0.29651,0.19588,0.31328,0.33005,0.26297 0.16311,0.16311,0.16311,-0.24467,-0.24467,0.061166,0.26505,-0.040778,-0.21068,-0.1767,0.26505,0.19709,-0.040778,-0.040778,-0.27865,0.26505,0.26505,-0.0067963,-0.24467,-0.34661,0.23107,0.12913,0.061166,-0.14272,-0.21068 -0.24075,-0.23836,-0.23836,-0.23916,-0.23916,-0.25348,-0.24155,-0.23438,-0.22643,-0.24393,0.22474,0.18098,0.15392,0.10777,0.091061,0.251,0.18734,0.15472,0.11732,0.08947,0.24861,0.20405,0.16347,0.12528,0.095835 0.38296,0.24833,-0.12863,-0.12093,-0.12478,0.39065,0.059851,-0.12093,-0.13632,-0.14401,0.36757,-0.078622,-0.11324,-0.12478,-0.11324,0.34449,-0.082469,-0.12478,-0.14017,-0.12093,0.34834,-0.094008,-0.12863,-0.11709,-0.12863 0.31096,0.25177,0.2715,0.25177,0.23204,0.13338,0.17285,0.093921,0.17285,0.21231,0.014996,0.034727,-0.063929,0.034727,0.014996,-0.16259,-0.14285,-0.20205,-0.14285,-0.16259,-0.32044,-0.14285,-0.24151,-0.34017,-0.28097 0.27562,0.076309,0.019362,-0.17995,-0.29385,0.24715,0.21868,-0.0091115,-0.0091115,-0.32232,0.36104,-0.0091115,0.10478,-0.20843,-0.37927,0.076309,0.1902,0.13326,-0.17995,-0.2369,0.1902,0.1902,-0.0091115,-0.066059,-0.17995 0.175,0.15,0.175,0,-0.325,0.175,0.15,0.15,-0.2,-0.4,0.1,0.2,0.075,-0.075,-0.25,0.175,0.175,0.05,-0.025,-0.475,0.175,0.125,0.05,-0.1,-0.25 -0.26142,-0.24487,0.16876,0.17703,0.16463,-0.26555,-0.19937,0.1274,0.18117,0.1729,-0.27796,-0.23246,0.13567,0.17703,0.17703,-0.25728,-0.22419,0.15222,0.17703,0.17703,-0.25728,-0.21592,0.12326,0.16463,0.16049 -0.18946,-0.19631,-0.079834,0.26343,0.25247,-0.21961,-0.20727,-0.081889,0.26,0.24013,-0.22988,-0.18466,-0.17027,0.25384,0.223,-0.22988,-0.15246,-0.16274,0.2278,0.21958,-0.16753,-0.059965,-0.046947,0.22711,0.21136 0.34682,0.4336,0.40022,0.2734,0.3535,0.026432,0.026432,0.046457,0.046457,0.026432,-0.026966,-0.067015,-0.053666,-0.046991,-0.067015,-0.13376,-0.14044,-0.16714,-0.11374,-0.12709,-0.18716,-0.23389,-0.19384,-0.20719,-0.21386 0.20301,0.23286,0.053737,-0.15524,-0.27466,0.20301,0.17315,-0.0059708,-0.21495,-0.12539,0.17315,0.23286,0.023883,-0.12539,-0.2448,0.20301,0.29257,-0.035825,-0.035825,-0.30451,0.35228,0.053737,-0.2448,-0.15524,-0.27466 0.20145,0.15759,0.33302,0.25993,0.36957,0.17952,0.14298,0.15759,0.20145,0.20876,-0.039764,-0.032454,-0.12748,-0.010526,0.040641,-0.12017,-0.19326,-0.19326,-0.19326,-0.17134,-0.30291,-0.23712,-0.22981,-0.19326,-0.20788 0.11203,0.22115,0.20296,0.18478,0.23934,0.20296,0.13022,0.20296,0.1484,0.075657,0.16659,0.075657,0.021097,0.1484,0.1484,-0.16077,-0.088024,-0.1244,-0.16077,-0.17896,-0.28808,-0.34264,-0.32445,-0.32445,-0.28808 -0.24244,-0.24192,-0.24244,-0.24398,-0.2445,-0.24295,-0.24244,-0.24295,-0.24192,-0.24347,0.14432,0.15255,0.15358,0.23386,0.23386,0.13557,0.14354,0.15049,0.1474,0.21328,0.13582,0.14123,0.13943,0.15255,0.15152 0.2685,0.26949,-0.1334,-0.15617,-0.14825,0.2685,0.26652,-0.14825,-0.15419,-0.15815,0.26751,0.26553,-0.14429,-0.15815,-0.15419,0.26355,0.26058,-0.15023,-0.15419,-0.15617,0.26652,-0.10667,-0.16013,-0.15815,-0.15617 -0.3049,-0.28215,-0.32765,-0.32765,-0.31628,-0.10012,-0.20251,-0.20251,-0.12287,-0.14562,0.18431,0.15017,0.18431,0.20706,0.21844,0.15017,0.17293,0.1388,0.11604,0.11604,0.18431,0.09329,0.09329,0.18431,0.1388 0.11741,0.1115,0.10674,0.065383,-0.39695,0.1155,0.10731,0.1054,0.059094,-0.39448,0.11303,0.10674,0.10312,0.10388,-0.39981,0.10902,0.1054,0.10007,0.10197,-0.40019,0.10902,0.10369,0.098924,0.050137,-0.40191 0.29713,0.31292,0.30239,0.29713,0.29186,0.19184,0.16025,0.18131,0.14972,0.18657,-0.16088,-0.16615,-0.13456,-0.19773,-0.16088,-0.1872,-0.203,-0.18194,-0.203,-0.20826,-0.092444,-0.097708,-0.1135,-0.1293,-0.13456 0.2703,0.28654,0.35152,0.25406,0.31903,0.17284,0.17284,0.15659,0.17284,0.20532,-0.11956,-0.23326,-0.18453,-0.11956,-0.10331,-0.18453,-0.20078,-0.1358,-0.20078,-0.11956,-0.16829,-0.15204,-0.11956,-0.21702,-0.10331 0.40025,0.29541,0.30706,0.20222,0.17892,0.19057,0.24881,0.21387,0.16727,0.16727,-0.20548,-0.14724,-0.12394,-0.15889,-0.12394,-0.14724,-0.19383,-0.19383,-0.12394,-0.14724,-0.14724,-0.14724,-0.17054,-0.14724,-0.19383 -0.26198,-0.12128,0.17067,0.17418,0.1988,-0.26549,-0.17756,0.1777,0.1777,0.19529,-0.26549,-0.23736,0.16715,0.17418,0.18825,-0.25142,-0.25142,-0.057967,0.18825,0.18825,-0.24791,-0.24087,-0.0052058,0.18473,0.1988 0.39773,-0.064886,-0.12497,-0.11896,-0.11295,0.38571,-0.064886,-0.13097,-0.10093,-0.11896,0.38571,-0.10093,-0.11896,-0.10694,-0.11896,0.40974,-0.064886,-0.10694,-0.10694,-0.10694,0.40974,-0.040854,-0.088918,-0.094926,-0.094926 0.14344,0.29132,0.40224,0.18041,0.27284,0.21738,0.23587,0.16193,0.1989,0.12496,-0.0044364,0.014049,-0.022921,-0.11535,-0.096862,-0.18929,-0.15232,-0.13383,-0.26323,-0.20777,-0.15232,-0.22626,-0.22626,-0.24474,-0.20777 -0.15531,-0.15777,-0.15531,-0.15601,-0.15742,-0.15531,-0.15636,-0.15671,-0.15671,-0.15706,-0.15531,-0.15601,-0.15601,-0.15742,-0.15601,0.18132,0.18202,0.18167,0.18167,0.18061,0.47832,0.18096,0.1992,0.28756,0.29142 0.17037,0.16879,0.17195,0.17432,0.16563,0.16721,0.16721,0.16248,0.16405,0.16248,0.153,0.15458,0.15616,0.15221,0.15774,-0.23874,-0.24348,-0.24348,-0.24506,-0.25453,-0.23558,-0.23953,-0.24664,-0.24585,-0.25532 0.12062,0.087204,0.059683,0.063614,-0.4072,0.13537,0.097033,0.073443,0.062631,-0.40229,0.13537,0.09605,0.077375,0.073443,-0.42096,0.13635,0.10883,0.087204,0.09605,-0.38066,0.16289,0.12062,0.09605,0.093102,-0.37182 0.31551,0.26401,0.2401,0.20025,0.18921,0.31122,0.2775,0.23765,0.2027,0.18492,-0.16334,-0.16334,-0.16211,-0.15537,-0.15291,-0.16334,-0.16456,-0.16211,-0.16211,-0.16088,-0.16579,-0.16088,-0.16334,-0.16088,-0.16211 0.11048,0.12213,0.14292,-0.24392,-0.23893,0.1346,0.1396,0.18369,-0.25556,-0.24558,0.14625,0.14625,0.14542,-0.24225,-0.24225,0.1554,0.18036,0.18202,-0.22562,-0.24309,0.16039,0.19617,0.27603,-0.24558,-0.23893 0.31453,0.35636,0.33545,0.4191,0.42955,-0.030533,-0.00962,0.074032,0.063576,0.042663,-0.093272,-0.12464,-0.082816,-0.061903,-0.15601,-0.16647,-0.10373,-0.14556,-0.20829,-0.11419,-0.17692,-0.1351,-0.093272,-0.16647,-0.16647 0.29799,0.19997,-0.094104,-0.19213,-0.32283,0.1673,0.069271,-0.028754,-0.061429,-0.25748,0.36334,0.19997,-0.028754,-0.12678,-0.25748,0.10195,0.19997,0.003921,-0.19213,-0.15945,0.19997,0.33067,-0.12678,0.003921,-0.29015 -0.18605,-0.19484,-0.16849,0.27952,0.30588,-0.18605,-0.17288,-0.12456,0.25756,0.24878,-0.18166,-0.16409,-0.09821,0.24878,0.26634,-0.16849,-0.1597,-0.16409,0.21364,0.23121,-0.18166,-0.15531,-0.11139,0.16972,0.19607 -0.11995,-0.13487,-0.13487,-0.09011,-0.13487,-0.14978,-0.075191,-0.10503,-0.10503,-0.14978,-0.13487,-0.09011,-0.075191,-0.09011,-0.13487,-0.015516,-0.075191,-0.075191,-0.015516,-0.045353,0.4768,0.41713,0.34254,0.40221,0.3127 0.11375,0.11023,0.079552,0.055415,-0.39716,0.11425,0.11324,0.072512,0.055415,-0.39917,0.11576,0.11375,0.09313,0.056421,-0.39515,0.11626,0.11626,0.11526,0.078547,-0.39716,0.11576,0.11928,0.11626,0.11827,-0.40068 -0.1603,-0.16509,-0.17147,0.23391,0.24348,-0.16509,-0.1619,-0.13317,0.23072,0.25785,-0.16509,-0.1619,-0.18105,0.2355,0.24508,-0.16509,-0.16668,-0.14274,0.24668,0.25465,-0.16988,-0.16988,-0.16668,0.2371,0.26104 -0.24203,-0.24593,-0.24853,-0.24463,-0.24333,-0.24203,-0.24203,-0.23943,-0.24203,-0.23813,0.18064,0.17609,0.17739,0.17674,0.18064,0.092208,0.17219,0.16894,0.17999,0.17349,0.061645,0.17284,0.17219,0.16894,0.17414 -0.13033,-0.13348,-0.1209,-0.12719,-0.11775,-0.11775,-0.11775,-0.11146,-0.11146,-0.12404,-0.11461,-0.092593,-0.10517,-0.098883,-0.10203,-0.070577,-0.051706,-0.051706,-0.032835,-0.048561,0.3666,0.40749,0.40434,0.4012,0.4012 -0.26586,-0.18208,0.013405,0.3206,0.26474,-0.26586,-0.12623,-0.042448,0.097184,0.34852,-0.32171,-0.098301,0.12511,0.12511,0.18096,-0.18208,-0.15415,-0.098301,0.12511,0.23682,-0.23793,-0.098301,-0.18208,0.18096,0.23682 0.24053,0.20964,0.20964,0.25083,0.21994,0.23024,0.17875,0.13757,0.20964,0.086082,-0.016887,-0.00659,0.075785,0.055191,0.16846,-0.25371,-0.24342,-0.25371,-0.19193,-0.047777,-0.27431,-0.27431,-0.18164,-0.27431,-0.25371 0.18561,0.18216,0.18085,0.13177,0.13474,0.19312,0.18335,0.18144,0.15238,0.15238,0.15905,0.15678,0.15297,0.15166,0.14451,-0.24385,-0.24373,-0.24409,-0.24397,-0.24397,-0.24468,-0.24456,-0.24468,-0.24444,-0.2448 0.24903,0.25778,-0.11649,-0.13225,-0.1432,0.26041,0.26172,-0.12175,-0.13663,-0.15939,0.26654,0.26478,-0.13444,-0.14451,-0.16771,0.27266,0.27091,-0.12831,-0.15239,-0.16465,0.27485,-0.11781,-0.13751,-0.16202,-0.25964 0.27123,-0.12693,-0.13918,-0.15501,-0.1689,0.27996,0.26056,-0.13867,-0.13883,-0.16849,0.26919,0.26097,-0.13832,-0.15108,-0.16869,0.2695,0.25433,-0.1375,-0.1546,-0.16808,0.26934,0.26041,-0.13678,-0.13699,-0.16747 0.29109,0.2415,0.31589,0.32829,0.29109,0.10513,0.14232,0.15472,0.14232,0.030746,0.018348,0.018348,-0.0064467,0.0059508,0.043143,-0.2172,-0.13042,-0.14282,-0.15522,-0.15522,-0.26679,-0.30399,-0.242,-0.2296,-0.27919 -0.18534,-0.25154,-0.3398,-0.31773,-0.25154,-0.22947,-0.052955,-0.11915,-0.18534,-0.18534,0.013239,-0.030891,0.035304,0.013239,0.035304,0.079433,0.18976,0.27802,0.23389,0.079433,0.23389,0.14563,0.23389,0.25595,0.32215 0.14717,0.12993,0.052387,-0.24057,-0.44736,0.17301,0.12993,0.061003,-0.2061,-0.40427,0.17301,0.15578,0.086852,-0.11132,-0.36119,0.19025,0.13855,0.14717,0.0006893,-0.22333,0.20748,0.19025,0.12993,0.0093056,-0.12855 -0.088685,-0.097992,-0.11102,-0.12778,-0.15012,-0.090546,-0.099854,-0.11102,-0.12964,-0.14081,-0.096131,-0.099854,-0.11288,-0.13522,-0.14825,-0.051453,-0.032838,-0.038423,-0.04773,-0.0589,0.44372,0.41394,0.3916,0.37298,0.34692 0.35049,0.24642,-0.09413,-0.12024,-0.16645,0.33189,0.25206,-0.096384,-0.12813,-0.16795,0.36157,-0.0637,-0.093191,-0.12193,-0.16983,0.33997,-0.077037,-0.10352,-0.12719,-0.17471,0.3225,-0.080606,-0.10465,-0.1409,-0.17434 -0.19095,-0.17197,-0.11503,0.12699,0.14122,-0.19095,-0.20044,-0.11503,0.16495,0.1602,-0.1957,-0.19095,-0.12926,0.23613,0.25036,-0.18621,-0.17672,-0.086555,0.2646,0.29307,-0.21468,-0.18621,0.05106,0.34053,0.32154 -0.22463,-0.22463,-0.24989,-0.27155,-0.27155,-0.02613,-0.14523,-0.19576,-0.21741,-0.22102,0.15793,0.11823,0.006352,-0.10192,-0.15967,0.23012,0.20124,0.20485,0.12184,0.031616,0.24816,0.25899,0.25899,0.24455,0.22651 0.2364,0.072881,0.1196,-0.25415,-0.34759,0.2364,0.096241,-0.11399,-0.18407,-0.23079,0.18968,0.2364,-0.067275,-0.067275,-0.20743,0.35319,0.16632,0.096241,-0.18407,-0.30087,0.28312,0.16632,-0.16071,-0.090634,-0.043916 0.076665,0.090119,0.070419,-0.22988,-0.23709,0.09108,0.09156,0.067056,-0.24093,-0.24285,0.21793,0.20399,0.21937,-0.23228,-0.2467,0.20543,0.21024,0.21168,-0.23084,-0.25054,0.20543,0.20639,0.20639,-0.22604,-0.23661 -0.15893,-0.07379,0.068114,0.26678,0.30935,-0.2015,-0.07379,-0.0028381,0.21002,0.30935,-0.27246,-0.11636,0.039733,0.18164,0.30935,-0.30084,-0.2157,-0.017029,0.068114,0.19583,-0.3576,-0.2015,-0.14474,0.025543,0.15326 0.39768,-0.064892,-0.066591,-0.11302,-0.12453,0.39636,-0.068855,-0.0681,-0.10924,-0.12812,0.3973,-0.06961,-0.067346,-0.10452,-0.14982,0.39504,-0.069233,-0.060363,-0.10169,-0.15076,0.39504,-0.10754,-0.10302,-0.10056,-0.15359 0.0927,0.13176,0.039645,-0.12885,-0.31133,0.095615,0.21397,0.044309,-0.10319,-0.27052,0.2676,-0.11077,0.043143,-0.14167,-0.28568,0.2711,0.19473,0.035564,-0.13818,-0.28859,0.40286,0.27693,0.022738,-0.094449,-0.25944 0.4581,0.43093,0.38904,0.36186,0.34035,-0.079709,-0.060461,-0.063858,-0.058197,-0.04461,-0.11594,-0.10462,-0.10802,-0.10688,-0.10802,-0.11368,-0.11481,-0.11028,-0.11254,-0.11254,-0.11254,-0.11254,-0.11481,-0.11254,-0.11368 -0.30527,-0.33903,-0.33903,-0.30527,-0.30527,-0.018235,-0.052003,-0.018235,-0.068887,-0.25461,-0.018235,0.032418,0.032418,-0.018235,-0.018235,0.18438,0.13372,0.18438,0.20126,0.18438,0.18438,0.23503,0.28568,0.23503,0.16749 -0.22592,-0.24916,-0.27241,-0.24916,-0.29565,-0.086464,-0.13295,-0.063221,-0.13295,-0.086464,-0.10971,-0.039978,-0.016735,-0.10971,-0.086464,0.12272,0.28542,0.12272,0.09948,0.076237,0.33191,0.14597,0.30867,0.30867,0.35515 0.17615,0.18907,0.15032,0.11158,0.1245,0.22781,0.11158,0.17615,0.15032,0.15032,0.20198,0.18907,0.15032,0.15032,0.1245,-0.17254,-0.18545,-0.18545,-0.15962,-0.21128,-0.23711,-0.3146,-0.3146,-0.30168,-0.30168 -0.1588,-0.16326,-0.1666,-0.16159,-0.16159,-0.15991,-0.15991,-0.16493,-0.16103,-0.15378,-0.15936,-0.15378,-0.1666,-0.15824,-0.16103,0.31272,0.28931,0.26256,0.19512,0.16725,0.31049,0.28987,0.22912,0.19122,0.16279 0.27812,0.21633,0.21606,0.22447,0.22157,0.27991,0.27964,0.28033,0.22323,0.21937,-0.16212,-0.16239,-0.16239,-0.16239,-0.16198,-0.16322,-0.16267,-0.16239,-0.16294,-0.16294,-0.16253,-0.16363,-0.16184,-0.16253,-0.16308 0.42431,-0.059782,-0.14815,-0.14815,-0.15199,0.38589,-0.048256,-0.13662,-0.1712,-0.15199,0.32058,-0.098202,-0.13662,-0.14815,-0.14046,0.359,-0.029046,-0.063624,-0.082834,-0.14815,0.40894,0.10927,-0.0021515,-0.03673,-0.10589 -0.1311,-0.1311,-0.1311,-0.10721,-0.1159,-0.12458,-0.11807,-0.12458,-0.11807,-0.12458,-0.096349,-0.11807,-0.096349,-0.10504,-0.096349,-0.042049,-0.050737,-0.046393,-0.033362,-0.063769,0.34022,0.42275,0.41624,0.38366,0.41189 -0.15047,-0.24166,-0.26446,-0.26446,-0.33285,-0.12767,-0.12767,-0.10487,-0.082073,-0.21886,0.0091192,0.031917,-0.059275,-0.082073,-0.036477,0.10031,0.12311,0.2143,0.12311,0.0091192,0.2143,0.35109,0.39669,0.32829,0.1915 0.42656,0.30691,0.42656,0.29195,0.42656,0.022734,-0.022136,0.022734,-0.022136,0.022734,-0.11188,-0.11188,-0.11188,-0.11188,-0.022136,-0.11188,-0.20162,-0.15675,-0.067006,-0.20162,-0.11188,-0.11188,-0.15675,-0.15675,-0.15675 0.24888,-0.052901,-0.15941,-0.15941,-0.16829,0.29326,-0.052901,-0.14166,-0.13279,-0.15054,0.34652,0.089115,-0.10616,-0.13279,-0.15054,0.3554,0.2045,-0.14166,-0.13279,-0.18604,0.38202,0.31102,-0.10616,-0.13279,-0.12391 0.36294,0.42509,0.32151,0.34222,0.36294,-0.0099435,0.072919,0.052204,0.010772,0.11435,-0.11352,-0.092806,-0.092806,-0.030659,-0.13424,-0.092806,-0.13424,-0.11352,-0.19638,-0.15495,-0.15495,-0.17567,-0.17567,-0.19638,-0.19638 -0.26725,-0.24232,-0.092738,0.1067,0.23135,-0.21739,-0.21739,0.1067,0.25628,0.20642,-0.26725,-0.16753,0.1067,0.05684,0.33107,-0.29218,-0.1426,0.05684,0.05684,0.20642,-0.16753,-0.092738,-0.067809,0.13163,0.38093 0.1541,0.1541,0.18381,0.055063,-0.4401,0.14419,0.1541,0.1739,0.055063,-0.33117,0.14419,0.094676,0.10458,0.0055459,-0.4401,0.064966,0.064966,0.094676,0.045159,-0.37078,0.084773,0.074869,0.084773,-0.0043575,-0.35097 0.1281,0.14187,0.19696,-0.30392,-0.33147,0.18246,0.15129,0.1368,-0.27928,-0.30175,0.15927,0.16434,0.19261,-0.24593,-0.26913,0.16797,0.16797,0.15129,-0.21984,-0.23506,0.16362,0.16652,0.070109,-0.047319,-0.10748 0.17208,0.17208,0.16199,0.16199,0.16199,0.16367,0.16703,0.16367,0.17377,0.15189,0.16367,0.15862,0.14684,0.16703,0.16199,-0.24028,-0.23692,-0.24365,-0.24702,-0.24365,-0.24533,-0.2386,-0.25375,-0.25038,-0.2487 -0.1607,-0.16153,-0.16277,-0.16153,-0.16318,-0.1607,-0.15988,-0.16029,-0.1607,-0.16194,-0.15905,-0.16112,-0.16194,-0.1636,-0.16318,0.209,0.21976,0.21438,0.31942,0.31032,0.20073,0.21273,0.21314,0.21107,0.31156 0.30703,0.30703,0.31734,0.31292,0.30998,0.093364,0.08747,0.094838,0.090417,0.08747,0.0064247,0.0064247,0.02116,0.010845,0.010845,-0.14093,-0.1262,-0.13798,-0.13946,-0.13798,-0.27502,-0.27502,-0.27208,-0.27797,-0.28092 0.16169,0.16227,0.17599,-0.26559,-0.23871,0.17371,0.16169,0.18114,-0.25301,-0.24958,0.18057,0.17885,0.17371,-0.20896,-0.2347,0.184,0.18229,0.17943,-0.17007,-0.18494,0.18286,0.17542,-0.16835,-0.16892,-0.31078 0.39559,0.40296,0.40051,0.39559,0.39314,-0.061314,-0.049032,-0.063771,-0.046575,-0.068684,-0.11781,-0.1129,-0.11044,-0.1129,-0.11781,-0.12027,-0.1129,-0.11044,-0.11044,-0.11044,-0.10799,-0.11044,-0.11536,-0.12027,-0.10799 -0.18797,-0.054341,0.16837,0.10156,0.39108,-0.12115,-0.1657,0.034743,0.079284,0.25745,-0.36613,-0.14342,-0.054341,0.079284,0.21291,-0.32159,-0.12115,0.012472,0.079284,0.25745,-0.34386,-0.21024,-0.0097992,0.19064,0.23518 0.33037,0.055171,-0.03602,-0.1093,-0.19072,0.32386,0.21801,-0.0034522,-0.11581,-0.1956,0.011203,0.20336,-0.060447,-0.12721,-0.20375,0.34014,0.27338,-0.12721,-0.20212,-0.23794,0.36131,-0.01648,-0.076731,-0.15815,-0.25586 0.11307,0.21841,0.20085,0.13062,0.28864,0.16574,0.14818,0.14818,0.21841,0.11307,0.13062,0.18329,0.14818,0.13062,0.0077251,-0.15029,-0.22052,-0.1854,-0.1854,-0.22052,-0.22052,-0.27319,-0.29074,-0.32586,-0.27319 -0.19954,-0.17253,-0.21755,0.025573,0.2777,-0.19954,-0.1275,-0.17253,0.052586,0.25969,-0.19954,-0.19954,-0.055468,0.17865,0.34073,-0.17253,-0.15452,-0.037459,0.23268,0.34073,-0.1185,-0.19054,-0.010445,0.19666,0.32272 -0.12089,-0.15142,-0.12089,0.21492,0.27598,-0.15142,-0.24301,-0.029308,0.092807,0.36757,-0.21248,-0.12089,0.03175,-0.029308,0.27598,-0.30407,-0.21248,-0.029308,0.15386,0.21492,-0.27354,-0.15142,-0.029308,0.24545,0.30651 0.25373,0.25373,0.31414,0.31414,0.22957,0.15707,0.10874,0.16915,0.21748,0.10874,0,-0.04833,0.012082,0.072495,-0.012082,-0.19332,-0.10874,-0.2054,-0.21748,-0.24165,-0.26581,-0.22957,-0.30206,-0.15707,-0.22957 0.38098,0.41011,0.36642,0.39554,0.41739,-0.055924,-0.048642,-0.055924,-0.012233,-0.048642,-0.085051,-0.13602,-0.092333,-0.1433,-0.1433,-0.1433,-0.099614,-0.12874,-0.1433,-0.1069,-0.1069,-0.12146,-0.092333,-0.11418,-0.092333 -0.1222,-0.14517,-0.16813,-0.099227,-0.16813,-0.099227,-0.14517,-0.099227,-0.076258,-0.23704,-0.076258,-0.14517,-0.1222,-0.1222,-0.099227,0.061557,-0.030319,-0.030319,-0.053288,0.1075,0.40609,0.42906,0.33719,0.38313,0.31422 -0.2758,-0.13412,0.03117,0.14924,0.36176,-0.18135,-0.016057,-0.063284,0.14924,0.2673,-0.25219,-0.15774,-0.086897,0.12562,0.24369,-0.29942,-0.29942,0.054783,0.14924,0.31453,-0.22858,-0.016057,-0.18135,0.14924,0.19646 -0.21617,-0.21617,-0.30476,-0.32691,-0.26046,-0.19402,-0.12757,-0.12757,-0.038981,-0.12757,-0.016833,-0.016833,-0.016833,0.07176,-0.016833,0.07176,0.049612,0.093908,0.049612,0.093908,0.33754,0.29324,0.38183,0.35969,0.20465 0.2015,0.20845,0.25712,0.21888,0.18759,0.14587,0.1563,0.16673,0.16326,0.22931,0.0033375,0.15978,0.069391,-0.020998,0.065915,-0.12877,-0.11486,-0.22611,-0.19135,-0.034904,-0.29912,-0.29564,-0.3026,-0.31303,-0.30607 0.31082,0.28051,0.21281,0.21398,0.19883,0.28713,0.31009,0.21104,0.2003,0.19809,-0.15939,-0.16101,-0.16057,-0.16057,-0.16116,-0.16101,-0.1619,-0.16175,-0.16131,-0.1619,-0.16278,-0.16204,-0.16219,-0.16278,-0.16322 -0.30191,-0.30555,-0.19657,-0.19496,-0.19698,-0.19415,-0.3112,-0.31483,-0.19657,-0.19536,0.16587,0.16506,0.17838,0.16183,0.14609,0.16748,0.19371,0.16587,0.15214,0.13963,0.15255,0.17071,0.15497,0.15578,0.13802 -0.24749,-0.2752,-0.29366,-0.3306,-0.29366,0.06649,-0.21979,-0.25673,-0.21979,-0.16438,0.08496,0.094194,0.14037,0.13113,-0.016623,0.13113,0.15884,0.17731,0.21425,0.19578,0.15884,0.21425,0.16807,0.23272,0.1496 -0.024624,-0.042612,-0.059268,-0.07659,-0.089249,-0.013298,-0.033951,-0.047276,-0.07126,-0.08725,-0.0079682,-0.020627,-0.03595,-0.05727,-0.067929,-0.011299,-0.011966,-0.019294,-0.036616,-0.053272,0.97273,-0.015297,-0.018628,-0.026623,-0.044611 0.23021,0.22974,-0.17393,-0.17534,-0.1791,0.22504,0.22833,-0.17863,-0.17534,-0.18474,0.22598,0.22316,-0.17111,-0.17393,-0.18051,0.22598,0.22363,-0.18239,-0.17393,-0.18051,0.22504,0.22269,0.22175,-0.17299,-0.1791 0.54123,0.13653,-0.10782,-0.11545,-0.146,0.36561,0.021991,-0.077275,-0.146,-0.15363,0.43433,0.014355,-0.10782,-0.10018,-0.146,0.28925,-0.0085522,-0.13073,-0.10018,-0.16127,0.16707,-0.054368,-0.13836,-0.13073,-0.146 0.31398,0.29502,0.24061,0.20148,0.15074,0.31459,0.29869,0.24183,0.18803,0.15869,-0.158,-0.158,-0.15433,-0.14761,-0.14211,-0.16167,-0.16228,-0.16228,-0.15923,-0.16228,-0.16717,-0.1684,-0.16778,-0.16595,-0.16656 -0.16202,-0.16531,-0.16025,0.22988,0.27339,-0.16278,-0.16455,-0.16202,0.22633,0.22988,-0.16354,-0.1648,-0.16202,0.22583,0.2615,-0.16354,-0.1648,-0.16126,0.23215,0.26049,-0.16404,-0.16329,-0.16177,0.25695,0.24961 0.37761,-0.010098,-0.091247,-0.12731,-0.091247,0.35958,-0.037148,-0.14535,-0.12731,-0.073214,0.40466,-0.1183,-0.13633,-0.14535,-0.08223,0.44072,0.016951,-0.14535,-0.13633,-0.10928,0.36859,-0.055181,-0.16338,-0.091247,-0.08223 -0.22805,-0.19685,-0.17902,0.034948,0.21325,-0.20577,-0.21022,-0.089866,0.17759,0.22663,-0.20577,-0.18793,-0.027459,0.24892,0.22663,-0.23697,-0.18793,0.01266,0.25337,0.24446,-0.22805,-0.16119,0.2088,0.24,0.25783 -0.2911,-0.28332,-0.20328,-0.20515,-0.19581,-0.29266,-0.28332,-0.20453,-0.20702,-0.20515,0.2081,0.16918,0.16949,0.16918,-0.045081,0.16793,0.16793,0.16886,0.167,0.167,0.16918,0.17167,0.1726,0.17447,0.17385 -0.27948,-0.13452,-0.018555,0.15539,0.35833,-0.30847,0.010437,-0.076537,0.06842,0.32934,-0.076537,-0.1925,-0.047546,0.15539,0.21338,-0.30847,-0.25049,-0.076537,0.21338,0.21338,-0.22149,-0.16351,0.010437,0.21338,0.21338 -0.30163,-0.24998,-0.32746,-0.22416,-0.35328,-0.095035,-0.14668,-0.06921,-0.17251,-0.06921,-0.017561,-0.06921,-0.043386,-0.017561,0.11156,0.13739,0.24069,0.24069,0.18904,0.0082639,0.24069,0.26651,0.21486,0.26651,0.24069 0.22272,0.24937,-0.15799,-0.16065,-0.15887,0.20673,0.24893,-0.15887,-0.16154,-0.15887,0.21872,0.2085,-0.16332,-0.1571,-0.16154,0.21206,0.20628,-0.15532,-0.16332,-0.16243,0.20806,0.4204,-0.1571,-0.16243,-0.16243 0.21671,0.21783,0.21738,0.21648,0.285,0.26664,0.26619,0.31546,0.21402,0.21872,-0.16128,-0.16442,-0.16352,-0.16621,-0.15926,-0.16128,-0.16128,-0.16218,-0.16195,-0.16285,-0.16106,-0.16262,-0.16262,-0.16195,-0.16195 0.60187,0.078155,-0.062846,-0.12327,-0.12327,0.36016,0.058012,-0.062846,-0.12327,-0.1837,0.27958,0.017726,0.017726,-0.12327,-0.24413,0.29973,0.017726,-0.062846,-0.12327,-0.24413,0.13858,0.017726,-0.042703,-0.1837,-0.1837 0.27003,0.17162,0.28037,0.25485,0.24772,0.23416,0.27738,0.16818,0.25163,0.27462,-0.15968,-0.15968,-0.16083,-0.16152,-0.1606,-0.15945,-0.16014,-0.16129,-0.16175,-0.16405,-0.16175,-0.16451,-0.16543,-0.16451,-0.16543 0.19093,0.22406,0.24533,0.26825,0.27598,0.19093,0.23566,0.26134,0.26659,0.27847,-0.16171,-0.16061,-0.16116,-0.16199,-0.16282,-0.16116,-0.16282,-0.16309,-0.16282,-0.1642,-0.16143,-0.16226,-0.16309,-0.16282,-0.16558 -0.15618,-0.11934,-0.15618,-0.082508,-0.082508,-0.28509,-0.21143,-0.19301,-0.21143,-0.17459,-0.15618,-0.15618,-0.15618,-0.17459,-0.045674,0.21216,0.28583,0.15691,0.21216,0.15691,0.249,0.26741,0.26741,0.26741,0.28583 0.30101,-0.034511,-0.082443,-0.066466,-0.066466,0.34894,-0.050488,-0.082443,-0.13037,-0.13037,0.44481,0.029398,-0.066466,-0.09842,-0.1144,0.41285,-0.082443,-0.13037,-0.082443,-0.19428,0.42883,-0.09842,-0.14635,-0.14635,-0.16233 0.25311,0.25311,0.1474,0.1776,0.23801,0.2078,0.2078,0.1625,0.25311,0.25311,0.02658,-0.018727,-0.0036245,0.056784,0.02658,-0.21505,-0.16975,-0.29056,-0.27546,-0.21505,-0.21505,-0.21505,-0.18485,-0.19995,-0.26036 0.088199,0.1141,0.12321,0.096833,-0.37275,0.082443,0.13616,0.12321,0.098751,-0.33342,0.093955,0.2273,0.12657,-0.092631,-0.33102,0.22202,0.11602,0.13233,-0.12908,-0.40776,0.13377,0.1213,0.11986,-0.12285,-0.36651 0.44463,-0.079058,-0.093732,-0.11139,-0.13225,0.38547,-0.077223,-0.093732,-0.11047,-0.13088,0.38525,-0.075389,-0.090293,-0.1107,-0.12583,0.42422,-0.072638,-0.082268,-0.10176,-0.12354,0.34673,-0.072638,-0.082956,-0.098547,-0.12102 -0.237,-0.29217,-0.3363,-0.3032,-0.28114,0.038838,-0.027363,-0.12667,-0.15977,-0.18183,0.016771,0.027805,-0.0052961,-0.038397,-0.01633,0.13814,0.12711,0.049872,0.038838,0.071939,0.30364,0.33674,0.28158,0.30364,0.27054 0.22421,0.22277,-0.17765,-0.1781,-0.17621,0.22412,0.22313,-0.17783,-0.17801,-0.17729,0.22412,0.22277,-0.17756,-0.17864,-0.17576,0.22781,0.22888,-0.17738,-0.17792,-0.17747,0.23329,0.23239,0.21818,-0.17639,-0.17549 0.26052,0.28056,0.26052,0.24048,0.2004,0.34068,0.24048,0.14028,0.14028,0.08016,0.06012,0.08016,-0.04008,-0.1002,-0.16032,-0.14028,-0.16032,-0.2004,-0.2004,-0.24048,-0.18036,-0.24048,-0.2004,-0.22044,-0.24048 0.12485,0.10887,0.097745,0.083255,-0.39802,0.12666,0.10868,0.094769,0.085066,-0.39776,0.11825,0.10641,0.091018,0.080344,-0.39905,0.11676,0.10059,0.0905,0.07614,-0.40125,0.11793,0.10208,0.087977,0.077304,-0.39912 0.15133,0.16131,0.14634,0.16131,0.15133,0.14634,0.13136,0.15632,0.13636,0.1663,0.15133,0.14135,0.1663,0.15133,0.14634,-0.063287,-0.12817,-0.12817,-0.12817,-0.093233,-0.34778,-0.33779,-0.35277,-0.33779,-0.34778 0.32137,0.38582,0.45026,0.36433,0.34285,0.063587,-0.043823,-0.043823,-0.065305,0.10655,-0.065305,-0.065305,-0.086787,-0.12975,-0.043823,-0.17272,-0.10827,-0.1942,-0.1942,-0.12975,-0.15123,-0.1942,-0.15123,-0.086787,-0.10827 0.21544,0.22467,-0.16648,-0.16567,-0.17789,0.21653,0.27625,-0.16893,-0.16893,-0.17843,0.20974,0.27109,-0.16703,-0.16893,-0.17816,0.21436,0.20241,-0.1654,-0.17029,-0.17707,0.24503,0.19943,0.19183,-0.23652,-0.17707 0.20356,0.31242,-0.12301,-0.23186,-0.31351,0.2852,0.20356,-0.12301,-0.15022,-0.23186,0.14913,0.12192,-0.12301,-0.20465,-0.095794,0.2852,0.23078,-0.014151,-0.20465,-0.12301,0.2852,0.23078,-0.15022,-0.15022,-0.06858 0.11258,0.054146,0.073623,-0.023762,-0.43278,0.14179,0.14179,0.14179,0.034669,-0.42304,0.073623,0.0931,0.083362,0.083362,-0.3354,0.10284,0.12232,0.13205,0.11258,-0.40357,0.12232,0.14179,0.12232,0.0931,-0.36461 -0.11757,-0.11122,-0.11599,-0.11122,-0.11599,-0.11599,-0.11757,-0.11599,-0.11599,-0.12233,-0.11281,-0.11599,-0.11599,-0.11122,-0.12075,-0.019172,-0.035043,-0.060437,-0.060437,-0.068373,0.37761,0.38078,0.40617,0.39983,0.4157 0.28405,0.22733,0.22733,0.14792,0.079861,0.27271,0.22733,0.15927,0.14792,0.057173,0.13658,0.15927,0.10255,0.045829,-0.022234,-0.18105,-0.18105,-0.1697,-0.21508,-0.10164,-0.23777,-0.29449,-0.31718,-0.32852,-0.22642 -0.17671,-0.20112,-0.24994,-0.1279,-0.22553,-0.17671,-0.22553,-0.1279,-0.15231,-0.17671,-0.10349,-0.030266,-0.10349,-0.030266,0.01855,0.14059,0.042958,0.042958,0.042958,0.165,0.43349,0.28704,0.26263,0.28704,0.38467 -0.15815,-0.15715,-0.15775,-0.15835,-0.15815,-0.15675,-0.15675,-0.15755,-0.15775,-0.15895,-0.15515,-0.15575,-0.15575,-0.15655,-0.15715,-0.021483,0.26283,0.26463,0.26123,0.26403,0.26004,0.26303,0.26563,0.26843,0.26923 -0.00116,0.0033015,-0.077005,-0.094851,-0.21085,0.26876,0.24422,-0.048006,-0.16177,-0.222,0.28884,0.28214,-0.014544,-0.135,-0.21531,0.28214,0.28214,-0.074774,-0.17516,-0.21531,0.27545,0.26876,-0.09262,-0.22646,-0.23093 -0.21559,-0.25415,-0.23873,-0.28114,-0.30427,-0.049812,-0.13078,-0.1809,-0.20403,-0.22331,0.19693,0.096694,-0.0074024,-0.092221,-0.14234,0.25091,0.23549,0.19693,0.14296,0.081272,0.25091,0.24705,0.23163,0.20465,0.18922 0.13266,0.22763,0.13266,0.14727,0.18379,0.14727,0.13266,0.14727,0.16188,0.16188,0.12535,0.13266,0.13996,0.13996,0.13266,-0.093797,-0.11571,-0.11571,-0.093797,-0.093797,-0.34217,-0.36408,-0.34217,-0.34217,-0.34217 -0.25626,-0.15124,0.0063015,0.13758,0.29512,-0.25626,-0.098723,-0.046211,0.21635,0.26886,-0.15124,-0.25626,0.16384,0.16384,0.24261,-0.25626,-0.098723,0.0063015,0.032558,0.34763,-0.28252,-0.30877,0.032558,0.08507,0.16384 -0.21557,-0.208,-0.208,-0.18529,-0.208,-0.12474,-0.11339,-0.10203,-0.11717,-0.1096,-0.037695,-0.026341,-0.045264,-0.041479,-0.045264,-0.014987,-0.026341,-0.0074178,-0.026341,-0.026341,0.35969,0.3824,0.3824,0.37104,0.39375 0.16716,0.16801,0.16801,0.16716,0.16695,0.16355,0.16355,0.16313,0.16313,0.16186,0.16016,0.15931,0.15889,0.15952,0.15889,-0.24448,-0.24448,-0.24512,-0.24448,-0.24406,-0.24576,-0.24533,-0.24639,-0.24491,-0.24427 0.12343,0.079118,0.072787,-0.11753,-0.36838,0.13451,0.12976,0.084262,-0.1203,-0.3672,0.19228,0.10365,0.064478,-0.12544,-0.35889,0.19505,0.13966,0.11908,0.13016,-0.35651,0.15034,0.12779,0.1812,0.14401,-0.35731 -0.34005,-0.21564,0.095379,0.14722,0.16795,-0.35041,-0.091232,0.095379,0.17832,0.15758,-0.31931,-0.1327,0.11611,0.13685,0.18868,-0.30895,-0.1638,0.18868,0.13685,0.16795,-0.30895,-0.06013,0.13685,0.20942,0.16795 -0.16187,-0.16156,-0.16251,-0.16219,-0.16266,-0.16124,-0.16171,-0.16251,-0.16219,-0.16219,-0.16124,-0.16203,-0.16266,-0.16203,-0.16203,0.2586,0.26256,0.30405,0.30785,0.2057,0.26177,0.20855,0.20665,0.20729,0.2076 -0.30244,-0.31606,-0.34331,-0.30244,-0.41143,-0.098089,-0.11171,-0.070842,-0.11171,-0.084465,0.038146,0.079016,0.11989,0.092639,0.11989,0.038146,0.079016,0.092639,0.188,0.20163,0.21525,0.188,0.21525,0.22887,0.25612 -0.13551,-0.2476,-0.32233,-0.32233,-0.2476,-0.098143,-0.21024,-0.17287,-0.085688,-0.085688,-0.12305,-0.085688,-0.048324,0.026404,0.051313,0.076223,0.10113,0.10113,0.17586,0.25059,0.20077,0.32532,0.25059,0.31286,0.31286 0.42869,0.4081,0.39162,0.37927,0.37927,-0.057335,-0.069692,-0.094405,-0.094405,-0.032622,-0.12324,-0.12324,-0.10676,-0.094405,-0.082048,-0.10676,-0.12324,-0.094405,-0.10676,-0.094405,-0.12324,-0.12324,-0.10676,-0.12324,-0.10676 0.2209,0.2151,-0.17137,-0.17799,-0.16806,0.22007,0.21262,-0.16227,-0.18461,-0.18793,0.21841,0.22255,-0.16062,-0.19289,-0.17799,0.23827,0.20765,-0.15979,-0.19537,-0.17799,0.24158,0.2391,0.24158,-0.17634,-0.18461 0.29845,0.31862,-0.13273,-0.14534,-0.19325,0.24802,0.32871,-0.054567,-0.15039,-0.22855,0.24046,0.30854,-0.084825,-0.17812,-0.22099,0.2455,0.013516,-0.12265,-0.16552,-0.2109,0.2455,-0.029351,-0.11004,-0.097433,-0.12265 -0.22175,-0.23588,-0.16994,0.20215,0.1786,-0.23117,-0.21233,-0.10871,0.19744,0.20686,-0.18878,-0.21704,-0.042767,0.2257,0.22099,-0.1511,-0.17465,-0.089866,0.27751,0.26338,-0.13226,-0.14168,-0.038057,0.28222,0.30106 -0.16441,-0.16441,-0.16087,0.25059,0.24862,-0.16087,-0.16638,-0.16677,0.23957,0.25177,-0.15969,-0.1648,-0.17347,0.24232,0.2376,-0.16087,-0.16244,-0.16323,0.24351,0.25177,-0.15969,-0.15929,-0.16165,0.23484,0.24823 0.10614,0.10909,0.10909,-0.22591,-0.2628,0.12237,0.10023,0.10319,-0.23919,-0.26133,0.14303,0.14893,0.19173,-0.23181,-0.23919,0.13713,0.21682,0.22567,-0.23181,-0.24362,0.1814,0.24633,0.25371,-0.22296,-0.23624 0.27852,0.22769,0.3124,0.3124,0.3124,0.14299,0.14299,0.12604,0.14299,0.14299,0.0074542,-0.0094872,-0.0094872,-0.0094872,-0.14502,-0.19584,-0.094195,-0.094195,-0.094195,-0.14502,-0.31443,-0.22973,-0.22973,-0.26361,-0.31443 0.23568,0.19414,0.16332,-0.15426,-0.19446,0.24238,0.20754,0.16198,-0.17704,-0.20786,0.22898,0.19816,-0.1824,-0.1958,-0.19982,0.22764,0.1861,-0.17436,-0.19848,-0.19848,0.23836,0.1995,-0.2025,-0.2025,-0.1958 -0.16293,-0.16233,-0.16535,0.24128,0.24582,-0.16293,-0.16111,-0.16384,0.24521,0.2431,-0.16293,-0.16263,-0.16263,0.24249,0.24976,-0.16233,-0.16535,-0.16142,0.23492,0.25188,-0.16414,-0.16717,-0.16202,0.24188,0.25278 0.18431,0.27796,0.20304,0.15621,0.18431,0.17494,0.18431,0.15621,0.18431,0.15621,-0.031093,0.043829,0.12812,0.10002,0.11875,-0.25586,-0.1903,-0.10601,-0.10601,-0.059188,-0.36824,-0.34015,-0.34015,-0.22776,-0.22776 0.33638,-0.14253,-0.11122,-0.17016,-0.20147,0.29401,0.29954,-0.069773,-0.1674,-0.20055,0.27099,0.26822,-0.078983,-0.16371,-0.19042,0.23415,0.23139,-0.096481,-0.16371,-0.18674,0.20191,0.20191,-0.061484,-0.15542,-0.17845 0.15908,0.26531,0.26458,0.26642,0.26605,0.1532,0.26531,0.26531,0.2609,0.26017,-0.15815,-0.15668,-0.15962,-0.1622,-0.16293,-0.16036,-0.16293,-0.16183,-0.16293,-0.16367,-0.16256,-0.1633,-0.1633,-0.16293,-0.16293 0.18276,0.17733,-0.20085,-0.2099,-0.21714,0.19904,0.20447,-0.12847,-0.20266,-0.20628,0.2298,0.18999,-0.10495,-0.18818,-0.17733,0.21533,0.23342,-0.11942,-0.17733,-0.16104,0.35104,0.21533,0.23523,-0.17009,-0.17009 -0.22681,-0.22681,0.054224,0.15341,0.23607,-0.19375,-0.29294,0.13688,0.18648,0.26914,-0.25988,-0.21028,0.054224,0.20301,0.16995,-0.27641,-0.19375,-0.011903,0.21954,0.054224,-0.22681,-0.17722,0.054224,0.21954,0.28567 -0.38695,-0.21152,0.064157,0.18946,0.31477,-0.23658,-0.21152,0.014034,0.039096,0.38996,-0.21152,-0.13633,-0.11127,0.21453,0.13934,-0.1614,-0.11127,-0.036089,0.089219,0.23959,-0.1614,-0.11127,-0.086211,0.18946,0.28971 -0.098931,0.057606,0.00020872,-0.18764,-0.28678,0.22458,0.13587,-0.015445,-0.15633,-0.28678,0.29763,0.20371,0.068041,-0.14067,-0.25547,0.30806,0.16718,0.015862,-0.15633,-0.25547,0.32372,0.28719,0.068041,-0.062406,-0.25547 0.2619,0.11956,0.21445,-0.21255,-0.28372,0.21445,0.2619,0.19073,-0.21255,-0.26,0.14328,0.2619,0.11956,-0.14139,-0.26,0.21445,0.14328,-0.022774,-0.14139,-0.26,0.14328,0.072117,-0.14139,-0.21255,-0.21255 0.34375,0.27546,0.23369,0.20276,0.15416,0.3321,0.26904,0.24052,0.1879,0.16099,-0.15231,-0.1507,-0.15231,-0.15311,-0.15191,-0.15994,-0.16075,-0.15874,-0.16155,-0.16075,-0.16798,-0.16798,-0.16637,-0.16878,-0.16717 -0.3,-0.20158,-0.28032,-0.31969,-0.35906,-0.14252,-0.14252,-0.02441,-0.18189,-0.14252,0.093702,0.11339,0.014961,-0.083466,-0.02441,0.074017,0.17244,0.21181,0.11339,0.2315,0.17244,0.29056,0.2315,0.19213,0.29056 -0.26205,-0.29564,-0.11087,0.0067191,0.30908,-0.22845,-0.22845,-0.010079,0.057113,0.32588,-0.14446,-0.26205,0.057113,0.1747,0.27548,-0.19485,-0.12766,0.0067191,0.1747,0.25869,-0.14446,-0.11087,0.023517,0.090708,0.35947 -0.23748,-0.21364,-0.11826,-0.1898,-0.26133,-0.21364,-0.1898,-0.11826,-0.1898,-0.14211,-0.02289,0.024797,-0.046733,-0.094421,-0.11826,0.048641,0.024797,0.072485,0.26323,0.14402,0.31092,0.31092,0.26323,0.35861,0.33476 -0.17804,-0.16189,-0.13967,0.21779,0.23798,-0.16795,-0.17401,-0.14371,0.23395,0.23395,-0.16997,-0.17401,-0.15785,0.2703,0.23395,-0.18006,-0.17199,-0.13765,0.29655,0.23395,-0.16795,-0.16795,-0.14775,0.24,0.24202 0.22522,0.068272,0.029035,0.029035,-0.28486,0.12713,0.10751,0.10751,-0.010201,-0.40257,0.16636,0.16636,0.14674,-0.14753,-0.30448,0.16636,0.16636,0.16636,-0.088675,-0.24562,0.22522,0.10751,0.08789,-0.12791,-0.48104 -0.37626,-0.35397,-0.24252,-0.15336,-0.26481,-0.15336,-0.10878,-0.17565,-0.10878,-0.086487,0.024965,-0.041906,-0.086487,0.11413,0.047256,0.047256,0.13642,0.15871,0.11413,0.11413,0.33703,0.24787,0.31474,0.27016,0.22558 0.15107,0.15429,0.16362,0.16587,0.17842,0.15525,0.16426,0.16941,0.16362,0.19257,0.15397,0.15976,0.14721,0.15171,0.17584,-0.24112,-0.24305,-0.24305,-0.24208,-0.24305,-0.24723,-0.24498,-0.24723,-0.24755,-0.24755 -0.17497,-0.00099413,-0.00099413,-0.075554,0.3221,-0.32409,-0.15011,-0.025847,0.073565,0.3221,-0.22467,-0.12526,0.023859,0.073565,0.27239,-0.32409,-0.10041,0.12327,0.12327,0.3221,-0.29923,-0.15011,-0.075554,0.073565,0.3221 0.414,0.19244,-0.10825,-0.092421,-0.12407,0.39817,0.073747,-0.13198,-0.13198,-0.10825,0.414,-0.037032,-0.10033,-0.14781,-0.10825,0.39817,-0.092421,-0.16364,-0.15572,-0.13198,0.20035,-0.11616,-0.1399,-0.10825,-0.092421 0.15749,0.17888,0.17554,0.15486,0.15032,0.15546,0.17924,0.17781,0.16155,0.15235,0.15952,0.17793,0.15964,0.15355,0.15319,-0.24498,-0.24427,-0.24451,-0.24498,-0.24367,-0.24463,-0.24475,-0.24498,-0.2457,-0.24487 -0.31251,-0.11158,-0.15885,0.17209,0.25483,-0.27705,-0.099757,-0.1234,0.23119,0.27847,-0.21795,-0.064298,-0.087937,0.19573,0.24301,-0.21795,-0.02884,-0.18249,0.24301,0.24301,-0.21795,-0.087937,-0.13522,0.21937,0.24301 -0.15399,-0.1168,0.050587,0.27377,0.27377,-0.24699,-0.17259,-0.0052075,0.27377,0.27377,-0.35857,-0.079601,-0.0052075,0.19937,0.19937,-0.17259,-0.17259,-0.19119,0.16218,0.19937,-0.22839,-0.24699,-0.1168,0.16218,0.19937 0.12036,0.14025,0.12036,0.10711,-0.26406,0.10711,0.12699,0.073968,0.087224,-0.35685,0.14025,0.11374,0.12699,-0.085103,-0.37011,0.12036,0.10048,0.13362,-0.025451,-0.46953,0.11374,0.12699,0.10711,0.054084,-0.44964 0.16584,0.16516,0.16448,0.16482,0.16584,0.16345,0.16277,0.16311,0.16379,0.16345,0.16209,0.16175,0.16107,0.16072,0.16107,-0.24412,-0.24276,-0.24344,-0.24549,-0.24173,-0.24685,-0.24583,-0.24617,-0.24549,-0.24753 0.15604,0.16164,0.16071,0.16725,0.17099,0.16071,0.16445,0.16164,0.16725,0.16725,0.15604,0.16071,0.16351,0.16351,0.16725,-0.2476,-0.24387,-0.242,-0.24574,-0.23733,-0.24574,-0.25321,-0.24387,-0.24013,-0.24947 -0.2098,-0.15735,-0.05245,0.1049,0.26225,-0.28848,-0.23603,-0.026225,0.15735,0.2098,-0.28848,-0.13113,0.026225,0.2098,0.18358,-0.39338,0.078675,0.13113,0.18358,0.26225,-0.26225,-0.18358,0.026225,0.2098,0.18358 0.18767,0.18016,-0.060054,-0.25147,-0.2815,0.17641,0.18016,0.01126,-0.26649,-0.30027,0.15389,0.18016,0.10509,-0.20268,-0.28901,0.16515,0.1689,0.17265,-0.026273,-0.31528,0.16515,0.16515,0.17641,0.10134,-0.29652 0.15524,0.15867,0.17123,0.16152,0.16666,0.15524,0.15695,0.16209,0.17294,0.16323,0.16209,0.15867,0.15981,0.17694,0.16438,-0.23012,-0.24611,-0.23298,-0.2364,-0.23754,-0.22727,-0.25068,-0.2758,-0.27123,-0.23754 0.1683,0.1672,0.16278,0.16388,0.15946,0.16278,0.16388,0.16499,0.16278,0.16609,0.16388,0.16499,0.16388,0.15725,0.15615,-0.24505,-0.23952,-0.24063,-0.24063,-0.23952,-0.26384,-0.24726,-0.23179,-0.24173,-0.25831 0.40243,0.40029,0.4185,0.37673,0.39279,-0.061303,-0.085935,-0.072013,-0.050593,-0.069871,-0.09129,-0.097716,-0.099858,-0.10843,-0.10414,-0.1095,-0.11378,-0.11378,-0.11271,-0.11485,-0.11378,-0.11699,-0.11592,-0.11699,-0.12128 0.14726,0.13928,0.18453,0.22579,0.1659,0.13395,0.13528,0.15126,0.15658,0.19784,0.13395,0.14726,0.12996,0.1273,0.22845,-0.18682,-0.20013,-0.19481,-0.19214,-0.24006,-0.23873,-0.25071,-0.27999,-0.30794,-0.31327 -0.14575,-0.16007,-0.15052,-0.14097,-0.12664,-0.16007,-0.15052,-0.16007,-0.14097,-0.16007,-0.16485,-0.14575,-0.12664,-0.12664,-0.12187,0.093026,0.064373,0.073924,0.073924,0.078699,0.40343,0.37478,0.35568,0.3318,0.3318 0.32666,0.15066,-0.025345,0.0098562,-0.16615,0.18586,0.22106,0.0098562,-0.13095,-0.23655,0.15066,0.080258,-0.16615,-0.23655,-0.27175,0.25626,0.15066,0.045057,-0.060545,-0.27175,0.22106,0.29146,0.080258,-0.34215,-0.27175 0.46542,0.28109,-0.11877,-0.045033,-0.20384,0.36333,0.20169,0.006012,-0.16981,-0.20951,0.31796,0.11094,-0.0081672,-0.19817,-0.1925,0.21303,0.045714,-0.13011,-0.18115,-0.17548,0.10243,-0.0081672,-0.14429,-0.16414,-0.15847 0.18855,0.16822,0.17117,0.17647,0.1691,0.19326,0.16469,0.15732,0.15172,0.11196,0.18825,0.16851,0.16145,0.15703,0.11196,-0.24181,-0.24152,-0.24181,-0.24093,-0.24181,-0.24682,-0.24505,-0.24712,-0.24741,-0.24535 -0.14707,-0.17665,-0.16723,0.24352,0.24621,-0.15581,-0.16118,-0.1632,0.23815,0.24554,-0.17463,-0.15312,-0.1632,0.23411,0.2563,-0.17732,-0.14303,-0.15244,0.22537,0.25966,-0.16589,-0.16858,-0.17665,0.23747,0.25966 0.18087,0.16748,0.15884,0.15582,0.15107,0.17871,0.16834,0.16144,0.15582,0.15064,0.17871,0.16834,0.16144,0.15539,0.15453,-0.24271,-0.23667,-0.24056,-0.24919,-0.23753,-0.2479,-0.24703,-0.24617,-0.2479,-0.25178 -0.21971,-0.246,-0.035743,0.30592,0.22707,-0.27228,-0.11459,-0.088306,0.25335,0.3322,-0.29856,-0.088306,0.069383,0.095665,0.12195,-0.19343,-0.19343,-0.035743,0.25335,0.20079,-0.246,-0.19343,0.043102,0.069383,0.25335 0.31314,0.26605,-0.10078,-0.1615,-0.19125,0.30695,-0.09954,-0.10574,-0.16274,-0.17885,0.30323,-0.066079,-0.087147,-0.15655,-0.18505,0.29703,0.25986,-0.073515,-0.15035,-0.17762,0.29332,0.25118,-0.071036,-0.15035,-0.17266 0.12666,0.051979,-0.17207,-0.26169,-0.32144,0.17147,0.022106,-0.022704,-0.18701,-0.32144,0.26109,0.21628,0.0071696,-0.12726,-0.21688,0.26109,0.18641,0.15654,-0.03764,-0.26169,0.29097,0.27603,0.17147,-0.067514,-0.20194 0.16389,0.17583,0.1674,0.1681,0.14187,0.16553,0.16834,0.16576,0.16295,0.15499,0.17489,0.16342,0.16365,0.1592,0.15241,-0.24426,-0.24426,-0.24449,-0.24449,-0.24426,-0.24426,-0.24496,-0.2459,-0.24543,-0.2459 -0.037103,-0.042028,-0.04367,-0.061729,-0.038745,-0.028894,-0.045312,-0.04367,-0.05352,-0.079788,-0.017402,-0.03382,-0.042028,-0.050237,-0.050237,0.017074,-0.038745,-0.04367,-0.046954,-0.05352,0.97585,-0.0059102,-0.04367,-0.038745,-0.05352 -0.37588,-0.065235,-0.11701,0.038313,0.29718,-0.22056,-0.091122,0.012426,0.21952,0.34896,-0.3241,-0.11701,-0.091122,0.24541,0.2713,-0.27233,-0.065235,-0.039348,0.012426,0.2713,-0.19467,-0.065235,-0.039348,0.19363,0.16775 -0.16864,-0.16191,-0.15731,0.2466,0.24262,-0.16895,-0.16099,-0.15823,0.2469,0.23588,-0.16834,-0.16283,-0.15762,0.24292,0.24262,-0.16956,-0.16283,-0.16007,0.24568,0.24751,-0.16956,-0.16221,-0.15976,0.2567,0.24139 0.1743,0.18299,-0.16811,-0.16811,-0.2498,0.18125,0.18299,-0.14377,-0.18201,-0.26544,0.18299,0.19168,0.19515,-0.1542,-0.27239,0.19689,0.19515,0.18472,-0.16811,-0.25327,0.20037,0.19863,0.19515,-0.17506,-0.26196 0.24276,-0.034608,-0.11858,-0.17711,-0.17202,0.24531,-0.01425,-0.11095,-0.17202,-0.17965,0.30638,0.16388,-0.13385,-0.17202,-0.18729,0.29875,0.38527,-0.093135,-0.17457,-0.18474,0.29111,0.27075,0.051912,-0.15166,-0.17965 0.33833,0.1959,0.075594,-0.12536,-0.23396,0.32012,0.20501,0.076895,-0.16958,-0.23266,0.34093,0.19655,0.051532,-0.20275,-0.24632,0.019666,0.21932,0.02812,-0.2203,-0.25347,0.017065,0.050231,0.022267,-0.21315,-0.25997 0.22918,0.16645,0.10372,0.16645,0.271,0.12463,0.25009,0.271,0.20827,0.20827,0.082807,0.061896,0.061896,-0.00083643,0.040985,-0.20994,-0.16812,-0.1263,-0.25177,-0.10539,-0.27268,-0.27268,-0.3145,-0.20994,-0.3145 0.38146,0.25362,0.33032,0.30476,0.20249,0.20249,0.10022,0.12579,0.10022,0.15136,0.049088,-0.027612,-0.0020453,-0.12988,-0.078746,-0.078746,-0.10431,-0.18101,-0.20658,-0.20658,-0.23215,-0.20658,-0.20658,-0.25771,-0.28328 0.27998,0.20221,-0.16073,-0.082956,-0.18665,0.38367,0.27998,0.072587,-0.1348,-0.34219,0.35775,0.072587,-0.057032,-0.10888,-0.2385,0.3059,-0.0051848,-0.16073,-0.10888,-0.2385,0.15036,0.020739,-0.082956,-0.10888,-0.10888 0.20231,-0.081831,-0.11025,-0.11025,-0.19549,0.23072,0.11706,0.0034096,-0.081831,-0.19549,0.34437,0.11706,-0.025004,0.0034096,-0.16707,0.28755,0.11706,0.0034096,-0.19549,-0.2239,0.31596,0.25913,0.088651,-0.28073,-0.4228 -0.37669,-0.37669,-0.34618,-0.36652,-0.37669,-0.020746,-0.00040679,-0.030916,-0.030916,-0.030916,0.070781,0.030102,0.040272,0.060612,0.060612,0.11146,0.16231,0.11146,0.12163,0.20299,0.19282,0.21316,0.21316,0.18265,0.18265 0.19767,0.18219,0.049046,-0.24201,-0.42469,0.18528,0.16361,0.089298,-0.053133,-0.32871,0.16051,0.1729,0.080009,-0.012881,-0.13364,0.16361,0.1729,0.061431,-0.025266,-0.43088,0.14813,0.14813,0.080009,-0.04694,-0.35657 -0.1609,-0.16166,-0.16191,-0.16216,-0.16267,-0.15938,-0.15938,-0.1609,-0.15964,-0.16065,-0.15762,-0.15837,-0.15863,-0.15888,-0.15913,0.11785,0.27465,0.26935,0.27238,0.27213,0.11482,0.26556,0.26607,0.27162,0.27743 0.43362,0.30844,0.2083,0.33348,0.23333,0.2083,0.10815,0.13319,0.10815,0.13319,-0.067096,-0.04206,-0.092131,-0.067096,-0.067096,-0.19227,-0.092131,-0.16724,-0.16724,-0.24235,-0.31745,-0.16724,-0.16724,-0.16724,-0.19227 0.38918,-0.054304,-0.099557,-0.12671,-0.10861,0.39823,-0.099557,-0.12671,-0.15386,-0.072405,0.32582,-0.054304,-0.099557,-0.099557,-0.12671,0.41633,-0.036202,-0.099557,-0.10861,-0.13576,0.44348,-0.045253,-0.099557,-0.12671,-0.099557 0.39876,0.3641,0.3641,0.3641,0.44496,-0.05175,0.017558,-0.063302,-0.040199,-0.05175,-0.10951,-0.097956,-0.074853,-0.097956,-0.05175,-0.086405,-0.12106,-0.10951,-0.074853,-0.063302,-0.15571,-0.19037,-0.20192,-0.13261,-0.17882 0.23267,0.065331,-0.083149,-0.1185,-0.16328,0.24681,0.079472,-0.083149,-0.13736,-0.14678,0.24209,0.0087674,-0.092576,-0.14914,-0.16092,0.5037,0.0016969,-0.1185,-0.13971,-0.16564,0.54141,0.037049,-0.10436,-0.13971,-0.15621 -0.16933,-0.11013,0.1267,0.067497,0.18591,-0.25815,-0.19894,0.1267,0.097101,0.21552,-0.31735,-0.080523,-0.050919,0.21552,0.30433,-0.22854,-0.050919,-0.021315,0.037893,0.27472,-0.37656,-0.25815,-0.021315,0.15631,0.33393 0.38506,0.20546,-0.010058,-0.2615,-0.081898,0.16954,0.13362,-0.081898,0.061783,-0.36926,0.20546,0.13362,0.061783,-0.11782,-0.33334,0.2773,0.13362,-0.010058,-0.11782,-0.15374,0.16954,0.16954,-0.010058,-0.22558,-0.33334 0.20347,0.19885,0.19308,-0.21668,-0.26169,0.1977,0.20347,0.19655,-0.22937,-0.25361,0.16654,0.19077,0.19655,-0.21783,-0.24899,0.15499,0.16423,0.1296,-0.22591,-0.21206,0.15153,0.11344,-0.17974,-0.20052,-0.21437 -0.24902,-0.2398,-0.24287,-0.22751,-0.24492,-0.22341,-0.2398,-0.24185,-0.25311,-0.24185,0.21497,0.23648,0.14737,0.12484,0.12484,0.21702,0.21702,0.11869,0.12484,0.086939,0.23648,0.16786,0.11255,0.12176,0.15249 0.36705,0.32047,0.32047,0.36705,0.39034,0.040991,0.075926,0.099216,0.075926,0.12251,-0.14533,-0.09875,-0.087105,-0.1104,-0.13369,-0.12204,-0.20356,-0.12204,-0.13369,-0.16862,-0.18027,-0.16862,-0.13369,-0.20356,-0.16862 0.16549,0.15871,0.1638,0.16041,0.1621,0.17227,0.1638,0.17058,0.17058,0.1638,0.1621,0.16719,0.15702,0.15024,0.16041,-0.24129,-0.24807,-0.24299,-0.2379,-0.24129,-0.24638,-0.24638,-0.25655,-0.25146,-0.23621 0.26136,0.22733,0.24435,0.1933,0.39749,0.14225,0.091205,0.15927,0.1933,0.12524,0.023142,0.040157,0.040157,-0.01089,0.023142,-0.13,-0.13,-0.13,-0.2321,-0.13,-0.28314,-0.30016,-0.26613,-0.26613,-0.28314 -0.25395,-0.1693,-0.31038,-0.14108,-0.28217,-0.19752,-0.08465,-0.1693,-0.1693,-0.22573,-0.028217,-0.028217,-0.028217,-0.08465,-0.056433,0.1693,0.28217,0.1693,0.3386,0.1693,0.28217,0.14108,0.14108,0.25395,0.28217 -0.021445,-0.055926,-0.028119,-0.067049,-0.0626,-0.024782,-0.052589,-0.074835,-0.063712,-0.064825,-0.034793,-0.024782,-0.054814,-0.064825,-0.061488,0.33227,-0.031456,-0.047028,-0.063712,-0.055926,0.90176,-0.03368,-0.045916,-0.098194,-0.10153 0.40203,0.4089,0.41233,0.38828,0.37797,-0.096211,-0.075595,-0.075595,-0.065286,-0.041233,-0.10308,-0.096211,-0.082467,-0.096211,-0.092775,-0.1237,-0.11339,-0.11339,-0.11339,-0.10308,-0.1237,-0.11339,-0.13401,-0.11339,-0.11339 0.24477,0.21535,0.18593,0.27418,0.24477,0.12709,0.12709,0.12709,0.12709,0.12709,0.12709,0.009414,0.097671,0.097671,0.15651,-0.19652,-0.13768,-0.31419,-0.1671,-0.10826,-0.28477,-0.31419,-0.28477,-0.31419,-0.1671 0.46997,0.42796,0.39137,0.36156,0.32903,-0.068029,-0.065319,-0.066674,-0.082936,-0.069384,-0.10055,-0.087002,-0.092422,-0.093777,-0.089712,-0.11275,-0.11275,-0.11682,-0.10868,-0.11275,-0.12359,-0.11817,-0.12224,-0.11546,-0.12088 0.18745,0.21901,0.12434,0.077,-0.27013,0.15589,0.12434,0.12434,0.013885,-0.33324,0.14011,0.18745,0.12434,0.045442,-0.33324,0.092778,0.10856,0.10856,-0.049229,-0.39636,0.12434,-0.0018934,0.061221,-0.1439,-0.49103 0.37236,0.3762,0.41583,0.40816,0.41838,-0.067395,-0.061004,-0.06356,-0.081457,-0.10191,-0.096798,-0.094241,-0.087849,-0.10447,-0.087849,-0.11214,-0.11214,-0.10575,-0.10575,-0.1083,-0.11981,-0.11981,-0.11597,-0.12237,-0.12237 -0.21975,-0.22014,0.077448,0.077646,0.24451,-0.21975,-0.22291,0.077448,0.079028,0.22555,-0.22034,-0.21994,0.075869,0.077448,0.46509,-0.22014,-0.22192,0.076856,0.073301,0.25142,-0.21975,-0.22133,0.075869,0.074289,0.25419 -0.12038,-0.12325,-0.12182,-0.12325,-0.12898,-0.11895,-0.12325,-0.12468,-0.12898,-0.12898,-0.10032,-0.10462,-0.10748,-0.11752,-0.11035,-0.042994,-0.037261,-0.035828,-0.034395,-0.028662,0.32389,0.36688,0.38838,0.42707,0.45573 -0.17301,-0.17401,-0.14687,0.24725,0.22814,-0.172,-0.171,-0.14486,0.24222,0.23518,-0.16698,-0.17301,-0.15089,0.24021,0.2382,-0.171,-0.16798,-0.15793,0.25428,0.24222,-0.16698,-0.15692,-0.1529,0.26735,0.25127 0.13592,0.13508,0.13255,-0.23739,-0.24076,0.13844,0.13844,0.13283,-0.23964,-0.24216,0.13928,0.14013,0.13367,-0.2416,-0.23992,0.12498,0.25736,0.14069,-0.23992,-0.2388,0.12442,0.25708,0.27027,-0.24076,-0.2402 0.13448,-0.062002,-0.17989,-0.19517,-0.17553,0.23054,0.034057,-0.14496,-0.19954,-0.18208,0.28294,0.13448,-0.035804,-0.19954,-0.20172,0.35935,0.16286,0.025325,-0.14496,-0.20172,0.46196,0.26547,0.079904,-0.055452,-0.19299 -0.17087,-0.15514,-0.076467,0.14774,0.29721,-0.16694,-0.16694,-0.11973,0.18314,0.31688,-0.15514,-0.16694,-0.13154,0.084806,0.35228,-0.14334,-0.1512,-0.15514,0.053338,0.37982,-0.15514,-0.16694,-0.12367,0.01007,0.37982 0.16746,0.16494,0.16746,0.16872,0.17375,0.1599,0.1599,0.15864,0.16368,0.16494,0.16116,0.15864,0.15864,0.16242,0.15864,-0.243,-0.2493,-0.24552,-0.24426,-0.25308,-0.23923,-0.23923,-0.24552,-0.24174,-0.24804 -0.38398,-0.24511,-0.31454,-0.34926,-0.36662,-0.071518,-0.071518,-0.10624,-0.12359,-0.14095,0.067352,0.067352,0.015276,0.049993,0.13679,0.17151,0.24094,0.15415,0.22358,0.20622,0.17151,0.13679,0.17151,0.22358,0.13679 0.21294,0.21294,0.21599,0.2282,0.23125,0.20989,0.21294,0.2221,0.21294,0.20989,0.16413,0.084811,-0.025016,-0.10129,-0.14095,-0.19586,-0.20806,-0.20501,-0.22027,-0.21416,-0.20501,-0.21416,-0.23247,-0.23857,-0.21721 -0.22829,-0.35751,-0.18521,-0.2929,-0.2929,-0.099068,-0.18521,-0.1206,-0.1206,-0.18521,0.1163,0.0086146,-0.099068,0.030151,-0.012922,0.24552,0.15937,0.18091,0.0086146,0.15937,0.28859,0.15937,0.22398,0.28859,0.31013 -0.038417,-0.0060432,-0.063597,-0.13194,-0.30101,0.1846,0.11266,-0.024029,-0.13194,-0.26144,0.35727,0.14144,0.10187,-0.08518,-0.35137,0.35367,0.13784,0.098274,-0.06,-0.26504,0.3177,0.20259,0.091079,-0.10317,-0.27583 0.19646,0.17393,0.10634,-0.10769,-0.31046,0.24152,0.23026,0.14014,-0.073899,-0.27667,0.23026,0.23026,0.20773,-0.073899,-0.27667,0.20773,0.12887,0.095077,-0.15275,-0.31046,0.061282,-0.051369,-0.051369,-0.20908,-0.35552 0.12448,0.17494,0.15812,-0.060558,-0.4811,0.15812,0.090837,0.1413,-0.010093,-0.41381,0.057193,0.090837,0.12448,0.040372,-0.3297,0.10766,0.057193,0.090837,0.090837,-0.36335,0.1413,0.1413,0.090837,0.10766,-0.3297 0.22874,0.1955,-0.10373,-0.10373,-0.30322,0.1955,0.095753,-0.10373,-0.10373,-0.20348,0.29524,0.129,0.029258,-0.30322,-0.40296,0.39498,0.129,-0.10373,0.029258,-0.20348,0.16225,0.22874,0.029258,-0.10373,-0.10373 0.17189,0.16977,0.15919,0.15919,0.15848,0.17189,0.16836,0.16272,0.15495,0.15778,0.17118,0.16483,0.16201,0.15848,0.15778,-0.25289,-0.23737,-0.24584,-0.23949,-0.23949,-0.25501,-0.24372,-0.24584,-0.24796,-0.2409 0.33931,-0.10599,-0.087436,-0.094394,-0.13962,0.44251,-0.10715,-0.076999,-0.11527,-0.1489,0.50397,0.0041747,-0.022497,-0.12454,-0.15006,0.33351,-0.045689,-0.078159,-0.1257,-0.15353,0.308,-0.031774,-0.042211,-0.12918,-0.15238 0.30762,0.2098,0.15112,0.009292,-0.12764,0.33451,0.19024,0.058197,-0.059176,-0.19367,0.2905,0.15112,0.031299,-0.11786,-0.24257,0.21959,0.050862,-0.059176,-0.17655,-0.33549,0.1071,-0.00048905,-0.15699,-0.2548,-0.38684 0.1565,0.17925,0.17925,0.1565,0.20199,0.22474,0.20199,0.17925,0.24749,0.17925,0.020017,0.13375,0.020017,0.020017,0.13375,-0.11646,-0.13921,-0.18471,-0.11646,-0.13921,-0.27569,-0.20745,-0.32119,-0.34393,-0.38943 0.30073,0.25907,0.16536,-0.21992,-0.25116,0.16536,0.23825,0.21742,-0.20951,-0.21992,0.1966,0.22783,0.14453,-0.21992,-0.2824,0.13412,0.092467,0.082054,-0.18868,-0.25116,0.061228,0.061228,-0.063727,-0.23033,-0.20951 0.19143,0.18115,0.17876,0.14792,0.13867,0.18047,0.16916,0.16916,0.14792,0.1445,0.18424,0.16779,0.15717,0.14518,0.14039,-0.24741,-0.24467,-0.24535,-0.24672,-0.24741,-0.24295,-0.24295,-0.24193,-0.24193,-0.24261 0.21414,0.21509,0.21177,-0.1788,-0.17927,0.21699,0.21035,-0.17642,-0.1788,-0.17785,0.21841,0.21699,-0.17832,-0.1769,-0.175,0.24024,0.23835,-0.175,-0.17642,-0.17405,0.24167,0.25496,-0.17785,-0.17642,-0.17785 0.33826,0.34256,-0.055898,-0.19421,-0.18991,0.34471,-0.068081,-0.080981,-0.14978,-0.18418,0.34972,-0.046582,-0.060915,-0.15193,-0.18203,0.34041,-0.020066,-0.08743,-0.12756,-0.17629,0.34256,-0.00071664,-0.039415,-0.09818,-0.14405 0.16297,0.16498,0.16383,0.16383,0.16326,0.16326,0.16326,0.16297,0.16412,0.16297,0.16269,0.16441,0.16326,0.16183,0.16183,-0.24374,-0.24317,-0.24432,-0.24546,-0.24374,-0.24604,-0.24546,-0.24604,-0.24546,-0.24604 0.15531,0.15531,0.17013,-0.23014,-0.22915,0.15284,0.15531,0.15629,-0.23014,-0.23212,0.19533,0.16025,0.15728,-0.23113,-0.23212,0.21312,0.21312,0.16124,-0.20791,-0.22817,0.21214,0.21214,-0.20889,-0.21186,-0.22817 0.30089,0.30089,0.28294,0.24703,0.22908,0.17522,0.13932,0.12136,0.13932,0.13932,0.013644,0.067504,0.013644,-0.094074,-0.040215,-0.058168,-0.058168,-0.20179,-0.16589,-0.11203,-0.30951,-0.29156,-0.25565,-0.25565,-0.32746 0.046373,0.051828,-0.12002,-0.19367,-0.17731,0.12548,0.22641,-0.12821,-0.1473,-0.18276,0.30279,0.30551,-0.040917,-0.14457,-0.19367,0.31097,0.30006,-0.084562,-0.18549,-0.20731,0.29188,0.30824,-0.098201,-0.19367,-0.17185 0.36427,0.41323,0.33979,0.33979,0.41323,-0.051898,-0.027418,0.021543,0.046023,0.021543,-0.10086,-0.027418,-0.10086,-0.027418,-0.10086,-0.14982,-0.19878,-0.051898,-0.12534,-0.14982,-0.12534,-0.22326,-0.22326,-0.14982,-0.12534 -0.16179,-0.15906,-0.16111,0.23859,0.24779,-0.16077,-0.16008,-0.16485,0.23314,0.24302,-0.16042,-0.16111,-0.16724,0.22905,0.23689,-0.16315,-0.16145,-0.16724,0.24302,0.23689,-0.16111,-0.1652,-0.16997,0.2345,0.30163 -0.21266,-0.21266,-0.21266,-0.25468,-0.29671,-0.19164,-0.19164,-0.17063,-0.19164,-0.17063,-0.023535,-0.1286,0.039506,0.018492,0.081533,0.29167,0.27066,0.20761,0.16559,0.018492,0.29167,0.27066,0.22863,0.24964,0.12356 -0.23746,-0.23727,-0.23782,-0.23874,-0.2391,-0.23727,-0.23837,-0.23947,-0.23764,-0.23837,0.15611,0.15776,0.16196,0.16342,0.057628,0.1583,0.15922,0.16086,0.16342,0.056167,0.15977,0.15977,0.16232,0.16196,0.34285 -0.30679,-0.14006,-0.22342,-0.30679,-0.16785,-0.0289,-0.19563,-0.16785,-0.084478,-0.16785,-0.11227,-0.084478,-0.0289,-0.0011116,-0.056689,0.13783,0.11004,0.11004,-0.0011116,0.082255,0.36014,0.30457,0.30457,0.36014,0.30457 -0.32235,-0.040137,0.022577,0.022577,0.24207,-0.29099,-0.22828,-0.13421,0.11665,0.30479,-0.3537,-0.13421,0.053934,0.08529,0.17936,-0.13421,-0.040137,0.053934,0.17936,0.33614,-0.22828,-0.16556,0.053934,0.053934,0.3675 0.22029,0.21916,0.21916,-0.15575,-0.15312,0.22218,0.22368,-0.15538,-0.15236,-0.16555,0.22594,0.23122,-0.15651,-0.17648,-0.19381,0.2267,0.23875,-0.19193,-0.19343,-0.19494,0.22142,0.22707,-0.19569,-0.19532,-0.19532 0.17719,0.17613,0.16031,0.15609,0.14976,0.17508,0.1698,0.15926,0.15398,0.14343,0.17824,0.17297,0.16137,0.16347,0.14976,-0.23952,-0.24585,-0.23635,-0.24057,-0.2353,-0.2469,-0.2469,-0.25218,-0.25007,-0.25323 0.22457,0.22527,0.22341,-0.17693,-0.1767,0.22573,0.22573,-0.17693,-0.17716,-0.1767,0.2248,0.2255,-0.1767,-0.17716,-0.17763,0.2255,0.22713,-0.17693,-0.17786,-0.17716,0.22713,0.22713,-0.17693,-0.17809,-0.17902 0.19289,0.1632,-0.19317,-0.22058,-0.22743,0.20432,0.1769,-0.12007,-0.20459,-0.22515,0.2066,0.20888,0.17005,-0.20459,-0.20916,0.21117,0.20203,0.1632,-0.20687,-0.22515,0.21574,0.19518,0.17005,-0.232,-0.21144 0.20042,0.17934,0.16124,0.14847,0.12782,0.19722,0.17934,0.15912,0.14634,0.12846,0.19978,0.17508,0.15954,0.14506,0.13123,-0.24538,-0.23665,-0.24517,-0.24666,-0.2441,-0.24346,-0.24197,-0.24431,-0.24921,-0.24155 0.31786,0.31663,0.33172,0.17719,0.19065,0.31704,0.32968,0.16211,0.16088,0.017369,-0.15224,-0.15143,-0.15306,-0.15143,-0.15143,-0.15469,-0.15469,-0.1555,-0.15346,-0.15673,-0.15673,-0.15713,-0.15713,-0.15591,-0.15958 0.33294,0.36771,0.36771,0.30513,0.23559,0.096518,0.096518,0.19387,0.061749,0.040888,-0.021696,-0.00083445,-0.042557,-0.042557,-0.070372,-0.15382,-0.15382,-0.19554,-0.17468,-0.077326,-0.22335,-0.24422,-0.28594,-0.18163,-0.23031 0.36208,0.36089,0.35494,0.36089,0.35613,0.075074,0.075074,0.089365,0.081029,0.08222,-0.13572,-0.1381,-0.14524,-0.14286,-0.12381,-0.15001,-0.15239,-0.15477,-0.15239,-0.15477,-0.14524,-0.15001,-0.14762,-0.15477,-0.15001 0.21254,0.21614,-0.17123,-0.17684,-0.17684,0.21694,0.22095,-0.17283,-0.17203,-0.17844,0.22255,0.22896,-0.18084,-0.17523,-0.18365,0.23337,0.23136,-0.18004,-0.17844,-0.17844,0.23457,0.23617,0.22736,-0.17844,-0.17764 -0.12217,-0.2788,-0.2788,-0.3049,-0.20048,-0.096066,-0.14828,-0.069961,-0.2788,-0.096066,-0.12217,-0.12217,-0.043856,0.034458,-0.017751,0.13888,0.13888,0.086668,0.21719,0.11277,0.21719,0.34772,0.34772,0.2694,0.2694 0.20466,-0.01942,-0.094112,-0.20615,-0.21549,0.14864,-0.00074692,-0.15013,-0.21549,-0.18748,0.37271,0.11129,-0.14079,-0.17814,-0.22482,0.3447,0.22333,0.0085896,-0.14079,-0.17814,0.38205,0.28868,0.045936,-0.010083,-0.1688 -0.35048,-0.089899,-0.089899,0.10553,0.17068,-0.18762,-0.25276,0.0078173,0.13811,0.26839,-0.35048,-0.057327,0.040389,0.26839,0.33354,-0.15504,-0.15504,0.040389,0.0078173,0.33354,-0.18762,-0.18762,-0.057327,0.17068,0.23582 0.14921,0.14921,0.23621,0.30146,0.33409,0.12746,0.13833,0.23621,0.23621,0.31234,-0.057422,-0.0030451,-0.01392,-0.079172,-0.01392,-0.1118,-0.22055,-0.16617,-0.14442,-0.22055,-0.2423,-0.20968,-0.25318,-0.25318,-0.23143 0.40819,-0.058988,-0.098388,-0.1012,-0.1012,0.40678,-0.078688,-0.10965,-0.10261,-0.10261,0.39834,-0.075874,-0.10261,-0.10683,-0.10965,0.39412,-0.074467,-0.11527,-0.11387,-0.11246,0.38708,-0.084317,-0.1195,-0.11387,-0.11246 0.38087,0.43902,0.39541,0.38087,0.36633,-0.040704,0.0029074,-0.069778,-0.11339,-0.026167,-0.098852,-0.069778,-0.17154,-0.12793,-0.11339,-0.084315,-0.12793,-0.14246,-0.098852,-0.12793,-0.12793,-0.084315,-0.12793,-0.084315,-0.12793 -0.056173,-0.062217,-0.059951,-0.064483,-0.064483,-0.039554,-0.064483,-0.061461,-0.062217,-0.057684,-0.019158,-0.031244,-0.059951,-0.056173,-0.047108,-0.01387,-0.016136,-0.016891,-0.033511,-0.018402,0.97498,-0.014625,-0.022935,-0.016891,-0.01538 0.49525,0.00098853,-0.028218,-0.1383,-0.18773,0.22116,0.20319,-0.055178,-0.21469,-0.20795,0.18521,0.16275,-0.12932,-0.21469,-0.22592,0.20319,0.23913,0.099842,-0.20346,-0.22143,0.13803,0.18521,0.095348,-0.19672,-0.2057 0.42003,0.40634,0.41547,0.38352,0.3607,-0.091088,-0.05458,-0.077398,-0.05458,-0.050016,-0.13672,-0.10478,-0.11391,-0.10022,-0.10022,-0.1276,-0.10022,-0.10022,-0.10478,-0.10022,-0.1276,-0.11847,-0.1276,-0.10022,-0.095652 -0.23495,-0.23495,-0.23919,-0.2406,-0.24202,-0.2512,-0.24908,-0.24625,-0.24202,-0.24908,0.17043,0.16973,0.18526,0.19091,0.19939,0.17043,0.17326,0.18314,0.19233,0.20504,0.11817,0.11958,0.11958,0.11817,0.11393 -0.15156,-0.13584,-0.183,-0.08867,-0.15156,-0.13584,-0.10439,-0.15156,-0.10439,-0.10439,-0.13584,-0.183,-0.13584,-0.183,-0.13584,0.037103,0.11571,0.037103,0.052825,0.0056598,0.36726,0.33582,0.41442,0.38298,0.33582 0.21402,0.21276,0.21234,-0.24362,-0.26132,0.21866,0.21908,-0.10793,-0.13153,-0.24657,0.15165,0.14997,0.15966,-0.14291,-0.23056,0.22287,0.15334,0.17652,-0.22424,-0.24236,0.22076,0.12216,-0.12816,-0.23393,-0.24067 0.40516,0.39607,0.3938,0.40516,0.38925,-0.056075,-0.060619,-0.062891,-0.081068,-0.10379,-0.0947,-0.078796,-0.081068,-0.0947,-0.10152,-0.10152,-0.10833,-0.11515,-0.11515,-0.11742,-0.10833,-0.1106,-0.12651,-0.1356,-0.1356 -0.15953,-0.16277,-0.16722,0.24625,0.2499,-0.16236,-0.16115,-0.16844,0.24585,0.25192,-0.15993,-0.16236,-0.1656,0.24139,0.24625,-0.16115,-0.16317,-0.1652,0.23856,0.2422,-0.16155,-0.16236,-0.16641,0.24099,0.24585 0.11839,0.198,0.19585,0.16444,0.16301,0.10697,0.19835,0.19585,0.16658,0.16587,0.10839,0.16087,0.16408,0.16408,0.16301,-0.2418,-0.2418,-0.24038,-0.24109,-0.2418,-0.24537,-0.24466,-0.24466,-0.2468,-0.24537 0.38983,0.0070581,0.0083291,-0.11665,-0.11665,0.39068,0.0074817,-0.11686,-0.1158,-0.1158,0.38919,-0.11665,-0.11686,-0.11644,-0.11707,0.39322,-0.11538,-0.11686,-0.11707,-0.11623,0.39724,-0.11898,-0.1158,-0.1175,-0.11644 -0.2882,-0.18882,-0.014907,0.0099381,0.33293,-0.2882,-0.13913,-0.014907,0.2087,0.18385,-0.16398,-0.11429,-0.064598,0.30808,0.23354,-0.2882,-0.13913,0.0099381,0.15901,0.33293,-0.11429,-0.21367,-0.064598,0.0099381,0.30808 -0.30652,-0.28942,0.086894,0.15531,0.32636,-0.221,-0.32363,0.0013684,0.15531,0.27505,-0.16968,-0.20389,0.086894,0.13821,0.30926,-0.16968,-0.15258,-0.032842,0.1211,0.24084,-0.11837,-0.15258,-0.10126,0.1211,0.22373 0.13388,0.15196,0.15045,0.15347,0.14292,0.19566,0.15648,0.14894,0.1384,0.15347,0.23484,0.22881,0.1399,0.14744,0.14292,-0.19614,-0.23231,-0.22779,-0.20217,-0.20518,-0.26245,-0.27149,-0.26546,-0.26697,-0.28957 0.16556,0.16177,0.16414,0.16462,0.17031,0.16462,0.15893,0.15229,0.16604,0.17078,0.1613,0.1594,0.15039,0.16888,0.16936,-0.23981,-0.23128,-0.2493,-0.24598,-0.25498,-0.23981,-0.24455,-0.24692,-0.24692,-0.24882 -0.18156,-0.17444,-0.15782,-0.1507,-0.17207,-0.17919,-0.18156,-0.18868,-0.17681,-0.12696,-0.13646,-0.13408,-0.15307,-0.14833,-0.12221,0.1864,0.19115,0.19115,0.31697,0.3597,0.19827,0.19353,0.1959,0.2054,0.34546 0.3351,0.3013,0.2472,0.20528,0.17147,0.31888,0.27425,0.22962,0.17553,0.14037,-0.15984,-0.1612,-0.15984,-0.16255,-0.16525,-0.15714,-0.1612,-0.1612,-0.16525,-0.15984,-0.14091,-0.15984,-0.16255,-0.15984,-0.16255 -0.2142,-0.2142,-0.15918,-0.19586,-0.2142,-0.17752,-0.17752,-0.15918,-0.049148,-0.085825,-0.10416,-0.10416,-0.1225,0.0058684,-0.049148,0.024207,0.079224,0.024207,0.024207,0.079224,0.29929,0.35431,0.37264,0.40932,0.35431 0.1581,0.16149,0.16036,0.15696,0.15583,0.16716,0.16263,0.16263,0.16376,0.16149,0.16603,0.16943,0.16829,0.16943,0.16489,-0.24247,-0.24077,-0.2538,-0.23794,-0.22887,-0.24757,-0.25153,-0.25323,-0.24247,-0.24983 0.18737,0.17743,0.16579,0.1541,0.13986,0.18619,0.17403,0.16442,0.15301,0.13271,0.1869,0.17341,0.16248,0.1532,0.13271,-0.24446,-0.24436,-0.24436,-0.24427,-0.24427,-0.24446,-0.24417,-0.24446,-0.24436,-0.24446 0.38407,0.08976,-0.11547,-0.11306,-0.11487,0.38346,-0.11698,-0.11607,-0.11306,-0.11968,0.38346,-0.11547,-0.11427,-0.11427,-0.11908,0.38617,0.090663,-0.11698,-0.11968,-0.12089,0.38407,-0.11667,-0.11818,-0.11607,-0.12089 -0.35157,-0.26865,-0.32393,-0.1581,-0.26865,-0.13046,-0.18573,-0.1581,-0.18573,-0.0199,0.0077389,0.0077389,0.035378,0.035378,0.035378,0.063017,0.035378,0.14593,0.14593,0.14593,0.14593,0.25649,0.33941,0.28413,0.36705 0.22163,0.20847,0.23479,0.12292,0.15583,0.24795,0.32692,0.32692,0.22163,0.19531,-0.074491,-0.074491,-0.028428,0.017636,-0.028428,-0.22584,-0.17978,-0.17978,-0.17978,-0.1732,-0.22584,-0.21268,-0.21268,-0.22584,-0.25874 -0.26404,-0.18354,-0.28014,-0.29624,-0.32843,-0.28014,-0.070839,-0.11914,-0.11914,-0.23184,-0.0064399,-0.070839,0.041859,0.041859,0.074059,0.25116,0.21896,0.21896,0.23506,0.20286,0.18676,0.18676,0.18676,0.18676,0.21896 -0.17581,-0.17581,-0.18922,0.24419,0.27703,-0.16424,-0.15869,-0.16193,0.2317,0.26269,-0.16378,-0.15915,-0.15638,0.23725,0.2317,-0.15823,-0.15407,-0.15638,0.2354,0.2354,-0.16378,-0.15083,-0.15684,0.23494,0.25483 0.22352,-0.05902,0.035161,-0.090414,-0.21599,0.19213,0.28631,0.22352,-0.21599,-0.24738,0.22352,0.16074,0.035161,-0.12181,-0.24738,0.38049,0.16074,-0.05902,-0.1532,-0.24738,0.22352,0.0037673,0.035161,-0.1846,-0.34156 0.40241,0.40008,0.39775,0.40125,0.3931,-0.066999,-0.071658,-0.072823,-0.080977,-0.069329,-0.10427,-0.10427,-0.10427,-0.10544,-0.10311,-0.11243,-0.1066,-0.1101,-0.11592,-0.11126,-0.1101,-0.11359,-0.11359,-0.1101,-0.10777 0.11117,0.11117,0.1251,0.090273,-0.29283,0.146,0.11813,0.11813,0.0066869,-0.36248,0.13903,0.15296,0.146,0.090273,-0.40428,0.13207,0.15296,0.11117,-0.021175,-0.39035,0.1251,0.11117,0.11117,-0.258,-0.36945 0.11639,0.097426,0.087217,0.0843,-0.39991,0.11639,0.1018,0.088675,0.082112,-0.39991,0.12076,0.10691,0.094509,0.082112,-0.40064,0.12295,0.10691,0.09305,0.082841,-0.39773,0.12368,0.10909,0.094509,0.0843,-0.39773 -0.047061,-0.040993,-0.081647,-0.069512,-0.075579,-0.049488,-0.034319,-0.043421,-0.076793,-0.099243,-0.020363,-0.031892,-0.032499,-0.03978,-0.035533,-0.016723,-0.021577,-0.030678,-0.024004,-0.026431,0.97353,-0.025824,-0.024004,-0.013082,-0.013082 0.1637,0.1637,0.1637,0.32961,0.24665,0.13605,0.1637,0.080743,0.19135,0.27431,0.080743,0.10839,0.10839,0.080743,-0.0022121,-0.14047,-0.27873,-0.25108,-0.14047,-0.22343,-0.30638,-0.25108,-0.22343,-0.25108,-0.22343 -0.15099,-0.15099,-0.15099,-0.285,-0.19566,-0.24033,-0.17332,-0.17332,-0.17332,-0.17332,-0.061645,-0.016975,-0.016975,0.0053605,-0.03931,0.13937,-0.016975,0.027696,0.072366,0.050031,0.38506,0.31805,0.38506,0.31805,0.31805 0.38603,-0.080312,-0.078747,-0.067792,-0.058403,0.39386,-0.067792,-0.056838,-0.092831,-0.11005,0.40012,-0.074052,-0.11787,-0.12569,-0.13665,0.40012,-0.049013,-0.12726,-0.13039,-0.13978,0.39855,-0.058403,-0.13039,-0.13665,-0.13978 0.22579,0.22161,-0.17999,-0.17498,-0.17748,0.21827,0.23274,-0.17581,-0.17609,-0.17748,0.22272,0.22356,-0.17553,-0.17804,-0.17637,0.2269,0.22829,-0.17776,-0.17804,-0.17776,0.22579,0.23107,0.22495,-0.1786,-0.17776 -0.38998,-0.36031,-0.37515,-0.27127,-0.31579,-0.15255,-0.048674,-0.078353,-0.093193,-0.12287,0.055203,0.14424,0.1294,0.15908,0.084883,0.15908,0.1294,0.14424,0.1294,0.17392,0.15908,0.21844,0.2036,0.17392,0.14424 0.21272,0.19342,0.21272,0.21272,0.22237,0.24168,0.29959,0.30924,0.26098,0.23202,-0.047872,-0.076827,-0.14439,-0.17334,-0.18299,-0.15404,-0.19265,-0.17334,-0.12508,-0.2023,-0.19265,-0.18299,-0.2023,-0.17334,-0.17334 0.1625,0.20714,-0.060714,-0.12768,-0.32857,0.073214,0.073214,-0.038393,-0.21696,-0.28393,0.1625,0.25179,0.18482,-0.12768,-0.28393,0.22946,0.20714,0.095536,-0.060714,-0.32857,0.22946,0.25179,0.028571,0.028571,-0.32857 0.22203,0.27506,0.29273,0.16899,0.18667,0.27506,0.27506,0.22203,0.13364,0.098285,0.027576,-0.007778,0.027576,-0.025455,-0.007778,-0.18455,-0.16687,-0.16687,-0.1492,-0.27294,-0.29061,-0.29061,-0.25526,-0.20223,-0.18455 0.18375,0.17433,-0.091245,-0.092764,-0.32097,0.19165,0.22964,-0.091549,-0.091549,-0.30972,0.23511,0.23268,-0.089422,-0.091549,-0.30729,0.22781,0.2266,-0.087902,-0.091853,-0.30729,0.19652,0.1248,0.12541,0.12967,-0.30486 0.44501,0.37799,0.39475,0.32773,0.4115,-0.0073722,-0.074392,-0.074392,-0.091147,-0.057637,-0.12466,-0.1079,-0.057637,-0.091147,-0.057637,-0.057637,-0.12466,-0.1079,-0.1079,-0.12466,-0.1079,-0.091147,-0.12466,-0.15817,-0.20843 -0.21353,-0.16269,0.083039,0.2864,0.23556,-0.16269,-0.18811,0.057619,0.24403,0.25251,-0.21353,-0.18811,-0.077955,0.25251,0.24403,-0.17964,-0.2559,-0.15422,0.17625,0.23556,-0.21353,-0.16269,-0.18811,0.032199,0.26098 -0.18068,-0.18068,-0.084162,0.22469,0.22469,-0.18068,-0.19998,-0.16137,0.16678,0.26329,-0.25789,-0.21928,0.031657,0.20539,0.24399,-0.18068,-0.23859,0.16678,0.089567,0.26329,-0.3158,-0.18068,0.12817,0.16678,0.20539 -0.081648,-0.19258,-0.081648,-0.1704,-0.1704,-0.14821,-0.12602,-0.19258,-0.1704,-0.19258,-0.12602,-0.12602,-0.14821,-0.14821,-0.19258,0.073661,0.16241,0.1846,0.11803,0.11803,0.40647,0.20678,0.38428,0.31772,0.29553 -0.1889,-0.18999,-0.017079,0.00042829,0.25436,-0.18803,-0.18868,0.0057819,0.2493,0.24915,-0.18774,-0.1889,0.0070841,0.24821,0.25074,-0.18861,-0.18839,-0.18825,0.25024,0.25082,-0.19006,-0.18897,-0.18854,0.25856,0.25747 0.29525,0.20738,0.19639,0.097537,0.13049,0.27328,0.19639,0.13049,0.14147,0.13049,0.17443,0.16344,0.097537,-0.012302,0.031634,-0.067222,-0.10017,-0.23198,-0.23198,-0.19903,-0.2869,-0.30887,-0.25395,-0.30887,-0.26493 -0.46196,-0.1602,0.086686,0.14155,0.22385,-0.35223,-0.10534,0.07297,0.12783,0.16898,-0.36595,-0.050475,0.031821,0.1827,0.19641,-0.31108,-0.036759,0.086686,0.16898,0.1827,-0.22878,-0.036759,0.1004,0.16898,0.16898 0.1417,0.13065,0.13668,0.13266,-0.27022,0.14974,0.15175,0.14974,-0.26319,-0.27122,0.1638,0.15978,0.15677,-0.27122,-0.27424,0.15878,0.15777,0.15878,-0.25414,-0.27725,0.15878,0.1417,0.14773,-0.24209,-0.27323 0.15837,0.15475,0.16561,0.16697,0.16629,0.15747,0.15837,0.1681,0.16539,0.16561,0.15928,0.16742,0.16199,0.16448,0.16901,-0.24568,-0.24455,-0.24342,-0.24568,-0.24546,-0.24455,-0.2441,-0.245,-0.245,-0.24568 -0.027663,-0.063949,-0.055411,-0.066083,-0.085294,-0.010587,-0.049008,-0.049008,-0.055411,-0.081025,-0.0063181,-0.019125,-0.057546,-0.04047,-0.051142,-0.014856,0.0022199,-0.046873,-0.042604,-0.044739,0.97341,0.0022199,-0.036201,-0.042604,-0.031932 -0.27235,-0.22676,0.16175,0.16175,0.16967,-0.28821,-0.21883,0.15778,0.15778,0.17166,-0.2664,-0.2228,0.16967,0.16769,0.15976,-0.25253,-0.21487,0.15382,0.15382,0.17364,-0.26244,-0.21487,0.14589,0.16175,0.17364 -0.36483,-0.36483,-0.379,-0.38844,-0.379,-0.057973,-0.024926,-0.020206,-0.010764,-0.020206,0.088376,0.097817,0.1167,0.083655,0.088376,0.12142,0.14031,0.10254,0.13086,0.13558,0.16863,0.18279,0.16391,0.19224,0.19696 0.11966,0.11328,-0.15653,-0.15792,-0.16292,0.11411,0.29842,-0.15653,-0.15848,-0.16153,0.28593,0.28899,-0.15598,-0.15903,-0.16125,0.2876,0.28538,-0.15154,-0.15848,-0.16347,0.28871,0.28843,-0.15154,-0.15515,-0.16014 0.15056,0.18292,0.13978,0.13978,0.15056,0.18292,0.15056,0.13978,0.1937,0.12899,0.12899,0.20449,0.21527,0.12899,0.18292,-0.18378,-0.20535,-0.21614,-0.22692,-0.22692,-0.29163,-0.25928,-0.25928,-0.25928,-0.29163 0.23308,0.20671,-0.092106,-0.26349,-0.36456,0.22429,0.20232,0.061697,-0.23273,-0.35138,0.12322,0.21111,0.12761,-0.16681,-0.28106,0.1408,0.17156,0.15398,-0.056951,-0.23273,0.2155,0.039725,0.11443,0.026542,-0.21075 0.35361,-0.057268,-0.11164,-0.11187,-0.11199,0.3539,-0.056683,-0.11164,-0.11199,-0.11216,0.35302,-0.056859,-0.11199,-0.11187,-0.11205,0.51877,-0.058496,-0.11199,-0.11164,-0.11257,0.3888,-0.058496,-0.11199,-0.1124,-0.11252 0.32836,-0.068172,-0.10231,-0.091807,-0.11544,0.37038,-0.060294,-0.10756,-0.11544,-0.12332,0.38613,-0.070798,-0.12069,-0.12332,-0.11807,0.42815,-0.065546,-0.10494,-0.091807,-0.10494,0.46754,-0.081302,-0.11807,-0.097059,-0.099685 0.32117,0.36452,0.34718,0.35585,0.40787,0.043701,0.1044,0.078384,0.087055,0.03503,-0.086361,-0.12104,-0.11237,-0.1037,-0.1037,-0.17307,-0.19908,-0.18174,-0.14706,-0.14706,-0.18174,-0.17307,-0.14706,-0.13839,-0.12971 0.29358,0.27201,0.26612,0.24847,0.22886,0.28377,0.27201,0.26612,0.25043,-0.043778,-0.15362,-0.14969,-0.15362,-0.15558,-0.15754,-0.15754,-0.15754,-0.16735,-0.14185,-0.15362,-0.16539,-0.1595,-0.15754,-0.14577,-0.16146 0.16186,0.17232,0.17101,0.19194,0.17101,0.13962,0.15139,0.15008,0.15924,0.15924,0.15401,0.15793,0.18409,0.16709,0.15532,-0.24095,-0.24095,-0.24357,-0.24357,-0.2488,-0.2488,-0.25141,-0.23964,-0.23964,-0.2488 -0.23905,-0.14977,-0.12352,0.33862,0.43315,-0.17603,-0.10776,-0.081504,0.13381,0.28085,-0.19704,-0.10776,-0.076252,0.14431,0.27035,-0.2548,-0.12352,-0.086755,0.0077722,0.27035,-0.2548,-0.12352,-0.028988,-0.0027308,0.25459 -0.16021,-0.1612,-0.16384,0.24022,0.2379,-0.16186,-0.16252,-0.1655,0.24088,0.2422,-0.16219,-0.16318,-0.15691,0.2455,0.24517,-0.16252,-0.16649,-0.16847,0.24583,0.25046,-0.16351,-0.16252,-0.16814,0.24682,0.25409 -0.15946,-0.15989,-0.16032,-0.15817,-0.15688,-0.15903,-0.1586,-0.15946,-0.16119,-0.15731,-0.16076,-0.15946,-0.15946,-0.15946,-0.15817,0.33515,0.27881,0.23967,0.17731,0.13688,0.34548,0.293,0.24397,0.18591,0.1515 -0.16395,-0.16351,-0.16373,0.22842,0.22842,-0.16373,-0.16366,-0.16395,0.2298,0.23045,-0.16482,-0.16257,-0.16184,0.25692,0.24655,-0.16547,-0.1625,-0.16068,0.25989,0.24655,-0.16337,-0.16235,-0.16112,0.26243,0.25779 0.20465,0.18324,0.16184,-0.20208,-0.33052,0.26887,0.24747,0.076209,-0.11645,-0.2449,0.20465,0.20465,0.097616,-0.11645,-0.33052,0.011988,0.16184,0.14043,-0.052233,-0.33052,0.076209,0.033395,0.097616,-0.07364,-0.37334 0.3361,0.3361,0.20617,0.3361,0.20617,0.07623,0.1412,0.20617,0.1412,0.20617,-0.032051,-0.09702,-0.032051,-0.09702,-0.032051,-0.16199,-0.09702,-0.09702,-0.16199,-0.09702,-0.33524,-0.2053,-0.2053,-0.27027,-0.27027 0.081272,0.39203,0.25573,0.25573,0.25131,0.20313,0.1993,0.20018,0.25691,0.26605,-0.11102,-0.11117,-0.11117,-0.11117,-0.11146,-0.17762,-0.17777,-0.18027,-0.1785,-0.17924,-0.18263,-0.18248,-0.18175,-0.18234,-0.18307 -0.16369,-0.16298,-0.16405,0.27024,0.26811,-0.16345,-0.1631,-0.16192,0.26882,0.26882,-0.16334,-0.16263,-0.16204,0.21386,0.27201,-0.16215,-0.16239,-0.1618,0.21457,0.20925,-0.16227,-0.16227,-0.16274,0.21634,0.2388 -0.24108,-0.24047,-0.24078,-0.24017,-0.24047,-0.24017,-0.23942,-0.23942,-0.23987,-0.23821,0.25608,0.18943,0.15339,0.14781,0.092772,0.25246,0.18717,0.15173,0.13695,0.09247,0.20285,0.1742,0.15128,0.14238,0.069098 0.16183,0.16423,0.16023,0.16103,0.15623,0.16743,0.16663,0.16823,0.16183,0.15943,0.16663,0.16663,0.16583,0.16263,0.16023,-0.23642,-0.23802,-0.24442,-0.24122,-0.24522,-0.24842,-0.24682,-0.24842,-0.24922,-0.25082 -0.16313,-0.16939,-0.16783,0.24328,0.24641,-0.16078,-0.15921,-0.16548,0.24798,0.24406,-0.16548,-0.16234,-0.15921,0.24406,0.24563,-0.16469,-0.16704,-0.16234,0.24641,0.24485,-0.16156,-0.15686,-0.16391,0.24406,0.2425 0.45199,0.47492,0.44435,0.33991,0.21764,-0.049825,-0.065109,-0.01671,-0.049825,-0.019258,-0.11351,-0.10841,-0.10587,-0.12115,-0.11606,-0.11351,-0.10332,-0.11606,-0.11096,-0.12115,-0.11606,-0.13643,-0.1186,-0.11606,-0.11096 0.15501,0.16152,0.15176,0.15176,0.15501,0.16477,0.1485,0.15827,0.16477,0.17128,0.16152,0.17454,0.17454,0.17779,0.17454,-0.24195,-0.22569,-0.22243,-0.2387,-0.24195,-0.25497,-0.2387,-0.25822,-0.26799,-0.25497 0.15968,0.16046,0.16357,0.15968,0.16357,0.15968,0.16357,0.16279,0.15501,0.17136,0.16591,0.16124,0.16435,0.16591,0.17214,-0.24926,-0.23991,-0.24614,-0.24147,-0.23913,-0.24069,-0.24614,-0.2477,-0.25237,-0.24614 0.18627,0.17897,0.15963,0.15269,0.14393,0.1724,0.17861,0.16036,0.15123,0.14284,0.18664,0.17861,0.16839,0.14977,0.13408,-0.24882,-0.24225,-0.24736,-0.23532,-0.24408,-0.24298,-0.24627,-0.2459,-0.2459,-0.24554 0.23527,0.22995,0.20987,0.24183,0.24879,0.23732,0.24142,0.21602,0.22011,0.35122,-0.15969,-0.16092,-0.1601,-0.16133,-0.16338,-0.16174,-0.16174,-0.16297,-0.16174,-0.16297,-0.16297,-0.1601,-0.16297,-0.16379,-0.16542 0.11212,0.10187,0.062434,0.083728,-0.39659,0.10897,0.1066,0.097136,0.0648,-0.40132,0.10581,0.10266,0.10345,0.056913,-0.39974,0.13105,0.11449,0.092404,0.087672,-0.39659,0.12159,0.12001,0.10581,0.11291,-0.39817 0.16299,0.15684,0.15947,0.15684,0.1542,0.16914,0.16826,0.16299,0.16035,0.15947,0.1709,0.17177,0.16562,0.16123,0.16826,-0.24114,-0.23939,-0.24114,-0.23412,-0.23587,-0.24642,-0.25169,-0.24993,-0.25344,-0.2552 -0.14361,-0.19515,-0.19515,-0.16938,-0.11784,-0.14361,-0.25527,-0.25527,-0.19515,-0.24668,-0.13502,0.028172,-0.14361,-0.057719,-0.10066,0.30302,0.26008,0.19137,0.19137,0.19137,0.25149,0.27726,0.26008,0.18278,0.21713 0.11405,0.13762,0.10227,0.078706,-0.40437,0.13762,0.11405,0.11405,0.10227,-0.35724,0.13762,0.10227,0.090488,0.043359,-0.40437,0.090488,0.078706,0.11405,0.078706,-0.41615,0.10227,0.10227,0.066923,0.078706,-0.40437 0.32326,0.29949,0.34703,0.25195,0.3708,0.10934,0.22818,0.038031,0.13311,0.0618,-0.10458,-0.0095077,0.014261,-0.080815,-0.080815,-0.15212,-0.17589,-0.15212,-0.17589,-0.17589,-0.2472,-0.17589,-0.2472,-0.17589,-0.22343 -0.16747,-0.17105,-0.15405,0.20819,0.30389,-0.15584,-0.17284,-0.14422,0.21355,0.30925,-0.1621,-0.17552,-0.15495,0.25201,0.21713,-0.15405,-0.17194,-0.15584,0.27527,0.22607,-0.163,-0.15763,-0.17015,0.20819,0.21713 -0.18187,-0.21664,-0.068852,0.19195,0.28758,-0.17317,-0.19056,-0.14709,0.23542,0.27888,-0.1384,-0.16448,-0.19056,0.15718,0.32235,-0.15579,-0.12101,-0.12971,0.026776,0.37451,-0.17317,-0.11232,-0.10363,0.061549,0.33104 -0.029507,-0.072731,-0.072731,-0.084258,-0.13036,-0.026626,-0.05256,-0.038152,-0.043915,-0.05256,-0.035271,-0.026626,-0.035271,-0.035271,-0.026626,-0.0093363,-0.032389,-0.020863,-0.032389,-0.035271,0.9704,0.01948,-0.012218,-0.043915,-0.041034 0.14335,0.10278,0.18392,0.15687,0.15687,0.21096,0.14335,0.19744,0.22449,0.22449,0.14335,0.15687,0.089254,0.10278,0.075731,-0.15417,-0.1136,-0.12712,-0.15417,-0.22178,-0.35702,-0.22178,-0.32997,-0.31645,-0.31645 -0.22747,-0.31919,-0.31919,-0.34212,-0.2504,-0.20454,-0.11282,-0.22747,-0.13575,-0.11282,0.070626,0.047695,0.070626,0.093556,0.13942,0.23114,0.29993,0.23114,0.23114,0.13942,0.11649,0.11649,0.18528,0.23114,0.047695 0.22007,0.24156,0.24156,0.22007,0.25231,0.12336,0.22007,0.19858,0.19858,0.18783,0.048141,0.048141,0.037395,0.015904,-0.0055878,-0.27423,-0.26348,-0.27423,-0.2205,-0.24199,-0.18826,-0.14528,-0.1023,-0.27423,-0.26348 -0.15991,-0.16117,-0.16054,0.25457,0.24732,-0.16274,-0.16101,-0.16259,0.24747,0.24054,-0.16385,-0.16196,-0.16337,0.24164,0.24227,-0.16416,-0.16337,-0.16653,0.24038,0.24527,-0.16385,-0.16732,-0.16684,0.24337,0.24637 0.43614,0.0057386,-0.030128,-0.17359,-0.24533,0.29267,-0.030128,0.0057386,0.041605,-0.13773,0.29267,0.0057386,-0.065994,-0.10186,-0.13773,0.29267,0.11334,-0.065994,-0.065994,-0.31706,0.3644,0.077472,-0.030128,-0.31706,-0.20946 0.26363,0.11665,-0.015355,-0.091703,-0.50698,0.24794,0.12735,-0.0089334,-0.098838,-0.15164,0.27077,0.12164,0.0046237,-0.072437,-0.14308,0.2515,0.11237,-0.0089334,-0.072437,-0.5084,0.23081,0.1245,-0.0046522,-0.076719,-0.11168 0.15943,0.16046,0.16323,0.16479,0.166,0.16219,0.16046,0.16098,0.16289,0.16756,0.16323,0.16323,0.16098,0.16531,0.1686,-0.24511,-0.24494,-0.24476,-0.24476,-0.24511,-0.24494,-0.24546,-0.24407,-0.24546,-0.24476 -0.16452,-0.16507,-0.16534,0.24411,0.24193,-0.16316,-0.1637,-0.16725,0.25667,0.24875,-0.1607,-0.1648,-0.16725,0.2583,0.24957,-0.15497,-0.16425,-0.16425,0.2321,0.23483,-0.15661,-0.1637,-0.16289,0.23865,0.24356 0.11892,-0.0034256,0.057746,0.021043,-0.24811,0.16785,0.13115,0.13115,0.021043,-0.32152,0.16785,0.16785,0.13115,0.057746,-0.32152,0.13115,0.13115,0.094449,-0.027894,-0.48056,0.13115,0.13115,0.094449,0.021043,-0.50503 -0.13284,-0.13284,-0.15037,-0.13284,-0.13284,-0.11532,-0.089029,-0.097792,-0.11532,-0.10655,-0.080266,-0.089029,-0.10655,-0.080266,-0.071504,-0.080266,-0.097792,-0.045216,-0.02769,-0.071504,0.38416,0.41045,0.47178,0.42797,0.26148 -0.16503,-0.16279,-0.16907,0.25194,0.24387,-0.16728,-0.16145,-0.16548,0.23804,0.23939,-0.16414,-0.161,-0.161,0.23939,0.24567,-0.16324,-0.16055,-0.16548,0.24612,0.24342,-0.16145,-0.1601,-0.161,0.24656,0.25463 0.37878,0.10919,0.10919,-0.22781,-0.19411,0.17658,0.075486,-0.025611,-0.29521,-0.3289,0.24398,0.17658,-0.09301,-0.059311,-0.09301,0.27768,0.041787,0.075486,-0.19411,-0.19411,0.24398,0.14288,0.041787,0.0080878,-0.3963 -0.12649,-0.12803,-0.12956,-0.12956,-0.12864,-0.11728,-0.11666,-0.1182,-0.11697,-0.1182,-0.088096,-0.085946,-0.085639,-0.087175,-0.089939,-0.063216,-0.06383,-0.063216,-0.065059,-0.065059,0.41228,0.39938,0.39017,0.38986,0.39508 0.16929,0.17175,0.17491,-0.20519,-0.30285,0.16964,0.16911,0.18194,0.13697,-0.3032,0.1324,0.13662,0.13574,-0.21046,-0.30461,0.13153,0.13346,0.13082,-0.22135,-0.30496,0.13135,0.13381,0.13082,-0.21327,-0.30426 -0.22275,-0.1322,-0.019016,0.16209,0.27527,-0.22275,-0.26803,-0.15484,0.27527,0.27527,-0.15484,-0.24539,-0.15484,0.25264,0.27527,-0.1322,-0.15484,-0.041653,0.18472,0.25264,-0.1322,-0.15484,-0.15484,0.16209,0.23 0.33381,-0.03221,-0.081013,-0.17862,-0.20302,0.26061,0.016593,-0.10541,-0.12982,-0.25182,0.26061,0.016593,-0.20302,-0.12982,-0.17862,0.33381,0.1874,0.016593,-0.27623,-0.10541,0.38262,0.26061,0.016593,-0.0078085,-0.20302 0.15226,0.15904,0.16148,0.16203,0.1745,0.15633,0.16664,0.16121,0.16854,0.16881,0.16203,0.16013,0.16148,0.16555,0.16881,-0.2467,-0.24941,-0.24155,-0.24263,-0.24589,-0.24697,-0.24751,-0.24046,-0.24073,-0.24697 -0.11637,-0.11637,-0.11761,-0.11017,-0.10646,-0.11389,-0.11637,-0.11017,-0.11265,-0.11017,-0.11389,-0.10894,-0.11265,-0.10522,-0.10894,-0.06431,-0.059352,-0.056872,-0.06555,-0.06431,0.40302,0.3931,0.40054,0.40054,0.3931 0.36999,-0.092346,-0.10049,-0.10269,-0.17647,0.36779,-0.082509,-0.093703,-0.09913,-0.17172,0.36728,-0.076234,-0.087597,-0.092007,-0.17087,0.36525,-0.072672,-0.081661,-0.083018,-0.17104,0.36406,0.2623,-0.067245,-0.11185,-0.16341 0.27778,-0.12495,-0.1355,-0.13444,-0.16396,0.27937,0.27199,-0.13761,-0.13444,-0.15711,0.30098,0.24563,-0.13761,-0.13602,-0.16607,0.26777,0.24352,-0.13655,-0.1355,-0.17503,0.24247,0.26092,-0.17398,-0.1782,-0.16344 0.29673,0.28577,0.26697,0.26697,0.23406,0.17296,0.1573,0.083662,0.075828,0.15416,0.028827,0.049194,0.028827,0.028827,0.01786,-0.066741,-0.13411,-0.20774,-0.18581,-0.16858,-0.24534,-0.25161,-0.23908,-0.23281,-0.41611 0.2671,0.22671,0.2671,0.30749,0.21325,0.10555,0.092085,0.18632,0.13247,0.14594,0.038234,-0.002154,0.11901,0.024771,0.038234,-0.10986,-0.082931,-0.096393,-0.15024,-0.21756,-0.28487,-0.3118,-0.25795,-0.3118,-0.33872 0.38077,0.35483,0.3326,0.31037,0.28443,0.18809,-0.023122,0.11027,0.10286,0.21032,-0.14911,-0.15652,-0.1454,-0.14911,-0.1417,-0.15281,-0.1454,-0.15281,-0.16022,-0.1454,-0.1454,-0.15281,-0.14911,-0.16022,-0.1454 0.11105,-0.029239,-0.091999,-0.15476,-0.26367,0.19965,0.024292,-0.09569,-0.14368,-0.26367,0.30671,0.026138,-0.020009,-0.14738,-0.27474,0.34178,0.31963,0.11105,-0.11046,-0.24521,0.28087,0.28641,0.1572,-0.088307,-0.23598 -0.35907,-0.062931,0.085141,0.14992,0.17769,-0.39609,-0.1092,0.12216,0.13141,0.20545,-0.36833,-0.099949,0.12216,0.14992,0.16843,-0.25728,-0.044422,0.094396,0.13141,0.17769,-0.38684,-0.08144,0.12216,0.14992,0.17769 0.16137,0.16254,0.1602,0.16098,0.15902,0.1645,0.16176,0.15746,0.16137,0.16254,0.17076,0.16802,0.16646,0.16333,0.1688,-0.24123,-0.24163,-0.24241,-0.24202,-0.24163,-0.24828,-0.24867,-0.24828,-0.24828,-0.24671 0.15595,0.15232,0.16501,0.15595,0.1632,0.16138,0.15776,0.16138,0.16501,0.15776,0.16863,0.17045,0.16863,0.17588,0.16863,-0.23736,-0.23918,-0.24099,-0.23736,-0.23736,-0.26093,-0.2428,-0.25005,-0.24461,-0.2573 -0.16241,-0.15833,-0.17058,0.24344,0.24636,-0.163,-0.1595,-0.16824,0.24461,0.24344,-0.16358,-0.1595,-0.16241,0.24344,0.24636,-0.163,-0.15891,-0.17641,0.24461,0.24344,-0.16474,-0.16125,-0.15716,0.24636,0.24694 -0.23701,-0.12388,-0.19458,-0.20873,-0.22287,-0.10974,-0.12388,-0.15216,-0.23701,-0.29357,-0.024889,-0.053171,-0.081454,-0.03903,0.031677,0.031677,0.017535,0.10238,0.15895,0.14481,0.22966,0.35693,0.35693,0.3145,0.35693 -0.036558,-0.041627,-0.043316,-0.072035,-0.077104,-0.039937,-0.038248,-0.050073,-0.061899,-0.056831,-0.023043,-0.029801,-0.041627,-0.038248,-0.051763,-0.017975,-0.0095281,-0.021354,-0.056831,-0.056831,0.97538,0.003987,-0.014596,-0.045005,-0.055142 0.12344,0.1627,0.147,0.13391,0.10512,0.14176,0.16532,0.18364,0.12867,0.15485,0.1627,0.17841,0.16008,0.15485,0.1627,-0.16186,-0.15663,-0.12784,-0.085958,-0.036226,-0.34509,-0.34509,-0.332,-0.33462,-0.33985 0.33627,0.36878,0.38879,0.42631,0.46383,-0.056428,-0.06143,-0.078939,-0.088944,-0.086443,-0.093946,-0.11396,-0.10645,-0.11646,-0.11396,-0.098949,-0.098949,-0.11396,-0.11896,-0.11646,-0.093946,-0.098949,-0.10145,-0.10895,-0.11646 -0.237,-0.23658,-0.23533,-0.23909,-0.23909,-0.22824,-0.22949,-0.22949,-0.22908,-0.23533,0.27229,0.086675,0.085424,0.087926,0.072493,0.1776,0.19429,0.26228,0.077916,0.073327,0.18803,0.25435,0.17343,0.2556,0.077081 -0.26096,-0.25144,0.14858,0.13905,0.16763,-0.27049,-0.28001,0.12953,0.18668,0.1962,-0.24192,-0.22287,0.053336,0.20572,0.17715,-0.24192,-0.17525,0.11048,0.14858,0.16763,-0.24192,-0.22287,0.16763,0.21525,0.1962 0.32476,0.30507,-0.14383,-0.16183,-0.18658,0.21057,0.21169,0.21169,-0.15508,-0.19108,0.19932,0.20832,-0.13651,-0.15283,-0.20233,0.19482,0.19257,-0.15114,-0.18433,-0.20346,0.19032,0.1965,-0.18152,-0.18996,-0.20514 0.27772,0.28538,0.27007,0.26752,0.27262,0.31854,0.25987,0.28538,-0.066625,0.078767,-0.076828,-0.12529,-0.10489,-0.094683,-0.094683,-0.18396,-0.1559,-0.13549,-0.17376,-0.16355,-0.17121,-0.20181,-0.19926,-0.17631,-0.19161 -0.043889,-0.045486,-0.043889,-0.047083,-0.050278,-0.040695,-0.039098,-0.048681,-0.040695,-0.047083,-0.021529,-0.039098,-0.040695,-0.045486,-0.053472,0.0088162,0.0040248,-0.045486,-0.045486,-0.051875,0.97668,-0.037501,-0.039098,-0.058263,-0.064652 0.14972,0.15259,0.12674,-0.28691,-0.31276,0.14685,0.15834,0.13248,-0.17488,-0.31276,0.14972,0.15546,0.14397,-0.2668,-0.2984,0.13536,0.14397,0.14397,0.0032173,-0.32138,0.15834,0.15259,0.14397,0.089394,-0.31276 -0.24556,-0.1054,-0.021305,0.062793,0.20295,-0.1895,-0.16147,-0.021305,0.17492,0.25902,-0.1054,-0.021305,0.0067278,0.23099,0.17492,-0.32966,-0.1895,-0.049337,0.090825,0.39918,-0.32966,-0.30163,0.0067278,0.17492,0.28705 0.40008,0.39618,0.40008,0.40138,0.39618,-0.069899,-0.067303,-0.075093,-0.067303,-0.071198,-0.10236,-0.10625,-0.11534,-0.10625,-0.11144,-0.10495,-0.10625,-0.11404,-0.11404,-0.10755,-0.11274,-0.10885,-0.11015,-0.11274,-0.11015 0.42953,0.39626,0.40458,0.38794,0.36299,-0.086173,-0.09449,-0.044584,-0.044584,-0.069537,-0.10281,-0.11113,-0.086173,-0.069537,-0.077855,-0.11113,-0.11113,-0.10281,-0.09449,-0.09449,-0.15272,-0.13608,-0.12776,-0.13608,-0.12776 -0.32093,-0.2408,-0.21075,-0.21075,-0.2408,-0.1206,-0.11058,-0.16067,-0.1206,-0.19072,-0.0605,0.029649,-0.070517,-0.00040066,-0.13062,0.1799,0.12981,0.25001,0.20995,0.089748,0.41028,0.29008,0.25001,0.28006,0.069715 -0.15681,-0.16745,-0.15947,0.25543,0.23947,-0.16479,-0.15415,-0.16745,0.24479,0.24479,-0.16213,-0.16479,-0.14883,0.25011,0.25011,-0.15681,-0.17543,-0.15681,0.23415,0.23415,-0.16479,-0.17543,-0.17277,0.24479,0.25011 -0.24396,-0.18642,0.13004,-0.013809,0.33142,-0.18642,-0.071347,0.01496,0.1588,0.24511,-0.24396,0.01496,-0.042578,0.13004,0.30265,-0.33027,-0.12888,0.01496,0.10127,0.24511,-0.27273,-0.33027,-0.042578,0.10127,0.30265 0.1257,0.054698,-0.208,-0.12848,-0.16398,0.33728,0.049018,-0.092981,-0.12848,-0.1725,0.38982,0.027718,-0.053221,-0.11996,-0.19096,0.36,0.016358,-0.058901,-0.13842,-0.20374,0.3458,0.3671,-0.066001,-0.1299,-0.21794 -0.20374,-0.20374,-0.14382,0,0.19176,-0.19176,-0.17977,-0.16779,0.10786,0.22771,-0.13183,-0.17977,-0.071909,0.22771,0.28764,-0.22771,-0.14382,-0.035955,0.2397,0.26367,-0.22771,-0.17977,0.083894,0.32359,0.33558 -0.24935,-0.28379,-0.40433,-0.30101,-0.21491,-0.26657,-0.14603,-0.16325,-0.077147,-0.025486,0.026175,0.0089546,0.0089546,0.077836,0.16394,0.11228,0.11228,0.077836,0.11228,0.16394,0.19838,0.25004,0.3017,0.25004,0.26726 -0.15953,-0.16031,-0.16697,0.24513,0.24278,-0.16031,-0.16305,-0.1658,0.2467,0.24356,-0.15914,-0.16266,-0.16697,0.2467,0.24395,-0.16345,-0.16149,-0.16697,0.24709,0.24474,-0.1658,-0.16149,-0.1654,0.24395,0.24474 0.15231,0.23788,0.10794,-0.21294,-0.2478,0.23471,0.24184,0.30443,-0.22799,-0.247,0.22441,0.21965,-0.048932,-0.20818,-0.25017,0.20143,0.14597,-0.042594,-0.059232,-0.25414,0.15706,0.091304,-0.056855,-0.21769,-0.24542 0.39686,0.37215,0.34743,0.2733,0.24859,0.12504,0.21153,0.050904,0.087971,0.087971,-0.035584,-0.12207,-0.097361,-0.12207,-0.085005,-0.20856,-0.18385,-0.07265,-0.14678,-0.20856,-0.1962,-0.22092,-0.13443,-0.18385,-0.18385 0.37986,0.19592,0.023912,-0.16213,-0.25691,0.38021,0.25068,0.032688,-0.16599,-0.25516,0.40057,0.046729,0.054452,-0.14072,-0.25621,0.045676,0.041113,0.034794,-0.12317,-0.25305,0.043219,0.043219,0.036198,-0.1495,-0.24638 0.16471,0.1572,0.15952,0.15952,0.15605,0.17107,0.16356,0.1624,0.16298,0.1624,0.17222,0.16587,0.16645,0.16529,0.15952,-0.24776,-0.24257,-0.24776,-0.22928,-0.24545,-0.24776,-0.24776,-0.24603,-0.24661,-0.24776 -0.14053,-0.26167,-0.18091,-0.26167,-0.36263,-0.16072,-0.059765,-0.26167,-0.079956,-0.24148,0.10176,0.041189,0.041189,-0.079956,-0.12034,0.081571,0.14214,0.12195,0.14214,0.12195,0.30367,0.30367,0.30367,0.2431,0.26329 0.22521,0.18286,-0.2085,-0.2098,-0.22222,0.19501,0.1856,0.16612,-0.20654,-0.22013,0.22521,0.17998,0.16573,-0.20562,-0.22,0.22207,0.17893,-0.12602,-0.20954,-0.22235,0.20991,0.18704,0.15671,-0.20967,-0.22 0.38598,-0.017955,-0.045722,-0.096626,-0.16935,0.34697,0.35689,-0.052333,-0.11117,-0.1634,0.3397,-0.030516,-0.060266,-0.13497,-0.1905,0.31458,-0.035805,-0.091337,-0.14423,-0.20835,0.31061,-0.046383,-0.095965,-0.15546,-0.20439 0.17389,0.15281,0.15632,0.15368,0.15193,0.20727,0.17916,0.16686,0.14051,0.1326,0.19233,0.19497,0.18267,0.12645,0.12645,-0.24423,-0.24599,-0.24599,-0.23896,-0.23896,-0.25214,-0.25477,-0.24423,-0.23632,-0.23632 0.17526,0.19099,0.24977,-0.15012,-0.40678,0.12475,0.138,0.22824,-0.075606,-0.35627,0.10571,0.11068,0.138,-0.10127,-0.34054,0.10819,0.11564,0.1231,-0.074778,-0.34799,0.11068,0.11068,0.13551,-0.021791,-0.29004 0.31651,0.29758,-0.11888,-0.16215,-0.17026,0.27054,0.14073,-0.15404,-0.15944,-0.15404,0.25972,0.26513,-0.15674,-0.15133,-0.14863,0.25972,0.29217,-0.12429,-0.16215,-0.15674,0.26783,-0.10806,-0.12699,-0.16215,-0.15404 -0.24348,-0.10002,-0.038531,0.04345,0.2484,-0.20249,-0.24348,0.0024594,0.08444,0.2689,-0.36645,-0.038531,0.063945,0.10494,0.28939,-0.40745,-0.018036,-0.059026,0.22791,0.28939,-0.1615,-0.20249,0.12543,0.10494,0.22791 0.22759,-0.019791,-0.019791,-0.050714,-0.20533,0.19667,0.042056,0.011132,-0.14348,-0.45272,0.38221,0.011132,-0.019791,0.072979,-0.2981,0.35129,0.16575,-0.019791,-0.20533,-0.23625,0.25852,0.13483,0.072979,-0.019791,-0.23625 -0.16527,-0.16527,-0.16527,0.05219,0.24066,-0.16527,-0.22326,-0.17977,0.066688,0.32764,-0.16527,-0.19426,-0.049291,0.18267,0.29864,-0.13627,-0.20876,-0.16527,0.25515,0.31314,-0.17977,-0.15077,0.066688,0.21166,0.29864 -0.1335,-0.25091,-0.11673,-0.15028,-0.18382,-0.11673,-0.15028,-0.18382,-0.1335,-0.18382,-0.099961,-0.1335,-0.1335,-0.20059,-0.083189,0.034215,0.15162,0.15162,0.16839,0.21871,0.38642,0.36965,0.38642,0.21871,0.16839 0.18295,0.18295,0.17494,0.17294,0.17094,0.16293,0.16893,0.16092,0.15692,0.16293,0.15291,0.1449,0.15291,0.14691,0.14891,-0.24359,-0.2496,-0.2556,-0.23958,-0.28364,-0.23558,-0.23958,-0.23958,-0.22356,-0.23358 -0.31188,-0.11902,-0.036367,0.15649,0.29424,-0.14657,-0.091469,0.15649,0.12894,0.34934,-0.25677,-0.17412,-0.063918,0.12894,0.21159,-0.39453,-0.14657,-0.036367,0.073836,0.12894,-0.33943,-0.036367,0.12894,0.12894,0.26669 -0.20687,-0.20687,0.11936,0.19612,0.17693,-0.25484,-0.24525,0.14815,0.18653,0.20572,-0.20687,-0.21646,0.10017,0.2441,0.16734,-0.28363,-0.24525,0.090576,0.21531,0.12896,-0.28363,-0.24525,0.061791,0.18653,0.16734 0.28399,0.095023,-0.039953,-0.093943,-0.22892,0.52694,0.14901,0.068028,-0.066948,-0.3099,0.36497,0.14901,0.014037,-0.12094,-0.28291,0.12202,-0.039953,-0.093943,-0.066948,-0.28291,0.17601,0.041033,-0.066948,-0.17493,-0.12094 0.36685,-0.13268,-0.14699,-0.15654,-0.14859,0.38594,-0.08177,-0.13268,-0.13904,-0.13586,0.37958,-0.065861,-0.10563,-0.12154,-0.10563,0.38594,0.024817,-0.08177,-0.089724,-0.096088,0.43685,-0.0054089,-0.06427,-0.076997,-0.092906 -0.07268,-0.11988,-0.07268,-0.025485,0.23409,-0.23786,-0.19067,-0.11988,0.068905,0.35207,-0.19067,-0.096278,-0.0018878,0.1161,0.28128,-0.28506,-0.28506,-0.049083,0.16329,0.32848,-0.28506,-0.07268,0.02171,0.18689,0.35207 0.17946,0.21822,0.17946,0.18915,0.19884,0.13101,0.16008,0.16008,0.16977,0.16008,0.10194,0.092248,0.092248,0.072868,0.072868,-0.053101,-0.11124,-0.09186,-0.082171,-0.10155,-0.33411,-0.31473,-0.31473,-0.41163,-0.36318 -0.16981,-0.22495,-0.16981,-0.2663,-0.2663,-0.1836,-0.15603,-0.21117,-0.19738,-0.21117,0.03694,0.050724,0.0093729,-0.031978,-0.031978,0.21613,0.16099,0.092075,0.11964,0.023157,0.4091,0.35396,0.29883,0.27126,0.078291 0.19858,0.1952,0.20874,0.0023012,-0.39365,0.13767,0.17489,0.18505,-0.011236,-0.30566,0.097059,0.1309,0.12075,-0.031541,-0.40719,0.12075,0.056448,0.15121,-0.0010829,-0.40042,0.097059,-0.018004,0.056448,-0.011236,-0.35304 -0.26705,-0.2432,-0.040534,0.12637,0.24559,-0.2432,-0.30281,-0.10014,0.23366,0.26943,-0.20744,-0.18359,-0.076299,0.12637,0.28135,-0.12399,-0.14783,-0.052455,0.066761,0.37672,-0.052455,-0.12399,-0.0047687,0.11445,0.32904 0.18705,0.19766,0.18705,-0.17814,-0.24178,0.18099,0.18705,0.18553,-0.19481,-0.21602,0.16887,0.17038,0.17341,-0.23572,-0.22814,0.17341,0.17341,0.1719,-0.24027,-0.24481,0.1522,0.16432,-0.20844,-0.2342,-0.25087 -0.0069263,-0.03771,-0.043482,-0.060797,-0.078113,0.0065415,-0.035786,-0.060797,-0.080037,-0.085809,0.050793,-0.045406,-0.068493,-0.080037,-0.1012,0.039249,-0.014622,-0.058873,-0.085809,-0.070417,0.95313,0.098892,-0.055025,-0.04733,-0.031938 -0.072432,-0.072432,-0.077178,-0.072432,-0.071245,-0.053446,-0.051666,-0.052259,-0.054632,-0.055819,-0.026747,-0.035053,-0.038613,-0.03624,-0.043953,-0.020813,-0.01666,-0.026153,-0.02556,-0.02378,0.97417,-0.012507,-0.0131,-0.012507,-0.0089472 0.16183,0.16001,0.15818,0.16001,0.16776,0.16183,0.16183,0.16411,0.16274,0.16502,0.16502,0.16639,0.16411,0.16548,0.16502,-0.24302,-0.2453,-0.24348,-0.24348,-0.2453,-0.24621,-0.24439,-0.24576,-0.24576,-0.24667 -0.32285,-0.25892,0.070786,0.16835,0.16499,-0.31275,-0.14117,0.10779,0.18181,0.18518,-0.31275,-0.046967,0.15826,0.18854,0.17508,-0.30602,-0.21182,0.1919,0.17172,0.17845,-0.29257,-0.10753,0.10443,0.12798,0.13807 -0.26019,-0.2291,0.14004,0.17501,0.17501,-0.27573,-0.22133,0.16336,0.16336,0.17501,-0.24853,-0.21356,0.1517,0.17113,0.15947,-0.2563,-0.26019,0.1517,0.15947,0.15947,-0.25242,-0.22522,0.1517,0.16336,0.18279 -0.14544,-0.20814,-0.082753,0.26205,0.2934,-0.17679,-0.1141,-0.020061,0.10532,0.35609,-0.1141,-0.17679,0.04263,0.011284,0.26205,-0.30217,-0.23948,-0.051407,0.2307,0.26205,-0.20814,-0.27083,-0.082753,0.10532,0.26205 0.2447,0.20759,0.19368,-0.17278,-0.1816,0.24842,0.22708,-0.16907,-0.17974,-0.17789,0.27486,0.22754,-0.1765,-0.1765,-0.16443,0.2512,0.23728,-0.1765,-0.17974,-0.17325,0.10832,0.23682,-0.17,-0.17974,-0.17974 -0.27806,-0.17029,-0.19723,-0.30501,-0.25112,-0.1164,-0.1164,-0.089454,-0.25112,-0.1164,-0.1164,0.018322,0.07221,-0.1164,-0.035566,0.07221,0.07221,0.20693,0.018322,0.17999,0.28776,0.34165,0.28776,0.34165,0.26082 -0.39374,-0.035795,-0.013423,0.18792,0.18792,-0.30426,-0.17003,0.031321,0.18792,0.14318,-0.1924,-0.1924,0.12081,0.27741,0.14318,-0.30426,-0.17003,0.12081,0.2103,0.16555,-0.32663,-0.12528,0.098436,0.12081,0.23267 -0.15614,-0.17402,-0.15912,0.21634,0.2223,-0.1472,-0.16508,-0.15614,0.25209,0.23719,-0.16508,-0.17402,-0.14124,0.26401,0.24315,-0.15912,-0.16508,-0.15018,0.23719,0.25209,-0.2217,-0.15614,-0.15018,0.26699,0.24911 0.18186,0.18186,0.35024,0.30213,0.35024,0.22997,0.13375,0.25402,0.085636,0.20591,-0.15492,-0.058695,-0.08275,-0.034639,-0.08275,-0.17897,-0.15492,-0.17897,-0.27519,-0.1068,-0.15492,-0.25114,-0.17897,-0.15492,-0.22708 0.11732,0.11873,0.11219,0.1083,-0.43655,0.11007,0.109,0.10246,0.050628,-0.42027,0.10847,0.10441,0.10193,0.095384,-0.43142,0.109,0.109,0.10299,0.03913,-0.42912,0.11378,0.11343,0.10847,0.021794,-0.23913 -0.2426,-0.19918,0.061375,0.2785,0.17718,-0.21365,-0.25708,0.032424,0.26403,0.1627,-0.25708,-0.21365,-0.11233,0.20613,0.2206,-0.1847,-0.22813,0.0469,0.19165,0.17718,-0.17023,-0.25708,0.0469,0.23508,0.23508 -0.16332,-0.15967,-0.17133,0.23091,0.2382,-0.16332,-0.15967,-0.16842,0.22945,0.23018,-0.1655,-0.16477,-0.15821,0.23965,0.2484,-0.16623,-0.16332,-0.15676,0.24548,0.24694,-0.16915,-0.16113,-0.15603,0.26953,0.26807 -0.14595,-0.11337,-0.015637,0.11467,0.21241,-0.30884,-0.2111,-0.11337,-0.015637,0.40787,-0.2111,-0.14595,-0.080792,0.11467,0.21241,-0.24368,-0.080792,0.11467,0.27756,0.27756,-0.24368,-0.2111,-0.048215,0.14725,0.31014 0.18279,0.1733,0.18754,0.16381,0.1733,0.18754,0.1733,0.1733,0.1733,0.18279,0.15432,0.1733,0.14958,0.068904,-0.063969,0.016704,-0.10668,-0.23006,-0.25379,-0.28701,-0.25379,-0.25853,-0.29175,-0.29175,-0.2965 0.12972,0.26345,-0.13774,-0.037445,-0.17118,0.39718,-0.037445,-0.13774,-0.17118,-0.23804,0.39718,0.062854,-0.004012,-0.20461,-0.33834,0.33032,0.16315,0.029421,-0.070878,-0.17118,0.19659,0.096287,-0.037445,-0.070878,-0.23804 0.40805,-0.069912,-0.10981,-0.1112,-0.11258,0.40251,-0.080996,-0.10704,-0.11203,-0.1112,0.39918,-0.072129,-0.1051,-0.10953,-0.10843,0.39558,-0.083766,-0.10288,-0.10843,-0.10621,0.39087,-0.082104,-0.099283,-0.10288,-0.10067 -0.16316,-0.11546,-0.16316,-0.067747,-0.18702,-0.13931,-0.11546,-0.11546,-0.11546,-0.21087,-0.11546,-0.043892,-0.091601,-0.11546,-0.16316,0.0038167,-0.043892,0.027671,-0.043892,0.099235,0.38549,0.31392,0.40934,0.38549,0.38549 -0.18587,-0.18587,-0.17217,0.019739,0.28018,-0.18587,-0.18587,-0.048798,0.060861,0.28018,-0.13104,-0.10363,-0.089921,0.074568,0.36242,-0.21329,-0.15846,-0.076213,0.11569,0.37613,-0.18587,-0.11734,-0.048798,0.060861,0.45838 -0.029969,-0.031967,-0.043955,-0.052946,-0.061937,-0.024975,-0.027972,-0.043955,-0.053945,-0.063935,-0.027972,-0.031967,-0.045953,-0.059939,-0.067931,-0.027972,-0.021978,-0.035963,-0.049949,-0.059939,0.977,-0.0079919,-0.023976,-0.035963,-0.043955 0.36935,0.23553,0.048176,-0.058882,-0.11241,0.23553,0.20876,-0.058882,-0.11241,-0.16594,0.36935,0.1017,0.021412,-0.16594,-0.11241,0.28906,0.1017,-0.085646,-0.21947,-0.21947,0.182,-0.032117,-0.21947,-0.29976,-0.29976 -0.25202,-0.25504,-0.25504,-0.25807,-0.2626,-0.21194,-0.20891,-0.21648,-0.23538,-0.21648,0.059526,0.21378,0.23344,0.23344,0.11095,0.2221,0.19337,0.12531,0.083723,0.090529,0.25311,0.148,0.096578,0.12078,0.18732 -0.1667,-0.17967,-0.17887,0.24782,0.24682,-0.16211,-0.17688,-0.16929,0.24642,0.24562,-0.15712,-0.1663,-0.16071,0.24522,0.24402,-0.15034,-0.16451,-0.15972,0.24382,0.24382,-0.14355,-0.15852,-0.15333,0.24203,0.24203 0.33855,0.31142,-0.090062,-0.13347,-0.13347,0.34126,0.023872,-0.11176,-0.13347,-0.13889,0.36296,-0.016819,-0.12261,-0.13347,-0.14974,0.36567,-0.054797,-0.1199,-0.1416,-0.14432,0.3711,-0.10091,-0.11719,-0.13075,-0.1416 0.21638,0.18845,0.16791,0.13915,0.10793,0.21967,0.19009,0.15969,0.1334,0.10136,0.21145,0.18352,0.16298,0.13176,0.10629,-0.24126,-0.23716,-0.23798,-0.23469,-0.21826,-0.25112,-0.25441,-0.25441,-0.25441,-0.23633 0.23471,0.28973,0.19804,0.27139,0.30806,0.16137,0.19804,0.21638,0.069681,0.1797,-0.040342,0.033007,-0.040342,0.051344,-0.058679,-0.18704,-0.18704,-0.058679,-0.1687,-0.095353,-0.27872,-0.27872,-0.3154,-0.22371,-0.27872 -0.20141,-0.20141,-0.14252,0.093047,0.15194,-0.14252,-0.083625,-0.11307,0.24027,0.21083,-0.23085,-0.23085,-0.024734,0.18138,0.29917,-0.2603,-0.2603,0.093047,0.29917,0.26972,-0.17196,-0.17196,-0.083625,0.18138,0.29917 0.099944,0.10058,0.098359,0.10581,-0.39683,0.097725,0.090909,0.08869,0.10502,-0.39619,0.091543,0.093287,0.086788,0.083934,-0.39699,0.093287,0.10882,0.11247,0.086312,-0.39619,0.19901,0.11072,0.11326,0.014824,-0.39508 -0.20375,-0.19134,0.14989,0.22434,0.26157,-0.21615,-0.16652,0.14989,0.18712,0.26777,-0.21615,-0.20375,-0.16652,0.16851,0.24916,-0.20375,-0.17893,-0.17893,0.18712,0.24296,-0.21615,-0.16652,-0.15411,0.14989,0.22434 -0.24031,-0.24004,-0.24114,-0.24114,-0.24225,-0.24059,-0.24059,-0.24004,-0.2417,-0.24114,0.19379,0.19904,0.17141,0.15124,0.15428,0.19213,0.19821,0.175,0.15621,0.070827,0.19628,0.20374,0.19766,0.07442,0.074696 -0.15901,-0.15969,-0.17461,0.25059,0.24449,-0.15901,-0.16105,-0.17122,0.24991,0.24449,-0.15901,-0.15901,-0.16173,0.24652,0.24449,-0.16105,-0.16376,-0.1658,0.2411,0.24449,-0.16105,-0.16444,-0.16851,0.23906,0.24381 -0.30407,-0.090365,0.092807,0.15386,0.30651,-0.33459,-0.090365,-0.090365,0.12334,0.21492,-0.18195,-0.33459,0.092807,0.18439,0.21492,-0.24301,-0.090365,-0.15142,0.18439,0.30651,-0.27354,-0.059836,0.062279,0.12334,0.18439 -0.16227,-0.16357,-0.16357,-0.16357,-0.16357,-0.15925,-0.15925,-0.15925,-0.15925,-0.15579,-0.15666,-0.15752,-0.1532,-0.15061,-0.15234,0.37431,0.23174,0.22353,0.1907,0.15657,0.38209,0.2339,0.2231,0.20366,0.16003 0.18326,0.18227,0.15118,-0.18904,-0.22112,0.18128,0.17019,0.16207,-0.19439,-0.21954,0.1789,0.16385,0.1585,-0.19379,-0.22191,0.30524,0.17454,-0.18963,-0.19458,-0.22845,0.27079,0.18088,-0.18429,-0.19914,-0.22706 0.20266,0.21231,0.34192,0.32583,0.2114,0.19715,0.34559,0.18083,0.16291,0.21461,-0.1581,-0.1581,-0.15833,-0.15902,-0.15833,-0.15994,-0.15902,-0.15971,-0.16086,-0.15948,-0.16109,-0.16109,-0.16086,-0.16086,-0.1604 0.21192,0.18846,0.16134,0.14081,0.11442,0.20532,0.1826,0.16427,0.13421,0.11589,0.20899,0.18626,0.15914,0.13788,0.11735,-0.23966,-0.23966,-0.23673,-0.23453,-0.23746,-0.24699,-0.24845,-0.24699,-0.24845,-0.24992 -0.17298,-0.17298,-0.17307,-0.17307,-0.17282,-0.17282,-0.17298,-0.17282,-0.17315,-0.17307,-0.17207,-0.17257,-0.17323,-0.02014,-0.020223,-0.019148,0.29398,0.29183,0.19586,0.19751,0.23363,0.30001,0.29654,0.29811,0.19966 -0.21565,-0.16619,-0.31457,-0.3393,-0.31457,-0.042537,-0.14146,-0.14146,-0.091998,-0.24038,0.10585,0.031655,-0.042537,-0.042537,-0.042537,0.15531,0.10585,0.081117,0.15531,0.18004,0.32842,0.32842,0.35315,0.15531,0.15531 -0.22909,-0.27199,-0.33634,-0.16474,-0.33634,-0.14329,-0.14329,-0.10039,-0.078936,-0.14329,0.092664,-0.078936,-0.078936,-0.014586,0.049764,0.092664,0.028314,0.049764,0.15701,0.15701,0.30716,0.22136,0.30716,0.28571,0.37151 0.16186,0.15609,0.14167,0.14579,-0.27081,0.15856,0.15197,0.14167,-0.25556,-0.26792,0.15526,0.14414,0.14249,-0.27039,-0.26916,0.14826,0.15114,0.14249,-0.26174,-0.27163,0.15774,0.14991,0.14991,-0.26257,-0.26916 -0.30836,-0.23603,0.15537,0.15962,0.16813,-0.29559,-0.23603,0.15111,0.16813,0.18515,-0.29985,-0.18498,0.16388,0.15537,0.15962,-0.3041,-0.12116,0.14686,0.14686,0.14261,-0.28283,-0.11691,0.16813,0.15111,0.16388 0.40153,-0.081264,-0.085871,-0.11259,-0.12088,0.40982,-0.094163,-0.083107,-0.10338,-0.12365,0.3914,-0.072972,-0.077579,-0.10706,-0.11351,0.38402,-0.0785,-0.0785,-0.099692,-0.11535,0.40522,-0.0785,-0.096006,-0.13286,-0.13655 -0.050299,-0.050299,-0.069283,-0.075611,-0.090075,-0.025891,-0.037643,-0.058435,-0.071995,-0.090075,0.0048454,0.0039414,0.0048454,-0.060243,-0.093691,0.00032544,0.0075574,-0.0041946,-0.043971,-0.082843,0.96399,0.0048454,-0.00057856,-0.0023866,-0.082843 0.20697,0.19775,0.19775,0.17469,0.12858,0.23926,0.21159,0.16547,0.16086,0.11474,0.21159,0.21159,0.14702,0.045564,-0.088177,-0.20347,-0.22192,-0.24498,-0.23114,-0.22653,-0.2542,-0.24036,-0.23575,-0.22653,-0.24036 -0.14056,-0.15236,-0.14867,0.24725,0.23729,-0.15679,-0.16159,-0.15347,0.24651,0.24393,-0.17413,-0.16934,-0.15568,0.24725,0.23877,-0.1686,-0.17192,-0.18004,0.24947,0.24172,-0.16602,-0.1745,-0.1734,0.24947,0.24541 0.18117,0.1781,0.14335,0.15411,0.13781,0.18517,0.18363,0.1452,0.16057,0.14796,0.18117,0.17502,0.17933,0.14397,0.14735,-0.24658,-0.24904,-0.24196,-0.24012,-0.24412,-0.24166,-0.24319,-0.24535,-0.24627,-0.24565 0.1897,0.16783,0.15486,0.15258,0.15054,0.18538,0.16707,0.15461,0.15283,0.14978,0.19428,0.16656,0.15537,0.15385,0.15029,-0.24435,-0.2446,-0.24537,-0.2441,-0.24333,-0.24537,-0.24537,-0.24537,-0.24359,-0.2441 -0.24705,-0.20238,-0.18004,-0.18004,-0.22471,-0.1242,-0.1577,-0.21355,-0.19121,-0.19121,0.076841,0.043335,-0.046015,-0.1577,-0.18004,0.31138,0.21087,0.21087,0.076841,0.020997,0.24437,0.24437,0.30022,0.26671,0.28905 0.186,0.20743,0.19314,-0.18543,-0.22114,0.20267,0.20029,0.19314,-0.19733,-0.22114,0.20267,0.21695,-0.14971,-0.20448,-0.21638,0.20267,0.23124,-0.13543,-0.19971,-0.20686,0.21457,0.23124,-0.14257,-0.19257,-0.20924 0.27115,0.26139,0.28416,0.27766,0.27766,0.095502,0.098755,0.10526,0.098755,0.095502,0.040205,0.04671,0.04671,0.049963,0.036952,-0.089907,-0.10942,-0.096413,-0.089907,-0.089907,-0.33061,-0.3176,-0.32086,-0.32086,-0.32086 0.32885,0.32885,0.31601,0.29032,0.29032,0.13617,0.033399,0.13617,0.12332,0.084783,-0.043676,-0.069368,0.046245,-0.0051383,-0.0051383,-0.14644,-0.15929,-0.082214,-0.12075,-0.15929,-0.26206,-0.28775,-0.23636,-0.24921,-0.28775 0.18459,0.19011,0.18862,-0.22493,-0.2445,0.17951,0.13947,0.13947,-0.20461,-0.24435,0.1801,0.17921,0.18399,-0.20909,-0.24256,0.1816,0.17861,-0.20536,-0.21089,-0.24152,0.18354,0.18279,0.18205,-0.20431,-0.24152 -0.15383,-0.13654,-0.11349,0.076686,0.32449,-0.16152,-0.1327,-0.11349,0.057476,0.35331,-0.15575,-0.13654,-0.12502,0.061318,0.36291,-0.17304,-0.14039,-0.1231,0.057476,0.39365,-0.1692,-0.15191,-0.12502,0.019056,0.40517 -0.32298,-0.11089,0.040599,0.14664,0.19209,-0.27753,-0.080593,0.055748,0.19209,0.22239,-0.27753,-0.019997,0.13149,0.19209,0.17694,-0.47447,-0.065444,0.1012,0.086046,0.19209,-0.36842,-0.11089,0.055748,0.16179,0.16179 0.39742,0.15183,0.10717,0.040189,-0.3617,0.21881,0.28579,-0.093774,-0.026793,-0.29472,0.15183,0.15183,0.040189,-0.093774,-0.22774,0.28579,0.10717,-0.16076,-0.13843,-0.22774,0.21881,-0.026793,-0.093774,-0.13843,-0.27239 0.44046,0.28575,0.2296,0.16699,0.12862,0.29625,0.27727,0.22718,0.15649,0.11327,-0.13193,-0.12991,-0.13152,-0.13112,-0.12789,-0.13678,-0.13758,-0.13637,-0.13354,-0.13435,-0.19737,-0.19979,-0.19737,-0.19777,-0.19858 0.27989,0.2626,-0.094192,-0.16987,-0.18717,0.27773,0.24097,-0.15041,-0.14393,-0.17204,0.28206,0.24962,-0.15258,-0.1569,-0.16555,0.27773,0.24746,-0.14176,-0.16339,-0.14609,0.26908,-0.15474,-0.12879,-0.10284,-0.1569 -0.35246,-0.27448,-0.40444,-0.37845,-0.1965,-0.1965,-0.17051,-0.092533,-0.092533,-0.040548,0.089414,0.011437,0.089414,0.11541,0.1414,0.19338,0.1414,0.1414,0.1414,0.16739,0.19338,0.21938,0.24537,0.1414,0.16739 -0.14578,-0.20861,-0.07247,0.34643,0.27313,-0.1772,-0.20861,-0.082943,0.1684,0.27313,-0.18767,-0.14578,-0.14578,0.10556,0.30454,-0.16672,-0.1772,-0.20861,0.14745,0.34643,-0.13531,-0.1772,-0.07247,0.10556,0.24171 -0.2843,-0.25481,-0.22531,-0.34328,-0.13684,-0.048366,-0.077857,-0.13684,-0.31379,-0.19582,0.010617,0.010617,-0.018875,0.0696,-0.077857,0.0696,0.21706,0.0696,0.12858,0.12858,0.24655,0.30553,0.24655,0.30553,0.30553 -0.39663,-0.38753,-0.30566,-0.36024,-0.35114,-0.06004,-0.096427,-0.06004,-0.050943,-0.08733,0.1219,0.076414,0.1037,0.14009,0.14919,0.16738,0.16738,0.14919,0.14919,0.14009,0.14919,0.15829,0.17648,0.15829,0.14919 0.091983,0.097722,0.10155,0.12451,-0.41882,0.093896,0.086243,0.1092,0.10537,-0.39395,0.09007,0.099635,0.12068,0.12451,-0.39395,0.10729,0.10729,0.11685,0.086243,-0.4016,0.1092,0.1092,0.12833,-0.03237,-0.36908 0.12602,0.14092,0.15209,0.18188,0.20795,0.11485,0.14464,0.15954,0.19678,0.21912,0.1223,0.13719,0.14092,0.16699,0.21168,-0.20169,-0.21659,-0.23521,-0.23521,-0.24266,-0.22776,-0.25756,-0.25756,-0.27245,-0.27618 0.46095,0.42217,0.41013,0.32945,0.35257,-0.10528,-0.037841,-0.036637,-0.040491,-0.10961,-0.10456,-0.1072,-0.099498,-0.10383,-0.10961,-0.11274,-0.11202,-0.1113,-0.11154,-0.11154,-0.10817,-0.11226,-0.11419,-0.11371,-0.11323 -0.20697,-0.27111,-0.35664,-0.29249,-0.22835,-0.22835,-0.12145,-0.12145,-0.10006,-0.20697,-0.03592,-0.014539,0.028223,0.092367,0.006842,0.19927,0.11375,0.22065,0.24204,0.17789,0.11375,0.11375,0.2848,0.2848,0.30618 -0.050117,-0.050117,-0.054887,-0.054092,-0.057272,-0.044552,-0.043757,-0.048527,-0.050117,-0.047732,-0.040577,-0.041372,-0.042167,-0.042167,-0.042167,-0.031832,-0.030242,-0.035012,-0.031832,-0.035012,0.97861,-0.014342,-0.028652,-0.030242,-0.031832 0.42505,0.46746,0.39156,0.2978,0.32459,0.054471,-0.0058042,-0.072776,-0.070544,-0.03929,-0.0013394,-0.045987,-0.12412,-0.14198,-0.12859,-0.090635,-0.10849,-0.14198,-0.16877,-0.14868,-0.12412,-0.12635,-0.10849,-0.1844,-0.12859 -0.22989,-0.18641,-0.22989,-0.28205,-0.30814,-0.01252,-0.064688,-0.14294,-0.2125,-0.22989,0.10051,0.057037,-0.047299,-0.082077,-0.15163,0.21354,0.18746,0.083121,0.057037,0.030953,0.30049,0.30918,0.23093,0.30918,0.30049 0.43133,0.39153,0.38105,0.35382,0.3622,-0.018016,-0.030585,-0.026395,-0.055723,-0.055723,-0.066197,-0.06515,-0.069339,-0.076671,-0.088193,-0.081908,-0.086098,-0.085051,-0.086098,-0.09762,-0.095525,-0.17513,-0.2076,-0.22017,-0.23274 -0.007526,-0.068003,-0.068003,-0.068003,-0.094881,0.012633,-0.047844,-0.047844,-0.068003,-0.068003,-0.007526,-0.027685,-0.047844,-0.068003,-0.1016,0.079829,-0.00080636,-0.027685,-0.088162,-0.088162,0.94666,0.12015,-0.020965,-0.094881,-0.047844 0.20385,0.17993,0.16253,0.14079,0.12086,0.20203,0.17884,0.15601,0.1426,0.12303,0.20493,0.18609,0.16326,0.14115,0.12883,-0.24155,-0.24445,-0.24155,-0.24663,-0.243,-0.24373,-0.24481,-0.24228,-0.24191,-0.24481 -0.16259,-0.15809,-0.16832,0.2326,0.23383,-0.15932,-0.16014,-0.16587,0.24078,0.27187,-0.16096,-0.16341,-0.15605,0.24692,0.27555,-0.16341,-0.17037,-0.15605,0.24937,0.25101,-0.16628,-0.17773,-0.15318,0.2551,0.18473 0.16094,0.12503,0.098909,0.096732,-0.39738,0.13809,0.10326,0.10109,0.085849,-0.40391,0.074965,0.10109,0.085849,0.082584,-0.3952,0.10109,0.09129,0.082584,0.076054,-0.39302,0.12938,0.09129,0.088025,0.076054,-0.40064 0.17992,0.15437,0.13423,-0.26614,-0.26505,0.18035,0.1561,0.12969,0.1141,-0.26635,0.17949,0.15004,0.12817,-0.2657,-0.26527,0.17321,0.14939,0.12622,-0.26375,-0.2657,0.17083,0.13835,0.12665,-0.26462,-0.26852 0.27884,0.25743,0.26813,0.30026,0.25743,0.12893,0.12893,0.12893,0.12893,0.12893,0.021845,-0.01028,-0.01028,0.021845,-0.01028,-0.10665,-0.074529,-0.10665,-0.074529,-0.074529,-0.27799,-0.31011,-0.34224,-0.34224,-0.31011 0.21651,0.21526,-0.17287,-0.17161,-0.17329,0.22698,0.22656,-0.17957,-0.18041,-0.17119,0.22573,0.23368,-0.17873,-0.18041,-0.17873,0.22154,0.22698,-0.18124,-0.17831,-0.17622,0.23075,0.22531,0.23201,-0.18124,-0.17748 0.47389,0.088404,-0.091488,-0.091488,-0.065789,0.34539,0.1398,-0.11719,-0.091488,-0.14289,0.31969,0.037006,-0.14289,-0.11719,-0.11719,0.31969,-0.091488,-0.21998,-0.19428,-0.14289,0.37109,-0.091488,-0.091488,-0.11719,-0.16858 0.26211,0.21942,0.17673,0.21942,0.24076,0.15539,0.1127,0.17673,0.19807,0.13404,0.1127,0.027321,0.070009,0.070009,0.0059764,-0.14343,-0.12209,-0.12209,-0.0794,-0.14343,-0.33553,-0.18612,-0.39956,-0.29284,-0.35687 -0.16268,-0.16265,-0.16288,0.24957,0.23669,-0.16315,-0.16325,-0.16291,0.25405,0.23682,-0.16348,-0.16352,-0.16392,0.25301,0.23712,-0.16328,-0.16345,-0.16372,0.2503,0.23903,-0.16335,-0.16315,-0.16342,0.25402,0.23819 -0.22444,-0.15964,0.02177,0.13839,0.20318,-0.25035,-0.043021,0.073602,0.24206,0.19023,-0.28923,-0.0041466,0.20318,0.19023,0.25502,-0.31514,-0.26331,-0.055979,0.034728,0.24206,-0.31514,-0.22444,-0.055979,0.15135,0.25502 0.2636,0.22769,0.28156,0.31747,0.2636,0.048123,0.11995,0.15586,0.1379,0.15586,-0.023702,0.048123,0.048123,0.048123,0.048123,-0.13144,-0.20327,-0.095528,-0.16735,-0.095528,-0.32896,-0.311,-0.32896,-0.27509,-0.20327 0.202,0.19213,0.14441,0.17238,0.073653,0.19542,0.16416,0.14441,0.15757,0.15922,0.17897,0.14441,0.17567,0.17897,0.1477,-0.24722,-0.24887,-0.22254,-0.22418,-0.22912,-0.25216,-0.25709,-0.25545,-0.25051,-0.24393 -0.16294,-0.16261,-0.16327,0.22916,0.23316,-0.16427,-0.16294,-0.16327,0.23233,0.23066,-0.16344,-0.16394,-0.16211,0.27755,0.23567,-0.16261,-0.16344,-0.16377,0.26537,0.27071,-0.16277,-0.16161,-0.16261,0.2335,0.2375 -0.32886,-0.051073,-0.053807,0.2032,0.20648,-0.33022,-0.055721,0.19636,0.19882,0.20456,-0.33077,-0.055447,-0.061736,0.19691,0.20101,-0.33022,-0.056541,-0.062009,0.1898,0.20128,-0.32804,-0.059002,-0.060369,0.16328,0.2021 0.17555,0.1845,0.13076,0.16659,0.13972,0.13076,0.13972,0.13972,0.13972,0.12181,0.10389,0.10389,0.12181,0.13076,0.13972,-0.030452,-0.030452,-0.093147,-0.0035826,-0.048365,-0.3708,-0.36184,-0.37975,-0.37975,-0.3708 -0.29088,-0.20073,0.099765,0.099765,0.34016,-0.17068,-0.050483,0.039666,0.25001,0.25001,-0.26083,-0.17068,0.12981,0.15986,0.12981,-0.32093,-0.14063,-0.020434,0.039666,0.34016,-0.23078,-0.20073,-0.11058,0.0096159,0.28006 0.35092,0.25659,-0.057858,-0.089303,-0.21508,0.13081,0.31948,0.036476,-0.12075,-0.34086,0.28803,0.13081,0.0050311,-0.18364,-0.34086,0.099365,-0.026414,0.0050311,-0.15219,-0.21508,0.22514,0.099365,0.16225,-0.089303,-0.27797 0.16763,0.15314,0.164,0.16038,0.15676,0.16219,0.16038,0.14952,0.17306,0.16944,0.16944,0.15495,0.1477,0.1803,0.17849,-0.24347,-0.24347,-0.25434,-0.23623,-0.23623,-0.24709,-0.25434,-0.24166,-0.24709,-0.24347 -0.29711,-0.12165,-0.0046789,0.11229,0.22927,-0.12165,-0.092409,-0.092409,0.25851,0.28775,-0.44333,-0.092409,-0.0046789,0.14154,0.22927,-0.26787,-0.1509,-0.063165,0.11229,0.25851,-0.12165,-0.26787,0.053808,0.22927,0.22927 -0.36373,-0.3765,-0.37224,-0.38075,-0.38075,-0.044594,-0.014808,-0.040339,-0.053105,-0.044594,0.13838,0.12561,0.12561,0.11285,0.1171,0.15114,0.13412,0.13412,0.16391,0.14689,0.1554,0.14689,0.13838,0.14263,0.13838 -0.24527,-0.24571,0.13943,0.12154,0.18314,-0.24351,-0.24351,0.14178,0.1805,0.18666,-0.24351,-0.24336,0.13899,0.18284,0.1846,-0.24307,-0.24439,0.14368,0.17991,0.18534,-0.24336,-0.24395,0.14178,0.1428,0.18666 0.038716,0.1707,0.10471,-0.20326,-0.35724,0.23669,0.1487,0.082711,-0.11527,-0.26925,0.10471,0.10471,0.060713,-0.18126,-0.37924,0.1927,0.1707,0.082711,0.10471,-0.33524,0.28069,0.1707,0.1487,-0.071272,-0.29125 0.40185,0.40185,0.40579,0.40185,0.38214,-0.067159,-0.078983,-0.067159,-0.082924,-0.086865,-0.086865,-0.090807,-0.11051,-0.10657,-0.10263,-0.12628,-0.12234,-0.098689,-0.11445,-0.12234,-0.1184,-0.090807,-0.10263,-0.098689,-0.1184 0.13119,0.1682,0.14169,0.1567,0.23623,0.13269,0.1647,0.1727,0.13069,0.23222,0.1607,0.1722,0.14969,0.13369,0.14719,-0.23194,-0.23544,-0.23745,-0.24195,-0.24195,-0.24795,-0.24795,-0.24795,-0.24895,-0.24895 -0.22992,-0.20403,-0.19108,0.21024,0.18435,-0.24287,-0.25581,-0.074569,0.18435,0.23614,-0.17814,-0.20403,-0.1393,0.23614,0.23614,-0.19108,-0.16519,-0.035731,0.27497,0.21024,-0.10046,-0.1393,0.028999,0.28792,0.26203 -0.18626,-0.18626,-0.12049,-0.081029,0.32675,-0.15995,-0.15995,-0.067875,0.037358,0.32675,-0.19942,-0.15995,-0.094183,0.11628,0.37936,-0.15995,-0.15995,-0.12049,0.11628,0.3399,-0.13365,-0.15995,-0.041567,0.18205,0.36621 0.20957,0.20957,0.15778,0.045573,-0.16158,0.20094,0.20957,0.13189,-0.16158,-0.222,0.23546,0.18367,0.080098,-0.18747,-0.29105,0.23546,0.18367,-0.17021,-0.21336,-0.27378,0.20957,0.10599,-0.21336,-0.25652,-0.24789 -0.33038,-0.25197,-0.25197,-0.40879,-0.25197,-0.095141,-0.016728,-0.14742,-0.069003,-0.14742,0.061685,0.061685,-0.069003,-0.016728,-0.042866,0.061685,0.1401,0.24465,0.087822,0.1401,0.29692,0.16623,0.29692,0.27079,0.27079 0.24031,0.12095,0.054115,0.049401,-0.38916,0.11152,0.11455,0.048896,0.047549,-0.39151,0.1127,0.11321,0.04957,0.046876,-0.39151,0.10731,0.10849,0.10917,0.10496,-0.39538,0.10529,0.10462,0.10799,0.10563,-0.39555 0.061555,0.071746,0.07253,-0.2383,-0.24105,0.061555,0.19091,0.19561,-0.23869,-0.24065,0.19365,0.19404,0.19247,-0.23987,-0.23987,0.19404,0.19247,0.19404,-0.23869,-0.2383,0.18463,0.19404,0.19796,-0.23869,-0.23713 0.16228,0.15829,0.15829,0.15829,0.15729,0.16627,0.16328,0.16178,0.16178,0.16078,0.17176,0.16727,0.16827,0.16627,0.16727,-0.24481,-0.24382,-0.24382,-0.24282,-0.24481,-0.24581,-0.24581,-0.24481,-0.24531,-0.24731 0.1638,0.1638,0.16402,0.16233,0.15519,0.16233,0.16153,0.16153,0.16233,0.15598,0.1638,0.16708,0.16889,0.17309,0.16346,-0.24451,-0.24462,-0.2453,-0.2453,-0.24496,-0.24462,-0.24496,-0.24496,-0.24496,-0.24496 0.31228,0.28068,-0.12,-0.14192,-0.16307,0.30744,-0.13096,-0.12714,-0.14345,-0.16868,0.29877,0.19325,-0.12968,-0.15084,-0.16588,0.29979,0.26895,-0.13198,-0.14829,-0.16613,0.30081,0.072438,-0.13274,-0.146,-0.16766 0.13707,0.13707,0.14413,0.13,0.13707,0.1406,0.13707,0.13354,0.13354,0.12647,0.12647,0.13707,0.14413,0.13707,0.13354,-0.060763,-0.025436,-0.043099,-0.0042393,-0.007772,-0.36811,-0.37517,-0.38224,-0.38577,-0.38224 -0.16721,-0.16721,-0.16535,0.25728,0.26971,-0.16597,-0.16908,-0.16224,0.27095,0.2579,-0.16348,-0.16348,-0.16473,0.2666,0.23118,-0.15789,-0.16037,-0.15913,0.23864,0.21688,-0.16224,-0.15913,-0.15602,0.21377,0.22061 0.2553,0.11594,-0.023412,-0.30212,-0.32999,0.088072,0.22743,0.17168,-0.21851,-0.24638,0.19956,0.11594,0.22743,-0.079153,-0.32999,0.060201,0.14381,0.17168,-0.13489,-0.24638,0.22743,0.088072,0.17168,-0.079153,-0.27425 0.15975,0.14118,-0.13746,-0.24892,-0.24892,0.28978,0.23406,-0.15604,-0.24892,-0.30465,0.30836,0.23406,-0.026006,-0.10031,-0.24892,0.1969,0.28978,0.085449,-0.026006,-0.19319,0.085449,0.1969,0.048297,-0.17461,-0.15604 0.22807,0.21894,-0.1791,-0.17823,-0.1741,0.22741,0.22068,-0.17975,-0.17693,-0.17062,0.22502,0.22068,-0.17954,-0.17649,-0.17649,0.22633,0.22328,-0.17823,-0.17954,-0.17606,0.22828,0.22741,0.23546,-0.1791,-0.17736 -0.31524,-0.20976,-0.22483,-0.25497,-0.20976,-0.19469,-0.14948,-0.13442,-0.33031,-0.074139,-0.013863,0.046412,-0.028932,0.046412,0.091619,0.12176,0.13683,0.046412,0.07655,0.13683,0.31765,0.33272,0.1971,0.34779,0.24231 0.061777,0.062581,0.060436,-0.079551,-0.34129,0.064458,0.065531,0.05829,-0.073115,-0.33834,0.19586,0.19345,0.078135,-0.024307,-0.32788,0.26639,0.19667,0.039518,-0.041739,-0.32279,0.26613,0.2672,0.19935,-0.2072,-0.31957 -0.44107,-0.12103,-0.0046551,0.19901,0.2281,-0.17922,-0.15013,0.053534,0.19901,0.25719,-0.32469,0.024439,-0.12103,0.14082,0.25719,-0.32469,-0.17922,0.082628,0.19901,0.25719,-0.17922,-0.12103,-0.0046551,0.11172,0.14082 0.14052,0.19666,-0.0042547,-0.17562,-0.21108,0.14348,0.19075,0.16121,-0.11358,-0.24358,0.14052,0.18189,0.16416,0.045974,-0.31154,0.12575,0.18189,0.17007,-0.28199,-0.32336,0.13461,0.18484,0.13461,-0.31154,-0.3204 -0.20568,-0.21092,-0.18124,0.23773,0.2229,-0.20656,-0.18473,-0.17339,0.24472,0.21155,-0.20219,-0.12014,-0.066024,0.2709,0.2194,-0.18473,-0.14545,-0.10356,0.27003,0.23337,-0.16553,-0.15331,-0.10792,0.25868,0.2421 -0.28813,-0.37321,-0.28813,-0.20306,-0.28813,-0.11798,-0.20306,-0.11798,-0.032897,-0.11798,-0.032897,0.052182,0.052182,-0.032897,0.052182,0.2507,0.13726,0.052182,0.13726,0.052182,0.13726,0.33578,0.2507,0.2507,0.33578 -0.33084,-0.33084,-0.28219,-0.34706,-0.31463,0.0097307,-0.12001,-0.10379,0.0097307,-0.10379,0.025949,0.042166,-0.038923,-0.055141,0.025949,0.09082,0.13947,0.058384,0.12326,0.17191,0.20435,0.26922,0.30165,0.23678,0.31787 -0.17932,-0.20569,-0.20569,-0.20569,-0.16613,-0.11339,-0.24525,-0.16613,-0.24525,-0.24525,-0.047467,0.058015,0.04483,-0.034282,-0.087023,0.058015,0.13713,0.12394,0.084386,0.058015,0.24261,0.34809,0.44039,0.30854,0.24261 0.16163,0.17466,0.305,0.305,0.37018,0.12252,0.096454,0.23983,0.29197,0.2659,-0.1121,-0.17727,-0.1512,-0.1121,-0.086027,-0.13816,-0.1903,-0.17727,-0.13816,-0.1121,-0.1903,-0.17727,-0.21637,-0.17727,-0.17727 0.012918,-0.010428,-0.016264,-0.20692,-0.28085,0.1491,0.075173,0.045991,-0.20692,-0.27501,0.2347,0.26389,0.19774,-0.19525,-0.28085,0.20552,0.22108,0.10241,-0.16218,-0.26918,0.26194,0.2347,0.24443,-0.12327,-0.22249 0.29874,0.26073,0.26073,0.29874,0.35575,0.023184,0.089697,0.13721,0.18471,0.27023,-0.11934,-0.10984,-0.071834,-0.014823,0.042188,-0.21436,-0.22386,-0.12884,-0.10984,-0.10984,-0.20486,-0.26187,-0.24287,-0.22386,-0.18585 0.39026,0.39862,0.40419,0.39862,0.40419,-0.072212,-0.072212,-0.083356,-0.088928,-0.074998,-0.11679,-0.10564,-0.11679,-0.10286,-0.10843,-0.10843,-0.10564,-0.11679,-0.114,-0.11122,-0.10564,-0.097286,-0.097286,-0.10007,-0.097286 -0.40893,-0.3861,-0.34804,-0.36326,-0.34042,0.0021314,-0.081604,-0.066379,-0.013093,-0.051155,0.13154,0.1087,0.085867,0.1087,0.06303,0.1696,0.18483,0.1696,0.15438,0.12393,0.17721,0.14677,0.17721,0.14677,0.1087 -0.2556,-0.036515,-0.036515,0.07303,0.36515,-0.18257,-0.18257,0.036515,0.29212,0.29212,-0.32863,-0.18257,-0.07303,0.10954,0.18257,-0.18257,-0.21909,-0.036515,0.29212,0.14606,-0.29212,-0.07303,-0.07303,0.10954,0.2556 -0.16164,-0.097904,-0.05966,0.11881,0.32278,-0.1234,-0.1234,-0.097904,0.15705,0.32278,-0.23813,-0.097904,-0.05966,0.080567,0.39927,-0.27638,-0.11065,-0.1234,-0.05966,0.36102,-0.25088,-0.11065,-0.11065,0.0040794,0.33553 -0.2955,-0.27002,-0.27249,-0.31688,-0.32592,-0.18782,-0.16727,-0.13274,-0.13356,-0.16562,0.25854,0.20922,0.14017,0.084275,0.06208,0.25854,0.19936,0.14346,0.089207,0.034953,0.27416,0.21251,0.14593,0.10483,0.050571 0.41436,-0.10359,-0.088357,-0.095974,-0.088357,0.38389,-0.065506,-0.088357,-0.10359,-0.08074,0.39151,-0.10359,-0.095974,-0.088357,-0.12644,0.41436,-0.095974,-0.095974,-0.14929,-0.13406,0.36866,0.025898,-0.12644,-0.12644,-0.14168 -0.26344,-0.22991,0.18201,0.16764,0.16285,-0.29697,-0.19638,0.16764,0.16285,0.15327,-0.28739,-0.18201,0.18201,0.17243,0.16285,-0.27781,-0.19638,0.14369,0.14369,0.14848,-0.28739,-0.20596,0.13411,0.17722,0.16285 0.12841,0.1291,0.12643,-0.18798,-0.18827,0.27564,0.19516,0.1448,-0.18798,-0.18808,0.27771,0.20108,-0.18739,-0.18788,-0.18818,0.27742,0.21086,-0.18689,-0.18877,-0.18827,0.27811,0.1997,-0.18778,-0.18867,-0.18827 -0.26805,-0.1714,-0.074744,0.15078,0.34408,-0.30026,-0.074744,0.054125,0.15078,0.21521,-0.1714,-0.33248,0.021908,0.11856,0.21521,-0.30026,-0.042527,-0.01031,0.18299,0.21521,-0.26805,-0.1714,0.21521,0.054125,0.24743 -0.23868,-0.23738,-0.23706,-0.23673,-0.23608,-0.23836,-0.23738,-0.23803,-0.23673,-0.23673,0.12275,0.12811,0.11934,0.12031,0.15883,0.12177,0.1247,0.13234,0.165,0.38066,0.13201,0.12633,0.18824,0.1637,0.18906 0.19089,-0.020957,-0.21459,-0.20547,-0.16447,0.28201,0.067884,-0.15764,-0.21459,-0.14625,0.28429,0.11117,-0.12802,-0.20775,-0.13713,0.35491,0.1385,-0.027791,-0.16903,-0.11891,0.46881,0.23418,0.042826,-0.14169,-0.12119 0.41982,0.37846,0.35089,0.4123,0.42859,-0.067731,-0.072744,-0.071491,-0.071491,-0.072744,-0.10408,-0.10658,-0.10784,-0.10784,-0.10784,-0.1141,-0.11786,-0.11661,-0.11536,-0.11034,-0.10032,-0.10408,-0.10658,-0.10909,-0.10533 -0.23915,-0.23915,-0.21198,-0.21198,-0.2935,-0.1848,-0.10327,-0.076094,-0.10327,-0.13045,0.0054353,-0.076094,-0.076094,-0.021741,-0.10327,0.2772,0.14132,0.0054353,0.059788,0.0054353,0.22285,0.33155,0.33155,0.35873,0.33155 -0.25326,-0.21401,-0.083198,-0.017791,0.17843,-0.22709,-0.22709,-0.083198,0.060698,0.28308,-0.26634,-0.21401,-0.0047093,0.17843,0.25692,-0.12244,-0.24017,0.11302,0.23076,0.30924,-0.16169,-0.1486,0.11302,0.24384,0.29616 0.17812,0.067488,0.21961,0.21961,0.16429,0.17812,0.17812,0.21961,0.17812,0.19195,0.067488,0.13664,0.10898,0.13664,0.15046,-0.27825,-0.19527,-0.27825,-0.23676,-0.18144,-0.23676,-0.23676,-0.23676,-0.23676,-0.27825 0.39787,0.30223,0.28857,0.37055,0.4252,0.028966,0.028966,0.11095,0.11095,0.042629,-0.066677,-0.08034,-0.12133,-0.08034,-0.10767,-0.17598,-0.10767,-0.14866,-0.16232,-0.16232,-0.18965,-0.17598,-0.17598,-0.17598,-0.17598 -0.14081,-0.16723,-0.16723,0.12337,0.32811,-0.15402,-0.14081,-0.16723,0.12998,0.28849,-0.18704,-0.14081,-0.16723,0.12337,0.29509,-0.14741,-0.16723,-0.16723,0.27528,0.30169,-0.14081,-0.16723,-0.14081,0.18281,0.3149 0.2227,0.21175,-0.17949,-0.17669,-0.17949,0.22474,0.22168,-0.17694,-0.17847,-0.17439,0.22091,0.22321,-0.17669,-0.17745,-0.1749,0.22907,0.23722,-0.17745,-0.17669,-0.1772,0.22652,0.22677,0.23671,-0.17796,-0.17745 0.17841,0.1759,-0.22164,-0.22414,-0.2254,0.17967,0.17716,0.16671,-0.22498,-0.22498,0.17967,0.17298,0.16922,-0.2254,-0.22749,0.19471,0.17967,0.1688,-0.22749,-0.22623,0.18301,0.18301,0.17214,-0.22498,-0.22832 -0.19503,-0.25919,-0.19503,-0.36611,-0.3875,-0.023951,-0.045336,-0.088107,-0.2378,-0.21642,0.10436,0.040204,0.018819,-0.088107,-0.045336,0.1899,0.14713,0.23267,0.14713,0.061589,0.23267,0.29683,0.27544,0.21128,0.1899 0.25343,0.19402,0.19723,-0.17045,-0.2122,0.2165,0.19723,0.19884,-0.18009,-0.20256,0.23416,0.19884,-0.15119,-0.1833,-0.20899,0.22614,0.19884,-0.16564,-0.20578,-0.20899,0.18118,0.18921,-0.18009,-0.20738,-0.20899 0.11285,0.0098843,-0.17545,-0.23722,-0.299,0.27758,-0.010708,-0.15485,-0.17545,-0.21663,0.25699,0.13344,-0.0313,-0.0313,-0.19604,0.35995,0.21581,-0.0313,-0.11367,-0.21663,0.40114,0.25699,0.11285,-0.13426,-0.11367 -0.24143,-0.13119,-0.048506,0.14441,0.25465,-0.35167,-0.15875,0.17197,0.17197,0.17197,-0.26899,-0.21387,-0.076066,0.089294,0.14441,-0.24143,-0.13119,0.089294,0.089294,0.33733,-0.24143,-0.15875,0.061734,0.33733,0.19953 0.16634,0.15472,0.18957,0.22442,0.11987,0.11987,0.17795,0.2825,0.13149,0.13149,0.11987,0.10826,0.10826,0.038564,0.15472,-0.11244,-0.11244,-0.089209,-0.13567,-0.11244,-0.29829,-0.36799,-0.36799,-0.29829,-0.33314 -0.23458,-0.026064,0.15639,0.13032,0.18245,-0.26064,-0.10426,0.15639,0.23458,0.23458,-0.20851,-0.15639,0.026064,0.15639,0.18245,-0.44309,-0.20851,-0.026064,0.10426,0.23458,-0.3649,-0.10426,-0.052129,0.18245,0.20851 0.21765,0.12449,0.062387,-0.015244,-0.43304,0.21765,0.12449,0.041215,-0.019478,-0.43304,0.20918,0.13861,0.051096,-0.023713,-0.098521,0.20071,0.099086,0.051096,-0.037828,-0.3907,0.20495,0.10755,0.028512,-0.033593,-0.39352 -0.041234,-0.040364,-0.042973,-0.043843,-0.056022,-0.041234,-0.036014,-0.038624,-0.048193,-0.050803,-0.036884,-0.034274,-0.044713,-0.046453,-0.046453,-0.032535,-0.037754,-0.040364,-0.043843,-0.048193,0.97743,0.0214,-0.053412,-0.049063,-0.045583 0.46714,-0.057907,-0.1004,-0.10647,-0.10647,0.43983,-0.070047,-0.10647,-0.1004,-0.1004,0.39734,-0.094327,-0.10647,-0.10647,-0.10647,0.35485,-0.073082,-0.1004,-0.10647,-0.1004,0.32146,-0.082187,-0.11861,-0.11861,-0.11861 0.30951,0.4223,0.33206,0.39974,0.35462,-0.0063164,0.016242,0.038801,0.083918,-0.028875,-0.051434,-0.028875,-0.096551,-0.051434,-0.096551,-0.028875,-0.11911,-0.16423,-0.18679,-0.073993,-0.25446,-0.20934,-0.18679,-0.18679,-0.18679 -0.27191,-0.16918,-0.15205,0.22465,0.2589,-0.20342,-0.1863,-0.11781,0.31027,0.24178,-0.13493,-0.066438,-0.13493,0.2589,0.2589,-0.13493,-0.1863,-0.13493,0.24178,0.24178,-0.22055,-0.1863,-0.066438,0.10479,0.22465 0.47809,0.087897,-0.096933,-0.096933,-0.096933,0.33434,0.087897,-0.035323,-0.24069,-0.19962,0.35487,0.046824,-0.15854,-0.13801,-0.17908,0.35487,-0.035323,-0.13801,-0.22015,-0.15854,0.23165,0.087897,-0.15854,-0.05586,-0.05586 0.18721,0.19001,0.29524,0.29745,0.31793,0.29209,0.19082,0.19094,0.30664,0.098744,-0.14431,-0.14373,-0.14478,-0.14454,-0.14501,-0.14489,-0.14478,-0.14454,-0.14501,-0.14478,-0.14501,-0.14512,-0.14524,-0.2429,-0.24244 0.23546,0.23546,0.29552,0.31554,0.2755,0.17539,0.17539,0.11533,0.035238,0.19541,-0.0048052,0.035238,0.015217,-0.0048052,0.035238,-0.20502,-0.12494,-0.16498,-0.064871,-0.22504,-0.24507,-0.24507,-0.34518,-0.26509,-0.24507 0.16697,0.011889,-0.19488,-0.23365,-0.23365,0.2445,0.17989,-0.039803,-0.27242,-0.27242,0.15404,0.17989,0.011889,-0.23365,-0.24657,0.28327,0.17989,0.1282,-0.039803,-0.28534,0.27035,0.21866,0.17989,0.050658,-0.2078 0.46798,0.43523,0.39429,0.35745,0.3247,-0.056,-0.076468,-0.088749,-0.10512,-0.092842,-0.092842,-0.084655,-0.096936,-0.1174,-0.10512,-0.076468,-0.084655,-0.1215,-0.1174,-0.12968,-0.096936,-0.088749,-0.11331,-0.12968,-0.10512 0.2533,0.28809,0.2533,0.32288,0.2533,0.18371,0.18371,0.11412,0.079329,0.11412,0.079329,-0.042448,-0.025051,0.044536,-0.0076546,-0.12943,-0.094639,-0.077242,-0.16423,-0.23381,-0.3034,-0.3208,-0.23381,-0.23381,-0.3034 -0.15378,-0.15378,-0.15418,-0.15418,-0.15418,-0.15404,-0.15391,-0.15444,-0.15444,-0.15444,-0.15365,-0.15338,-0.15523,-0.15404,-0.15404,0.22823,0.22704,0.19842,0.19974,0.037752,0.41673,0.41013,0.19327,0.1971,0.2033 0.21224,0.12933,0.21224,0.32278,0.26751,0.23987,0.1846,0.074061,0.12933,0.1017,0.12933,-0.0088432,0.12933,0.074061,0.074061,-0.14702,-0.31283,-0.20229,-0.11938,-0.20229,-0.25756,-0.25756,-0.22992,-0.25756,-0.28519 0.16297,0.15433,0.15433,0.15433,0.15433,0.14568,0.14568,0.13704,0.13704,0.14136,0.14136,0.1284,0.1284,0.14136,0.14568,-0.063856,-0.072497,-0.076817,-0.070337,-0.074657,-0.35981,-0.36413,-0.36629,-0.35981,-0.36413 0.35923,0.30395,0.24866,0.18388,0.10614,0.35059,0.28581,0.22966,0.18215,0.10269,-0.15213,-0.15299,-0.13831,-0.13572,-0.14176,-0.16163,-0.16249,-0.16077,-0.16854,-0.15818,-0.16249,-0.16336,-0.16163,-0.16336,-0.1694 0.32793,0.022992,-0.13439,-0.16305,-0.1314,0.33948,0.020426,-0.13953,-0.15706,-0.12712,0.34033,0.02342,-0.14509,-0.14936,-0.13097,0.34589,0.022992,-0.16134,-0.14466,-0.11729,0.35102,0.33392,-0.16048,-0.14509,-0.12156 0.22577,0.085166,-0.095611,-0.29647,-0.27639,0.20568,0.10525,0.085166,-0.21613,-0.37682,0.14542,0.12534,0.085166,-0.075525,-0.37682,0.26594,0.10525,0.12534,-0.015266,-0.29647,0.22577,0.22577,0.10525,0.06508,-0.15587 0.24017,0.23263,0.21377,0.21377,0.17983,0.27034,0.27412,0.29674,0.25149,0.25526,-0.15961,-0.14453,-0.17093,-0.16338,-0.16338,-0.19733,-0.18978,-0.17847,-0.18224,-0.18601,-0.12944,-0.12944,-0.14453,-0.1483,-0.14075 0.22502,0.30388,0.27759,0.29073,0.31702,0.13301,0.10673,0.10673,0.13301,0.10673,0.041008,-0.02471,-0.011566,0.054151,0.027864,-0.143,-0.10357,-0.050997,-0.18243,-0.143,-0.27444,-0.26129,-0.31387,-0.32701,-0.28758 -0.24712,-0.17905,0.025189,0.11029,0.34856,-0.23011,-0.21309,-0.0088502,0.042209,0.28048,-0.17905,-0.02587,-0.076929,0.076248,0.36558,-0.19607,-0.093948,-0.02587,-0.02587,0.3826,-0.24712,-0.093948,-0.12799,-0.02587,0.36558 0.25544,0.14876,-0.0028449,-0.049636,-0.41461,0.20491,0.15063,0.012128,-0.044021,-0.45204,0.21614,0.17122,0.0046417,-0.036534,-0.27049,0.15999,0.1525,0.028973,-0.044021,-0.085197,0.21988,0.11881,0.019615,-0.023433,-0.44081 0.39657,0.29253,-0.1175,-0.12974,-0.1175,0.37209,-0.019584,-0.12362,-0.16646,-0.093022,0.35985,-0.068543,-0.099142,-0.12974,-0.1175,0.34761,-0.056303,-0.13586,-0.13586,-0.12362,0.33537,-0.068543,-0.1175,-0.13586,-0.1481 0.42445,-0.095783,-0.11244,-0.10995,-0.11244,0.41279,-0.088703,-0.11161,-0.11286,-0.11119,0.36406,0.053748,-0.10661,-0.11411,-0.11203,0.3753,-0.089952,-0.10953,-0.11244,-0.11119,0.39446,-0.080372,-0.11119,-0.11203,-0.11036 0.17282,0.16884,0.17149,-0.24969,-0.24042,0.17547,0.17547,0.17149,-0.19406,-0.18876,0.17679,0.17282,-0.17552,-0.22585,-0.2828,0.17414,0.18076,0.17414,-0.19671,-0.24969,0.18871,0.18076,0.18474,-0.2338,-0.23115 0.12479,0.14072,0.091229,-0.14771,-0.13974,0.14869,0.15153,0.092935,-0.14088,-0.24556,0.15495,0.27385,0.1083,-0.14031,-0.25125,0.26702,0.27555,-0.13918,-0.24954,-0.26035,0.26417,0.26929,-0.14145,-0.25808,-0.24897 -0.25537,-0.23379,-0.23379,-0.24304,-0.24304,-0.20296,-0.23379,-0.23379,-0.18138,-0.14131,0.21011,0.22553,0.025155,-0.076574,-0.073491,0.23169,0.23478,0.20087,0.086808,0.062147,0.25019,0.24094,0.23169,0.18237,0.17004 0.30659,0.18126,0.14269,0.18126,0.30659,0.15233,0.17161,0.22946,0.17161,0.2391,-0.069417,0.094484,0.017354,0.017354,0.055919,-0.079058,-0.21404,-0.20439,-0.20439,-0.20439,-0.32009,-0.22368,-0.2526,-0.2526,-0.24296 0.46433,0.22642,0.20788,0.22024,0.15226,0.21097,0.19552,0.22951,0.20788,0.18316,0.034853,-0.15053,-0.06711,-0.19688,-0.15053,-0.15671,-0.14744,-0.16289,-0.19688,-0.19688,-0.19688,-0.17525,-0.15362,-0.18452,-0.19688 -0.19594,-0.084609,-0.056777,0.24937,0.22154,-0.1681,-0.19594,0.082383,0.082383,0.30504,-0.44642,-0.11244,-0.084609,0.082383,0.19371,-0.19594,-0.028945,-0.084609,0.22154,0.27721,-0.30726,-0.19594,-0.0011133,0.22154,0.22154 0.23074,0.23074,0.27534,-0.27474,-0.28961,0.24561,0.21587,0.067199,-0.23014,-0.20041,0.18614,0.24561,-0.096339,-0.12607,-0.21528,0.23074,0.17127,-0.096339,-0.15581,-0.18554,0.18614,0.096934,-0.14094,-0.14094,-0.23014 0.38891,-0.074161,-0.13637,-0.11563,-0.11909,0.38546,-0.063794,-0.11736,-0.096624,-0.068977,0.40965,-0.084528,-0.084528,-0.087984,-0.079345,0.4131,-0.084528,-0.12427,-0.11217,-0.11045,0.39237,-0.068977,-0.13291,-0.12081,-0.10699 -0.20112,-0.11473,-0.20112,-0.11473,-0.18384,-0.11473,-0.18384,-0.16656,-0.14928,-0.18384,-0.045614,-0.097448,-0.132,-0.11473,-0.11473,0.10989,0.058054,0.075332,0.075332,0.040776,0.49,0.3345,0.28267,0.3345,0.31722 -0.19357,-0.19673,-0.19673,-0.17459,-0.17249,-0.16827,-0.20094,-0.18619,-0.15246,-0.16827,-0.16194,-0.15984,-0.15457,-0.17249,0.1743,0.25335,0.18062,0.17535,0.23754,0.23965,0.24387,0.17535,0.24914,0.25862,0.27127 0.15551,0.15619,0.15585,0.15585,0.155,0.16334,0.16437,0.16437,0.16266,0.16334,0.17084,0.17101,0.17033,0.17033,0.16981,-0.24457,-0.24526,-0.24423,-0.2456,-0.24457,-0.24526,-0.24492,-0.24526,-0.24457,-0.24457 0.19638,0.2158,0.19197,0.10636,-0.28195,0.13902,0.14784,0.13107,-0.26783,-0.29254,0.12578,0.14078,0.10725,-0.25195,-0.26077,0.13725,0.13813,0.11342,-0.25548,-0.24312,0.14255,0.17079,0.17432,-0.25901,-0.26607 0.18071,0.18232,0.18117,0.14676,0.12978,0.17934,0.17865,0.17452,0.14997,0.12656,0.17635,0.17635,0.17796,0.15364,0.1167,-0.18594,-0.2557,-0.25661,-0.25914,-0.25845,-0.18847,-0.24927,-0.25661,-0.26006,-0.26052 0.26944,0.24826,-0.11478,-0.17529,-0.12689,0.25734,0.24978,-0.11781,-0.17832,-0.16773,0.24826,0.23465,-0.10873,-0.17983,-0.17378,0.27095,-0.12537,-0.15714,-0.14958,-0.17983,0.30423,0.29818,-0.11478,-0.13747,-0.17378 0.21577,0.19557,0.22587,0.13496,0.02384,0.19557,0.16526,0.16526,0.10465,0.18547,0.11475,0.15516,0.20567,0.10465,0.14506,-0.11758,-0.12768,-0.26911,-0.1984,-0.17819,-0.30951,-0.26911,-0.2489,-0.31962,-0.29941 0.093863,0.081293,0.065824,0.06389,-0.37313,0.10837,0.093863,0.06389,0.078393,-0.40214,0.1248,0.093863,0.090962,0.12093,-0.40407,0.1161,0.1277,0.1364,0.1016,-0.39827,0.1103,0.10933,0.12867,0.07936,-0.4118 -0.26394,-0.35423,-0.36465,-0.36465,-0.32298,-0.034729,-0.10071,-0.22921,-0.15975,0.013891,0.10419,0.11113,0.093767,0.093767,0.1146,0.18059,0.1667,0.13891,0.13544,0.1146,0.25699,0.20143,0.15975,0.15628,0.15281 0.18505,0.1859,0.1842,-0.21256,-0.21425,0.18843,0.1897,0.18801,-0.21933,-0.22356,0.19097,0.18716,-0.20325,-0.2261,-0.2299,0.18801,0.18928,0.17955,-0.22821,-0.2316,0.1859,0.18209,0.026851,-0.22779,-0.23456 -0.15637,-0.15637,-0.089353,0.24572,0.26806,-0.24572,-0.15637,-0.067015,0.2904,0.20105,-0.15637,-0.15637,-0.11169,0.33508,0.17871,-0.17871,-0.22338,-0.20105,0.20105,0.26806,-0.22338,-0.17871,-0.044677,0.11169,0.24572 0.12809,0.12809,0.13324,0.092054,-0.34042,0.14354,0.14354,0.15898,0.086906,-0.34556,0.12294,0.14354,0.15898,-0.10359,-0.34556,0.13839,0.15384,0.15898,-0.19111,-0.33012,0.10235,0.12294,0.12809,-0.21685,-0.37131 0.21102,0.2073,0.17776,0.14346,0.11495,0.20999,0.20813,0.16433,0.14346,0.11516,0.20813,0.20524,0.16082,0.13913,-0.026776,-0.2373,-0.23792,-0.23792,-0.23834,-0.23834,-0.2373,-0.23813,-0.23854,-0.23958,-0.23875 -0.26745,-0.22582,0.17029,0.16435,0.16553,-0.2734,-0.20679,0.16553,0.16435,0.16078,-0.27816,-0.20322,0.16078,0.16078,0.16078,-0.28054,-0.21868,0.16316,0.16316,0.1584,-0.27578,-0.20679,0.16078,0.15959,0.1584 0.16106,0.1351,0.13663,0.11373,-0.40238,0.1519,0.098458,0.070973,0.078607,-0.40085,0.10304,0.10304,0.069446,0.064865,-0.39933,0.10304,0.10151,0.074027,0.069446,-0.39169,0.093877,0.10151,0.080134,0.074027,-0.39017 -0.15645,-0.15645,-0.15752,-0.15805,-0.15912,-0.15725,-0.15672,-0.15645,-0.15698,-0.15778,-0.15672,-0.15592,-0.15672,-0.15672,-0.15778,0.12647,0.1246,0.30352,0.29286,0.30806,0.14567,0.12513,0.30406,0.31046,0.31579 0.1567,0.15808,0.1567,0.1567,0.15532,0.1636,0.16406,0.16406,0.16084,0.1613,0.17141,0.17141,0.16865,0.17095,0.16911,-0.24636,-0.24452,-0.24406,-0.24452,-0.24452,-0.24452,-0.24636,-0.24452,-0.2459,-0.2436 0.25279,0.2584,0.28122,0.21768,0.086739,0.25173,0.25946,0.3746,0.24401,0.11026,-0.11898,-0.12705,-0.10494,-0.10599,-0.11055,-0.13548,-0.13864,-0.15619,-0.13829,-0.12705,-0.21341,-0.21341,-0.21201,-0.21657,-0.21833 0.33933,0.3878,0.25854,0.24238,0.22622,0.1939,0.11311,0.096951,0.096951,0.048475,0,0,0.048475,0,0,-0.12927,-0.11311,-0.096951,-0.14543,-0.16158,-0.29085,-0.24238,-0.27469,-0.29085,-0.30701 0.39707,0.40167,0.38786,0.41088,0.39707,-0.072562,-0.090979,-0.072562,-0.10019,-0.067958,-0.114,-0.10019,-0.081771,-0.10019,-0.10019,-0.10019,-0.12781,-0.10019,-0.10019,-0.10019,-0.12781,-0.114,-0.10019,-0.114,-0.1094 0.15914,0.12821,0.14058,0.15914,0.15296,0.14058,0.14058,0.15914,0.14058,0.14058,0.14058,0.10346,0.13439,0.15296,0.15296,-0.069796,-0.082171,-0.069796,-0.045046,-0.051233,-0.37299,-0.37299,-0.34205,-0.3668,-0.37299 0.25418,0.22748,0.20078,0.067284,-0.22642,0.22748,0.13403,0.080634,0.080634,-0.30652,0.20078,0.093984,0.067284,-0.10627,-0.33322,0.18743,0.080634,0.053934,-0.21307,-0.41332,0.12068,0.067284,-0.012816,-0.18637,-0.34657 0.20834,0.20834,0.26557,0.23695,0.20834,0.1511,0.32281,0.26557,0.23695,0.1511,-0.049222,-0.049222,0.065248,-0.10646,-0.16369,-0.16369,-0.19231,-0.16369,-0.13508,-0.16369,-0.22093,-0.24955,-0.10646,-0.3354,-0.22093 -0.0064858,0.030632,-0.061185,-0.10416,-0.18231,0.30608,0.030632,-0.078767,-0.1237,-0.27217,0.30218,0.29631,-0.065092,-0.10612,-0.24091,0.29436,0.28264,-0.078767,-0.12175,-0.24873,0.30218,0.29241,-0.076814,-0.1237,-0.24677 -0.28135,-0.19,-0.30419,-0.3727,-0.34986,-0.075819,-0.075819,-0.14433,-0.12149,-0.28135,0.10688,0.12971,0.15255,-0.030145,0.08404,0.19823,0.19823,0.12971,0.19823,0.08404,0.22106,0.26674,0.2439,0.12971,0.08404 -0.24025,-0.24086,-0.24209,-0.24392,-0.24453,-0.22378,-0.23049,-0.23354,-0.23598,-0.23781,0.065402,0.10872,0.15387,0.1923,0.25575,0.076384,0.1075,0.15997,0.20206,0.25087,0.071503,0.11787,0.15692,0.20816,0.24599 -0.12861,-0.10356,-0.12861,-0.12861,-0.078503,-0.11191,-0.12026,-0.11191,-0.13696,-0.078503,-0.13696,-0.12861,-0.13696,-0.078503,-0.095205,-0.10356,-0.020043,-0.095205,-0.045097,-0.0033405,0.38082,0.38917,0.38917,0.39752,0.41423 0.095143,0.077393,0.077393,-0.13561,-0.40187,0.077393,0.1839,0.059642,-0.18887,-0.31312,0.095143,0.14839,0.095143,-0.064612,-0.27762,0.2194,0.30815,0.16615,-0.082363,-0.22437,0.2904,0.2549,-0.01136,-0.11786,-0.33087 0.12466,0.15933,-0.095924,-0.16525,-0.12744,0.2129,0.17823,-0.13374,-0.19676,-0.1747,0.20975,0.24126,-0.15895,-0.20937,-0.16525,0.26647,0.32949,-0.17155,-0.19361,-0.13374,0.30428,0.33895,-0.19991,-0.15895,-0.080167 -0.10807,-0.10688,-0.11046,-0.11046,-0.11046,-0.10807,-0.10688,-0.11046,-0.11046,-0.11165,-0.11046,-0.1033,-0.11285,-0.11285,-0.11046,-0.067498,-0.068692,-0.068692,-0.067498,-0.077046,0.40628,0.41463,0.37883,0.39673,0.39673 0.40652,0.18829,0.032422,-0.1858,-0.24815,0.31299,0.094771,0.001247,-0.15463,-0.1858,0.21947,0.18829,0.15712,-0.092277,-0.34167,0.001247,0.18829,0.094771,-0.12345,-0.34167,0.21947,-0.029928,-0.029928,-0.12345,-0.24815 0.24031,0.19585,0.15138,0.11185,0.092093,0.24031,0.17114,0.15632,0.11185,0.057508,0.23043,0.21561,0.15632,0.10691,0.06739,-0.066006,-0.16976,-0.1747,-0.19446,-0.20434,-0.26857,-0.30315,-0.29327,-0.32786,-0.30315 0.15127,0.15493,0.15615,0.16347,0.19154,0.15127,0.15249,0.14883,0.15981,0.19032,0.16103,0.15737,0.15249,0.14639,0.20618,-0.23922,-0.23312,-0.24166,-0.24655,-0.24777,-0.238,-0.24655,-0.24899,-0.24899,-0.25265 -0.047867,-0.043128,-0.047867,-0.047867,-0.043128,-0.057346,-0.047867,-0.062085,-0.062085,-0.062085,-0.052607,-0.052607,-0.054976,-0.047867,-0.054976,0.025592,0.023223,-0.066825,-0.0028436,-0.0052133,0.97109,-0.0052133,-0.083412,-0.043128,-0.02891 -0.20636,-0.046803,0.21026,0.19253,0.27231,-0.23295,-0.14431,0.13048,0.25458,0.21026,-0.25068,-0.14431,0.041839,0.18366,0.19253,-0.30386,-0.25068,-0.055667,0.16594,0.21026,-0.295,-0.25954,-0.13544,0.077295,0.18366 -0.15978,-0.16025,-0.16089,0.28811,0.23812,-0.1612,-0.15962,-0.15298,0.28574,0.23559,-0.16769,-0.16041,-0.16041,0.23654,0.23401,-0.17307,-0.17196,-0.15994,0.23132,0.2348,-0.17433,-0.16105,-0.15962,0.22878,0.23021 0.026394,0.061998,-0.19198,-0.21809,-0.22283,0.26613,0.13083,-0.12552,-0.23233,-0.21571,0.31122,0.23527,0.040636,-0.12789,-0.17536,0.24239,0.24239,0.024021,-0.16824,-0.13976,0.31122,0.34683,-0.044813,-0.18011,-0.19672 0.34234,0.11065,-0.1314,-0.25935,-0.25935,0.32159,0.24206,-0.089907,-0.082991,-0.26972,0.15561,-0.065701,-0.089907,-0.044953,-0.2386,0.19365,0.096823,0.065701,0,-0.21439,0.29738,0.2386,0.1314,-0.14523,-0.3043 -0.16343,-0.13035,-0.16343,-0.17997,-0.16343,-0.11381,-0.14689,-0.17997,-0.11381,-0.080723,-0.17997,-0.13035,-0.14689,-0.080723,-0.16343,0.035068,0.084693,0.11778,0.001985,0.10123,0.34936,0.39898,0.34936,0.34936,0.34936 0.22414,0.20878,0.19246,-0.14494,-0.14926,0.22846,0.21166,-0.1567,-0.15958,-0.14566,0.23086,0.2167,-0.15646,-0.16102,-0.15262,0.23158,0.21478,-0.15718,-0.15358,-0.16102,0.23326,0.2191,-0.15718,-0.16054,-0.39596 0.44226,-0.02861,-0.0017881,-0.043511,-0.079273,0.38564,-0.043511,-0.10609,-0.10907,-0.088213,0.32901,-0.070332,-0.11802,-0.14186,-0.13292,0.4065,-0.094174,-0.12696,-0.13888,-0.11802,0.39458,-0.082253,-0.1508,-0.14782,-0.1359 -0.26151,-0.0062073,0.14897,0.16399,0.15899,-0.30155,-0.13636,0.15398,0.16399,0.174,-0.3416,-0.11634,0.14397,0.15899,0.16399,-0.30155,-0.22646,0.11393,0.169,0.169,-0.31156,-0.30155,0.088904,0.16399,0.169 -0.22328,-0.19523,-0.19523,-0.13913,-0.11108,-0.083028,-0.13913,-0.13913,-0.083028,-0.11108,-0.054978,-0.11108,-0.054978,-0.22328,-0.11108,0.001122,0.029172,0.057222,-0.026928,0.085272,0.39382,0.39382,0.39382,0.25357,0.39382 0.15691,0.22522,0.26425,0.3228,0.30328,0.13739,0.12764,0.13739,0.16667,0.26425,-0.067526,0.00078065,-0.028494,0.05933,0.020297,-0.096801,-0.16511,-0.15535,-0.18462,-0.10656,-0.331,-0.32124,-0.25293,-0.26269,-0.2139 0.28299,0.23352,0.28299,0.28299,0.13457,0.10983,0.15931,0.13457,0.13457,0.15931,0.010884,0.010884,0.060359,0.10983,0.035622,-0.13754,-0.13754,-0.1128,-0.13754,-0.063328,-0.33544,-0.26123,-0.23649,-0.33544,-0.38491 -0.15674,-0.14332,-0.076221,0.017713,0.38898,-0.18358,-0.14779,-0.11648,-0.004652,0.36661,-0.17016,-0.15674,-0.10753,-0.0091251,0.37109,-0.15674,-0.13437,-0.10753,0.10717,0.37109,-0.16121,-0.12543,-0.098587,0.07139,0.36214 -0.26342,-0.26342,-0.061234,0.11207,0.14095,-0.37896,-0.061234,0.14095,0.083186,0.31426,-0.23454,-0.20565,0.083186,0.16984,0.28537,-0.32119,-0.03235,0.14095,0.19872,0.16984,-0.26342,-0.119,0.054302,0.083186,0.22761 0.40319,-0.068714,-0.097489,-0.10468,-0.10324,0.40751,-0.085979,-0.10324,-0.096051,-0.10468,0.40032,-0.077347,-0.098928,-0.10468,-0.109,0.39168,-0.11044,-0.10468,-0.10468,-0.10181,0.39456,-0.088857,-0.10612,-0.11044,-0.11619 0.17723,0.16254,0.15303,-0.25564,-0.29107,0.17982,0.15735,0.14958,-0.25996,-0.28156,0.16945,0.15649,0.14007,-0.2591,-0.27811,0.13921,0.14266,0.13921,-0.25737,-0.25737,0.12366,0.13662,0.13575,0.13057,-0.25305 0.18634,0.10485,0.0097788,-0.49398,-0.2705,0.21227,0.12584,-0.0050376,-0.081589,-0.31865,0.25425,0.14189,0.0060747,-0.07418,-0.32729,0.22708,0.1777,0.011013,-0.10134,-0.1495,0.30364,0.18881,0.069044,-0.061833,-0.13468 0.093392,0.097191,0.10613,0.093616,-0.39524,0.0887,0.090041,0.10412,0.08736,-0.3977,0.1001,0.10211,0.096967,0.08736,-0.40083,0.11886,0.10412,0.10188,0.090711,-0.40194,0.12892,0.10814,0.1097,0.088254,-0.40194 -0.018898,0.014664,-0.067949,-0.040842,-0.067949,-0.0021169,-0.051168,-0.080857,-0.06924,-0.067949,0.012082,-0.0034078,-0.088602,-0.071821,-0.052459,-0.008571,-0.0072802,-0.071821,-0.074403,-0.05375,0.966,0.030154,-0.018898,-0.03826,-0.066658 -0.32365,-0.39401,-0.32365,-0.27675,-0.27675,-0.065669,0.028144,-0.11258,-0.089122,-0.22984,0.051597,0.028144,0.07505,0.07505,0.07505,0.14541,0.12196,0.07505,0.098504,0.07505,0.26268,0.30958,0.30958,0.16886,0.19232 -0.10549,-0.1037,-0.11623,-0.11086,-0.10549,-0.11444,-0.11086,-0.1037,-0.11086,-0.11086,-0.10549,-0.1037,-0.1037,-0.1037,-0.11086,-0.076865,-0.073287,-0.075076,-0.076865,-0.073287,0.4098,0.40086,0.40444,0.39191,0.38833 -0.045258,-0.042433,-0.036783,-0.054205,-0.0462,-0.047613,-0.042904,-0.037725,-0.045258,-0.04055,-0.041963,-0.033958,-0.041492,-0.040079,-0.048554,-0.015124,-0.024541,-0.045258,-0.045729,-0.049025,0.97885,-0.024541,-0.052792,-0.033958,-0.042904 0.2951,-0.0053412,0.061423,-0.17225,-0.23902,0.32848,0.26172,-0.072106,-0.072106,-0.13887,0.22834,0.12819,-0.038724,-0.17225,-0.17225,0.26172,0.061423,-0.072106,-0.23902,-0.47269,0.19495,0.16157,0.061423,0.061423,-0.23902 0.36504,0.44225,0.39593,0.36504,0.24151,0.025325,0.040766,-0.021001,0.056208,0.13342,-0.082768,-0.082768,-0.14454,-0.12909,-0.17542,-0.17542,-0.17542,-0.2063,-0.17542,-0.09821,-0.12909,-0.12909,-0.12909,-0.11365,-0.09821 0.31654,0.33928,0.43024,0.33928,0.47572,-0.092779,-0.092779,-0.047299,0.089141,0.020921,-0.161,-0.161,-0.092779,-0.024559,-0.092779,-0.13826,-0.092779,-0.11552,-0.13826,-0.13826,-0.13826,-0.13826,-0.070039,-0.13826,-0.13826 -0.05387,-0.04473,-0.035589,-0.055176,-0.054306,-0.057353,-0.046035,-0.042988,-0.054741,-0.047341,0.031009,-0.046906,-0.046906,-0.051259,-0.041683,0.030139,0.037103,-0.057353,-0.054306,-0.050388,0.97035,-0.059094,-0.059094,-0.055612,-0.05387 0.20172,0.20634,0.1971,0.21557,0.20634,0.12783,0.12783,0.12783,0.13706,0.13706,0.040085,0.044703,0.058557,0.072412,0.049321,-0.01995,-0.0014778,-0.033804,-0.024568,-0.01995,-0.35245,-0.37554,-0.37554,-0.36631,-0.38016 -0.30746,-0.35846,-0.37887,-0.39417,-0.40947,0.024074,0.0087729,-0.0065287,-0.083036,-0.052433,0.085281,0.085281,0.059778,0.029175,0.039376,0.15669,0.17709,0.17199,0.18219,0.12098,0.17199,0.19239,0.18219,0.16689,0.13629 -0.11114,-0.10861,-0.11114,-0.10861,-0.10861,-0.11114,-0.11114,-0.10607,-0.10861,-0.10861,-0.11114,-0.10481,-0.10354,-0.10861,-0.10481,-0.075695,-0.069366,-0.073163,-0.078226,-0.069366,0.43189,0.42176,0.38632,0.3762,0.3762 -0.16878,-0.10709,-0.082416,0.028624,0.37408,-0.19346,-0.15644,-0.033065,0.016286,0.3494,-0.16878,-0.18112,-0.082416,0.028624,0.32473,-0.19346,-0.15644,-0.070078,0.0039481,0.43577,-0.16878,-0.10709,-0.082416,0.0039481,0.38642 0.37829,0.30909,-0.036906,-0.15224,-0.1407,0.36675,0.23989,-0.10611,-0.15224,-0.15224,0.38982,0.032293,-0.094572,-0.15224,-0.15224,0.25142,-0.071506,-0.094572,-0.16377,-0.15224,0.21682,-0.083039,-0.15224,-0.1407,-0.18684 -0.15601,-0.15888,-0.1725,0.25982,0.25982,-0.15672,-0.16605,-0.17537,0.25122,0.24978,-0.15601,-0.15601,-0.17895,0.24405,0.24405,-0.16318,-0.15744,-0.16605,0.23975,0.23903,-0.15744,-0.15171,-0.17465,0.22899,0.23043 -0.39833,-0.26879,-0.36595,-0.36595,-0.33356,-0.0421,-0.15545,-0.13925,-0.058292,-0.074485,0.071246,0.15221,0.15221,0.1684,0.11982,0.15221,0.13602,0.15221,0.11982,0.1684,0.18459,0.15221,0.1684,0.18459,0.11982 -0.22673,-0.059195,0.080416,0.10834,0.35964,-0.22673,-0.14296,-0.031273,0.24795,0.16418,-0.39426,-0.031273,-0.0033506,-0.031273,0.33171,-0.31049,-0.17088,-0.059195,0.024571,0.27587,-0.22673,-0.11504,-0.0033506,0.1921,0.24795 -0.0075094,-0.048552,-0.057673,-0.071354,-0.083515,0.0046515,-0.032591,-0.037152,-0.041712,-0.087315,-0.0097895,-0.029551,-0.050072,-0.056153,-0.060713,-0.01587,-0.02195,-0.051593,-0.045512,-0.039432,0.97372,-0.02043,-0.01967,-0.042472,-0.047792 -0.28124,-0.20369,-0.28124,-0.10029,-0.22954,-0.30708,-0.15199,-0.17784,-0.17784,-0.12614,-0.12614,0.0031019,-0.048596,0.028951,-0.022747,0.18404,0.26159,0.18404,0.13235,0.28744,0.26159,0.18404,0.18404,0.18404,0.33914 0.39402,0.39914,0.39914,0.39786,0.40362,-0.081605,-0.080965,-0.083525,-0.080965,-0.081605,-0.10337,-0.091207,-0.095048,-0.098888,-0.084165,-0.079044,-0.10401,-0.11425,-0.12513,-0.087366,-0.10529,-0.10977,-0.12961,-0.12705,-0.1309 0.36452,0.39132,0.33772,0.44493,0.33772,0.042885,-0.064327,-0.037524,0.016082,-0.037524,0.016082,-0.064327,-0.11793,-0.037524,-0.037524,-0.17154,-0.064327,-0.19834,-0.11793,-0.11793,-0.17154,-0.17154,-0.17154,-0.17154,-0.19834 0.13427,0.14861,0.24902,0.19165,0.23468,0.16296,0.14861,0.10558,0.19165,0.19165,0.062543,0.14861,0.033854,0.019509,0.26337,-0.19566,-0.13828,-0.22435,-0.22435,-0.06656,-0.28173,-0.28173,-0.29608,-0.29608,-0.28173 -0.24211,-0.24269,-0.24297,-0.24413,-0.24326,-0.24326,-0.24153,-0.24297,-0.24182,-0.23634,0.23462,0.13714,0.16858,0.26923,0.1706,0.1406,0.1308,0.16108,0.16367,0.15012,0.12676,0.12532,0.13195,0.14204,0.16858 0.35399,0.19782,-0.11453,-0.06247,-0.14056,0.27591,0.093704,-0.24467,-0.14056,-0.24467,0.43208,0.14576,-0.14056,-0.06247,-0.14056,0.32796,0.14576,-0.14056,-0.06247,-0.14056,0.22385,-0.036441,-0.14056,-0.14056,-0.24467 -0.00074962,0.064842,0.17728,-0.19565,-0.27249,0.15105,0.18103,0.16604,-0.23313,-0.2425,0.1979,0.17541,0.1979,-0.22938,-0.235,0.17354,0.18478,0.17728,-0.26686,-0.24625,0.14917,0.19602,0.19977,-0.235,-0.235 -0.16088,-0.15962,-0.1592,-0.16088,-0.1592,-0.16213,-0.15878,-0.16004,-0.16004,-0.1592,-0.16088,-0.1571,-0.1592,-0.15962,-0.1571,0.30935,0.25944,0.29257,0.26447,0.11346,0.25692,0.25021,0.27663,0.26489,0.10591 -0.1537,-0.17486,0.029613,0.29754,0.30459,-0.1537,-0.14665,-0.083198,0.22703,0.32574,-0.19601,-0.16781,-0.1537,0.14242,0.33984,-0.14665,-0.17486,-0.13255,0.029613,0.30459,-0.21011,-0.16781,-0.17486,-0.012691,0.24818 -0.16354,-0.15734,-0.17206,0.26931,0.26389,-0.15889,-0.15657,-0.16431,0.26931,0.24066,-0.15967,-0.15967,-0.16819,0.24144,0.23215,-0.16586,-0.16277,-0.17051,0.23524,0.2306,-0.15889,-0.15889,-0.16896,0.23215,0.23137 0.45368,0.04322,-0.021675,-0.11253,-0.22772,0.43746,0.082158,0.0026607,-0.10604,-0.26341,0.44719,0.12272,0.01564,-0.12551,-0.24232,0.061067,0.065934,-0.037899,-0.15147,-0.23745,0.061067,0.067556,-0.010318,-0.094682,-0.22934 0.13432,0.13751,0.13207,-0.24008,-0.24158,0.13357,0.13619,0.13226,-0.24046,-0.24177,0.13245,0.13114,0.28217,-0.23971,-0.24046,0.1287,0.13263,0.22652,-0.24008,-0.24065,0.12514,0.22633,0.2149,-0.24027,-0.24083 -0.23913,-0.31911,-0.41908,-0.27912,-0.10917,-0.059183,-0.15915,-0.18914,-0.22913,-0.049186,0.080776,-0.0091973,-0.089174,0.020794,0.050785,0.18075,0.12076,0.090773,0.19074,0.17075,0.28072,0.25073,0.17075,0.27072,0.27072 0.17507,0.08072,-0.018211,-0.063096,-0.28569,0.6166,0.088048,-0.011798,-0.06218,-0.28477,0.21721,0.066064,-0.027371,-0.072256,-0.30401,0.15858,0.096293,-0.0053862,-0.067676,-0.28386,0.19064,0.10179,0.033087,-0.047523,-0.29027 0.15207,0.15009,0.15455,0.15852,-0.25924,0.15282,0.17564,0.14736,-0.24981,-0.29521,0.14984,0.14736,0.14686,-0.24833,-0.24684,0.14364,0.14413,0.14463,-0.24783,-0.29224,0.1424,0.1424,0.14215,-0.26271,-0.29224 -0.023077,-0.067927,-0.047541,-0.045502,-0.049579,-0.002691,-0.035309,-0.043464,-0.059773,-0.055695,-0.031232,-0.061811,-0.069966,-0.045502,-0.051618,0.019734,-0.043464,-0.065888,-0.041425,-0.037348,0.97177,-0.041425,-0.072004,0.038082,-0.037348 0.16767,0.14876,0.11724,0.12985,0.12355,0.17397,0.15506,0.12985,0.11724,0.10464,0.15506,0.12985,0.11724,0.10464,0.11094,-0.021432,-0.059252,-0.015128,0.010085,0.003782,-0.37442,-0.36182,-0.38073,-0.40594,-0.38073 -0.15836,-0.15777,-0.15796,-0.15836,-0.15836,-0.15816,-0.15816,-0.15875,-0.15875,-0.15796,-0.15915,-0.15954,-0.15737,-0.15855,-0.15737,0.26109,0.30638,0.30559,0.14549,0.14097,0.31052,0.30717,0.30835,0.14549,0.14353 0.26099,-0.15515,-0.12612,-0.13193,-0.17451,0.25905,0.27647,-0.13193,-0.13967,-0.18999,0.25518,0.27841,-0.13773,-0.13386,-0.18999,0.25518,0.26873,-0.11063,-0.1358,-0.18999,0.26486,0.26679,-0.11644,-0.13773,-0.18418 0.35304,0.33777,0.39885,0.35304,0.33777,0.062913,0.0018324,0.047643,0.0018324,0.10872,0.0018324,-0.059248,-0.12033,-0.074518,-0.013438,-0.089788,-0.1356,-0.12033,-0.18141,-0.19668,-0.21195,-0.24249,-0.18141,-0.21195,-0.16614 0.17617,0.15851,0.16911,0.1472,0.13731,0.16345,0.17759,0.14508,0.15356,0.16416,0.16628,0.22493,0.14791,0.14649,0.16416,-0.24002,-0.24073,-0.24568,-0.24356,-0.24144,-0.24709,-0.24426,-0.24779,-0.24497,-0.24638 0.11062,0.22173,0.16,0.18469,0.22173,0.18469,0.12296,0.23407,0.28346,0.14765,0.07358,-0.01284,0.061235,0.16,0.16,-0.17333,-0.2721,-0.22272,-0.17333,-0.17333,-0.22272,-0.18568,-0.30914,-0.2721,-0.30914 -0.20113,-0.13497,-0.20113,-0.15151,-0.20113,-0.21767,-0.11843,-0.068806,-0.11843,-0.11843,-0.068806,-0.11843,-0.13497,-0.15151,-0.15151,0.046974,0.12967,0.046974,0.11313,0.063514,0.31161,0.37777,0.37777,0.37777,0.31161 0.36051,0.38479,0.39693,0.40908,0.44247,-0.073583,-0.085725,-0.085725,-0.088761,-0.091796,-0.088761,-0.1009,-0.1009,-0.11305,-0.097868,-0.1009,-0.10697,-0.11001,-0.097868,-0.11001,-0.1009,-0.1009,-0.12215,-0.10394,-0.11305 0.15217,0.14518,0.19508,0.14219,-0.26597,0.14319,0.1362,0.16714,-0.251,-0.27096,0.14119,0.1362,0.15815,-0.254,-0.27096,0.14718,0.14718,0.14618,-0.25699,-0.27994,0.14119,0.15017,0.14618,-0.25699,-0.28793 0.2856,-0.1448,-0.14741,-0.15127,-0.15502,0.27742,0.2631,-0.14707,-0.15048,-0.15434,0.27185,0.2606,-0.14661,-0.14934,-0.15321,0.26151,0.25742,-0.14605,-0.14968,-0.15423,0.26333,0.2581,-0.14696,-0.14923,-0.15321 0.25932,0.25932,0.03881,-0.11555,-0.071445,0.19317,0.32547,-0.071445,-0.24785,-0.1376,0.19317,0.19317,-0.1376,-0.2258,-0.11555,0.25932,0.12701,-0.15965,-0.29196,-0.2258,0.28137,0.19317,-0.1817,-0.2258,-0.11555 -0.22662,-0.19545,0.21758,0.17862,0.21758,-0.22662,-0.20324,0.12407,0.202,0.1942,-0.23442,-0.22662,0.077307,0.21758,0.18641,-0.23442,-0.21883,-0.055175,0.20979,0.18641,-0.21883,-0.25,-0.1409,0.20979,0.20979 0.20235,0.20849,0.19007,0.018172,-0.080054,0.22076,0.20849,0.11026,-0.14758,-0.21512,0.20235,0.20849,0.061146,-0.1967,-0.27651,0.20235,0.17165,-0.080054,-0.25195,-0.3072,0.20849,0.1164,-0.20284,-0.26423,-0.3072 0.34412,0.28439,0.12015,-0.10631,-0.31535,0.24955,0.24955,0.11019,-0.11378,-0.25811,0.18983,0.18983,0.09775,-0.11378,-0.35516,0.1301,0.11268,0.067887,-0.083914,-0.2606,-0.0067688,-0.011746,-0.036631,-0.16852,-0.31535 -0.06484,-0.089516,-0.095211,-0.1066,-0.11799,-0.049655,-0.059146,-0.072433,-0.095211,-0.097109,-0.011693,-0.036368,-0.057248,-0.066739,-0.087618,0.062335,0.035761,-0.019285,-0.042063,-0.053452,0.93738,0.12497,0.043354,0.022474,-0.0041 0.41933,0.20647,-0.0063857,-0.086207,-0.086207,0.39272,0.12665,-0.086207,-0.24585,-0.086207,0.28629,-0.0063857,-0.086207,-0.24585,-0.16603,0.23308,0.020221,-0.16603,-0.24585,-0.24585,0.28629,0.12665,-0.086207,-0.16603,-0.086207 -0.15755,-0.14086,-0.15755,-0.17424,-0.14086,-0.19093,-0.10748,-0.14086,-0.20762,-0.17424,-0.14086,-0.057412,-0.057412,-0.17424,-0.14086,0.17624,0.12617,0.10948,0.076104,-0.040722,0.34314,0.37651,0.3932,0.30976,0.29307 0.15854,0.18619,0.15282,0.14137,-0.26431,0.14566,0.19,0.13422,-0.27718,-0.26717,0.1409,0.16569,0.13232,-0.26431,-0.26812,0.13994,0.14185,0.13041,-0.26336,-0.27003,0.1428,0.15282,0.13851,-0.25716,-0.2624 -0.15337,-0.26614,-0.26614,-0.35071,-0.15337,-0.20975,-0.15337,-0.18156,-0.18156,-0.20975,-0.068789,0.04398,-0.012405,0.04398,0.015788,0.21313,0.12856,0.21313,0.10036,0.26952,0.072173,0.29771,0.26952,0.26952,0.26952 0.0080399,0.065468,0.0212,-0.22287,-0.22047,0.15281,0.14682,0.18032,-0.22646,-0.25397,0.26168,0.15041,0.18631,-0.25996,-0.25876,0.288,0.2198,0.16716,-0.20731,-0.25397,0.1217,0.18032,0.18631,-0.19296,-0.23962 0.19884,0.22455,-0.16046,-0.16046,-0.23618,0.18312,0.20812,0.23741,-0.17832,-0.24832,0.20598,0.16098,-0.17261,-0.19832,-0.25047,0.26098,0.12741,0.14883,-0.20189,-0.25118,0.22884,0.13169,0.13455,-0.18118,-0.21189 0.16461,0.18114,0.1894,0.11503,-0.27336,0.17288,0.14808,0.1894,0.015866,-0.24857,0.15635,0.13982,0.12329,-0.15767,-0.33121,0.12329,0.13156,0.048921,-0.23204,-0.36426,0.15635,0.12329,0.065448,-0.27336,-0.36426 0.10484,0.21406,0.19221,0.13761,0.18129,0.18129,0.13761,0.12669,0.14853,0.19221,0.18129,0.13761,0.18129,0.13761,0.17037,-0.25556,-0.22279,-0.22279,-0.17911,-0.26648,-0.25556,-0.26648,-0.25556,-0.26648,-0.23372 0.14433,0.13789,0.14433,0.15076,0.13146,0.13789,0.14111,0.15076,0.15076,0.13789,0.14754,0.15076,0.15397,0.14111,0.15397,-0.077565,-0.080781,-0.071134,-0.074349,-0.05827,-0.37985,-0.36699,-0.35091,-0.36377,-0.35091 0.21644,0.21253,0.21505,-0.22099,-0.22267,0.217,0.13119,0.13483,-0.22463,-0.22547,0.2279,0.12896,-0.22658,-0.22658,-0.22127,0.22734,0.12197,0.13231,-0.22015,-0.22015,0.22846,0.12588,0.1242,-0.2154,-0.22015 -0.25745,-0.28593,-0.37137,-0.22897,-0.20049,-0.11506,-0.086576,-0.20049,-0.14353,0.02734,-0.14353,0.02734,-0.11506,-0.029618,-0.029618,0.084298,0.16974,0.16974,0.25517,0.16974,0.31213,0.25517,0.22669,0.25517,0.25517 0.23097,0.23306,0.25397,-0.18715,-0.17879,0.21634,0.23306,-0.17252,-0.18088,-0.16416,0.22261,0.22261,-0.16416,-0.17879,-0.17461,0.22052,0.22261,-0.15788,-0.18506,-0.18924,0.22052,0.2017,-0.17461,-0.17252,-0.19761 0.26721,0.26721,0.18893,0.3455,0.29331,0.18893,0.18893,0.21502,0.16283,0.11064,-0.072022,-0.15031,-0.019832,-0.1764,-0.019832,0.032358,-0.1764,-0.15031,-0.15031,-0.1764,-0.25469,-0.22859,-0.25469,-0.30687,-0.12421 -0.26362,-0.26018,-0.26214,-0.26656,-0.26411,-0.26165,-0.26313,-0.26411,-0.26263,0.076844,0.16809,0.16907,0.080768,0.076353,0.077825,0.16417,0.17103,0.17496,0.17594,0.173,0.1676,0.173,0.17202,0.1779,0.16956 -0.051041,-0.091014,-0.083327,-0.072565,-0.049504,-0.015681,-0.03413,-0.06949,-0.064878,-0.057191,-0.047967,-0.024906,-0.032593,-0.043354,-0.057191,-0.03413,-0.018756,-0.014144,-0.018756,-0.031055,0.97286,-0.043354,0.0012299,-0.0049197,-0.014144 0.18919,0.35323,-0.056867,-0.056867,-0.35761,0.27121,-0.0021872,0.052493,-0.0021872,-0.11155,0.21653,0.16185,0.079833,-0.13889,-0.38495,0.21653,0.10717,0.052493,-0.16623,-0.24825,0.29855,-0.0021872,0.025153,-0.19357,-0.30293 -0.015743,-0.028507,-0.062546,-0.075311,-0.088075,0.045952,-0.043399,-0.056164,-0.081693,-0.096585,0.035315,0.0097861,-0.056164,-0.068928,-0.096585,0.065099,0.043825,-0.056164,-0.081693,-0.096585,0.94798,0.022551,0.0055313,-0.068928,-0.10297 -0.25514,-0.25278,-0.25514,-0.20087,-0.14895,-0.23862,-0.26222,-0.25514,-0.16311,-0.13951,0.049273,0.058712,-0.085236,0.14603,-0.11355,0.19794,0.24986,0.19322,0.16254,0.18378,0.26402,0.19794,0.17906,0.2475,0.24042 -0.20547,-0.13582,-0.18806,-0.15323,-0.13582,-0.13582,-0.13582,-0.13582,-0.18806,-0.11841,-0.06617,-0.083583,-0.11841,-0.06617,-0.083583,-0.06617,0.020896,0.038309,0.055722,0.073135,0.24727,0.28209,0.40398,0.4214,0.47363 -0.058706,-0.065224,-0.064137,-0.069026,-0.069026,-0.051644,-0.048385,-0.053817,-0.055447,-0.055447,-0.042411,-0.034263,-0.035349,-0.035349,-0.040238,-0.036979,-0.025029,-0.026659,-0.022857,-0.025029,0.97603,-0.0234,-0.014709,-0.01145,-0.01145 0.21049,0.10256,0.20417,-0.26118,-0.26197,0.10355,0.10513,0.10038,-0.26019,-0.26236,0.20575,0.10809,0.098999,-0.26236,-0.26118,0.2014,0.20278,0.10335,-0.26177,-0.26098,0.20021,0.20061,0.10295,0.10098,-0.2594 -0.050104,-0.051476,-0.041872,-0.030896,-0.045988,-0.048732,-0.037756,-0.037756,-0.037756,-0.051476,-0.036384,-0.035012,-0.045988,-0.045988,-0.050104,-0.010317,-0.036384,-0.037756,-0.03364,-0.050104,0.97886,-0.03364,-0.044616,-0.0405,-0.044616 0.2883,0.2883,0.16777,-0.1456,-0.21791,0.24009,0.2642,-0.00096422,-0.07328,-0.36255,0.19188,0.095457,0.11956,-0.07328,-0.38665,0.11956,0.095457,0.11956,-0.07328,-0.24202,0.095457,0.023141,-0.00096422,-0.21791,-0.31433 -0.22051,-0.24407,-0.22051,-0.22051,-0.22051,-0.03204,-0.12627,-0.24407,-0.17339,-0.19695,0.085754,-0.0084811,0.015078,-0.12627,-0.055599,0.10931,-0.03204,0.085754,0.085754,0.13287,0.36846,0.3449,0.36846,0.25066,0.27422 -0.17917,-0.12788,-0.15353,-0.17062,-0.12788,-0.14498,-0.15353,-0.13643,-0.14498,-0.15353,-0.17917,-0.15353,-0.093689,-0.12788,-0.12788,0.034535,0.077276,0.043083,0.10292,0.15421,0.32518,0.32518,0.32518,0.33372,0.4534 0.2046,0.18618,0.18802,0.18802,0.18802,0.13827,0.13827,0.1309,0.11247,0.12353,0.071936,0.075621,0.066408,0.06088,0.06088,-0.0017689,-0.0017689,-0.012825,-0.0072968,-0.025723,-0.36661,-0.37582,-0.37766,-0.38135,-0.38319 0.21854,0.15136,0.17376,0.0618,-0.25168,0.19615,0.21854,0.0618,0.017017,-0.36363,0.12897,0.12897,0.0618,0.084191,-0.47559,0.15136,0.0618,0.084191,-0.072547,-0.34124,0.0618,0.0618,0.0618,-0.072547,-0.40841 0.33649,0.14654,0.037991,-0.070554,-0.20624,0.4179,0.20081,-0.043418,-0.097691,-0.26051,0.065127,0.065127,0.010855,-0.23337,-0.42333,0.25508,0.17367,-0.070554,0.010855,-0.31478,0.14654,0.065127,0.092263,-0.15196,-0.15196 -0.031463,-0.030153,-0.054386,-0.05766,-0.051438,-0.028843,-0.032773,-0.041614,-0.054713,-0.051438,-0.029498,-0.031463,-0.032773,-0.05635,-0.052093,-0.030153,-0.029171,-0.031135,-0.050456,-0.051766,0.97844,-0.03179,-0.03179,-0.036047,-0.049474 0.38576,0.39977,0.39977,0.40257,0.40957,-0.075012,-0.082015,-0.093219,-0.079214,-0.091818,-0.10302,-0.098821,-0.10862,-0.10302,-0.10302,-0.10722,-0.10722,-0.10722,-0.11143,-0.098821,-0.10722,-0.11563,-0.10722,-0.10302,-0.094619 -0.15994,-0.19979,-0.19979,-0.17322,-0.14665,-0.22636,-0.17322,-0.15994,-0.15994,-0.027099,-0.17322,-0.12009,-0.12009,-0.027099,-0.027099,0.052604,0.052604,0.052604,0.092456,0.092456,0.33157,0.31828,0.305,0.43784,0.35813 -0.22741,-0.14899,-0.12939,0.10586,0.34111,-0.22741,-0.12939,-0.10978,0.26269,0.34111,-0.10978,-0.12939,-0.14899,0.20388,0.34111,-0.1686,-0.10978,-0.10978,0.027446,0.32151,-0.12939,-0.1882,-0.1686,0.027446,0.26269 0.55105,0.02399,-0.13958,-0.17593,-0.17593,0.36931,0.18756,0.042165,0.0058158,-0.15775,0.24208,0.042165,-0.030533,-0.10323,-0.1941,0.24208,0.060339,-0.012359,-0.17593,-0.2668,0.16939,0.0058158,-0.10323,-0.10323,-0.30315 0.20299,0.20696,0.11822,-0.26205,-0.26284,0.20108,0.10518,0.20315,-0.26189,-0.26284,0.18486,0.10883,0.10772,-0.263,-0.26284,0.18422,0.11011,0.11233,-0.26332,-0.26253,0.18565,0.10852,0.11106,0.11392,-0.26348 0.26202,-0.055022,-0.06525,-0.1215,-0.15218,0.48702,-0.060136,-0.095931,-0.11639,-0.1215,0.48702,-0.070363,-0.070363,-0.10104,-0.13684,0.26713,-0.055022,-0.075477,-0.11639,-0.14707,0.42566,-0.06525,-0.085704,-0.10104,-0.11639 0.29891,0.24738,0.24738,0.22161,0.27315,0.17007,0.22161,0.17007,0.066998,0.17007,-0.036076,0.066998,-0.010307,-0.061844,-0.010307,-0.16492,-0.036076,-0.16492,-0.087613,-0.13915,-0.3453,-0.26799,-0.19069,-0.31953,-0.31953 -0.33208,-0.15418,0.08302,0.21644,0.08302,-0.30243,-0.19865,0.097845,0.23127,0.18679,-0.2876,-0.080055,0.14232,0.18679,0.15714,-0.2876,-0.169,0.12749,0.18679,0.23127,-0.30243,-0.19865,0.08302,0.21644,0.08302 -0.0066765,0.20092,0.060088,-0.10161,-0.19445,-0.0056333,0.20196,-0.0045901,-0.13708,-0.24974,0.3188,0.16128,0.059045,-0.13916,-0.31546,0.32923,0.19362,0.053829,-0.097435,-0.36658,0.28959,0.18632,0.032965,-0.15272,-0.31651 -0.025571,-0.038455,-0.044402,-0.053322,-0.058278,-0.018633,-0.035482,-0.041429,-0.05134,-0.050349,-0.010704,-0.02458,-0.041429,-0.047375,-0.059269,-0.014669,-0.027553,-0.044402,-0.054313,-0.057286,0.97744,-0.028544,-0.044402,-0.048366,-0.057286 0.39762,-0.08268,-0.083092,-0.10019,-0.12449,0.39782,-0.080209,-0.08268,-0.11337,-0.1249,0.40009,-0.086182,-0.088653,-0.11687,-0.12284,0.4005,-0.093184,-0.096274,-0.099157,-0.10183,0.40009,-0.1006,-0.098127,-0.098951,-0.10183 0.18513,0.16326,0.16326,0.090379,-0.12099,0.16326,0.17784,0.17055,-0.01895,-0.27405,0.16326,0.13411,0.075801,-0.20117,-0.33965,0.16326,0.18513,0.03207,-0.25947,-0.36151,0.18513,0.11953,0.046647,-0.28134,-0.36151 -0.24199,-0.24211,-0.24199,-0.24211,-0.24125,-0.24223,-0.24199,-0.24248,-0.24211,-0.24223,0.22729,0.22396,0.2094,0.17609,0.16783,0.17338,0.17313,0.174,0.17659,0.15722,0.11293,0.11244,0.11182,0.1117,0.11269 0.26057,0.36914,0.27867,0.31486,0.33295,0.152,0.025333,0.152,0.152,0.26057,-0.17371,-0.17371,-0.10133,-0.20991,-0.11943,-0.11943,-0.19181,-0.15562,-0.13752,-0.19181,-0.17371,-0.083238,-0.15562,-0.13752,-0.17371 0.39867,0.38525,0.38238,0.38908,0.43891,-0.090036,-0.072788,-0.074705,-0.074705,-0.084287,-0.10154,-0.099619,-0.11112,-0.11303,-0.12262,-0.10345,-0.10345,-0.10345,-0.11112,-0.1092,-0.10154,-0.10058,-0.10728,-0.10154,-0.10824 0.20946,0.33414,0.33414,0.27873,0.26488,0.15405,0.11249,0.1402,0.1679,0.11249,-0.10916,0.057076,0.029369,-0.039898,-0.067604,-0.17843,-0.10916,-0.081458,-0.067604,-0.17843,-0.34467,-0.23384,-0.2477,-0.26155,-0.2754 0.19681,0.1345,0.091604,-0.29093,-0.28582,0.19273,0.1391,0.087518,0.054321,-0.28582,0.20703,0.14523,0.099265,0.056364,-0.28276,0.20294,0.1391,0.093647,-0.2894,-0.28684,0.19886,0.14932,0.093136,-0.27203,-0.28787 0.12993,-0.080606,0.039701,-0.11068,-0.38137,0.25024,0.039701,-0.080606,-0.080606,-0.17084,0.37055,0.19009,0.0096246,-0.14076,-0.20091,0.4307,0.069778,0.12993,-0.20091,-0.3513,0.22016,0.16001,-0.020452,-0.050529,-0.17084 0.11216,-0.023517,-0.083819,-0.20442,-0.17427,0.30814,0.066934,-0.14412,-0.1592,-0.098894,0.38352,0.066934,-0.12904,-0.083819,-0.2195,0.35336,0.066934,-0.068743,-0.083819,-0.17427,0.53427,0.14231,-0.098894,-0.1592,-0.12904 0.065443,0.19503,0.19503,0.17883,0.13024,0.14644,0.16264,0.14644,0.14644,0.19503,0.081642,0.13024,0.24363,0.13024,0.19503,-0.20994,-0.12894,-0.12894,-0.20994,-0.16134,-0.33953,-0.27473,-0.25853,-0.32333,-0.30713 0.080889,0.060169,-0.054824,-0.13356,-0.22576,0.11715,0.089177,-0.04032,-0.13045,-0.20711,0.25079,0.11508,-0.037212,-0.15324,-0.21954,0.401,0.054989,-0.021673,-0.13667,-0.22369,0.60924,0.15444,-0.02478,-0.11491,-0.20918 0.20442,0.15728,0.10379,-0.28699,-0.28751,0.20286,0.15711,0.10051,-0.28658,-0.28739,0.15913,0.15728,0.098256,-0.28699,-0.28722,0.15924,0.15791,0.099121,0.063061,-0.28699,0.15999,0.15728,0.09439,0.065253,-0.28722 0.092946,0.09853,0.10188,0.084236,-0.39729,0.090043,0.09853,0.09853,0.082226,-0.39975,0.088033,0.10188,0.10166,0.092723,-0.39841,0.11506,0.12086,0.10925,0.092946,-0.40086,0.10367,0.11863,0.10769,0.09853,-0.40153 0.33105,0.33105,0.3484,0.3484,0.3484,0.08814,0.14019,0.08814,0.08814,0.018738,-0.033313,-0.085364,-0.13742,-0.13742,0.018738,-0.13742,-0.13742,-0.18947,-0.15477,-0.15477,-0.20682,-0.12007,-0.27622,-0.18947,-0.18947 -0.017836,-0.023176,-0.039197,-0.028516,-0.041867,-0.041867,-0.020506,-0.033856,-0.052547,-0.044537,-0.049877,-0.049877,-0.031186,-0.060557,-0.055217,0.048916,-0.055217,-0.060557,-0.060557,-0.081918,0.97009,0.024885,-0.081918,-0.052547,-0.060557 -0.30025,-0.26733,-0.036872,0.061893,0.25942,-0.33317,-0.10272,0.061893,0.061893,0.32527,-0.2344,-0.13564,-0.10272,0.19358,0.29235,-0.20148,0.028971,-0.13564,0.19358,0.35819,-0.20148,-0.10272,0.094815,0.028971,0.19358 0.23617,0.34513,0.44727,0.4677,0.44727,-0.083898,-0.063468,-0.11114,-0.043039,-0.063468,-0.11114,-0.12476,-0.063468,-0.083898,-0.077088,-0.13157,-0.13157,-0.12476,-0.10433,-0.063468,-0.13838,-0.10433,-0.13157,-0.12476,-0.063468 0.14208,-0.11508,-0.19543,-0.19543,-0.19543,0.23851,0.029572,-0.14722,-0.19543,-0.17936,0.31887,0.15815,-0.018643,-0.17936,-0.21151,0.33494,0.19029,-0.018643,-0.099003,-0.19543,0.43137,0.23851,0.126,-0.066859,-0.19543 -0.36309,-0.11776,-0.035982,0.12757,0.25024,-0.34264,-0.056426,-0.056426,0.14802,0.35246,-0.30176,-0.21998,0.025351,0.14802,0.27068,-0.28131,-0.17909,-0.015538,0.1889,0.25024,0.025351,-0.07687,-0.035982,0.086683,0.20935 -0.34611,-0.07681,0.14566,0.16908,0.12224,-0.34611,-0.11194,0.16908,0.13395,0.16908,-0.3344,-0.11194,0.11053,0.15737,0.16908,-0.32269,-0.10023,0.12224,0.15737,0.16908,-0.3344,-0.1939,0.18078,0.18078,0.12224 -0.1894,-0.016379,0.15087,0.20278,0.19701,-0.2586,-0.050982,0.13357,0.19701,0.18547,-0.28167,-0.21246,0.087431,0.17394,0.19701,-0.31627,-0.224,0.035526,0.17971,0.19124,-0.33934,-0.27014,-0.14326,0.15664,0.21431 0.25012,0.16528,-0.16151,-0.18351,-0.20865,0.26269,-0.010684,-0.15523,-0.21179,-0.18665,0.27526,-0.029537,-0.079813,-0.19608,-0.19293,0.28783,0.26898,-0.067244,-0.11752,-0.2055,0.3004,0.29412,0.19671,-0.13009,-0.16465 -0.1583,-0.14663,-0.085388,0.0079323,0.36663,-0.16121,-0.15538,-0.10872,0.051676,0.36955,-0.17288,-0.14371,-0.10872,-0.018314,0.37247,-0.1583,-0.14371,-0.094137,0.02543,0.37247,-0.16413,-0.14955,-0.1058,0.14208,0.36663 0.13568,0.18884,0.19948,0.16758,0.18884,0.14631,0.17821,0.12505,0.13568,0.15695,0.22074,0.16758,0.17821,0.10378,0.13568,-0.22585,-0.25775,-0.22585,-0.22585,-0.25775,-0.22585,-0.25775,-0.22585,-0.26838,-0.25775 0.38862,-0.089429,-0.10309,-0.10309,-0.10736,0.40057,-0.082599,-0.10138,-0.1065,-0.10992,0.40569,-0.084307,-0.097112,-0.10479,-0.10992,0.41935,-0.084307,-0.099673,-0.10992,-0.10736,0.3835,-0.092843,-0.099673,-0.10394,-0.10053 0.17972,0.17557,-0.22521,-0.22566,-0.22566,0.17115,0.17071,0.16956,-0.22601,-0.22566,0.17098,0.17098,0.17186,-0.2253,-0.22513,0.20373,0.1708,0.1753,-0.2253,-0.22539,0.20417,0.17257,0.17265,-0.22504,-0.22539 0.22983,0.16819,-0.21427,-0.21872,-0.21204,0.25285,0.16448,-0.21612,-0.21984,-0.21835,0.24171,0.16002,0.10358,-0.22281,-0.22058,0.23466,0.16559,0.1021,-0.22281,-0.22615,0.25137,0.16262,0.11064,0.073135,-0.22912 0.30212,0.28214,0.26216,0.30212,0.28214,0.082324,0.10231,0.16225,0.062342,0.20221,0.082324,-0.037565,0.022379,0.0023978,-0.017584,-0.2174,-0.077528,-0.23738,-0.13747,-0.11749,-0.19742,-0.27734,-0.31731,-0.27734,-0.23738 0.41233,-0.091278,-0.098587,-0.10809,-0.11284,0.40648,-0.08945,-0.095298,-0.10626,-0.10919,0.39954,-0.088719,-0.099683,-0.10626,-0.11065,0.39223,-0.086892,-0.097856,-0.10626,-0.10663,0.38748,-0.083603,-0.089816,-0.10407,-0.10663 0.35725,0.35725,0.35725,0.41097,0.45126,-0.072524,-0.032233,-0.032233,-0.0053722,-0.059094,-0.032233,-0.018803,-0.11282,-0.072524,-0.12625,-0.099385,-0.12625,-0.12625,-0.099385,-0.15311,-0.13968,-0.15311,-0.16654,-0.20683,-0.099385 0.12493,0.14672,0.16642,0.17013,0.1597,0.12725,0.18519,0.1743,0.16039,0.15877,0.18102,0.17824,0.1794,0.16456,0.16688,-0.24147,-0.24796,-0.24355,-0.24471,-0.24425,-0.24448,-0.24448,-0.24379,-0.24448,-0.24471 0.22487,0.229,-0.17495,-0.17762,-0.18248,0.22366,0.23459,-0.17665,-0.17762,-0.18248,0.22973,0.22633,-0.17374,-0.17568,-0.18078,0.22682,0.22196,0.2171,-0.17471,-0.18005,0.22779,0.21953,-0.16791,-0.17568,-0.18102 0.083132,0.14426,0.17482,0.083132,-0.25306,0.098413,0.052569,0.17482,-0.10025,-0.37532,0.14426,0.1901,0.14426,-0.16137,-0.34475,0.17482,0.14426,0.12898,-0.10025,-0.3906,0.1901,0.1137,0.098413,-0.0085577,-0.40588 0.35795,0.29463,0.33684,0.27353,0.21021,0.168,0.168,0.12579,0.168,0.041367,0.041367,0.041367,-0.12748,-0.12748,-0.02195,-0.16969,-0.043055,-0.233,-0.233,-0.16969,-0.16969,-0.233,-0.233,-0.233,-0.233 -0.27395,-0.1386,-0.21981,-0.32809,-0.4093,-0.11153,-0.030319,-0.24688,-0.11153,-0.11153,-0.0032484,0.050892,0.050892,-0.030319,-0.030319,0.1321,0.050892,0.15917,0.1321,0.050892,0.21331,0.32159,0.32159,0.26745,0.29452 0.46655,0.45044,0.33767,0.25712,0.36989,-0.048975,-0.00064441,0.047686,-0.00064441,0.015466,-0.11342,-0.11342,-0.12953,-0.16175,-0.14564,-0.16175,-0.17786,-0.12953,-0.048975,-0.097306,-0.11342,-0.14564,-0.12953,-0.16175,-0.065085 0.41299,0.41299,0.35977,0.30655,0.35977,0.040447,0.067057,0.040447,-0.039383,-0.012773,-0.11921,-0.11921,-0.11921,-0.092603,-0.19904,-0.012773,-0.065993,-0.11921,-0.14582,-0.14582,-0.19904,-0.065993,-0.19904,-0.19904,-0.14582 -0.16298,-0.15999,-0.158,-0.157,-0.157,-0.16099,-0.16099,-0.15899,-0.158,-0.157,-0.15999,-0.16198,-0.15999,-0.15899,-0.157,0.17971,0.17922,0.18221,0.30922,0.37099,0.29677,0.18121,0.18021,0.30723,0.20213 -0.23711,-0.30535,-0.2627,-0.22858,-0.30535,-0.14329,-0.14329,-0.21153,-0.15182,0.06994,-0.04094,-0.023882,0.010235,-0.15182,-0.023882,0.10406,0.2917,0.18935,0.16376,0.16376,0.25758,0.27464,0.27464,0.18935,0.24053 -0.23648,-0.28729,-0.016262,0.23783,0.20395,-0.21954,-0.1179,-0.13484,0.17007,0.20395,-0.23648,-0.15178,-0.016262,0.23783,0.22089,-0.10096,-0.21954,-0.1179,0.27171,0.22089,-0.15178,-0.16872,-0.15178,0.25477,0.30559 0.13317,0.16466,0.1648,0.16643,0.16739,0.13235,0.14176,0.1633,0.32239,0.14571,0.1329,0.14271,0.14544,0.14776,0.14135,-0.24078,-0.24037,-0.24091,-0.24214,-0.24241,-0.24132,-0.24132,-0.24064,-0.24091,-0.24132 0.16285,0.14182,0.23292,0.16285,0.18387,0.16985,0.18387,0.19087,0.16985,0.14182,0.043725,0.064746,0.099782,0.1208,0.12781,-0.22255,-0.20153,-0.13145,-0.012333,-0.0053254,-0.3767,-0.36269,-0.32765,-0.2716,-0.28561 0.17799,0.17699,0.09819,0.087505,-0.3943,0.11488,0.10687,0.090844,0.083165,-0.39596,0.095185,0.09218,0.082831,0.083833,-0.39797,0.094183,0.09218,0.079492,0.080828,-0.40064,0.093849,0.088173,0.084167,0.081495,-0.39596 0.19348,0.19378,-0.17692,-0.17662,-0.17752,0.2343,0.19469,-0.17692,-0.17702,-0.17752,0.23621,0.22897,-0.17642,-0.17662,-0.17702,0.23792,0.23159,-0.17712,-0.17662,-0.17662,0.23883,0.23611,0.25069,-0.17773,-0.17592 0.35915,0.30303,0.30303,0.28432,0.1908,0.1908,0.15338,0.22821,0.1908,0.15338,-0.1272,-0.22072,-0.20202,-0.1459,-0.16461,-0.1272,-0.22072,-0.1459,-0.18331,-0.22072,-0.1272,-0.071081,-0.10849,-0.1459,-0.1459 -0.40587,-0.34118,-0.33194,-0.35042,-0.37815,-0.11015,-0.063949,-0.054707,-0.054707,-0.026984,0.028463,0.13936,0.13936,0.11163,0.11163,0.1486,0.15784,0.15784,0.15784,0.16708,0.12087,0.1486,0.15784,0.17632,0.1948 0.090668,0.097851,0.073907,0.097053,-0.38981,0.090668,0.11381,0.066724,0.073907,-0.38502,0.095457,0.11381,0.069118,0.073109,-0.39699,0.10743,0.15452,0.08109,0.079494,-0.40896,0.13297,0.19682,0.088274,0.083485,-0.39939 0.17087,0.17087,-0.25284,-0.27981,-0.21432,0.23636,0.12465,-0.22588,-0.22203,-0.25284,0.22865,0.24791,-0.091061,-0.14114,-0.18351,0.25947,0.2248,0.059166,-0.087209,-0.18351,0.28643,0.19013,0.17087,-0.071801,-0.16425 0.28405,0.16782,0.29374,0.29733,0.1611,0.16548,0.28358,0.29561,0.29124,0.16142,-0.16118,-0.15884,-0.16025,-0.16025,-0.16056,-0.15993,-0.15837,-0.16134,-0.16009,-0.159,-0.15884,-0.15978,-0.159,-0.16243,-0.1615 -0.12965,-0.12472,-0.12472,-0.13293,-0.12308,-0.090241,-0.093525,-0.11651,-0.11487,-0.10994,-0.082031,-0.086957,-0.086957,-0.10009,-0.091883,-0.072179,-0.073821,-0.082031,-0.080389,-0.075463,0.39741,0.39906,0.40398,0.39577,0.39577 0.024677,-0.01755,-0.099427,-0.097368,-0.10458,0.0076831,-0.031968,-0.099942,-0.10046,-0.10818,-0.01858,-0.052567,-0.089128,-0.093248,-0.095308,0.034461,0.016952,-0.042267,-0.050507,-0.040208,0.94593,0.061238,0.030341,0.0097429,0.010258 -0.12362,-0.12177,-0.12177,-0.12316,-0.12755,-0.10534,-0.10442,-0.10534,-0.10581,-0.1065,-0.085675,-0.087063,-0.087063,-0.090534,-0.088683,-0.08151,-0.081279,-0.081047,-0.082899,-0.083361,0.40855,0.40485,0.3986,0.39421,0.38819 0.26476,0.25432,0.23197,-0.17488,-0.17439,0.25333,0.24588,-0.17935,-0.1719,-0.17687,0.25482,0.26078,-0.17637,-0.1719,-0.17488,0.24191,0.11126,-0.17935,-0.16942,-0.17786,0.17882,0.1505,-0.17289,-0.16991,-0.17836 0.14651,0.14862,0.14555,0.14728,-0.26641,0.15342,0.14287,0.15169,-0.26833,-0.26565,0.16665,0.14901,0.14344,-0.26737,-0.26622,0.16857,0.14613,0.14344,-0.26699,-0.26584,0.15649,0.14402,0.14517,-0.2668,-0.26526 0.26086,0.26086,0.26086,0.17698,0.26086,0.13504,0.13504,0.26086,0.19795,0.13504,-0.074652,-0.011743,-0.074652,0.13504,0.072135,-0.074652,-0.20047,-0.20047,-0.20047,-0.13756,-0.26338,-0.26338,-0.26338,-0.20047,-0.32629 -0.034917,-0.034917,-0.04644,-0.047881,-0.034917,-0.04644,-0.04356,-0.055083,-0.052202,-0.045,-0.039238,-0.04644,-0.045,-0.04644,-0.04644,-0.037798,-0.037798,-0.04644,-0.039238,-0.032036,0.97917,-0.032036,-0.029155,-0.032036,-0.027714 0.13175,0.057526,0.066804,0.057526,-0.44351,0.12247,0.076083,0.10392,0.029691,-0.43423,0.085361,0.1132,0.1132,0.076083,-0.45278,0.10392,0.15959,0.10392,0.085361,-0.35072,0.14103,0.1132,0.1132,0.10392,-0.2765 -0.16068,-0.16068,-0.16133,-0.16155,-0.16199,-0.16133,-0.16002,-0.16002,-0.16112,-0.16133,-0.15937,-0.16002,-0.16133,-0.16112,-0.16046,0.35015,0.35146,0.21147,0.21016,0.21409,0.21759,0.21649,0.21213,0.21234,0.21649 -0.044698,-0.049815,-0.051676,-0.050746,-0.030741,-0.043302,-0.047024,-0.050746,-0.051676,-0.056328,-0.047954,-0.047954,-0.049815,-0.047954,-0.056328,-0.052607,0.029737,-0.046094,-0.057259,-0.055398,0.97226,0.02648,0.017641,-0.052607,-0.055398 -0.10361,-0.10593,-0.10477,-0.10419,-0.10535,-0.10419,-0.10477,-0.10535,-0.10477,-0.10361,-0.10303,-0.10361,-0.10303,-0.10361,-0.10361,-0.082172,-0.08449,-0.083331,-0.082462,-0.085069,0.47675,0.44632,0.39011,0.34955,0.31826 0.40273,0.40009,0.3948,0.40273,0.36573,-0.06765,-0.072935,-0.072935,-0.05708,-0.054437,-0.099361,-0.094076,-0.086148,-0.083506,-0.072935,-0.13107,-0.14428,-0.1205,-0.086148,-0.06765,-0.086148,-0.094076,-0.14693,-0.23413,-0.094076 -0.098407,-0.10507,-0.10507,-0.11841,-0.11174,-0.11174,-0.11174,-0.10507,-0.098407,-0.11174,-0.11174,-0.11174,-0.09174,-0.11174,-0.11174,-0.073961,-0.062849,-0.080628,-0.080628,-0.080628,0.41496,0.40163,0.39496,0.38829,0.39496 0.44187,0.41471,0.40384,0.38211,0.34952,-0.07149,-0.076923,-0.090504,-0.10137,-0.1068,-0.082355,-0.09322,-0.10408,-0.10952,-0.10408,-0.09322,-0.090504,-0.10952,-0.11223,-0.11223,-0.10408,-0.095936,-0.10137,-0.11223,-0.12038 0.17969,0.17741,0.17627,-0.22431,-0.22469,0.17893,0.17703,0.17627,-0.22659,-0.22469,0.17969,0.17551,0.17513,-0.22393,-0.22659,0.17855,0.17779,0.17437,-0.22773,-0.22621,0.17931,0.17589,-0.22317,-0.22507,-0.22887 0.4787,0.21089,0.20869,0.20909,0.20909,0.21069,0.20929,0.20969,0.20929,0.20889,-0.14985,-0.15045,-0.15085,-0.15205,-0.15165,-0.19482,-0.15125,-0.15185,-0.15145,-0.15325,-0.19382,-0.15185,-0.15325,-0.15365,-0.15425 0.27663,0.22553,0.32773,0.32773,0.22553,0.089256,0.089256,0.19146,0.17442,0.17442,-0.11515,-0.029979,0.038155,0.089256,-0.047013,-0.18328,-0.13218,-0.08108,-0.11515,-0.18328,-0.30252,-0.26845,-0.28548,-0.23438,-0.25142 0.3058,0.38466,0.41533,0.42847,0.45037,-0.088498,-0.10164,-0.075355,-0.079736,-0.10164,-0.1104,-0.092879,-0.092879,-0.10602,-0.1104,-0.10164,-0.10602,-0.084117,-0.1104,-0.11478,-0.084117,-0.09726,-0.11478,-0.10602,-0.10602 0.11343,0.10785,0.10042,0.091129,-0.4106,0.11343,0.10228,0.091129,0.092988,-0.4106,0.11529,0.096704,0.091129,0.081838,-0.40131,0.10785,0.092988,0.10414,0.087413,-0.3753,0.11529,0.10414,0.094846,0.092988,-0.39945 0.15012,0.12959,0.12651,0.13421,-0.25998,0.13626,0.1414,0.13934,-0.26922,-0.26511,0.15679,0.16193,0.15423,-0.26511,-0.26665,0.16039,0.1609,0.15885,-0.26768,-0.26819,0.15679,0.16603,0.16347,-0.26922,-0.26563 0.15091,0.15379,0.15956,-0.23992,-0.36106,0.13216,0.15523,0.14514,-0.10291,-0.34664,0.15091,0.13793,0.1437,-0.19233,-0.34664,0.1336,0.12928,0.13216,-0.11733,-0.26588,0.14514,0.13649,0.13937,0.15523,-0.32789 -0.34459,0.058871,0.12706,0.16116,0.18957,-0.33891,-0.12865,0.12706,0.14979,0.14979,-0.33323,-0.1457,0.13274,0.12706,0.15548,-0.35596,-0.15707,0.12706,0.16116,0.16684,-0.33891,-0.12865,0.13274,0.14411,0.16116 -0.16103,-0.16128,-0.1612,-0.16128,-0.16086,-0.16086,-0.16086,-0.16111,-0.16086,-0.16128,-0.16017,-0.16,-0.16043,-0.1606,-0.16026,0.26557,0.27171,0.25815,0.25926,0.25772,0.076966,0.24945,0.25192,0.25951,0.26181 0.36375,0.39058,0.36375,0.35034,0.3101,0.041848,0.028435,0.05526,0.068673,0.082086,-0.038629,-0.065454,-0.078867,-0.038629,-0.078867,-0.22641,-0.13252,-0.19958,-0.22641,-0.13252,-0.21299,-0.13252,-0.14593,-0.22641,-0.1191 0.16839,0.19513,0.15769,0.14164,0.14164,0.17374,0.19513,0.14164,0.14164,0.14164,0.14164,0.09885,0.077454,0.1042,0.1256,-0.099064,-0.056272,-0.01348,-0.099064,-0.077668,-0.36652,-0.36117,-0.36652,-0.36117,-0.34512 -0.28494,-0.30807,-0.30807,-0.23868,-0.37745,-0.14617,-0.14617,-0.0074011,-0.099914,-0.1693,0.061984,0.1545,0.038856,-0.0074011,-0.0074011,0.24701,0.17763,0.1545,0.038856,0.085112,0.38578,0.17763,0.17763,0.17763,0.22388 0.26158,0.28845,0.22126,0.17647,0.20335,0.22126,0.27053,0.19439,0.16752,0.046582,0.12273,0.10481,-0.016125,0.042103,-0.13258,-0.22216,-0.24456,-0.2132,-0.1505,-0.17289,-0.25799,-0.26247,-0.28935,-0.16841,-0.19081 -0.24773,-0.26329,-0.37222,-0.35665,-0.37222,0.032367,-0.029877,-0.076559,-0.16992,-0.1388,0.079049,0.063488,0.016806,0.032367,-0.060999,0.26578,0.15685,0.15685,0.15685,0.047927,0.31246,0.2191,0.18798,0.15685,0.20354 -0.19566,-0.14962,-0.13236,0.23403,0.21484,-0.18799,-0.13236,-0.13428,0.28198,0.22444,-0.18032,-0.14195,-0.1362,0.29733,0.23594,-0.18032,-0.16305,-0.14962,0.25705,0.21484,-0.17648,-0.18799,-0.18223,0.25705,0.21293 0.16357,0.19902,0.15175,0.17539,0.18721,0.13993,0.12811,0.12811,0.12811,0.13993,0.10448,0.080839,0.057202,0.080839,0.06902,-0.013709,-0.013709,-0.013709,-0.001891,0.0099276,-0.35645,-0.40372,-0.38008,-0.36826,-0.3919 -0.25447,-0.11965,0.20055,0.16684,0.17527,-0.27133,-0.15336,0.16684,0.14999,0.20055,-0.28818,-0.20392,0.17527,0.18369,0.14156,-0.27975,-0.24605,0.14156,0.14999,0.14999,-0.27975,-0.28818,0.040446,0.16684,0.17527 -0.19099,-0.24588,-0.21843,-0.23215,-0.16355,-0.17727,-0.21843,-0.19099,-0.19099,-0.20471,-0.026344,-0.053785,-0.012623,0.04226,-0.067506,0.069701,0.13831,0.20691,0.24807,0.20691,0.13831,0.19319,0.15203,0.37156,0.42644 -0.012712,0.070918,-0.012712,-0.14652,-0.39741,0.15455,0.17127,0.13782,-0.012712,-0.38068,0.10437,0.13782,0.17127,0.054192,-0.34723,0.188,0.10437,0.1211,0.037466,-0.36395,0.15455,0.15455,0.17127,0.10437,-0.36395 0.14121,0.14026,0.13931,-0.21875,-0.214,0.18395,0.16971,-0.2254,-0.22255,-0.23965,0.26374,0.21245,0.15451,-0.2197,-0.23585,0.24664,0.20105,0.14691,-0.21875,-0.2178,0.16021,0.14881,0.14501,-0.21306,-0.22825 0.41317,0.26059,0.14235,-0.010222,-0.12465,0.31781,0.16905,0.046992,-0.05218,-0.16661,0.25297,0.12328,-0.05218,-0.11702,-0.26197,0.19575,0.069878,-0.05218,-0.20094,-0.2696,0.12328,-0.040737,-0.13609,-0.26197,-0.36877 0.15861,0.14543,0.13344,0.13943,0.22814,0.12025,0.17779,0.13704,0.14423,0.18858,0.11306,0.18978,0.1718,0.15622,0.19457,-0.27652,-0.23576,-0.1998,-0.17103,-0.15425,-0.31607,-0.30409,-0.28251,-0.24295,-0.21538 0.3389,0.32719,0.3389,0.21,0.25687,0.28031,0.25687,0.057656,0.045937,0.081093,0.010781,0.0225,-0.094687,-0.14156,-0.20016,-0.11812,-0.18844,-0.18844,-0.18844,-0.18844,-0.15328,-0.21187,-0.17672,-0.17672,-0.20016 -0.21203,-0.21203,-0.21203,-0.21203,-0.18728,-0.19966,-0.17903,-0.20378,-0.19141,-0.21203,-0.19141,-0.16253,-0.059402,0.14685,0.10148,0.17986,0.15923,0.20461,0.24998,0.21698,0.23761,0.26236,0.17986,0.27886,0.21698 -0.043385,-0.04599,-0.050601,-0.0504,-0.051402,-0.038975,-0.043785,-0.046592,-0.047995,-0.050601,-0.033763,-0.034966,-0.04579,-0.046592,-0.047995,-0.028952,-0.028752,-0.032761,-0.037972,-0.041781,0.97909,-0.027148,-0.028752,-0.037171,-0.03697 0.43838,-0.055696,-0.11558,-0.13056,-0.25033,0.46833,-0.070668,-0.070668,-0.055696,-0.14553,0.40844,-0.01078,-0.055696,-0.08564,-0.08564,0.28866,-0.10061,-0.070668,-0.08564,-0.17547,0.30363,-0.040724,-0.040724,-0.070668,-0.19044 0.0824,0.25791,0.26004,0.26099,0.26572,0.24774,0.25294,0.2617,0.26193,0.26312,-0.16076,-0.1636,-0.16265,-0.16052,-0.16242,-0.1584,-0.16052,-0.15981,-0.16076,-0.16029,-0.16052,-0.16123,-0.16076,-0.161,-0.16123 -0.34515,-0.32441,-0.35552,-0.36589,-0.40738,-0.023646,-0.05476,-0.034017,-0.10662,-0.10662,0.14229,0.14229,0.15266,0.069694,0.059323,0.20452,0.15266,0.17341,0.15266,0.12155,0.19415,0.12155,0.15266,0.13192,0.15266 0.28359,0.30031,0.30589,0.30589,0.26687,-0.034111,0.043921,0.1554,0.29474,0.30589,-0.15116,-0.13444,-0.11772,-0.084275,-0.0062426,-0.17903,-0.16231,-0.17903,-0.16231,-0.16788,-0.17903,-0.17903,-0.17346,-0.16788,-0.1846 0.28492,0.25945,0.2826,0.26871,0.28646,0.26717,0.25328,0.26331,-0.010586,-0.014443,-0.0036417,-0.0051848,-0.023702,-0.039904,-0.049934,-0.20424,-0.20347,-0.19807,-0.20116,-0.1973,-0.20501,-0.20039,-0.20347,-0.20116,-0.20424 -0.25785,-0.22004,0.15173,0.16224,0.17484,-0.25785,-0.24944,0.15803,0.16434,0.17484,-0.23684,-0.23264,0.15173,0.15383,0.17274,-0.24524,-0.24944,0.15593,0.14963,0.18114,-0.24104,-0.25575,0.15803,0.16644,0.17064 0.17992,0.17528,-0.20421,-0.23829,-0.2197,0.15979,0.15669,0.18457,-0.22589,-0.21505,0.17373,0.16753,0.20161,-0.2135,-0.24758,0.18147,0.17063,0.18612,-0.21505,-0.24913,0.18612,0.17837,0.17528,-0.2166,-0.23209 0.11637,0.26508,0.24649,0.34254,0.33014,0.12876,0.091582,0.14115,0.14735,0.19072,-0.035443,-0.032345,0.014128,0.063699,0.14115,-0.19345,-0.15317,-0.16867,-0.15627,-0.15627,-0.33907,-0.30189,-0.22133,-0.23063,-0.23063 0.33514,0.33485,-0.025327,-0.14252,-0.14689,0.33878,-0.028388,-0.14835,-0.14718,-0.14791,0.33834,-0.028534,-0.14806,-0.14762,-0.14427,0.36196,-0.027076,-0.14791,-0.14791,-0.14718,0.36225,-0.02868,-0.027222,-0.14543,-0.14485 0.13862,0.12445,0.11027,0.071294,-0.34329,0.15988,0.14571,0.092555,0.081925,-0.32557,0.15634,0.13508,0.1209,0.050034,-0.3362,0.14216,0.14571,0.1209,-0.098792,-0.37872,0.14216,0.14571,0.078381,-0.3114,-0.36809 0.077062,0.22084,0.22084,0.36461,0.10582,0.10582,0.16333,0.27834,0.13457,0.16333,0.019553,0.077062,0.10582,0.077062,0.10582,-0.18173,-0.21048,-0.12422,-0.12422,-0.095465,-0.29675,-0.29675,-0.29675,-0.29675,-0.29675 0.31268,0.31268,0.36301,0.41333,0.31268,0.044285,0.09461,0.09461,0.09461,0.14493,-0.15701,-0.10669,-0.056363,-0.10669,-0.17379,-0.10669,-0.10669,-0.10669,-0.15701,-0.15701,-0.15701,-0.15701,-0.15701,-0.24089,-0.24089 0.082981,0.084871,0.089596,0.088966,-0.40092,0.12803,0.088021,0.087706,0.089912,-0.39903,0.12362,0.10157,0.095582,0.091487,-0.4006,0.12142,0.11007,0.10787,0.090227,-0.39777,0.11417,0.10157,0.10629,0.092432,-0.39808 0.14223,0.12187,0.15006,-0.081766,-0.33552,0.1156,0.11873,0.18139,-0.1037,-0.36215,0.063909,0.11717,0.19862,-0.070801,-0.37468,0.092104,0.12657,0.24718,-0.083333,-0.31986,0.09837,0.19862,0.21115,-0.1084,-0.34336 0.15911,0.15585,0.14934,0.15422,0.15911,0.164,0.15748,0.15097,0.14282,0.13793,0.20146,0.18843,0.16237,0.18517,0.16888,-0.1911,-0.20413,-0.24323,-0.25137,-0.25951,-0.25137,-0.24811,-0.25789,-0.2644,-0.26603 0.43598,0.30114,0.36856,0.32362,0.2562,0.076409,0.1663,0.12136,0.076409,0.076409,-0.21574,-0.12585,-0.058431,-0.14832,-0.058431,-0.12585,-0.12585,-0.14832,-0.19327,-0.19327,-0.1708,-0.12585,-0.19327,-0.14832,-0.1708 0.33302,0.0076556,-0.20287,-0.0689,-0.0689,0.44785,-0.030622,-0.14546,-0.1646,-0.18373,0.33302,0.0076556,-0.18373,-0.14546,-0.12632,0.3713,-0.0689,-0.0689,-0.049761,-0.0689,0.42871,-0.049761,-0.10718,-0.12632,-0.0689 -0.24152,-0.24539,0.14345,0.15314,0.18122,-0.24104,-0.24104,0.16427,0.16379,0.18171,-0.24104,-0.24152,0.15653,0.16234,0.16766,-0.24927,-0.24975,0.14345,0.16427,0.15798,-0.24685,-0.24878,0.14539,0.18267,0.17832 -0.014255,-0.077146,-0.066664,-0.04046,-0.056183,0.038154,-0.061424,-0.050942,-0.014255,-0.066664,-0.09811,-0.024737,-0.024737,-0.061424,-0.045701,0.059118,-0.04046,-0.066664,-0.04046,-0.066664,0.9658,-0.050942,-0.035219,-0.0037735,-0.056183 0.17973,0.17973,0.073755,-0.011021,-0.22296,0.13734,0.094949,0.22211,0.031367,-0.41371,0.20092,0.11614,0.094949,-0.032215,-0.26535,0.13734,0.13734,0.094949,-0.053409,-0.39251,0.073755,0.11614,0.052561,-0.032215,-0.51968 0.27727,0.2709,-0.15247,-0.15338,-0.15292,0.27454,0.27136,-0.14701,-0.15156,-0.14928,0.2709,0.26954,-0.14747,-0.15201,-0.15292,0.25953,0.25226,-0.14428,-0.15019,-0.15292,0.25271,-0.14656,-0.1461,-0.1511,-0.14883 0.098398,0.097595,0.062414,-0.23125,-0.23478,0.096471,0.22547,0.058237,-0.23285,-0.23623,0.096149,0.23045,0.21647,-0.23398,-0.23815,0.095828,0.23222,0.20989,-0.23494,-0.24072,0.21471,0.22707,0.20185,-0.23815,-0.24217 0.40093,0.40093,0.40221,0.39066,0.40221,-0.059924,-0.094584,-0.10357,-0.088166,-0.095868,-0.090733,-0.098435,-0.11384,-0.098435,-0.098435,-0.10357,-0.10871,-0.098435,-0.11512,-0.090733,-0.10485,-0.11769,-0.10357,-0.10229,-0.10999 -0.061191,-0.061191,-0.061191,-0.061191,-0.054051,-0.030845,-0.061191,-0.054051,-0.054051,-0.050481,-0.050481,-0.030845,-0.046911,-0.04334,-0.046911,-0.041555,-0.03977,-0.01121,-0.03263,-0.0362,0.97591,-0.027275,-0.00049981,-0.0022848,-0.016565 0.34755,0.4231,0.38242,0.27199,0.25456,0.062767,0.056956,0.051144,0.11507,0.1267,-0.053468,-0.047657,-0.012786,-0.047657,-0.018598,-0.16389,-0.17552,-0.21039,-0.22201,-0.18714,-0.18714,-0.18714,-0.18714,-0.20458,-0.18714 0.32775,0.29274,-0.10497,-0.13998,-0.12178,0.29974,0.25633,-0.13158,-0.14698,-0.12878,0.26893,0.22832,-0.15959,-0.15959,-0.13718,0.26053,0.21571,-0.17219,-0.17499,-0.14838,0.22832,-0.14278,-0.18619,-0.16519,-0.15819 0.21365,0.1913,0.25835,0.1913,0.3254,0.25835,0.1913,0.16896,0.21365,0.10191,-0.032182,0.034864,-0.032182,0.034864,-0.032182,-0.23332,-0.099228,-0.14393,-0.16627,-0.054531,-0.23332,-0.21097,-0.34506,-0.32271,-0.27802 -0.12563,-0.12823,-0.12953,-0.13213,-0.12823,-0.089263,-0.099654,-0.09186,-0.097056,-0.095757,-0.06848,-0.095757,-0.10095,-0.097056,-0.090562,-0.074974,-0.086665,-0.085366,-0.090562,-0.084067,0.42252,0.40953,0.39784,0.38615,0.37576 0.14125,0.14905,0.1471,0.1588,-0.26823,0.14125,0.1588,0.14905,-0.25848,-0.26823,0.1588,0.14905,0.14125,-0.26823,-0.27993,0.1549,0.14905,0.16075,-0.25653,-0.27408,0.1549,0.14125,0.1432,-0.25653,-0.26823 0.17197,0.12577,-0.22177,-0.23166,-0.21297,0.19066,0.16207,-0.17777,-0.22616,-0.20857,0.22806,0.17747,0.14447,-0.21517,-0.20747,0.24565,0.20166,0.15437,-0.19207,-0.20197,0.26215,0.22476,0.17966,-0.17777,-0.19537 0.2499,0.17708,-0.18699,-0.2598,-0.24524,0.2499,0.17708,-0.20155,-0.24524,-0.2598,0.19165,0.16252,-0.085046,-0.21611,-0.17242,0.22077,0.2499,0.17708,-0.085046,-0.11417,0.23533,0.23533,0.075144,-0.18699,-0.1433 -0.047907,-0.048572,-0.048128,-0.048461,-0.048461,-0.043805,-0.043472,-0.043805,-0.044026,-0.044359,-0.040257,-0.039924,-0.039592,-0.040811,-0.040922,-0.038816,-0.036709,-0.036377,-0.035822,-0.03682,0.97947,-0.035601,-0.033162,-0.031831,-0.031831 0.25011,0.28627,0.28352,0.10503,0.099535,0.17276,0.16956,0.16819,0.097705,0.096789,0.17002,0.17139,0.099535,0.094501,0.10274,-0.22953,-0.23365,-0.23411,-0.23594,-0.23777,-0.23777,-0.23777,-0.23731,-0.24098,-0.24281 0.19032,0.18907,0.18907,-0.15444,-0.24438,0.19282,0.19032,0.19282,-0.23064,-0.25188,0.18907,0.18782,-0.14445,-0.18567,-0.24688,0.19282,0.18782,-0.15195,-0.15819,-0.24188,0.19032,0.19032,0.18907,-0.2144,-0.24688 -0.11688,-0.1441,-0.1441,-0.17132,-0.19854,-0.11688,-0.11688,-0.11688,-0.1441,-0.1441,-0.089653,-0.06243,-0.11688,-0.1441,-0.12595,-0.06243,-0.026134,-0.06243,0.055534,0.22794,0.32776,0.33683,0.36406,0.37313,0.4185 0.10491,0.10806,0.10987,0.096975,-0.39984,0.10789,0.10392,0.093832,0.089863,-0.39984,0.10624,0.10409,0.093502,0.089532,-0.39967,0.10591,0.10723,0.093005,0.09069,-0.39984,0.10061,0.10458,0.098298,0.090029,-0.39984 0.30276,0.069867,0.069867,-0.19213,-0.19213,0.4192,0.12809,-0.13391,0.011644,-0.27947,0.30276,0.12809,-0.13391,-0.19213,-0.27947,0.12809,0.21542,-0.13391,-0.1048,-0.1048,0.30276,0.069867,-0.13391,0.011644,-0.27947 0.38585,0.25648,0.12281,-0.041051,-0.11436,0.35135,0.20474,0.088312,-0.071236,-0.15748,0.27373,0.10125,-0.023803,-0.097108,-0.24803,0.17024,0.019318,-0.088484,-0.20491,-0.29978,0.1185,-0.0065544,-0.12298,-0.24803,-0.36877 -0.23839,-0.23839,-0.23656,-0.23656,-0.23735,-0.2363,-0.23577,-0.2342,-0.2342,-0.23708,0.24467,0.20848,0.16599,0.11118,0.06188,0.25122,0.20113,0.16442,0.11223,0.055062,0.25516,0.20271,0.15708,0.11433,0.059258 0.3267,0.2461,0.2461,0.2461,0.2461,0.1655,0.13863,0.2461,0.0849,0.2461,-0.13004,-0.13004,-0.049435,-0.049435,0.0849,-0.18377,-0.13004,-0.18377,-0.13004,-0.049435,-0.26437,-0.34497,-0.26437,-0.18377,-0.18377 -0.29748,-0.15087,-0.2575,-0.29748,-0.33747,-0.070905,-0.29748,-0.32414,-0.12422,-0.15087,0.10236,0.11569,0.15567,0.15567,0.11569,0.075703,0.20898,0.18233,0.169,0.15567,0.12902,0.24897,0.169,0.19566,0.12902 0.256,0.26275,0.19861,-0.12543,-0.19632,0.256,0.256,0.18511,-0.15919,-0.21657,0.23574,0.19861,-0.078176,-0.20644,-0.21657,0.21211,0.14798,-0.16931,-0.20307,-0.21657,0.20874,-0.047797,-0.16931,-0.20307,-0.20982 -0.16083,-0.16099,-0.16194,-0.16131,-0.16178,-0.15323,-0.15434,-0.15529,-0.1564,-0.15861,-0.15925,-0.15925,-0.15988,-0.15909,-0.15861,0.3863,0.19896,0.20039,0.20498,0.20403,0.38694,0.19881,0.2015,0.20086,0.19801 0.4305,0.40961,0.39707,0.38454,0.37201,-0.083392,-0.070858,-0.070858,-0.095926,-0.083392,-0.091748,-0.10846,-0.091748,-0.11682,-0.10428,-0.1001,-0.12099,-0.11682,-0.091748,-0.1001,-0.11682,-0.11682,-0.1001,-0.10846,-0.10428 -0.11272,-0.11272,-0.11272,-0.11272,-0.11535,-0.10658,-0.10833,-0.11009,-0.10658,-0.10833,-0.096058,-0.090798,-0.089044,-0.10132,-0.099565,-0.08203,-0.092551,-0.083784,-0.076769,-0.073262,0.44403,0.42211,0.40019,0.37038,0.3546 0.32488,0.32204,0.44615,0.44455,0.44331,-0.084305,-0.08466,-0.085014,-0.085192,-0.085724,-0.10186,-0.10203,-0.10292,-0.10328,-0.10328,-0.10452,-0.10505,-0.10434,-0.10469,-0.10434,-0.10434,-0.10381,-0.10452,-0.10381,-0.10328 0.14723,0.10367,0.10367,0.19079,0.13634,0.14723,0.081893,0.19079,0.1799,0.20168,0.15812,0.15812,0.16901,0.15812,0.20168,-0.12502,-0.10324,-0.19036,-0.15769,-0.16858,-0.27748,-0.34282,-0.32104,-0.33193,-0.31015 0.25475,0.26371,-0.15856,-0.15883,-0.15802,0.25516,0.26371,-0.15694,-0.15856,-0.15775,0.25991,0.26493,-0.1587,-0.1587,-0.16046,0.26194,0.26927,-0.15883,-0.15965,-0.15965,0.016614,0.27144,-0.1587,-0.15897,-0.15911 -0.11981,-0.124,-0.11981,-0.11981,-0.12121,-0.10026,-0.10864,-0.10585,-0.10585,-0.10306,-0.10026,-0.086299,-0.084902,-0.091884,-0.083506,-0.089092,-0.080713,-0.084902,-0.086299,-0.079317,0.39547,0.40105,0.40524,0.39826,0.39547 0.14555,0.15756,0.15155,0.14555,0.15155,0.15956,0.16958,0.15756,0.16958,0.15556,0.16958,0.18159,0.18159,0.17158,0.17759,-0.26298,-0.24095,-0.24295,-0.23494,-0.24896,-0.24295,-0.24095,-0.22292,-0.25296,-0.25497 0.20935,0.0088389,0.010658,-0.27442,-0.27397,0.19571,0.19889,0.0097483,-0.27397,-0.27079,0.1848,0.19662,0.0061108,-0.2717,-0.27306,0.18025,0.18343,0.19844,0.01384,-0.27306,0.1848,0.1848,0.1898,0.024753,-0.26988 -0.018058,-0.033741,-0.04905,-0.04569,-0.041209,-0.020298,-0.0315,-0.04905,-0.04905,-0.045316,-0.023659,-0.044569,-0.048303,-0.048303,-0.044569,-0.021045,-0.044943,-0.047557,-0.052411,-0.038222,0.97856,-0.045316,-0.04905,-0.049797,-0.037848 -0.23793,0.010259,0.16745,0.18399,0.15917,-0.32066,-0.03938,0.12608,0.20054,0.16745,-0.3703,-0.19657,0.076443,0.18399,0.16745,-0.32894,-0.12211,0.059897,0.18399,0.16745,-0.36203,-0.22966,0.051624,0.10954,0.19227 -0.3133,-0.16988,-0.11284,0.24244,0.24896,-0.17803,-0.16662,-0.13077,0.23266,0.22288,-0.17151,-0.14055,-0.12914,0.22777,0.21473,-0.21877,-0.16499,-0.11284,0.22451,0.20495,-0.20411,-0.21877,0.21473,0.20332,0.19518 0.11622,0.24829,0.1309,0.16024,0.11622,0.21894,0.20427,0.1309,0.16024,0.057524,0.24829,0.18959,0.14557,0.1309,0.028175,-0.10389,-0.089221,-0.19194,-0.19194,-0.20662,-0.26531,-0.23596,-0.35336,-0.32401,-0.32401 -0.1773,-0.25211,-0.15236,0.16558,0.24039,-0.18977,-0.26458,0.034662,0.28403,0.19675,-0.18353,-0.23341,0.065833,0.23416,0.20298,-0.24588,-0.22094,0.13441,0.21545,0.21545,-0.23964,-0.2147,0.053365,0.15935,0.17181 0.012607,-0.061034,-0.047778,-0.040414,-0.058088,0.0081889,-0.059561,-0.04336,-0.041887,-0.062506,-0.025686,-0.05367,-0.056615,-0.041887,-0.05367,-0.047778,-0.030104,-0.046305,-0.038941,-0.044833,0.97583,-0.041887,-0.03305,-0.028632,-0.038941 0.26469,-0.14004,-0.15618,-0.16239,-0.14128,0.26469,0.26717,-0.14252,-0.1748,-0.12763,0.26469,0.26469,-0.14004,-0.17108,-0.13756,0.26717,0.26717,-0.12763,-0.18598,-0.14625,0.26717,0.26717,-0.13135,-0.15866,-0.15122 -0.32197,-0.095685,-0.095685,0.098271,0.2599,-0.25732,-0.12801,0.001293,0.16292,0.32455,-0.19266,-0.12801,0.065945,0.16292,0.1306,-0.32197,-0.19266,-0.12801,0.16292,0.22758,-0.22499,-0.095685,0.19525,0.001293,0.38921 0.18846,0.2049,-0.21235,-0.21332,-0.21371,0.19407,0.19949,-0.1961,-0.19978,-0.20636,0.22328,0.36565,-0.16689,-0.17231,-0.17289,0.22521,0.22618,-0.1491,-0.14562,-0.14658,0.2227,0.22134,0.15615,-0.12086,-0.11157 -0.27662,-0.14208,0.046283,-0.0075345,0.26156,-0.27662,-0.14208,-0.061352,0.20774,0.12701,-0.24972,-0.11517,0.073192,0.18083,0.3961,-0.24972,-0.16899,0.15392,0.073192,0.20774,-0.22281,-0.24972,-0.061352,0.26156,0.23465 0.3774,-0.081089,-0.075635,-0.14006,-0.13631,0.44353,-0.082453,-0.12097,-0.13938,-0.13768,0.38081,-0.083134,-0.078362,-0.076317,-0.13768,0.38081,-0.082112,-0.081089,-0.076317,-0.13768,0.39955,-0.080407,-0.080748,-0.07768,-0.076998 0.34233,0.31209,0.35745,0.25161,0.17601,0.19113,0.16088,0.23649,0.17601,-0.020564,-0.0054435,-0.081047,0.0096773,-0.096168,-0.17177,-0.15665,-0.14153,-0.12641,-0.12641,-0.27762,-0.17177,-0.18689,-0.17177,-0.18689,-0.29274 -0.1961,-0.1961,-0.20018,-0.19474,-0.1961,-0.17297,-0.15256,-0.14712,-0.12535,-0.11582,-0.12126,-0.10494,-0.10358,-0.098133,-0.13895,-0.1063,0.26381,0.25156,0.2502,0.29238,0.2815,0.25701,0.25565,0.26789,0.2502 -0.042126,-0.047169,-0.045728,-0.05005,-0.044287,-0.031321,-0.037804,-0.042847,-0.043567,-0.045008,-0.027719,-0.037804,-0.039965,-0.041406,-0.042847,-0.034202,-0.039245,-0.039965,-0.043567,-0.045008,0.97934,-0.022677,-0.046448,-0.042847,-0.045728 0.25254,-0.061118,-0.061832,-0.21099,-0.20028,0.21436,0.20365,-0.062902,-0.21634,-0.20706,0.21543,0.20187,-0.063616,-0.21563,-0.21991,0.21685,0.21257,0.20579,-0.21919,-0.21848,0.21436,0.23719,0.22042,-0.22062,-0.21705 -0.047149,-0.035101,-0.056788,-0.060001,-0.049559,-0.045944,-0.045543,-0.053976,-0.060804,-0.05237,-0.045543,-0.047149,-0.040322,-0.050764,-0.060402,-0.046346,-0.047952,0.00064258,-0.006988,-0.059197,0.97455,-0.011807,0.0030522,0.0058635,-0.060402 -0.026814,-0.058262,-0.068194,-0.089711,-0.089711,-0.010262,-0.07978,-0.036745,-0.059918,0.0079449,-0.016883,-0.026814,-0.0036414,-0.036745,-0.026814,-0.013573,-0.0069518,-0.026814,-0.053297,-0.071504,0.96961,-0.00033104,-0.030124,-0.081435,-0.063228 0.39569,0.29602,-0.027907,-0.17741,-0.22725,0.44552,0.046845,-0.052825,-0.10266,-0.20233,0.37077,-0.027907,-0.027907,-0.20233,-0.052825,0.14651,0.096679,-0.052825,-0.20233,-0.20233,0.14651,0.096679,-0.077742,-0.20233,-0.20233 -0.050397,-0.052156,-0.052156,-0.051863,-0.054503,-0.048637,-0.049224,-0.049517,-0.047464,-0.04981,-0.045998,-0.043945,-0.043651,-0.043651,-0.039546,-0.042772,-0.030747,-0.029867,-0.028988,-0.027814,0.97842,-0.017843,-0.021656,-0.026055,-0.030161 0.19973,0.2612,-0.15592,-0.16558,-0.14187,0.11894,0.14001,-0.15505,-0.1691,-0.1647,0.13562,0.29544,-0.14626,-0.17963,-0.16295,0.32442,0.29632,-0.14978,-0.16822,-0.15944,0.30247,0.30071,-0.15856,-0.15241,-0.14539 0.12,0.12,0.18207,0.037242,-0.35587,0.078623,0.12,0.099313,-0.045518,-0.43863,0.18207,0.14069,0.057932,0.078623,-0.43863,0.099313,0.078623,0.12,0.037242,-0.43863,0.037242,0.18207,0.12,0.057932,-0.23173 -0.044287,-0.048341,-0.043663,-0.047405,-0.045534,-0.040544,-0.048341,-0.046782,-0.053643,-0.053331,0.086078,-0.043039,-0.045534,-0.055202,-0.062687,0.092628,-0.044287,-0.043039,-0.059881,-0.065494,0.96058,-0.0814,-0.048029,-0.047405,-0.07142 0.25726,0.18434,0.18434,0.038501,-0.12192,0.28643,0.22809,0.15517,-0.063585,-0.26776,0.24267,0.14059,0.0093336,-0.092753,-0.29693,0.18434,0.126,-0.049001,-0.22401,-0.34068,0.15517,-0.034418,-0.092753,-0.26776,-0.34068 0.18918,0.21356,0.17699,0.10385,0.091665,0.17699,0.21356,0.10385,0.11604,0.091665,0.17699,0.14042,0.17699,0.12823,0.10385,-0.16431,-0.10337,-0.054609,-0.066798,-0.091177,-0.37153,-0.34716,-0.33497,-0.32278,-0.34716 0.26846,0.26718,-0.14136,-0.14494,-0.15043,0.26641,0.26603,-0.14417,-0.14877,-0.15644,0.26858,0.26679,-0.14647,-0.15043,-0.15746,0.26424,0.26833,-0.14966,-0.15477,-0.15452,0.2636,-0.14941,-0.15145,-0.1503,-0.14903 0.31852,0.31968,0.22304,0.16645,0.165,0.32433,0.31736,0.22217,0.17254,0.16064,-0.1615,-0.16208,-0.15976,-0.16615,-0.15599,-0.15599,-0.15744,-0.15744,-0.16005,-0.16121,-0.15715,-0.15947,-0.15831,-0.15918,-0.15802 -0.42922,-0.36319,-0.34117,-0.40721,-0.33017,-0.011006,-0.044023,-0.044023,0,0,0.088045,0.066034,0.055028,0.088045,0.088045,0.15408,0.17609,0.14307,0.13207,0.12106,0.15408,0.13207,0.17609,0.1981,0.1981 -0.34139,-0.0029014,0.045455,-0.027079,0.28723,-0.26886,-0.027079,0.021277,0.16634,0.26306,-0.2205,-0.075435,0.045455,0.11799,0.16634,-0.41393,-0.14797,-0.027079,0.14217,0.28723,-0.2205,-0.29304,0.11799,0.16634,0.23888 0.17695,0.15609,0.02194,-0.30001,-0.34473,0.15907,0.15609,0.10541,-0.27914,-0.35069,0.15609,0.14714,0.12031,-0.09432,-0.32982,0.12926,0.15311,0.12628,0.027902,-0.32386,0.15907,0.16801,0.15609,0.11137,-0.2076 -0.23389,-0.23411,-0.23476,-0.23476,-0.23498,-0.23455,-0.2352,-0.2352,-0.23498,-0.23563,0.12805,0.12435,0.12718,0.13348,0.13044,0.12739,0.12326,0.13261,0.13305,0.13479,0.12674,0.26934,0.13066,0.12826,0.39847 -0.1046,-0.14446,-0.13649,-0.12055,-0.12055,-0.088655,-0.088655,-0.14446,-0.12055,-0.14446,-0.056765,-0.080683,-0.1046,-0.13649,-0.13649,0.062824,-0.016902,0.0070159,-0.064737,-0.080683,0.46145,0.48537,0.50929,0.20633,0.1585 0.09889,0.10408,0.10408,0.095428,-0.40837,0.10582,0.09889,0.10408,0.091965,-0.40664,0.10755,0.11101,0.10582,0.091965,-0.39452,0.091965,0.1162,0.09889,0.088502,-0.38933,0.091965,0.10408,0.10062,0.086771,-0.39972 0.39363,0.40145,0.41708,0.39363,0.38582,-0.083166,-0.083166,-0.10662,-0.083166,-0.07535,-0.07535,-0.090983,-0.12225,-0.098799,-0.090983,-0.11443,-0.067533,-0.090983,-0.098799,-0.10662,-0.090983,-0.11443,-0.12225,-0.13788,-0.13788 -0.045663,-0.046196,-0.050992,-0.05419,-0.053657,-0.0398,-0.042998,-0.044597,-0.045663,-0.048327,-0.032872,-0.037669,-0.0398,-0.042998,-0.045663,-0.032872,-0.034471,-0.036603,-0.0398,-0.0398,0.97919,-0.02701,-0.030207,-0.032339,-0.035004 -0.32979,-0.287,-0.22994,-0.27274,-0.287,-0.13009,-0.14436,-0.13009,-0.087298,-0.14436,0.012553,-0.0017117,0.083875,0.041082,-0.0017117,0.06961,0.1124,0.06961,0.18373,0.14093,0.055346,0.24078,0.34063,0.42622,0.26931 -0.30826,-0.23791,0.17632,0.15288,0.16069,-0.27699,-0.20665,0.1138,0.18414,0.15288,-0.2301,-0.24573,0.051272,0.19977,0.18414,-0.16757,-0.1832,-0.011255,0.23885,0.23104,-0.1832,-0.17539,-0.13631,0.25448,0.2623 -0.033245,-0.018403,-0.040921,-0.046039,-0.047063,-0.04348,-0.041433,-0.053716,-0.050133,-0.046039,-0.022497,-0.033245,-0.042968,-0.053204,-0.046039,-0.014821,-0.04348,-0.033245,-0.053204,-0.03478,0.97853,-0.045527,-0.046039,-0.051157,-0.037851 -0.055644,-0.054167,-0.054782,-0.055152,-0.055644,-0.04912,-0.047643,-0.048012,-0.047643,-0.048381,-0.041734,-0.03878,-0.038411,-0.03878,-0.039519,-0.037549,-0.033733,-0.031517,-0.03201,-0.032625,0.97848,-0.026717,-0.023516,-0.023516,-0.023885 -0.061449,-0.050397,-0.044081,-0.037766,-0.039345,-0.050397,-0.040924,-0.036187,-0.029872,-0.040924,-0.047239,-0.047239,-0.031451,-0.040924,-0.044081,-0.023556,-0.033029,-0.037766,-0.04566,-0.04566,0.97901,-0.026714,-0.040924,-0.037766,-0.04566 0.12896,0.096393,-0.098998,-0.098998,-0.32695,0.25922,0.096393,-0.0013026,-0.26182,-0.16413,0.29178,0.096393,-0.098998,-0.033868,-0.26182,0.29178,0.22665,-0.0013026,-0.13156,-0.19669,0.35691,0.22665,-0.0013026,-0.35952,-0.033868 0.080179,0.076216,0.076216,0.070768,-0.40224,0.10569,0.094295,0.087856,0.10519,-0.40026,0.11089,0.11213,0.10172,0.11435,-0.40001,0.13986,0.098505,0.096276,0.097267,-0.39605,0.13342,0.099248,0.096276,0.097762,-0.39555 -0.2395,-0.23877,-0.23974,-0.24071,-0.24022,-0.23877,-0.24022,-0.24022,-0.23998,-0.23998,0.13207,0.13787,0.15335,0.13425,0.29211,0.14102,0.13256,0.13449,0.14561,0.29429,0.13981,0.13546,0.13546,0.14416,0.14561 0.14716,0.16971,-0.21786,-0.2087,-0.21645,0.15773,0.17606,0.15421,-0.22631,-0.23054,0.16478,0.18804,0.15351,-0.23407,-0.23054,0.18733,0.19861,0.15844,-0.22209,-0.22772,0.19579,0.20213,0.21975,-0.22702,-0.23195 -0.046389,-0.050491,-0.050491,-0.038183,-0.045705,-0.04297,-0.049124,-0.053227,-0.042286,-0.045705,-0.045705,-0.049124,-0.045705,-0.040234,-0.047072,-0.037499,-0.040234,-0.031345,-0.04844,-0.029294,0.97794,-0.031345,-0.025191,-0.050491,0.0083149 -0.16272,-0.17668,-0.15341,0.27015,0.31669,-0.15807,-0.17203,-0.18134,0.25153,0.24222,-0.15807,-0.16272,-0.064977,0.25153,0.26549,-0.16272,-0.20927,-0.13479,0.25153,0.24687,-0.15341,-0.18134,-0.17203,0.13517,0.1724 0.00010603,-0.026403,-0.015799,-0.071467,-0.074118,0.04252,0.0054078,-0.060864,-0.066165,-0.084722,0.016011,-0.026403,-0.044959,-0.068816,-0.10063,0.079632,-0.026403,-0.026403,-0.11123,-0.11918,0.94646,0.053123,-0.021101,-0.084722,-0.11388 -0.26589,-0.23566,0.1301,0.1694,0.1694,-0.26589,-0.24171,0.03035,0.15731,0.1694,-0.2538,-0.22962,0.13917,0.1422,0.14824,-0.2538,-0.22357,0.1422,0.1694,0.1694,-0.26589,-0.16311,0.25404,0.19963,0.2087 -0.29722,-0.18627,0.18555,0.12258,0.10459,-0.3272,-0.24024,0.19754,0.11059,0.20954,-0.27023,-0.19826,0.17056,0.11658,0.21853,-0.25224,-0.18927,0.14657,0.12558,0.23952,-0.23125,-0.19527,0.098592,0.15856,0.18255 -0.34815,-0.32859,-0.2308,-0.26991,-0.21124,-0.133,-0.17212,-0.093883,-0.15256,-0.11344,0.023471,0.0039118,0.062589,-0.015647,0.023471,-0.035206,0.16038,0.082148,0.12127,0.31686,0.21906,0.1995,0.31686,0.2973,0.27774 -0.24164,-0.24912,0.15554,0.15234,0.19,-0.24325,-0.24672,0.15741,0.15287,0.15661,-0.24164,-0.24619,0.15447,0.15314,0.18759,-0.24218,-0.24672,0.15314,0.16249,0.18679,-0.24432,-0.24405,0.1534,0.15234,0.17771 -0.15944,-0.15944,-0.12902,-0.1138,-0.12902,-0.15944,-0.14423,-0.1138,-0.14423,-0.12902,-0.14423,-0.18987,-0.17466,-0.14423,-0.14423,0.083982,0.0079113,0.068768,0.099196,0.14484,0.34262,0.29698,0.37305,0.37305,0.38826 0.15234,0.15116,0.15627,0.15352,-0.26681,0.15313,0.14959,0.15548,-0.26681,-0.26799,0.14841,0.14998,0.15077,-0.26446,-0.26839,0.14802,0.14763,0.14527,-0.26485,-0.26878,0.14645,0.14684,0.14488,-0.26721,-0.26446 0.2077,0.11498,0.32361,0.27724,0.34679,0.18452,0.2077,0.13816,0.13816,0.16134,-0.07047,0.022254,0.068616,-0.024108,0.022254,-0.16319,-0.11683,-0.23274,-0.093651,-0.20956,-0.23274,-0.30228,-0.25592,-0.25592,-0.25592 0.36632,0.40738,0.32525,0.31156,0.38,0.065159,0.11991,0.10623,0.010404,0.024093,-0.16755,-0.16755,-0.085419,-0.085419,-0.085419,-0.15386,-0.14017,-0.20862,-0.16755,-0.16755,-0.1128,-0.20862,-0.1128,-0.12649,-0.12649 -0.040538,-0.040538,-0.041036,-0.043025,-0.052476,-0.040041,-0.040538,-0.040787,-0.045015,-0.053719,-0.033077,-0.031585,-0.042031,-0.055212,-0.050984,-0.034569,-0.024124,-0.050984,-0.05546,0.0009948,0.97789,-0.023378,-0.032331,-0.052227,-0.055212 0.4166,-0.089919,-0.10036,-0.079476,-0.087309,0.40354,-0.079476,-0.097752,-0.09253,-0.09253,0.40354,-0.071643,-0.10558,-0.11081,-0.10558,0.37743,-0.09253,-0.089919,-0.12125,-0.11603,0.3931,-0.09253,-0.11342,-0.12125,-0.1343 -0.22065,-0.26252,-0.27647,-0.26601,-0.28694,0.027075,-0.109,-0.1718,-0.23461,-0.24856,0.17013,0.14919,0.041032,-0.084575,-0.15785,0.22944,0.21549,0.17711,0.10383,0.061966,0.24689,0.2434,0.2434,0.21897,0.19106 -0.14128,-0.16135,-0.16135,-0.14128,-0.20149,-0.16135,-0.10115,-0.18142,-0.10115,-0.28176,-0.061008,-0.061008,-0.12121,-0.14128,-0.081077,0.039334,0.13968,0.019266,0.039334,0.09954,0.34036,0.30022,0.40057,0.34036,0.3805 -0.065283,-0.06256,-0.06619,-0.075719,-0.046226,-0.06619,-0.06256,-0.062107,-0.038966,-0.069366,-0.034429,-0.03942,-0.042596,-0.03216,-0.030799,-0.036698,-0.031253,-0.031707,-0.01628,0.0014156,0.97421,-0.028984,-0.031707,-0.0044829,5.4448e-05 0.18835,0.11859,0.048831,-0.29996,-0.26508,0.15347,-0.055806,-0.055806,-0.020927,-0.12556,0.36274,0.2581,0.048831,-0.090685,-0.26508,0.29298,0.15347,-0.090685,-0.26508,-0.33484,0.32786,0.08371,0.08371,-0.055806,-0.19532 0.14892,0.2287,0.26859,0.20211,0.40156,0.14892,0.2553,0.2553,0.2553,0.20211,-0.1569,-0.1702,-0.10371,-0.1569,-0.090418,-0.13031,-0.1702,-0.1835,-0.1569,-0.13031,-0.19679,-0.1569,-0.21009,-0.13031,-0.22339 0.34214,0.34214,0.40984,0.40984,0.34214,0.048748,-0.018957,-0.086663,0.071316,0.071316,-0.15437,-0.10923,-0.064094,-0.086663,-0.1318,-0.17694,0.0036109,-0.24464,-0.10923,-0.17694,-0.1318,-0.1318,-0.1318,-0.15437,-0.1318 0.18911,0.14123,0.14024,-0.26607,-0.26593,0.18889,0.14123,0.14002,-0.26585,-0.26607,0.13967,0.1396,0.1396,-0.26564,-0.26585,0.18762,0.14109,0.14066,-0.266,-0.26607,0.14095,0.14073,0.14095,0.14166,-0.26578 -0.15068,-0.12998,-0.14378,0.063196,0.37366,-0.12308,-0.13688,-0.14378,0.090792,0.33916,-0.15068,-0.13688,-0.13688,0.056297,0.36676,-0.17137,-0.17827,-0.14378,0.083893,0.36676,-0.14378,-0.15758,-0.13688,0.090792,0.35296 -0.26515,-0.045007,-0.045007,0.29744,0.12622,-0.31407,-0.093928,-0.020547,0.10176,0.27298,-0.26515,-0.16731,-0.093928,0.24852,0.15068,-0.19177,-0.11839,-0.045007,0.0039137,0.3219,-0.33853,-0.069468,0.028374,0.15068,0.37082 0.19388,0.20652,-0.043648,-0.22053,-0.22559,0.2023,0.20399,-0.042385,-0.034804,-0.22137,0.2023,0.34886,-0.043648,-0.035646,-0.22095,0.15387,0.18672,-0.035646,-0.034383,-0.41468,0.16903,0.18419,-0.028487,-0.035646,-0.41426 0.25782,0.21534,0.10916,0.056065,0.33215,0.25782,0.20472,0.066684,0.10916,0.19411,0.077302,0.11978,0.10916,0.10916,0.077302,-0.17754,-0.23063,-0.19878,-0.16692,-0.17754,-0.30496,-0.29434,-0.23063,-0.27311,-0.24125 0.20395,0.15523,0.15755,-0.21634,-0.22131,0.16285,0.15821,0.19136,-0.21716,-0.22794,0.16501,0.18871,0.19401,-0.21998,-0.23241,0.17014,0.17826,0.18738,-0.22197,-0.2344,0.17992,0.18473,-0.21965,-0.22611,-0.24004 -0.16272,-0.17134,-0.1541,-0.16272,-0.15841,-0.15841,-0.16272,-0.15841,-0.15841,-0.14117,-0.14548,-0.14979,-0.1304,-0.11101,-0.098081,-0.063606,-0.0097391,0.27468,0.28545,0.2639,0.30269,0.28761,0.28761,0.30269,0.29191 0.24533,0.22646,0.20758,0.22646,0.11323,0.33968,0.22646,0.24533,0.1321,0.056614,0.11323,0.11323,0,0,-0.075485,-0.22646,-0.1321,-0.16984,-0.1321,-0.22646,-0.30194,-0.22646,-0.22646,-0.22646,-0.30194 -0.23784,-0.23714,-0.23784,-0.23853,-0.24132,-0.23575,-0.23714,-0.23784,-0.23749,-0.23784,0.15018,0.14705,0.15192,0.15157,0.15192,0.24867,0.071187,0.075711,0.22431,0.2424,0.17524,0.075363,0.071535,0.21387,0.22779 0.1961,0.2151,0.1771,0.2151,0.12009,0.25311,0.1961,0.1581,0.1771,0.2151,0.1391,0.08209,0.08209,-0.10793,0.08209,-0.14594,-0.08893,-0.18394,-0.18394,-0.14594,-0.14594,-0.33596,-0.29795,-0.33596,-0.33596 0.21367,0.00046942,-0.08168,-0.23033,-0.20099,0.21367,0.12956,-0.15405,-0.22837,-0.22055,0.22736,0.23909,0.010249,-0.21859,-0.22642,0.19802,0.22149,0.2254,-0.18339,-0.22837,0.21367,0.23714,0.23323,-0.16383,-0.22642 -0.26181,-0.0076255,-0.19826,0.18301,0.31011,-0.29358,-0.0076255,-0.071172,0.087694,0.31011,-0.13472,-0.16649,-0.039399,0.21479,0.21479,-0.26181,-0.10294,-0.0076255,0.024148,0.34188,-0.32536,-0.16649,0.024148,0.024148,0.31011 0.13406,0.12279,0.0063837,-0.016147,-0.068718,0.181,0.19977,0.066465,-0.076228,-0.22268,0.19977,0.17349,-0.0011265,-0.28276,-0.24521,0.23732,0.18475,0.13593,-0.28464,-0.32594,0.24295,0.25422,0.015771,-0.31092,-0.32031 0.34827,0.34827,0.28829,0.35827,0.32828,-0.031588,0.098364,0.10836,0.038386,0.19833,-0.021592,-0.12156,-0.061577,-0.0015994,-0.031588,-0.15154,-0.21152,-0.12156,-0.18153,-0.12156,-0.23151,-0.21152,-0.19153,-0.20153,-0.22152 -0.0346,-0.042374,-0.044494,-0.046614,-0.048734,-0.03884,-0.040254,-0.044494,-0.044494,-0.046614,-0.03672,-0.040254,-0.042374,-0.044494,-0.042374,-0.024,-0.038134,-0.042374,-0.039547,-0.038134,0.97952,-0.03884,-0.038134,-0.040254,-0.042374 -0.0032245,-0.030095,-0.03075,-0.049756,-0.052378,-0.03075,-0.035993,-0.042547,-0.043203,-0.062864,-0.038615,-0.026163,-0.044513,-0.04779,-0.059587,-0.036649,-0.040581,-0.045169,-0.045824,-0.049101,0.97788,-0.018954,-0.043203,-0.053689,-0.04648 -0.043467,-0.043467,-0.043467,-0.042367,-0.045667,-0.041267,-0.044567,-0.040167,-0.043467,-0.043467,-0.045667,-0.037968,-0.042367,-0.044567,-0.044567,-0.045667,-0.042367,-0.039068,-0.041267,-0.041267,0.97942,-0.023669,-0.023669,-0.036868,-0.039068 -0.20802,-0.12134,0.052005,0.052005,0.31203,-0.2658,0.080896,-0.063562,0.080896,0.36981,-0.2658,-0.12134,-0.03467,0.080896,0.31203,-0.17913,-0.092453,-0.12134,0.080896,0.34092,-0.41026,-0.17913,0.023113,0.080896,0.19646 0.041506,0.093388,0.067447,0.041506,-0.37355,0.24904,0.14527,0.093388,-0.010376,-0.37355,0.22309,0.041506,0.093388,-0.036318,-0.42544,0.17121,0.067447,0.093388,-0.010376,-0.45138,0.22309,0.14527,0.11933,-0.036318,-0.19197 0.10685,0.10379,0.10226,0.099202,-0.40109,0.10532,0.10073,0.097672,0.093082,-0.39803,0.10379,0.10379,0.096142,0.10379,-0.39803,0.10379,0.10073,0.097672,0.086962,-0.40262,0.10991,0.10073,0.093082,0.090022,-0.39956 0.11659,0.18857,0.18094,0.17829,0.15319,0.11548,0.11261,0.18404,0.19907,0.20007,0.12035,0.11327,0.18359,0.18205,0.19951,-0.2422,-0.24297,-0.24264,-0.24098,-0.24529,-0.24397,-0.2433,-0.24153,-0.24209,-0.24264 0.3963,0.23455,0.23455,0.13345,0.19411,0.11323,0.19411,0.17389,0.19411,0.17389,0.052571,-0.0080878,0.052571,0.052571,-0.0080878,-0.25072,-0.19006,-0.25072,-0.068747,-0.19006,-0.2305,-0.16984,-0.25072,-0.25072,-0.3316 -0.16446,-0.16243,-0.16081,0.2458,0.2539,-0.16203,-0.16203,-0.16446,0.22879,0.24215,-0.16081,-0.16122,-0.16486,0.22555,0.2377,-0.16486,-0.16081,-0.16203,0.23284,0.23203,-0.16446,-0.16446,-0.16284,0.311,0.23284 -0.22498,-0.22536,-0.2262,-0.22601,-0.2262,-0.22526,-0.22356,-0.22564,-0.22564,-0.22507,0.1534,0.1533,0.16028,0.1632,-0.22479,0.19516,0.18507,0.18055,0.17941,0.17913,0.18564,0.19751,0.18394,0.18215,0.17998 0.42053,0.073558,-0.030533,-0.099928,-0.27341,0.24704,0.14295,0.10826,-0.30811,-0.34281,0.14295,-0.030533,0.038861,-0.20402,-0.13462,0.24704,0.28174,-0.030533,-0.065231,-0.20402,0.28174,0.038861,0.073558,-0.20402,-0.16932 0.31471,0.24202,-0.18884,-0.18843,-0.17184,0.24058,0.23813,-0.18884,-0.19232,-0.16693,0.23383,0.23546,-0.18843,-0.19416,-0.16549,0.22502,0.22215,-0.18925,-0.01232,-0.16488,0.21212,0.21253,-0.18843,-0.01232,-0.16406 0.2715,-0.15076,-0.15361,-0.14863,-0.14365,0.2715,0.26012,-0.1529,-0.15574,-0.15219,0.26901,0.2498,-0.14863,-0.15219,-0.1497,0.26901,0.26048,-0.14614,-0.15148,-0.15148,0.27577,0.27186,-0.14507,-0.14187,-0.15503 -0.030349,-0.043097,-0.045415,-0.047218,-0.048763,-0.026615,-0.041938,-0.043484,-0.0449,-0.047476,-0.02816,-0.041423,-0.041938,-0.043484,-0.046445,-0.028804,-0.038204,-0.041166,-0.042711,-0.045415,0.97935,-0.037431,-0.040393,-0.040779,-0.043741 -0.15391,-0.15391,0.022998,0.15568,0.22202,-0.19814,-0.19814,0.067225,0.22202,0.11145,-0.24236,-0.22025,0.067225,0.19991,0.11145,-0.26448,-0.28659,0.089339,0.24413,0.26625,-0.35293,-0.24236,0.15568,0.17779,0.19991 -0.051806,-0.053255,-0.054497,-0.057602,-0.056774,-0.04663,-0.047251,-0.046009,-0.045802,-0.046009,-0.040833,-0.03897,-0.037935,-0.03897,-0.037521,-0.034623,-0.033795,-0.032552,-0.032966,-0.032552,0.97876,-0.029654,-0.027377,-0.028205,-0.02717 -0.056085,-0.055181,-0.05292,-0.054277,-0.05292,-0.053825,-0.053825,-0.054729,-0.052016,-0.055633,-0.053825,-0.053372,-0.054277,-0.054277,-0.055181,-0.052468,-0.054729,-0.05292,-0.05699,-0.054729,0.89706,0.35628,-0.05925,-0.055181,-0.054729 0.40968,0.43101,0.41679,0.40612,0.32791,-0.080912,-0.080912,-0.080912,-0.095132,-0.10224,-0.10224,-0.10224,-0.095132,-0.11291,-0.095132,-0.098687,-0.095132,-0.1058,-0.10935,-0.1058,-0.10935,-0.098687,-0.11646,-0.1058,-0.098687 0.27925,0.23513,0.31233,0.33439,0.27925,0.069702,0.13587,0.11382,0.13587,0.11382,-0.018528,-0.018528,0.025587,-0.0074995,0.0035292,-0.095729,-0.12882,-0.029557,-0.11779,-0.11779,-0.29425,-0.26116,-0.29425,-0.3163,-0.33836 0.18719,-0.046111,-0.12845,-0.046111,-0.12845,0.37932,-0.073558,-0.087281,-0.087281,-0.12845,0.42049,-0.073558,-0.16962,-0.087281,-0.12845,0.42049,-0.032387,-0.21079,-0.12845,-0.087281,0.47538,0.063677,-0.12845,-0.046111,-0.12845 0.29312,0.4202,0.27194,0.27194,0.16605,0.12369,0.16605,0.16605,0.16605,0.081328,0.017791,-0.10928,0.03897,-0.066926,-0.024568,-0.10928,-0.13046,-0.13046,-0.194,-0.21518,-0.17282,-0.17282,-0.23636,-0.2999,-0.32108 0.18261,0.18114,0.18408,-0.22131,-0.22621,0.18408,0.18261,0.17967,-0.22131,-0.22818,0.16986,0.18163,0.18408,-0.22131,-0.22867,0.16643,0.17231,0.17574,-0.22327,-0.22818,0.16937,0.16741,-0.2218,-0.22818,-0.23259 0.24792,-0.14648,-0.14531,-0.15144,-0.15115,0.25055,0.24354,-0.14852,-0.15115,-0.15261,0.25289,0.24354,-0.14531,-0.15086,-0.15612,0.25055,0.24413,-0.14415,-0.14619,-0.15261,0.32645,0.3282,-0.14561,-0.15028,-0.14998 -0.31333,-0.19328,-0.28332,-0.19328,-0.25331,-0.19328,-0.16327,-0.19328,-0.19328,-0.19328,0.04682,0.016807,0.04682,0.13686,0.016807,0.13686,0.19688,0.10685,0.2269,-0.043219,0.10685,0.31694,0.28692,0.31694,0.25691 -0.15263,-0.14435,-0.17746,0.070852,0.25295,-0.13608,-0.16091,-0.1278,0.021189,0.29434,-0.14435,-0.15263,-0.061582,0.054298,0.37711,-0.17746,-0.18574,-0.11952,0.18673,0.36055,-0.15263,-0.18574,-0.11952,0.17018,0.41022 -0.20692,-0.085201,0.15823,0.15823,0.15823,-0.34892,-0.14606,0.097373,0.097373,0.097373,-0.28806,-0.28806,0.036515,0.1988,0.21909,-0.28806,-0.14606,0.097373,0.21909,0.15823,-0.28806,-0.20692,0.097373,0.27995,0.21909 -0.20298,0.084256,-0.07532,0.14809,0.33958,-0.29873,-0.10724,0.084256,0.11617,0.18,-0.20298,-0.17107,-0.07532,0.11617,0.30766,-0.39447,-0.07532,-0.011489,0.020426,0.37149,-0.26681,-0.20298,-0.011489,0.11617,0.21192 0.17737,0.12217,0.15897,0.066975,0.21417,0.19577,0.19577,0.15897,0.066975,0.26937,0.17737,0.15897,0.14057,0.10377,0.10377,-0.098623,-0.19062,-0.19062,-0.17222,-0.13542,-0.30102,-0.28262,-0.28262,-0.37462,-0.28262 0.3052,0.36366,0.24673,0.42213,0.48059,0.071329,0.012863,0.012863,0.012863,0.071329,-0.10407,-0.16254,-0.074837,-0.1333,-0.16254,-0.1333,-0.19177,-0.045604,-0.10407,-0.10407,-0.1333,-0.221,-0.1333,-0.16254,-0.1333 0.17837,0.17635,0.17031,-0.23251,-0.24258,0.18844,0.19247,0.19045,-0.22445,-0.23251,0.17635,0.17837,0.17635,-0.20632,-0.23251,0.17031,0.17635,-0.21237,-0.21237,-0.23251,0.15823,0.17635,0.17031,-0.21841,-0.23251 0.10057,0.094735,0.093277,0.092402,-0.39153,0.1577,0.1545,0.093277,0.092402,-0.39882,0.098524,0.099691,0.091819,0.090362,-0.40319,0.091819,0.091819,0.090362,0.089196,-0.40028,0.092402,0.091819,0.090945,0.095026,-0.39882 0.1527,0.14995,0.15362,0.1495,-0.26521,0.14538,0.15179,0.15728,-0.26933,-0.26613,0.1495,0.14446,0.15087,-0.27025,-0.2643,0.14904,0.14538,0.15545,-0.26521,-0.26567,0.14812,0.14904,0.14767,-0.26613,-0.2675 0.15132,0.14377,0.14735,0.14219,-0.26716,0.15767,0.13782,0.15291,-0.26557,-0.26557,0.13504,0.16402,0.16005,-0.26716,-0.26676,0.13742,0.1537,0.15767,-0.26755,-0.26676,0.14377,0.15132,0.16244,-0.26398,-0.26795 0.31337,0.32942,0.13678,-0.087973,-0.07192,0.28126,0.15283,-0.10403,-0.16824,-0.18429,0.2652,-0.023759,-0.07192,-0.15219,-0.20035,0.32942,0.10467,-0.15219,-0.20035,-0.15219,0.31337,-0.023759,-0.13613,-0.24851,-0.24851 -0.037247,-0.042106,-0.0428,-0.046965,-0.046965,-0.040024,-0.0428,-0.042106,-0.043495,-0.034471,-0.041412,-0.042106,-0.0428,-0.041412,-0.034471,-0.015729,-0.040718,-0.043495,-0.040718,-0.038636,0.97932,-0.042106,-0.047659,-0.050436,-0.038636 -0.24157,-0.24075,-0.23911,-0.23993,-0.23911,-0.23993,-0.24157,-0.24075,-0.23911,-0.23829,0.15362,0.14912,0.14461,0.14912,0.35142,0.15321,0.15116,0.15239,0.15239,0.13724,0.15321,0.14092,0.13847,0.13806,0.13519 0.41965,0.39015,0.39727,0.38405,0.40643,-0.086957,-0.078819,-0.08594,-0.092044,-0.093061,-0.095096,-0.09713,-0.10425,-0.094078,-0.09713,-0.10323,-0.10832,-0.10527,-0.10527,-0.10425,-0.10425,-0.10934,-0.10934,-0.10832,-0.11544 -0.27624,-0.15401,-0.18457,-0.062337,0.33491,-0.21512,-0.062337,-0.062337,0.24324,0.27379,-0.30679,-0.15401,0.029335,0.15156,0.33491,-0.062337,-0.15401,-0.062337,0.15156,0.27379,-0.27624,-0.092894,-0.062337,0.12101,0.27379 0.24818,0.24767,0.13306,0.12793,0.12793,0.24253,0.12998,0.13666,0.12587,0.12587,0.2451,0.12381,0.12895,0.1269,0.12895,-0.23388,-0.23747,-0.24107,-0.24056,-0.23953,-0.2421,-0.2385,-0.24004,-0.24261,-0.24364 0.35771,0.040988,0.0037261,0.018057,-0.11809,0.36344,0.066784,0.059618,-0.23131,-0.15678,0.35771,-0.043567,-0.062198,-0.21984,-0.2571,0.36774,-0.080829,-0.060765,-0.086561,-0.17685,0.37061,-0.092294,-0.12526,-0.13242,-0.16252 0.40419,-0.099295,-0.090893,-0.10278,-0.11398,0.40201,-0.099046,-0.09556,-0.10278,-0.11255,0.39933,-0.076268,-0.092573,-0.10309,-0.11081,0.39678,-0.077761,-0.092324,-0.10266,-0.11336,0.39547,-0.099295,-0.096867,-0.10178,-0.11411 -0.23337,-0.32044,0.11494,0.20202,0.20202,-0.17531,-0.26239,0.05689,0.2891,0.23104,-0.20434,-0.14629,-0.059212,-0.001161,0.23104,-0.34947,-0.11726,0.027865,0.14397,0.26007,-0.26239,-0.088238,0.05689,0.17299,0.23104 -0.063295,-0.048378,-0.040643,-0.058323,-0.073241,-0.061638,-0.040643,-0.039538,-0.070478,-0.076556,0.031184,-0.05114,0.026764,-0.077661,-0.081528,0.047206,0.041129,-0.0069395,-0.079318,-0.093131,0.95664,0.010188,0.015713,-0.074898,-0.091473 0.13478,0.18739,0.18671,0.14045,0.19283,0.1375,0.14022,0.13795,0.14067,0.19714,0.18603,0.13818,0.1341,0.18625,0.19646,-0.24187,-0.24233,-0.24369,-0.24369,-0.24459,-0.24233,-0.24301,-0.24391,-0.24505,-0.24618 0.22003,0.20331,0.19495,0.16151,0.13643,0.18659,0.12807,0.12807,0.12807,0.12807,0.10299,0.10299,0.10299,0.12807,0.10299,-0.080922,-0.072562,-0.064202,-0.047483,-0.106,-0.34843,-0.39023,-0.37351,-0.34007,-0.33171 -0.038743,-0.043155,-0.03433,-0.03433,-0.056393,-0.03433,-0.036536,-0.039846,-0.043155,-0.040949,-0.035433,-0.036536,-0.042052,-0.043155,-0.046465,-0.036536,-0.035433,-0.043155,-0.045362,-0.046465,0.97947,-0.035433,-0.040949,-0.044259,-0.046465 -0.32244,-0.31541,-0.31541,-0.2873,-0.28027,-0.28027,-0.20999,-0.12566,-0.027268,0.028955,-0.069435,0.028955,0.043011,0.13437,0.13437,0.16248,0.19762,0.19762,0.18357,0.16248,0.21871,0.17654,0.14843,0.20465,0.21168 0.15989,0.15989,0.16052,-0.22543,-0.22533,0.16143,0.16197,0.16242,-0.22606,-0.22597,0.18655,0.18547,0.19042,-0.22416,-0.22524,0.18547,0.18961,0.19105,-0.22524,-0.22524,0.19024,0.19357,-0.2247,-0.2257,-0.22543 0.21431,0.21431,-0.081633,-0.15261,-0.26777,0.19824,-0.12716,0.20896,-0.13118,-0.31598,0.19557,0.19289,0.12861,-0.12181,-0.2892,0.19021,0.18753,0.14334,-0.14189,-0.27715,0.18218,0.16878,0.16075,-0.17403,-0.30527 0.28135,0.26114,0.26114,0.24093,0.32177,0.18029,0.24093,0.18029,0.059019,0.059019,0.018595,0.059019,-0.021829,-0.042041,-0.082465,-0.10268,-0.12289,-0.062253,-0.18352,-0.18352,-0.20374,-0.3048,-0.26437,-0.24416,-0.34522 -0.19931,-0.25545,-0.087022,0.2358,0.19369,-0.17124,-0.22738,-0.044915,0.30598,0.24984,-0.14317,-0.17124,-0.1572,0.24984,0.24984,-0.14317,-0.22738,-0.087022,0.17966,0.16562,-0.14317,-0.21335,-0.087022,0.22177,0.30598 0.15968,0.16101,0.16233,0.16275,-0.2664,0.15968,0.15877,0.15902,-0.26698,-0.2664,0.15902,0.15645,0.12654,-0.26582,-0.26557,0.1625,0.15761,0.12389,-0.2659,-0.26607,0.14634,0.12025,0.11909,-0.2659,-0.2659 0.14366,0.173,0.16759,-0.22376,-0.22285,0.14908,0.15089,0.15269,-0.22285,-0.22421,0.15675,0.15224,0.16398,-0.2215,-0.2224,0.24522,0.16849,0.14773,-0.2224,-0.2233,0.31203,0.16307,-0.21879,-0.2215,-0.22285 -0.030961,-0.042296,-0.040677,-0.043106,-0.043916,-0.03339,-0.040677,-0.037438,-0.041487,-0.043916,-0.03339,-0.035819,-0.043916,-0.041487,-0.045535,-0.03339,-0.039867,-0.039867,-0.045535,-0.049583,0.97949,-0.035819,-0.041487,-0.043106,-0.052822 0.45867,0.014872,-0.052936,-0.12265,-0.17408,0.44877,0.067062,-0.053698,-0.13903,-0.17179,0.51163,-0.0079846,-0.044174,-0.12227,-0.17636,0.23163,0.011444,-0.048365,-0.12532,-0.20265,0.07849,-0.0076037,-0.054841,-0.13865,-0.18017 -0.041511,-0.041511,-0.041511,-0.041511,-0.041511,-0.041913,-0.039496,-0.043122,-0.041913,-0.043122,-0.040705,-0.042316,-0.041108,-0.042316,-0.039496,-0.039093,-0.039093,-0.041511,-0.041913,-0.041913,0.97974,-0.032648,-0.041913,-0.041913,-0.036676 -0.21612,-0.023614,0.040555,0.11756,0.23306,-0.20329,-0.062116,0.09189,0.16889,0.25873,-0.20329,-0.12629,0.11756,0.10472,0.27156,-0.28029,-0.25462,-0.10062,0.2074,0.2459,-0.30596,-0.24179,-0.24179,0.079057,0.3229 0.39908,0.39714,0.40101,0.39811,0.40198,-0.11211,-0.069514,-0.080164,-0.086941,-0.084036,-0.1034,-0.1005,-0.10534,-0.090813,-0.11211,-0.10146,-0.10824,-0.11211,-0.10824,-0.10437,-0.097591,-0.1034,-0.10243,-0.10146,-0.11308 -0.11981,-0.11981,-0.12342,-0.11981,-0.11981,-0.096953,-0.10056,-0.093344,-0.093344,-0.098156,-0.10778,-0.09575,-0.096953,-0.092141,-0.083721,-0.098156,-0.09575,-0.084924,-0.086127,-0.069286,0.41307,0.40585,0.39262,0.39262,0.39142 -0.039571,-0.041707,-0.041707,-0.046515,-0.050254,0.0015597,-0.041707,-0.045981,-0.04972,-0.047583,0.0063672,-0.042241,-0.041707,-0.047583,-0.048651,-0.034763,-0.042776,-0.045981,-0.048117,-0.050788,0.97747,-0.037968,-0.045981,-0.047049,-0.047049 0.20744,0.22591,0.016132,-0.18552,-0.20841,0.21113,0.22517,0.015393,-0.18773,-0.21137,0.20449,0.21483,-0.18626,-0.2062,-0.21063,0.19931,0.22664,-0.19512,-0.2062,-0.21211,0.20005,0.21778,0.24363,-0.20251,-0.19586 0.13181,0.089741,0.11779,-0.26081,-0.42908,0.089741,0.1879,0.089741,-0.17668,-0.37299,0.13181,0.15985,0.089741,-0.092546,-0.34494,0.13181,0.1879,0.1879,0.019631,-0.30288,0.1879,0.13181,0.15985,0.089741,-0.20472 -0.036383,-0.029386,-0.060872,-0.078364,-0.095856,0.051076,-0.050377,-0.06437,-0.099354,-0.099354,0.019591,-0.039882,0.0055974,-0.095856,-0.11685,0.068568,-0.04338,-0.015393,-0.018891,-0.10985,0.94666,0.051076,0.0055974,-0.011895,-0.081862 0.19101,0.1957,-0.22242,-0.22539,-0.22335,0.18898,0.17633,0.17508,-0.22773,-0.2232,0.1857,0.16852,0.17024,-0.2282,-0.22554,0.16508,0.16774,0.18008,-0.22851,-0.22554,0.16696,0.1718,0.17711,-0.22476,-0.2257 0.17605,0.17251,-0.17123,-0.22262,-0.21376,0.17251,0.18314,-0.13934,-0.19249,-0.24919,0.17782,0.17605,0.18845,-0.2049,-0.25628,0.19023,0.192,0.192,-0.20313,-0.23147,0.21149,0.21858,0.22389,-0.15351,-0.23679 0.27317,0.2691,-0.15325,-0.15293,-0.15146,0.26747,0.26665,-0.15081,-0.14918,-0.14983,0.26551,0.2647,-0.14673,-0.14983,-0.14967,0.26486,0.26421,-0.14852,-0.14999,-0.15032,0.26421,-0.14934,-0.14869,-0.15048,-0.14885 -0.32934,-0.20553,-0.39124,-0.17457,-0.32934,-0.17457,-0.081715,-0.081715,-0.01981,-0.17457,0.042096,0.042096,-0.081715,0.073049,-0.081715,0.16591,0.22781,0.16591,0.104,0.011143,0.28972,0.22781,0.28972,0.28972,0.19686 -0.043251,-0.048968,-0.055066,-0.060401,0.00096045,-0.040964,-0.0463,-0.052398,-0.055828,-0.021145,-0.033722,-0.041726,-0.047824,-0.041726,-0.037153,-0.017334,-0.036009,-0.044394,-0.046681,-0.044394,0.9778,-0.034104,-0.037153,-0.042107,-0.050111 -0.022596,-0.028331,-0.04955,-0.039801,-0.055285,-0.023743,-0.032345,-0.042668,-0.044962,-0.056432,-0.023743,-0.028904,-0.043815,-0.042095,-0.054138,-0.032919,-0.027184,-0.043815,-0.048977,-0.055285,0.97816,-0.029478,-0.046683,-0.039801,-0.065608 0.11996,0.11835,0.11996,0.11352,-0.39705,0.10707,0.10466,0.10466,0.10707,-0.39946,0.10063,0.094993,0.092577,0.097409,-0.39946,0.094188,0.090162,0.087746,0.08694,-0.39946,0.091772,0.094993,0.094188,0.076471,-0.40188 -0.19342,-0.22309,-0.25276,-0.16376,-0.28242,-0.25276,-0.28242,-0.34176,-0.19342,-0.10443,0.10324,-0.015427,0.16257,0.10324,0.043906,0.19224,0.13291,0.28124,0.16257,0.19224,0.2219,0.19224,0.25157,0.10324,0.16257 0.028693,-0.074378,-0.075771,-0.082735,-0.0312,-0.014486,-0.081343,-0.043736,-0.091093,-0.10224,-0.032593,-0.033986,-0.046521,-0.063235,-0.092485,-0.0089143,0.013371,0.039836,-0.06045,-0.086914,0.95773,0.018943,0.031478,-0.0047357,-0.063235 -0.17451,-0.15914,-0.16597,0.27816,0.21838,-0.16938,-0.15914,-0.15572,0.25425,0.20813,-0.16938,-0.16426,-0.14889,0.27987,0.22179,-0.16938,-0.16938,-0.15059,0.27133,0.22862,-0.16768,-0.15572,-0.16084,0.26108,0.21838 -0.096523,-0.11089,-0.12525,-0.11089,-0.15398,-0.082159,-0.082159,-0.12525,-0.16834,-0.067796,-0.096523,-0.082159,-0.16834,-0.082159,-0.12525,-0.067796,-0.067796,0.0040218,-0.11089,-0.039069,0.46366,0.39184,0.36311,0.36311,0.37747 -0.22171,-0.19593,-0.13921,-0.10312,-0.10312,-0.17015,-0.12374,-0.10312,-0.092808,-0.092808,-0.15468,-0.046404,-0.061872,-0.10828,-0.07734,0.046404,0.010312,-0.067028,-0.082496,-0.010312,0.4692,0.31452,0.31452,0.37639,0.42279 0.37175,-0.037745,-0.091158,-0.037745,-0.14457,0.35395,-0.14457,-0.037745,-0.14457,-0.14457,0.31834,-0.091158,-0.091158,-0.091158,-0.14457,0.40736,0.015668,-0.091158,-0.14457,-0.23359,0.46078,-0.037745,0.015668,-0.091158,-0.14457 0.19981,-0.077704,-0.17565,-0.094028,-0.15933,0.24878,0.036567,-0.15933,-0.15933,-0.22462,0.26511,0.13451,-0.15933,-0.077704,-0.12668,0.41203,0.19981,-0.094028,-0.17565,-0.15933,0.49365,0.16716,-0.028731,-0.15933,-0.12668 0.3129,0.30814,-0.14333,-0.13858,-0.12907,0.32715,0.27012,-0.14333,-0.12907,-0.14333,0.30339,0.1228,-0.16709,-0.15759,-0.14808,0.3129,0.003992,-0.16709,-0.13383,-0.14808,0.30814,-0.086303,-0.15284,-0.14333,-0.13858 -0.047463,-0.048073,-0.045935,-0.045019,-0.043492,-0.024861,-0.04899,-0.043797,-0.042576,-0.04227,-0.03097,-0.04563,-0.043187,-0.043187,-0.044714,-0.031886,-0.046852,-0.037994,-0.041049,-0.040132,0.97936,-0.034329,-0.036773,-0.034329,-0.035856 -0.24118,-0.12107,0.023061,0.095126,0.14317,-0.2652,-0.097048,-0.00096087,0.26328,0.26328,-0.31324,-0.12107,0.071105,0.19121,0.071105,-0.31324,-0.24118,0.14317,0.11915,0.19121,-0.38531,-0.049004,0.047083,0.26328,0.26328 0.1432,0.15576,0.26881,0.28137,0.31905,0.10551,0.1432,0.15576,0.21856,0.25624,0.030146,-0.10802,-0.032659,0.15576,0.092951,-0.22107,-0.18339,-0.18339,-0.19595,-0.22107,-0.23363,-0.19595,-0.23363,-0.28388,-0.23363 0.19185,0.18682,0.18933,0.18179,0.1755,0.18682,0.19562,0.18556,0.18556,0.1931,0.16544,0.19813,0.19059,-0.099897,-0.10241,-0.23948,-0.25206,-0.13259,-0.18289,-0.11121,-0.28224,-0.25834,-0.24703,-0.26212,-0.25583 0.20977,0.20627,0.20401,-0.17865,-0.20695,0.21078,0.20877,0.20802,-0.18341,-0.21421,0.20902,0.20602,-0.16538,-0.1809,-0.21897,0.20727,0.20702,-0.16688,-0.18341,-0.21521,0.20827,0.20627,-0.16713,-0.19067,-0.21972 0.35755,-0.019032,-0.068642,-0.088938,-0.15659,0.34628,-0.030307,-0.019032,-0.13404,-0.16561,0.32373,0.34177,-0.050602,-0.16561,-0.17012,0.35304,-0.032562,-0.11149,-0.16561,-0.16561,0.34402,-0.059622,-0.12727,-0.17463,-0.1611 -0.32283,-0.25012,-0.37736,-0.25012,-0.25012,-0.17741,-0.15923,-0.21376,-0.086523,0.040717,-0.050169,-0.013815,-0.013815,0.0043625,0.18613,0.095248,0.095248,0.11343,0.20431,0.22249,0.2952,0.24067,0.22249,0.24067,0.20431 0.29221,0.14449,0.048533,-0.085299,-0.2608,0.24297,0.16216,0.022019,-0.043634,-0.2608,0.29726,0.15964,0.051058,-0.042372,-0.25448,0.28211,-0.21156,0.044745,-0.054997,-0.29236,0.27579,0.16848,-0.21282,-0.21156,-0.2608 -0.24662,-0.24053,0.15266,0.14353,0.14695,-0.247,-0.24053,0.14543,0.14657,0.15951,-0.24586,-0.23977,0.14201,0.22955,0.1774,-0.24928,-0.24015,0.15951,0.15342,0.2208,-0.24624,-0.24015,0.16941,0.13439,0.15495 0.35726,0.35726,0.35726,0.46752,0.39861,-0.083802,-0.11137,-0.0011027,-0.042452,0.026464,-0.12515,-0.1665,-0.12515,-0.083802,-0.12515,-0.097585,-0.18028,-0.056235,-0.083802,-0.11137,-0.070018,-0.083802,-0.1665,-0.13893,-0.11137 -0.43766,-0.3515,-0.32279,-0.23663,-0.3515,-0.093045,-0.12176,-0.03561,-0.0068922,-0.03561,0.021825,0.021825,-0.0068922,0.079261,0.021825,0.19413,0.19413,0.10798,0.10798,0.19413,0.16541,0.22285,0.19413,0.28028,0.19413 0.21932,0.1329,0.12329,0.084885,-0.17438,0.21932,0.11369,0.084885,0.036873,-0.2704,0.21932,0.10409,0.11369,-0.10716,-0.32802,0.21932,0.17131,0.094487,-0.14557,-0.36643,0.1617,0.11369,-0.10716,-0.33762,-0.37603 -0.18947,-0.12894,-0.14407,-0.11381,-0.18947,-0.17434,-0.17434,-0.12894,-0.15921,-0.14407,-0.12894,-0.11381,-0.083538,-0.12894,-0.12894,0.27967,0.082933,0.037532,0.052665,-0.023003,0.40074,0.35534,0.37047,0.34021,0.23427 0.079565,0.13485,0.069681,0.062478,-0.40222,0.08124,0.1253,0.064991,0.06164,-0.39954,0.083418,0.12597,0.067168,0.072027,-0.39518,0.086768,0.12999,0.13032,0.08325,-0.39418,0.086433,0.13535,0.1397,0.16031,-0.38932 0.33651,-0.12529,-0.16544,-0.065053,-0.14537,0.2562,-0.065053,-0.16544,-0.10521,-0.10521,0.35659,-0.044975,-0.12529,-0.085132,-0.14537,0.45698,-0.024897,-0.10521,-0.10521,-0.085132,0.49714,0.075494,-0.085132,-0.10521,-0.12529 -0.041882,-0.04384,-0.042535,-0.045146,-0.045146,-0.041882,-0.041229,-0.040577,-0.042535,-0.04384,-0.037965,-0.039271,-0.042535,-0.041882,-0.044493,-0.036007,-0.038618,-0.03666,-0.040577,-0.040577,0.97971,-0.037313,-0.03666,-0.038618,-0.039924 -0.037418,-0.040508,-0.045143,-0.045916,-0.048233,-0.036646,-0.039736,-0.041281,-0.045143,-0.046688,-0.034329,-0.03935,-0.040508,-0.042826,-0.045143,-0.038963,-0.040508,-0.037805,-0.041281,-0.045143,0.97954,-0.045916,-0.028535,-0.032784,-0.039736 -0.26476,-0.2645,-0.2645,-0.26556,-0.26662,-0.26344,-0.26556,-0.26503,-0.26423,0.04291,0.15289,0.1558,0.14785,0.16349,0.17091,0.13911,0.15951,0.15819,0.15872,0.16799,0.14017,0.15978,0.15951,0.14971,0.15766 -0.14277,-0.15417,-0.11999,0.088855,0.34706,-0.13138,-0.13898,-0.14277,0.058477,0.37365,-0.14277,-0.15417,-0.1124,0.016708,0.37365,-0.14277,-0.16176,-0.13518,0.11544,0.36605,-0.16556,-0.15417,-0.11619,0.0015189,0.37365 0.24984,0.24732,-0.15124,-0.15073,-0.14872,0.25118,0.24564,-0.15124,-0.14922,-0.14922,0.29785,0.25504,-0.14905,-0.14939,-0.14973,0.29449,0.25521,-0.14939,-0.14922,-0.14939,0.29819,-0.14973,-0.14805,-0.1514,-0.14905 0.1679,0.059342,0.095527,-0.15776,-0.37487,0.1679,0.023158,0.1679,-0.049211,-0.3025,0.24026,0.24026,-0.049211,-0.049211,-0.19395,0.20408,-0.013026,0.059342,-0.15776,-0.33869,0.385,0.24026,-0.049211,-0.013026,-0.3025 -0.3689,-0.30255,-0.2362,-0.26938,-0.26938,-0.07033,-0.16985,-0.1035,-0.13668,-0.16985,0.095542,0.029194,-0.13668,0.16189,0.029194,0.062368,0.19507,0.095542,0.19507,0.19507,0.32776,0.12872,0.22824,0.26141,0.22824 0.14707,0.16166,0.16531,0.14707,0.15436,0.14707,0.15072,0.12883,0.15072,0.14707,0.15436,0.13977,0.16166,0.13977,0.15072,-0.25416,-0.25051,-0.15203,-0.03166,0.037642,-0.33805,-0.31617,-0.31252,-0.31252,-0.31617 -0.40672,-0.38676,-0.37345,-0.36014,-0.33352,0.045783,-0.007453,-0.040725,-0.054034,-0.10727,0.15891,0.1456,0.13229,0.099018,0.079055,0.18553,0.1456,0.1456,0.1456,0.092364,0.18553,0.12564,0.1456,0.12564,0.11233 -0.34491,-0.36913,-0.27225,-0.32069,-0.12692,-0.17536,-0.078476,-0.12692,-0.1027,-0.15114,0.042629,0.042629,0.042629,-0.054255,0.091071,0.21218,0.11529,0.11529,0.16373,0.042629,0.3575,0.2364,0.16373,0.16373,0.33328 0.40162,-0.08483,-0.08483,-0.1147,-0.13177,0.46136,0.04745,-0.097631,-0.10617,-0.14884,0.45709,-0.076296,-0.1147,-0.10617,-0.1147,0.40589,-0.11897,-0.097631,-0.072029,-0.12323,0.18826,-0.037892,-0.089097,-0.10617,-0.13603 -0.19392,-0.21804,-0.14568,-0.1698,-0.26628,-0.1698,-0.097443,-0.21804,-0.049204,-0.2904,-0.00096478,-0.00096478,-0.073323,-0.049204,-0.14568,0.047274,0.24023,0.047274,0.095513,0.071394,0.38495,0.28847,0.33671,0.24023,0.33671 -0.19233,-0.19285,0.098368,0.088488,0.2991,-0.19233,-0.18713,0.094208,0.24814,0.2653,-0.19389,-0.17673,-0.17777,0.082768,0.25126,-0.19129,-0.18453,-0.18453,0.2315,0.25698,-0.17985,-0.17153,-0.17725,0.2367,0.24918 -0.04704,-0.043557,-0.049363,-0.048201,-0.042395,-0.044718,-0.041234,-0.049363,-0.043557,-0.040363,-0.03717,-0.047621,-0.045879,-0.039202,-0.030203,-0.036009,-0.040654,-0.040073,-0.033977,-0.037751,0.97946,-0.032815,-0.034848,-0.036589,-0.03688 0.10409,0.0091893,0.0087599,0.010048,-0.36568,0.12813,0.01606,0.01606,0.017348,-0.3528,0.15648,0.15519,0.15648,-0.032893,-0.38758,0.18739,0.18568,0.13071,0.14703,-0.38544,0.20586,0.18954,0.12298,-0.053933,-0.36869 -0.23024,-0.229,-0.23771,-0.25265,-0.25141,-0.20783,-0.21406,-0.20908,-0.21406,-0.21032,0.21301,0.18935,0.17192,0.14453,-0.21032,0.21052,0.19558,0.16694,0.15449,0.13955,0.21301,0.19682,0.17441,0.152,0.14453 0.39384,-0.091188,-0.10373,-0.10931,-0.10559,0.39848,-0.093047,-0.10234,-0.1028,-0.10466,0.39848,-0.092118,-0.10094,-0.10466,-0.1028,0.40127,-0.091653,-0.1028,-0.10141,-0.10002,0.40731,-0.092582,-0.10002,-0.098622,-0.099086 0.25775,0.22974,0.14569,-0.078446,-0.38663,0.14569,0.061636,0.061636,-0.13448,-0.21853,0.061636,0.1737,0.14569,-0.1625,-0.30258,0.089653,0.14569,0.22974,0.0056033,-0.35861,0.20172,0.11767,0.11767,-0.21853,-0.3306 0.22136,0.21524,-0.18183,-0.19375,-0.20915,0.22285,0.22501,-0.17935,-0.19342,-0.20451,0.22534,0.18974,-0.17637,-0.18647,-0.20153,0.19073,0.18908,0.18676,-0.18431,-0.19988,0.24256,0.19073,0.19172,-0.18514,-0.19541 -0.23455,-0.24661,-0.24118,-0.23817,-0.24299,-0.23817,-0.24299,-0.23998,-0.24722,-0.2267,0.16614,0.1064,0.25183,0.26088,0.14442,0.18364,0.087089,0.16614,0.17459,0.18907,0.097347,0.084675,0.12148,0.18123,0.18364 0.18525,0.18561,0.18598,-0.2264,-0.22786,0.1794,0.18196,0.18013,-0.22713,-0.22567,0.17647,0.17574,0.17647,-0.2264,-0.22567,0.17428,0.17501,0.17318,-0.22494,-0.22494,0.16587,0.16587,-0.22494,-0.22311,-0.22421 -0.081891,-0.26187,-0.26187,-0.32936,-0.32936,-0.081891,-0.12689,-0.036896,-0.081891,-0.17188,-0.059393,-0.081891,0.0080991,-0.036896,-0.14938,0.14308,0.18808,0.14308,0.075591,0.053094,0.32306,0.36806,0.25557,0.34556,0.18808 -0.18513,-0.18513,-0.14666,-0.14666,-0.056922,-0.14666,-0.14666,-0.14666,-0.14666,-0.095383,-0.095383,-0.095383,-0.056922,-0.018461,-0.018461,-0.095383,-0.056922,-0.018461,-0.056922,-0.018461,0.37897,0.34051,0.39179,0.43025,0.39179 -0.041016,-0.043458,-0.049389,-0.04904,-0.044854,-0.038923,-0.037527,-0.03962,-0.050436,-0.041365,-0.036829,-0.035783,-0.03648,-0.045552,-0.038225,-0.034736,-0.03648,-0.034736,-0.045552,-0.037876,0.9795,-0.034736,-0.035085,-0.046598,-0.045203 0.30287,0.30287,0.11645,-0.20383,-0.19427,0.30526,0.29809,0.0017209,-0.18949,-0.1871,0.30287,0.30287,-0.11539,-0.18471,-0.17515,0.13796,0.094935,-0.12495,-0.18471,-0.18949,0.047133,0.051913,-0.1369,-0.19188,-0.1871 0.24624,0.3064,0.20613,0.24624,0.26629,0.22619,0.16603,0.065771,0.20613,0.14598,-0.014437,0.025667,0.12593,0.0056146,-0.074594,-0.29517,-0.25506,-0.1147,-0.19491,-0.094646,-0.25506,-0.25506,-0.19491,-0.27511,-0.21496 0.21167,0.2323,0.3045,0.26324,0.26324,0.087885,0.13946,0.20135,0.20135,0.21167,-0.056527,-0.077158,-0.0049513,0.025994,0.046625,-0.27315,-0.16999,-0.13905,-0.097788,-0.077158,-0.38661,-0.29378,-0.21125,-0.14936,-0.25252 0.398,0.40031,0.40262,0.39858,0.39973,-0.087605,-0.092224,-0.092224,-0.092224,-0.092224,-0.099731,-0.10031,-0.099731,-0.10031,-0.10146,-0.10031,-0.099731,-0.10608,-0.10608,-0.10955,-0.097998,-0.10031,-0.10262,-0.10724,-0.11128 -0.12261,-0.14191,-0.12904,-0.13977,-0.13762,-0.10974,-0.094724,-0.092579,-0.094724,-0.099014,-0.075418,-0.092579,-0.081853,-0.079708,-0.077563,-0.092579,-0.073273,-0.071128,-0.092579,-0.090434,0.41793,0.41364,0.39005,0.3879,0.37932 -0.19226,-0.1054,0.068334,0.16968,0.18415,-0.14883,-0.033009,0.097289,0.12624,0.27102,-0.25017,-0.090919,0.024901,0.11177,0.19863,-0.45286,-0.1054,0.024901,0.14072,0.19863,-0.49629,-0.16331,0.024901,0.12624,0.27102 -0.044817,-0.043064,-0.041896,-0.041896,-0.040143,-0.045985,-0.044232,-0.044817,-0.041312,-0.041312,-0.048906,-0.045985,-0.048322,-0.034302,-0.027876,-0.043064,-0.030797,-0.045401,-0.044232,-0.039559,0.97921,-0.017361,-0.034886,-0.045401,-0.043648 0.23746,0.20081,0.15195,0.21303,0.21303,0.12752,0.16417,0.15195,0.11531,0.15195,0.029805,0.04202,0.04202,0.066449,0.01759,-0.043485,-0.03127,-0.0068404,0.01759,-0.03127,-0.40993,-0.33664,-0.3855,-0.34886,-0.34886 -0.24331,-0.24359,0.14539,0.16225,0.27043,-0.24495,-0.23897,0.13805,0.14023,0.1386,-0.24386,-0.23054,0.13941,0.13452,0.17801,-0.24576,-0.25011,0.17203,0.1685,0.17747,-0.24331,-0.24495,0.14893,0.14349,0.17203 -0.15751,-0.15854,-0.16265,0.2104,0.36837,-0.15776,-0.15854,-0.16317,0.20834,0.37378,-0.15751,-0.15802,-0.166,0.20629,0.20654,-0.15802,-0.15828,-0.16162,0.20654,0.20577,-0.15648,-0.16008,-0.16162,0.20423,0.20551 0.10866,0.12045,0.1068,0.1044,-0.39482,0.10789,0.11226,0.10757,0.10407,-0.39438,0.10702,0.11095,0.10789,-0.059605,-0.39471,0.10986,0.11477,0.10789,0.10582,-0.39438,0.090095,0.090095,0.10789,0.10778,-0.39427 0.17812,0.17706,0.17706,-0.23695,-0.25653,0.17388,0.18659,0.18235,-0.23324,-0.24595,0.19718,0.19241,0.18924,-0.23589,-0.25018,0.17706,0.18553,-0.054827,-0.2613,-0.25548,0.17653,0.18553,-0.048474,-0.26236,-0.037356 -0.21503,-0.13744,-0.093104,0.050985,0.36133,-0.14852,-0.19286,-0.093104,0.050985,0.40567,-0.18177,-0.13744,-0.08202,0.062069,0.40567,-0.13744,-0.11527,-0.10419,-0.0044335,0.317,-0.10419,-0.17069,-0.12636,0.028818,0.36133 -0.048176,-0.03117,-0.043174,-0.047176,-0.051177,-0.042174,-0.03117,-0.043174,-0.040173,-0.038173,-0.042174,-0.032171,-0.037172,-0.044175,-0.047176,-0.040173,-0.027169,-0.041174,-0.044175,-0.051177,0.97917,-0.022167,-0.042174,-0.043174,-0.049176 -0.34788,-0.34788,-0.31487,-0.38089,-0.38089,-0.017823,0.015183,-0.10034,-0.10034,-0.10034,0.1307,0.097697,0.031685,0.14721,0.031685,0.19671,0.22972,0.1307,0.1142,0.097697,0.22972,0.14721,0.18021,0.18021,0.1307 0.44942,0.24347,0.33501,0.19771,0.22059,0.10618,0.24347,0.12906,0.15194,0.083294,-0.076886,-0.031121,0.037528,-0.0082378,-0.12265,-0.1913,-0.23707,-0.14554,-0.16842,-0.16842,-0.1913,-0.14554,-0.21418,-0.25995,-0.23707 0.34691,0.34628,-0.072333,-0.093697,-0.16858,0.35029,-0.072545,-0.064084,-0.10343,-0.16477,0.34966,-0.063872,-0.079102,-0.11548,-0.17175,0.35241,-0.060911,-0.085659,-0.1599,-0.17662,0.34797,-0.047796,-0.075929,-0.14171,-0.17535 -0.43526,-0.23139,-0.10397,0.048929,0.27828,-0.25688,-0.18042,-0.0020387,0.099896,0.2528,-0.30784,-0.053006,0.074412,0.2528,0.22731,-0.23139,-0.0020387,-0.10397,0.099896,0.20183,-0.15494,-0.027522,0.048929,0.20183,0.30377 0.24507,0.17112,0.063197,-0.0028835,-0.056742,0.24735,0.1067,0.05719,-0.0012263,-0.26368,0.24134,0.17837,0.044346,-0.2612,-0.26223,0.24922,0.14543,0.056361,-0.26617,-0.26845,0.24611,0.1415,-0.26783,-0.27031,-0.27259 0.12924,0.10452,0.1107,0.10658,-0.42881,0.10452,0.11482,0.10658,0.09217,-0.40204,0.11482,0.10452,0.096288,0.090111,-0.39998,0.098347,0.094229,0.09217,0.085992,-0.38968,0.090111,0.085992,0.083933,0.090111,-0.37527 -0.042617,-0.042617,-0.040563,-0.042617,-0.046725,-0.040563,-0.040563,-0.040563,-0.040563,-0.043302,-0.041248,-0.041248,-0.041248,-0.038509,-0.043302,-0.042617,-0.041932,-0.041932,-0.041932,-0.043987,0.97967,-0.039878,-0.030977,-0.033031,-0.037139 -0.069972,-0.062749,-0.053117,-0.054321,-0.048302,-0.055525,-0.057933,-0.051914,-0.04469,-0.041078,-0.056729,-0.05071,-0.048302,-0.041078,-0.036262,-0.041078,-0.045894,-0.019407,-0.021815,-0.026631,0.97624,-0.0049602,-0.0097759,-0.014592,-0.019407 -0.044112,-0.043093,-0.042329,-0.042839,-0.042839,-0.042584,-0.042074,-0.042584,-0.042584,-0.042584,-0.040292,-0.042329,-0.042329,-0.041565,-0.042329,-0.037745,-0.038509,-0.039273,-0.039528,-0.040037,0.97973,-0.037745,-0.036726,-0.037235,-0.036471 0.3042,0.33367,0.27472,0.27472,0.21577,0.14208,0.17155,0.18629,0.024171,0.068385,0.024171,0.038909,0.0094324,0.024171,-0.064258,-0.10847,-0.078997,-0.064258,-0.12321,-0.1969,-0.27059,-0.27059,-0.31481,-0.28533,-0.31481 0.11296,0.11406,-0.14587,-0.22523,-0.22605,0.26526,0.30432,-0.14614,-0.14724,-0.14683,0.11378,0.30336,-0.14491,-0.14601,-0.14764,0.26608,0.30418,-0.14409,-0.14642,-0.1486,0.26362,0.30555,-0.143,-0.14764,-0.14751 -0.31097,-0.18211,0.032643,0.09707,-0.031784,-0.26802,-0.11769,0.032643,0.1615,0.22592,-0.31097,-0.05326,0.11855,0.1615,0.22592,-0.24654,-0.18211,0.09707,0.1615,0.35478,-0.31097,-0.11769,-0.05326,0.22592,0.29035 0.41334,0.40705,0.39206,0.39496,0.39061,-0.07758,-0.087253,-0.090639,-0.096926,-0.1008,-0.086769,-0.092573,-0.09741,-0.10273,-0.10031,-0.098377,-0.10321,-0.1095,-0.10853,-0.11192,-0.10708,-0.11095,-0.10418,-0.10708,-0.10418 0.084292,0.07843,0.075499,0.076964,-0.42275,0.084292,0.090153,0.084292,0.084292,-0.41395,0.1092,0.10334,0.10334,0.10188,-0.39784,0.1092,0.11067,0.11067,0.1092,-0.38172,0.11946,0.12972,0.11507,0.1136,-0.37732 -0.30791,-0.26493,0.068202,0.29387,0.23297,-0.29358,-0.060751,-0.024931,0.14701,0.21148,-0.29358,-0.13239,0.039546,0.1685,0.21148,-0.11448,-0.13956,-0.039259,0.21148,0.19715,-0.20045,-0.22194,-0.16821,0.28312,0.19715 -0.15637,-0.18209,-0.20781,-0.20781,-0.079213,-0.20781,-0.079213,-0.13065,-0.13065,-0.13065,-0.10493,-0.079213,-0.13065,-0.10493,-0.053495,-0.0020575,-0.053495,0.023661,0.10082,0.12654,0.22941,0.40944,0.46088,0.358,0.33228 0.10429,0.10823,0.080661,-0.065064,-0.23048,0.28153,0.26577,0.14368,-0.037495,-0.21079,0.29334,0.27365,0.11217,-0.16353,-0.25018,0.072784,0.076723,0.025522,-0.1911,-0.32501,0.17519,0.080661,0.068845,-0.32501,-0.36439 -0.036873,-0.041934,-0.044103,-0.046272,-0.042657,-0.036873,-0.042657,-0.039765,-0.045549,-0.044103,-0.034704,-0.038319,-0.040488,-0.039765,-0.046272,-0.037596,-0.037596,-0.040488,-0.044103,-0.041211,0.97967,-0.037596,-0.036873,-0.042657,-0.041211 0.2633,0.2633,0.28868,0.26838,0.26838,0.1415,0.15165,0.1415,0.14657,0.13135,-0.00060903,0.014617,0.014617,-0.00060903,-0.0056843,-0.091964,-0.081813,-0.12242,-0.14779,-0.35588,-0.19854,-0.20362,-0.229,-0.27975,-0.37618 0.29978,0.30568,0.29682,0.31453,0.31453,0.27616,0.27026,0.20827,0.01346,-0.080995,-0.10461,-0.14003,-0.13117,-0.15184,-0.14888,-0.13708,-0.15479,-0.16659,-0.15774,-0.14888,-0.14888,-0.15774,-0.15479,-0.15774,-0.15774 0.22946,0.23673,0.23855,-0.19385,-0.18204,0.23219,0.30486,-0.16933,-0.14934,-0.18023,0.22583,0.19131,-0.14207,-0.18659,-0.18931,0.20039,0.19403,-0.16388,-0.19204,-0.16751,0.18768,0.22219,-0.19294,-0.19749,-0.15661 -0.25154,-0.239,0.17793,0.17166,0.16226,-0.24213,-0.24527,0.12777,0.1842,0.16853,-0.23586,-0.24213,0.16539,0.17166,0.16853,-0.22646,-0.25467,0.1748,0.17793,0.1748,-0.23586,-0.25781,0.055674,0.17793,0.17166 -0.16788,-0.13552,-0.1463,0.24212,0.26369,-0.11394,-0.18946,-0.11394,0.24212,0.27448,-0.1463,-0.18946,-0.22183,0.22054,0.22054,-0.18946,-0.1463,-0.18946,0.2529,0.24212,-0.13552,-0.1463,-0.18946,0.17738,0.28527 -0.2832,-0.25187,0.092728,0.12406,0.21804,-0.2832,-0.063907,-0.0012531,0.24936,0.15538,-0.37718,-0.063907,0.030074,0.18671,0.21804,-0.2832,-0.15789,0.15538,0.061401,0.28069,-0.34585,0.030074,0.061401,0.030074,0.21804 0.2677,0.23248,0.056358,-0.014089,-0.43677,0.2677,0.021134,0.091581,0.021134,-0.26065,0.16203,0.16203,-0.049313,-0.15498,-0.22543,0.23248,0.16203,0.021134,-0.19021,-0.19021,0.23248,-0.014089,0.056358,-0.014089,-0.43677 0.19147,0.17839,-0.13327,-0.14799,-0.15944,0.21111,0.18002,-0.13981,-0.14963,-0.15781,0.30027,-0.11036,-0.14472,-0.15781,-0.15781,0.3289,0.29045,-0.14635,-0.14963,-0.15944,0.36816,0.29863,-0.12754,-0.14963,-0.15617 0.13167,0.16941,0.068781,0.073812,-0.39286,0.076328,0.10149,0.16815,0.068781,-0.39034,0.078844,0.073812,0.12287,0.063749,-0.39538,0.078844,0.083875,0.091423,0.104,-0.39915,0.1518,0.086391,0.088907,0.096454,-0.40167 0.21776,0.34009,0.3197,0.21776,0.27893,0.19737,0.075033,0.19737,0.095422,0.075033,-0.047303,0.034254,0.054643,0.075033,-0.026914,-0.10847,-0.16964,-0.12886,-0.19003,-0.14925,-0.19003,-0.29198,-0.35314,-0.2512,-0.27159 0.090081,0.092813,0.088796,0.086467,-0.39756,0.090322,0.091286,0.08976,0.092009,-0.39845,0.10639,0.10912,0.1104,0.090804,-0.39965,0.10117,0.11297,0.11105,0.091608,-0.40046,0.10197,0.10591,0.11089,0.12398,-0.40166 -0.039305,-0.017816,-0.035398,-0.074469,-0.047119,-0.023677,-0.023677,-0.047119,-0.088144,-0.058841,0.0017191,-0.010002,-0.023677,-0.10182,-0.068608,0.017347,0.029069,-0.039305,-0.088144,-0.084237,0.96091,0.04079,0.0017191,-0.092051,-0.088144 -0.13829,-0.11142,-0.10246,0.3364,0.30953,-0.1562,-0.12037,-0.13829,0.25579,0.30953,-0.17411,-0.16516,-0.13829,0.13041,0.28266,-0.17411,-0.16516,-0.13829,0.058754,0.28266,-0.17411,-0.21889,-0.16516,0.013972,0.30058 0.26302,-0.14932,-0.14991,-0.1502,-0.14757,0.26068,0.26595,-0.14903,-0.15079,-0.1502,0.26039,0.26771,-0.14581,-0.15138,-0.14991,0.27269,0.27035,-0.14932,-0.15079,-0.15431,0.27064,0.2683,-0.14815,-0.1502,-0.15284 -0.23415,-0.17648,-0.29182,-0.40716,-0.26298,-0.032296,-0.17648,-0.089968,-0.14764,-0.14764,0.054211,-0.032296,-0.0034603,-0.1188,0.083047,0.14072,0.083047,0.16955,0.11188,0.14072,0.34257,0.31373,0.22723,0.34257,0.11188 0.058974,0.064348,0.06614,0.060765,-0.44263,0.082262,0.075097,0.096594,0.058974,-0.42113,0.10197,0.10376,0.10913,0.073305,-0.38709,0.12167,0.12347,0.12884,0.11809,-0.37634,0.14317,0.12526,0.14317,0.12347,-0.35126 0.38652,-0.098018,-0.14925,-0.13217,-0.078807,0.35877,-0.093749,-0.10869,-0.13644,-0.070269,0.4036,-0.078807,-0.10656,-0.1215,-0.091615,0.39079,-0.070269,-0.11296,-0.091615,-0.093749,0.44629,-0.063865,-0.093749,-0.08948,-0.10442 -0.1792,-0.201,-0.27108,-0.27886,-0.29132,-0.18543,-0.16052,-0.20879,-0.21813,-0.29444,-0.15273,0.17895,0.17117,0.17584,0.16961,0.17895,0.16494,0.17584,0.16961,0.17117,0.18985,0.20698,0.18985,0.17428,0.12445 0.10834,0.10548,0.098774,0.095474,-0.40143,0.1057,0.10702,0.098774,0.095034,-0.40055,0.10339,0.097014,0.095584,0.096464,-0.39989,0.10053,0.10119,0.097344,0.096464,-0.39912,0.097344,0.10163,0.099874,0.098224,-0.39868 0.24435,0.12011,0.12011,-0.1491,-0.43901,0.18223,0.18223,0.12011,-0.086973,-0.39759,0.12011,0.18223,0.12011,0.057982,-0.39759,0.057982,0.057982,0.12011,0.016566,-0.33547,0.12011,0.18223,-0.0041416,0.016566,-0.21122 0.15379,0.1081,0.099534,-0.2676,-0.2676,0.16399,0.15542,0.10239,-0.26842,-0.26923,0.1648,0.16032,0.1183,-0.26597,-0.26148,0.17541,0.16276,0.16276,-0.2627,-0.26148,0.18969,0.15746,0.14889,0.16317,-0.2623 0.24851,0.30839,0.42816,0.42816,0.42816,-0.0059882,-0.0509,-0.035929,0.038923,-0.0059882,-0.0509,-0.06587,-0.020959,-0.11078,-0.020959,-0.095811,-0.12575,-0.095811,-0.0509,-0.095811,-0.21557,-0.2006,-0.18563,-0.24552,-0.2006 -0.25225,-0.24246,0.080689,0.16882,0.13944,-0.31101,-0.24246,0.080689,0.17861,0.18841,-0.28163,-0.26204,0.051312,0.24716,0.15903,-0.21308,-0.16412,0.18841,0.20799,0.15903,-0.24246,-0.16412,0.17861,0.20799,0.13944 -0.2399,-0.29702,-0.32558,-0.15422,-0.18278,-0.18278,-0.26846,-0.068543,-0.21134,-0.21134,-0.011424,-0.011424,-0.011424,0.017136,0.15993,0.15993,0.13137,0.21705,0.10282,0.13137,0.33129,0.15993,0.18849,0.35985,0.21705 0.15757,0.16017,0.15018,0.15417,0.16477,0.15757,0.15697,0.15677,0.16217,0.16077,0.15657,0.16017,0.16177,0.16177,0.22313,-0.24535,-0.24475,-0.24435,-0.24335,-0.24375,-0.24535,-0.24515,-0.24335,-0.24435,-0.24475 0.488,0.22563,-0.19192,-0.18431,-0.15269,0.23208,0.22329,-0.18841,-0.18373,-0.17553,0.2391,0.076882,-0.18021,-0.18021,-0.18373,0.23969,0.086252,0.066341,-0.17143,-0.1685,0.25082,0.080981,0.068098,-0.15913,-0.15737 -0.039321,-0.038759,-0.039883,-0.040445,-0.040445,-0.036512,-0.039321,-0.04213,-0.038759,-0.046062,-0.036512,-0.037636,-0.041006,-0.041568,-0.0455,-0.040445,-0.037636,-0.039883,-0.041568,-0.049432,0.97966,-0.035389,-0.043253,-0.040445,-0.047747 0.25871,0.38349,0.19632,0.3419,0.25871,0.13393,0.13393,0.13393,0.13393,0.19632,-0.094832,-0.032443,-0.13643,0.029947,-0.094832,-0.13643,-0.094832,-0.13643,-0.032443,-0.13643,-0.19881,-0.2612,-0.32359,-0.2612,-0.2612 0.33676,0.36922,0.37448,0.48369,0.42229,-0.093927,-0.094805,-0.093489,-0.092173,-0.090419,-0.10051,-0.10051,-0.098313,-0.097436,-0.093927,-0.10401,-0.10226,-0.10314,-0.09919,-0.09919,-0.10708,-0.10621,-0.10401,-0.10401,-0.10182 0.23436,0.15982,0.20455,0.10019,0.13,0.20455,0.17473,0.21946,0.070369,0.13,0.15982,0.14491,0.10019,0.10019,0.070369,-0.019083,-0.12344,-0.093627,-0.10854,-0.19799,-0.40671,-0.33217,-0.28744,-0.34707,-0.28744 -0.034923,-0.033981,-0.036805,-0.036805,-0.033981,-0.0401,-0.03304,-0.037747,-0.039629,-0.062691,-0.041512,-0.032099,-0.036805,-0.042453,-0.06928,-0.033981,-0.030216,-0.035864,-0.044336,-0.06175,0.9784,-0.032099,-0.03304,-0.033981,-0.061279 -0.065778,-0.10153,-0.090355,-0.088121,-0.076949,-0.072481,-0.085887,-0.083652,-0.072481,-0.065778,0.048172,-0.070246,-0.070246,-0.070246,-0.034498,0.10403,-0.016623,-0.061309,-0.043435,0.0034855,0.94413,0.081686,-0.016623,-0.018858,0.023594 -0.2184,-0.20439,-0.20376,-0.2063,-0.20057,-0.19994,-0.19739,-0.20057,-0.20248,-0.20248,0.084085,0.085996,0.086633,-0.19866,-0.21076,0.22036,0.22036,0.21845,0.21845,0.21591,0.21718,0.21909,0.21909,0.21845,0.22164 -0.13112,-0.12878,-0.11596,-0.10663,-0.13345,-0.091469,-0.098466,-0.093801,-0.087971,-0.1008,-0.10546,-0.083306,-0.085638,-0.099632,-0.091469,-0.092635,-0.087971,-0.091469,-0.08214,-0.083306,0.38313,0.40995,0.43328,0.40995,0.35515 -0.20442,-0.31201,-0.25822,-0.15063,-0.25822,-0.25822,-0.20442,-0.20442,-0.25822,-0.20442,0.028691,0.10042,0.15421,0.10042,0.10042,0.2618,0.10042,0.24387,0.24387,0.27973,0.17214,0.064554,0.22594,0.082486,0.15421 0.35669,0.36868,0.39564,0.39864,0.47055,-0.083779,-0.083779,-0.092768,-0.092768,-0.10176,-0.098761,-0.10775,-0.098761,-0.098761,-0.10775,-0.095765,-0.11674,-0.11674,-0.10775,-0.10775,-0.092768,-0.098761,-0.080783,-0.10775,-0.098761 0.20232,0.25595,0.25768,0.26633,0.27187,0.21893,0.22585,0.22654,0.22412,0.22101,-0.0807,-0.09108,-0.20906,-0.20353,-0.21875,-0.0807,-0.086236,-0.1973,-0.20318,-0.076548,-0.21598,-0.21737,-0.21045,-0.20249,-0.07724 0.15311,0.044276,0.0040031,-0.24262,-0.24343,0.15796,0.036195,0.0033296,-0.24316,-0.24397,0.41562,0.044276,0.00090514,-0.2437,-0.24316,0.41684,0.054243,0.011681,-0.028593,-0.24464,0.41764,0.047509,0.010199,-0.026976,-0.057552 -0.19938,-0.1893,-0.15403,0.14577,0.17348,-0.17923,-0.15403,0.16089,0.20749,0.31583,-0.19182,-0.17923,-0.15403,0.21253,0.33598,-0.20694,-0.18426,-0.15403,0.21631,0.24528,-0.1893,-0.14522,-0.15025,0.20875,0.20875 -0.040438,-0.04463,-0.04463,-0.045329,-0.046726,-0.041836,-0.040438,-0.041836,-0.04463,-0.049521,-0.038342,-0.041137,-0.04463,-0.04463,-0.045329,-0.042534,-0.041137,-0.046028,-0.040438,-0.022273,0.97891,-0.040438,-0.041836,-0.043932,-0.0062041 -0.039039,-0.041855,-0.041855,-0.044108,-0.045797,-0.040729,-0.040729,-0.042982,-0.040166,-0.042982,-0.039039,-0.040729,-0.040166,-0.042982,-0.042982,-0.038476,-0.038476,-0.041292,-0.039602,-0.041292,0.97974,-0.038476,-0.036223,-0.039602,-0.040166 0.37802,0.24653,0.37802,0.47663,0.37802,-0.098613,-0.049306,0.016435,0.065742,0.065742,-0.14792,-0.032871,-0.032871,-0.14792,-0.049306,-0.16435,-0.14792,-0.14792,-0.14792,-0.082177,-0.14792,-0.14792,-0.16435,-0.14792,-0.14792 -0.23579,-0.029086,-0.021704,0.17023,0.185,-0.26809,-0.23117,0.14624,0.16193,0.2256,-0.19888,-0.18411,0.14809,0.18684,0.21637,-0.19519,-0.2201,-0.16935,0.18131,0.28281,-0.25055,-0.19242,-0.18411,0.19423,0.28189 0.34686,0.34686,0.45526,0.34686,0.34686,-0.014453,0.093942,-0.050584,0.021679,0.021679,-0.12285,-0.12285,-0.050584,-0.12285,-0.050584,-0.12285,-0.23124,-0.15898,-0.12285,-0.050584,-0.086716,-0.12285,-0.23124,-0.086716,-0.23124 -0.035873,-0.037072,-0.040669,-0.040669,-0.047264,-0.037072,-0.038271,-0.03947,-0.041868,-0.041868,-0.037072,-0.038271,-0.040669,-0.044266,-0.045465,-0.03947,-0.034674,-0.040669,-0.045465,-0.046664,0.97966,-0.038271,-0.040669,-0.044866,-0.043067 -0.1407,-0.12098,-0.19549,-0.22398,-0.20864,-0.16919,-0.08372,-0.12317,-0.17139,-0.20426,-0.15166,-0.15166,-0.031121,-0.16262,-0.16481,0.23187,0.28447,0.29543,0.22092,0.01052,0.26694,0.35022,0.28447,0.20338,0.15517 0.39204,0.39472,0.39472,0.40678,0.41081,-0.095294,-0.092613,-0.091943,-0.091272,-0.091272,-0.097976,-0.099316,-0.096635,-0.095294,-0.096635,-0.10334,-0.10334,-0.102,-0.10334,-0.10468,-0.10334,-0.10736,-0.10736,-0.10736,-0.1087 -0.24152,-0.19434,-0.13823,-0.15863,-0.13185,-0.18031,-0.13823,-0.13313,-0.16884,-0.14206,-0.15098,-0.13185,-0.12293,-0.1191,-0.11655,-0.11018,0.2609,0.25453,0.25708,0.26218,0.26601,0.26728,0.26728,0.27238,0.27111 -0.16024,-0.14788,-0.14788,0.1365,0.33434,-0.12315,-0.14788,-0.18497,0.16123,0.29724,-0.16024,-0.16024,-0.2097,0.16123,0.30961,-0.13552,-0.13552,-0.19734,0.19833,0.29724,-0.11079,-0.16024,-0.18497,0.16123,0.30961 0.097153,0.094574,0.098099,0.095004,-0.40019,0.099045,0.10205,0.098529,0.095606,-0.40002,0.095692,0.10283,0.10128,0.096638,-0.39976,0.098357,0.10438,0.099303,0.096122,-0.40027,0.11504,0.10498,0.10094,0.10395,-0.39933 -0.038857,-0.03954,-0.03954,-0.040565,-0.04569,-0.03954,-0.037832,-0.041932,-0.039882,-0.045349,-0.036123,-0.039198,-0.041249,-0.042615,-0.044324,-0.038173,-0.040223,-0.039198,-0.040565,-0.046374,0.97971,-0.038857,-0.03954,-0.039882,-0.044665 -0.22636,-0.22703,-0.22689,-0.22663,-0.22703,-0.22622,-0.22716,-0.22676,-0.22716,-0.22729,0.24573,0.23637,0.11785,-0.045896,-0.047501,0.23838,0.23316,0.24292,0.1149,0.10634,0.23918,0.11223,0.24466,0.11437,0.11584 0.099547,0.10123,0.096189,0.095069,-0.40032,0.10123,0.10011,0.098987,0.099547,-0.40367,0.10291,0.10011,0.10123,0.098987,-0.402,0.10123,0.10067,0.098987,0.099547,-0.39752,0.10123,0.10123,0.10067,0.10123,-0.3964 0.12191,0.1197,-0.22272,-0.22139,-0.21985,0.21254,0.12301,0.11992,-0.22206,-0.22449,0.21387,0.12191,0.12301,-0.22073,-0.22316,0.21122,0.21298,0.21122,-0.22228,-0.22228,0.21431,0.21962,0.21962,-0.22051,-0.22537 0.34271,-0.095416,-0.098833,-0.099023,-0.098074,0.43459,-0.096555,-0.099972,-0.10073,-0.10111,0.35012,-0.095037,-0.10225,-0.10054,-0.099972,0.43193,-0.095416,-0.1013,-0.099592,-0.10225,0.43155,-0.098074,-0.10263,-0.10168,-0.10244 0.21255,0.21346,0.21049,0.21026,0.46226,0.21483,0.21415,0.21918,0.2114,0.2114,-0.1578,-0.15871,-0.15986,-0.1578,-0.1594,-0.15848,-0.15894,-0.15986,-0.15848,-0.15894,-0.15871,-0.15825,-0.15802,-0.1578,-0.15894 -0.10899,-0.20294,-0.090198,0.19167,0.36079,-0.14657,-0.10899,-0.10899,0.078923,0.37958,-0.18415,-0.18415,-0.090198,0.097714,0.26683,-0.16536,-0.16536,-0.18415,0.15409,0.30442,-0.14657,-0.16536,-0.14657,-0.015033,0.37958 0.1678,0.11999,0.17975,0.25146,0.1678,0.10804,0.1678,0.28731,0.1439,0.048284,0.11999,0.1678,0.10804,0.11999,0.072187,-0.11904,-0.16684,-0.071231,-0.071231,-0.17879,-0.32221,-0.28636,-0.32221,-0.32221,-0.37002 0.3178,0.38842,-0.070622,-0.10593,-0.21187,0.17656,0,-0.10593,-0.070622,-0.35311,0.24718,0.17656,0.10593,-0.10593,-0.3178,0.24718,0.14124,0.070622,-0.14124,-0.14124,0.24718,0.070622,-0.17656,-0.21187,-0.17656 -0.15323,-0.024825,-0.067628,0.10358,0.18919,-0.15323,-0.17463,-0.046227,0.23199,0.33899,-0.28164,-0.17463,-0.067628,0.18919,0.21059,-0.26024,-0.067628,-0.17463,0.23199,0.27479,-0.28164,-0.23884,-0.089029,0.31759,0.16779 0.15528,0.24183,0.20474,0.19238,0.18001,0.22947,0.14292,0.16765,0.18001,0.18001,0.068741,0.056377,0.056377,0.0069235,0.056377,-0.054894,-0.079621,-0.091984,-0.11671,-0.10435,-0.2898,-0.24035,-0.33925,-0.35162,-0.45052 0.26968,0.27321,-0.15247,-0.15139,-0.14894,0.26342,0.2656,-0.14785,-0.14867,-0.14921,0.26505,0.26396,-0.1503,-0.14948,-0.15057,0.26723,0.26505,-0.15111,-0.14948,-0.14921,0.26668,-0.15084,-0.15084,-0.14948,-0.15003 0.1602,0.2896,0.19713,0.20274,0.29666,0.28414,0.28671,0.20098,0.20531,0.29506,-0.16024,-0.1604,-0.16056,-0.16088,-0.1612,-0.16056,-0.16072,-0.1604,-0.16201,-0.16056,-0.16201,-0.16152,-0.16249,-0.16217,-0.16281 -0.24299,-0.24353,-0.24353,-0.24299,-0.24516,-0.24083,-0.24137,-0.23867,-0.24299,-0.24245,0.21128,0.21561,0.21344,0.21344,0.21344,0.13827,0.13935,0.13881,0.1399,0.13827,0.13286,0.13232,0.13178,0.13232,0.13341 -0.2688,-0.34516,-0.28789,-0.15425,-0.21152,-0.17334,-0.23061,-0.23061,-0.23061,-0.058799,-0.039709,-0.0015273,0.20847,0.017563,0.13211,0.074835,0.13211,0.13211,0.13211,0.26574,0.13211,0.20847,0.26574,0.26574,0.26574 0.30224,0.069349,-0.16354,-0.34468,-0.37055,0.19873,0.17286,0.043473,-0.29292,-0.24117,0.27636,0.22461,0.017596,-0.13766,-0.16354,0.25048,0.17286,-0.08591,-0.08591,-0.034157,0.25048,0.17286,0.017596,-0.13766,-0.11179 -0.21033,-0.15668,-0.23716,-0.23716,-0.23716,-0.12985,-0.23716,-0.23716,-0.18351,-0.21033,0.057949,-0.15668,-0.022536,0.057949,0.084777,0.084777,0.27258,0.16526,0.0042925,0.19209,0.2994,0.2994,0.27258,0.2994,0.16526 0.16467,0.092865,0.27237,0.16467,0.12877,0.12877,0.12877,0.068931,0.1527,0.2245,0.1886,0.14073,0.16467,0.16467,0.092865,-0.18238,-0.18238,-0.12254,-0.15845,-0.050741,-0.30205,-0.30205,-0.31402,-0.27812,-0.38582 -0.096767,-0.10558,-0.10728,-0.10558,-0.10785,-0.095914,-0.1033,-0.10472,-0.10472,-0.10302,-0.097051,-0.096767,-0.097904,-0.09563,-0.09563,-0.093925,-0.092504,-0.093072,-0.093356,-0.089662,0.45602,0.46113,0.4023,0.36621,0.29459 -0.014505,-0.041252,-0.037306,-0.034236,-0.041691,-0.043006,-0.041691,-0.045198,-0.034236,-0.046514,-0.041691,-0.029852,-0.046075,-0.040375,-0.048268,-0.043006,-0.030729,-0.041691,-0.046075,-0.049583,0.97909,-0.037306,-0.049583,-0.047391,-0.047829 -0.27793,-0.00070758,0.11071,0.1086,0.18147,-0.27793,0.0019327,0.08642,0.19573,0.17936,-0.27872,-0.28585,0.086684,0.20708,0.19969,-0.27767,-0.28057,0.08774,0.20233,0.20814,-0.27635,-0.28057,0.087212,0.085628,0.20761 0.37351,0.40011,0.40011,0.34691,0.40011,-0.025539,-0.025539,-0.078746,-0.10535,0.027667,-0.052142,-0.10535,-0.15856,-0.052142,-0.13195,-0.052142,-0.10535,-0.10535,-0.18516,-0.078746,-0.052142,-0.13195,-0.21176,-0.21176,-0.078746 0.2833,0.41693,0.3902,0.44365,0.33675,-0.064143,-0.090869,0.016036,0.042762,0.016036,-0.11759,-0.01069,-0.14432,-0.01069,-0.090869,-0.090869,-0.17105,-0.090869,-0.090869,-0.064143,-0.17105,-0.17105,-0.2245,-0.17105,-0.17105 -0.19746,-0.18462,-0.12685,0.28185,0.19626,-0.18248,-0.19746,-0.11401,0.27329,0.20054,-0.18248,-0.1782,-0.14397,0.29469,0.20268,-0.16964,-0.18462,-0.079772,0.29041,0.19198,-0.18248,-0.18462,-0.09261,0.26902,0.20054 0.3927,0.40242,0.3998,0.38522,0.38746,-0.14683,-0.052232,-0.052606,-0.052606,-0.054102,-0.14851,-0.14365,-0.07504,-0.058588,-0.053354,-0.14813,-0.14365,-0.080087,-0.081022,-0.080274,-0.14795,-0.14552,-0.14103,-0.081022,-0.081396 0.26242,0.26242,0.32913,0.10675,0.26242,0.1957,0.10675,0.1957,0.26242,0.1957,-0.026686,-0.026686,0.04003,-0.093403,0.04003,-0.13788,-0.22683,-0.2046,-0.22683,-0.24907,-0.16012,-0.18236,-0.27131,-0.27131,-0.18236 -0.080938,-0.085141,-0.071129,-0.044504,0.026961,-0.085141,-0.07253,-0.066925,-0.026288,-0.012275,-0.08374,-0.080938,-0.064122,-0.036097,-0.013676,-0.076734,-0.076734,-0.054313,-0.040301,0.32263,-0.037498,-0.06132,-0.031893,-0.048708,0.90136 0.18132,0.19659,0.13553,0.12027,0.10501,0.19659,0.19659,0.1508,0.12027,0.12027,0.10501,0.10501,0.13553,0.10501,0.10501,-0.062883,-0.017094,-0.017094,-0.093409,-0.062883,-0.39867,-0.29183,-0.39867,-0.33762,-0.39867 -0.096274,-0.097952,-0.096274,-0.097473,-0.096993,-0.095556,-0.096035,-0.095556,-0.095556,-0.095076,-0.094357,-0.094118,-0.094597,-0.093399,-0.094118,-0.09244,-0.093159,-0.093159,-0.094118,-0.092201,0.53324,0.52341,0.39904,0.26725,0.17547 0.16956,0.20986,0.18108,0.24871,0.22712,0.14079,0.18683,0.18108,0.18683,0.17532,0.14079,0.16669,-0.16283,0.070278,0.13791,-0.26068,-0.14988,-0.20168,-0.18441,-0.20168,-0.2909,-0.23909,-0.21895,-0.29377,-0.21895 0.21914,0.043719,0.25793,-0.25145,-0.25651,0.31865,0.031913,-0.17555,-0.24133,-0.24977,0.24275,0.077454,0.011672,-0.22278,-0.21097,0.30516,0.036973,-0.010255,-0.15194,-0.18061,0.33215,0.23938,0.028539,-0.05411,-0.14013 0.20545,0.18201,0.18201,0.19326,0.20733,0.16044,0.17357,0.18294,0.21483,0.20733,0.096667,0.10886,0.15575,0.18576,-0.19499,-0.18373,-0.20624,-0.21187,-0.22687,-0.23062,-0.23812,-0.24,-0.23812,-0.24187,-0.24375 0.21876,0.33169,0.42849,0.47689,0.42849,-0.023231,-0.023231,-0.0070985,-0.07163,-0.039364,-0.055497,-0.087763,-0.087763,-0.055497,-0.055497,-0.1039,-0.055497,-0.1039,-0.055497,-0.16843,-0.18456,-0.16843,-0.16843,-0.18456,-0.18456 0.10364,0.10082,0.099875,0.098463,-0.39865,0.10364,0.10176,0.098933,0.097521,-0.39865,0.10364,0.10082,0.098463,0.097521,-0.40148,0.10176,0.10176,0.09658,0.096109,-0.39818,0.10364,0.10035,0.099404,0.095167,-0.40289 0.3954,0.39878,0.39653,0.40216,0.40554,-0.10015,-0.086631,-0.091136,-0.083253,-0.094515,-0.10803,-0.10803,-0.10465,-0.10127,-0.10803,-0.091136,-0.094515,-0.091136,-0.091136,-0.097894,-0.10916,-0.10916,-0.10803,-0.11254,-0.10803 0.090685,0.08887,0.088507,0.089233,-0.40389,0.095764,0.095402,0.093587,0.092862,-0.40389,0.10121,0.10012,0.099393,0.098667,-0.40098,0.10629,0.1052,0.1052,0.10556,-0.39627,0.11246,0.111,0.10919,0.10955,-0.39373 0.26225,0.26411,-0.14966,-0.15028,-0.15028,0.25902,0.26474,-0.14842,-0.15078,-0.15028,0.26623,0.26896,-0.14991,-0.15065,-0.14978,0.26958,0.26958,-0.15053,-0.15028,-0.15028,0.2753,-0.14991,-0.14978,-0.14929,-0.14966 -0.10636,-0.10212,-0.10297,-0.1089,-0.11229,-0.10551,-0.10636,-0.1089,-0.1072,-0.10975,-0.096182,-0.090247,-0.095334,-0.10042,-0.10297,-0.091943,-0.086008,-0.088551,-0.081768,-0.094486,0.40491,0.40745,0.39982,0.39982,0.38625 -0.10028,-0.10055,-0.10041,-0.10014,-0.10041,-0.099317,-0.098906,-0.099728,-0.099454,-0.098769,-0.099043,-0.099317,-0.099591,-0.098496,-0.098769,-0.098496,-0.099043,-0.099454,-0.098632,-0.097811,0.45383,0.43658,0.41865,0.36417,0.31339 -0.18043,-0.18354,-0.18147,-0.1794,-0.18043,-0.11932,-0.12139,-0.12657,-0.12346,-0.12346,-0.068568,-0.056139,-0.061317,-0.069604,-0.065461,0.011186,0.0070432,0.0039359,0.008079,0.008079,0.30017,0.51353,0.51664,0.29706,0.17484 0.40211,0.39683,0.39731,0.40163,0.40067,-0.09309,-0.092131,-0.092131,-0.091651,-0.09309,-0.091171,-0.09501,-0.09405,-0.090211,-0.09405,-0.10125,-0.099808,-0.10269,-0.10077,-0.10317,-0.11084,-0.1142,-0.1142,-0.11228,-0.11276 -0.039626,-0.045655,-0.039626,-0.044148,-0.037617,-0.039626,-0.04264,-0.038119,-0.044148,-0.042138,-0.041636,-0.042138,-0.047162,-0.044148,-0.042138,-0.038119,-0.032091,-0.034603,-0.042138,-0.041636,0.97967,-0.038119,-0.039124,-0.040631,-0.04264 -0.06446,-0.061005,-0.055558,-0.055558,-0.050776,-0.063264,-0.062732,-0.054363,-0.054761,-0.051839,-0.063662,-0.06353,-0.061537,-0.05609,-0.059278,0.066665,-0.064061,-0.055957,-0.061138,-0.060607,0.95757,0.057897,0.05803,-0.061537,0.041556 0.21847,0.2859,0.2859,0.38705,0.31962,0.10047,0.13419,0.15104,0.18476,0.25219,-0.16925,-0.13553,-0.10182,-0.13553,-0.25354,-0.084962,-0.13553,-0.16925,-0.20296,-0.21982,-0.10182,-0.16925,-0.13553,-0.16925,-0.13553 -0.039148,-0.038038,-0.035819,-0.035819,-0.049134,-0.034709,-0.042477,-0.043586,-0.038038,-0.046915,-0.038038,-0.034709,-0.0336,-0.041367,-0.049134,-0.03249,-0.036929,-0.041367,-0.044696,-0.043586,0.97949,-0.039148,-0.048025,-0.048025,-0.044696 0.046408,-0.050075,-0.051108,-0.061446,-0.058689,0.044341,-0.046629,-0.050764,-0.068682,-0.063169,0.04503,-0.050075,-0.051453,-0.066615,-0.06627,0.04503,-0.052487,-0.050075,-0.061101,-0.067648,0.96196,-0.050075,-0.053521,-0.052142,-0.07075 -0.040025,-0.036846,-0.04082,-0.040025,-0.048768,-0.038436,-0.037641,-0.04082,-0.040025,-0.044794,-0.03923,-0.040025,-0.036846,-0.040025,-0.044794,-0.04241,-0.03923,-0.043204,-0.040025,-0.044794,0.97968,-0.036051,-0.036846,-0.045589,-0.04241 0.15522,0.11629,0.13575,0.16171,0.18767,0.15522,0.1682,0.17469,0.14224,0.14224,0.070862,0.14224,0.18118,0.12277,0.13575,-0.23413,-0.12381,-0.032965,-0.026476,-0.058921,-0.38987,-0.35093,-0.33796,-0.31849,-0.31849 -0.087189,-0.10778,-0.11513,-0.1166,-0.10778,-0.081305,-0.093072,-0.10631,-0.12543,-0.11219,-0.10043,-0.094543,-0.082776,-0.11219,-0.097484,-0.10484,-0.072481,-0.081305,-0.079835,-0.10337,0.44818,0.44524,0.42171,0.32316,0.34375 -0.28061,-0.14874,-0.14874,-0.28061,-0.28061,-0.22786,-0.043251,-0.069624,-0.22786,-0.17512,-0.016879,-0.016879,0.0094942,-0.043251,-0.22786,0.1941,0.24685,0.11499,0.16773,0.14136,0.1941,0.1941,0.35234,0.2996,0.27322 -0.27861,-0.38296,-0.25252,-0.22644,-0.35687,-0.069913,-0.043826,-0.27861,-0.17426,-0.043826,0.060522,-0.017739,-0.017739,0.060522,0.1127,0.16487,0.19096,0.19096,0.19096,0.1127,0.21704,0.19096,0.1127,0.32139,0.21704 0.18792,0.14309,0.35826,0.35826,0.27757,0.14309,0.11619,0.24171,0.19688,0.16999,0.11619,-0.063117,-0.081048,-0.16174,-0.11691,-0.10794,-0.098979,-0.21553,-0.15277,-0.23346,-0.15277,-0.21553,-0.23346,-0.1976,-0.27829 0.39009,0.39793,0.4112,0.40155,0.39853,-0.094264,-0.094867,-0.10512,-0.091852,-0.093661,-0.095471,-0.096677,-0.096677,-0.096677,-0.096074,-0.10392,-0.10271,-0.1003,-0.097883,-0.10392,-0.10633,-0.10753,-0.10392,-0.10633,-0.10512 -0.058806,-0.058806,-0.067207,-0.075608,-0.10501,0.021002,-0.012601,-0.046205,-0.084008,-0.10081,0.021002,0.033603,-0.037804,-0.079808,-0.09661,0.021002,0.037804,0.029403,-0.092409,-0.10501,0.93669,0.092409,0.042004,-0.09661,-0.11761 0.19182,0.20678,-0.16043,-0.15864,-0.16043,0.19302,0.40035,-0.16043,-0.15904,-0.15824,0.19382,0.19242,-0.15983,-0.15624,-0.15784,0.21116,0.19242,-0.15963,-0.15664,-0.15664,0.21335,0.38061,-0.15864,-0.15505,-0.15804 0.285,0.15306,0.36417,0.23222,0.31139,0.10028,0.17945,0.25861,0.23222,0.10028,-0.0052778,-0.16361,0.021111,-0.11083,-0.13722,-0.084445,-0.19,-0.19,-0.19,-0.058056,-0.32195,-0.16361,-0.19,-0.24278,-0.19 0.41803,-0.02564,-0.2249,-0.2224,-0.083895,0.39642,-0.028919,-0.087946,-0.08756,-0.22297,0.38986,-0.086017,-0.087753,-0.088332,-0.084088,0.36421,-0.037793,-0.088525,-0.087946,-0.084474,0.36228,-0.040107,-0.089104,-0.087753,-0.084667 0.10356,0.099063,0.098288,0.097358,-0.39997,0.10046,0.098288,0.096738,0.097358,-0.39951,0.10402,0.097823,0.097358,0.097358,-0.39997,0.10542,0.10046,0.099683,0.098753,-0.40028,0.10495,0.10356,0.099683,0.099683,-0.40013 -0.2239,-0.22554,-0.22554,-0.2262,-0.22357,-0.22554,-0.22522,-0.22522,-0.22423,-0.22489,0.15525,0.16116,0.1605,0.15525,-0.22357,0.20617,0.16182,0.15853,0.16379,0.20683,0.20157,0.16182,0.20683,0.1651,0.2088 0.26159,0.10682,-0.016544,-0.021266,-0.31254,0.3437,0.17948,0.11585,-0.065603,-0.30412,0.20555,0.20843,0.20371,-0.069503,-0.30597,0.25523,-0.069298,-0.071145,-0.069503,-0.30638,0.23532,-0.068682,-0.065603,-0.063961,-0.30556 0.43815,0.43053,0.40171,0.36611,0.35763,-0.092459,-0.091611,-0.091611,-0.091611,-0.093307,-0.098392,-0.10009,-0.098392,-0.098392,-0.10009,-0.10009,-0.10178,-0.10517,-0.10178,-0.10009,-0.10602,-0.10856,-0.10263,-0.10517,-0.10687 0.31215,0.4185,0.36532,0.31215,0.36532,0.019675,-0.0069129,0.12603,0.13932,0.086146,-0.12656,-0.16644,-0.12656,-0.086678,-0.12656,-0.16644,-0.20632,-0.086678,-0.16644,-0.12656,-0.16644,-0.16644,-0.16644,-0.12656,-0.12656 -0.039993,-0.043775,-0.045193,-0.044247,-0.037156,-0.035738,-0.042356,-0.043775,-0.043775,-0.036684,-0.038575,-0.040938,-0.043775,-0.043775,-0.035265,-0.035265,-0.038102,-0.042356,-0.042356,-0.03952,0.97968,-0.038102,-0.042356,-0.043775,-0.042829 0.42648,0.38742,0.38742,0.33535,0.2312,0.074985,0.022912,0.0098939,0.0098939,0.0098939,-0.016143,-0.016143,-0.042179,-0.016143,-0.068216,-0.10727,-0.14633,-0.10727,-0.068216,-0.15934,-0.23745,-0.22444,-0.22444,-0.22444,-0.23745 0.29555,0.34006,0.27329,0.22878,0.25104,0.13976,0.18427,0.072996,0.18427,0.16202,-0.016024,0.0062314,-0.016024,-0.10504,-0.038279,-0.21632,-0.17181,-0.082789,-0.19406,-0.016024,-0.23857,-0.32759,-0.17181,-0.19406,-0.34985 -0.097367,-0.096196,-0.096977,-0.096196,-0.097757,-0.096977,-0.095026,-0.096196,-0.097367,-0.094635,-0.095806,-0.097757,-0.095026,-0.095416,-0.089563,-0.090733,-0.096196,-0.094245,-0.094245,-0.095806,0.51566,0.45752,0.49459,0.2109,0.23081 -0.10014,-0.099441,-0.099441,-0.098738,-0.098738,-0.099675,-0.098972,-0.098972,-0.098972,-0.10038,-0.099206,-0.098504,-0.098504,-0.097801,-0.099206,-0.10038,-0.10178,-0.098035,-0.099675,-0.10038,0.43828,0.43898,0.43968,0.33851,0.33148 0.10077,0.098297,0.09768,0.098914,-0.39776,0.10015,0.10015,0.09768,0.09768,-0.40269,0.10262,0.098297,0.099531,0.099531,-0.40393,0.10262,0.10138,0.10015,0.099531,-0.39405,0.10077,0.10323,0.099531,0.10138,-0.40146 0.44019,0.44385,0.39938,0.36642,0.34184,-0.096026,-0.096026,-0.092888,-0.093934,-0.092888,-0.097073,-0.10126,-0.10021,-0.098119,-0.098119,-0.10126,-0.1044,-0.10021,-0.1023,-0.1023,-0.1044,-0.1023,-0.10544,-0.1023,-0.10021 -0.10465,-0.10465,-0.023973,0.079757,0.26417,-0.05855,-0.15076,0.010604,0.14891,0.33332,-0.20838,-0.17381,-0.023973,0.14891,0.3679,-0.25449,-0.25449,-0.11618,0.10281,0.39095,-0.27754,-0.20838,-0.13923,-0.00092205,0.25264 0.34398,0.19358,0.080785,-0.13273,-0.24821,0.0015577,0.18418,0.075414,-0.1663,-0.24687,0.35607,0.14121,0.0042434,-0.13541,-0.30327,0.27684,-0.16361,0.048557,-0.15421,-0.25089,0.2849,0.1533,0.0217,-0.11527,-0.24955 -0.23805,-0.24032,0.076776,0.15121,0.14082,-0.23852,-0.24127,0.14165,0.13699,0.13902,-0.23852,-0.23757,0.13293,0.14022,0.13472,-0.23876,-0.23781,0.12958,0.1272,0.33126,-0.23781,-0.23757,0.14882,0.22732,0.22768 0.10413,0.1092,0.10772,0.097637,-0.40425,0.10391,0.10342,0.098131,0.097778,-0.40234,0.10406,0.0994,0.097214,0.095239,-0.4003,0.098907,0.097778,0.096297,0.098625,-0.39698,0.098766,0.095169,0.097708,0.098554,-0.39578 0.14769,0.18681,0.16547,-0.24003,-0.28627,0.16547,0.16192,0.19037,-0.23291,-0.26493,0.16903,0.17614,0.18681,-0.2009,-0.27916,0.14057,0.16547,0.19393,0.058762,-0.2507,0.14769,0.14057,-0.1013,-0.25781,-0.28271 -0.043162,-0.045807,-0.038534,-0.033244,-0.029277,-0.042831,-0.046137,-0.044484,-0.046799,-0.043823,-0.04217,-0.04746,-0.04746,-0.048451,-0.046468,-0.044154,-0.045476,-0.046799,-0.04779,-0.013078,0.9787,-0.033905,-0.044484,-0.044154,-0.012748 0.33813,0.39909,0.41942,0.37877,0.43974,-0.088597,-0.088597,-0.078437,-0.088597,-0.068277,-0.088597,-0.1394,-0.12924,-0.058117,-0.1394,-0.12924,-0.10892,-0.14956,-0.098758,-0.068277,-0.10892,-0.058117,-0.14956,-0.058117,-0.078437 0.39365,0.39432,0.4045,0.40694,0.39963,-0.10424,-0.099365,-0.096045,-0.090953,-0.086747,-0.10888,-0.1049,-0.10003,-0.097152,-0.091174,-0.10977,-0.10645,-0.10224,-0.09848,-0.094495,-0.10888,-0.10556,-0.10269,-0.097152,-0.093831 -0.038693,-0.05285,-0.041839,-0.041839,-0.037121,-0.046558,-0.057568,-0.032402,-0.032402,-0.040266,-0.043412,-0.049704,-0.043412,-0.046558,-0.046558,-0.048131,-0.046558,-0.022964,-0.032402,-0.040266,0.97897,-0.037121,-0.022964,-0.032402,-0.044985 0.087712,0.088521,0.090947,0.086903,-0.40002,0.094991,0.094991,0.094182,0.092565,-0.40407,0.10146,0.097418,0.097418,0.098227,-0.39679,0.10793,0.10632,0.1047,0.1047,-0.3976,0.11117,0.11117,0.1144,0.11279,-0.40002 0.39457,0.39968,0.40138,0.40138,0.40223,-0.092679,-0.089272,-0.098642,-0.090123,-0.098642,-0.09779,-0.10801,-0.1029,-0.1029,-0.095234,-0.1029,-0.1029,-0.10801,-0.10546,-0.09779,-0.1029,-0.10801,-0.091827,-0.10801,-0.095234 -0.22482,-0.22533,-0.22635,-0.2266,-0.22711,-0.22355,-0.22457,-0.22507,-0.22584,-0.22533,0.16613,0.1641,0.1641,0.16715,-0.22482,0.19384,0.18494,0.16817,0.16689,0.16867,0.19638,0.19435,0.19181,0.17477,0.17808 -0.28316,-0.085975,0.01262,0.032339,0.34784,-0.24373,-0.12541,-0.046537,0.032339,0.36756,-0.26345,-0.10569,-0.046537,0.01262,0.36756,-0.26345,-0.10569,0.091496,-0.046537,0.30841,-0.16485,-0.085975,-0.026818,-0.046537,0.36756 -0.15405,-0.20233,-0.20559,0.23362,0.23362,-0.15369,-0.19979,-0.20305,0.23942,0.23579,-0.14425,-0.14389,-0.15187,0.23761,0.24668,-0.14461,-0.1457,-0.14969,0.25176,0.26411,-0.14389,-0.1457,-0.14933,0.24741,0.24741 0.29609,0.19629,0.32936,0.26282,0.29609,0.14638,0.079845,0.17965,0.079845,0.14638,-0.036596,0.063211,0.046576,-0.036596,-0.0033269,-0.1863,-0.16967,-0.05323,-0.1364,-0.05323,-0.25284,-0.31938,-0.26948,-0.26948,-0.33601 0.1038,0.099869,0.1038,0.10773,-0.38768,0.1038,0.095937,0.1038,0.1156,-0.37981,0.10773,0.1038,0.1038,0.10773,-0.40341,0.080209,0.095937,0.092005,0.080209,-0.4152,0.099869,0.099869,0.10773,0.084141,-0.41127 0.34452,0.062126,-0.07907,-0.18497,-0.07907,0.34452,-0.043771,-0.11437,-0.18497,-0.07907,0.34452,0.23862,-0.07907,-0.14967,-0.11437,0.23862,0.20332,-0.14967,-0.11437,-0.25556,0.30922,0.13272,-0.25556,-0.11437,-0.22027 -0.1818,-0.19176,-0.19602,-0.16189,-0.15052,-0.15905,-0.1818,-0.17754,-0.16332,-0.1562,-0.16474,-0.15336,-0.12492,-0.10359,-0.097898,0.13533,0.34153,0.28892,0.31167,0.25336,0.14813,0.19648,0.32731,0.21639,0.14528 -0.087619,-0.087619,-0.11143,-0.10122,-0.11143,-0.12163,-0.10463,-0.11483,-0.087619,-0.11143,-0.10463,-0.080816,-0.09102,-0.11823,-0.094421,-0.11143,-0.087619,-0.063809,-0.11143,-0.080816,0.4634,0.38517,0.39197,0.42599,0.31714 0.10673,0.10474,0.12205,0.12177,-0.3977,0.1107,0.11184,0.11013,0.11184,-0.39912,0.11524,0.11524,0.10474,0.10928,-0.39997,0.10957,0.093112,0.077224,0.078927,-0.3977,0.078927,0.07921,0.070132,0.062188,-0.39912 -0.040156,-0.0429,-0.040842,-0.040613,-0.038326,-0.044043,-0.043586,-0.041985,-0.041756,-0.041299,-0.045873,-0.040156,-0.039927,-0.040613,-0.040384,-0.0445,-0.039927,-0.039241,-0.039927,-0.03947,0.97974,-0.036039,-0.038784,-0.038784,-0.040613 0.1043,0.10058,0.096565,0.097711,-0.39629,0.10086,0.10029,0.095705,0.097997,-0.40145,0.096278,0.096565,0.098284,0.097138,-0.39915,0.10029,0.10287,0.10115,0.098284,-0.40116,0.10201,0.1023,0.10144,0.10917,-0.40173 -0.22265,0.018744,0.10394,0.16074,0.16074,-0.35045,-0.0096559,0.13234,0.14654,0.17494,-0.42145,-0.094855,0.047143,0.13234,0.16074,-0.36465,-0.10905,0.032944,0.14654,0.24594,-0.36465,-0.16585,0.075543,0.21754,0.14654 -0.052235,-0.046927,-0.039627,-0.038964,-0.040291,-0.04759,-0.044936,-0.046927,-0.044272,-0.038964,-0.040955,-0.0383,-0.03631,-0.038964,-0.042282,-0.0383,-0.035646,-0.038964,-0.039627,-0.036973,0.97959,-0.040955,-0.038964,-0.035646,-0.036973 -0.0438,-0.043558,-0.043558,-0.042107,-0.044525,-0.044283,-0.044042,-0.043558,-0.041624,-0.038964,-0.033404,-0.039448,-0.043075,-0.034854,-0.038964,-0.03292,-0.036547,-0.043316,-0.042107,-0.038964,0.97963,-0.03558,-0.040899,-0.047185,-0.042349 -0.3258,-0.15064,0.024522,0.1121,0.31646,-0.15064,-0.092251,0.17049,-0.033864,0.37484,-0.20902,-0.17983,-0.0046709,0.024522,0.34565,-0.23822,-0.12144,-0.0046709,0.053716,0.19968,-0.35499,-0.063058,-0.092251,0.082909,0.31646 -0.30964,-0.053504,0.060334,0.11725,0.28801,-0.13888,-0.16734,-0.053504,0.11725,0.28801,-0.22426,-0.22426,0.031875,0.20263,0.23109,-0.36656,0.031875,0.031875,0.060334,0.37339,-0.36656,-0.11042,0.031875,-0.025045,0.17417 -0.18381,-0.2047,-0.26736,-0.2047,-0.14204,-0.10026,-0.12115,-0.037598,-0.037598,-0.12115,-0.079374,-0.079374,-0.037598,-0.058486,-0.12115,-0.058486,-0.037598,0.0041776,0.025065,-0.01671,0.38016,0.35927,0.38016,0.33838,0.42193 0.25966,-0.15093,-0.15013,-0.15077,-0.15142,0.26134,0.26432,-0.14836,-0.15214,-0.15254,0.26448,0.28057,-0.14796,-0.15214,-0.1523,0.26875,0.26601,-0.14546,-0.14997,-0.15045,0.26649,0.26794,-0.1449,-0.14997,-0.15013 0.39234,-0.099483,-0.097276,-0.08624,-0.12597,0.40705,-0.094333,-0.095069,-0.082194,-0.13664,0.38094,-0.092126,-0.085504,-0.080355,-0.12487,0.40485,-0.092126,-0.091022,-0.085137,-0.11383,0.40632,-0.087712,-0.08109,-0.086976,-0.15356 0.19309,0.1966,0.21123,0.11761,0.071386,0.19192,0.19543,0.22118,0.12346,0.071971,0.1966,0.19894,0.22001,0.11586,0.065534,-0.23639,-0.23698,-0.23932,-0.23639,-0.22996,-0.23873,-0.24283,-0.24049,-0.24575,-0.244 -0.14013,-0.087314,-0.14013,-0.069711,-0.069711,-0.10492,-0.17533,-0.069711,-0.14013,-0.12252,-0.14013,-0.17533,-0.12252,-0.14013,-0.19294,-0.0169,0.018308,-0.0169,0.00070415,0.00070415,0.28236,0.38798,0.42319,0.38798,0.42319 0.38925,-0.10488,-0.086688,-0.10124,-0.11798,0.40381,-0.087416,-0.10197,-0.10488,-0.10998,0.41618,-0.097604,-0.10051,-0.10415,-0.10488,0.41108,-0.098332,-0.10051,-0.10488,-0.093237,0.37761,-0.094693,-0.097604,-0.094693,-0.091782 -0.082661,-0.05153,-0.049699,-0.047868,-0.041001,-0.040085,-0.041001,-0.04329,-0.058855,-0.041459,-0.033218,-0.031387,-0.040085,-0.023604,-0.044206,-0.031845,-0.03276,-0.037796,-0.02452,-0.045121,0.97807,-0.034592,-0.032303,-0.027267,-0.041917 0.33347,0.32318,0.36435,0.39523,0.36435,-0.078222,0.034994,0.096748,0.12762,0.12762,-0.088514,-0.067929,-0.15027,-0.13998,-0.15027,-0.19144,-0.19144,-0.12968,-0.098806,-0.19144,-0.098806,-0.12968,-0.19144,-0.13998,-0.12968 -0.2864,-0.25299,-0.30867,-0.35321,-0.3198,0.014253,0.025388,-0.041423,-0.14164,-0.17504,0.036523,0.0031178,0.014253,-0.019152,-0.052558,0.081064,0.1256,0.11447,0.036523,0.025388,0.29263,0.29263,0.32604,0.27036,0.29263 -0.10259,-0.10204,-0.10204,-0.10204,-0.10313,-0.10313,-0.098755,-0.10313,-0.10313,-0.10313,-0.098755,-0.098208,-0.098755,-0.1004,-0.098208,-0.094378,-0.096019,-0.096019,-0.093831,-0.096019,0.43858,0.42161,0.41997,0.35759,0.35595 0.39965,0.39556,0.40272,0.40375,0.39658,-0.099811,-0.092646,-0.11312,-0.075247,-0.094693,-0.09674,-0.081388,-0.099811,-0.09674,-0.09674,-0.10186,-0.1039,-0.10186,-0.1039,-0.09674,-0.10595,-0.11107,-0.10698,-0.11107,-0.108 -0.23268,-0.20238,-0.050899,0.039992,0.13088,-0.26298,-0.26298,-0.020602,0.13088,0.28237,-0.38416,-0.081196,0.10059,0.25207,0.31266,-0.26298,-0.050899,0.13088,0.13088,0.22177,-0.11149,-0.23268,-0.020602,0.19148,0.25207 0.16278,0.11285,0.012983,0.062917,-0.41146,0.087884,0.11285,0.23769,-0.061918,-0.36152,0.087884,0.18775,0.13782,-0.086885,-0.33655,0.16278,0.13782,0.13782,-0.13682,-0.38649,0.11285,0.13782,0.21272,-0.036951,-0.28662 0.16676,0.2319,0.0039085,-0.15895,-0.22409,0.2319,0.16676,0.13419,-0.12637,-0.22409,0.26447,0.19933,-0.028662,0.036479,-0.25666,0.2319,0.13419,0.19933,-0.093804,-0.35437,0.19933,0.036479,-0.22409,-0.19152,-0.35437 0.12407,0.14902,0.16288,-0.26123,-0.31389,0.1407,0.13793,0.22386,-0.27786,-0.30281,0.14902,0.13239,0.13516,-0.2141,-0.30281,0.15734,0.15179,0.12684,0.14625,-0.29449,0.1407,0.16288,0.11853,-0.13926,-0.25291 0.40347,-0.096274,-0.098515,-0.10113,-0.10337,0.39899,-0.09478,-0.10001,-0.10262,-0.10374,0.39936,-0.097395,-0.10001,-0.10188,-0.103,0.40198,-0.097395,-0.099262,-0.10188,-0.10337,0.396,-0.095154,-0.097021,-0.10113,-0.10188 0.23842,0.25115,0.27663,0.18747,0.26389,0.27663,0.28936,0.26389,0.27663,-0.016302,-0.092718,-0.029038,-0.16913,-0.1564,-0.16913,-0.13093,-0.11819,-0.14366,-0.18187,-0.24555,-0.16913,-0.18187,-0.13093,-0.16913,-0.22008 0.10415,0.099471,0.097131,0.10181,-0.4035,0.10415,0.10649,0.097131,0.094792,-0.3801,0.10415,0.097131,0.094792,0.099471,-0.40584,0.097131,0.099471,0.10181,0.10181,-0.4035,0.11585,0.083095,0.10181,0.097131,-0.40584 0.14432,0.087435,0.054931,0.063057,-0.14822,0.11181,0.071183,0.079309,0.054931,-0.30261,0.12806,0.14432,0.071183,0.038679,-0.44075,0.11181,0.14432,0.11181,0.030553,-0.46513,0.13619,0.12806,0.11181,0.054931,-0.52201 -0.15851,-0.28633,-0.10738,-0.26077,-0.43973,-0.13294,-0.10738,-0.08181,-0.26077,-0.18407,0.071583,0.071583,-0.030679,-0.030679,-0.056244,0.22498,0.097149,0.071583,0.17385,0.097149,0.25054,0.32724,0.30167,0.22498,0.22498 0.12947,0.17966,0.14665,0.14779,-0.26705,0.1331,0.16936,0.15314,-0.26285,-0.26705,0.13176,0.1623,0.1602,-0.26533,-0.26648,0.12738,0.1623,0.1539,-0.26476,-0.26724,0.11993,0.17069,0.14684,-0.2659,-0.26781 0.014334,0.0091779,-0.10941,-0.11199,-0.11199,-0.0062905,0.022068,-0.0991,-0.091366,-0.093944,-0.0011343,-0.0011343,-0.032071,-0.055273,-0.057852,0.01949,-0.0062905,-0.026915,-0.021759,-0.016603,0.95532,-0.011447,-0.0062905,-0.068164,-0.091366 -0.37378,-0.32918,-0.35148,-0.28457,-0.30687,-0.15076,-0.12846,-0.12846,-0.039251,0.0053525,0.072258,0.16147,0.049956,0.049956,0.027654,0.11686,0.11686,0.049956,0.09456,0.20607,0.18377,0.16147,0.31758,0.27298,0.20607 0.096386,0.096222,0.097533,0.097042,-0.40036,0.097042,0.097697,0.097369,0.096878,-0.39937,0.098188,0.099008,0.099008,0.09868,-0.39937,0.10294,0.10359,0.10359,0.10294,-0.39937,0.10392,0.10343,0.10425,0.10409,-0.40134 0.40058,-0.093384,-0.098034,-0.099584,-0.10096,0.40006,-0.092006,-0.09769,-0.10045,-0.10165,0.39903,-0.097517,-0.09924,-0.10131,-0.10268,0.39903,-0.098551,-0.10096,-0.10217,-0.10475,0.40109,-0.098551,-0.10079,-0.10372,-0.10578 0.35555,0.40281,0.4166,0.40478,0.41758,-0.099841,-0.095903,-0.10083,-0.09738,-0.10378,-0.10132,-0.10427,-0.10181,-0.098856,-0.10181,-0.097872,-0.099841,-0.098364,-0.099841,-0.098364,-0.096887,-0.098856,-0.10033,-0.098856,-0.1023 0.13505,0.13904,-0.11667,-0.1766,-0.36638,0.13904,0.13505,0.12905,-0.09669,-0.38037,0.14304,0.13305,0.14304,0.0071918,-0.37437,0.13505,0.13305,0.14504,0.13904,-0.34441,0.12905,0.13904,0.12905,0.13505,-0.33242 -0.17566,-0.079727,0.21872,0.20806,0.22937,-0.25027,-0.17566,0.12279,0.17608,0.26135,-0.25027,-0.20763,0.016201,0.24003,0.22937,-0.28224,-0.25027,0.016201,0.14411,0.1974,-0.20763,-0.28224,-0.17566,0.12279,0.15476 0.18163,0.17721,0.18163,-0.21751,-0.2234,0.18016,0.18016,0.18752,-0.22267,-0.23813,0.1728,0.18163,0.18458,-0.22046,-0.23887,0.16838,0.17132,0.18679,-0.22193,-0.22046,0.16101,0.16543,-0.22709,-0.22414,-0.22561 -0.27697,-0.36281,-0.21975,-0.076683,-0.36281,-0.1053,-0.13391,-0.04807,-0.16252,-0.13391,-0.04807,0.037769,-0.04807,-0.04807,-0.076683,0.12361,0.18083,0.15222,0.094995,0.12361,0.23806,0.35251,0.15222,0.38113,0.26667 0.449,0.4469,-0.054928,-0.15991,-0.17671,0.26003,0.25163,-0.027632,-0.15991,-0.19351,0.16974,0.16344,-0.099022,-0.19351,-0.19351,0.14034,0.052157,-0.073826,-0.16831,-0.21871,0.12355,0.10885,-0.092723,-0.14732,-0.20611 -0.24178,-0.24242,0.18445,0.18805,0.18572,-0.24094,-0.2439,0.17937,0.18975,0.18805,-0.242,-0.2456,0.1317,0.18233,0.18953,-0.24306,-0.24539,0.12598,0.13043,0.18085,-0.24327,-0.24623,0.12344,0.1281,0.12683 0.08941,0.08941,0.08941,0.090903,-0.39369,0.094102,0.094316,0.094955,0.094529,-0.39219,0.099008,0.098368,0.099434,0.10029,-0.40115,0.10498,0.10519,0.10562,0.10711,-0.40478,0.11031,0.1101,0.11031,0.11095,-0.40691 -0.038782,-0.03959,-0.042014,-0.033127,-0.030703,-0.038782,-0.041206,-0.042014,-0.03555,-0.038782,-0.040398,-0.046862,-0.046862,-0.040398,-0.03959,-0.020199,-0.048478,-0.048478,-0.038782,-0.038782,0.97925,-0.045246,-0.054942,-0.048478,-0.041206 0.094955,0.095998,0.096649,0.096649,-0.39927,0.097431,0.097431,0.099386,0.099256,-0.39979,0.099777,0.099777,0.10186,0.10108,-0.39953,0.10108,0.10108,0.10069,0.10108,-0.40044,0.10369,0.10434,0.10434,0.1033,-0.40083 -0.024022,-0.023354,-0.071118,-0.044397,-0.070784,-0.019012,-0.024356,-0.021684,-0.029032,-0.025358,-0.011664,-0.015004,-0.013,-0.073456,-0.072788,-0.012332,-0.013668,-0.017676,-0.076796,-0.072788,0.97167,-0.017676,-0.07379,-0.076462,-0.071452 0.083435,0.081298,0.079161,0.081298,-0.41025,0.081298,0.083435,0.089847,0.081298,-0.42308,0.098396,0.096258,0.10267,0.10694,-0.4017,0.11122,0.11336,0.12404,0.11549,-0.38888,0.11336,0.11336,0.1219,0.11549,-0.36965 -0.28814,-0.2897,-0.11061,0.2087,0.20839,-0.29219,-0.099418,-0.11248,0.20652,0.20901,-0.29063,-0.10875,-0.095065,0.2715,0.20777,-0.094133,-0.11185,-0.098796,0.21087,0.26031,-0.10595,-0.11341,-0.10066,0.26031,0.26839 -0.038281,-0.042317,-0.040972,-0.042317,-0.042317,-0.041869,-0.038281,-0.04142,-0.04142,-0.043663,-0.043214,-0.042317,-0.040523,-0.040075,-0.040972,-0.037833,-0.033796,-0.041869,-0.04142,-0.044111,0.97974,-0.040523,-0.039627,-0.03873,-0.041869 0.15417,0.19035,0.13607,0.027504,-0.20773,0.19035,0.099882,0.063693,0.081787,-0.33439,0.11798,0.099882,0.063693,0.063693,-0.35248,0.063693,0.081787,0.13607,0.027504,-0.46105,0.11798,0.081787,0.063693,0.027504,-0.53343 -0.26025,-0.25153,0.15955,0.15665,0.16246,-0.26315,-0.237,0.17263,0.16391,0.15519,-0.25444,-0.22829,0.17408,0.15229,0.16391,-0.25444,-0.22393,0.16827,0.15955,0.16972,-0.25153,-0.22103,0.17989,0.15084,0.15665 -0.23671,-0.23325,-0.23671,-0.24361,-0.24361,-0.2229,-0.21772,-0.22462,-0.24189,-0.23671,0.26737,0.20522,0.15688,0.091285,0.055034,0.26391,0.20522,0.14653,0.10164,0.037771,0.25873,0.22766,0.15688,0.10855,0.055034 0.15877,0.18889,0.17997,-0.20724,-0.30097,0.14091,0.14872,0.16435,0.16658,-0.30767,0.12529,0.13868,0.15653,-0.19273,-0.31436,0.12975,0.13533,0.14426,-0.21393,-0.31213,0.12752,0.12529,0.13087,-0.19831,-0.31436 0.12168,0.13663,0.16196,0.16154,0.19725,0.13746,0.14493,0.1686,0.18479,0.18064,0.125,0.13165,0.15324,0.18355,0.24251,-0.23916,-0.24082,-0.24082,-0.24082,-0.24331,-0.24497,-0.24497,-0.24497,-0.24497,-0.24663 0.31162,0.40436,0.28843,0.38118,0.19569,0.10295,0.14932,0.07976,0.056574,0.12613,-0.12891,-0.059356,-0.059356,0.033388,0.010202,-0.082542,-0.1521,-0.1521,-0.17529,-0.1521,-0.24484,-0.19847,-0.26803,-0.26803,-0.19847 -0.19834,-0.19063,-0.15401,0.30271,0.31427,-0.19448,-0.1598,-0.057659,0.26224,0.2526,-0.19834,-0.13282,-0.075003,0.21406,0.24875,-0.17521,-0.14245,-0.10006,-0.04995,0.2738,-0.17907,-0.13282,-0.098128,-0.0075542,0.37787 -0.08503,-0.08503,-0.10781,-0.08503,-0.062254,0.059218,-0.092622,-0.069846,-0.069846,-0.054662,0.097178,-0.062254,-0.069846,-0.069846,-0.054662,0.055422,-0.024294,-0.062254,-0.039478,-0.04707,0.94748,0.040238,-0.024294,-0.024294,-0.0091104 0.25723,0.32007,0.21534,0.29912,0.17344,0.27818,0.13155,0.1106,0.17344,0.0058652,0.089654,0.068707,0.0058652,-0.056976,0.068707,-0.20361,-0.14076,-0.20361,-0.09887,-0.14076,-0.22455,-0.22455,-0.32929,-0.30834,-0.26645 0.22909,0.22909,0.21422,0.058813,-0.16282,0.21828,0.22098,-0.10741,-0.18849,-0.20606,0.22503,0.21557,-0.11822,-0.1939,-0.21552,0.20882,0.20747,-0.15606,-0.22093,-0.22768,0.20882,0.20611,-0.18309,-0.22903,-0.23309 0.098474,0.15443,0.056511,0.098474,-0.29318,0.056511,0.070498,0.16841,0.056511,-0.34913,0.098474,0.098474,0.14044,-0.041404,-0.37711,0.098474,0.098474,0.14044,0.14044,-0.48901,0.14044,0.098474,0.14044,0.014547,-0.41907 -0.034142,-0.029488,-0.016105,-0.031233,-0.039379,-0.024833,-0.037634,-0.033561,-0.041125,-0.052761,-0.039379,-0.039379,-0.052761,-0.048107,-0.048107,-0.023087,-0.049852,-0.049852,-0.048107,-0.049852,0.97826,-0.03007,-0.046361,-0.044616,-0.068471 -0.17812,-0.16909,-0.11489,0.14705,0.34576,-0.15102,-0.16909,-0.14199,0.21931,0.3548,-0.16006,-0.12393,-0.11489,-0.015536,0.3548,-0.14199,-0.16006,-0.096828,0.011562,0.3548,-0.14199,-0.15102,-0.12393,0.020594,0.34576 -0.22947,-0.23019,0.16225,0.114,0.12192,-0.23595,-0.22155,0.14712,0.16009,0.17089,-0.26836,-0.23523,0.15505,0.15793,0.16945,-0.27988,-0.23019,0.16009,0.15505,0.22705,-0.25972,-0.24243,0.18961,0.15505,0.18745 0.099589,0.097844,0.097408,0.095882,-0.3984,0.099371,0.098717,0.098717,0.098499,-0.3984,0.099589,0.098717,0.10221,0.10395,-0.39862,0.098717,0.097626,0.10548,0.10286,-0.40189,0.097408,0.099371,0.10351,0.10439,-0.40254 0.51948,0.12954,0.079307,0.039815,-0.293,0.16558,0.11918,0.068188,-0.15496,-0.29223,0.15216,0.10193,0.064737,-0.18756,-0.29261,0.15484,0.10615,0.056685,0.022177,-0.30105,0.13682,0.095411,0.045566,-0.23472,-0.30143 -0.040078,-0.041825,-0.041825,-0.043572,-0.042699,-0.040078,-0.040078,-0.041388,-0.042262,-0.041825,-0.039641,-0.040515,-0.040078,-0.039641,-0.041388,-0.040515,-0.039641,-0.040952,-0.040078,-0.040078,0.97978,-0.039641,-0.040952,-0.039205,-0.041825 0.40306,-0.097911,-0.099713,-0.097911,-0.10031,0.40306,-0.093706,-0.099713,-0.10152,-0.099713,0.39765,-0.093706,-0.10212,-0.10152,-0.10332,0.40306,-0.093706,-0.10272,-0.10452,-0.10212,0.39285,-0.096109,-0.10212,-0.10692,-0.10031 -0.027107,-0.031062,-0.029084,-0.048861,-0.071933,-0.025129,-0.021174,-0.030403,-0.045565,-0.075888,-0.047542,-0.045565,-0.04095,-0.050179,-0.05809,-0.054794,-0.036336,-0.027107,-0.037654,-0.029084,0.97753,-0.035676,-0.031062,-0.042928,-0.034358 -0.19791,-0.20232,-0.21702,-0.20967,-0.22437,-0.14205,-0.14352,-0.15234,-0.16998,-0.17733,-0.14646,-0.13176,-0.14352,-0.12882,0.1387,0.3342,0.27393,0.21955,0.17692,0.11812,0.32832,0.27099,0.22837,0.17104,0.12694 -0.32336,-0.30507,-0.34165,-0.37823,-0.32336,-0.049016,-0.19533,-0.085595,-0.085595,-0.049016,-0.012437,0.13388,0.11559,0.060722,0.13388,0.20704,0.18875,0.15217,0.17046,0.060722,0.18875,0.29849,0.097301,0.18875,0.15217 0.40079,0.39598,0.402,0.4029,0.39809,-0.095146,-0.095146,-0.095447,-0.095447,-0.093642,-0.10026,-0.099657,-0.099056,-0.099357,-0.099958,-0.10236,-0.10206,-0.10266,-0.10176,-0.10266,-0.10266,-0.10357,-0.10206,-0.10297,-0.10387 0.26052,0.25079,0.27608,0.28192,0.27024,0.13602,0.12629,0.14574,0.17298,0.22745,0.087384,0.089329,0.075712,-0.18691,-0.20441,-0.20441,-0.18691,-0.18302,-0.18885,-0.18885,-0.21414,-0.20441,-0.21414,-0.2122,-0.2122 0.055719,-0.029933,-0.080165,-0.11623,-0.15422,0.43696,0.014503,-0.075657,-0.11752,-0.14843,0.43503,-0.046033,-0.068573,-0.13812,-0.15616,0.44856,-0.040237,-0.065997,-0.11236,-0.15809,0.44534,-0.015121,-0.058269,-0.10786,-0.14714 -0.24914,-0.23437,0.13723,0.16337,0.1645,-0.26278,-0.24914,0.18837,0.17587,0.1645,-0.24573,-0.23891,0.19064,0.16337,0.16564,-0.24573,-0.23778,0.16905,0.16223,0.16337,-0.25255,-0.22641,0.11905,0.14291,0.17246 -0.047375,-0.065473,-0.041343,-0.041343,-0.039332,-0.057429,-0.03531,-0.055418,-0.057429,-0.019224,-0.045364,-0.027267,-0.047375,-0.047375,-0.039332,-0.037321,-0.017213,-0.03531,-0.029278,-0.033299,0.97815,-0.055418,-0.031289,-0.039332,-0.033299 0.24863,-0.11203,-0.15712,-0.18388,-0.19938,0.24863,0.243,-0.11767,-0.18529,-0.19938,0.24018,0.23736,-0.13035,-0.18388,-0.19797,0.24018,0.24018,0.17819,-0.19093,-0.19797,0.23173,0.23173,0.10071,-0.18107,-0.20361 0.33145,0.41412,0.41351,0.41806,0.41715,-0.098288,-0.097833,-0.099199,-0.099957,-0.099502,-0.099199,-0.10011,-0.099502,-0.099654,-0.10011,-0.10041,-0.099805,-0.10041,-0.099805,-0.099654,-0.10056,-0.10011,-0.10011,-0.10041,-0.099654 0.3832,0.37439,0.39494,0.40375,0.38907,-0.1071,-0.1071,-0.09536,-0.086552,0.12484,-0.12178,-0.1071,-0.1071,-0.1071,-0.09536,-0.11885,-0.11298,-0.11298,-0.11298,-0.11004,-0.12178,-0.11004,-0.11885,-0.1071,-0.11004 0.089324,0.089324,0.089225,0.088625,-0.40534,0.093719,0.093919,0.093919,0.094018,-0.40633,0.099012,0.099012,0.099012,0.099312,-0.40713,0.1055,0.1048,0.1051,0.1051,-0.40813,0.1104,0.1113,0.1117,0.11529,-0.37068 0.11046,0.1213,0.11296,0.082534,-0.39058,0.10921,0.14006,0.065861,0.10254,-0.39058,0.089621,0.061275,0.10421,0.056273,-0.39308,0.11755,0.07128,0.075865,0.064193,-0.39308,0.26803,0.065444,0.065444,0.073781,-0.39058 0.088621,0.10121,0.096174,0.10121,-0.40484,0.10373,0.10373,0.091139,0.10624,-0.39225,0.10373,0.10876,0.098692,0.096174,-0.39225,0.10121,0.10121,0.098692,0.10121,-0.41743,0.10624,0.096174,0.098692,0.096174,-0.39225 -0.039872,-0.040798,-0.038638,-0.040798,-0.042033,-0.040798,-0.039872,-0.038947,-0.039872,-0.040798,-0.039872,-0.040798,-0.043576,-0.041416,-0.04049,-0.041724,-0.041107,-0.039564,-0.041724,-0.042033,0.97978,-0.038329,-0.042341,-0.042033,-0.042341 0.50175,0.032129,-0.068273,-0.079609,-0.079609,0.49365,0.014315,-0.094183,-0.10714,-0.112,0.47908,0.0062184,-0.11847,-0.12819,-0.12657,0.18435,-0.048841,-0.13143,-0.13305,-0.13791,0.13415,-0.029408,-0.15248,-0.146,-0.15248 -0.11573,-0.11573,-0.11774,-0.10872,-0.11072,-0.11473,-0.11874,-0.10872,-0.11172,-0.11172,-0.093692,-0.093692,-0.096697,-0.079666,-0.073655,-0.091688,-0.096697,-0.086679,-0.080668,-0.066642,0.37216,0.39721,0.41624,0.40322,0.40522 -0.093002,-0.094596,-0.094596,-0.094596,-0.096455,-0.094861,-0.094596,-0.095393,-0.096721,-0.097252,-0.09433,-0.095393,-0.094861,-0.095393,-0.096455,-0.092736,-0.093002,-0.091408,-0.093268,-0.093268,0.49437,0.4957,0.49995,0.19975,0.20241 -0.042438,-0.043515,-0.038848,-0.038848,-0.039566,-0.043874,-0.044233,-0.041361,-0.040643,-0.037771,-0.041361,-0.042438,-0.039925,-0.041002,-0.038848,-0.043156,-0.043515,-0.044233,-0.040643,-0.038848,0.97974,-0.037771,-0.03813,-0.041002,-0.037771 0.23682,0.040405,-0.09989,-0.24018,-0.24018,0.23682,0.096523,-0.12795,0.012346,-0.26824,0.1807,0.29294,-0.12795,-0.21213,-0.15601,0.20876,0.32099,-0.15601,-0.09989,-0.21213,0.26488,0.34905,-0.015713,-0.12795,-0.15601 0.1994,0.11896,0.044914,-0.019989,-0.3768,0.21677,0.12627,0.039429,-0.014504,-0.38838,0.20702,0.14486,0.06533,-0.016332,-0.38747,0.21098,0.13237,0.06472,-0.019684,-0.083064,0.22073,0.12871,0.057407,-0.33597,-0.33567 0.2646,0.33423,0.2646,0.29941,0.33423,0.10793,0.12534,0.055705,0.12534,0.073113,-0.048742,0.038297,0.055705,0.020889,-0.031334,-0.10097,-0.11837,-0.13578,-0.11837,-0.13578,-0.36208,-0.22282,-0.24023,-0.32727,-0.25763 0.14209,0.018992,-0.13927,-0.15686,-0.19203,0.26518,-0.068933,-0.1041,-0.086518,-0.1041,0.40586,0.0014068,-0.051348,-0.13927,-0.13927,0.45862,0.054162,-0.15686,-0.051348,-0.086518,0.52895,0.018992,-0.12169,-0.17444,-0.12169 0.10831,0.27667,0.27165,0.26903,0.26664,0.11045,0.28312,0.27285,0.26998,0.26783,-0.15916,-0.15916,-0.15916,-0.1594,-0.14842,-0.16131,-0.16131,-0.16179,-0.16131,-0.16131,-0.16036,-0.16107,-0.16107,-0.16036,-0.16131 0.27221,0.22639,0.22639,0.38678,0.29513,0.20347,0.20347,0.18056,0.065991,0.020164,-0.048577,-0.0027496,-0.0027496,0.020164,-0.048577,-0.07149,-0.16314,-0.094404,-0.16314,-0.16314,-0.2548,-0.20897,-0.27771,-0.32354,-0.27771 0.10799,0.11324,0.11849,0.11674,-0.41867,0.085247,0.10099,0.095745,0.10799,-0.36793,0.085247,0.11499,0.11674,0.090496,-0.37668,0.066,0.11849,0.13424,0.079997,-0.42917,0.052002,0.10799,0.11149,0.06425,-0.39593 0.18052,0.17155,-0.16746,-0.21409,-0.23562,0.19128,0.1859,0.22177,-0.21768,-0.21947,0.19128,0.1859,-0.11006,-0.22306,-0.22844,0.19666,0.1859,0.19128,-0.22127,-0.21947,0.19666,0.18948,0.19128,-0.20871,-0.21409 -0.039708,-0.044155,-0.040616,-0.039799,-0.039527,-0.039436,-0.040253,-0.041795,-0.04234,-0.038891,-0.039073,-0.039436,-0.042158,-0.040797,-0.04234,-0.039073,-0.040071,-0.040253,-0.03989,-0.042703,0.97977,-0.041251,-0.042521,-0.039708,-0.043973 -0.092276,-0.2068,0.00589,0.21858,0.34947,-0.2068,-0.25589,-0.043193,0.25131,0.25131,-0.15772,-0.15772,-0.092276,0.15314,0.25131,-0.15772,-0.2068,-0.17408,0.071334,0.23494,-0.15772,-0.15772,-0.22316,0.1695,0.33311 -0.25948,-0.25351,-0.25202,-0.25053,-0.23562,-0.24308,-0.21176,-0.19237,-0.18641,-0.18492,-0.19983,0.18342,0.18193,0.19535,0.18641,0.18641,0.17448,0.17746,0.17,0.17,0.15956,0.17746,0.17149,0.16702,0.16851 0.25209,0.32084,0.20626,0.16042,0.1375,0.20626,0.25209,0.1375,0.20626,0.045835,0.11459,-0.022917,0.068752,0.068752,0.022917,-0.068752,-0.22917,-0.11459,-0.16042,-0.18334,-0.22917,-0.3896,-0.22917,-0.32084,-0.25209 0.42107,0.40276,0.39531,0.38717,0.3926,-0.094116,-0.090049,-0.094794,-0.091404,-0.095471,-0.10022,-0.10089,-0.099539,-0.097505,-0.099539,-0.10496,-0.10361,-0.10496,-0.10293,-0.10293,-0.10361,-0.10496,-0.10225,-0.10293,-0.10225 0.38646,0.41047,0.41847,0.393,0.39009,-0.084353,-0.098906,-0.098906,-0.097451,-0.11637,-0.09454,-0.095995,-0.097451,-0.10182,-0.097451,-0.095995,-0.10036,-0.10036,-0.10254,-0.10254,-0.099634,-0.098906,-0.10109,-0.10473,-0.10909 -0.28875,-0.1822,-0.31538,-0.20884,-0.31538,-0.28875,-0.1822,-0.1822,-0.15556,-0.022375,-0.07565,0.030899,0.004262,0.057536,0.13745,0.16409,0.16409,0.19072,0.084174,0.29727,0.19072,0.16409,0.16409,0.29727,0.27063 -0.037827,-0.040157,-0.041904,-0.041322,-0.04103,-0.039574,-0.040739,-0.04103,-0.039865,-0.040448,-0.04103,-0.041904,-0.041904,-0.04103,-0.039865,-0.040448,-0.042487,-0.041904,-0.041904,-0.040157,0.97978,-0.038701,-0.039865,-0.042778,-0.041904 -0.23288,-0.24853,-0.35808,-0.32678,-0.31113,-0.23288,-0.13898,-0.17028,-0.10768,-0.21723,0.20534,0.23664,0.15838,0.12708,0.17403,0.17403,0.17403,0.12708,0.17403,0.17403,0.080131,0.14273,0.080131,0.17403,0.14273 0.32045,0.3022,0.28687,0.27373,0.028415,0.31461,0.30804,0.29344,0.11019,0.059079,-0.14754,-0.14462,-0.14827,-0.14389,-0.13951,-0.15849,-0.15776,-0.15557,-0.15849,-0.1563,-0.15922,-0.15703,-0.15922,-0.15484,-0.1563 0.39756,-0.094074,-0.10011,-0.10086,-0.10312,0.40209,-0.098599,-0.097845,-0.10237,-0.10011,0.39982,-0.098599,-0.10312,-0.10312,-0.10161,0.39982,-0.099353,-0.10011,-0.09709,-0.10161,0.40058,-0.096336,-0.10011,-0.10312,-0.098599 -0.27922,-0.2236,-0.19579,-0.2236,-0.33484,-0.16797,-0.0011124,-0.16797,-0.14016,-0.14016,0.11013,-0.028923,-0.11235,-0.16797,-0.028923,0.13794,0.24918,-0.0011124,0.22137,0.13794,0.24918,0.24918,0.3048,0.3048,0.24918 0.22974,0.23517,-0.11756,-0.14687,-0.18811,0.27098,0.27207,-0.087173,-0.1447,-0.17291,0.32199,-0.085003,-0.096941,-0.14795,-0.17074,0.36432,-0.083917,-0.0926,-0.13927,-0.18051,0.2992,0.29486,-0.095856,-0.15012,-0.18811 -0.041403,-0.041273,-0.041662,-0.041533,-0.041792,-0.041144,-0.041144,-0.041144,-0.041662,-0.041403,-0.04043,-0.04056,-0.041014,-0.041014,-0.041144,-0.039781,-0.039976,-0.040171,-0.041014,-0.040884,0.97979,-0.039976,-0.039781,-0.039781,-0.040106 -0.20114,-0.29693,-0.29693,-0.24903,-0.39271,-0.081415,-0.20114,-0.10536,-0.033524,-0.15325,0.1341,0.038313,-0.033524,-0.033524,0.038313,0.038313,0.11015,0.086204,0.038313,0.20593,0.22988,0.22988,0.27777,0.34961,0.30172 0.10627,0.10658,0.10233,0.10139,-0.39899,0.099022,0.10485,0.10233,0.097132,-0.39962,0.09083,0.098707,0.11084,0.092405,-0.39899,0.075863,0.074287,0.10217,0.10028,-0.39946,0.14219,0.098549,0.09209,0.098392,-0.39946 0.28443,0.075033,-0.0081879,-0.061208,-0.19141,0.25221,0.069664,-0.0021476,-0.046443,-0.64711,0.21866,0.089798,0.016644,-0.085369,-0.21221,0.26027,0.098523,0.048188,-0.063892,-0.21758,0.2502,0.12134,0.058255,-0.064563,-0.24309 0.38372,0.41949,0.41949,0.38097,0.39473,-0.092904,-0.095655,-0.098406,-0.097031,-0.095655,-0.099782,-0.098406,-0.098406,-0.099782,-0.098406,-0.10253,-0.10391,-0.099782,-0.10528,-0.10116,-0.10116,-0.10253,-0.10116,-0.10116,-0.10528 0.18281,0.12582,0.09163,0.068837,-0.1705,0.18281,0.13722,0.10303,0.02325,-0.28446,0.22839,0.16001,0.11442,-0.010941,-0.34145,0.18281,0.14861,0.080234,-0.22748,-0.34145,0.217,0.12582,-0.079322,-0.36424,-0.35285 0.17602,0.16616,-0.22831,-0.2236,-0.2266,0.1743,0.18159,0.17516,-0.2236,-0.22488,0.1713,0.19146,0.18202,-0.22274,-0.22831,0.17087,0.18588,0.18288,-0.22274,-0.22831,0.16959,0.1713,0.18245,-0.22274,-0.22917 0.1157,0.11862,-0.11634,-0.26447,-0.28198,0.13978,0.14416,-0.10248,-0.23966,-0.27541,0.26821,0.25872,-0.090073,-0.11634,-0.25206,0.25945,0.24631,-0.094451,-0.12145,-0.13167,0.26821,0.26091,0.24996,-0.11123,-0.1324 0.25227,0.25461,-0.17431,-0.17021,-0.17314,0.2511,0.26515,-0.17665,-0.17255,-0.17372,0.2552,0.28329,-0.17782,-0.15441,-0.16026,0.26515,-0.10467,-0.093555,-0.10818,-0.16319,0.27451,0.27919,-0.099406,-0.11813,-0.16026 0.28814,-0.039349,-0.078895,-0.085074,-0.18888,0.27579,-0.03317,-0.047999,-0.19135,-0.22349,0.25848,0.25725,-0.088782,-0.20742,-0.24573,0.25354,0.24365,0.25107,-0.15428,-0.22225,0.23006,0.23995,-0.11844,-0.15428,-0.21854 0.39562,0.20007,0.19988,0.20007,0.1996,0.37939,0.20131,0.2016,0.20103,0.20131,-0.1575,-0.15807,-0.15807,-0.15807,-0.15807,-0.15846,-0.15884,-0.15903,-0.15884,-0.15903,-0.15884,-0.15941,-0.15941,-0.15903,-0.15922 0.41562,0.41298,0.41404,0.41245,0.34046,-0.095159,-0.0941,-0.096218,-0.097806,-0.098864,-0.098864,-0.0986,-0.099658,-0.098335,-0.10019,-0.10019,-0.10045,-0.10098,-0.10019,-0.10045,-0.10178,-0.10178,-0.1023,-0.10416,-0.10548 0.052276,0.17734,0.19564,0.20262,0.19131,0.059926,0.17701,0.182,0.184,0.17734,0.16204,0.16238,0.16337,0.16404,0.16404,-0.2411,-0.2411,-0.2411,-0.24509,-0.24143,-0.2421,-0.2401,-0.24044,-0.24177,-0.2411 0.13752,0.13895,0.15018,-0.26654,-0.26711,0.15104,0.14834,0.14905,-0.26625,-0.26696,0.16,0.15588,0.15573,-0.26625,-0.26597,0.15744,0.15531,0.15346,0.099108,-0.26568,0.1546,0.15346,0.17537,-0.26469,-0.26597 -0.11316,-0.1273,-0.21217,-0.1273,-0.21217,-0.1273,-0.099015,-0.1273,-0.18388,-0.18388,-0.05658,-0.08487,-0.15559,-0.11316,-0.22632,0.042435,0.05658,0.042435,0.11316,0.15559,0.33948,0.31119,0.4102,0.36777,0.31119 -0.25267,-0.15492,0.17532,0.15682,0.19117,-0.28173,0.022086,0.10663,0.17532,0.15154,-0.28702,-0.26852,0.1489,0.19117,0.17003,-0.31344,-0.25267,-0.0069746,0.17532,0.1806,-0.30815,-0.19191,0.12776,0.17003,0.17532 0.094844,0.098791,0.10708,0.10076,-0.39966,0.10076,0.092871,0.10037,0.10432,-0.39887,0.098396,0.099975,0.11537,0.10155,-0.39927,0.098001,0.09958,0.10037,0.097212,-0.40242,0.091687,0.10353,0.096817,0.097212,-0.39927 0.24235,0.19363,0.13987,0.11383,0.095355,0.26251,0.18775,0.14995,0.11551,0.089475,0.25915,0.18691,0.14239,0.12139,0.086115,-0.23644,-0.23644,-0.23392,-0.23224,-0.23224,-0.24568,-0.244,-0.24232,-0.24316,-0.2398 -0.12681,-0.25237,0.092911,0.15569,0.24986,-0.28376,-0.032644,-0.032644,0.061522,0.24986,-0.31514,-0.12681,-0.064033,0.092911,0.24986,-0.34653,0.061522,0.092911,0.15569,0.34402,-0.28376,-0.22098,-0.095422,0.15569,0.21847 -0.37316,-0.048987,0.077082,0.14912,0.1131,-0.39117,-0.012967,0.13111,0.18514,0.16713,-0.33714,0.023053,0.077082,0.1131,0.16713,-0.33714,-0.085007,0.13111,0.1131,0.18514,-0.39117,-0.10302,0.077082,0.20315,0.16713 -0.24375,-0.24278,0.16314,0.17243,0.28969,-0.2415,-0.24503,0.14103,0.15449,0.15192,-0.24278,-0.24503,0.13847,0.15417,0.15705,-0.24054,-0.24182,0.13943,0.15545,0.16218,-0.24054,-0.24246,0.15353,0.13879,0.15449 -0.32262,-0.4284,-0.29618,-0.16395,-0.16395,-0.24329,-0.16395,-0.13751,-0.0052889,-0.11107,-0.058177,-0.0052889,0.021155,0.10049,0.021155,0.12693,0.23271,0.021155,0.15338,0.17982,0.20627,0.23271,0.25915,0.2856,0.25915 0.39969,0.39791,0.39732,0.40028,0.40444,-0.10321,-0.10262,-0.099656,-0.096098,-0.091353,-0.097284,-0.094911,-0.097877,-0.094318,-0.095505,-0.099656,-0.10084,-0.09847,-0.10203,-0.10321,-0.10559,-0.10262,-0.10381,-0.10381,-0.10677 -0.35284,-0.31247,-0.25192,-0.31247,-0.29229,0.071053,-0.029875,-0.19136,-0.21155,-0.29229,0.13161,0.11142,0.11142,0.071053,0.010497,0.17198,0.21235,0.17198,0.17198,0.17198,0.21235,0.21235,0.13161,0.13161,0.1518 0.077687,-0.07894,-0.084161,-0.089382,-0.11549,0.2552,-0.073719,-0.11549,-0.11549,-0.11549,0.45881,-0.058056,-0.099824,-0.12071,-0.11027,0.5058,-0.011068,-0.099824,-0.10504,-0.089382,0.52669,-0.016289,-0.099824,-0.10504,-0.12071 -0.15687,-0.11785,-0.098336,0.19433,0.37481,-0.13736,-0.16175,-0.11297,0.13092,0.40408,-0.1276,-0.14711,-0.10809,-0.00078045,0.33579,-0.17638,-0.15199,-0.10321,-0.0056582,0.32603,-0.1715,-0.16175,-0.13248,-0.049558,0.3553 -0.16981,-0.16331,-0.15877,0.17351,0.23328,-0.16884,-0.16559,-0.15877,0.30311,0.22938,-0.16689,-0.16071,-0.16071,0.25374,0.22451,-0.16559,-0.16169,-0.15195,0.24789,0.231,-0.16364,-0.16201,-0.15422,0.30603,0.23003 -0.067315,-0.052034,-0.042483,-0.030066,-0.050123,-0.058719,-0.056809,-0.046303,-0.01383,-0.061584,-0.037707,-0.041527,-0.048213,-0.026246,-0.057764,-0.052989,-0.025291,-0.028156,-0.022426,-0.063495,0.9766,-0.01192,-0.018605,-0.020515,-0.042483 0.10315,0.098504,0.098504,0.10381,-0.40078,0.10116,0.10116,0.10049,0.10315,-0.39813,0.098504,0.10049,0.10049,0.10049,-0.40078,0.09983,0.10049,0.10049,0.097178,-0.39813,0.097841,0.097841,0.097841,0.098504,-0.40211 0.42549,-0.096203,-0.10283,-0.10173,-0.10035,0.40007,-0.096203,-0.10007,-0.10062,-0.10035,0.39371,-0.094822,-0.099519,-0.099519,-0.10201,0.38791,-0.096203,-0.098966,-0.10283,-0.10201,0.39178,-0.097032,-0.099519,-0.10201,-0.10615 0.2469,0.078022,0.0064422,-0.028229,-0.27876,0.56901,0.081377,0.0019684,-0.015926,-0.30336,0.20664,0.066837,-0.0058606,-0.023755,-0.32126,0.17309,0.035521,-0.0092159,-0.031584,-0.31455,0.18204,0.046706,0.00085001,-0.025992,-0.33692 -0.075478,-0.076449,-0.076837,-0.07742,-0.078585,-0.076837,-0.072176,-0.07606,-0.075478,-0.077226,-0.072759,-0.074895,-0.074895,-0.073536,-0.07373,0.34266,0.027259,0.027065,-0.071788,-0.076449,0.881,0.027259,0.027648,0.026482,-0.078779 -0.040022,-0.0416,-0.041285,-0.042547,-0.040022,-0.039391,-0.040969,-0.040653,-0.040653,-0.040338,-0.039391,-0.040022,-0.040969,-0.041285,-0.041285,-0.03876,-0.040022,-0.042232,-0.042232,-0.0416,0.97978,-0.040022,-0.040969,-0.042547,-0.040969 -0.0086718,-0.014231,-0.083716,-0.053143,-0.025348,-0.06426,-0.069819,-0.053143,-0.078157,-0.086496,-0.01701,-0.089275,-0.078157,-0.01701,-0.01701,-0.0058924,-0.080937,-0.036466,-0.083716,-0.036466,0.96413,0.03024,-0.036466,0.019122,0.021902 0.34232,0.27256,0.27256,0.41209,0.34232,0.086511,0.086511,0.22604,0.15628,0.016744,-0.12279,-0.1693,-0.099534,-0.076278,-0.21581,-0.12279,-0.099534,-0.21581,-0.19256,-0.12279,-0.12279,-0.21581,-0.1693,-0.12279,-0.14604 -0.43564,-0.068844,0.12866,0.10044,0.18509,-0.32278,-0.15349,0.0158,0.12866,0.2133,-0.29456,-0.097059,-0.15349,0.18509,0.2133,-0.20992,0.044015,0.044015,0.07223,0.35438,-0.26635,-0.097059,0.044015,0.07223,0.29795 -0.037021,-0.038698,-0.039705,-0.040712,-0.040712,-0.039705,-0.03937,-0.040376,-0.042054,-0.041719,-0.038698,-0.040041,-0.040376,-0.042725,-0.04239,-0.041719,-0.041047,-0.042725,-0.041383,-0.041719,0.97977,-0.043732,-0.041719,-0.039705,-0.041719 0.19705,-0.037385,-0.20618,-0.22494,-0.23119,0.19705,0.17205,-0.18743,-0.21869,-0.22494,0.22519,0.22831,0.037635,-0.21243,-0.21243,0.24394,0.22831,0.14704,-0.16242,-0.19368,0.25645,0.24082,0.22519,-0.099903,-0.18743 0.43241,0.41478,0.39626,0.38656,0.36717,-0.10008,-0.095671,-0.095671,-0.09479,-0.088619,-0.10184,-0.10008,-0.10184,-0.098316,-0.10361,-0.098316,-0.10361,-0.10008,-0.10361,-0.10184,-0.10361,-0.10008,-0.10361,-0.10008,-0.10184 0.27402,0.26409,-0.14326,-0.15578,-0.15751,0.27057,0.26366,-0.14326,-0.15578,-0.15794,0.26495,-0.12684,-0.14369,-0.15363,-0.15665,0.26668,0.26236,-0.14196,-0.15233,-0.15794,0.2615,0.27057,-0.14067,-0.15492,-0.15622 0.40094,-0.094352,-0.099989,-0.10052,-0.099989,0.40024,-0.098932,-0.10034,-0.10122,-0.09946,0.39865,-0.10105,-0.10016,-0.10193,-0.099636,0.39988,-0.10087,-0.10016,-0.10069,-0.10034,0.40024,-0.098403,-0.10069,-0.10193,-0.099284 -0.032927,-0.11946,-0.041653,-0.091102,-0.045289,-0.032927,-0.028564,-0.032927,-0.032927,-0.035836,-0.035836,-0.032927,-0.032927,-0.03729,-0.03729,-0.035836,-0.032927,-0.032927,-0.032927,-0.030018,0.97496,-0.03729,-0.038745,-0.035836,-0.028564 -0.39479,-0.26906,-0.35288,-0.33192,-0.31097,-0.16429,0.024308,-0.059512,-0.2062,-0.14333,0.12908,0.15004,0.15004,0.19195,0.12908,0.19195,0.19195,0.19195,0.12908,0.17099,0.087172,0.087172,0.15004,0.17099,0.087172 -0.031741,-0.042431,-0.041608,-0.041608,-0.041608,-0.037497,-0.039141,-0.041608,-0.044075,-0.041608,-0.038319,-0.037497,-0.044075,-0.039141,-0.039141,-0.044075,-0.040786,-0.036674,-0.039141,-0.044075,0.97969,-0.04572,-0.042431,-0.041608,-0.044075 0.4011,0.39827,-0.15286,-0.15569,-0.15806,0.40818,0.14986,-0.15192,-0.15239,-0.15569,0.1593,0.15458,-0.14956,-0.15239,-0.15522,0.15647,0.15458,-0.142,-0.1505,-0.15522,0.14797,0.15411,-0.14672,-0.15097,-0.15522 -0.37981,-0.36748,-0.39214,-0.39214,-0.37981,0.014798,0.014798,0.0024663,-0.0098653,-0.0098653,0.076456,0.10112,0.076456,0.10112,0.064124,0.11345,0.10112,0.13811,0.15045,0.15045,0.13811,0.18744,0.2121,0.10112,0.18744 -0.055138,-0.049631,-0.044125,-0.033112,-0.036783,-0.055138,-0.055138,-0.044125,-0.033112,-0.029441,-0.055138,-0.051467,-0.047796,-0.036783,-0.022099,-0.020264,-0.049631,-0.044125,-0.040454,-0.012922,0.97823,-0.040454,-0.051467,-0.034947,-0.034947 0.22211,0.21351,-0.19248,-0.19156,-0.19555,0.21505,0.21259,-0.1891,-0.19033,-0.19463,0.21566,0.19109,-0.18972,-0.19125,-0.19586,0.23194,0.18618,0.18065,-0.19248,-0.19371,0.22518,0.21627,0.18341,-0.18787,-0.1891 -0.045426,-0.038469,-0.039242,-0.039242,-0.037696,-0.045426,-0.041561,-0.044653,-0.043107,-0.032284,-0.038469,-0.044653,-0.043107,-0.040015,-0.039242,-0.038469,-0.044653,-0.040015,-0.039242,-0.040788,0.97968,-0.040788,-0.040015,-0.044653,-0.038469 0.22863,0.24595,-0.1327,-0.14384,-0.1525,0.21997,0.3301,-0.14879,-0.1426,-0.18344,0.22616,0.29174,-0.13518,-0.14013,-0.16983,0.25833,0.29545,-0.13147,-0.15003,-0.16735,0.28431,-0.12033,-0.1327,-0.15869,-0.17106 0.23176,0.23292,0.24156,0.24427,0.24323,0.23537,0.24246,0.26914,0.24517,0.24323,-0.19497,-0.19433,-0.19497,-0.19484,-0.19484,-0.12847,-0.12834,-0.1286,-0.12795,-0.19278,-0.16172,-0.12872,-0.12937,-0.12898,-0.20025 -0.24502,-0.24966,0.16616,0.16616,0.17184,-0.24553,-0.23109,0.16152,0.16462,0.17029,-0.24037,-0.24502,0.15997,0.15997,0.1672,-0.2414,-0.25069,0.15585,0.15997,0.16668,-0.24605,-0.25379,0.15739,0.15533,0.16565 0.37098,0.30116,0.2218,0.16928,0.12274,0.36621,0.28923,0.22776,0.16928,0.11021,-0.15892,-0.16012,-0.15892,-0.15057,-0.14818,-0.1625,-0.16012,-0.15892,-0.16131,-0.16131,-0.15892,-0.15892,-0.16131,-0.14699,-0.14162 0.14256,0.14256,0.14699,0.14847,0.13961,0.15437,0.15732,0.15437,0.1588,0.15732,0.17947,0.23114,0.22081,0.15437,0.14551,-0.24721,-0.21177,-0.21768,-0.24721,-0.24721,-0.25606,-0.25311,-0.25311,-0.25311,-0.24721 -0.15214,-0.082827,0.1511,0.29838,0.32438,-0.20412,-0.13481,-0.0048518,0.22041,0.29838,-0.22145,-0.16947,-0.082827,0.17709,0.26373,-0.20412,-0.18679,-0.11748,0.090451,0.27239,-0.2561,-0.24744,-0.18679,-0.030843,0.18575 0.2148,0.054503,-0.1058,-0.34625,-0.31953,0.13465,0.10794,-0.052365,-0.15923,-0.29282,0.13465,0.13465,0.054503,-0.21267,-0.21267,0.26824,0.24152,0.2148,-0.1058,-0.21267,0.29496,0.2148,0.13465,0.054503,-0.23938 -0.045774,-0.044064,-0.041927,-0.04214,-0.036583,-0.041072,-0.041285,-0.041713,-0.041927,-0.039362,-0.038934,-0.038507,-0.040644,-0.038507,-0.039575,-0.039362,-0.036156,-0.039575,-0.04214,-0.041927,0.97973,-0.039148,-0.04214,-0.043636,-0.043636 0.21434,0.18157,0.18157,0.21434,0.19796,0.18157,0.099634,0.13241,0.19796,0.18157,0.099634,0.099634,0.099634,0.034085,-0.015076,-0.064238,-0.064238,-0.064238,-0.1134,-0.064238,-0.37559,-0.31005,-0.31005,-0.42476,-0.31005 0.10331,0.1215,0.10331,-0.078572,-0.40596,0.13059,0.13968,0.10331,-0.033102,-0.4878,0.1124,0.10331,0.13059,0.094214,-0.4878,0.1124,0.10331,0.094214,0.10331,-0.22408,0.1124,0.10331,0.1215,0.10331,-0.27864 -0.23322,-0.19816,0.093941,0.093941,0.10562,-0.27995,-0.13974,0.11731,0.17573,0.17573,-0.27995,-0.18648,0.12899,0.18741,0.15236,-0.2449,-0.29164,0.18741,0.17573,0.21078,-0.26827,-0.26827,0.17573,0.17573,0.23415 -0.15876,-0.15854,-0.15865,-0.15921,-0.15955,-0.15876,-0.15876,-0.15876,-0.15831,-0.15854,-0.15797,-0.15876,-0.15842,-0.15899,-0.15955,0.1176,0.32859,0.24575,0.25646,0.2595,0.32442,0.31585,0.24485,0.14533,0.14318 0.15291,0.22467,0.21969,-0.21632,-0.22778,0.15042,0.21769,0.16288,-0.2218,-0.22877,0.15192,0.16786,0.1579,-0.22529,-0.22678,0.14843,0.22716,0.16089,-0.22479,-0.22728,0.1564,0.16737,-0.21432,-0.22479,-0.22828 -0.35358,-0.16506,0.17009,0.13867,0.11772,-0.34311,-0.11269,0.17009,0.11772,0.18056,-0.30121,-0.16506,0.14914,0.15961,0.17009,-0.34311,-0.14411,0.17009,0.13867,0.11772,-0.30121,-0.081273,0.18056,0.14914,0.18056 -0.2397,-0.24329,0.11673,0.11314,0.088705,-0.2282,-0.23826,0.12895,0.098766,0.11961,-0.22245,-0.23323,0.10236,0.10667,0.25686,-0.23108,-0.23898,0.093735,0.25973,0.25399,-0.2476,-0.23251,0.10667,0.24967,0.25973 -0.43617,-0.43617,-0.2652,-0.30319,-0.20821,-0.13222,-0.056231,-0.075228,-0.094225,-0.037234,0.00075988,0.076748,0.11474,0.038754,-0.018237,0.19073,0.19073,0.095745,0.13374,0.15274,0.15274,0.24772,0.22872,0.20973,0.22872 0.16135,-0.023201,-0.062748,-0.16821,-0.15502,0.18772,0.0031638,-0.062748,-0.16821,-0.18139,0.37227,-0.010019,-0.089113,-0.18139,-0.089113,0.41182,0.029529,-0.1023,-0.11548,-0.16821,0.58319,0.14817,-0.036383,-0.1023,-0.18139 -0.39467,-0.069118,0.0060102,0.081138,0.23139,-0.21937,-0.069118,0.081138,0.23139,0.081138,-0.21937,-0.069118,0.0060102,0.23139,0.30652,-0.39467,-0.069118,0.081138,0.081138,0.23139,-0.39467,-0.14425,0.081138,0.15627,0.15627 0.15981,0.14935,0.16766,0.15981,0.15458,0.13626,0.11272,0.11533,0.12318,0.12318,0.1101,0.11533,0.11272,0.099634,0.11272,0.12318,-0.073051,-0.057352,-0.039037,-0.018106,-0.36609,-0.37394,-0.37394,-0.38964,-0.38441 -0.15922,-0.18065,-0.13779,0.18901,0.2908,-0.12172,-0.15386,-0.15922,0.055074,0.29616,-0.13244,-0.15386,-0.15386,0.076504,0.2908,-0.15386,-0.15922,-0.15386,0.29616,0.31223,-0.16994,-0.18065,-0.16458,0.20508,0.32294 0.38839,-0.1002,-0.1002,-0.099702,-0.09703,0.39674,-0.10154,-0.10187,-0.099368,-0.098867,0.40275,-0.0987,-0.10204,-0.10087,-0.10054,0.40676,-0.09653,-0.10104,-0.10204,-0.098366,0.40509,-0.097531,-0.10121,-0.10154,-0.10054 -0.25072,-0.24955,-0.24252,-0.24604,-0.24252,-0.20272,-0.24135,-0.24018,-0.22731,-0.23199,0.13913,0.3042,0.31122,0.17074,0.086445,0.11805,0.12742,0.12859,0.15903,0.10635,0.13327,0.15083,0.12742,0.15435,0.15786 0.39489,0.39267,0.39077,0.41168,0.40946,-0.096473,-0.094572,-0.096157,-0.09584,-0.096473,-0.10123,-0.10027,-0.10281,-0.10091,-0.10218,-0.10123,-0.10027,-0.098691,-0.10218,-0.10123,-0.10123,-0.10281,-0.10218,-0.10123,-0.10154 -0.10231,-0.099844,-0.10477,-0.0982,-0.099844,-0.10231,-0.10231,-0.10477,-0.10231,-0.10231,-0.10231,-0.099844,-0.099844,-0.097378,-0.099844,-0.091625,-0.10067,-0.10313,-0.095734,-0.089159,0.42206,0.41055,0.39905,0.38754,0.37932 -0.29083,-0.33316,-0.36491,-0.44957,-0.33316,-0.057996,-0.10033,-0.047413,-0.11091,-0.068579,0.090169,0.15367,0.14308,0.090169,0.11134,0.17483,0.18542,0.1325,0.12192,0.17483,0.11134,0.17483,0.16425,0.14308,0.18542 0.071527,0.17512,-0.19913,-0.21033,-0.20099,0.30672,0.20219,-0.17859,-0.20566,-0.20099,0.29645,0.20405,-0.15526,-0.20193,-0.20566,0.28525,0.18726,-0.16926,-0.17486,-0.18979,0.30205,0.19192,0.10793,0.0089969,-0.047 0.1707,0.19523,0.10973,0.15082,0.10531,0.24648,0.13889,0.18065,0.15347,0.11702,0.25333,0.13845,0.18197,0.15259,0.11967,-0.24046,-0.24112,-0.24024,-0.24046,-0.24024,-0.242,-0.24244,-0.24178,-0.24311,-0.24244 -0.37436,-0.021795,0.042308,0.26667,0.26667,-0.31026,-0.18205,-0.021795,0.042308,0.13846,-0.27821,-0.11795,-0.053846,0.26667,0.33077,-0.27821,0.010256,-0.021795,0.10641,0.23462,-0.2141,-0.18205,0.10641,0.010256,0.23462 0.39896,0.40113,0.40041,0.39969,0.39896,-0.094718,-0.10195,-0.11785,-0.094718,-0.080984,-0.10195,-0.10267,-0.099777,-0.098332,-0.098332,-0.10556,-0.097609,-0.10195,-0.10195,-0.10195,-0.098332,-0.10122,-0.09544,-0.10122,-0.10267 -0.030873,-0.02321,-0.034814,-0.046857,-0.039412,-0.030873,-0.023866,-0.037661,-0.047076,-0.044448,-0.045981,-0.045762,-0.038537,-0.044667,-0.049047,-0.043792,-0.042259,-0.044011,-0.045105,-0.049266,0.97918,-0.037442,-0.046638,-0.041383,-0.0462 -0.043819,-0.039824,-0.040712,-0.042044,-0.041156,-0.046038,-0.040268,-0.03938,-0.042044,-0.038049,-0.044707,-0.040268,-0.03938,-0.03938,-0.039824,-0.0416,-0.040268,-0.03938,-0.03938,-0.039824,0.97975,-0.043819,-0.039824,-0.038049,-0.040712 -0.10077,-0.10077,-0.10228,-0.10077,-0.10077,-0.10128,-0.09977,-0.09977,-0.10077,-0.10077,-0.09977,-0.10027,-0.10178,-0.098263,-0.099267,-0.09324,-0.096254,-0.096254,-0.095752,-0.096756,0.42058,0.4266,0.4251,0.42359,0.28948 0.33432,0.36584,0.39466,0.33162,0.54237,-0.087182,-0.091685,-0.091685,-0.088983,-0.088083,-0.09889,-0.10159,-0.097089,-0.10159,-0.10249,-0.097089,-0.09889,-0.09799,-0.09889,-0.10159,-0.10159,-0.10519,-0.107,-0.10519,-0.1061 -0.046055,-0.046055,-0.046055,-0.04454,-0.04757,-0.04454,-0.04454,-0.043025,-0.043025,-0.043025,-0.042015,-0.037975,-0.03646,-0.03747,-0.035955,-0.04252,-0.03949,-0.0405,-0.03242,-0.033935,0.97958,-0.042015,-0.03444,-0.03545,-0.0405 -0.049552,-0.046332,-0.040184,-0.039892,-0.039892,-0.041355,-0.038721,-0.040184,-0.041063,-0.039014,-0.045746,-0.042234,-0.038428,-0.039014,-0.039306,-0.05043,-0.04077,-0.039306,-0.037843,-0.037257,0.97965,-0.038721,-0.039014,-0.036965,-0.038428 0.31504,0.25507,-0.10586,-0.13837,-0.168,0.31721,-0.093212,-0.11453,-0.13729,-0.16981,0.31035,0.26157,-0.10802,-0.14596,-0.16583,0.30457,-0.091406,-0.1073,-0.14704,-0.18064,0.30276,0.24206,-0.11922,-0.14271,-0.17342 0.099602,0.098724,0.098724,0.099163,-0.39358,0.099602,0.099602,0.10267,0.10838,-0.39753,0.099602,0.099602,0.10223,0.11013,-0.40192,0.10443,0.10092,0.096092,0.10399,-0.40543,0.098724,0.090388,0.092581,0.094337,-0.40104 0.13782,0.1383,0.10543,-0.010555,-0.63593,0.13685,0.13395,0.10398,-0.0033057,-0.3015,0.1354,0.13395,0.10108,0.025208,-0.28941,0.13202,0.13057,0.093352,-0.0066887,-0.31164,0.13057,0.12718,0.10205,-0.003789,-0.30488 0.40844,0.41031,0.41254,0.41441,0.35134,-0.09765,-0.09877,-0.098023,-0.098396,-0.098023,-0.099516,-0.099516,-0.099143,-0.099143,-0.10101,-0.099889,-0.10026,-0.10176,-0.099516,-0.099516,-0.10026,-0.099889,-0.10026,-0.10138,-0.10511 -0.26167,-0.26167,0.05744,-0.0063823,0.28082,-0.16594,-0.10212,-0.16594,-0.0063823,0.28082,-0.19785,-0.038294,0.025529,0.05744,0.37655,-0.29358,-0.19785,0.089352,0.05744,0.34464,-0.26167,-0.070205,-0.0063823,0.15317,0.31273 0.018574,-0.075883,-0.081167,-0.08447,-0.077204,0.028483,-0.046159,-0.079846,-0.089094,-0.079186,0.03707,0.035748,-0.069938,-0.083809,-0.079186,0.035088,0.031125,-0.077204,-0.079186,-0.070599,0.9473,0.031785,-0.068617,-0.071259,0.047638 0.099819,0.11202,0.11289,0.11986,-0.39771,0.10069,0.10156,0.10505,0.12073,-0.40119,0.10243,0.097205,0.09372,0.09372,-0.40032,0.085878,0.095463,0.09372,0.090235,-0.39509,0.091977,0.094591,0.097205,0.089363,-0.40381 -0.23291,-0.31982,-0.26767,-0.30244,-0.31982,0.010429,0.010429,-0.09386,-0.12862,-0.18077,0.010429,0.02781,-0.09386,-0.09386,-0.09386,0.18424,0.11472,0.097336,0.18424,0.18424,0.28853,0.39282,0.20162,0.23639,0.18424 0.080671,0.086304,0.090529,0.087712,-0.38831,0.090529,0.090529,0.090529,0.091938,-0.39395,0.098979,0.1032,0.1018,0.098979,-0.38268,0.1032,0.1032,0.1032,0.11306,-0.40662,0.11588,0.11165,0.11306,0.12151,-0.42493 0.2338,0.22411,0.079985,0.05334,-0.3742,0.25924,0.099364,0.093308,0.099364,-0.396,0.10542,0.11511,0.027905,0.075141,-0.38389,0.098153,0.082408,0.025483,0.024272,-0.36693,0.10058,0.067874,0.019427,0.020638,-0.38389 0.40701,-0.098963,-0.09921,-0.10069,-0.09921,0.40405,-0.099457,-0.10044,-0.099704,-0.099457,0.40677,-0.10044,-0.099457,-0.099704,-0.10069,0.42257,-0.099951,-0.1002,-0.099457,-0.099951,0.35713,-0.099951,-0.09921,-0.10143,-0.099951 0.23374,0.21109,0.21109,0.21109,0.12049,0.15446,0.19976,0.16579,0.19976,0.17711,-0.094672,0.052545,0.097843,0.075194,0.10917,-0.25321,-0.17394,-0.12865,-0.049374,0.018572,-0.32116,-0.34381,-0.35513,-0.27586,-0.24189 -0.042143,-0.040584,-0.038506,-0.039545,-0.039545,-0.042143,-0.042143,-0.042143,-0.041104,-0.039026,-0.040065,-0.042143,-0.040584,-0.044221,-0.039026,-0.03487,-0.042143,-0.039026,-0.042662,-0.040065,0.97973,-0.040584,-0.037467,-0.04526,-0.04474 0.13566,0.075549,0.081876,0.094531,-0.44013,0.10402,0.10402,0.075549,0.056567,-0.43064,0.12933,0.053403,0.088204,0.091367,-0.38319,0.11035,0.078713,0.11668,0.091367,-0.34839,0.08504,0.15148,0.15464,0.10086,-0.37686 -0.16777,-0.16777,-0.30836,-0.2615,-0.42552,-0.16777,-0.21463,-0.14434,-0.0037491,-0.097475,-0.0037491,-0.050612,0.043114,0.019683,-0.027181,0.13684,0.13684,0.13684,0.11341,0.066546,0.30086,0.254,0.34773,0.34773,0.13684 -0.041431,-0.039522,-0.040476,-0.041311,-0.042265,-0.041669,-0.041908,-0.039522,-0.039761,-0.042146,-0.039045,-0.038568,-0.040238,-0.041908,-0.04155,-0.038568,-0.041431,-0.040238,-0.041669,-0.041431,0.97978,-0.04155,-0.041669,-0.041073,-0.040834 0.4032,0.40015,0.39623,0.39841,0.4019,-0.095025,-0.096769,-0.098512,-0.098512,-0.10113,-0.099384,-0.098512,-0.098512,-0.099384,-0.099384,-0.10287,-0.10287,-0.10113,-0.102,-0.099384,-0.10113,-0.10113,-0.10287,-0.10113,-0.10026 0.39936,0.39987,0.39987,0.39987,0.39683,-0.084203,-0.085217,-0.086738,-0.1131,-0.11462,-0.088765,-0.087244,-0.089779,-0.11259,-0.11867,-0.086738,-0.088258,-0.086738,-0.095355,-0.10955,-0.085724,-0.11005,-0.1136,-0.10499,-0.13388 -0.042087,-0.039906,-0.058442,-0.040997,-0.038816,-0.042087,-0.037726,-0.038816,-0.045358,-0.035545,-0.036635,-0.044268,-0.037726,-0.037726,-0.042087,-0.044268,-0.038816,-0.037726,-0.039906,-0.040997,0.97956,-0.042087,-0.036635,-0.042087,-0.038816 -0.097979,-0.098589,-0.098937,-0.099983,-0.10007,-0.098066,-0.098937,-0.099286,-0.099634,-0.10033,-0.098415,-0.099286,-0.099721,-0.10042,-0.10033,-0.098589,-0.099286,-0.099634,-0.10033,-0.10077,0.4311,0.42578,0.41568,0.41272,0.30331 -0.21357,-0.13582,-0.31725,-0.395,-0.34317,-0.032139,-0.0062205,-0.1099,-0.083977,-0.21357,-0.0062205,-0.0062205,-0.058058,-0.032139,-0.032139,0.12337,0.20113,0.045617,0.097455,0.097455,0.30481,0.22705,0.25297,0.35664,0.27889 -0.23626,-0.14539,0.0060578,0.066636,0.27866,-0.23626,-0.23626,-0.20597,0.066636,0.33924,-0.17568,-0.14539,0.0060578,0.066636,0.43011,-0.20597,-0.14539,-0.05452,0.096925,0.24837,-0.08481,-0.14539,0.0060578,0.0060578,0.39982 0.42604,0.43019,0.4194,0.36712,0.35135,-0.091821,-0.092651,-0.098461,-0.10842,-0.10012,-0.10759,-0.10012,-0.091821,-0.10427,-0.091821,-0.096801,-0.097631,-0.1051,-0.10095,-0.10012,-0.097631,-0.10261,-0.10344,-0.10178,-0.10095 0.28886,0.28886,0.33428,0.33428,0.28886,0.17532,0.06177,0.03906,0.1299,0.1299,-0.0063586,0.03906,-0.11991,-0.0063586,0.016351,-0.11991,-0.16532,-0.18803,-0.16532,-0.21074,-0.32429,-0.14262,-0.23345,-0.14262,-0.30158 0.10177,0.09518,0.10096,0.10532,-0.40074,0.095282,0.094876,0.10147,0.10451,-0.40033,0.097208,0.1112,0.10218,0.10258,-0.39921,0.095586,0.10552,0.096093,0.099033,-0.39911,0.095687,0.097918,0.10096,0.096295,-0.40023 -0.099086,-0.097816,-0.098133,-0.099404,-0.097816,-0.1048,-0.10576,-0.10544,-0.1048,-0.10417,-0.10417,-0.10544,-0.10734,-0.10544,-0.10417,-0.10544,-0.10449,-0.1048,-0.10099,-0.033656,0.40181,0.40117,0.42372,0.40498,0.36147 0.39982,0.39999,0.40033,0.40033,0.39949,-0.097912,-0.098081,-0.097576,-0.098585,-0.097912,-0.099426,-0.1006,-0.099931,-0.099426,-0.099258,-0.10094,-0.10144,-0.1006,-0.10027,-0.10128,-0.10195,-0.10144,-0.10128,-0.10128,-0.10077 -0.14797,-0.27823,-0.25218,-0.35639,-0.40849,-0.069818,-0.25218,-0.14797,-0.069818,-0.09587,0.06044,0.06044,0.06044,0.0083365,0.034388,0.16465,0.06044,0.086491,0.034388,0.21675,0.21675,0.21675,0.2949,0.26885,0.2949 -0.15457,-0.15566,-0.15522,-0.15609,-0.15522,-0.079124,-0.079993,-0.080428,-0.079993,-0.079993,-0.079558,-0.079558,-0.079993,-0.079993,-0.079993,-0.079993,-0.080863,-0.079558,-0.081298,-0.081298,0.4092,0.39224,0.39072,0.39007,0.39616 0.25773,-0.038133,-0.0052597,-0.16963,-0.36687,0.15911,-0.0052597,0.09336,-0.2025,-0.33399,0.32347,0.19198,-0.0052597,-0.2025,-0.10388,0.25773,0.09336,0.060487,-0.0052597,-0.26825,0.35635,0.15911,-0.071007,0.09336,-0.26825 0.40865,0.22071,0.14554,-0.14013,-0.11757,0.42368,0.18688,0.0027063,-0.13637,-0.14013,0.18688,0.11923,-0.12509,-0.1514,-0.17771,0.21695,0.096675,-0.15892,-0.21154,-0.22282,0.10795,0.13802,-0.2153,-0.23785,-0.21906 0.14385,-0.036968,0.20413,-0.097241,-0.39861,0.10367,0.043397,0.12376,-0.11733,-0.31824,0.16394,0.14385,0.083579,-0.036968,-0.33834,0.18404,0.16394,0.14385,-0.057059,-0.31824,0.16394,0.24431,0.22422,-0.057059,-0.35843 -0.039031,-0.037777,-0.043421,-0.034014,-0.030252,-0.042167,-0.037777,-0.051573,-0.035269,-0.030879,-0.042794,-0.040913,-0.044048,-0.037777,-0.034641,-0.044675,-0.044048,-0.040913,-0.03715,-0.052828,0.97939,-0.035896,-0.047184,-0.046556,-0.047811 0.42473,0.41092,0.39771,0.3881,0.3767,-0.098257,-0.095855,-0.096456,-0.092252,-0.092252,-0.10246,-0.10366,-0.097656,-0.10906,-0.097656,-0.10066,-0.098857,-0.099458,-0.10186,-0.10366,-0.10666,-0.094054,-0.10726,-0.099458,-0.10066 -0.16007,-0.16017,-0.16017,-0.16017,-0.15996,-0.16038,-0.16028,-0.15964,-0.15932,-0.15996,-0.15996,-0.16007,-0.15996,-0.15889,-0.15879,0.26091,0.26133,0.26123,0.26165,0.26219,0.26091,0.26123,0.26123,0.26123,0.045892 0.33685,0.32634,0.44838,0.44515,0.42817,-0.085829,-0.09876,-0.09876,-0.10361,-0.10199,-0.10361,-0.10199,-0.10603,-0.10199,-0.10199,-0.097143,-0.10038,-0.10199,-0.10442,-0.10361,-0.089061,-0.095527,-0.09876,-0.09391,-0.095527 0.0098255,-0.095172,-0.10336,-0.10336,-0.094209,-0.012812,0.0069356,-0.095172,-0.1024,-0.09469,-0.023408,-0.0070319,0.006454,0.0045274,-0.091319,-0.029669,-0.023408,-0.026298,0.00019266,-0.0051054,0.95866,-0.016665,-0.026298,-0.024853,-0.011367 -0.16535,-0.19055,-0.19055,-0.20063,-0.19895,-0.10824,-0.10488,-0.13008,-0.17039,-0.20063,-0.099844,-0.11664,-0.11664,-0.11832,-0.11832,0.27306,0.2865,0.27138,0.23611,-0.13848,0.28146,0.28146,0.26634,0.23947,0.23275 0.13177,0.15175,0.18922,0.26664,0.22668,0.13427,0.14426,0.14176,0.12678,0.15175,0.089314,0.091812,0.12678,0.16924,0.15425,-0.29282,-0.21789,0.029372,-0.17543,-0.2104,-0.30781,-0.27534,-0.29032,-0.27534,-0.28033 0.2718,0.23024,0.14712,0.2718,0.33414,0.20946,0.20946,0.14712,0.14712,0.1679,0.0016624,-0.060678,-0.060678,0.0016624,-0.039898,-0.081458,-0.22692,-0.060678,-0.1438,-0.060678,-0.18536,-0.33082,-0.26848,-0.26848,-0.3516 0.40687,-0.098137,-0.099655,-0.10057,-0.09753,0.40232,-0.099048,-0.10087,-0.099958,-0.099655,0.40687,-0.10026,-0.10026,-0.10057,-0.099351,0.40353,-0.099958,-0.10057,-0.10148,-0.099958,0.37986,-0.099958,-0.10057,-0.10117,-0.099958 0.1503,0.14899,0.14833,-0.27154,-0.26891,0.14964,0.1503,0.14702,-0.26694,-0.26104,0.14833,0.14964,0.14932,-0.26432,-0.26826,0.1503,0.15161,0.14964,-0.26629,-0.2676,0.15194,0.15161,0.15096,0.15194,-0.26498 -0.26858,-0.16646,-0.29411,-0.19199,-0.29411,-0.089866,-0.089866,-0.24305,-0.14093,-0.16646,-0.013276,-0.013276,-0.013276,-0.1154,0.063315,0.16544,0.2165,0.063315,-0.013276,0.19097,0.36968,0.2165,0.24203,0.39521,0.19097 0.17722,-0.025347,-0.19156,-0.22792,-0.2435,0.21358,0.094117,-0.12923,-0.22792,-0.2435,0.1928,0.15645,0.078534,-0.20714,-0.25389,0.2863,0.18761,0.16683,-0.11365,-0.27466,0.34343,0.21877,0.12528,0.094117,-0.19675 -0.15877,-0.16122,-0.16294,0.29035,0.28741,-0.16147,-0.16122,-0.1649,0.27981,0.28447,-0.16098,-0.16122,-0.16465,0.28275,0.20435,-0.16,-0.1622,-0.16245,0.20067,0.20018,-0.15975,-0.16147,-0.16416,0.1992,0.19822 0.35929,0.36667,0.43661,0.42887,0.40357,-0.09866,-0.10077,-0.10323,-0.10112,-0.096903,-0.097606,-0.099715,-0.099012,-0.097957,-0.097957,-0.099363,-0.099012,-0.099715,-0.10007,-0.099715,-0.099715,-0.10112,-0.10007,-0.10217,-0.10112 0.018224,-0.042606,-0.060399,-0.067434,-0.073227,0.001258,0.0145,-0.051296,-0.057916,-0.07571,0.015741,-0.0028801,-0.04964,-0.060399,-0.071986,-0.016536,-0.02026,-0.040123,-0.071986,-0.071572,0.96874,-0.02026,-0.041364,-0.054606,-0.068262 -0.24353,-0.24768,0.15308,0.14685,0.178,-0.23938,-0.25391,0.15515,0.16346,0.16761,-0.24768,-0.24768,0.16761,0.15308,0.178,-0.2373,-0.24768,0.16346,0.15723,0.16969,-0.23522,-0.24768,0.16761,0.16138,0.16554 0.40239,0.40044,0.40109,0.39881,0.39718,-0.094183,-0.098091,-0.098742,-0.098742,-0.10004,-0.098742,-0.099719,-0.099067,-0.10102,-0.1007,-0.099393,-0.099067,-0.10102,-0.1033,-0.10265,-0.10004,-0.10004,-0.10167,-0.10135,-0.10232 -0.16978,-0.11506,-0.13851,-0.16978,-0.16196,-0.16196,-0.17759,-0.16196,-0.13851,-0.14633,-0.13069,-0.10724,-0.12288,-0.075977,-0.09161,-0.06816,-0.060344,0.088171,0.14289,0.22105,0.30703,0.30703,0.37738,0.36957,0.3852 0.25026,-0.080273,-0.12749,0.037775,-0.1511,0.41553,-0.10388,-0.080273,-0.12749,-0.1511,0.41553,-0.080273,-0.033053,-0.12749,-0.29276,0.3447,0.061385,-0.0094438,-0.12749,-0.22193,0.39192,0.061385,-0.0094438,-0.10388,-0.1511 0.18102,0.31491,0.23458,0.15424,0.12746,0.2078,0.04713,0.2078,0.15424,0.18102,0.073908,0.15424,0.073908,0.020351,0.10069,-0.086761,-0.19387,-0.11354,-0.27421,-0.1671,-0.32777,-0.24743,-0.14032,-0.35454,-0.32777 -0.12662,-0.10365,-0.1016,-0.10036,-0.1016,-0.099954,-0.099954,-0.099134,-0.098313,-0.097903,-0.097082,-0.094621,-0.096672,-0.095031,-0.091749,-0.088877,-0.092159,-0.088467,-0.090108,-0.087647,0.47112,0.46825,0.46784,0.27707,0.26722 -0.41702,-0.24278,-0.35894,-0.12662,-0.21374,-0.15566,-0.12662,-0.12662,-0.097576,-0.12662,-0.010455,0.076666,-0.097576,-0.010455,0.047626,0.25091,-0.010455,0.10571,0.16379,0.16379,0.30899,0.25091,0.25091,0.22187,0.27995 -0.39358,-0.074196,0.11007,0.17149,0.12235,-0.35673,-0.11105,0.11007,0.13463,0.1592,-0.40587,-0.12333,0.085497,0.13463,0.19605,-0.29531,-0.074196,0.13463,0.17149,0.19605,-0.31988,-0.00049136,0.14692,0.17149,0.11007 0.15299,0.14508,0.14596,-0.26915,-0.26651,0.16413,0.16531,0.14566,-0.26945,-0.26534,0.16853,0.14625,0.14361,-0.26534,-0.26476,0.14801,0.14508,0.14508,-0.26006,-0.26622,0.13247,0.14508,0.15211,0.15299,-0.2715 0.31095,0.33124,0.33124,0.33124,0.25006,0.067385,0.20946,0.067385,0.047088,0.067385,-0.034098,0.0064949,-0.013802,-0.034098,-0.013802,-0.094989,-0.13558,-0.13558,-0.13558,-0.054395,-0.27766,-0.21677,-0.25736,-0.27766,-0.33855 0.40075,0.39881,0.40075,0.40075,0.39881,-0.10046,-0.096964,-0.097353,-0.096964,-0.096964,-0.10046,-0.097741,-0.098517,-0.097741,-0.097741,-0.10512,-0.10046,-0.10046,-0.10007,-0.097741,-0.10589,-0.10356,-0.1024,-0.10162,-0.10162 0.39037,0.439,0.446,0.35854,0.35889,-0.096938,-0.096413,-0.097287,-0.097287,-0.096413,-0.098687,-0.10026,-0.099736,-0.10009,-0.10009,-0.10114,-0.10044,-0.10096,-0.10114,-0.10061,-0.10096,-0.10096,-0.10114,-0.10131,-0.10096 -0.22281,-0.24314,-0.2838,-0.31429,-0.29057,-0.15504,-0.12794,-0.1957,-0.21942,-0.21603,0.3193,0.11262,0.15328,0.18039,-0.070339,0.25493,0.16006,0.16684,0.16345,0.099071,0.19394,0.16006,0.10585,0.21427,0.055024 -0.24349,-0.24349,-0.24362,-0.24309,-0.24349,-0.24215,-0.24255,-0.24268,-0.24134,-0.14893,0.1164,0.11627,0.161,0.15926,0.15926,0.11038,0.11265,0.12792,0.15819,0.15886,0.10837,0.10877,0.12551,0.19395,0.41803 0.39075,0.39671,0.39968,0.40401,0.40861,-0.099122,-0.096957,-0.096686,-0.098852,-0.1002,-0.098852,-0.09831,-0.099934,-0.099663,-0.10075,-0.1002,-0.099663,-0.099934,-0.1002,-0.1021,-0.10048,-0.1021,-0.10156,-0.1021,-0.1021 0.26656,0.20289,0.20289,0.3939,0.20289,0.13922,0.20289,0.13922,0.20289,0.075554,0.075554,0.011885,0.075554,0.011885,-0.09423,-0.1579,-0.26401,-0.09423,-0.1579,-0.09423,-0.22157,-0.32768,-0.26401,-0.26401,-0.26401 0.39861,-0.10084,-0.10189,-0.10084,-0.10154,0.39791,-0.099777,-0.10048,-0.099071,-0.10013,0.40391,-0.099071,-0.099424,-0.10048,-0.10084,0.40144,-0.098542,-0.10013,-0.10013,-0.10013,0.39808,-0.097307,-0.099777,-0.10048,-0.099071 -0.23822,-0.12144,0.1121,0.19968,0.31646,-0.26741,-0.092251,0.053716,-0.0046709,0.40404,-0.26741,-0.3258,0.024522,-0.0046709,0.19968,-0.15064,-0.063058,-0.033864,0.053716,0.28726,-0.26741,-0.15064,-0.033864,0.053716,0.31646 0.38351,-0.099638,-0.099325,-0.10026,-0.1012,0.38978,-0.099325,-0.099638,-0.099952,-0.099638,0.38884,-0.098698,-0.099638,-0.10026,-0.10183,0.4114,-0.098385,-0.10089,-0.099638,-0.10058,0.42519,-0.098385,-0.10089,-0.10058,-0.099952 -0.050644,-0.046748,-0.046748,-0.051423,-0.049865,-0.047527,-0.049085,-0.050644,-0.045969,-0.051423,-0.047527,-0.049085,-0.048306,-0.049085,-0.048306,-0.04519,-0.050644,-0.049865,-0.031165,-0.028049,0.9747,-0.039736,-0.049085,0.024932,0.026491 -0.28997,-0.28997,-0.29103,-0.28786,-0.28962,-0.29911,-0.12335,-0.123,-0.123,-0.12265,0.20426,0.16419,0.17262,0.15645,-0.11703,0.1315,0.16137,0.15821,0.15399,0.29179,0.13853,0.16102,0.15962,0.14907,0.15399 0.40957,-0.057603,-0.11761,-0.22047,-0.25904,0.18241,0.028116,-0.10475,-0.19475,-0.25904,0.12241,0.058118,0.010972,-0.16047,-0.20333,0.34099,0.16955,-0.027602,-0.13046,-0.16047,0.34099,0.31956,0.14812,-0.057603,-0.17761 0.14861,0.15614,0.15865,0.12852,-0.29822,0.15614,0.16869,0.18124,-0.22793,-0.24801,0.13355,0.16869,0.16869,-0.27563,-0.24801,0.10844,0.12852,0.17371,-0.28316,-0.25052,0.12099,0.11346,0.1712,-0.27563,-0.27814 0.40061,0.39979,0.39979,0.39959,0.4002,-0.098399,-0.097992,-0.098603,-0.098196,-0.099418,-0.099214,-0.099214,-0.10084,-0.099622,-0.099826,-0.10064,-0.10044,-0.10125,-0.10064,-0.10044,-0.10105,-0.10125,-0.10064,-0.10084,-0.10146 0.23794,0.21565,-0.22235,-0.22385,-0.22492,0.21736,0.21886,0.20622,-0.22214,-0.2245,0.15779,0.15951,0.15929,-0.22321,-0.22578,0.14751,0.14836,0.14815,-0.22514,-0.22407,0.14986,0.14815,0.14815,-0.22235,-0.2245 0.28766,0.29633,0.19937,0.19568,0.19503,0.42931,0.19329,0.19373,0.19373,0.19677,-0.15877,-0.15877,-0.15855,-0.15985,-0.16072,-0.1579,-0.15964,-0.15834,-0.1592,-0.15899,-0.15855,-0.15768,-0.15834,-0.15855,-0.15703 0.40237,-0.10223,-0.099502,-0.10223,-0.10168,0.39965,-0.095684,-0.098957,-0.10059,-0.10332,0.40019,-0.10278,-0.098957,-0.10168,-0.10332,0.40019,-0.096229,-0.096229,-0.10005,-0.10168,0.39746,-0.095684,-0.098957,-0.098411,-0.10168 -0.037514,-0.038852,-0.039521,-0.040525,-0.040525,-0.03651,-0.035506,-0.039856,-0.040525,-0.041529,-0.038518,-0.035172,-0.043202,-0.038852,-0.04086,-0.039856,-0.041194,-0.041864,-0.040191,-0.045209,0.97963,-0.043202,-0.044875,-0.041529,-0.054243 -0.044649,-0.043342,-0.042907,-0.038551,-0.042036,-0.044213,-0.041165,-0.041165,-0.03768,-0.037245,-0.045955,-0.040293,-0.039422,-0.038987,-0.035503,-0.048568,-0.0416,-0.042907,-0.0416,-0.035503,0.97967,-0.041165,-0.040729,-0.038551,-0.035938 0.39319,0.39416,0.39612,0.40003,0.41468,-0.091409,-0.087501,-0.093363,-0.10216,-0.11486,-0.097271,-0.097271,-0.09434,-0.097271,-0.096294,-0.10997,-0.1129,-0.098248,-0.098248,-0.087501,-0.11388,-0.1129,-0.10606,-0.089455,-0.097271 0.10679,0.10612,0.10897,0.10813,-0.39697,0.10144,0.1001,0.10462,0.10361,-0.39898,0.097418,0.096079,0.098757,0.10278,-0.40032,0.093065,0.099594,0.094237,0.10227,-0.40049,0.090386,0.095911,0.092395,0.096748,-0.40266 -0.045032,-0.045032,-0.049342,-0.03555,-0.032964,-0.042446,-0.045032,-0.047618,-0.030378,-0.032964,-0.042446,-0.04848,-0.049342,-0.033826,-0.036412,-0.038998,-0.04848,-0.045894,-0.037274,-0.03124,0.97905,-0.046756,-0.057962,-0.03124,-0.024344 -0.37971,-0.35326,-0.34004,-0.36648,-0.36648,-0.0095191,-0.049182,-0.062403,-0.02274,-0.10207,0.096248,0.043365,0.056586,0.14913,0.12269,0.096248,0.13591,0.14913,0.16235,0.1888,0.26812,0.096248,0.10947,0.21524,0.16235 -0.056375,-0.055243,-0.05411,-0.011642,-0.037123,-0.043352,-0.056375,-0.049014,-0.0082445,-0.028629,-0.029195,-0.055243,-0.04958,-0.011642,-0.024099,0.014971,-0.055243,-0.052978,-0.039954,-0.045617,0.97532,-0.052411,-0.060339,-0.060339,-0.053544 -0.24349,-0.27838,-0.17372,-0.1214,-0.27838,-0.1214,-0.10396,-0.15628,-0.15628,-0.17372,0.14024,-0.016745,-0.034187,-0.1214,-0.24349,0.22745,0.15768,0.10535,0.070467,0.035582,0.31466,0.29722,0.26233,0.26233,0.34954 -0.16096,-0.13672,-0.23368,-0.13672,-0.063996,-0.20944,-0.13672,-0.039755,-0.11248,-0.13672,-0.1852,-0.063996,-0.1852,-0.088237,-0.1852,0.08145,0.10569,0.0087268,0.057209,0.032968,0.3481,0.39658,0.37234,0.29962,0.37234 0.30531,0.2602,-0.083092,-0.13321,-0.14824,0.33287,0.28025,-0.10314,-0.13321,-0.14574,0.32786,-0.03047,-0.12569,-0.1307,-0.14824,0.36043,-0.090609,-0.14323,-0.13822,-0.14824,0.35041,-0.098127,-0.13321,-0.13822,-0.14574 0.18646,0.20105,0.19862,-0.16613,-0.22449,0.18889,0.19375,0.19375,-0.18072,-0.21963,0.19619,0.20834,0.14998,-0.21233,-0.23422,0.19132,0.20105,-0.16856,-0.20504,-0.22449,0.19619,0.1816,-0.20261,-0.21476,-0.23422 -0.31442,-0.1193,0.10369,0.10369,0.21519,-0.25867,-0.17505,-0.035679,0.047944,0.21519,-0.37017,-0.17505,0.13157,-0.0078048,0.29881,-0.17505,-0.1193,0.10369,0.18732,0.27094,-0.37017,0.047944,-0.035679,0.21519,0.21519 0.4675,0.43789,0.39014,0.36173,0.3303,-0.09702,-0.10004,-0.10004,-0.098834,-0.09702,-0.098229,-0.10004,-0.10065,-0.097625,-0.10004,-0.099438,-0.10004,-0.10125,-0.099438,-0.099438,-0.098834,-0.098834,-0.10004,-0.099438,-0.10125 0.49923,0.42621,0.3939,0.34924,0.3101,-0.09548,-0.097844,-0.095742,-0.096005,-0.09653,-0.098369,-0.098895,-0.098106,-0.098895,-0.098632,-0.099945,-0.099945,-0.099945,-0.09942,-0.10047,-0.10257,-0.10152,-0.101,-0.09942,-0.099945 -0.042686,-0.042686,-0.042686,-0.036598,-0.029206,-0.043121,-0.044426,-0.040512,-0.040077,-0.037903,-0.043556,-0.040947,-0.042252,-0.040077,-0.041382,-0.040947,-0.044426,-0.041382,-0.039207,-0.040077,0.97968,-0.043991,-0.040947,-0.039207,-0.041382 -0.17429,-0.21402,-0.16104,-0.17429,-0.13456,-0.20078,-0.13456,-0.20078,-0.17429,-0.21402,-0.17429,-0.068338,-0.17429,-0.10807,0.090587,0.037612,0.15681,0.15681,0.20978,0.38195,0.11707,0.28924,0.28924,0.276,0.30249 0.40766,0.40255,0.39744,0.39633,0.39589,-0.097651,-0.098539,-0.098761,-0.098761,-0.099427,-0.099205,-0.099427,-0.099205,-0.098317,-0.10009,-0.099871,-0.10076,-0.10098,-0.10098,-0.10032,-0.10143,-0.10187,-0.10143,-0.10143,-0.10143 0.40759,0.40335,0.40067,0.39553,0.39263,-0.096483,-0.097823,-0.097376,-0.096259,-0.10006,-0.098939,-0.099609,-0.099163,-0.099163,-0.098493,-0.10162,-0.10095,-0.10095,-0.10095,-0.10028,-0.10207,-0.10207,-0.10184,-0.10296,-0.10274 0.24936,0.20079,0.18459,0.13602,0.10363,0.20079,0.21698,0.18459,0.11982,0.055054,0.1684,0.15221,0.23317,0.11982,0.022669,-0.22022,-0.2526,-0.20402,-0.15545,-0.26879,-0.30118,-0.26879,-0.30118,-0.18783,-0.18783 0.22859,0.22859,-0.17179,-0.17411,-0.17342,0.22673,0.22766,-0.17504,-0.17434,-0.17853,0.22534,0.22487,0.22766,-0.17969,-0.17969,0.22441,0.22348,-0.18062,-0.17853,-0.17783,0.22162,0.22278,-0.17969,-0.18062,-0.17783 0.13975,0.2114,-0.14286,-0.15692,-0.17165,0.14109,0.17859,-0.14219,-0.15491,-0.15558,0.13975,0.15783,-0.13951,-0.15759,-0.14821,0.46253,0.19734,-0.14018,-0.14486,-0.15692,0.45717,0.18261,-0.14018,-0.15022,-0.16629 0.35165,0.26602,0.23748,-0.019409,-0.30484,0.20893,0.18039,0.06622,-0.047952,-0.39047,0.20893,0.037677,-0.13358,-0.13358,-0.24775,0.20893,0.094763,0.037677,-0.24775,-0.24775,0.15185,0.037677,0.06622,-0.19067,-0.19067 -0.40172,-0.38362,-0.057905,0.14114,0.28591,-0.23886,-0.11219,0.068762,0.10495,0.37638,-0.18457,-0.03981,0.050667,0.10495,0.304,-0.18457,-0.057905,-0.0036191,0.12305,0.15924,-0.25695,-0.057905,-0.076,0.10495,0.23162 -0.25433,-0.25964,-0.19332,0.16478,0.24171,-0.2676,-0.23842,-0.13231,0.19926,0.18865,-0.23311,-0.20659,0.066634,0.27884,0.20988,-0.20659,-0.15884,0.013581,0.19396,0.20192,-0.19598,0.00031831,0.17539,0.20457,0.20722 0.40597,0.40055,0.40055,0.40055,0.38971,-0.10014,-0.089293,-0.10918,-0.10195,-0.080255,-0.11098,-0.096523,-0.080255,-0.12183,-0.1146,-0.087485,-0.10014,-0.085677,-0.10014,-0.10195,-0.11821,-0.09833,-0.10195,-0.096523,-0.10195 -0.3179,-0.33321,-0.36384,-0.27196,-0.27196,-0.27196,-0.13414,-0.13414,-0.088203,0.034301,0.018988,0.064928,0.018988,0.049614,0.14149,0.20275,0.20275,0.15681,0.24868,0.18743,0.14149,0.15681,0.12618,0.18743,0.24868 0.27474,-0.15893,-0.16621,-0.15164,-0.14344,0.26563,0.26381,-0.14981,-0.14435,-0.14617,0.26654,0.25834,-0.15619,-0.15073,-0.1407,0.27565,0.26016,-0.15164,-0.1407,-0.15073,0.27018,0.26381,-0.15073,-0.14617,-0.15073 0.40022,-0.10207,-0.10246,-0.10246,-0.10168,0.40907,-0.10109,-0.10148,-0.099515,-0.10089,0.42952,-0.1001,-0.1001,-0.099908,-0.1001,0.38096,-0.099319,-0.098532,-0.098336,-0.098336,0.3784,-0.098532,-0.097942,-0.097549,-0.097746 -0.032055,-0.094456,-0.094456,-0.11416,-0.064897,0.043484,-0.078034,-0.091172,-0.11745,-0.032055,0.06319,-0.05176,-0.061613,-0.045192,-0.0057803,0.0402,0.0073568,-0.022202,-0.071466,0.027062,0.94994,-0.0057803,-0.012349,-0.081319,-0.055045 0.40317,-0.0985,-0.10146,-0.10035,-0.09887,0.39651,-0.099979,-0.10035,-0.099979,-0.099239,0.39984,-0.0985,-0.099979,-0.10146,-0.0985,0.39947,-0.10146,-0.099609,-0.10183,-0.099979,0.40095,-0.10146,-0.1022,-0.097761,-0.0985 0.039893,0.079629,0.086642,0.099108,-0.38553,0.093654,0.11002,0.11157,0.095992,-0.40812,0.11625,0.11625,0.11859,0.11547,-0.39176,0.16144,0.13339,0.10924,0.10534,-0.38864,0.018076,0.13339,0.085084,0.049242,-0.40422 -0.042139,-0.044401,-0.038068,-0.04033,-0.040782,-0.042139,-0.043496,-0.038973,-0.039877,-0.040782,-0.042139,-0.04621,-0.041687,-0.038973,-0.03852,-0.03852,-0.029926,-0.044401,-0.042139,-0.039877,0.97968,-0.043948,-0.043948,-0.040782,-0.037616 0.29941,0.30704,-0.15477,-0.15771,-0.16123,0.29178,0.30821,-0.15712,-0.15653,-0.16006,0.30058,0.29178,-0.15712,-0.16064,-0.16006,0.079359,0.28415,-0.14773,-0.15888,-0.15712,0.077011,0.083466,-0.13658,-0.13834,-0.15888 0.11849,0.16526,0.11849,0.19644,0.11849,0.13408,0.21203,0.11849,0.13408,0.19644,0.16526,0.13408,0.1029,0.11849,0.11849,-0.099781,-0.021827,-0.068599,-0.11537,-0.053009,-0.36482,-0.34923,-0.36482,-0.34923,-0.36482 0.21261,0.21261,0.18643,0.23879,0.13406,0.23879,0.16024,0.13406,0.18643,0.18643,0.003142,-0.023041,0.16024,0.18643,0.081692,-0.23251,-0.20633,-0.28488,-0.25869,-0.18014,-0.31106,-0.20633,-0.12777,-0.31106,-0.18014 0.12656,0.12411,0.12558,0.18059,-0.26145,0.16684,0.13688,0.12116,-0.26293,-0.2644,0.18059,0.17126,0.11379,-0.26342,-0.2644,0.18206,0.15407,0.11183,-0.26735,-0.26587,0.17715,0.16929,0.14572,-0.26735,-0.27029 -0.049192,-0.047957,-0.042708,-0.03962,-0.036224,-0.047339,-0.041164,-0.044252,-0.034989,-0.036533,-0.047648,-0.039929,-0.042708,-0.036841,-0.035915,-0.044252,-0.03962,-0.040238,-0.038385,-0.036533,0.9796,-0.039003,-0.039929,-0.041164,-0.037459 -0.34568,-0.34568,-0.23873,-0.38847,-0.38847,-0.046205,-0.024814,0.03936,-0.17455,-0.17455,0.12493,0.10353,0.10353,0.03936,0.03936,0.14632,0.1891,0.1891,0.16771,0.082143,0.1891,0.16771,0.12493,0.23188,0.1891 0.13783,0.096315,0.14376,0.16155,0.15562,0.10225,0.10225,0.12004,0.17934,0.13783,0.12004,0.10225,0.10225,0.12004,0.1319,0.048869,0.013285,0.0073541,-0.040092,-0.040092,-0.29511,-0.3307,-0.40187,-0.41966,-0.45524 0.31711,0.30453,-0.10115,-0.13552,-0.15899,0.33471,-0.077684,-0.10199,-0.13803,-0.16569,0.32465,0.29783,-0.10618,-0.13133,-0.16234,0.32465,-0.026554,-0.10786,-0.13887,-0.16569,0.31124,-0.07014,-0.11121,-0.14223,-0.17324 0.22044,0.042026,-0.11656,-0.29498,-0.47339,0.20062,0.14115,-0.11656,-0.11656,-0.23551,0.26009,0.14115,0.0023789,-0.11656,-0.3148,0.31956,0.14115,0.022203,-0.037269,-0.13639,0.20062,0.20062,0.20062,0.0023789,-0.13639 0.12758,0.12758,0.088473,0.11455,0.12324,0.11889,0.11455,0.11455,0.10151,0.10151,0.13193,0.11455,0.13193,0.11889,0.11889,0.062401,0.027637,0.040673,0.049364,0.049364,-0.39822,-0.38518,-0.40691,-0.38518,-0.40256 -0.041322,-0.041322,-0.040839,-0.041805,-0.041322,-0.03746,-0.037943,-0.040356,-0.038908,-0.040356,-0.027805,-0.041322,-0.04277,-0.039391,-0.038908,-0.047115,-0.042287,-0.045184,-0.043736,-0.040356,0.97966,-0.042287,-0.042287,-0.042287,-0.042287 0.40106,-0.10249,-0.095748,-0.10047,-0.10249,0.39904,-0.097097,-0.097771,-0.10114,-0.10384,0.39836,-0.098445,-0.099793,-0.097771,-0.10114,0.40039,-0.10182,-0.10047,-0.099793,-0.10182,0.40106,-0.097771,-0.10047,-0.097771,-0.10182 0.15192,0.13254,0.21005,0.17129,0.15192,0.093784,0.17129,0.11316,0.11316,0.093784,0.093784,0.15192,0.035654,0.093784,0.15192,0.035654,-0.041854,-0.022477,0.016277,-0.022477,-0.39064,-0.39064,-0.39064,-0.39064,-0.33251 0.17327,0.17745,0.16353,-0.19978,-0.43502,0.15935,0.15239,0.14961,-0.15523,-0.35986,0.13012,0.1343,0.1343,-0.1441,-0.32784,0.12177,0.11899,0.12038,0.12734,-0.33758,0.093931,0.086971,0.088363,0.092539,-0.2652 0.35731,0.3498,-0.091204,-0.13624,-0.13061,0.34605,-0.057425,-0.11185,-0.13249,-0.14563,0.3498,-0.046165,-0.09871,-0.14,-0.14938,0.35168,-0.070561,-0.09871,-0.13812,-0.14375,0.35731,-0.053671,-0.08745,-0.13624,-0.14375 0.29741,0.2163,0.27037,0.24333,0.10815,0.16222,0.16222,0.29741,0.13518,0.10815,0.054074,0.13518,-0.10815,0.054074,0,-0.2163,-0.18926,-0.10815,-0.10815,-0.10815,-0.27037,-0.29741,-0.29741,-0.27037,-0.27037 -0.38381,-0.29496,-0.25054,-0.25054,-0.18391,-0.13949,-0.11727,-0.11727,-0.22833,-0.13949,0.038203,0.038203,-0.050641,0.12705,0.015992,0.17147,0.26031,0.17147,0.082625,0.082625,0.30474,0.17147,0.39358,0.19368,0.10484 0.25386,0.08772,0.021265,-0.34423,-0.31101,0.1874,0.08772,-0.011962,-0.34423,-0.21132,0.15417,0.12095,0.08772,-0.011962,-0.24455,0.32031,0.12095,0.12095,-0.1781,-0.14487,0.1874,0.25386,0.1874,-0.14487,-0.24455 -0.026089,-0.026441,-0.045046,-0.042588,-0.044344,-0.04996,-0.040833,-0.034515,-0.041535,-0.042588,-0.030302,-0.041184,-0.040833,-0.043993,-0.041535,-0.028898,-0.040482,-0.045748,-0.045748,-0.046801,0.9793,-0.047854,-0.043642,-0.042237,-0.046099 0.22173,-0.063101,-0.12883,-0.23838,-0.26029,0.28746,0.024539,-0.12883,-0.22742,-0.29315,0.29841,0.156,-0.041191,-0.1617,-0.22742,0.17791,0.28746,0.057404,-0.030236,-0.20552,0.24364,0.2765,0.17791,0.013584,-0.21647 0.23954,0.1801,0.31384,0.1801,0.19496,0.31384,0.34356,0.090943,0.13552,0.20982,-0.072516,-0.10224,0.046363,-0.087376,0.031503,-0.17654,-0.13196,-0.22112,-0.17654,-0.2657,-0.14682,-0.25084,-0.1914,-0.1914,-0.2657 0.40946,0.28488,0.1603,0.1603,0.15337,0.40254,0.1949,0.16722,0.12569,0.11877,0.042635,-0.061184,-0.061184,-0.061184,-0.061184,-0.20653,-0.22037,-0.18577,-0.18577,-0.13732,-0.23421,-0.23421,-0.19269,-0.14424,-0.23421 0.12561,0.13894,0.15418,0.15227,0.14656,0.14465,0.15989,0.15799,0.16751,0.1656,0.16179,0.17893,0.18274,0.18465,0.19036,-0.26859,-0.25336,-0.12195,-0.16766,-0.26097,-0.29144,-0.2724,-0.24955,-0.24574,-0.28002 0.39988,-0.099656,-0.099852,-0.099852,-0.10103,0.39831,-0.099852,-0.099656,-0.10025,-0.10064,0.40067,-0.099263,-0.099459,-0.10064,-0.10044,0.40047,-0.10064,-0.10005,-0.099656,-0.10123,0.40067,-0.10005,-0.099656,-0.099459,-0.098673 -0.2423,-0.24077,-0.24307,-0.2423,-0.24383,-0.23008,-0.23696,-0.23925,-0.2423,-0.2423,0.22519,0.20609,0.22901,0.28019,0.11901,0.18241,0.11748,0.14498,0.14728,0.13047,0.13047,0.11825,0.12436,0.12436,0.1236 0.41652,0.40682,0.39612,0.39268,0.38723,-0.096333,-0.097141,-0.097949,-0.096737,-0.096737,-0.099969,-0.10037,-0.099969,-0.099969,-0.099565,-0.10158,-0.10158,-0.10078,-0.10078,-0.10078,-0.10158,-0.10239,-0.10199,-0.10199,-0.10118 0.37074,0.37196,0.37223,0.43346,0.44594,-0.098665,-0.098665,-0.098529,-0.098529,-0.098258,-0.099072,-0.099615,-0.099751,-0.099072,-0.099615,-0.1007,-0.10016,-0.1007,-0.1007,-0.10016,-0.10029,-0.10124,-0.10043,-0.099887,-0.10029 -0.22862,-0.11975,0.01633,0.23406,0.37015,-0.2014,-0.11975,-0.092536,0.17963,0.2885,-0.25584,-0.17419,0.01633,-0.010887,0.45179,-0.2014,-0.25584,0.043546,0.01633,0.15241,-0.17419,-0.17419,-0.038103,0.01633,0.26128 -0.042232,-0.042232,-0.022185,0.031273,-0.075643,-0.048914,-0.075643,-0.062278,-0.048914,-0.048914,-0.06896,-0.06896,-0.089007,-0.06896,-0.0088205,-0.095689,-0.062278,-0.062278,-0.06896,0.34534,-0.055596,-0.062278,-0.035549,-0.055596,0.89328 0.40345,0.40305,0.39355,0.39751,0.40226,-0.093634,-0.097991,-0.10433,-0.10274,-0.10156,-0.099179,-0.098783,-0.097991,-0.099179,-0.097595,-0.098387,-0.098783,-0.099179,-0.10076,-0.10116,-0.10156,-0.10235,-0.10116,-0.10116,-0.10235 0.35783,0.096427,-0.077839,0.0092942,-0.22306,0.24165,0.12547,-0.048794,-0.19402,-0.36828,0.50305,0.067383,-0.01975,-0.077839,-0.22306,0.15452,0.096427,-0.16497,-0.13593,-0.048794,0.29974,0.038338,-0.048794,-0.22306,-0.13593 -0.11415,-0.11703,-0.1103,-0.11222,-0.11222,-0.11222,-0.11222,-0.10934,-0.10549,-0.095866,-0.089131,-0.092017,-0.085282,-0.082396,-0.086245,-0.093942,-0.082396,-0.094904,-0.086245,-0.10356,0.40155,0.40155,0.3977,0.39578,0.40059 0.3816,-0.10098,-0.098798,-0.099752,-0.098117,0.38378,-0.1003,-0.099616,-0.099479,-0.099343,0.41021,-0.099752,-0.099616,-0.10002,-0.098526,0.4132,-0.10098,-0.10166,-0.099752,-0.098526,0.41021,-0.1018,-0.1018,-0.1018,-0.098389 -0.16102,-0.15883,-0.16014,-0.15839,-0.15926,-0.15532,-0.15576,-0.15401,-0.15401,-0.15445,-0.1527,-0.15401,-0.15576,-0.15401,-0.15489,0.37302,0.28897,0.21631,0.1651,0.12526,0.39709,0.27278,0.21631,0.17035,0.11738 -0.1609,-0.15854,-0.16613,0.18586,0.18455,-0.15985,-0.1609,-0.16142,0.1911,0.19031,-0.1588,-0.16142,-0.16273,0.19371,0.27851,-0.15802,-0.16037,-0.1643,0.30023,0.28793,-0.15828,-0.15959,-0.16351,0.31096,0.29159 0.46508,0.24586,0.12001,-0.0017863,-0.12764,0.29863,0.17684,0.05099,-0.10328,-0.1723,0.26616,0.12813,0.018512,-0.1317,-0.21289,0.19308,0.030692,-0.087041,-0.15606,-0.29815,0.095647,-0.046443,-0.14794,-0.25755,-0.34686 -0.16565,-0.17159,-0.16763,-0.17357,-0.17159,-0.16367,-0.16763,-0.16763,-0.16565,-0.16961,-0.12804,-0.14883,-0.1221,-0.12408,-0.13002,0.18375,0.1877,0.19166,0.19463,0.41536,0.15801,0.19958,0.17979,0.21146,0.41536 -0.3524,-0.21606,-0.23809,-0.26426,-0.24911,-0.20779,-0.21468,-0.20779,-0.2133,-0.20779,0.27836,0.26046,0.15303,0.15579,0.14753,0.23704,0.1613,0.14202,0.14202,0.10896,0.15303,0.11447,0.1131,0.095192,0.10896 0.14095,0.13687,0.14773,-0.27168,-0.27711,0.14366,0.15452,0.16402,-0.27168,-0.2839,0.15452,0.14502,0.15723,-0.25132,-0.27304,0.14502,0.14773,0.15452,-0.25404,-0.26626,0.15452,0.14909,0.14638,0.15588,-0.24861 0.4041,0.41425,0.37465,0.38785,0.41628,-0.084271,-0.10559,-0.09544,-0.09747,-0.10661,-0.10965,-0.10965,-0.10052,-0.092394,-0.089348,-0.088332,-0.10762,-0.088332,-0.086302,-0.094424,-0.10762,-0.10762,-0.10864,-0.10965,-0.10762 0.17294,0.2594,0,-0.064851,-0.28102,0.21617,0.17294,0.21617,0,-0.30264,0.19455,0.17294,0.1297,0,-0.43234,0.064851,0.064851,0.064851,0,-0.32425,0.1297,0.064851,0,-0.086468,-0.43234 0.40565,0.41724,0.44221,0.43775,0.27871,-0.094961,-0.094961,-0.096745,-0.095555,-0.097339,-0.094961,-0.097339,-0.09615,-0.097934,-0.097934,-0.099717,-0.10031,-0.10061,-0.1012,-0.1018,-0.1021,-0.10239,-0.10299,-0.10299,-0.10358 -0.23457,-0.23457,-0.30096,-0.27883,-0.23457,-0.057537,-0.1018,-0.1018,-0.23457,-0.21244,0.0088518,-0.035407,0.0088518,-0.23457,0.09737,0.18589,0.25228,0.20802,0.18589,0.23015,0.18589,0.18589,0.25228,0.16376,0.29654 0.3986,-0.10238,-0.099347,-0.10743,-0.11349,0.39658,-0.10137,-0.11147,-0.1044,-0.092277,0.40062,-0.097327,-0.099347,-0.10339,-0.097327,0.40264,-0.089247,-0.092277,-0.098337,-0.092277,0.40062,-0.10238,-0.089247,-0.097327,-0.10844 0.3821,0.38811,0.39312,0.38811,0.44522,-0.094823,-0.096827,-0.094823,-0.099833,-0.10384,-0.10084,-0.10785,-0.10484,-0.10785,-0.10484,-0.095825,-0.099833,-0.095825,-0.10384,-0.10484,-0.091818,-0.088812,-0.091818,-0.099833,-0.10785 0.4064,-0.1006,-0.10043,-0.10148,-0.10096,0.40111,-0.10025,-0.10131,-0.10078,-0.10113,0.39758,-0.10043,-0.10043,-0.1006,-0.10078,0.39512,-0.099193,-0.098665,-0.099017,-0.10007,0.3997,-0.098841,-0.097784,-0.098841,-0.098312 0.09649,0.098585,0.099109,0.10068,-0.36605,0.1033,0.10382,0.10435,0.10435,-0.41006,0.10854,0.10854,0.10697,0.10959,-0.36605,0.11378,0.11116,0.11273,-0.11881,-0.38544,0.12006,0.12111,0.12059,0.12163,-0.41896 0.42514,-0.099514,-0.099819,-0.098297,-0.09921,0.39167,-0.098297,-0.10134,-0.09921,-0.098601,0.39501,-0.10012,-0.10043,-0.10104,-0.099819,0.39501,-0.10043,-0.10104,-0.10134,-0.097688,0.39228,-0.096471,-0.10225,-0.10591,-0.098297 0.41137,0.4126,0.41081,0.38341,0.38073,-0.098627,-0.099074,-0.098403,-0.098515,-0.099298,-0.099522,-0.099745,-0.099745,-0.099634,-0.10064,-0.10064,-0.1003,-0.1003,-0.10064,-0.10042,-0.10064,-0.10064,-0.10064,-0.10053,-0.10098 0.33912,0.19167,0.081093,-0.17693,-0.17693,0.30226,0.22854,-0.14007,-0.25065,-0.25065,0.19167,-0.029488,0.11795,-0.21379,-0.25065,0.044233,0.22854,0.11795,-0.10321,-0.28751,0.2654,0.11795,-0.029488,-0.029488,-0.28751 0.096195,0.094188,0.095921,0.10422,-0.39958,0.098384,0.095921,0.10222,0.10614,-0.40049,0.096833,0.097837,0.1066,0.10614,-0.40003,0.099023,0.094735,0.10103,0.10358,-0.39958,0.1014,0.099388,0.099388,0.10057,-0.40003 0.016258,-0.0058617,-0.15932,-0.15194,-0.14595,0.27985,0.28123,-0.16208,-0.16024,-0.1584,0.28538,0.28262,-0.13535,-0.16024,-0.15932,0.28584,0.284,-0.1584,-0.1584,-0.15563,0.28815,0.29137,-0.12706,-0.14826,-0.14826 0.13236,0.12659,0.12554,-0.26763,-0.26553,0.15284,0.14024,0.13446,-0.265,-0.2671,0.17541,0.15809,0.15231,-0.26448,-0.2671,0.15179,0.15546,0.15126,-0.26763,-0.26763,0.13604,0.19221,0.15441,0.15546,-0.26238 -0.34568,-0.033068,0.1684,0.1684,0.17534,-0.29706,-0.081697,0.14061,0.19618,0.21008,-0.32484,-0.081697,0.12671,0.1545,0.1545,-0.3179,-0.22758,0.13366,0.17534,0.12671,-0.32484,-0.22758,0.098926,0.17534,0.057244 -0.20617,-0.2119,-0.1947,-0.1947,-0.15167,-0.1947,-0.18322,-0.1488,-0.16888,-0.17892,-0.16745,-0.15311,-0.15167,-0.16601,0.21976,0.25562,0.23267,0.22263,0.21116,0.21116,0.23267,0.23267,0.23411,0.21259,0.20686 -0.17575,-0.19842,-0.21309,-0.17308,-0.15975,-0.19975,-0.19442,-0.17842,-0.11041,-0.11174,-0.16108,-0.13841,-0.083742,-0.083742,-0.087742,0.22829,0.23362,0.2763,-0.078408,0.29096,0.22029,0.23629,0.27496,0.32163,0.26563 0.13133,-0.10333,-0.15026,-0.16591,-0.19328,0.14111,0.20369,-0.14635,-0.16395,-0.16591,0.27995,0.28386,-0.095507,-0.14244,-0.15613,0.31124,0.3347,-0.12093,-0.15222,-0.14048,0.31319,0.32884,-0.14048,-0.14635,-0.14439 0.4234,0.4246,0.4242,0.42193,0.29196,-0.099228,-0.099228,-0.099328,-0.099228,-0.099328,-0.099328,-0.099328,-0.099228,-0.099228,-0.099362,-0.099328,-0.099328,-0.099328,-0.099529,-0.099328,-0.099228,-0.099429,-0.099328,-0.099128,-0.099328 0.401,0.40213,0.40128,0.401,0.39447,-0.10163,-0.097937,-0.093112,-0.10106,-0.099924,-0.10049,-0.099072,-0.09964,-0.099924,-0.10077,-0.099356,-0.099924,-0.099072,-0.099924,-0.10049,-0.10163,-0.10134,-0.10191,-0.10077,-0.10191 0.087427,0.089238,0.080184,0.087065,-0.40259,0.11531,0.092135,0.091411,0.10517,-0.40114,0.1088,0.10916,0.11423,0.10228,-0.39969,0.088876,0.092135,0.099379,0.10735,-0.39824,0.090325,0.10047,0.12147,0.11495,-0.3957 0.13827,0.16055,-0.22477,-0.2204,-0.22108,0.16001,0.15919,0.15891,-0.22163,-0.22163,0.16534,0.15932,0.15768,-0.2219,-0.22231,0.16534,0.16506,0.16547,-0.22149,-0.22163,0.34741,0.16889,0.16917,-0.22176,-0.22204 -0.23469,-0.24098,0.089346,0.085152,0.087249,-0.22945,-0.2305,0.079908,0.093541,0.21519,-0.2305,-0.23155,0.082006,0.088298,0.23406,-0.22735,-0.23889,0.10613,0.22148,0.24979,-0.24098,-0.24308,0.22882,0.21938,0.26762 -0.12516,-0.11055,-0.12272,-0.12029,-0.11542,-0.09107,-0.09107,-0.093505,-0.10081,-0.088635,-0.09107,-0.088635,-0.093505,-0.098375,-0.09107,-0.09594,-0.09594,-0.098375,-0.088635,-0.09594,0.41541,0.39837,0.40567,0.38863,0.38863 0.38576,0.39448,0.39393,0.38532,0.43853,-0.099085,-0.09875,-0.099532,-0.099309,-0.09875,-0.099756,-0.099532,-0.099979,-0.099532,-0.1002,-0.099979,-0.10043,-0.1002,-0.099979,-0.10043,-0.1002,-0.1002,-0.10087,-0.10043,-0.10087 -0.050216,-0.046252,-0.044553,-0.030397,-0.021337,-0.049083,-0.046252,-0.046252,-0.042855,-0.025301,-0.047951,-0.051349,-0.046818,-0.044553,-0.036626,-0.043421,-0.046252,-0.04965,-0.034361,-0.023035,0.97868,-0.047385,-0.049083,-0.036059,-0.019638 0.39945,0.40126,0.40035,0.3999,0.399,-0.098439,-0.09618,-0.099794,-0.10205,-0.10205,-0.099342,-0.10205,-0.10025,-0.10205,-0.10025,-0.098439,-0.098439,-0.1016,-0.099794,-0.099794,-0.1016,-0.099342,-0.099342,-0.099342,-0.099794 0.3303,0.37111,0.38146,0.3623,0.53034,-0.098335,-0.10063,-0.096802,-0.097952,-0.097952,-0.098335,-0.098335,-0.098335,-0.098335,-0.098335,-0.098718,-0.099293,-0.098718,-0.099101,-0.099293,-0.099101,-0.099676,-0.099676,-0.099293,-0.099293 -0.17555,-0.1682,0.12585,0.19201,0.24347,-0.20495,-0.1682,0.14791,0.19937,0.24347,-0.23436,-0.24171,0.081746,0.19937,0.22142,-0.2123,-0.19025,-0.1682,0.17731,0.17731,-0.23436,-0.24171,-0.2123,0.22142,0.22142 -0.23731,-0.2826,-0.033513,0.14764,0.21557,-0.078802,-0.2826,0.034419,0.14764,0.30615,-0.2826,-0.16938,0.10235,0.21557,0.21557,-0.35053,-0.14673,0.057063,0.10235,0.30615,-0.30524,0.034419,0.034419,0.10235,0.14764 0.49782,0.45284,0.39503,0.33812,0.28706,-0.095541,-0.095541,-0.095991,-0.095541,-0.095541,-0.09734,-0.09689,-0.097115,-0.096665,-0.096665,-0.10004,-0.099364,-0.10094,-0.10026,-0.09914,-0.10116,-0.10184,-0.10184,-0.10071,-0.10274 0.37203,0.37341,0.38089,0.38712,0.47837,-0.098463,-0.098601,-0.098878,-0.098878,-0.098878,-0.099017,-0.099571,-0.099571,-0.10054,-0.10012,-0.10012,-0.10054,-0.099847,-0.10068,-0.10012,-0.099017,-0.099432,-0.099432,-0.099986,-0.10012 0.39899,0.3896,0.3943,0.40603,0.41073,-0.10089,-0.096198,-0.10031,-0.097958,-0.10089,-0.10089,-0.099132,-0.10089,-0.10441,-0.10089,-0.10031,-0.10031,-0.098545,-0.097958,-0.10089,-0.099719,-0.097958,-0.099719,-0.10089,-0.10089 0.42078,0.41673,0.38989,0.36254,0.40761,-0.090254,-0.094306,-0.098358,-0.1014,-0.10241,-0.1014,-0.1014,-0.099371,-0.1014,-0.099371,-0.10038,-0.10342,-0.099371,-0.10038,-0.099371,-0.10241,-0.1014,-0.10241,-0.098358,-0.10038 -0.20052,-0.18101,-0.14932,0.18716,0.23836,-0.20296,-0.19808,-0.15419,0.25299,0.23592,-0.22246,-0.19321,-0.12737,0.2091,0.21398,-0.21759,-0.20296,0.16278,0.21398,0.19691,-0.22003,-0.2054,0.17497,0.19204,0.19691 -0.14336,-0.20117,-0.11446,0.17458,0.23239,-0.34569,-0.20117,-0.056652,0.23239,0.3191,-0.23008,-0.11446,-0.17227,0.14568,0.23239,-0.085556,-0.17227,-0.11446,0.26129,0.26129,-0.11446,-0.17227,-0.085556,0.2902,0.17458 0.25083,0.31788,-0.14379,-0.15233,-0.15019,0.25681,0.23887,-0.15361,-0.15233,-0.1519,0.25852,0.26749,-0.15276,-0.1472,-0.14891,0.26236,0.26279,-0.15532,-0.1472,-0.1455,0.27944,-0.15019,-0.15062,-0.14849,-0.14464 0.20008,0.18989,0.016707,-0.2176,0.057456,0.16952,0.11858,0.047269,-0.2176,-0.2176,0.18989,0.1797,0.14914,-0.23797,-0.24816,0.21026,0.16952,0.077831,-0.23797,-0.2991,0.22045,0.20008,0.10839,-0.28891,-0.33985 0.40941,0.40941,0.40941,0.40941,0.17379,0.060695,0.088969,-0.0052778,0.013572,0.022996,-0.1278,-0.22205,-0.1655,-0.18435,-0.0901,-0.15607,-0.0901,-0.15607,-0.080675,-0.0901,-0.099525,-0.1278,-0.1278,-0.1278,-0.14665 0.028167,0.017054,-0.067811,-0.075893,-0.079934,0.03928,0.019074,-0.067811,-0.077914,-0.083975,0.042311,0.0089714,-0.076903,-0.078924,-0.060739,0.026146,0.017054,-0.078924,-0.073872,-0.062759,0.95359,-0.037502,-0.075893,-0.081955,-0.070841 -0.09781,-0.10008,-0.094783,-0.091756,-0.091756,-0.10084,-0.10084,-0.09781,-0.10159,-0.099324,-0.10008,-0.098567,-0.10008,-0.099324,-0.10008,-0.10008,-0.10008,-0.10008,-0.080404,-0.077377,0.53564,0.46526,0.42061,0.28211,0.22913 0.38817,0.37452,0.36673,0.44763,0.41839,-0.09775,-0.10116,-0.099699,-0.10067,-0.096775,-0.10067,-0.1036,-0.10116,-0.099699,-0.09775,-0.10116,-0.10067,-0.10067,-0.098724,-0.10116,-0.099699,-0.098724,-0.099699,-0.098724,-0.097262 0.37864,0.37646,0.4149,0.41437,0.414,-0.09967,-0.099916,-0.099793,-0.099916,-0.099752,-0.099998,-0.10008,-0.10024,-0.099998,-0.10012,-0.099916,-0.10008,-0.099916,-0.10008,-0.099957,-0.099793,-0.099793,-0.09967,-0.099752,-0.099916 -0.014149,-0.02476,-0.02476,-0.042446,-0.077817,-0.045983,-0.035371,-0.031834,-0.038908,-0.042446,-0.04952,-0.04952,-0.038908,-0.02476,-0.038908,-0.021223,-0.056594,-0.067205,-0.035371,-0.017686,0.97625,-0.031834,-0.084891,-0.04952,-0.031834 -0.0076117,-0.0088447,-0.054877,-0.063919,-0.058165,0.018281,0.0010193,-0.051589,-0.058987,-0.010489,0.015404,-0.052411,-0.06433,-0.061864,-0.015421,-0.0043237,-0.058165,-0.063097,-0.06433,-0.052411,0.97016,-0.061864,-0.06433,-0.064741,-0.063097 -0.19914,-0.30164,-0.27235,-0.33092,-0.44807,-0.038071,-0.081999,-0.052714,-0.19914,-0.15521,0.10836,0.035142,0.0058571,0.064428,0.0058571,0.2255,0.16693,0.21085,0.25478,0.035142,0.19621,0.24014,0.26943,0.15228,0.10836 -0.045766,-0.045766,-0.047389,-0.033594,-0.037652,-0.049824,-0.044143,-0.048201,-0.034406,-0.030349,-0.055504,-0.048201,-0.044143,-0.03684,-0.034406,-0.048201,-0.046578,-0.039275,-0.035217,-0.029537,0.97911,-0.048201,-0.039275,-0.028726,-0.027914 0.31987,0.29495,0.27004,0.27004,0.29495,0.14548,0.1704,0.1704,0.14548,0.045838,0.095661,-0.078721,-0.10363,-0.15346,-0.053809,-0.20328,-0.028898,-0.078721,-0.078721,-0.12854,-0.20328,-0.30293,-0.2531,-0.27801,-0.27801 0.23961,-0.088209,-0.084462,-0.082214,-0.18749,0.31829,0.32504,-0.08746,-0.17138,-0.16277,0.31642,0.31492,-0.17888,-0.16277,-0.15153,0.21114,0.21451,-0.17775,-0.16426,-0.14928,0.20028,0.2029,-0.177,-0.16202,-0.15565 -0.1035,-0.10143,-0.1035,-0.10557,-0.10557,-0.10074,-0.10281,-0.10143,-0.10212,-0.097296,-0.097986,-0.10074,-0.095917,-0.095917,-0.097986,-0.094538,-0.097986,-0.096607,-0.095917,-0.099365,0.43427,0.41635,0.39704,0.38188,0.3674 0.20447,0.23368,0.26289,0.32131,0.32131,0.087631,0.14605,0.17526,0.23368,0.14605,-0.02921,0.02921,0,-0.14605,0,-0.26289,-0.17526,-0.14605,-0.17526,0,-0.23368,-0.23368,-0.23368,-0.35052,-0.17526 0.40589,0.40684,0.40304,0.39235,0.39163,-0.10033,-0.099144,-0.098906,-0.10295,-0.10128,-0.099382,-0.098906,-0.099382,-0.097956,-0.098431,-0.10105,-0.099619,-0.099857,-0.099619,-0.10009,-0.10105,-0.10176,-0.10009,-0.099619,-0.10033 -0.10364,-0.10279,-0.103,-0.103,-0.10386,-0.10193,-0.10172,-0.10172,-0.10129,-0.10064,-0.099574,-0.09936,-0.09936,-0.09936,-0.099574,-0.095505,-0.095505,-0.095719,-0.097004,-0.095291,0.39877,0.39941,0.3977,0.40219,0.40176 0.17629,0.17629,0.14671,-0.030762,-0.32655,0.028396,0.057975,0.20587,0.11713,-0.26739,0.14671,0.14671,0.14671,-0.030762,-0.35613,0.057975,0.17629,0.087554,-0.08992,-0.47445,0.14671,0.17629,0.087554,-0.14908,-0.35613 0.16119,0.14718,0.14329,-0.26784,-0.26901,0.1608,0.1429,0.14096,-0.26939,-0.26667,0.15807,0.14757,0.14096,-0.26512,-0.26589,0.1643,0.14991,0.14174,0.13668,-0.26512,0.17052,0.15185,0.14018,-0.26512,-0.26395 -0.095884,-0.097498,-0.098843,-0.098843,-0.098843,-0.09696,-0.097498,-0.096691,-0.097767,-0.098843,-0.095615,-0.096153,-0.096691,-0.097498,-0.098843,-0.097767,-0.096153,-0.097767,-0.097767,-0.098036,0.47267,0.46998,0.47078,0.26773,0.26881 0.42138,0.34653,0.40267,0.21555,0.51493,-0.10254,-0.0089814,-0.027693,-0.046404,0.028441,-0.12125,-0.15867,-0.10254,-0.12125,-0.083826,-0.10254,-0.13996,-0.10254,-0.083826,-0.15867,-0.10254,-0.065115,-0.12125,-0.15867,-0.12125 0.25835,0.29067,-0.15915,-0.16125,-0.15735,0.26334,0.26673,-0.091413,-0.099992,-0.15915,0.25855,-0.10398,-0.15835,-0.15686,-0.15716,0.26234,0.26234,-0.16214,-0.16334,-0.16414,0.26364,0.26144,-0.16404,-0.16504,-0.16404 0.21572,-0.14345,-0.17488,-0.19553,-0.18835,0.18249,0.25792,-0.16141,-0.18476,-0.17219,0.25523,0.29204,-0.099454,-0.14345,-0.14615,0.2651,0.29294,-0.10305,-0.13357,-0.13178,0.30102,0.30551,-0.121,-0.13627,-0.13268 -0.20612,-0.17412,-0.20612,-0.27014,-0.20612,-0.17412,-0.20612,-0.30214,-0.27014,-0.20612,-0.1101,0.17796,0.017924,0.081937,0.081937,0.11394,0.27398,0.14595,0.14595,0.24197,0.17796,0.33799,0.17796,0.14595,0.20996 -0.16178,-0.16636,-0.10459,0.24999,0.24999,-0.16407,-0.16864,-0.15492,0.24542,0.25914,-0.16636,-0.16636,-0.15034,0.32548,0.26372,-0.15949,-0.15949,-0.16178,0.28202,0.23855,-0.16178,-0.15949,-0.16636,0.018942,0.23855 0.12337,0.12669,0.11482,0.11245,-0.47515,0.12004,0.10248,0.10296,0.093465,-0.36693,0.10723,0.082074,0.092516,0.09394,-0.3731,0.10533,0.082549,0.088244,0.089668,-0.38164,0.11245,0.078752,0.076378,0.082074,-0.39066 0.22601,0.11364,0.0054018,-0.081192,-0.20387,0.24972,0.11364,0.028081,-0.088408,-0.18531,0.25281,0.1054,0.013649,-0.085315,-0.20387,0.22085,0.12086,0.0084944,-0.075006,-0.19768,0.25075,0.12086,0.043544,-0.081192,-0.67188 0.25264,0.25185,0.27326,0.29466,0.26295,0.25423,0.13292,0.11547,0.17653,0.19714,0.010022,0.1131,-0.17075,-0.18661,-0.20168,0.018744,-0.19295,-0.18899,-0.20405,-0.20564,-0.20405,-0.1993,-0.20405,-0.21357,-0.18185 -0.24345,-0.25437,0.16503,0.16321,0.16503,-0.25528,-0.26619,0.1623,0.16503,0.16139,-0.23071,-0.23708,0.15957,0.16048,0.16503,-0.24527,-0.23799,0.16139,0.1623,0.16412,-0.24163,-0.23617,0.16594,0.16503,0.1623 -0.11973,-0.19715,-0.093929,-0.24876,-0.093929,-0.068125,-0.04232,-0.068125,-0.19715,-0.14554,-0.11973,-0.17134,-0.17134,-0.19715,-0.11973,0.060899,0.035094,0.11251,0.035094,0.0092897,0.39636,0.34475,0.34475,0.37056,0.34475 -0.095799,-0.095799,-0.18972,-0.072319,-0.095799,-0.095799,-0.11928,-0.11928,-0.095799,-0.16624,-0.048839,-0.18972,-0.14276,-0.11928,-0.14276,-0.072319,-0.0018784,0.045082,-0.072319,-0.025359,0.46772,0.30336,0.42076,0.35032,0.3738 -0.047843,-0.039312,-0.038724,-0.039312,-0.038135,-0.037253,-0.035488,-0.038724,-0.0399,-0.0399,-0.035488,-0.038135,-0.044607,-0.041077,-0.040489,-0.036076,-0.04343,-0.044019,-0.044019,-0.042254,0.97967,-0.042842,-0.044019,-0.044019,-0.044607 -0.10117,-0.10117,-0.10087,-0.10357,-0.099971,-0.10057,-0.10057,-0.10087,-0.10057,-0.10027,-0.098171,-0.099671,-0.10027,-0.099971,-0.099371,-0.099071,-0.098171,-0.098771,-0.096971,-0.098771,0.42983,0.39383,0.39113,0.39143,0.39263 -0.14775,-0.12427,-0.12427,-0.1008,-0.14775,-0.12427,-0.1634,-0.1634,-0.11645,-0.1321,-0.14775,-0.1947,-0.1634,-0.17905,-0.1947,0.1105,0.00093909,0.00093909,0.25919,0.27484,0.29049,0.29049,0.29832,0.31397,0.3844 0.23355,0.25018,0.48162,0.47834,0.48573,-0.094212,-0.094623,-0.095033,-0.095855,-0.094417,-0.095855,-0.095855,-0.095855,-0.096676,-0.097087,-0.097087,-0.097087,-0.097087,-0.097498,-0.098525,-0.096676,-0.097703,-0.096676,-0.097703,-0.097909 0.36301,-0.099762,-0.10335,-0.10395,-0.10216,0.4115,-0.10395,-0.10276,-0.10216,-0.10395,0.37857,-0.096768,-0.10036,-0.10156,-0.10335,0.37438,-0.09617,-0.090183,-0.098564,-0.096768,0.46538,-0.095571,-0.095571,-0.097966,-0.097966 -0.38301,-0.092851,0.088499,0.12477,0.26985,-0.20166,-0.092851,0.015959,0.015959,0.30612,-0.23793,-0.12912,-0.16539,0.088499,0.23358,-0.38301,-0.020311,-0.056581,0.26985,0.26985,-0.20166,-0.12912,0.12477,0.015959,0.26985 0.3433,-0.055886,-0.13073,-0.23053,-0.13073,0.2934,0.04391,-0.18063,-0.15568,-0.080834,0.36825,-0.055886,-0.0059877,-0.18063,-0.10578,0.44309,0.018961,-0.0059877,-0.23053,-0.10578,0.41814,-0.030937,-0.080834,-0.10578,-0.055886 0.10247,0.10247,0.091403,0.091403,-0.15758,0.15226,0.11907,0.11907,0.052673,-0.31803,0.1246,0.11353,0.1412,-0.024787,-0.35123,0.13567,0.15226,0.1412,-0.019254,-0.46188,0.1412,0.16886,0.074804,-0.20184,-0.48955 0.47907,-0.10675,-0.10078,-0.098537,-0.095552,0.37758,-0.10078,-0.097791,-0.099283,-0.09406,0.37534,-0.09406,-0.10003,-0.11719,-0.098537,0.37534,-0.099283,-0.11197,-0.12466,-0.10227,0.37982,-0.059731,-0.064209,-0.10301,-0.11869 0.40921,0.28003,0.13325,0.029514,-0.11727,0.30548,0.19196,0.054958,-0.062474,-0.17208,0.21936,0.082359,0.00015658,-0.12119,-0.26994,0.19196,0.066701,-0.062474,-0.17795,-0.29929,0.10389,0.00015658,-0.13489,-0.27581,-0.37562 -0.055484,-0.041702,-0.047377,-0.042513,-0.022246,-0.028731,-0.05062,-0.054674,-0.046567,-0.05062,-0.071698,-0.017381,-0.010085,-0.047377,-0.051431,-0.034406,-0.0092744,-0.031974,-0.040892,-0.044945,0.97735,-0.045756,-0.048188,-0.043324,-0.040081 0.42041,0.42041,0.34608,0.43527,0.34608,-0.085032,-0.040435,-0.085032,-0.099898,-0.099898,-0.085032,-0.055301,-0.1445,-0.040435,-0.099898,-0.12963,-0.055301,-0.1445,-0.12963,-0.11476,-0.11476,-0.055301,-0.11476,-0.15936,-0.11476 0.51378,0.46199,0.38279,0.32409,0.28001,-0.096212,-0.095759,-0.096779,-0.096325,-0.096325,-0.098138,-0.097685,-0.097685,-0.098025,-0.098025,-0.099045,-0.099498,-0.099045,-0.098932,-0.098932,-0.099045,-0.099498,-0.099158,-0.099385,-0.099158 0.1937,-0.13693,-0.20306,-0.20306,-0.21832,0.22422,0.10723,-0.16745,-0.18271,-0.21832,0.28017,0.21913,0.00040693,-0.20306,-0.20306,0.30052,0.24456,0.13266,-0.18271,-0.20306,0.27508,0.23439,0.13774,-0.025026,-0.20306 -0.042569,-0.034383,-0.044206,-0.040932,-0.033291,-0.047481,-0.040932,-0.043115,-0.038749,-0.03602,-0.039295,-0.044206,-0.044206,-0.037657,-0.038203,-0.042569,-0.041478,-0.043661,-0.042569,-0.035474,0.97964,-0.040932,-0.046935,-0.043115,-0.037657 0.26818,0.44433,0.43941,0.41074,0.41402,-0.097236,-0.098875,-0.10543,-0.083308,-0.096417,-0.097236,-0.099694,-0.10215,-0.10461,-0.093959,-0.079211,-0.10051,-0.10461,-0.10953,-0.10789,-0.070199,-0.10133,-0.10461,-0.11116,-0.10871 0.39565,0.39898,0.4033,0.37369,0.42692,-0.099777,-0.098446,-0.10011,-0.098446,-0.099777,-0.098113,-0.099444,-0.099444,-0.099444,-0.099444,-0.10111,-0.10078,-0.099777,-0.10111,-0.10111,-0.10078,-0.10144,-0.10011,-0.10011,-0.099777 -0.22476,-0.025269,0.074478,0.20748,0.20748,-0.12502,-0.025269,0.0079798,0.14098,0.34047,-0.32451,-0.22476,0.074478,0.074478,0.17423,-0.39101,-0.25801,-0.091768,0.20748,0.30722,-0.22476,-0.12502,-0.12502,0.17423,0.17423 -0.08801,-0.084379,-0.066225,0.011231,-0.034759,-0.073487,-0.075907,-0.054123,-0.029918,-0.029918,-0.055333,-0.065015,-0.032338,-0.0396,-0.034759,-0.037179,-0.056543,-0.012974,-0.0396,-0.025077,0.97097,-0.0093432,0.024544,-0.037179,-0.025077 -0.24221,-0.24567,0.16888,0.14913,0.14913,-0.24172,-0.24418,0.14715,0.15086,0.1874,-0.24394,-0.24665,0.15431,0.15826,0.15703,-0.24295,-0.24739,0.17505,0.15579,0.18814,-0.24344,-0.24739,0.16987,0.14839,0.18616 0.077192,0.080276,0.078073,0.025214,-0.37387,0.078734,0.25581,0.081157,-0.019056,-0.37321,0.080716,0.24568,0.083579,0.00010572,-0.36815,0.081157,0.25053,0.08424,0.02147,-0.36749,0.083579,0.24458,-0.0080434,0.024333,-0.36661 -0.13954,-0.12986,-0.14598,-0.13309,-0.12664,-0.12342,-0.097624,-0.14276,-0.12664,-0.13309,-0.14598,-0.11374,-0.10085,-0.10085,-0.11374,-0.11052,-0.058936,-0.026695,0.2409,-0.023471,0.38921,0.38276,0.36019,0.36019,0.36019 0.31566,0.32302,0.22837,0.23541,0.070096,0.3179,0.32398,0.22917,0.23125,0.070096,-0.15421,-0.15661,-0.15741,-0.15821,-0.15613,-0.15517,-0.15629,-0.15581,-0.15597,-0.15629,-0.15613,-0.15693,-0.15661,-0.15661,-0.15661 -0.10102,-0.10014,-0.10102,-0.10212,-0.10168,-0.099261,-0.10014,-0.10014,-0.10014,-0.10102,-0.099702,-0.098821,-0.099702,-0.099702,-0.099702,-0.098821,-0.098821,-0.09794,-0.098821,-0.099261,0.42193,0.41422,0.41048,0.37679,0.37459 0.24192,0.43175,0.43255,0.43175,0.43282,-0.097609,-0.097609,-0.096545,-0.097077,-0.096013,-0.099204,-0.09814,-0.09814,-0.097077,-0.09814,-0.099204,-0.099204,-0.099736,-0.099204,-0.099204,-0.10027,-0.099736,-0.098672,-0.099204,-0.1008 -0.24597,-0.24568,0.17183,0.17264,0.17118,-0.24597,-0.24626,0.16796,0.16694,0.16153,-0.2459,-0.24648,0.15217,0.16891,0.16211,-0.24604,-0.24663,0.15086,0.15444,0.16211,-0.24158,-0.23807,0.16562,0.1605,0.15977 0.43413,-0.098622,-0.10033,-0.10082,-0.10229,0.42851,-0.10009,-0.0996,-0.10058,-0.10155,0.39234,-0.0974,-0.10009,-0.099355,-0.10033,0.39454,-0.098622,-0.098378,-0.099844,-0.0996,0.34542,-0.098133,-0.099355,-0.10009,-0.099844 -0.03807,-0.04084,-0.036531,-0.034684,-0.038993,-0.038993,-0.042687,-0.037146,-0.036223,-0.036531,-0.042995,-0.039917,-0.036839,-0.044534,-0.041456,-0.042995,-0.042379,-0.039301,-0.03807,-0.048535,0.97955,-0.042071,-0.035915,-0.052537,-0.051306 -0.031273,-0.029894,-0.03541,-0.051956,-0.042304,-0.036789,-0.040925,-0.040925,-0.03541,-0.036789,-0.028515,-0.038167,-0.03541,-0.032652,-0.03541,-0.034031,-0.032652,-0.034031,-0.039546,-0.06023,0.97669,-0.029894,-0.040925,-0.042304,-0.11125 0.27714,0.096487,-0.13729,-0.32857,-0.40295,0.29839,0.16025,-0.031029,-0.28606,-0.25418,0.19212,0.085861,0.064608,-0.020403,-0.29669,0.14962,0.14962,0.096487,0.011476,-0.15855,0.26651,0.13899,0.13899,-0.020403,-0.19042 0.26916,0.14965,-0.14999,-0.20715,-0.26258,0.25357,-0.16385,0.14618,-0.19503,-0.21581,0.2605,0.21893,0.10115,-0.14653,-0.20022,0.2553,0.23798,-0.14133,-0.15865,-0.1829,0.2605,0.24144,-0.040876,-0.12228,-0.20715 -0.01697,-0.020725,-0.031988,-0.018848,-0.054515,-0.039497,-0.030111,-0.03762,-0.043252,-0.050761,-0.041374,-0.033865,-0.031988,-0.048883,-0.062024,-0.039497,-0.041374,-0.043252,-0.054515,-0.060147,0.97797,-0.048883,-0.03762,-0.030111,-0.060147 0.15849,0.16042,-0.12845,-0.1506,-0.16215,0.17583,0.20568,-0.13134,-0.15541,-0.15541,0.1739,0.16909,-0.16889,-0.15734,-0.16023,0.17197,0.38285,-0.16408,-0.15734,-0.16119,0.37418,0.36648,-0.16986,-0.16119,-0.15541 -0.22777,-0.22777,-0.2873,-0.22777,-0.30714,-0.088887,-0.18809,-0.16825,-0.16825,-0.22777,-0.049206,-0.029365,0.010317,0.030158,-0.0095237,0.20873,0.24841,0.26825,0.24841,0.34761,0.20873,0.10952,0.18889,0.12936,0.20873 0.064147,0.064147,0.039262,-0.040921,-0.16534,0.22452,0.12498,0.091797,-0.15981,-0.21511,0.24663,0.18857,0.00055299,-0.17087,-0.19852,0.29364,0.22452,-0.23723,-0.26212,-0.25659,0.37935,0.27705,-0.14599,-0.10175,-0.26488 -0.35806,-0.29272,-0.12937,0.066645,0.328,-0.22738,-0.031363,0.13198,0.066645,0.26266,-0.26005,-0.096701,-0.096701,0.16465,0.22999,-0.26005,-0.031363,0.066645,0.099315,0.39334,-0.22738,-0.064032,0.033976,0.0013068,0.22999 0.20744,0.18531,-0.2048,-0.20497,-0.20913,0.21076,0.18265,-0.20181,-0.20813,-0.20979,0.21226,0.18598,0.16718,-0.20913,-0.21063,0.2101,0.1918,0.17084,-0.20863,-0.21029,0.20877,0.18731,0.1735,-0.20796,-0.20863 0.20544,0.20544,0.20489,-0.20314,-0.19931,0.20544,0.2027,0.20325,-0.17524,-0.20806,0.20708,0.20489,-0.16978,-0.19658,-0.20752,0.20927,0.20872,-0.17306,-0.1747,-0.20314,0.22075,0.21638,-0.17907,-0.19712,-0.20752 0.309,0.28872,0.24817,0.34955,0.18734,0.12652,0.14679,0.14679,0.085967,0.16707,0.0048661,-0.035685,-0.076235,0.085967,-0.015409,-0.13706,-0.13706,-0.015409,-0.19789,-0.15734,-0.31954,-0.27899,-0.33981,-0.23844,-0.19789 -0.27555,-0.27555,-0.26544,-0.27555,-0.2452,-0.073238,-0.15416,-0.14405,-0.21486,-0.19463,0.14931,0.13919,0.048151,-0.053006,0.0076879,0.29093,0.26058,0.088614,0.048151,-0.022659,0.35162,0.28081,0.16954,0.14931,0.21 -0.15744,-0.15744,-0.159,-0.159,-0.159,-0.15744,-0.15718,-0.15692,-0.15744,-0.15796,-0.15796,-0.15718,-0.15796,-0.15718,-0.15796,0.19051,0.19908,0.19882,0.20168,0.40229,0.19129,0.19285,0.197,0.19752,0.39606 0.049629,0.058744,0.055866,-0.23488,-0.24544,0.14271,0.13767,0.26577,-0.23536,-0.2344,0.14367,0.14391,0.24418,-0.23536,-0.2344,0.14271,0.23794,0.2401,-0.23776,-0.23488,0.14654,0.2058,0.14942,-0.2368,-0.23536 0.42143,-0.10438,-0.10342,-0.10181,-0.10438,0.41084,-0.10245,-0.10117,-0.10021,-0.10277,0.39801,-0.10085,-0.099888,-0.10021,-0.099888,0.38967,-0.098284,-0.095717,-0.098284,-0.099246,0.37876,-0.096679,-0.095717,-0.095717,-0.097642 -0.099463,-0.1006,-0.10032,-0.1006,-0.10117,-0.09861,-0.099178,-0.097473,-0.099463,-0.099463,-0.098894,-0.098894,-0.099747,-0.10032,-0.098894,-0.097757,-0.098042,-0.098326,-0.096052,-0.10088,0.46498,0.46612,0.34703,0.35385,0.35215 0.208,0.23135,0.21578,0.23913,0.23135,0.067879,0.17686,0.19243,0.23913,0.21578,-0.12673,-0.025532,0.028957,0.075663,0.13015,-0.28241,-0.189,-0.21235,-0.087807,-0.0099639,-0.32912,-0.31355,-0.25906,-0.21235,-0.20457 -0.093031,-0.092154,-0.097414,-0.10706,-0.10355,-0.095661,-0.1053,-0.10618,-0.10443,-0.10618,-0.10355,-0.10355,-0.098291,-0.10092,-0.10355,-0.095661,-0.093907,-0.096537,-0.093907,-0.098291,0.4128,0.40754,0.39264,0.38913,0.39702 0.91373,0.30204,-0.022436,-0.030564,-0.033951,-0.087466,-0.073241,-0.041403,-0.034629,-0.018371,-0.082724,-0.082724,-0.072563,-0.052241,-0.036661,-0.071886,-0.071886,-0.065789,-0.056306,-0.042758,-0.071886,-0.033274,-0.036661,-0.053596,-0.042758 -0.21983,-0.21983,-0.28768,-0.19721,-0.24245,-0.21983,-0.061516,-0.12937,-0.061516,-0.21983,-0.016284,0.096798,-0.084133,-0.016284,-0.084133,0.074182,0.11941,0.028949,0.074182,0.074182,0.18726,0.27773,0.34558,0.45866,0.32296 -0.10177,-0.10299,-0.10299,-0.10177,-0.10258,-0.10055,-0.099733,-0.10136,-0.099733,-0.099733,-0.099326,-0.099326,-0.099733,-0.098511,-0.098918,-0.098511,-0.098511,-0.098511,-0.09729,-0.09729,0.41457,0.40194,0.4052,0.40113,0.37629 0.42606,0.41273,0.29275,0.31941,0.26609,0.11945,0.11945,0.026129,0.052791,-0.00053324,-0.00053324,-0.053857,-0.067188,-0.013864,-0.067188,-0.13384,-0.17384,-0.21383,-0.17384,-0.24049,-0.17384,-0.16051,-0.17384,-0.16051,-0.22716 -0.10273,-0.14626,-0.14626,-0.10273,-0.16802,-0.10273,-0.16802,-0.25508,-0.16802,-0.080965,-0.12449,-0.10273,-0.10273,-0.037435,-0.10273,0.027859,0.027859,-0.080965,0.093153,0.0060941,0.22374,0.41962,0.37609,0.37609,0.44139 0.39782,0.40774,0.39988,0.39782,0.39658,-0.10136,-0.09805,-0.096397,-0.09805,-0.10549,-0.098876,-0.097223,-0.10218,-0.09805,-0.10218,-0.10053,-0.099703,-0.099703,-0.09805,-0.10053,-0.10136,-0.10136,-0.10053,-0.099703,-0.10053 -0.15195,-0.15195,-0.16181,-0.14702,-0.15688,-0.14209,-0.15688,-0.16674,-0.15688,-0.16674,-0.12729,-0.11743,-0.1125,-0.10264,-0.1125,0.082234,0.079769,0.072374,0.11921,0.084699,0.51855,0.42734,0.32874,0.25232,0.16605 0.14387,0.20734,0.080397,-0.25812,-0.3639,0.16503,0.20734,0.10155,-0.32159,-0.30043,0.016926,0.20734,0.12271,-0.17349,-0.23696,0.05924,0.20734,0.20734,-0.046546,-0.23696,0.080397,0.24966,0.18618,-0.067703,-0.23696 0.10165,0.10679,0.10371,-0.23863,-0.30134,0.12222,0.12633,0.1253,-0.25611,-0.30648,0.14689,0.151,0.151,0.14894,-0.2962,0.16128,0.17156,0.16951,-0.17695,-0.27667,0.1911,0.19521,0.19212,-0.2263,-0.28592 0.40333,0.29535,0.12202,0.0097749,-0.1252,0.31808,0.18311,0.059502,-0.079733,-0.17777,0.26835,0.12628,-0.0058535,-0.10673,-0.23602,0.16748,0.055239,-0.086837,-0.18345,-0.29427,0.092179,-0.041373,-0.13514,-0.27296,-0.35536 -0.10085,-0.10159,-0.10379,-0.10269,-0.10452,-0.10085,-0.10122,-0.10049,-0.10195,-0.10195,-0.098653,-0.098653,-0.098653,-0.099019,-0.099753,-0.094253,-0.097919,-0.097553,-0.097553,-0.097919,0.39674,0.40114,0.40627,0.39784,0.39784 0.44197,0.41801,0.39885,0.38082,0.35595,-0.098889,-0.0991,-0.0991,-0.098677,-0.09903,-0.099382,-0.099805,-0.099664,-0.099523,-0.10009,-0.10009,-0.10023,-0.099945,-0.10023,-0.10009,-0.10016,-0.10037,-0.10037,-0.10044,-0.10044 -0.10029,-0.10098,-0.10139,-0.1018,-0.10221,-0.10098,-0.10139,-0.10139,-0.10139,-0.10139,-0.09906,-0.099881,-0.099607,-0.099881,-0.099881,-0.097143,-0.097964,-0.09769,-0.09769,-0.097964,0.40111,0.40029,0.40043,0.39906,0.39906 -0.24332,-0.24645,0.16553,0.1622,0.16279,-0.24469,-0.24469,0.16435,0.16102,0.16122,-0.24469,-0.24449,0.16435,0.16279,0.162,-0.24547,-0.24645,0.16475,0.16357,0.16181,-0.24449,-0.24469,0.16435,0.16475,0.16396 0.27905,0.28646,0.10483,0.32353,0.26422,0.16414,0.33094,0.12336,0.34206,0.10853,-0.11758,-0.10275,-0.13611,-0.15094,-0.17689,-0.10275,-0.14353,-0.16947,-0.16206,-0.1843,-0.18801,-0.15835,-0.14723,-0.19171,-0.19542 0.10375,0.18133,0.12591,-0.040346,-0.50587,0.10375,0.137,0.15917,0.0039902,-0.50587,0.137,0.11483,0.11483,0.037242,-0.33961,0.10375,0.10375,0.05941,0.092662,-0.33961,0.081578,0.11483,0.10375,0.026158,-0.17335 0.41878,-0.096673,-0.099223,-0.099223,-0.10001,0.42006,-0.099419,-0.1002,-0.1004,-0.1002,0.36886,-0.099027,-0.1002,-0.1002,-0.099811,0.36828,-0.099419,-0.099615,-0.10099,-0.1004,0.42084,-0.1004,-0.1002,-0.10118,-0.10001 -0.24402,-0.24676,0.17278,0.17054,0.1653,-0.24502,-0.24601,0.1653,0.16431,0.16206,-0.24302,-0.24776,0.16107,0.16082,0.16231,-0.24252,-0.24402,0.15758,0.15932,0.16281,-0.24502,-0.24502,0.15758,0.16356,0.16381 -0.09943,-0.097616,-0.09943,-0.09943,-0.09943,-0.10124,-0.10034,-0.099884,-0.1017,-0.10396,-0.099884,-0.099884,-0.10215,-0.10034,-0.10306,-0.099884,-0.09943,-0.09943,-0.096256,-0.096256,0.41386,0.4116,0.39799,0.39935,0.37623 0.26893,0.2693,0.26707,0.26558,0.26261,-0.045034,0.26503,0.26335,0.26261,0.26149,-0.15459,-0.15422,-0.15422,-0.15422,-0.15477,-0.15682,-0.15608,-0.15719,-0.15756,-0.15756,-0.15626,-0.15682,-0.15626,-0.15682,-0.15756 -0.13171,-0.13171,-0.082196,-0.10695,-0.23074,-0.23074,-0.082196,-0.13171,-0.10695,-0.082196,-0.10695,-0.10695,-0.082196,-0.03268,-0.03268,0.041593,-0.082196,-0.082196,-0.057438,-0.057438,0.3882,0.46248,0.33869,0.33869,0.3882 -0.051182,-0.029014,-0.015314,-0.081571,-0.10573,-0.041468,-0.043959,-0.012823,-0.12167,-0.11968,0.02454,0.026284,0.022049,-0.0073431,-0.094274,0.024042,-0.029761,-0.017805,-0.023285,-0.069366,0.95662,-0.023534,-0.026274,-0.041717,-0.097762 0.17635,0.11568,-0.0056626,-0.14723,-0.22812,0.2168,0.25724,-0.086557,-0.18767,-0.18767,0.095455,0.27747,-0.127,-0.16745,-0.22812,0.19657,0.19657,-0.086557,-0.10678,-0.2079,0.25724,0.45948,-0.18767,-0.066333,-0.22812 -0.23447,-0.23485,-0.23447,-0.23409,-0.23409,-0.23536,-0.23397,-0.23409,-0.23359,-0.23473,0.10584,0.11205,0.11319,0.27796,0.11648,0.10482,0.11141,0.11179,0.28619,0.27631,0.1071,0.10964,0.11192,0.28176,0.11724 -0.1019,-0.1019,-0.1037,-0.1037,-0.1019,-0.10054,-0.10099,-0.098731,-0.10009,-0.10009,-0.098279,-0.098279,-0.10009,-0.099183,-0.096471,-0.096923,-0.098279,-0.098279,-0.098731,-0.10099,0.40125,0.39447,0.42476,0.38633,0.39221 -0.15671,-0.15652,-0.15689,-0.15836,-0.15818,-0.15652,-0.15634,-0.15744,-0.15744,-0.15836,-0.15763,-0.15487,-0.15671,-0.15763,-0.15671,0.15957,0.16068,0.16141,0.3122,0.42204,0.16214,0.15994,0.30761,0.25692,0.2538 0.39753,-0.10251,-0.10409,-0.085401,-0.082669,0.39954,-0.10179,-0.1038,-0.089858,-0.097047,0.39954,-0.1015,-0.1038,-0.10395,-0.1061,0.4007,-0.10222,-0.10424,-0.1028,-0.10567,0.40185,-0.10208,-0.10251,-0.095897,-0.10122 -0.20553,-0.15992,-0.19527,-0.20439,-0.20439,-0.17988,-0.13825,-0.13939,-0.20667,-0.20325,-0.14396,-0.14225,-0.13711,-0.20496,0.21468,0.24034,0.23407,0.22551,0.22323,0.21126,0.24034,0.23178,0.22152,0.21525,0.20727 0.20782,0.19826,0.21976,-0.16243,-0.22454,0.20065,0.20543,0.19826,-0.19588,-0.23171,0.20543,0.21499,0.16721,-0.21499,-0.22932,0.20782,0.20782,-0.15527,-0.21021,-0.22693,0.1266,0.10988,-0.17438,-0.21976,-0.22454 0.37391,0.38977,0.41358,0.40269,0.39328,-0.085727,-0.085727,-0.086096,-0.085911,-0.086834,-0.087018,-0.087203,-0.087387,-0.087572,-0.086649,-0.08628,-0.087387,-0.087018,-0.087572,-0.087018,-0.20474,-0.20769,-0.086465,-0.086465,-0.086465 -0.043012,-0.051221,-0.051221,-0.026596,0.019372,-0.033162,-0.052863,-0.054504,-0.051221,0.012805,-0.041371,-0.044654,-0.044654,-0.051221,-0.046296,-0.0068951,-0.036446,-0.052863,-0.049579,-0.062713,0.97484,-0.041371,-0.051221,-0.056146,-0.057788 0.34526,0.1815,-0.040075,-0.24238,-0.34835,0.15259,0.2104,0.036993,-0.18458,-0.32908,0.2104,0.25856,0.16223,-0.13641,-0.32908,0.15259,0.046626,0.094794,-0.049709,-0.28091,0.065893,0.08516,0.094794,0.065893,-0.22311 0.41954,-0.066975,-0.090749,-0.10962,-0.12225,0.23421,-0.065868,-0.095283,-0.11086,-0.12196,0.38295,-0.062072,-0.093333,-0.11313,-0.12235,0.38287,-0.062731,-0.087507,-0.10907,-0.12227,0.52626,-0.063337,-0.094756,-0.1097,-0.12201 0.23079,0.21812,-0.12414,-0.19809,-0.23189,0.11459,0.14628,0.16319,-0.23823,-0.26569,0.11037,0.14206,0.24769,-0.21288,-0.2509,0.11671,0.17164,0.24981,-0.19597,-0.23823,0.13572,0.18009,0.19699,-0.21921,-0.24879 -0.037329,-0.037329,-0.038024,-0.037329,-0.038719,-0.037329,-0.036634,-0.037329,-0.038024,-0.038024,-0.035244,-0.035939,-0.037329,-0.035244,-0.039414,-0.035244,-0.036634,-0.035939,-0.049142,-0.050184,0.97928,-0.052964,-0.051921,-0.053311,-0.054701 -0.10005,-0.10103,-0.10064,-0.10044,-0.10044,-0.10044,-0.10044,-0.10064,-0.10005,-0.10083,-0.10025,-0.10064,-0.10005,-0.10005,-0.099855,-0.098292,-0.098878,-0.098487,-0.098878,-0.099464,0.40161,0.40512,0.4063,0.3934,0.3934 0.44961,-0.13694,-0.1549,-0.13096,-0.14891,0.47954,-0.005267,-0.14891,-0.14293,-0.14293,0.38976,0.10247,-0.12497,-0.13096,-0.14891,0.22816,0.084512,-0.113,-0.11899,-0.10702,0.20422,0.16232,-0.10702,-0.11899,-0.11899 -0.1736,-0.16788,-0.16788,-0.16788,-0.16788,-0.20223,-0.20223,-0.19078,-0.1965,-0.17933,-0.076266,-0.11062,-0.076266,-0.059089,-0.081991,0.3188,0.19284,0.12413,0.15276,0.10123,0.22719,0.17566,0.49057,0.33598,0.10123 0.083937,0.08614,0.089811,-0.096684,-0.32283,0.073658,0.093482,0.097154,0.1045,-0.34779,0.075861,0.097154,0.10376,0.11551,-0.44765,0.1089,0.12873,0.15442,-0.10035,-0.37863,0.17572,0.1647,0.17718,0.15149,-0.38817 -0.10727,-0.10827,-0.10827,-0.10827,-0.10979,-0.095181,-0.096188,-0.097447,-0.097447,-0.09921,-0.096188,-0.09644,-0.097195,-0.098203,-0.098203,-0.095181,-0.096188,-0.096692,-0.098455,-0.09921,0.40112,0.40162,0.40666,0.38803,0.40188 -0.26625,-0.20306,-0.24519,-0.24519,-0.24519,-0.20306,-0.22412,-0.182,-0.076674,-0.076674,-0.22412,-0.013481,0.1129,0.0075831,0.028647,0.028647,0.070776,0.19716,0.1761,0.26035,0.30248,0.23929,0.19716,0.23929,0.34461 0.22175,0.22175,-0.14974,0.050295,-0.40693,0.33606,0.1646,-0.14974,-0.20689,-0.23547,0.22175,0.078871,-0.035435,-0.12116,-0.20689,0.25033,0.1646,0.050295,-0.20689,-0.34978,0.22175,0.078871,0.078871,0.050295,-0.12116 -0.10013,-0.10058,-0.10148,-0.10193,-0.10148,-0.099682,-0.10193,-0.10058,-0.10327,-0.10103,-0.098784,-0.099682,-0.10058,-0.10013,-0.099682,-0.098335,-0.095641,-0.098335,-0.098335,-0.098335,0.40187,0.39918,0.39828,0.40097,0.39963 0.27197,0.27197,0.27197,0.37538,0.32367,0.16856,0.065148,0.013443,0.1427,0.091,0.091,0.013443,-0.038261,-0.012409,-0.038261,-0.14167,-0.064114,-0.21923,-0.11582,-0.16752,-0.27093,-0.27093,-0.27093,-0.29678,-0.19338 -0.096096,-0.10014,-0.095287,-0.096905,-0.10014,-0.097714,-0.10257,-0.10176,-0.10257,-0.10581,-0.10257,-0.10823,-0.098523,-0.10095,-0.10338,-0.10095,-0.10095,-0.099333,-0.091241,-0.094478,0.40801,0.39911,0.39992,0.3983,0.39426 0.1474,0.1474,0.031336,-0.055709,-0.2298,0.23444,0.031336,0.031336,0.031336,-0.055709,0.23444,0.1474,0.031336,-0.14275,-0.37487,0.32149,0.23444,-0.055709,-0.055709,-0.40389,0.1474,0.23444,-0.055709,-0.17177,-0.40389 -0.10176,-0.10176,-0.10283,-0.10283,-0.10283,-0.099872,-0.10176,-0.099603,-0.10068,-0.10068,-0.098795,-0.099334,-0.099064,-0.098526,-0.097987,-0.098257,-0.097987,-0.097718,-0.098795,-0.098795,0.40498,0.40337,0.39987,0.39717,0.39448 0.21795,0.21574,0.18849,0.22955,0.22016,0.2185,0.22016,0.18684,0.22329,0.2139,0.21814,-0.074612,-0.069641,-0.06559,-0.058225,-0.080872,-0.076637,-0.24124,-0.23811,-0.23535,-0.24934,-0.24603,-0.24271,-0.23977,-0.23461 0.18159,0.17352,0.14933,0.11708,-0.46348,0.11708,0.12514,0.09289,0.0687,-0.31028,0.076764,0.084827,0.04451,0.028383,-0.30222,0.12514,0.0687,0.04451,0.04451,-0.46348,0.10902,0.13321,0.084827,0.0687,-0.39898 0.39689,0.42491,0.37433,0.37724,0.42423,-0.099333,-0.09865,-0.099504,-0.09882,-0.09882,-0.099675,-0.10036,-0.10138,-0.099504,-0.099846,-0.099504,-0.10036,-0.099846,-0.10036,-0.10087,-0.099675,-0.10002,-0.10019,-0.10019,-0.1007 -0.067068,-0.057832,-0.030122,-0.029579,-0.025775,-0.056202,-0.051855,-0.049682,-0.038815,-0.027949,-0.048052,-0.047508,-0.049682,-0.045878,-0.027949,-0.042075,-0.043705,-0.042075,-0.036642,-0.024689,0.97829,-0.042075,-0.037729,-0.029035,-0.026319 -0.07248,-0.040691,-0.0089011,0.18184,0.11826,-0.088375,-0.15195,-0.040691,0.22952,0.22952,-0.29501,-0.23143,-0.024796,0.24541,0.24541,-0.3268,-0.26322,-0.024796,0.19773,0.21363,-0.35859,-0.18374,-0.040691,0.22952,0.26131 0.18161,-0.01962,-0.13281,-0.18312,-0.09508,0.39541,-0.05735,-0.09508,-0.13281,-0.09508,0.21934,-0.01962,-0.05735,-0.09508,-0.18312,0.5086,0.068417,-0.01962,-0.18312,-0.13281,0.47087,0.10615,-0.13281,-0.18312,-0.13281 -0.23251,-0.203,0.062552,0.0035407,0.23959,-0.17349,-0.203,0.0035407,0.092058,0.21008,-0.32102,-0.025965,0.092058,0.062552,0.47563,-0.29152,-0.11448,0.062552,0.0035407,0.3281,-0.32102,-0.11448,0.062552,0.12156,0.18058 -0.1936,-0.14224,-0.13892,0.22728,0.22396,-0.22012,-0.15881,0.2339,0.22065,0.22065,-0.20355,-0.14887,-0.12235,0.21733,0.21402,-0.2168,-0.20023,-0.1323,0.22065,0.22065,-0.22343,-0.21349,-0.14389,0.23556,0.22396 -0.35881,-0.30813,-0.30813,-0.20677,-0.23211,-0.23211,-0.20677,-0.10541,-0.18143,-0.0040544,0.097305,-0.029394,-0.054734,-0.0040544,0.19867,0.22401,0.22401,0.19867,0.14799,0.14799,0.17333,0.22401,0.12265,0.22401,0.24934 -0.098118,-0.10064,-0.10233,-0.10233,-0.10191,-0.10022,-0.099801,-0.10148,-0.10191,-0.10233,-0.097276,-0.097697,-0.09938,-0.09938,-0.099801,-0.098118,-0.099801,-0.098118,-0.098539,-0.09938,0.4178,0.41318,0.40771,0.3753,0.38456 -0.051388,-0.056529,-0.058977,-0.057753,-0.058732,-0.04845,-0.052857,-0.056284,-0.059466,-0.058487,-0.046982,-0.045758,-0.046982,-0.056284,-0.057508,-0.04943,-0.047716,-0.051388,-0.057997,-0.057263,-0.048695,-0.046002,-0.04894,0.30112,0.91874 -0.28744,-0.14598,-0.17428,-0.14598,-0.14598,-0.17428,-0.23086,-0.17428,-0.11769,-0.11769,-0.0045266,-0.14598,0.052056,-0.14598,-0.06111,0.052056,0.080348,-0.0045266,0.080348,0.080348,0.36326,0.27839,0.30668,0.39155,0.39155 -0.26274,-0.23668,-0.34094,-0.10635,-0.21061,-0.080282,-0.21061,-0.18455,-0.13241,-0.23668,-0.13241,0.02398,0.02398,-0.080282,0.076112,0.12824,0.20644,0.12824,0.23251,0.10218,0.15431,0.20644,0.3889,0.20644,0.33677 0.40947,0.41213,0.39071,0.3943,0.39297,-0.10101,-0.098881,-0.10114,-0.10167,-0.10181,-0.099679,-0.10101,-0.10048,-0.099812,-0.10021,-0.10074,-0.10048,-0.10074,-0.10061,-0.10048,-0.097683,-0.097417,-0.098748,-0.098348,-0.098615 -0.10068,-0.099248,-0.10068,-0.099962,-0.10246,-0.099248,-0.10068,-0.10068,-0.099248,-0.10175,-0.099962,-0.099248,-0.10068,-0.10139,-0.10068,-0.098534,-0.099962,-0.096392,-0.099962,-0.098534,0.40227,0.4012,0.39978,0.39978,0.39692 0.20037,0.29342,-0.12531,-0.24937,-0.18734,0.24689,0.27791,-0.12531,-0.21836,-0.31141,0.24689,0.30893,-0.12531,-0.17183,-0.21836,0.076301,0.30893,-0.0012407,-0.14082,-0.12531,0.13833,0.09181,0.09181,-0.12531,-0.15632 -0.032352,-0.031747,-0.031747,-0.033563,-0.031747,-0.03659,-0.035984,-0.035984,-0.03659,-0.039617,-0.039011,-0.037195,-0.039617,-0.040827,-0.040827,-0.043249,-0.04567,-0.04567,-0.046276,-0.046881,0.97925,-0.048697,-0.054146,-0.051724,-0.05354 -0.24471,-0.24558,0.14478,0.13743,0.15773,-0.24687,-0.24601,0.13787,0.14046,0.15989,-0.24385,-0.24687,0.14607,0.16334,0.16939,-0.24169,-0.24428,0.17587,0.175,0.17155,-0.24385,-0.2391,0.20868,0.18105,0.17371 -0.29128,-0.15593,-0.21007,-0.29128,-0.39957,-0.074716,-0.12886,-0.047645,-0.10179,-0.183,-0.12886,0.060639,-0.074716,-0.020574,-0.020574,0.16892,0.16892,0.27721,0.060639,0.060639,0.25014,0.22306,0.25014,0.25014,0.35842 -0.16157,-0.15787,-0.1662,0.11657,0.11981,-0.1588,-0.15972,-0.16019,0.25865,0.25356,-0.1588,-0.16019,-0.16343,0.2804,0.27115,-0.1588,-0.15972,-0.16296,0.25587,0.29568,-0.15787,-0.15787,-0.15695,0.25726,0.29197 -0.15462,-0.11426,-0.087357,-0.024575,0.32073,-0.15014,-0.15462,-0.073903,-0.011121,0.36557,-0.13669,-0.15911,-0.12772,0.0068163,0.36109,-0.16808,-0.17256,-0.14117,0.078567,0.39696,-0.15462,-0.15462,-0.06045,0.10099,0.4149 0.22005,0.20071,0.19222,-0.19417,-0.19154,0.22385,0.19925,0.19134,-0.19007,-0.19329,0.22503,0.19925,-0.18919,-0.19154,-0.19388,0.2259,0.19661,-0.18831,-0.19212,-0.19271,0.22239,0.19866,-0.19212,-0.19212,-0.19417 -0.1006,-0.10115,-0.10142,-0.10115,-0.10088,-0.10033,-0.10006,-0.10033,-0.1006,-0.1006,-0.099512,-0.099239,-0.099785,-0.10033,-0.10006,-0.099239,-0.099239,-0.098693,-0.098147,-0.098557,0.40612,0.40176,0.39835,0.39685,0.39685 -0.10212,-0.10245,-0.10212,-0.10146,-0.10179,-0.10113,-0.10212,-0.10179,-0.10311,-0.10212,-0.099819,-0.10113,-0.10015,-0.099819,-0.10245,-0.095873,-0.094558,-0.094558,-0.094558,-0.096531,0.39007,0.39632,0.40421,0.40388,0.40519 0.14065,0.14065,0.13818,-0.26593,-0.26799,0.21027,0.13983,0.13447,-0.26758,-0.26717,0.15713,0.1526,0.14354,0.12829,-0.26511,0.15383,0.16537,0.14189,-0.26264,-0.26634,0.15342,0.15837,0.13489,-0.2647,-0.26593 -0.25946,-0.044268,-0.075009,0.17092,0.29389,-0.16723,-0.10575,0.047957,0.23241,0.26315,-0.2902,-0.044268,0.017215,-0.10575,0.20166,-0.2902,-0.16723,-0.19797,0.14018,0.29389,-0.2902,-0.13649,0.017215,0.14018,0.35537 0.097431,0.068775,0.063044,0.085969,-0.20059,0.074506,0.10316,0.085969,-0.0057312,-0.32095,0.13182,0.12036,0.13182,0.13182,-0.34387,0.14328,0.14901,0.14328,-0.017194,-0.49862,0.18913,0.18913,0.0057312,-0.040119,-0.48716 -0.10037,-0.098334,-0.10139,-0.10071,-0.10037,-0.10071,-0.099692,-0.10071,-0.10071,-0.10139,-0.10003,-0.098674,-0.099692,-0.10003,-0.10105,-0.095959,-0.098674,-0.099692,-0.10105,-0.10071,0.40325,0.40155,0.39917,0.39951,0.39646 -0.1029,-0.10016,-0.10016,-0.097418,-0.10084,-0.10084,-0.10016,-0.10084,-0.10016,-0.098788,-0.098788,-0.099472,-0.099472,-0.10084,-0.098788,-0.10016,-0.099472,-0.10153,-0.097418,-0.10016,0.42637,0.41131,0.39967,0.38461,0.37639 0.15552,0.15035,0.15433,-0.26549,-0.26628,0.15102,0.14903,0.15035,-0.26681,-0.26707,0.14718,0.14559,0.14718,-0.26681,-0.26707,0.14678,0.14479,0.14704,-0.26734,-0.2676,0.1538,0.1485,0.1485,0.15976,-0.26522 -0.29902,-0.052188,-0.08745,0.19465,0.22991,-0.26376,-0.2285,-0.016926,0.22991,0.15938,-0.29902,-0.2285,0.053598,0.12412,0.15938,-0.2285,0.018336,0.018336,0.15938,0.47674,-0.2285,-0.15797,-0.016926,0.15938,0.12412 0.52012,0.40505,0.24395,0.38204,0.26697,-0.03222,0.082852,0.013809,-0.0092057,0.059837,-0.12428,-0.10126,-0.14729,-0.10126,-0.055234,-0.21634,-0.12428,-0.078249,-0.21634,-0.10126,-0.10126,-0.14729,-0.12428,-0.14729,-0.14729 0.151,0.151,0.12025,-0.080408,-0.16953,0.20364,0.12025,0.11556,-0.062688,-0.49527,0.16559,0.12025,0.11034,-0.050701,-0.50674,0.15621,0.14214,0.10305,-0.073112,-0.35924,0.151,0.11973,0.10774,-0.066857,-0.17318 0.49813,0.40064,0.36835,0.3567,0.36222,-0.097821,-0.099047,-0.097412,-0.098638,-0.099047,-0.099047,-0.099047,-0.099456,-0.098638,-0.099456,-0.099047,-0.099047,-0.099864,-0.099456,-0.10027,-0.10048,-0.099864,-0.10027,-0.10027,-0.099864 0.13603,0.14975,0.14975,0.2046,0.2046,0.13603,0.12232,0.10861,0.094894,0.12232,0.040042,0.067468,0.10861,0.12232,0.10861,-0.001097,0.026329,0.026329,-0.028523,0.012616,-0.33021,-0.39877,-0.4262,-0.35763,-0.39877 -0.31642,-0.21906,-0.1217,0.19472,0.21906,-0.21906,-0.048679,-0.1217,0.2434,0.19472,-0.26774,-0.073019,-0.02434,0.26774,0.14604,-0.31642,-0.1217,0.02434,0.17038,0.2434,-0.2434,-0.02434,-0.097358,0.34075,0.17038 0.6066,0.46968,0.36917,0.26575,0.1565,-0.069278,-0.064908,-0.066365,-0.066365,-0.082388,-0.080931,-0.088214,-0.091128,-0.095497,-0.098411,-0.094041,-0.099867,-0.092584,-0.10715,-0.10569,-0.10861,-0.10861,-0.11152,-0.11443,-0.12172 -0.22568,-0.21806,-0.22758,-0.22568,-0.21806,-0.21616,-0.22187,-0.23901,-0.2352,-0.22568,0.17419,0.17419,0.17229,0.18562,-0.22758,0.18371,0.17229,0.17038,0.17229,0.1799,0.19514,0.178,0.17419,0.17419,0.17419 0.51614,0.47001,0.36832,0.32586,0.28025,-0.092984,-0.094818,-0.095081,-0.095343,-0.095343,-0.097439,-0.096653,-0.098488,-0.097964,-0.097702,-0.099274,-0.099274,-0.098488,-0.09875,-0.09875,-0.10032,-0.10032,-0.10137,-0.10085,-0.10137 0.22661,-0.14611,-0.20201,-0.071562,-0.12747,0.3757,-0.071562,-0.20201,-0.12747,-0.20201,0.45025,0.021618,-0.12747,-0.12747,-0.071562,0.39434,-0.03429,-0.071562,-0.071562,-0.12747,0.43161,0.040254,-0.071562,-0.052926,-0.03429 -0.10602,-0.10602,-0.091883,-0.091883,-0.063611,-0.091883,-0.084815,-0.10602,-0.10602,-0.063611,-0.10602,-0.10602,-0.10602,-0.10602,-0.12722,-0.084815,-0.10602,-0.12722,-0.084815,-0.10602,0.47355,0.44528,0.42407,0.31805,0.31099 -0.22866,-0.11433,-0.028583,0.20008,0.14292,-0.22866,-0.085749,-0.11433,0.20008,0.37158,-0.1715,0,-0.20008,0.085749,0.343,-0.25725,-0.1715,-0.057166,0.14292,0.22866,-0.22866,-0.11433,-0.22866,0.20008,0.31441 -0.027293,-0.027293,-0.07417,-0.07417,-0.11584,0.014376,-0.011667,-0.07417,-0.10542,-0.12626,0.0091671,0.0091671,-0.07417,-0.10021,-0.11063,0.15501,0.12896,-0.10021,-0.048127,-0.053336,0.91546,0.076879,-0.07417,-0.027293,-0.084587 0.40202,0.39921,0.39921,0.39359,0.40482,-0.10893,-0.097697,-0.1005,-0.10612,-0.092082,-0.10893,-0.11173,-0.10331,-0.10893,-0.10893,-0.1005,-0.097697,-0.092082,-0.097697,-0.094889,-0.080852,-0.094889,-0.097697,-0.097697,-0.097697 -0.27361,-0.32466,-0.17152,-0.32466,-0.24809,-0.27361,-0.0439,-0.0439,-0.17152,-0.0439,-0.094947,-0.0439,0.058194,-0.0439,0.03267,0.058194,0.18581,0.13476,0.083717,0.18581,0.21133,0.41552,0.23686,0.26238,0.23686 0.12096,0.28495,0.2449,-0.23819,-0.23649,0.12228,0.10868,0.22827,-0.23763,-0.23782,0.12587,0.1083,0.22733,-0.23819,-0.23782,0.12644,0.10868,0.22204,-0.24008,-0.23857,0.12701,0.10981,0.11624,-0.23725,-0.2397 0.12689,0.16527,0.16321,0.16131,-0.26587,0.12459,0.16353,0.16281,-0.26643,-0.26635,0.12522,0.16226,0.16345,-0.26595,-0.26675,0.14402,0.14172,0.164,-0.26619,-0.26659,0.1414,0.14053,0.1456,-0.26603,-0.26564 -0.099948,-0.099948,-0.10017,-0.099948,-0.099948,-0.10084,-0.1004,-0.1004,-0.10017,-0.10084,-0.10017,-0.10017,-0.10084,-0.099948,-0.099948,-0.098158,-0.098381,-0.1004,-0.099948,-0.099277,0.40503,0.39854,0.40682,0.39496,0.39451 -0.357,-0.27462,-0.32954,-0.46685,-0.32954,-0.027462,-0.10985,-0.082385,-0.027462,-0.054924,0.10985,0,0.13731,0.082385,0.10985,0.082385,0.082385,0.21969,0.10985,0.13731,0.21969,0.19223,0.19223,0.19223,0.19223 -0.3733,-0.3291,0.017089,0.1865,0.26753,-0.28491,-0.16706,0.017089,0.039186,0.1644,-0.28491,-0.15969,0.12758,0.13494,0.12758,-0.22598,-0.093398,0.14967,0.17914,0.21597,-0.14496,-0.18915,0.19387,0.1865,0.24543 -0.24222,-0.24571,0.1555,0.15201,0.1555,-0.24397,-0.24339,0.1654,0.16598,0.16307,-0.24339,-0.24804,0.16715,0.1654,0.16773,-0.24222,-0.24746,0.16715,0.16715,0.16365,-0.2428,-0.24979,0.16365,0.16598,0.16365 0.17482,0.18278,0.18728,-0.23058,-0.2247,0.17033,0.17759,0.19004,-0.22367,-0.22643,0.17275,0.16203,0.19419,-0.2247,-0.22436,0.1724,0.15926,0.20077,-0.22194,-0.22816,0.16687,0.16825,-0.2209,-0.22367,-0.23024 0.21116,0.12391,0.18935,0.12391,0.12391,0.12391,0.12391,0.18935,0.18935,0.25479,0.036648,0.080277,0.12391,0.16753,0.12391,-0.072424,-0.072424,-0.094238,-0.094238,-0.13787,-0.35601,-0.29057,-0.37782,-0.35601,-0.3342 0.054158,0.20024,-0.094101,-0.16605,-0.22056,0.51202,0.27437,-0.10718,-0.16823,-0.20748,0.28527,0.19152,-0.10936,-0.14643,-0.19003,0.2373,-0.048315,-0.074478,-0.13553,-0.17695,0.23076,0.21332,-0.041774,-0.13553,-0.17695 -0.098072,-0.10167,-0.098072,-0.098072,-0.099512,-0.098792,-0.10239,-0.10239,-0.10239,-0.10023,-0.10239,-0.10455,-0.10239,-0.10455,-0.10239,-0.093033,-0.10599,-0.097352,-0.095193,-0.090154,0.3943,0.39646,0.39862,0.40366,0.40654 0.20788,0.14489,-0.17008,-0.13859,-0.17008,0.30237,-0.075593,-0.13859,-0.20158,-0.13859,0.42836,0.018898,0.081892,-0.13859,-0.17008,0.27087,0.050395,-0.17008,-0.17008,-0.13859,0.45986,0.17638,-0.012599,-0.17008,-0.13859 -0.10005,-0.10089,-0.10005,-0.10005,-0.10005,-0.098664,-0.10061,-0.10117,-0.10033,-0.10033,-0.10033,-0.10033,-0.10117,-0.10033,-0.10117,-0.098942,-0.10228,-0.098386,-0.098664,-0.096163,0.39877,0.40099,0.40072,0.39988,0.3996 -0.10544,-0.28179,-0.29107,-0.3514,-0.33747,-0.077593,-0.124,-0.16113,-0.25858,-0.29571,0.21477,0.15444,0.15908,0.089473,0.098755,0.17301,0.21013,0.20549,0.21941,0.16837,0.18229,0.15908,0.098755,0.084833,0.06627 0.28737,0.1994,0.24338,0.14075,0.28737,0.096766,0.15541,0.11143,0.096766,0.30203,-0.064511,0.023458,0.067443,0.023458,0.24338,-0.22579,-0.22579,-0.19646,-0.24045,-0.13782,-0.22579,-0.22579,-0.25511,-0.22579,-0.25511 -0.10027,-0.10076,-0.10175,-0.1015,-0.10101,-0.099532,-0.10027,-0.10027,-0.10052,-0.1015,-0.09904,-0.099286,-0.098548,-0.09904,-0.10027,-0.09904,-0.098056,-0.098548,-0.10027,-0.10002,0.41033,0.40763,0.40172,0.39705,0.38277 0.14387,0.1427,0.14586,-0.26984,-0.26652,0.14652,0.14304,0.1598,-0.26701,-0.26585,0.14735,0.15017,0.16063,-0.26602,-0.26519,0.15316,0.15084,0.15217,-0.26618,-0.26701,0.14719,0.15117,0.15217,0.15283,-0.26585 0.27311,0.26788,0.26648,0.26125,0.25428,0.2752,0.27346,0.26509,0.2623,-0.13234,-0.15151,-0.14872,-0.15046,-0.14733,-0.15255,-0.14837,-0.15569,-0.15011,-0.155,-0.1529,-0.15221,-0.15255,-0.15325,-0.14698,-0.14907 -0.23903,-0.24236,0.16892,0.17129,0.17746,-0.24544,-0.23879,0.16987,0.16892,0.17818,-0.24592,-0.25067,0.16702,0.17058,0.17723,-0.24473,-0.24687,0.16132,0.15087,0.14375,-0.24449,-0.24829,0.15182,0.14731,0.14208 0.24909,0.08169,0.18213,-0.18615,-0.32006,0.31605,0.11517,0.04821,-0.085707,-0.32006,0.34953,0.014731,0.21561,-0.11919,-0.35354,0.11517,0.11517,-0.085707,-0.15267,-0.21963,0.11517,0.24909,-0.018749,-0.15267,-0.15267 -0.13505,-0.28312,-0.16466,-0.22389,-0.28312,0.042646,-0.19428,-0.16466,-0.10543,-0.16466,0.072261,-0.075815,-0.10543,-0.22389,-0.13505,0.19072,0.13149,0.072261,0.13149,0.13149,0.3388,0.36842,0.27957,0.27957,0.22034 0.10698,0.22202,0.049466,-0.18061,-0.38192,0.10698,0.10698,0.25078,-0.036812,-0.32441,0.22202,0.10698,-0.065571,-0.20937,-0.26689,0.10698,0.19326,0.13574,-0.18061,-0.29565,0.19326,0.25078,0.1645,-0.0080526,-0.26689 -0.10206,-0.10018,-0.10206,-0.10269,-0.10081,-0.10143,-0.10081,-0.10143,-0.10206,-0.10081,-0.097053,-0.10081,-0.10143,-0.098305,-0.096427,-0.10081,-0.095801,-0.095801,-0.099557,-0.099557,0.40123,0.40123,0.3981,0.3981,0.40123 0.13339,0.25984,-0.17067,-0.16858,-0.16385,0.2504,0.26247,-0.17067,-0.16831,-0.16044,0.24489,0.24961,-0.16726,-0.16858,-0.042123,0.2441,0.25092,-0.16726,-0.16726,-0.16726,0.12683,0.35953,-0.16805,-0.16569,-0.16595 -0.28236,-0.26687,-0.22351,-0.20802,-0.20493,-0.24519,-0.26687,-0.22041,-0.19563,-0.17085,0.16986,-0.17705,0.14199,0.16057,0.18225,0.17916,0.19464,0.18535,0.18845,0.18225,0.18535,0.17296,0.17296,0.17296,0.17296 0.11443,0.11554,0.11443,0.11554,-0.4915,0.10887,0.10553,0.11331,0.10664,-0.38922,0.1022,0.098861,0.099972,0.1022,-0.40923,0.089966,0.088855,0.091078,0.088855,-0.37476,0.075513,0.084407,0.084407,0.07996,-0.31584 -0.26755,-0.28354,-0.29461,-0.28846,-0.28231,0.13473,-0.24294,-0.25033,-0.24048,-0.24294,0.14335,0.13473,0.15934,0.14458,0.14458,0.15811,0.15442,0.15196,0.15934,0.16426,0.16918,0.13719,0.14827,0.13473,0.15442 -0.29954,-0.04617,0.038287,0.12274,0.23535,-0.04617,-0.13063,0.038287,0.2072,0.37611,-0.35584,-0.13063,-0.18693,0.094591,0.23535,-0.21508,-0.13063,-0.074322,0.094591,0.2072,-0.384,-0.13063,0.094591,0.094591,0.29166 -0.052064,-0.05566,-0.059255,-0.037682,-0.008917,-0.034086,-0.062851,-0.052064,-0.052064,0.052208,-0.019704,-0.077233,-0.073638,-0.048468,-0.0053215,0.062995,-0.062851,-0.073638,-0.052064,-0.044873,0.96549,-0.044873,-0.066446,-0.062851,-0.034086 0.09975,0.18574,0.20724,-0.093731,-0.3732,0.14275,0.078252,0.18574,-0.050735,-0.35171,0.14275,0.09975,0.20724,-0.029237,-0.22272,0.078252,0.16424,0.078252,-0.20122,-0.3732,0.12125,0.16424,0.18574,-0.050735,-0.3947 0.2671,0.10748,0.16068,0.0010641,-0.078746,0.24049,0.16068,0.13408,-0.15856,-0.26497,0.3203,0.2671,0.10748,-0.15856,-0.31818,0.16068,0.0010641,-0.078746,-0.15856,-0.31818,0.21389,0.054271,-0.10535,-0.31818,-0.23837 -0.38462,-0.38462,-0.38507,-0.38507,-0.38568,-0.009137,-0.0088357,-0.0080823,-0.0092877,-0.0083836,0.12933,0.1331,0.13235,0.13235,0.13265,0.12933,0.13144,0.13175,0.1322,0.13235,0.12843,0.13084,0.13069,0.13099,0.13099 0.11705,0.1191,0.1068,0.090915,-0.40045,0.115,0.10936,0.11141,0.10834,-0.39635,0.10629,0.11295,0.10629,0.096039,-0.39379,0.12115,0.11295,0.09194,0.10475,-0.3984,0.05095,0.045827,0.057099,0.10629,-0.40147 0.30973,-0.12298,-0.031884,-0.031884,-0.32795,0.4236,0.10476,-0.10021,-0.1913,-0.10021,0.4236,0.036439,-0.12298,-0.21408,-0.14576,0.30973,-0.031884,0.036439,-0.12298,-0.10021,0.30973,0.059213,-0.12298,-0.10021,-0.14576 -0.053037,-0.053037,-0.017201,-0.041092,-0.076928,-0.041092,0.018635,-0.029147,-0.064983,-0.053037,-0.053037,-0.088873,-0.053037,-0.053037,0.0066894,-0.064983,-0.088873,-0.088873,-0.029147,0.34116,-0.088873,-0.12471,-0.076928,-0.017201,0.89064 -0.072645,-0.16196,-0.22151,-0.072645,-0.22151,-0.19173,-0.13219,-0.25128,-0.31082,-0.31082,-0.13219,-0.0131,0.046445,-0.072645,-0.072645,0.076217,0.19531,0.19531,0.22508,0.16553,0.22508,0.3144,0.3144,0.25485,0.22508 -0.19041,-0.12591,-0.12591,0.1063,0.40302,-0.12591,-0.17751,-0.15171,0.19661,0.33852,-0.12591,-0.13881,-0.15171,-0.0098046,0.33852,-0.12591,-0.13881,-0.15171,0.041798,0.32561,-0.13881,-0.17751,-0.13881,0.1063,0.33852 -0.098672,-0.098943,-0.098672,-0.099213,-0.098943,-0.098221,-0.098943,-0.098492,-0.098853,-0.098582,-0.098131,-0.098131,-0.098041,-0.098041,-0.098041,-0.097951,-0.098312,-0.098492,-0.098221,-0.098041,0.45371,0.45659,0.46318,0.30057,0.29489 -0.17555,-0.12587,-0.1093,-0.24179,-0.17555,-0.12587,-0.12587,-0.092743,-0.026498,-0.092743,-0.12587,-0.026498,-0.12587,-0.092743,-0.05962,0.0066245,-0.076181,-0.05962,-0.026498,-0.026498,0.47034,0.35441,0.2716,0.40409,0.40409 0.31221,-0.14063,-0.13243,-0.13079,-0.14991,0.31167,0.29747,-0.13134,-0.12533,-0.14281,0.33024,0.12922,-0.13626,-0.13353,-0.16739,0.42037,0.13141,-0.14281,-0.13407,-0.17012,0.18111,0.17893,-0.13953,-0.13462,-0.18105 -0.21378,-0.097594,-0.21378,-0.13632,-0.039502,-0.21378,-0.17505,-0.13632,-0.097594,-0.19441,-0.27187,-0.17505,-0.097594,-0.097594,-0.13632,0.23159,0.076681,0.1735,0.13477,0.23159,0.23159,0.23159,0.30905,0.30905,0.36714 -0.15738,-0.15604,-0.15338,-0.14938,-0.15249,-0.16182,-0.16138,-0.16049,-0.16049,-0.16182,-0.1596,-0.16093,-0.16315,-0.16049,-0.16049,0.21581,0.21314,0.46237,0.20959,0.22736,0.21225,0.21136,0.20959,0.21092,0.20692 0.36707,0.39574,0.43876,0.36707,0.39574,-0.12044,-0.091766,0.03728,-0.12044,-0.077428,-0.13478,-0.091766,-0.13478,-0.13478,-0.048751,-0.077428,-0.12044,-0.12044,-0.077428,-0.12044,-0.13478,-0.091766,-0.091766,-0.13478,-0.077428 0.09617,0.098089,0.10288,0.10576,-0.40156,0.091375,0.10192,0.10672,0.10672,-0.40731,0.089457,0.10384,0.10097,0.10384,-0.40252,0.093293,0.10001,0.10288,0.10576,-0.39772,0.08658,0.09713,0.10288,0.10288,-0.39005 -0.29385,-0.2369,-0.12301,-0.20843,-0.32232,-0.20843,-0.26537,-0.2369,-0.15148,-0.15148,-0.0091115,0.076309,0.047835,0.047835,0.047835,0.33257,0.13326,0.1902,0.24715,0.1902,0.33257,0.21868,0.13326,0.16173,0.047835 -0.099448,-0.10379,-0.10596,-0.10379,-0.10379,-0.10089,-0.098002,-0.10089,-0.10017,-0.10017,-0.098725,-0.096555,-0.097278,-0.098725,-0.095832,-0.097278,-0.10523,-0.098002,-0.097278,-0.098002,0.40242,0.39953,0.4017,0.39663,0.39953 -0.26618,-0.20576,0.080945,0.17737,0.1838,-0.26232,-0.23147,0.20437,0.17994,0.14137,-0.25075,-0.20833,0.17094,0.18637,0.12594,-0.25718,-0.24818,0.19922,0.1748,0.13494,-0.25975,-0.23533,0.18251,0.1478,0.13494 -0.10044,-0.10063,-0.10063,-0.10083,-0.10025,-0.099079,-0.10063,-0.099857,-0.099662,-0.10044,-0.10005,-0.10005,-0.10122,-0.10005,-0.099857,-0.098301,-0.099079,-0.097717,-0.097523,-0.10355,0.40833,0.40055,0.39861,0.39861,0.39375 -0.10024,-0.099908,-0.10024,-0.099908,-0.099908,-0.09999,-0.10056,-0.10032,-0.10032,-0.10032,-0.099663,-0.10015,-0.10007,-0.099908,-0.099908,-0.10007,-0.0995,-0.099418,-0.099091,-0.099745,0.41564,0.40853,0.40142,0.39398,0.37967 0.0050568,0.006965,-0.061731,-0.069364,-0.077474,0.0021945,-0.0083008,0.016983,-0.061731,-0.068887,-0.00066788,0.0093503,-0.061731,-0.075566,-0.069841,-0.0011449,-0.0020991,-0.048851,-0.070795,-0.067456,0.96537,-0.037401,-0.069364,-0.077951,-0.075566 -0.20432,-0.17185,-0.21514,-0.18267,-0.18267,-0.18267,-0.17185,-0.1935,-0.18267,-0.16103,-0.13939,-0.20432,-0.063633,0.012121,0.12034,0.0012986,0.055408,0.20692,0.19609,0.2502,0.15281,0.28267,0.27185,0.31514,0.39089 -0.10521,-0.099375,-0.10156,-0.10448,-0.10083,-0.1001,-0.1001,-0.098646,-0.097189,-0.10156,-0.10156,-0.097189,-0.099375,-0.10083,-0.097917,-0.095731,-0.097917,-0.1001,-0.099375,-0.10083,0.39983,0.39983,0.39765,0.40202,0.40056 0.10609,0.1829,0.17995,-0.18444,-0.21694,0.21836,0.25381,0.20851,-0.18937,-0.21596,0.23018,0.21639,-0.14406,-0.19232,-0.20808,0.18881,0.25184,-0.14308,-0.18247,-0.21596,0.21639,0.21343,-0.17755,-0.17656,-0.2199 0.37718,-0.10139,-0.10405,-0.099868,-0.089977,0.37414,-0.10215,-0.10367,-0.097205,-0.096444,0.37071,-0.099868,-0.099107,-0.095684,-0.099868,0.43767,-0.10025,-0.10215,-0.098727,-0.099868,0.43538,-0.098727,-0.10215,-0.10101,-0.10291 -0.2206,-0.21578,0.034262,0.22498,0.21647,-0.22401,-0.22117,0.033126,0.23605,0.26812,-0.22088,0.039938,0.039938,0.23492,0.26557,-0.22117,-0.23082,0.042208,0.040789,0.26415,-0.22997,-0.23139,-0.22429,0.041073,0.25847 -0.20436,-0.29169,-0.26986,-0.11703,-0.051527,-0.33536,-0.11703,-0.095194,-0.095194,-0.11703,-0.11703,-0.13886,-0.11703,-0.095194,-0.051527,0.013973,0.16681,0.21047,0.21047,0.25414,0.18864,0.21047,0.31964,0.31964,0.31964 -0.10063,-0.10063,-0.099424,-0.10184,-0.10123,-0.10123,-0.10184,-0.10063,-0.10063,-0.10244,-0.098217,-0.098821,-0.097614,-0.10063,-0.098217,-0.10003,-0.099424,-0.099424,-0.099424,-0.097614,0.40071,0.3983,0.40313,0.39709,0.40071 -0.034223,-0.053638,-0.044265,-0.042257,-0.010122,-0.052969,-0.053638,-0.045604,-0.031545,-0.032215,-0.03891,-0.057655,-0.040249,-0.033554,-0.029537,-0.036232,-0.057655,-0.036901,-0.034893,-0.032215,0.97802,-0.072383,-0.035562,-0.036901,-0.034893 -0.11053,-0.11053,-0.09983,-0.10384,-0.10919,-0.10384,-0.095818,-0.098493,-0.098493,-0.11053,-0.08913,-0.097155,-0.097155,-0.10117,-0.098493,-0.090468,-0.1025,-0.082443,-0.098493,-0.097155,0.44185,0.38835,0.37364,0.3723,0.41911 -0.10221,-0.10273,-0.10014,-0.097279,-0.09598,-0.10299,-0.1004,-0.10403,-0.10299,-0.097798,-0.10118,-0.10195,-0.097798,-0.097019,-0.099876,-0.099876,-0.10325,-0.099097,-0.095201,-0.098058,0.40117,0.39883,0.39961,0.40013,0.40013 0.068573,0.076111,0.090745,0.088527,-0.39482,0.074781,0.078328,0.08498,0.087197,-0.3957,0.094292,0.081432,0.080102,0.087197,-0.39216,0.10848,0.08498,0.092518,0.094292,-0.39703,0.11292,0.19584,0.19806,0.096953,-0.39659 0.28287,0.28183,0.27903,0.27518,0.16294,0.27973,0.27728,0.28078,0.26364,-0.10806,-0.15037,-0.14898,-0.15037,-0.14898,-0.15037,-0.15142,-0.15247,-0.15247,-0.15142,-0.15667,-0.14968,-0.15037,-0.15037,-0.14898,-0.16226 -0.1555,-0.15781,-0.1588,0.1494,0.15205,-0.1555,-0.15517,-0.16904,0.16097,0.41962,-0.15715,-0.15682,-0.16144,0.26073,0.26403,-0.15517,-0.15682,-0.16177,0.26403,0.26436,-0.1555,-0.15451,-0.15946,0.16394,0.2713 -0.25171,-0.30988,-0.2808,-0.30988,-0.30988,-0.096572,-0.20323,-0.048092,-0.12566,-0.16444,0.048868,0.01978,0.097348,-0.038396,0.204,0.077956,0.06826,0.058564,0.15552,0.12644,0.36883,0.2234,0.14583,0.204,0.33975 0.38868,-0.10849,-0.10305,-0.099903,-0.096182,0.39612,-0.10362,-0.10305,-0.097899,-0.095609,0.3987,-0.10391,-0.10248,-0.099044,-0.096754,0.40442,-0.10248,-0.099044,-0.097613,-0.095896,0.41158,-0.098472,-0.09933,-0.097327,-0.09933 0.49897,0.49849,0.48365,0.20601,0.21319,-0.096045,-0.097481,-0.093173,-0.093173,-0.090301,-0.098918,-0.098439,-0.097003,-0.093652,-0.094609,-0.099396,-0.097481,-0.095567,-0.093173,-0.092695,-0.097481,-0.096045,-0.095088,-0.09078,-0.089822 0.2291,0.22448,0.22448,-0.19131,-0.2225,0.22564,0.22217,0.22102,-0.21672,-0.22943,0.21524,0.21871,0.20831,-0.22943,-0.23289,0.20947,0.022361,0.013121,-0.23174,-0.23751,0.011966,0.015431,0.0038808,-0.22943,-0.24444 -0.30504,-0.40376,-0.231,-0.40376,-0.25568,-0.082925,-0.20632,-0.13228,0.065155,-0.1076,0.040475,0.089835,0.065155,0.040475,-0.033565,0.1392,0.21324,0.1392,0.21324,0.1392,0.16388,0.16388,0.21324,0.21324,0.2626 -0.12553,-0.19526,-0.19526,-0.10809,-0.17783,-0.16039,-0.073224,-0.16039,-0.19526,-0.12553,-0.038355,-0.12553,-0.16039,-0.038355,-0.16039,0.048816,0.083684,0.083684,0.048816,-0.0034868,0.25803,0.25803,0.3975,0.43237,0.43237 0.15835,0.22396,0.15835,0.15835,0.048991,0.22396,0.1146,0.1146,0.1146,0.15835,0.13648,0.13648,0.02712,0.092733,0.092733,-0.038493,-0.082235,0.02712,0.02712,-0.038493,-0.38843,-0.32282,-0.38843,-0.36656,-0.38843 -0.099022,-0.099022,-0.099252,-0.099481,-0.099481,-0.099022,-0.098103,-0.099481,-0.099481,-0.098562,-0.098103,-0.099022,-0.099022,-0.099252,-0.099481,-0.098562,-0.097643,-0.099711,-0.099022,-0.1004,0.50418,0.39963,0.40192,0.32701,0.34838 -0.099984,-0.099883,-0.1008,-0.10039,-0.10059,-0.10019,-0.099578,-0.10039,-0.10059,-0.10059,-0.099781,-0.099781,-0.10059,-0.10039,-0.10019,-0.099171,-0.09907,-0.098765,-0.099679,-0.099578,0.4003,0.4001,0.4001,0.4001,0.39939 0.2227,0.27042,0.36586,0.41359,0.41359,-0.031814,0.063628,0.12726,0.12726,0.17498,-0.12726,-0.17498,-0.12726,-0.079536,-0.031814,-0.17498,-0.17498,-0.17498,-0.12726,-0.12726,-0.17498,-0.17498,-0.17498,-0.12726,-0.17498 -0.10218,-0.10064,-0.10064,-0.10141,-0.10141,-0.0991,-0.099869,-0.10064,-0.10218,-0.099869,-0.10179,-0.10025,-0.0991,-0.10025,-0.098716,-0.096408,-0.097177,-0.098716,-0.0991,-0.10025,0.39125,0.39163,0.40932,0.40355,0.40394 0.41329,0.40953,0.40451,0.3928,0.37901,-0.10556,-0.10305,-0.099288,-0.099288,-0.10263,-0.1018,-0.098452,-0.098034,-0.099706,-0.096361,-0.099288,-0.10096,-0.098034,-0.098452,-0.099288,-0.10054,-0.10054,-0.09887,-0.09887,-0.10012 0.27965,0.27965,0.11553,-0.21269,-0.24551,0.04989,0.082712,-0.048577,-0.21269,-0.3768,0.41094,0.04989,-0.048577,-0.14704,-0.17987,0.27965,0.14836,0.14836,-0.11422,-0.11422,0.214,0.017068,0.017068,-0.081399,-0.31116 -0.10076,-0.10342,-0.10342,-0.10254,-0.1032,-0.10143,-0.10143,-0.10165,-0.10054,-0.099204,-0.09654,-0.097206,-0.09876,-0.098982,-0.099649,-0.096984,-0.097428,-0.099649,-0.098316,-0.09876,0.39553,0.39753,0.40086,0.40508,0.40086 -0.10093,-0.10112,-0.099767,-0.1017,-0.10073,-0.10035,-0.09938,-0.10054,-0.10015,-0.10093,-0.09938,-0.099187,-0.0988,-0.09938,-0.099961,-0.099187,-0.099574,-0.09938,-0.098994,-0.10054,0.39907,0.40023,0.39946,0.40139,0.39984 0.49739,0.45256,0.39097,0.34663,0.28356,-0.096313,-0.089908,-0.09927,-0.098777,-0.09927,-0.099762,-0.099762,-0.097299,-0.10025,-0.10124,-0.10075,-0.10025,-0.10124,-0.096806,-0.097791,-0.097299,-0.099762,-0.097299,-0.09927,-0.098777 -0.0048959,-0.0072052,-0.037227,-0.076486,-0.11113,-0.0025865,-0.0072052,-0.0025865,-0.092652,-0.11113,-0.02568,0.0043416,-0.02568,-0.085724,-0.094961,0.029745,0.0043416,0.0043416,-0.094961,-0.11806,0.93733,0.087479,0.020507,-0.014133,-0.17579 -0.26662,-0.2544,0.1548,0.15595,0.22,-0.26201,-0.24634,0.1541,0.15595,0.13037,-0.26316,-0.24657,0.16539,0.15733,0.15733,-0.26431,-0.17307,0.23221,0.15779,0.13936,-0.2703,-0.17399,0.15572,0.14927,0.13521 0.10689,0.12045,0.11679,0.10841,-0.40338,0.10612,0.10155,0.14086,0.12837,-0.4014,0.09942,0.099725,0.099572,0.10003,-0.39927,0.087993,0.081746,0.083422,0.099877,-0.39607,0.084336,0.076566,0.075194,0.076566,-0.39378 -0.18186,-0.17444,-0.15661,0.23974,0.23698,-0.18144,-0.16659,-0.15492,0.21534,0.21343,-0.16446,-0.15768,-0.15831,0.30573,0.22064,-0.16107,-0.15704,-0.15661,0.22234,0.22446,-0.15598,-0.14452,-0.15789,0.32949,0.22128 -0.15046,-0.28121,-0.32647,-0.37173,-0.39184,0.05069,-0.019713,-0.12532,-0.20578,-0.27618,0.15126,0.14121,0.085891,0.020517,-0.034799,0.1915,0.17641,0.18647,0.13115,0.11606,0.22167,0.20658,0.18647,0.17641,0.14121 -0.39766,-0.32562,-0.39766,-0.34964,-0.30161,0.010566,0.034579,-0.061475,-0.13352,0.010566,0.034579,0.082606,0.034579,-0.013448,0.082606,0.13063,0.13063,0.058593,0.15465,0.13063,0.2507,0.2507,0.20267,0.13063,0.2507 -0.098203,-0.099069,-0.099286,-0.099935,-0.099502,-0.098853,-0.099935,-0.099935,-0.10058,-0.099935,-0.099935,-0.10188,-0.099935,-0.10015,-0.10102,-0.10037,-0.10102,-0.096472,-0.10275,-0.1008,0.40966,0.41074,0.38996,0.39082,0.3984 0.52261,0.41876,0.40133,0.32591,0.30052,-0.1016,-0.097812,-0.10388,-0.098191,-0.098949,-0.09857,-0.097054,-0.096296,-0.097433,-0.098191,-0.097054,-0.099707,-0.097812,-0.098949,-0.097433,-0.09857,-0.097812,-0.098949,-0.098191,-0.096675 0.30829,0.3081,0.45221,0.45221,0.45394,-0.096918,-0.097111,-0.097496,-0.098265,-0.098073,-0.098073,-0.098458,-0.099035,-0.097881,-0.099035,-0.09942,-0.10019,-0.099035,-0.099612,-0.09942,-0.099227,-0.09942,-0.098843,-0.09942,-0.099805 0.16802,0.17043,0.16923,0.17465,-0.2645,0.14814,0.16862,0.16893,-0.27263,-0.26751,0.1385,0.1367,0.1376,-0.26571,-0.26691,0.13579,0.13579,0.13549,-0.26541,-0.2642,0.13549,0.13549,0.13609,-0.26571,-0.26239 -0.016401,-0.041157,-0.055082,-0.045799,-0.036515,-0.055082,-0.050441,-0.033421,-0.041157,-0.025684,-0.050441,-0.03961,-0.030326,-0.024137,-0.028779,-0.042704,-0.03961,-0.055082,-0.031874,-0.042704,0.97849,-0.048893,-0.042704,-0.044252,-0.05663 -0.33417,-0.051932,0.03274,0.03274,0.23031,-0.30595,-0.080156,-0.051932,0.17386,0.20208,-0.16483,0.0045158,0.03274,0.23031,0.31498,-0.44707,-0.10838,-0.051932,0.060963,0.25853,-0.1366,-0.2495,-0.051932,0.20208,0.25853 -0.29146,-0.00145,0.12543,0.14355,0.19793,-0.30958,-0.23708,0.071052,0.14355,0.14355,-0.30958,-0.019575,0.071052,0.12543,0.23418,-0.30958,-0.1827,0.21606,0.14355,0.1798,-0.32771,-0.25521,0.16168,0.12543,0.16168 -0.1005,-0.1003,-0.10021,-0.1007,-0.1005,-0.10001,-0.099318,-0.10021,-0.10011,-0.10021,-0.09991,-0.099614,-0.099614,-0.099712,-0.099318,-0.099712,-0.1004,-0.099712,-0.1003,-0.099614,0.39928,0.39701,0.39869,0.40126,0.40372 -0.0083832,-0.0072488,-0.013488,-0.07191,-0.11161,-0.017742,-0.014906,-0.014622,-0.068223,-0.10906,-0.012637,-0.013204,-0.011786,-0.012637,-0.10906,-0.014906,-0.015757,-0.014906,-0.010652,-0.10878,0.96153,-0.014339,-0.017742,-0.069074,-0.098852 -0.29995,-0.074666,-0.13903,0.1828,0.44027,-0.26777,-0.10685,-0.10685,0.11844,0.27936,-0.17122,-0.29995,-0.074666,0.021885,0.34372,-0.2034,-0.074666,0.021885,0.21499,0.24717,-0.2034,-0.074666,0.021885,0.054069,0.15062 -0.25058,-0.36273,-0.37875,-0.33068,-0.45886,-0.090361,-0.042297,-0.058318,-0.058318,-0.026275,0.053832,0.085875,0.1019,0.1019,0.1019,0.1019,0.21405,0.14996,0.053832,0.19803,0.19803,0.13394,0.19803,0.182,0.182 0.17495,0.19097,0.23904,0.207,0.25506,0.11087,0.17495,0.207,0.23904,0.31915,-0.017303,0.046782,0.078825,-0.033324,-0.033324,-0.30569,-0.2416,-0.20956,-0.17752,-0.049346,-0.28967,-0.25762,-0.22558,-0.20956,-0.19354 0.23933,-0.095216,-0.14508,-0.19011,-0.1499,0.22968,0.32457,-0.13382,-0.18368,-0.16277,0.2152,0.29079,-0.14186,-0.16277,-0.16277,0.20233,0.30205,-0.14508,-0.13703,-0.13703,0.24898,0.31492,-0.096824,-0.16116,-0.16277 0.31101,0.050499,0.070538,-0.25009,-0.27013,0.39116,0.17073,0.01042,-0.23005,-0.35028,0.31101,0.19077,0.070538,-0.10981,-0.29017,0.13066,0.13066,0.090577,0.01042,-0.27013,0.070538,-0.0096188,-0.049697,0.03046,-0.21001 -0.043641,-0.022072,-0.036451,-0.041843,-0.036451,-0.054425,-0.032856,-0.027464,-0.041843,-0.036451,-0.049033,-0.036451,-0.041843,-0.041843,-0.038248,-0.045438,-0.054425,-0.045438,-0.054425,-0.036451,0.97907,-0.034654,-0.045438,-0.045438,-0.036451 -0.099886,-0.10016,-0.1015,-0.10177,-0.10043,-0.10097,-0.10043,-0.1015,-0.10177,-0.10285,-0.098267,-0.098806,-0.099076,-0.099346,-0.099886,-0.099076,-0.097457,-0.098267,-0.097457,-0.10097,0.3955,0.39631,0.39981,0.40143,0.40683 -0.23798,-0.24683,0.16315,0.15906,0.15089,-0.24002,-0.24479,0.16179,0.16247,0.15293,-0.24207,-0.25705,0.16723,0.17132,0.16655,-0.24002,-0.24479,0.1611,0.1686,0.16792,-0.24547,-0.24956,0.1611,0.16587,0.1686 0.19474,0.35718,0.34364,0.37523,0.37072,-0.039887,0.032307,0.099989,0.18572,0.19474,-0.1572,-0.10757,-0.10757,-0.039887,0.032307,-0.1933,-0.16623,-0.17976,-0.1572,-0.1572,-0.18879,-0.16172,-0.16172,-0.18879,-0.17976 -0.26355,-0.28106,-0.27756,-0.28106,-0.26005,-0.21451,-0.22152,-0.204,-0.098919,0.093735,-0.13044,-0.10592,-0.02536,0.10074,0.15678,0.1743,0.1743,0.19882,0.19181,0.1813,0.22334,0.23034,0.22334,0.21283,0.20232 -0.19952,-0.19831,-0.19846,-0.19786,-0.19771,-0.19425,-0.19245,-0.19485,-0.19425,-0.1947,-0.13078,-0.13093,-0.13093,0.24447,-0.093784,0.25379,0.18295,0.18521,0.23123,0.24778,0.25575,0.18536,0.18536,0.23529,0.24161 0.46326,0.46877,0.46009,0.28159,0.2871,-0.097515,-0.097148,-0.096659,-0.096781,-0.09727,-0.098493,-0.098004,-0.098493,-0.098126,-0.097515,-0.098615,-0.098493,-0.098493,-0.098737,-0.098615,-0.098004,-0.098982,-0.098004,-0.098615,-0.098248 -0.15506,-0.12024,-0.15506,-0.13185,-0.22469,-0.16666,-0.16666,-0.16666,-0.13185,-0.17827,-0.17827,-0.17827,-0.085421,-0.15506,-0.12024,0.11188,0.22794,0.36722,0.1351,0.19313,0.15831,0.16991,0.21634,0.40204,0.3324 0.27455,0.092003,0.018985,-0.16356,-0.3096,0.38407,0.018985,0.018985,-0.34611,-0.16356,0.27455,0.20153,-0.090542,0.018985,-0.3096,0.31106,0.092003,0.018985,-0.017524,-0.16356,0.27455,-0.12705,0.018985,-0.16356,-0.16356 -0.09768,-0.089054,-0.096062,-0.11709,-0.10361,-0.098758,-0.099836,-0.098219,-0.09768,-0.099297,-0.099297,-0.099297,-0.10037,-0.10037,-0.10307,-0.092828,-0.098758,-0.099836,-0.10307,-0.10523,0.39934,0.4015,0.40366,0.39827,0.39665 0.11992,0.12194,0.1169,0.19659,0.18247,0.15725,0.10076,0.10883,0.19155,0.17642,0.19155,0.1744,0.21273,0.19659,0.17339,-0.2382,-0.23214,-0.2271,-0.21802,-0.21197,-0.25938,-0.25938,-0.26342,-0.25635,-0.25534 -0.038695,-0.038695,-0.039904,-0.036277,-0.037486,-0.057438,-0.038695,-0.032649,-0.035672,-0.032649,-0.052601,-0.053206,-0.03144,-0.035672,-0.034463,-0.045346,-0.055624,-0.04595,-0.032649,-0.033253,0.97886,-0.059856,-0.047764,-0.03144,-0.03144 -0.19546,-0.18207,-0.028114,0.31327,0.31996,-0.1486,-0.16868,-0.10175,0.31327,0.32666,-0.19546,-0.12852,-0.12852,0.052212,0.31996,-0.18876,-0.11513,-0.12183,-0.02142,0.29319,-0.18207,-0.16868,-0.095052,-0.02142,0.25303 -0.22918,-0.016976,0.17754,0.23059,0.27775,-0.24686,-0.075922,0.14807,0.2247,0.27186,-0.22918,-0.15255,0.03018,0.16575,0.25417,-0.27044,-0.22918,-0.14666,0.09502,0.21291,-0.27044,-0.24686,-0.19381,0.053758,0.16575 -0.097651,-0.1001,-0.10071,-0.10194,-0.098263,-0.098876,-0.10132,-0.10194,-0.1001,-0.10316,-0.10071,-0.099488,-0.10255,-0.1001,-0.10071,-0.1001,-0.099488,-0.098876,-0.095814,-0.097651,0.38546,0.39465,0.40322,0.40812,0.40812 -0.099597,-0.10026,-0.10091,-0.10118,-0.10131,-0.09828,-0.09907,-0.09907,-0.098938,-0.098938,-0.096436,-0.097094,-0.096963,-0.096831,-0.096831,-0.094856,-0.095382,-0.095251,-0.095909,-0.096304,0.52134,0.45654,0.38332,0.32972,0.26848 0.43953,0.43028,0.42743,0.42885,0.24611,-0.1006,-0.097606,-0.099741,-0.098745,-0.098603,-0.10017,-0.099172,-0.095899,-0.098603,-0.097749,-0.098318,-0.098603,-0.098033,-0.098176,-0.098603,-0.09846,-0.098318,-0.099314,-0.098887,-0.098603 -0.1008,-0.10179,-0.099813,-0.10047,-0.10047,-0.099813,-0.099155,-0.10014,-0.10014,-0.099155,-0.10014,-0.099484,-0.097509,-0.099155,-0.10014,-0.099484,-0.099813,-0.099813,-0.099813,-0.10278,0.40274,0.40175,0.40241,0.40175,0.39122 -0.33096,-0.25411,0.10451,0.10964,0.11476,-0.33096,-0.22849,0.1455,0.11476,0.13525,-0.2746,-0.15165,0.16599,0.15574,0.15574,-0.25411,-0.18751,0.19673,0.18136,0.17624,-0.22337,-0.1414,0.2121,0.2121,0.19673 -0.12262,-0.10008,-0.12262,-0.1677,-0.12262,-0.21279,-0.21279,-0.07754,-0.21279,-0.25787,-0.19024,-0.21279,-0.14516,-0.009918,-0.055,0.057705,0.12533,0.12533,0.21549,0.19295,0.23803,0.21549,0.30565,0.30565,0.4409 -0.10092,-0.10028,-0.099848,-0.10028,-0.099848,-0.099848,-0.10028,-0.099848,-0.098562,-0.099634,-0.098134,-0.10178,-0.1007,-0.09792,-0.10156,-0.099205,-0.097277,-0.099848,-0.10092,-0.10328,0.40085,0.39828,0.40085,0.39871,0.40128 0.20368,0.20275,0.16431,0.15921,0.15644,0.20182,0.18747,0.16987,0.15597,0.15505,0.20275,0.17218,0.16709,0.16246,-0.17148,-0.25392,-0.24234,-0.234,-0.1724,-0.16824,-0.2428,-0.24558,-0.24373,-0.24419,-0.24234 0.020576,0.026812,-0.027747,-0.21325,-0.21636,0.050194,0.039282,0.026812,-0.21013,-0.21169,0.34793,0.21543,0.078253,-0.21481,-0.20857,0.36819,0.21699,0.090723,-0.20389,-0.21325,0.37131,0.20296,0.078253,-0.20701,-0.20701 -0.30192,-0.32742,-0.34017,-0.32742,-0.46767,-0.03417,-0.04692,-0.11067,-0.08517,-0.11067,0.15708,0.13158,0.10608,0.11883,0.10608,0.19533,0.18258,0.15708,0.16983,0.14433,0.18258,0.16983,0.14433,0.09333,0.09333 -0.19827,-0.19928,-0.19793,-0.1981,-0.32667,-0.19726,-0.19726,-0.19659,-0.19693,-0.327,0.015838,0.14592,0.14777,0.031804,0.033316,0.15129,0.14508,0.14457,0.30709,0.033148,0.15583,0.14592,0.14172,0.31851,0.31751 -0.10041,-0.10041,-0.10258,-0.10113,-0.10186,-0.098246,-0.097163,-0.09969,-0.099329,-0.10005,-0.09969,-0.098246,-0.098968,-0.09969,-0.10041,-0.10186,-0.09608,-0.099329,-0.10186,-0.10294,0.40136,0.40064,0.39955,0.40028,0.39811 -0.19219,-0.2251,-0.093462,0.30145,0.16981,-0.19219,-0.12637,0.038174,0.071083,0.30145,-0.15928,-0.19219,0.0052654,0.10399,0.30145,-0.15928,-0.15928,-0.060553,-0.027644,0.36726,-0.35673,-0.12637,0.038174,0.0052654,0.36726 0.02237,0.022732,-0.15409,-0.15246,-0.15373,0.32589,0.30507,-0.15536,-0.15464,-0.15355,0.3248,0.3058,-0.15138,-0.15391,-0.15391,0.24426,0.25114,-0.15283,-0.15427,-0.15319,0.2506,0.24897,-0.15065,-0.15373,-0.15391 -0.16921,-0.16796,0.13508,0.13226,0.33439,-0.16827,-0.1689,-0.17234,0.13727,0.34253,-0.16733,-0.16764,-0.16764,0.13727,0.35037,-0.16482,-0.16545,-0.16827,0.13226,0.34473,-0.16545,-0.16545,-0.16733,0.14072,0.15921 -0.21637,-0.16807,-0.10046,0.083069,0.14102,-0.20671,-0.17773,-0.11012,0.054092,0.17966,-0.14875,-0.16807,-0.071478,0.092729,0.2666,-0.20671,-0.13909,-0.071478,0.22796,0.36319,-0.14875,-0.16807,-0.042501,0.19898,0.53705 -0.23034,-0.23202,0.1686,0.16186,0.16186,-0.23707,-0.22361,0.17533,0.16018,0.16018,-0.25727,-0.24381,0.16186,0.15681,0.15681,-0.25222,-0.25391,0.16691,0.16523,0.15513,-0.26401,-0.25222,0.18206,0.16186,0.15176 -0.23109,-0.23134,-0.23085,-0.23207,-0.2333,-0.22937,-0.23011,-0.23158,-0.23011,-0.23109,0.10775,0.12224,0.10161,0.10112,0.096457,0.11978,0.11929,0.15195,0.099404,0.45052,0.13771,0.13304,0.19148,0.18411,0.19443 -0.10091,-0.10289,-0.10289,-0.10388,-0.1019,-0.10091,-0.10091,-0.10091,-0.10091,-0.10289,-0.098923,-0.098923,-0.097931,-0.097931,-0.10091,-0.096939,-0.095947,-0.093468,-0.098923,-0.097435,0.35929,0.37566,0.42525,0.42128,0.41483 0.35089,0.18046,-0.040101,-0.073519,-0.16709,0.30076,0.12699,-0.10694,-0.11028,-0.1203,0.29073,-0.053468,-0.14035,-0.21053,-0.15706,0.45782,0.28071,-0.1203,-0.17377,-0.19382,0.086886,0.12365,-0.15038,-0.19048,-0.19048 -0.36699,-0.23731,-0.36699,-0.26973,-0.33457,-0.10763,-0.10763,-0.075214,-0.10763,-0.20489,0.054465,0.2814,0.1193,0.054465,0.054465,0.054465,0.18414,0.1193,0.15172,0.18414,0.24898,0.18414,0.2814,0.086885,0.1193 -0.028375,-0.012389,-0.076334,-0.044362,0.067542,-0.03437,-0.044362,-0.084327,-0.054353,-0.0063945,-0.028375,-0.056351,-0.096317,-0.064344,-0.028375,0.041564,-0.080331,-0.080331,-0.080331,-0.054353,0.96277,-0.032372,-0.048358,-0.028375,-0.0083928 -0.10038,-0.10038,-0.10059,-0.10038,-0.10079,-0.099571,-0.10018,-0.098759,-0.099571,-0.099977,-0.10018,-0.10018,-0.099774,-0.099774,-0.099977,-0.10181,-0.10018,-0.10018,-0.099774,-0.09754,0.40369,0.39739,0.39719,0.39983,0.40186 0.31343,-0.03612,-0.15264,-0.15264,-0.03612,0.31343,0.10952,-0.24002,-0.12351,-0.03612,0.31343,-0.0069909,-0.03612,-0.12351,-0.15264,0.42994,0.10952,-0.18176,-0.15264,-0.18176,0.40081,0.080396,-0.15264,-0.094378,-0.21089 -0.23148,-0.23697,-0.23056,-0.23148,-0.24521,-0.21408,-0.22598,-0.23697,-0.22598,-0.24521,0.11378,0.088137,0.075315,0.14858,0.18063,0.29053,0.093631,0.0744,0.13301,0.22001,0.10554,0.11744,0.0918,0.24474,0.34639 0.19829,0.085625,0.010515,-0.17726,-0.25237,0.2734,0.19829,0.04807,-0.17726,-0.40259,0.23584,0.19829,-0.10215,-0.25237,-0.1397,0.23584,-0.10215,0.085625,-0.064594,-0.17726,0.31095,0.12318,0.23584,-0.1397,-0.25237 -0.22606,-0.22641,-0.22606,-0.22327,-0.22501,-0.22606,-0.22362,-0.22467,-0.22362,-0.22467,0.17966,0.18001,0.18001,0.18071,-0.23233,0.17792,0.17827,0.17722,0.17548,0.17443,0.17722,0.17652,0.17548,0.17443,0.17443 -0.2034,-0.17122,-0.010299,0.021885,0.15062,-0.33214,-0.17122,-0.17122,0.1828,0.24717,-0.26777,-0.10685,0.15062,0.11844,0.21499,-0.2034,-0.10685,0.054069,0.054069,0.44027,-0.26777,-0.042483,-0.042483,0.086253,0.37591 0.42099,0.38716,0.2132,0.39683,0.44032,-0.033246,-0.033246,-0.038078,-0.023582,0.029574,-0.042911,-0.067072,-0.047743,-0.057408,-0.071905,-0.047743,-0.071905,-0.091234,-0.1154,-0.15889,-0.15889,-0.16855,-0.20238,-0.2362,-0.22171 0.20691,0.22323,0.1906,0.0029373,-0.2092,0.19875,0.18244,0.18244,-0.086812,-0.24183,0.18244,0.18244,0.17428,-0.15208,-0.31527,0.18244,0.12532,-0.15208,-0.24183,-0.23368,0.22323,0.11716,-0.20104,-0.25815,-0.28263 0.4034,0.35363,0.4034,0.41584,0.41584,-0.10676,-0.13165,-0.081874,-0.094317,-0.088096,-0.10054,-0.094317,-0.11298,-0.094317,-0.075653,-0.11298,-0.11298,-0.10676,-0.10676,-0.075653,-0.12542,-0.11298,-0.094317,-0.094317,-0.069432 -0.099239,-0.099983,-0.10023,-0.10073,-0.10073,-0.097999,-0.099983,-0.10073,-0.10048,-0.10197,-0.098991,-0.099735,-0.099735,-0.10048,-0.10023,-0.097255,-0.097751,-0.10048,-0.10197,-0.10122,0.39626,0.3975,0.39899,0.40172,0.40544 -0.20775,-0.04008,0.2234,0.23936,0.22739,-0.23968,-0.16783,0.14755,0.2194,0.23138,-0.23569,-0.21972,-0.028104,0.21541,0.23537,-0.24368,-0.21573,-0.11194,0.18347,0.20743,-0.24767,-0.22371,-0.17581,0.019801,0.20743 -0.0067196,-0.045487,-0.067024,-0.088561,-0.088561,0.036355,0.02774,-0.023949,0.0062027,-0.011027,0.066507,-0.0067196,-0.097176,-0.075639,-0.036872,0.0622,0.0062027,-0.092869,-0.11441,-0.088561,0.94092,0.019125,-0.10579,-0.097176,-0.11871 0.25187,0.18782,0.18578,0.18033,0.1851,0.24846,0.29786,0.25595,0.30535,0.31829,-0.1593,-0.16475,-0.15726,-0.16578,-0.15896,-0.16135,-0.15964,-0.16237,-0.1593,-0.15964,-0.16135,-0.16033,-0.16067,-0.16169,-0.16441 0.47717,-0.0092744,-0.095653,-0.1002,-0.12293,0.48627,-0.045644,-0.10475,-0.11384,-0.095653,0.51809,-0.072922,-0.10929,-0.11384,-0.10475,0.2635,-0.059283,-0.091107,-0.10475,-0.10475,0.10893,-0.082014,-0.11384,-0.10475,-0.10475 -0.099313,-0.099313,-0.099781,-0.099625,-0.099781,-0.099469,-0.10056,-0.10041,-0.099937,-0.10041,-0.099937,-0.10009,-0.099781,-0.10041,-0.10009,-0.099937,-0.099781,-0.099781,-0.099937,-0.099313,0.42413,0.42647,0.37403,0.3901,0.38292 -0.040774,-0.047341,-0.068502,-0.060476,-0.086014,-0.043693,-0.057557,-0.045152,-0.04953,-0.088203,-0.065583,-0.061935,-0.05026,-0.07288,-0.086744,0.17813,-0.045152,-0.045152,-0.071421,-0.048071,0.92751,0.1701,-0.033478,-0.053909,-0.053909 -0.23264,-0.11971,-0.020892,-0.049125,0.55788,-0.23264,-0.10559,-0.091474,0.1485,0.28967,-0.19029,-0.063242,-0.063242,0.10616,0.33202,-0.23264,-0.19029,-0.091474,0.10616,0.2332,-0.20441,-0.11971,-0.063242,0.10616,0.19085 0.14707,0.14419,0.2537,-0.1752,-0.17712,0.23713,0.25105,-0.1752,-0.17592,-0.17664,0.24721,0.25057,-0.17352,-0.1752,-0.17496,0.25442,0.22704,-0.17664,-0.1752,-0.17664,0.22632,0.22296,-0.17568,-0.17688,-0.17688 -0.36958,-0.087849,0.13626,0.12985,0.14266,-0.35678,0.014599,0.12985,0.12985,0.14266,-0.36958,-0.055834,0.15547,0.13626,0.14266,-0.37599,-0.10706,0.14906,0.13626,0.14266,-0.36318,-0.049431,0.16187,0.15547,0.12985 -0.2239,-0.2249,-0.22739,-0.22889,-0.22739,-0.2229,-0.2249,-0.2249,-0.2259,-0.22739,-0.2229,0.17482,0.17332,0.16883,0.16783,0.1818,0.17831,0.17731,0.17382,0.17382,0.18629,0.1853,0.1828,0.17981,0.17731 0.13478,0.10725,0.11357,0.15283,0.21827,0.14471,0.22278,0.099125,0.15734,0.20022,0.1235,0.21601,0.087842,0.14922,0.16186,-0.14458,-0.14458,-0.14729,-0.14729,-0.14729,-0.15677,-0.36346,-0.35579,-0.35128,-0.33097 -0.15044,-0.2299,-0.2299,-0.17693,-0.2299,-0.2299,-0.070984,-0.17693,-0.17693,-0.2299,-0.097471,-0.018011,-0.15044,-0.070984,-0.018011,0.19388,0.37929,0.22037,0.19388,0.22037,0.37929,0.1674,0.14091,0.14091,0.22037 -0.40039,-0.38558,-0.35596,-0.28193,-0.25231,-0.074628,-0.074628,-0.13386,-0.10424,-0.059821,0.10306,0.088251,0.014215,0.088251,0.088251,0.20671,0.088251,0.10306,0.22152,0.25113,0.25113,0.16229,0.22152,0.073444,0.16229 -0.24972,-0.15513,0.22324,0.24689,0.29418,-0.39161,-0.10784,0.08135,0.22324,0.31783,-0.20243,-0.15513,0.010405,0.15229,0.15229,-0.24972,-0.22608,0.034053,0.15229,0.15229,-0.24972,-0.15513,-0.10784,0.12865,0.08135 0.42716,0.11831,0.11516,-0.23622,-0.23959,0.11493,0.11696,0.20896,-0.23644,-0.23936,0.12888,0.13518,0.20874,-0.23644,-0.23757,0.1246,0.11403,0.11988,-0.23689,-0.23689,0.11966,0.13315,0.14597,-0.19797,-0.23419 0.40108,-0.10916,-0.1036,-0.090639,-0.10731,0.42516,-0.099899,-0.10083,-0.10916,-0.077675,0.38997,-0.093417,-0.11009,-0.098973,-0.070267,0.38997,-0.098973,-0.12398,-0.10823,-0.082305,0.38997,-0.10546,-0.1036,-0.095269,-0.10731 -0.16854,-0.16854,-0.2111,-0.25366,-0.25366,-0.2111,-0.11179,-0.2111,-0.16854,-0.11179,0.15776,-0.11179,-0.11179,-0.097604,-0.097604,0.31381,0.27125,0.15776,0.072636,0.015889,0.27125,0.35637,0.27125,0.17194,0.22869 0.26489,0.26489,0.2528,0.21655,0.11988,0.31323,0.22864,0.1803,0.13196,0.071539,0.11988,0.083624,0.011118,-0.073473,-0.14598,-0.13389,-0.10973,-0.073473,-0.14598,-0.29099,-0.30308,-0.25474,-0.18223,-0.25474,-0.29099 -0.041558,-0.0092204,-0.044875,-0.053166,-0.053166,-0.043216,-0.044875,-0.04985,-0.054825,-0.063116,-0.043216,-0.045704,-0.028291,-0.047362,-0.075554,-0.04985,-0.031608,-0.026633,-0.073067,-0.076383,0.9493,0.18895,-0.034095,-0.076383,-0.072237 0.11833,0.097079,0.10558,0.10558,0.13108,0.13958,0.12258,0.13108,0.12683,0.12258,0.10558,0.11833,0.10558,0.10133,0.11833,0.016321,0.024822,0.046074,0.075827,0.063076,-0.41297,-0.39172,-0.38746,-0.39172,-0.39172 0.18871,0.18623,0.18291,0.17794,0.17546,0.17298,0.17546,0.17794,0.16966,0.16552,0.17794,0.16552,0.18291,0.17794,-0.19478,-0.20306,-0.20803,-0.22045,-0.22542,-0.21714,-0.23536,-0.24613,-0.24116,-0.24116,-0.24447 0.074548,0.091411,0.087557,0.094784,-0.39523,0.094302,0.10924,0.15838,0.078884,-0.39812,0.082257,0.15742,0.12755,0.089966,-0.39812,0.081775,0.097193,0.08322,0.15501,-0.39764,0.085148,0.07792,0.07262,0.086111,-0.39619 0.26571,0.26571,0.27469,0.26496,0.27731,0.26271,0.26346,0.26346,0.26121,-0.14151,-0.15273,-0.14562,-0.146,-0.14562,-0.14263,-0.15161,-0.15535,-0.14862,-0.14487,-0.14787,-0.15311,-0.15648,-0.15386,-0.15723,-0.1561 0.2292,0.23695,-0.15827,-0.17532,-0.17687,0.1827,0.21525,0.27414,-0.15672,-0.18927,0.1982,0.2044,-0.14278,-0.18462,-0.19547,0.2106,0.2044,-0.17687,-0.20787,-0.22027,0.27414,0.2323,-0.14432,-0.15052,-0.18307 -0.09972,-0.09972,-0.10048,-0.10226,-0.10048,-0.09972,-0.09972,-0.10099,-0.10023,-0.10023,-0.097939,-0.098448,-0.099466,-0.10023,-0.099466,-0.09972,-0.098448,-0.098448,-0.10048,-0.09972,0.45606,0.38509,0.38458,0.38713,0.38306 0.17691,0.13162,0.26747,0.16181,0.13162,0.14672,0.14672,0.16181,0.14672,0.11653,0.192,0.11653,0.11653,0.192,0.192,-0.18536,-0.32121,-0.21555,-0.21555,-0.23064,-0.29102,-0.27593,-0.17026,-0.24574,-0.24574 0.15881,0.15881,0.0097929,-0.28825,-0.37341,0.20139,0.2759,-0.11794,-0.2989,-0.24567,0.2759,0.23333,0.073659,-0.086007,-0.16052,0.23333,0.23333,0.073659,-0.054074,-0.1073,0.20139,0.12688,-0.16052,-0.19245,-0.17116 -0.20197,-0.1159,0.056231,-0.0011476,0.22837,-0.28804,-0.087215,-0.029837,0.17099,0.19968,-0.23066,-0.1159,-0.029837,0.31443,0.31443,-0.25935,-0.14459,-0.029837,0.027542,0.28574,-0.37411,0.027542,-0.1159,0.027542,0.37181 -0.08273,-0.22295,0.05749,0.26782,0.16266,-0.25801,-0.22295,0.022435,0.23277,0.30288,-0.32812,-0.15284,0.022435,0.022435,0.30288,-0.25801,-0.047675,-0.01262,0.23277,0.16266,-0.29306,-0.11779,-0.11779,0.022435,0.30288 -0.03419,-0.04665,-0.014254,-0.029206,-0.067417,-0.049973,-0.03419,-0.019238,0.0023591,-0.049142,-0.059941,-0.030868,-0.040836,-0.053295,-0.060771,-0.053295,-0.03336,-0.052465,-0.052465,-0.050803,0.97673,-0.0209,-0.044158,-0.03419,-0.047481 -0.18663,-0.16608,-0.060805,0.25503,0.26273,-0.17379,-0.16865,-0.078779,0.16259,0.28328,-0.19176,-0.14297,0.008525,0.2576,0.30125,-0.17379,-0.14554,-0.13784,-0.0043139,0.34234,-0.17892,-0.16865,-0.15068,-0.10702,0.36288 -0.15686,-0.15848,-0.15889,-0.15524,-0.15605,-0.15605,-0.15605,-0.15605,-0.15605,-0.15848,-0.15402,-0.1528,-0.15361,-0.15483,-0.14874,0.33383,0.33221,0.27498,0.16621,0.091126,0.31963,0.30705,0.27701,0.16134,0.068803 -0.096737,-0.098526,-0.096737,-0.097248,-0.10236,-0.099549,-0.098526,-0.098526,-0.10006,-0.10032,-0.10006,-0.10083,-0.10006,-0.10134,-0.10108,-0.10006,-0.10057,-0.10185,-0.10262,-0.10262,0.39574,0.39779,0.41364,0.39293,0.39958 0.41261,-0.10734,-0.083753,-0.29712,-0.17135,0.084135,0.079643,0.041461,-0.14215,-0.17696,0.43732,0.076274,-0.051748,-0.12193,-0.1764,0.43282,0.10323,0.011702,-0.11857,-0.16461,0.25371,0.10323,-0.084314,-0.13822,-0.20167 0.14058,0.079101,0.15083,0.13033,0.089348,0.15083,0.18156,0.15083,0.24304,0.17132,0.18156,0.2123,0.14058,0.2123,0.17132,-0.20779,-0.23853,-0.21804,-0.22829,-0.19755,-0.23853,-0.28977,-0.26927,-0.27952,-0.23853 -0.24914,-0.24771,-0.2377,-0.24485,-0.24485,-0.20768,-0.22484,-0.22627,-0.21912,-0.18052,0.174,0.18115,-0.19196,0.17972,0.18973,0.17829,0.17686,0.17114,0.17829,0.18258,0.16972,0.17114,0.17686,0.17543,0.16972 -0.2722,-0.15176,-0.21198,-0.15176,-0.2722,-0.12165,-0.15176,-0.15176,-0.2722,-0.18187,-0.031315,-0.0012044,-0.0012044,-0.0012044,-0.091536,0.17946,0.17946,-0.0012044,0.23968,0.028906,0.14935,0.20957,0.42034,0.33001,0.33001 -0.10177,-0.10177,-0.099949,-0.099949,-0.099949,-0.099038,-0.099038,-0.099038,-0.097215,-0.10177,-0.098126,-0.099493,-0.10086,-0.1004,-0.10086,-0.10268,-0.099038,-0.10177,-0.096759,-0.1004,0.39533,0.40171,0.4049,0.39624,0.40171 0.33635,0.21047,0.26082,0.26082,0.33635,0.10977,0.23564,0.13494,0.08459,0.10977,0.0090632,-0.091639,-0.066464,0.034239,0.034239,-0.16717,-0.16717,-0.16717,-0.016112,-0.19234,-0.31822,-0.19234,-0.24269,-0.34339,-0.19234 0.39309,-0.10421,-0.097944,-0.096294,-0.088704,0.40233,-0.10355,-0.10025,-0.10157,-0.071874,0.39903,-0.10355,-0.10289,-0.10157,-0.098604,0.39837,-0.10421,-0.10289,-0.10355,-0.10157,0.40596,-0.10553,-0.10553,-0.10223,-0.10223 -0.28559,-0.30852,0.13858,0.15004,0.15692,-0.31999,-0.29477,0.15004,0.15004,0.1638,-0.30852,-0.23057,0.15921,0.14316,0.1638,-0.21681,-0.17325,0.15004,0.15692,0.17756,-0.187,-0.033384,0.15692,0.1638,0.17756 -0.095209,-0.095918,-0.096627,-0.097336,-0.098045,-0.098753,-0.099462,-0.098753,-0.099462,-0.099462,-0.10123,-0.10123,-0.10123,-0.10123,-0.1023,-0.10265,-0.10194,-0.10194,-0.10336,-0.10372,0.40168,0.40097,0.39849,0.3999,0.39884 -0.097398,-0.098542,-0.10174,-0.095568,-0.095568,-0.096712,-0.10197,-0.10106,-0.10197,-0.097856,-0.10014,-0.1022,-0.1022,-0.099914,-0.1006,-0.099685,-0.10334,-0.10334,-0.098542,-0.10152,0.4003,0.40121,0.4003,0.39892,0.39915 0.00064117,-0.049451,-0.099542,-0.15564,-0.19371,0.046726,-0.017392,-0.059469,-0.11156,-0.15364,0.074777,0.024685,-0.031418,-0.079506,-0.12359,0.098821,0.046726,0.00064117,-0.049451,-0.097539,0.9063,0.058748,0.040715,-0.0093772,-0.067484 0.26215,0.2633,-0.15166,-0.14821,-0.15224,0.27249,-0.14189,-0.15166,-0.15109,-0.15224,0.27364,0.2633,-0.14936,-0.14476,-0.15396,0.2702,0.26215,-0.14936,-0.14649,-0.15396,0.2702,0.26215,-0.14936,-0.15109,-0.15224 0.1209,0.1209,0.11769,0.11861,0.11769,0.24603,0.2332,0.14978,0.15665,0.16169,0.23503,0.16674,0.14794,0.15161,0.17132,-0.23892,-0.24121,-0.23892,-0.24534,-0.23479,-0.24121,-0.24305,-0.24534,-0.24305,-0.24396 -0.25816,-0.11148,-0.17434,0.16093,0.22379,-0.1953,-0.2372,-0.1953,0.098067,0.30761,-0.30007,-0.13243,-0.13243,0.035203,0.30761,-0.090523,-0.13243,-0.11148,0.22379,0.28666,-0.13243,-0.02766,0.014249,0.24475,0.32857 0.39163,0.4141,0.35953,0.3531,0.31458,-0.10914,-0.10272,-0.073831,0,0.26643,-0.1284,-0.11877,-0.10272,-0.10593,-0.077041,-0.13482,-0.1284,-0.13161,-0.11877,-0.10593,-0.13161,-0.14124,-0.13482,-0.13482,-0.11877 0.097825,0.16937,0.091321,0.13035,0.15636,0.11734,0.11734,0.14986,0.11734,0.10433,0.071808,0.11734,0.078312,0.11083,0.13035,0.032782,0.013269,0.052295,0.052295,0.052295,-0.41602,-0.3835,-0.3835,-0.35748,-0.42252 -0.19366,-0.19481,-0.19596,-0.1925,-0.19481,-0.18905,-0.1902,-0.1902,-0.19135,-0.19596,-0.17639,-0.18905,-0.1856,0.13728,0.13382,0.21555,0.24433,0.23454,0.21958,0.24548,0.21843,0.21612,0.20059,0.20174,0.2121 -0.219,-0.22678,-0.071239,0.099858,0.092081,-0.219,-0.26567,0.10764,0.1543,0.16208,-0.21123,-0.219,0.022087,0.20096,0.18541,-0.219,-0.219,0.092081,0.2554,0.23985,-0.25011,-0.23456,0.23985,0.23985,0.26318 -0.044117,-0.044117,-0.044117,-0.044117,-0.04446,-0.04446,-0.044802,-0.044117,-0.04583,-0.043774,-0.042746,-0.042746,-0.042746,-0.03829,-0.035548,-0.045488,-0.0077869,-0.0071015,0.005237,-0.13391,0.96661,-0.0005895,-0.0036741,0.005237,-0.13254 -0.099746,-0.10278,-0.095572,-0.093674,-0.098228,-0.10013,-0.10013,-0.10013,-0.09709,-0.098608,-0.10202,-0.099367,-0.099746,-0.098987,-0.097469,-0.095192,-0.10202,-0.099746,-0.095192,-0.098228,0.52983,0.40232,0.36248,0.35109,0.32832 0.15055,0.091527,0.086562,0.15055,-0.39612,0.095388,0.093733,0.088769,0.10256,-0.39667,0.096492,0.098147,0.084907,0.13345,-0.40053,0.095388,0.092079,0.087114,0.089872,-0.39998,0.093182,0.088769,0.086562,0.086562,-0.39887 -0.26465,-0.19427,-0.059892,0.036089,0.061684,-0.30304,-0.18147,0.016893,0.12567,0.12567,-0.28385,-0.18147,0.010494,0.19606,0.19606,-0.28385,-0.16867,0.055285,0.26004,0.26004,-0.19427,-0.059892,0.17046,0.31763,0.34323 0.1532,0.14833,0.24337,0.14852,0.14946,0.16891,0.15002,0.14459,0.14253,0.14272,0.1373,0.1373,0.13786,0.13543,0.13804,-0.28287,-0.28268,-0.2853,-0.0041306,-0.0033823,-0.28362,-0.28343,-0.2838,-0.28418,-0.28418 0.42417,-0.10102,-0.10005,-0.096639,-0.099075,0.42807,-0.099563,-0.102,-0.10005,-0.10005,0.43196,-0.10005,-0.095665,-0.10005,-0.099563,0.43002,-0.096639,-0.099563,-0.097614,-0.096152,0.26388,-0.10005,-0.098588,-0.097127,-0.098588 -0.10567,-0.10619,-0.10541,-0.10489,-0.10515,-0.10384,-0.10567,-0.10567,-0.10541,-0.10463,-0.10463,-0.10358,-0.10515,-0.10489,-0.10489,-0.044711,-0.047837,-0.10228,-0.10332,-0.10567,0.34239,0.35333,0.36218,0.46352,0.45805 -0.099202,-0.099202,-0.099202,-0.099202,-0.10007,-0.10019,-0.10031,-0.10019,-0.10019,-0.10081,-0.099696,-0.099696,-0.09982,-0.10007,-0.10019,-0.098955,-0.099326,-0.098955,-0.098955,-0.099326,0.47038,0.38243,0.38095,0.37971,0.38008 0.22298,0.21521,0.14523,0.12968,0.10636,0.18411,0.18411,0.16078,0.15301,0.12191,0.15301,0.083034,0.10636,0.044161,0.10636,-0.11133,-0.08801,-0.08801,-0.072461,0.013062,-0.40678,-0.399,-0.32903,-0.32903,-0.3057 0.22381,0.13036,0.020225,-0.058205,-0.52545,0.2455,0.13203,0.0536,-0.066549,-0.13997,0.23215,0.11367,0.020225,-0.073224,-0.53713,0.20712,0.11868,0.0085439,-0.068218,-0.17335,0.22381,0.10867,0.04025,-0.073224,-0.16334 0.19254,0.19666,0.20079,0.048238,-0.19914,0.19872,0.19872,0.19254,-0.17646,-0.24243,0.20903,0.20491,-0.1476,-0.22387,-0.23418,0.19872,0.20697,-0.14966,-0.21357,-0.24036,0.20903,0.19666,-0.17234,-0.21357,-0.24036 -0.22144,-0.22411,-0.22545,-0.22545,-0.22411,-0.22411,-0.23213,-0.23346,-0.22144,-0.2348,0.15796,-0.20942,0.15796,0.16196,0.15796,0.1633,0.16731,0.16864,0.17399,0.16998,0.19269,0.19536,0.20738,0.19803,0.20338 -0.096014,-0.09709,-0.099422,-0.099063,-0.098346,-0.096911,-0.09978,-0.098346,-0.099242,-0.10157,-0.09996,-0.10211,-0.10175,-0.09978,-0.10355,-0.10014,-0.10157,-0.10175,-0.10014,-0.10337,0.40041,0.39826,0.39898,0.40095,0.40131 -0.048271,-0.060557,-0.043493,-0.049977,-0.05066,-0.059533,-0.057486,-0.055438,-0.046565,-0.042128,-0.054073,-0.054755,-0.052025,-0.051343,-0.047588,0.27219,-0.054755,-0.055438,-0.051343,-0.049295,0.92882,-0.05612,-0.056803,-0.052025,-0.051343 -0.24231,-0.18203,-0.21217,-0.18203,-0.42314,-0.1519,-0.24231,-0.12176,-0.031344,-0.24231,-0.061481,0.05907,-0.0012055,0.05907,0.05907,0.17962,0.14948,0.028932,0.11935,0.028932,0.27004,0.27004,0.30017,0.20976,0.36045 -0.22761,-0.22608,-0.22557,-0.22557,-0.22202,-0.22811,-0.2271,-0.22507,-0.22151,-0.21897,-0.22913,0.16718,0.1682,0.16058,0.16464,0.17379,0.17226,0.17125,0.16871,0.16515,0.19818,0.22765,0.19056,0.17582,0.17277 0.50607,0.25454,0.078476,-0.1479,-0.32397,0.2797,0.10363,0.10363,-0.1479,-0.12274,0.30485,0.078476,-0.1479,-0.097592,-0.22336,0.078476,0.12878,0.0030183,-0.22336,-0.1982,0.12878,0.028171,-0.07244,-0.07244,-0.29881 -0.16827,-0.25922,0.1046,0.19556,0.24103,-0.14553,-0.16827,0.013643,0.12734,0.1046,-0.23649,-0.23649,-0.0090956,0.15008,0.15008,-0.23649,-0.25922,-0.0090956,0.28651,0.21829,-0.21375,-0.3047,0.08186,0.26377,0.30925 -0.36014,-0.33236,-0.27678,-0.16562,-0.36014,-0.026677,-0.2212,-0.026677,-0.11004,-0.13783,-0.026677,0.0289,-0.054466,0.084478,0.0011116,0.16785,0.25121,0.25121,0.084478,0.16785,0.16785,0.25121,0.19563,0.14006,0.30679 -0.15367,-0.15342,-0.15266,-0.15367,-0.15367,-0.15392,-0.15367,-0.15392,-0.15467,-0.15367,-0.15417,-0.15342,-0.15518,-0.15367,-0.15518,0.18214,0.18391,0.22796,0.18214,0.19221,0.019021,0.36943,0.36238,0.37774,0.2116 -0.052644,-0.03248,-0.034447,-0.039365,-0.0433,-0.056579,-0.034447,-0.034939,-0.036906,-0.04625,-0.058546,-0.0433,-0.031004,-0.032971,-0.048218,-0.05953,-0.052644,-0.031988,-0.029037,-0.031496,0.9787,-0.038381,-0.030021,-0.031004,-0.049201 -0.101,-0.10144,-0.10144,-0.10189,-0.101,-0.1001,-0.1001,-0.10055,-0.101,-0.10055,-0.098312,-0.098312,-0.099206,-0.098312,-0.099654,-0.098312,-0.098312,-0.098759,-0.099206,-0.098312,0.34136,0.41405,0.41315,0.40957,0.41762 -0.18778,-0.26603,-0.27581,-0.30026,-0.3296,0.022495,-0.016627,-0.13399,-0.25625,-0.29048,0.1692,0.1203,0.046946,-0.016627,-0.13888,0.22788,0.20832,0.1692,0.13008,0.037166,0.2719,0.25234,0.2181,0.18876,0.14964 -0.48609,-0.38414,-0.24141,-0.22102,-0.22102,-0.11908,-0.20063,-0.078296,-0.057907,-0.057907,0.0032623,0.0032623,0.044042,0.10521,0.064431,0.22755,0.16638,0.14599,0.16638,0.064431,0.26833,0.26833,0.18677,0.20716,0.14599 0.017636,0.017636,-0.00035992,-0.08584,-0.099337,0.031133,-0.013857,-0.018356,-0.08359,-0.092588,0.0063885,0.004139,-0.079091,-0.081341,-0.081341,-0.011607,-0.0048589,-0.047599,-0.072343,-0.074593,0.96017,-0.016106,-0.061096,-0.056597,-0.056597 -0.43306,0.041961,0.12113,0.081546,0.23989,-0.31431,0.022168,0.10134,0.16072,0.22009,-0.37369,-0.13617,0.022168,0.10134,0.18051,-0.31431,-0.057003,-0.017418,0.12113,0.14092,-0.35389,-0.017418,0.061753,0.2003,0.2003 0.23458,0.2386,0.23055,0.24263,0.2547,0.21445,0.23458,0.1742,0.13395,0.1742,0.13395,0.18628,-0.1156,-0.16792,-0.15987,-0.20415,-0.18,-0.1961,-0.15182,-0.17195,-0.24037,-0.2283,-0.2444,-0.19207,-0.20012 0.064091,0.1612,0.10051,-0.10585,-0.19081,0.27044,0.20975,0.1612,-0.16654,-0.22723,0.37969,0.27044,0.12478,-0.1544,-0.25151,0.30686,0.12478,-0.057293,-0.23937,-0.26365,0.076229,-0.020878,-0.10585,-0.19081,-0.27578 0.50602,0.12042,0.10559,-0.087203,-0.13169,0.29839,0.15008,0.090762,-0.16136,-0.20585,0.15008,0.090762,-0.027881,-0.36898,-0.22068,0.15008,0.075932,0.046271,-0.11686,-0.17619,0.15008,0.13525,-0.013051,-0.19102,-0.36898 0.40452,0.027818,0.027818,-0.17502,-0.17502,0.20168,0.14373,0.027818,-0.059113,-0.26195,0.23066,0.027818,-0.14604,-0.059113,-0.26195,0.28861,0.056795,-0.14604,-0.26195,-0.17502,0.23066,0.23066,0.23066,-0.059113,-0.34888 0.57063,0.47281,0.38171,0.25498,0.23717,-0.091616,-0.093368,-0.093952,-0.092784,-0.09366,-0.095704,-0.094536,-0.095704,-0.09658,-0.097456,-0.097456,-0.098332,-0.097164,-0.097164,-0.09658,-0.095996,-0.096872,-0.09804,-0.09804,-0.096288 0.2849,0.33012,0.30751,0.35273,0.48839,-0.0090443,-0.031655,0.036177,0.14923,0.081399,-0.099487,-0.0090443,-0.054266,-0.031655,-0.14471,-0.16732,-0.14471,-0.1221,-0.18993,-0.14471,-0.18993,-0.16732,-0.18993,-0.099487,-0.23515 -0.10591,-0.10742,-0.1029,-0.1044,-0.10591,-0.093843,-0.093843,-0.093843,-0.092334,-0.098369,-0.09686,-0.098369,-0.09686,-0.099878,-0.10139,-0.086299,-0.10893,-0.10139,-0.11346,-0.09686,0.40253,0.39197,0.398,0.39951,0.40705 -0.093128,-0.10249,-0.055663,0.15173,0.20258,-0.32662,-0.10383,0.055395,0.15508,0.16846,-0.32126,-0.11387,0.064092,0.16378,0.1698,-0.31591,-0.16404,0.074128,0.14437,0.24004,-0.31792,-0.32929,0.23469,0.23603,0.18385 0.37277,0.38019,0.47589,0.48249,0.25274,-0.07888,-0.095379,-0.099503,-0.095791,-0.095791,-0.097028,-0.099503,-0.099503,-0.099091,-0.099503,-0.099091,-0.098266,-0.099091,-0.10033,-0.10074,-0.099503,-0.099503,-0.10198,-0.1028,-0.1028 0.41283,-0.098869,-0.088635,-0.11044,-0.076621,0.40393,-0.097089,-0.10287,-0.10376,-0.079291,0.39236,-0.1091,-0.10866,-0.11533,-0.092195,0.38124,-0.10554,-0.10821,-0.11489,-0.085965,0.40616,-0.10821,-0.11578,-0.085076,-0.08997 0.47772,0.40566,0.39366,0.32761,0.38165,-0.11072,-0.086705,-0.10472,-0.098714,-0.092709,-0.11072,-0.092709,-0.098714,-0.086705,-0.11072,-0.10472,-0.0807,-0.098714,-0.086705,-0.11072,-0.098714,-0.092709,-0.092709,-0.11673,-0.11072 -0.2,-0.29395,0.098203,0.18399,0.15539,-0.24493,-0.2817,0.061438,0.18399,0.17173,-0.22859,-0.25719,0.13088,0.18399,0.16765,-0.2531,-0.27761,0.15539,0.17582,0.18807,-0.26536,-0.081536,0.19624,0.16356,0.16765 0.21726,0.16306,0.091209,0.14289,-0.37013,0.12272,0.15171,0.050873,0.049613,-0.40164,0.074823,0.077344,0.055915,0.054655,-0.38778,0.058436,0.077344,0.12272,0.10129,-0.39156,0.069781,0.10507,0.098772,0.076083,-0.41047 -0.099138,-0.098718,-0.098802,-0.099054,-0.09939,-0.098635,-0.098551,-0.09897,-0.098802,-0.099054,-0.098383,-0.098215,-0.098635,-0.098383,-0.098886,-0.096453,-0.096705,-0.097544,-0.09704,-0.098131,0.43385,0.4341,0.43452,0.43209,0.23292 0.36971,0.28012,0.030759,-0.084215,-0.22607,0.063609,0.22338,-0.057338,-0.13946,-0.19322,0.3503,0.27564,0.014335,-0.14842,-0.20815,0.35777,0.050171,0.0053754,-0.18127,-0.22308,0.024787,0.029266,-0.14544,-0.20367,-0.26489 -0.41038,-0.11106,0.10555,0.13312,0.13706,-0.38675,-0.055925,0.097673,0.14493,0.141,-0.39463,-0.0086645,0.12524,0.13706,0.15675,-0.35131,-0.032295,0.1213,0.12918,0.16463,-0.32768,0.070104,0.11736,0.13706,0.16069 -0.1937,-0.014762,0.11944,0.19772,0.17536,-0.30553,-0.059496,0.085889,0.16417,0.18654,-0.31672,-0.093047,0.097073,0.18654,0.17536,-0.3279,-0.20488,0.10826,0.13062,0.14181,-0.50684,-0.1266,0.052339,0.17536,0.15299 -0.26358,-0.20889,-0.23048,-0.18442,-0.13404,-0.22472,-0.19881,-0.16426,-0.18442,-0.14987,0.048767,-0.20169,-0.13835,-0.15275,0.20134,0.23733,0.23301,0.23877,0.20998,0.18407,0.22725,0.21574,0.23733,0.22437,0.17831 0.14244,0.14091,0.14581,0.14227,0.13578,0.14419,0.2816,0.14483,0.14103,0.13604,0.14385,0.28207,0.14453,0.14291,0.13907,-0.24052,-0.24077,-0.2406,-0.24048,-0.2403,-0.24077,-0.24099,-0.24112,-0.24103,-0.24077 -0.37371,-0.14397,0.076198,0.11449,0.11449,-0.345,-0.096109,0.15278,0.14321,0.15278,-0.345,0.028335,0.13363,0.14321,0.1815,-0.35457,-0.16312,0.17192,0.12406,0.16235,-0.29713,-0.11525,0.19107,0.1815,0.16235 0.15954,-0.13053,-0.20305,-0.14503,-0.20305,0.26106,0.11603,-0.15954,-0.24656,-0.14503,0.29007,0.15954,-0.072517,-0.18854,-0.14503,0.33358,0.21755,-0.014503,-0.17404,-0.17404,0.31908,0.34808,0.087021,-0.17404,-0.11603 0.57886,-0.017135,-0.073009,-0.11026,-0.11026,0.54161,0.010802,-0.091634,-0.15682,-0.14751,0.2343,-0.0078224,-0.11957,-0.10095,-0.11026,0.21567,-0.035759,-0.11957,-0.10095,-0.14751,0.24361,-0.026447,-0.12888,-0.10095,-0.11957 0.061609,0.042051,0.076278,0.081168,-0.33934,0.086058,0.086058,0.05672,0.090947,-0.34912,0.090947,0.11051,0.095837,0.086058,-0.47136,0.12517,0.11051,0.12029,0.1154,-0.36379,0.13984,0.13984,0.12517,0.13006,-0.44691 -0.099403,-0.099403,-0.094106,-0.094989,-0.10293,-0.095872,-0.097637,-0.10647,-0.10382,-0.10647,-0.09852,-0.094989,-0.094989,-0.1047,-0.09852,-0.094106,-0.10293,-0.097637,-0.10029,-0.11176,0.39849,0.39849,0.40026,0.40203,0.40026 -0.10637,-0.27085,-0.16119,-0.18861,-0.13378,-0.078952,-0.13378,-0.16119,-0.16119,-0.29826,-0.10637,-0.10637,0.0032897,-0.27085,-0.10637,0.14036,0.30484,0.25001,0.16777,0.16777,0.30484,0.27743,0.30484,0.2226,0.14036 -0.22404,-0.20571,-0.093464,0.17914,0.18143,-0.19197,-0.1851,-0.14386,0.21121,0.19289,-0.20342,-0.16906,-0.14157,0.23183,0.20434,-0.19197,-0.20113,-0.12324,0.2639,0.21121,-0.20113,-0.1599,0.20892,0.33262,0.21808 -0.20333,-0.19994,0.062188,0.062188,0.2119,-0.21124,-0.20616,0.055409,0.053149,0.20907,-0.21858,-0.21011,0.057668,0.20512,0.22658,-0.2135,-0.21576,0.18082,0.27347,0.33957,-0.21802,-0.20955,-0.2248,0.14128,0.25257 0.12856,0.1092,0.14792,0.14792,0.089835,0.206,0.206,0.18664,0.1092,0.1092,0.24472,0.16728,0.12856,0.16728,0.18664,-0.18122,-0.10377,-0.1425,-0.25866,-0.1425,-0.25866,-0.27802,-0.33611,-0.31675,-0.31675 -0.041209,-0.038785,-0.052723,-0.035149,-0.061207,-0.018786,-0.050905,-0.056359,-0.050905,-0.061207,-0.033937,-0.059389,-0.029089,-0.050299,-0.037573,-0.059389,-0.057571,-0.046057,-0.047269,-0.022423,0.96902,-0.060601,-0.048481,-0.042421,0.09272 -0.33287,-0.3019,-0.33287,-0.3432,-0.33287,0.069796,-0.002478,-0.11605,-0.178,-0.29158,0.13175,0.16272,0.13175,0.10077,0.069796,0.1937,0.16272,0.1524,0.16272,0.14207,0.16272,0.14207,0.14207,0.16272,0.14207 0.12494,0.13107,0.13924,0.13107,-0.38986,0.090213,0.11677,0.12494,0.12494,-0.3919,0.075913,0.098385,0.10656,0.094299,-0.3776,0.07387,0.077956,0.090213,0.090213,-0.42459,0.067742,0.067742,0.086127,0.075913,-0.40416 0.39675,0.16786,-0.1119,-0.010173,-0.13734,0.26959,0.19329,-0.21364,-0.1119,-0.13734,0.26959,0.21872,-0.035606,-0.2645,-0.1119,0.26959,0.26959,-0.13734,-0.13734,-0.16277,0.091558,0.11699,-0.23907,-0.21364,-0.23907 0.10706,0.24301,0.091153,-0.016352,-0.28777,0.10128,0.24494,0.081029,-0.26897,-0.27909,0.090671,0.24638,0.087296,-0.27379,-0.28198,0.083439,0.27193,0.10851,-0.014424,-0.26222,0.093081,0.26808,0.079583,-0.2574,-0.25547 -0.047281,-0.049457,-0.043862,-0.048214,-0.044795,-0.050389,-0.051633,-0.019619,-0.044173,-0.038268,-0.052254,-0.054119,-0.02024,-0.019619,-0.041997,-0.052876,-0.055984,-0.023038,-0.026767,-0.041376,0.9781,-0.053187,-0.024903,-0.030497,-0.043551 -0.097237,-0.097871,-0.098293,-0.097871,-0.09935,-0.097659,-0.098505,-0.097871,-0.098082,-0.09935,-0.097448,-0.098293,-0.097659,-0.098505,-0.098082,-0.097659,-0.098082,-0.097659,-0.098082,-0.097448,0.46729,0.46581,0.45863,0.28496,0.28432 -0.30841,-0.45067,-0.22306,-0.39377,-0.22306,-0.16616,-0.16616,-0.052351,-0.10925,-0.080802,0.0045522,0.089906,0.089906,0.14681,0.14681,0.14681,0.14681,0.20371,0.14681,0.20371,0.14681,0.061455,0.23216,0.23216,0.17526 0.086246,0.17865,0.070845,-0.098567,-0.48359,0.11705,0.10165,0.11705,0.0092406,-0.46819,0.024642,0.10165,0.11705,0.10165,-0.29878,0.13245,0.13245,0.13245,0.10165,-0.26798,0.11705,0.11705,0.11705,0.11705,-0.37579 0.2625,0.26139,0.26125,0.26029,0.25987,-0.10421,0.26346,0.26305,0.26263,0.26402,-0.1031,-0.10545,-0.11001,-0.11111,-0.11001,-0.10421,-0.10476,-0.10669,-0.1973,-0.20089,-0.20034,-0.20075,-0.20034,-0.20034,-0.19896 -0.024938,-0.032197,-0.053167,-0.031794,-0.045101,-0.030987,-0.032197,-0.053167,-0.027761,-0.03018,-0.042682,-0.039456,-0.043085,-0.026551,-0.023728,-0.043891,-0.042278,-0.039859,-0.029777,-0.025745,0.97718,-0.043488,-0.055586,-0.076556,-0.083008 -0.30761,-0.28438,0.040891,0.22676,0.27323,-0.33084,-0.16821,0.11059,0.13382,0.18029,-0.37731,-0.14498,0.13382,0.18029,0.15706,-0.28438,0.040891,-0.005576,0.18029,0.18029,-0.26114,0.017657,0.087358,0.040891,0.18029 0.28165,-0.028994,0.0055226,-0.098027,-0.20158,0.35069,0.040039,-0.23609,-0.16706,-0.13254,0.45424,-0.028994,0.040039,-0.06351,-0.06351,0.41972,-0.098027,-0.13254,-0.16706,-0.20158,0.35069,-0.06351,-0.028994,-0.098027,-0.13254 0.039389,-0.099087,-0.052928,-0.083701,-0.099087,-0.083701,-0.0067699,-0.052928,-0.068314,-0.083701,-0.0067699,-0.052928,-0.099087,-0.022156,-0.052928,-0.0067699,-0.068314,-0.0067699,-0.037542,-0.12986,0.90101,0.30095,-0.052928,-0.022156,-0.052928 -0.23435,-0.22312,-0.18945,-0.24557,-0.2119,-0.22312,-0.20068,-0.22312,-0.13333,-0.043547,-0.0098766,-0.0098766,-0.032324,0.057464,0.035017,-0.032324,-0.0211,0.068688,0.068688,0.18092,0.22582,0.3156,0.30438,0.38294,0.39417 0.13415,0.13415,0.13464,-0.26374,-0.26495,0.13391,0.1344,0.13537,0.13343,-0.26665,0.17513,0.13464,0.13488,-0.26713,-0.26568,0.17416,0.16568,0.14385,-0.26398,-0.26592,0.17513,0.17465,0.17513,-0.26786,-0.26738 -0.10132,-0.10272,-0.10272,-0.10365,-0.10085,-0.098523,-0.10272,-0.098523,-0.10179,-0.099922,-0.097124,-0.098523,-0.099456,-0.097124,-0.097591,-0.10225,-0.098523,-0.10132,-0.097124,-0.097591,0.39064,0.39297,0.3967,0.3995,0.41955 -0.037764,-0.039254,-0.034783,-0.028822,-0.0072129,-0.039254,-0.040744,-0.033293,-0.028077,-0.013174,-0.043725,-0.041489,-0.037764,-0.04745,-0.04745,-0.038509,-0.042234,-0.041489,-0.057137,-0.054157,0.97786,-0.060863,-0.059373,-0.058627,-0.045215 0.17821,0.17961,0.17575,-0.22569,-0.22254,0.18031,0.1747,0.174,-0.22359,-0.22289,0.1733,0.17505,-0.22324,-0.22324,-0.22359,0.17926,0.17645,0.17645,-0.22359,-0.22675,0.18101,0.17926,0.17821,-0.23797,-0.2285 -0.023512,0.0083062,-0.10389,-0.12734,-0.14743,-0.016813,-0.016813,0.020029,-0.090497,-0.14743,-0.011789,0.0049569,-0.0050909,-0.016813,-0.088823,-0.018488,-0.023512,-0.028536,0.0066315,-0.062028,0.95112,-0.021837,-0.0050909,-0.015139,-0.020163 -0.24742,-0.20044,-0.18478,-0.34138,-0.20044,-0.12214,-0.20044,-0.20044,-0.059506,-0.090825,-0.075165,-0.059506,-0.090825,0.034451,0.05011,-0.075165,0.05011,0.14407,0.14407,0.19105,0.22236,0.285,0.285,0.31632,0.42594 0.14082,0.15183,0.17882,-0.22213,-0.22984,0.14633,0.17827,0.20416,-0.22599,-0.23094,0.15349,0.19534,0.20195,-0.22709,-0.237,0.15073,0.2003,0.19644,-0.21442,-0.22489,0.17992,0.19424,-0.21662,-0.22103,-0.22268 0.2141,0.21007,0.14501,0.13975,0.13789,0.14749,0.14346,0.14098,0.13262,0.1351,0.14873,0.13138,0.23176,0.13665,0.22959,-0.2503,-0.24193,-0.241,-0.241,-0.24472,-0.24131,-0.24038,-0.24131,-0.24131,-0.24131 0.28919,0.33992,0.28919,0.21309,0.26382,0.16235,0.18772,0.060882,0.060882,0.13698,0.035514,-0.065955,-0.01522,-0.01522,0.060882,-0.19279,-0.01522,-0.091322,-0.091322,-0.16742,-0.24353,-0.31963,-0.31963,-0.26889,-0.29426 0.26596,0.26194,0.26114,0.26114,0.30289,0.26355,0.26355,0.25632,0.26034,-0.13866,-0.1483,-0.1491,-0.17238,-0.13625,-0.14589,-0.1507,-0.15392,-0.15311,-0.14348,-0.14348,-0.15713,-0.1491,-0.14508,-0.15793,-0.15231 -0.19006,-0.20715,-0.14733,-0.053326,0.28851,-0.22424,-0.2157,-0.14733,0.032133,0.23723,-0.17297,-0.1046,-0.13024,0.066316,0.31415,-0.18151,-0.1046,-0.010597,0.16887,0.35688,-0.14733,-0.13024,0.015041,0.32269,0.36542 0.33802,0.26323,-0.14103,-0.14581,-0.14773,0.34966,0.2602,-0.14294,-0.14709,-0.14773,0.34328,0.26147,-0.14215,-0.14773,-0.14805,0.35173,0.0037699,-0.14135,-0.14741,-0.14805,0.0039293,0.0032915,-0.14183,-0.14486,-0.14486 0.32193,0.22246,0.10395,-0.074874,-0.17011,0.3177,0.17908,0.070091,-0.087572,-0.26534,0.28913,0.14628,-0.0018623,-0.098153,-0.30978,-0.12461,0.14839,0.026707,-0.10556,-0.32036,0.18754,0.10395,-0.0018623,-0.17434,-0.38279 0.59393,0.47366,0.3756,0.27384,0.11657,-0.029604,-0.022203,-0.029604,-0.057358,-0.070309,-0.064759,-0.07771,-0.086962,-0.092512,-0.096213,-0.10361,-0.10731,-0.11472,-0.11472,-0.13137,-0.11842,-0.11101,-0.12397,-0.13507,-0.14617 -0.31988,-0.09254,0.14817,0.2819,0.30864,-0.31988,-0.052421,0.054561,0.21503,0.26853,-0.41349,-0.079167,0.054561,0.094679,0.25515,-0.26639,-0.11929,0.054561,0.14817,0.081307,-0.23964,-0.14603,-0.065794,0.054561,0.094679 0.18972,0.24362,0.17175,-0.097734,-0.13367,0.22565,0.18972,0.081924,-0.1696,-0.1157,0.22565,0.17175,0.081924,-0.25943,-0.2235,0.22565,0.24362,0.028027,-0.2235,-0.20553,0.18972,0.045993,-0.24146,-0.31332,-0.33129 -0.39371,-0.39627,-0.40138,-0.39371,-0.33748,0.043348,0.020345,0.010121,-0.0052141,-0.028217,0.11747,0.14559,0.13281,0.11491,-0.00010224,0.13536,0.13281,0.13536,0.14814,0.13536,0.13536,0.13536,0.12769,0.12769,0.15837 0.17223,0.15323,0.17856,0.15323,-0.18236,0.1279,0.15323,0.17223,-0.062053,-0.309,0.1469,0.1469,0.15323,-0.20769,-0.32166,0.12157,0.1279,0.1469,-0.27734,-0.32166,0.13424,0.13424,0.089913,-0.32166,-0.309 0.22814,0.20568,0.070956,0.20568,0.13832,0.18323,0.20568,0.16077,0.20568,0.070956,0.0035927,0.0035927,0.16077,0.22814,0.16077,-0.1985,-0.1985,-0.06377,-0.13113,-0.13113,-0.31077,-0.26586,-0.40058,-0.26586,-0.26586 0.095332,0.096999,0.14983,0.1095,-0.258,0.10667,0.13017,0.1525,-0.26433,-0.2585,0.12367,0.13133,0.155,-0.2615,-0.263,0.12933,0.18416,0.15833,-0.26333,-0.2625,0.29583,0.18183,0.1575,-0.26383,-0.263 0.1109,0.12951,0.1109,-0.29227,-0.29847,0.12951,0.1109,0.1109,-0.21784,-0.31708,0.14812,0.14192,0.14192,-0.19923,-0.31088,0.14812,0.14812,0.14812,-0.025555,-0.31708,0.16673,0.19154,0.17913,0.17913,-0.31708 -0.090132,-0.091282,-0.091282,-0.091282,-0.21094,-0.090789,-0.090954,-0.091775,-0.092597,-0.092104,-0.090296,-0.09046,-0.09194,-0.092104,-0.092433,-0.090132,-0.089146,-0.089803,-0.091118,-0.091118,0.49156,0.49304,0.35826,0.35168,0.24715 -0.077903,-0.15329,-0.10303,-0.14073,-0.090468,-0.19099,-0.17842,-0.19099,-0.19099,-0.15329,-0.22868,-0.15329,-0.16586,-0.1156,-0.077903,-0.065338,0.047747,0.18596,0.24879,0.28648,0.29905,0.29905,0.32418,0.33674,0.24879 -0.32333,-0.21431,-0.21461,-0.21431,-0.2149,-0.21402,-0.21402,-0.21519,-0.21637,-0.21519,-0.21226,0.17739,0.17739,0.17563,0.17739,0.17651,0.17681,0.17563,0.17563,0.17651,0.17651,0.17563,0.17563,0.17622,0.17563 0.15814,0.22723,0.1876,0.16525,-0.25032,0.19167,0.20894,0.18659,-0.25844,-0.25235,0.1429,0.11445,0.099208,-0.27369,-0.27673,0.14493,0.09616,0.10022,-0.25743,-0.28486,0.13477,0.10226,0.10429,-0.25743,-0.25336 0.21453,0.20547,-0.18757,-0.18882,-0.19601,0.21359,0.20484,-0.18851,-0.19101,-0.19538,0.21609,0.20484,-0.1857,-0.18789,-0.20038,0.21484,0.20609,0.19953,-0.19164,-0.19663,0.21359,0.20484,0.19891,-0.19164,-0.19601 0.016345,-0.078816,-0.076017,-0.04523,-0.064821,-0.06762,-0.081615,-0.084413,-0.04523,-0.090011,-0.081615,-0.095609,-0.056425,-0.09281,-0.059224,0.033138,-0.034034,-0.014442,-0.04523,-0.014442,0.95116,-0.011643,-0.00044782,0.033138,0.10591 -0.12952,-0.033342,0.062836,-0.0012824,0.25519,-0.25776,-0.09746,-0.09746,0.12695,0.25519,-0.25776,-0.12952,-0.09746,0.094895,0.35137,-0.35393,-0.28982,-0.0012824,0.22313,0.15901,-0.28982,-0.09746,0.15901,0.12695,0.31931 -0.22767,-0.096069,-0.096069,0.068433,0.39744,-0.35927,-0.12897,0.002632,0.33164,0.068433,-0.26057,-0.096069,-0.063169,0.10133,0.20003,-0.32637,-0.096069,-0.063169,0.16713,0.23294,-0.16187,-0.12897,0.10133,0.10133,0.33164 -0.14256,-0.13264,-0.17235,-0.1922,-0.18228,-0.11278,-0.12271,-0.11278,-0.10285,-0.16242,-0.14256,-0.14256,-0.14256,-0.13264,-0.14256,0.11556,0.11556,0.15527,0.065921,-0.003574,0.37369,0.42333,0.4134,0.35383,0.12549 -0.19438,-0.29851,-0.055537,0.18744,0.29157,-0.29851,-0.055537,0.083305,0.083305,0.18744,-0.33322,-0.090247,0.013884,0.15273,0.29157,-0.19438,-0.19438,0.18744,0.18744,0.083305,-0.29851,-0.19438,0.11802,0.048595,0.29157 0.36273,-0.095642,-0.096882,-0.098536,-0.096882,0.3681,-0.098122,-0.098536,-0.098122,-0.098536,0.36604,-0.097709,-0.098122,-0.1006,-0.097709,0.37596,-0.1006,-0.10184,-0.10143,-0.10184,0.5107,-0.099362,-0.10184,-0.1006,-0.1006 0.17478,0.10134,0.027501,-0.25631,-0.25023,0.25167,0.20298,-0.25712,-0.25651,-0.24921,0.25228,0.24274,-0.020376,-0.2553,-0.25185,0.15308,0.16322,0.010663,-0.0045524,-0.27376,0.34316,0.14679,0.090187,0.00072221,-0.085902 0.068944,0.064491,0.1994,0.101,-0.36741,0.17581,0.06271,0.055141,0.060929,-0.37053,0.17046,0.18026,0.05336,0.06271,-0.4008,0.18827,0.06271,0.065827,0.071615,-0.40169,0.094324,0.062265,0.067163,0.078739,-0.4057 -0.10303,-0.10303,-0.10997,-0.12904,-0.085701,-0.11344,-0.073567,-0.1117,-0.0753,-0.1117,-0.092634,-0.10997,-0.10997,-0.1065,-0.092634,-0.10824,-0.10303,-0.066633,-0.077034,-0.1117,0.40139,0.40139,0.39966,0.39446,0.39793 0.16053,0.14895,0.062964,0.065414,-0.12426,0.15507,0.076663,0.072654,0.070203,-0.44091,0.15006,0.076329,0.075772,0.06753,-0.44113,0.15017,0.078111,0.064523,0.064746,-0.44091,0.14895,0.064746,0.065414,0.068644,-0.44024 -0.20533,-0.20533,-0.22152,-0.23771,-0.23771,-0.18913,-0.23771,-0.23771,-0.25391,-0.2755,0.26427,0.11853,0.10774,0.096942,0.053761,0.31285,0.1887,0.11853,0.096942,0.053761,0.33444,0.2049,0.15092,0.11314,0.086147 -0.13722,-0.29083,-0.36763,-0.36763,-0.41883,-0.0092164,-0.13722,-0.11162,-0.13722,-0.13722,0.19559,0.11879,0.14439,0.067587,-0.0092164,0.11879,0.11879,0.093188,0.093188,0.067587,0.22119,0.24679,0.14439,0.22119,0.27239 -0.39164,-0.25374,-0.33254,-0.39164,-0.27344,-0.13554,-0.076437,-0.13554,-0.076437,-0.056737,0.041765,0.12057,0.15997,0.041765,0.061465,0.23877,0.19937,0.19937,0.15997,0.041765,0.25847,0.25847,0.15997,0.14027,0.041765 0.11574,0.12423,0.11639,-0.091871,-0.25639,0.08832,0.22869,0.22673,-0.015486,-0.25509,0.090278,0.2437,0.22673,-0.27402,-0.26031,0.078527,0.10464,0.2215,-0.28251,-0.27337,0.087014,0.21563,0.10464,-0.2923,-0.27141 -0.21194,-0.065479,0.0068925,0.17576,0.23434,-0.25675,-0.20677,0.18093,0.17748,0.17748,-0.25158,-0.22745,0.1792,0.15853,0.18782,-0.25502,-0.22918,0.18437,0.16542,0.19299,-0.26019,-0.26536,-0.16714,0.19816,0.17748 -0.28434,-0.26148,-0.33005,-0.33005,-0.30719,0.058513,-0.05577,-0.1472,-0.032913,-0.23862,0.035656,0.10423,0.0128,-0.010057,-0.17005,0.14994,0.19565,0.24137,0.12708,0.10423,0.26422,0.21851,0.26422,0.21851,0.1728 0.20061,0.17083,0.14701,0.11127,0.069571,0.18274,0.087441,0.14701,0.099354,0.14701,0.12914,0.12318,0.063615,0.11722,0.081484,0.093397,0.045746,-0.097209,-0.013819,-0.0078625,-0.36525,-0.38312,-0.39503,-0.38312,-0.37121 -0.40939,-0.39193,-0.3963,-0.38321,-0.37448,0.009602,0.018331,0.035789,0.022696,0.009602,0.12744,0.11872,0.12308,0.11872,0.10999,0.10562,0.11435,0.11872,0.11435,0.11872,0.14054,0.13617,0.14054,0.14054,0.13181 0.040602,0.15886,0.2377,-0.12693,-0.30432,0.089877,0.16872,0.20814,-0.17621,-0.25504,0.099732,0.19828,0.20814,-0.25504,-0.32403,0.030747,0.14901,0.2377,-0.11708,-0.29446,0.070167,0.18843,0.20814,-0.1565,-0.28461 0.042929,0.046708,0.047338,0.047968,-0.3948,0.071271,0.068122,0.069382,0.064973,-0.39291,0.10024,0.098984,0.098354,0.097094,-0.39102,0.1267,0.1267,0.12796,0.12544,-0.38913,0.15126,0.15441,0.15378,0.15063,-0.40236 -0.15844,-0.15774,-0.15809,-0.15915,-0.16055,-0.15388,-0.15353,-0.15493,-0.15563,-0.15493,-0.1479,-0.15142,-0.15353,-0.15247,-0.1472,0.3991,0.2389,0.22098,0.21606,0.074831,0.39488,0.24592,0.22765,0.22168,0.079398 -0.12576,-0.07108,-0.12576,-0.12576,-0.12576,-0.15309,-0.18043,-0.043741,-0.15309,-0.15309,-0.043741,-0.15309,-0.15309,-0.12576,-0.016403,-0.043741,0.038274,-0.12576,0.010935,-0.043741,0.31166,0.42101,0.42101,0.39367,0.36633 0.080602,0.10518,0.096821,0.14056,-0.40301,0.081093,0.11206,0.11845,0.12828,-0.40104,0.11255,0.10616,0.084534,0.083059,-0.3981,0.098787,0.081093,0.11943,0.086008,-0.39859,0.069298,0.076179,0.11107,0.10174,-0.3922 0.1432,0.13258,0.11664,-0.27641,-0.35078,0.12727,0.11664,0.12195,-0.090509,-0.38265,0.13258,0.13789,0.15382,-0.069263,-0.42514,0.12727,0.11133,0.10602,0.11133,-0.36671,0.1432,0.13258,0.12727,0.13258,-0.21268 -0.22431,-0.22484,-0.22537,-0.22431,-0.22937,-0.22511,-0.22537,-0.22591,-0.22484,-0.22351,0.17154,0.18459,0.18806,0.18673,-0.22537,0.20804,0.1838,0.18033,0.1774,0.1814,0.1481,0.18166,0.16755,0.16035,0.15876 0.28197,0.24962,-0.14383,-0.14207,-0.14677,0.28315,0.26139,-0.1456,-0.14501,-0.15853,0.28315,-0.16206,-0.15265,-0.15089,-0.16206,0.27374,0.24492,-0.14677,-0.14795,-0.14854,0.27609,0.24257,-0.14736,-0.14971,-0.14677 -0.38548,-0.39175,-0.3828,-0.39175,-0.38101,0.028967,0.035233,0.030757,0.030757,0.037023,0.071038,0.056716,0.026281,0.047765,0.036128,0.14981,0.15787,0.14623,0.15518,0.15697,0.15697,0.14802,0.1516,0.15518,0.15429 -0.35414,-0.32558,-0.35414,-0.26846,-0.15422,-0.068543,-0.15422,-0.097103,-0.068543,-0.097103,0.017136,0.017136,-0.039984,-0.011424,0.017136,0.074255,0.074255,0.18849,0.13137,0.18849,0.074255,0.24561,0.21705,0.38841,0.35985 0.32599,0.30277,0.37242,0.27955,0.18668,0.23311,0.093802,0.16346,0.093802,0.00092874,0.024147,-0.068727,0.093802,-0.045508,-0.11516,-0.1616,-0.1616,-0.068727,-0.18482,-0.11516,-0.27769,-0.25447,-0.27769,-0.25447,-0.18482 0.48456,-0.073727,-0.10872,-0.11372,-0.3587,0.38623,-0.063728,-0.10039,-0.093725,-0.10206,0.36624,-0.048729,-0.068728,-0.087059,-0.10206,0.33291,-0.015399,-0.10039,-0.10039,-0.088726,0.32291,-0.017065,-0.093725,-0.08206,-0.073727 0.20093,0.2021,0.20538,-0.26212,-0.26256,0.20232,0.20684,0.20705,-0.26241,-0.26278,0.11337,0.11293,0.11424,-0.26219,-0.26292,0.11395,0.11395,0.11395,-0.26241,-0.2627,0.11446,0.11395,0.1138,0.1138,-0.26292 0.41906,-0.06039,-0.080792,-0.142,-0.090993,0.38845,-0.080792,-0.142,-0.090993,-0.090993,0.32725,-0.11139,-0.11139,-0.1216,-0.06039,0.40886,-0.090993,-0.11139,-0.142,-0.029787,0.42926,-0.080792,-0.1216,-0.1522,-0.06039 -0.25918,-0.15382,0.083234,0.056894,0.39931,-0.25918,0.0042144,-0.10115,0.056894,0.32029,-0.23284,-0.074805,-0.12749,-0.022125,0.39931,-0.23284,-0.15382,-0.074805,0.056894,0.21493,-0.28552,0.0042144,0.0042144,0.056894,0.32029 -0.18289,-0.24868,-0.31447,-0.31447,-0.24868,-0.18289,-0.24868,-0.051316,-0.051316,-0.084211,0.047368,0.014474,0.047368,0.047368,-0.18289,0.080263,0.14605,0.11316,0.14605,0.047368,0.37632,0.31053,0.21184,0.17895,0.34342 -0.11486,-0.11486,-0.11486,-0.11486,-0.11486,-0.077079,-0.11486,-0.13376,-0.077079,-0.077079,-0.11486,-0.11486,-0.17154,-0.058187,-0.13376,-0.058187,-0.095971,0.017381,-0.077079,-0.095971,0.39522,0.4519,0.37633,0.30076,0.43301 -0.30369,-0.32842,-0.42735,-0.40262,-0.32842,-0.0069246,-0.056386,-0.10585,0.042537,-0.10585,0.042537,0.091998,0.091998,0.16619,0.067267,0.14146,0.067267,0.21565,0.14146,0.11673,0.14146,0.19092,0.11673,0.24038,0.19092 0.29207,0.19591,0.22155,0.27604,0.29848,0.13501,0.16065,0.14463,0.2472,0.10937,0.022822,-0.070133,0.083724,0.10937,-0.16309,-0.03808,-0.17591,-0.24002,-0.20796,-0.17591,-0.20476,-0.27207,-0.31053,-0.2304,-0.20796 0.42947,-0.094799,-0.11409,-0.091906,-0.090942,0.42786,-0.096085,-0.11441,-0.092228,-0.092549,0.30797,-0.096085,-0.11441,-0.091585,-0.094478,0.41179,-0.097371,-0.11312,-0.095764,-0.093835,0.41083,-0.098014,-0.11441,-0.10573,-0.086121 -0.081183,-0.082858,-0.18504,-0.18141,-0.1842,-0.078112,-0.079229,-0.077275,-0.078112,-0.16047,-0.080625,-0.074762,-0.074483,-0.077275,-0.080625,-0.075879,-0.07895,-0.078392,-0.080346,-0.078112,0.40011,0.39034,0.38783,0.38224,0.40681 -0.19566,-0.18073,-0.21807,0.11053,0.23002,-0.24047,-0.17326,-0.13592,0.21508,0.18521,-0.18073,-0.20313,-0.11352,0.20761,0.20761,-0.19566,-0.21807,0.1628,0.25242,0.25989,-0.19566,-0.20313,0.1628,0.20761,0.25242 0.38105,0.35429,0.35429,0.30077,0.35429,0.05994,0.086699,0.14022,-0.020337,0.033181,-0.047096,-0.047096,-0.10061,-0.12737,-0.10061,-0.12737,-0.020337,-0.20765,-0.10061,-0.18089,-0.28793,-0.20765,-0.10061,-0.18089,-0.20765 -0.20342,-0.20112,0.14817,0.22171,0.26767,-0.20342,-0.2264,0.116,0.19413,0.2355,-0.21261,-0.19423,-0.001195,0.26997,0.36189,-0.19882,-0.20801,-0.1115,0.16656,0.22631,-0.19882,-0.20342,-0.13448,-0.033367,0.1229 0.23842,0.036369,-0.16568,-0.16568,-0.16568,0.27209,0.13739,-0.064656,0.036369,-0.16568,0.37312,0.13739,-0.2667,-0.16568,-0.16568,0.37312,0.036369,0.036369,-0.2667,-0.16568,0.37312,0.10372,-0.16568,-0.064656,-0.16568 -0.33461,-0.04249,0.050456,0.11685,0.1434,-0.34788,-0.029212,0.010622,0.13012,0.18324,-0.45411,0.010622,0.09029,0.13012,0.18324,-0.33461,-0.04249,0.077012,0.1434,0.22307,-0.38772,0.077012,0.050456,0.15668,0.19651 -0.20872,-0.19048,-0.15399,-0.19048,-0.062762,-0.20872,-0.062762,-0.1175,-0.17223,-0.062762,-0.13574,-0.15399,-0.15399,-0.1175,-0.1175,0.083196,0.083196,0.028462,0.028462,0.11969,0.35687,0.4116,0.30213,0.4116,0.28389 0.1963,0.18613,0.0030512,-0.1546,-0.20036,0.28275,0.25224,-0.093571,-0.18002,-0.20545,0.32852,0.29292,-0.0071195,-0.16985,-0.18511,0.3336,0.27766,0.023393,-0.20545,-0.18511,0.053905,-0.088486,-0.18511,-0.18511,-0.18511 0.21319,0.09898,0.09898,-0.24364,-0.24364,0.21319,-0.091366,0.022842,0.022842,-0.35785,0.36547,0.21319,0.022842,-0.24364,-0.091366,0.21319,0.022842,0.022842,-0.091366,-0.24364,0.36547,0.09898,0.09898,-0.24364,-0.24364 -0.22607,-0.22756,-0.22756,-0.22855,-0.22756,-0.22657,-0.22806,-0.22558,-0.21864,-0.21864,-0.22607,0.17802,0.18347,0.17603,0.17157,0.16215,0.17851,0.17306,0.17554,0.18149,0.16612,0.18347,0.18942,0.17504,0.18694 0.15424,0.16474,0.17174,-0.19042,-0.3059,0.1455,0.14025,0.15074,-0.21667,-0.30065,0.13325,0.14375,0.14899,0.18224,-0.3094,0.13325,0.142,0.15249,-0.19917,-0.3094,0.12625,0.1385,0.14025,-0.22367,-0.3129 -0.098681,-0.098538,-0.098968,-0.098753,-0.098968,-0.098394,-0.098251,-0.098394,-0.098251,-0.098394,-0.097821,-0.098107,-0.097821,-0.097677,-0.098107,-0.097964,-0.097964,-0.098107,-0.098251,-0.097964,0.55316,0.39147,0.35311,0.33992,0.32773 0.14837,0.23749,-0.036363,-0.12711,-0.20327,0.13865,0.26018,-0.080116,-0.13359,-0.20489,0.43357,-0.052568,-0.073634,-0.1579,-0.19517,0.42871,-0.0039539,-0.06067,-0.15304,-0.19193,0.19536,0.29259,-0.083357,-0.16924,-0.20813 -0.29611,-0.29611,-0.26152,-0.31341,-0.19234,-0.24422,-0.14045,-0.14045,-0.19234,-0.14045,0.1363,0.06711,0.015221,0.015221,0.084406,0.22278,0.29196,0.24007,0.30926,0.20548,-0.0020756,0.1363,0.17089,0.20548,0.119 -0.26946,-0.18731,-0.14623,0.244,0.26453,-0.14623,-0.1257,-0.16677,0.22346,0.30561,-0.043541,-0.16677,-0.1257,0.10023,0.36723,-0.16677,-0.20785,-0.14623,0.1413,0.30561,-0.10516,-0.14623,-0.10516,-0.0024646,0.30561 -0.058278,-0.10453,-0.12766,-0.15849,-0.17391,-0.11224,-0.14307,-0.1662,-0.12766,-0.18162,-0.073695,-0.14307,-0.12766,-0.15078,-0.12766,0.17298,-0.0043169,-0.089113,-0.050569,0.17298,0.47362,0.35799,0.2732,0.31174,0.35799 0.18636,0.031108,0.025358,0.090334,-0.39239,0.10356,0.10298,0.024783,0.091484,-0.39066,0.10183,0.18895,0.086309,0.083722,-0.39296,0.10298,0.18492,0.079984,0.085447,-0.39268,0.10413,0.10298,0.087459,0.094934,-0.39095 0.23867,0.30148,0.34858,0.13661,0.1209,0.30933,0.25437,0.27007,0.19941,0.1209,-0.13033,-0.16958,-0.16958,-0.15388,0.065948,-0.14603,-0.17743,-0.16958,-0.21669,-0.18528,-0.16173,-0.16173,-0.18528,-0.17743,-0.16173 0.31419,0.31148,-0.078546,-0.17334,-0.21397,0.30606,-0.11647,-0.04469,-0.15303,-0.21126,0.30606,0.31012,-0.027085,-0.12053,-0.19637,0.31148,-0.09886,-0.027085,-0.12188,-0.17605,0.29929,-0.03521,-0.046044,-0.1124,-0.20585 0.17602,0.18749,0.17293,0.1844,0.16366,0.1716,0.18264,0.17469,0.18617,0.17116,-0.15504,0.16984,0.17734,0.17513,0.17116,-0.14489,-0.24023,-0.24509,-0.24376,-0.24553,-0.23273,-0.2367,-0.23847,-0.23935,-0.24244 -0.38901,-0.38007,-0.40094,-0.38901,-0.38305,0.028383,0.040308,0.034346,0.010495,-0.058078,0.12975,0.13273,0.12677,0.13273,0.12081,0.11484,0.11186,0.12975,0.11484,0.12677,0.12081,0.11782,0.13273,0.13273,0.14168 -0.36797,-0.3071,-0.39405,-0.35058,-0.41144,0.066776,0.014607,-0.028867,-0.046257,-0.11582,0.17111,0.17111,0.11025,0.058082,0.031997,0.21459,0.16242,0.13634,0.092861,0.075471,0.24937,0.16242,0.13634,0.084166,0.084166 -0.18216,-0.18379,-0.17729,-0.17242,-0.16754,-0.17242,-0.16754,-0.1578,-0.1513,-0.1513,-0.13019,-0.12532,-0.099331,-0.097707,-0.10258,-0.13506,0.30183,0.27097,0.25798,0.23037,0.31157,0.28234,0.26772,0.23524,0.21575 0.28712,0.28741,0.25203,0.25116,0.25212,0.28971,0.276,0.25088,0.2504,-0.1496,-0.14999,-0.1497,-0.15037,-0.1497,-0.14912,-0.15037,-0.14884,-0.1496,-0.15123,-0.15027,-0.14912,-0.14912,-0.14989,-0.14989,-0.14999 -0.21267,-0.19384,0.010169,0.28637,0.25498,-0.22523,-0.21895,-0.087128,0.21104,0.21732,-0.23778,-0.20012,0.12944,0.2644,0.24243,-0.2472,-0.24406,-0.20326,0.12316,0.25184,-0.046326,-0.11851,-0.10596,0.15454,0.19535 0.28347,0.30252,0.29299,0.28664,0.35649,0.15964,0.17869,0.048515,-0.0054611,0.023114,0.019939,0.03264,-0.0054611,-0.014986,0.00088901,-0.078487,-0.11024,-0.10389,-0.11024,-0.11341,-0.28487,-0.28169,-0.28487,-0.29757,-0.29439 0.16767,0.16018,0.15776,0.076525,-0.39502,0.081744,0.15897,0.078567,0.07834,-0.39502,0.081442,0.075995,0.079399,0.079097,-0.39525,0.07539,0.076752,0.081517,0.081971,-0.39533,0.075617,0.079097,0.08061,0.14899,-0.39502 0.33201,-0.094251,-0.092633,-0.093172,-0.10019,0.31906,-0.09587,-0.098568,-0.09641,-0.10073,0.33848,-0.10073,-0.09587,-0.096949,-0.10234,0.53488,-0.10073,-0.09587,-0.098568,-0.09641,0.44046,-0.10666,-0.10558,-0.096949,-0.09641 0.2473,0.26995,0.26995,0.26995,0.20201,0.13407,0.043481,0.088774,0.17936,0.13407,0.043481,0.020835,0.088774,0.11142,0.043481,-0.20563,-0.11504,-0.20563,-0.22828,0.043481,-0.3868,-0.25092,-0.27357,-0.27357,-0.25092 -0.29519,-0.10818,0.078833,0.15076,0.078833,-0.3815,-0.093794,0.1076,0.1076,0.093218,-0.36712,-0.065023,0.12199,0.16515,0.15076,-0.25203,-0.093794,0.15076,0.15076,0.22269,-0.3815,-0.16572,0.15076,0.25146,0.22269 -0.3237,-0.30624,-0.28879,-0.29461,-0.32952,-0.10262,-0.14335,-0.14917,-0.15498,-0.16662,0.17081,0.16499,0.17663,0.15917,0.16499,0.22317,0.1999,0.20571,0.20571,0.1999,0.17081,0.15335,0.08936,0.019548,-0.044447 -0.045238,-0.03415,-0.095132,0.021288,0.010201,-0.03415,-0.061869,-0.11176,-0.017518,-0.00088701,-0.03415,-0.03415,-0.12839,-0.10622,-0.023062,-0.0064308,-0.023062,-0.039694,-0.067413,-0.028606,0.95265,0.071183,0.010201,-0.045238,-0.12839 0.12277,0.13024,0.13397,0.11157,0.12277,0.14891,0.12277,0.13397,0.10783,0.10783,0.12277,0.085431,0.085431,0.066762,0.074229,0.074229,0.066762,0.066762,0.05556,0.040625,-0.39997,-0.3925,-0.40744,-0.38877,-0.3925 0.096519,0.1005,0.09595,-0.18847,-0.35741,0.13292,0.11358,0.097088,-0.18847,-0.36082,0.24555,0.10391,0.10107,-0.18903,-0.17936,0.24897,0.087418,0.087418,0.093106,-0.35741,0.26034,0.10448,0.12496,0.09595,-0.36878 -0.40328,-0.33023,-0.33023,-0.37893,-0.15975,-0.15975,-0.086696,-0.037991,-0.11105,-0.037991,0.083774,-0.037991,0.059421,-0.013638,0.083774,0.22989,0.13248,0.15683,0.059421,0.25424,0.18119,0.20554,0.20554,0.15683,0.2786 0.24892,-0.099373,-0.13328,-0.14252,-0.14252,0.29516,-0.1117,-0.13328,-0.14252,-0.15177,0.3229,0.057823,-0.14252,-0.14252,-0.14252,0.38454,0.25817,-0.13328,-0.13328,-0.14252,0.34447,0.32906,-0.071632,-0.14252,-0.13328 -0.22811,-0.10462,-0.037269,-0.082172,0.36686,-0.26178,-0.082172,-0.048495,-0.0035922,0.28828,-0.22811,-0.048495,-0.093398,0.018859,0.42299,-0.22811,-0.093398,-0.093398,0.018859,0.38931,-0.17198,-0.048495,-0.048495,0.030085,0.36686 -0.099755,-0.098222,-0.10027,-0.10027,-0.099755,-0.10078,-0.10027,-0.098733,-0.10027,-0.099244,-0.10384,-0.099244,-0.098222,-0.099755,-0.098733,-0.10333,-0.098222,-0.096178,-0.10333,-0.098733,0.43224,0.38778,0.37449,0.3796,0.42304 -0.17964,-0.17964,-0.17627,-0.17796,-0.18099,-0.18066,-0.17694,-0.17931,-0.18234,-0.17762,-0.1766,-0.17762,-0.17086,-0.16411,0.23198,0.2178,0.21138,0.22996,0.23266,0.23401,0.20767,0.22658,0.22793,0.22861,0.23198 -0.21053,-0.11978,-0.33152,-0.39202,-0.24077,-0.11978,-0.029038,-0.21053,-0.11978,-0.089534,-0.029038,0.0012099,-0.029038,0.061706,-0.15003,0.091954,0.091954,0.21295,0.15245,0.031458,0.27344,0.30369,0.33394,0.1827,0.33394 0.2149,0.1985,0.19374,-0.19106,-0.19318,0.23103,0.20194,0.19294,-0.19,-0.18762,0.2379,0.22733,-0.18604,-0.18524,-0.1826,0.20009,0.2022,-0.19556,-0.19291,-0.19714,0.20009,0.19347,-0.19609,-0.19714,-0.19952 0.12271,0.1251,0.15837,0.14899,-0.39309,0.11964,0.12561,0.15257,0.1263,-0.39394,0.060094,0.062312,0.062483,0.062483,-0.39326,0.060947,0.057705,0.059582,0.060435,-0.39445,0.12766,0.15462,0.05907,0.062483,-0.39445 0.1768,0.15038,0.15038,0.13277,0.12837,0.15478,0.15919,0.15038,0.12837,0.12837,0.15038,0.12837,0.097555,0.084348,0.057934,0.11516,0.084348,-0.038916,-0.18859,-0.16218,-0.32506,-0.34267,-0.36909,-0.38229,-0.36909 -0.3545,-0.14515,0.20086,0.22412,0.23575,-0.22947,-0.14515,0.029309,0.2532,0.26483,-0.32543,-0.11026,-0.040475,0.20086,0.30845,-0.2411,-0.10154,-0.063736,-0.025936,0.31717,-0.17423,-0.12189,-0.11026,0.075832,0.07874 0.18273,0.12195,0.11182,0.071308,-0.57695,0.16247,0.15234,0.12195,0.081437,-0.40475,0.12195,0.14221,0.091566,0.05105,-0.32372,0.11182,0.061179,0.061179,0.030792,-0.31359,0.10169,0.030792,0.061179,0.030792,-0.28321 0.13272,0.037919,0.16432,0.16432,-0.37287,0.10112,0.069518,0.053718,0.0063198,-0.40447,0.13272,0.14852,0.13272,0.085318,-0.42027,0.085318,0.053718,0.13272,0.085318,-0.35707,0.11692,0.13272,0.053718,0.069518,-0.40447 -0.16041,-0.10694,-0.14258,-0.14258,-0.053469,-0.071292,-0.089115,-0.12476,-0.12476,-0.17823,-0.071292,-0.089115,-0.035646,-0.10694,-0.071292,-0.017823,-0.071292,-0.089115,-0.071292,-0.14258,0.42775,0.35646,0.35646,0.42775,0.39211 0.26469,0.19909,0.15212,0.099481,0.050891,0.28089,0.21286,0.15374,0.11487,0.062228,0.25821,0.20395,0.14726,0.090573,0.050891,-0.23498,-0.23093,-0.22851,-0.2196,-0.22284,-0.23822,-0.24146,-0.24146,-0.23903,-0.2447 0.24174,0.21622,0.1854,-0.19092,-0.19477,0.18636,0.2362,0.18781,-0.19236,-0.19044,0.23596,0.23379,-0.19284,-0.19164,-0.18971,0.19383,0.1931,-0.19092,-0.18995,-0.19044,0.18925,0.19094,-0.19188,-0.19236,-0.19236 0.15392,0.20781,-0.18968,-0.19108,-0.19169,0.21162,0.20921,-0.18988,-0.19048,-0.19309,0.24668,0.22063,-0.19128,-0.19088,-0.19189,0.23125,0.21682,0.21502,-0.19068,-0.19289,0.20721,0.21582,0.15131,-0.19329,-0.19048 -0.18583,-0.21098,-0.20005,-0.19349,-0.14974,-0.13006,-0.1563,-0.17161,-0.12787,-0.11912,-0.12021,-0.096152,-0.11146,-0.11474,-0.1574,0.29865,-0.11146,0.19913,0.20132,0.28881,0.29974,0.31396,0.26584,0.21444,0.27459 0.19574,0.18557,-0.19605,-0.21894,-0.2164,0.19701,0.19829,-0.16297,-0.21131,-0.20495,0.20465,0.20846,-0.16425,-0.19732,-0.20114,0.21355,0.20846,0.21228,-0.16552,-0.20114,0.21991,0.21991,0.225,-0.15407,-0.19478 -0.09386,-0.09386,-0.096302,-0.09386,-0.091419,-0.098744,-0.097523,-0.09386,-0.098744,-0.09386,-0.10607,-0.10851,-0.099965,-0.10119,-0.098744,-0.10241,-0.10119,-0.11095,-0.11095,-0.10729,0.39815,0.40181,0.39937,0.39937,0.40059 -0.045274,-0.050492,-0.054761,-0.049543,-0.057133,-0.058082,-0.048595,-0.060928,-0.05998,-0.057608,-0.060928,-0.049543,-0.063775,-0.062826,-0.061877,0.18669,-0.051915,-0.062826,-0.067095,-0.067569,0.92576,0.17721,-0.057608,-0.069941,-0.071364 -0.070585,-0.061725,-0.044743,-0.046958,-0.01964,-0.062463,-0.048435,-0.043266,-0.042528,-0.016686,-0.057295,-0.034406,-0.038836,-0.038098,-0.016686,-0.057295,-0.035883,-0.039575,-0.04622,-0.014471,0.97711,-0.033668,-0.042528,-0.046958,-0.018163 0.29623,0.23343,-0.014341,-0.15478,-0.27582,0.33505,0.27911,0.0084951,-0.1525,-0.26668,0.31907,0.238,0.033615,-0.14222,-0.25755,0.022197,0.24485,0.073579,-0.1388,-0.27011,-0.014341,-0.018908,-0.030327,-0.11482,-0.23243 -0.23853,-0.24275,-0.24254,-0.23874,-0.15833,-0.23853,-0.24022,-0.24549,-0.23811,-0.15896,-0.16761,0.19583,0.19372,0.097053,0.1036,0.20279,0.20533,0.21292,0.10106,0.10275,0.19731,0.19773,0.21715,0.27666,0.10592 -0.37169,-0.15777,0.069525,0.12301,0.14975,-0.43854,0.016044,0.12301,0.10964,0.13638,-0.34495,-0.024066,0.096266,0.13638,0.17649,-0.2781,-0.077547,0.10964,0.14975,0.14975,-0.37169,-0.024066,0.18986,0.16312,0.18986 0.14527,0.14415,0.14952,-0.26606,-0.26606,0.1465,0.14962,0.14497,-0.26606,-0.26595,0.1486,0.16229,0.165,-0.26595,-0.26636,0.11501,0.1625,0.16454,-0.26626,-0.26636,0.11445,0.16301,0.16357,0.15652,-0.26647 0.097572,0.10348,0.1271,0.14482,0.1271,0.091666,0.091666,0.13301,0.14482,0.13892,0.10348,0.091666,0.11529,0.079853,0.1271,0.050322,0.06804,0.06804,0.038509,0.02079,-0.29815,-0.39265,-0.43399,-0.41037,-0.42809 -0.22293,-0.22293,-0.22644,-0.228,-0.228,-0.22332,-0.22449,-0.22644,-0.22644,-0.22956,-0.22332,0.17688,0.17727,0.17649,0.17805,0.17766,0.17805,0.17649,0.17805,0.17727,0.17923,0.17805,0.17493,0.17766,0.17571 -0.22493,-0.22349,-0.22493,-0.22638,-0.22602,-0.22493,-0.22566,-0.22566,-0.22675,-0.22856,-0.22457,0.17689,0.17653,0.17653,0.17544,0.17616,0.17689,0.17653,0.1787,0.17689,0.17689,0.17943,0.17834,0.17979,0.17689 0.20964,0.22273,-0.19467,-0.1851,-0.18254,0.22943,0.23198,0.24634,-0.18542,-0.18159,0.22177,0.22815,-0.17265,-0.17106,-0.17839,0.22273,0.2256,-0.17233,-0.17106,-0.17042,0.21985,0.22177,-0.17361,-0.17137,-0.16978 0.37587,0.37079,0.37937,0.37905,0.37778,-0.11139,-0.11139,-0.1098,-0.10853,0.23443,-0.1117,-0.11234,-0.11234,-0.10916,-0.11202,-0.11361,-0.11202,-0.1117,-0.11234,-0.11075,-0.1117,-0.1117,-0.1117,-0.11234,-0.11075 -0.096634,-0.094426,-0.087801,-0.092218,-0.10105,-0.10547,-0.10768,-0.10105,-0.094426,-0.10768,-0.10326,-0.096634,-0.087801,-0.096634,-0.10105,-0.10988,-0.094426,-0.11209,-0.10326,-0.10547,0.39802,0.40023,0.40685,0.3914,0.40244 0.18816,0.19173,0.1828,-0.22648,-0.21039,0.18458,0.18995,0.19173,-0.19788,-0.21039,0.18637,0.19352,0.20067,-0.21039,-0.22112,0.18816,0.20246,-0.17286,-0.21039,-0.2372,0.19352,0.19888,-0.17822,-0.19609,-0.22112 -0.22441,-0.2227,-0.22568,-0.22654,-0.22654,-0.22568,-0.22568,-0.22696,-0.22611,-0.22824,-0.22313,0.17467,0.17467,0.18107,0.18107,0.17169,0.1751,0.17681,0.1751,0.18107,0.17126,0.18363,0.17681,0.17851,0.18022 0.37099,0.25857,0.20236,0.25857,0.20236,-0.022484,0.20236,0.20236,0.25857,0.25857,0.005621,-0.1349,-0.1068,-0.078694,-0.1349,-0.1349,-0.078694,-0.1349,-0.078694,-0.050589,-0.27543,-0.21922,-0.21922,-0.30353,-0.24732 -0.090614,-0.085531,-0.094002,-0.094002,-0.083836,-0.094002,-0.099085,-0.097391,-0.097391,-0.099085,-0.10925,-0.10756,-0.10417,-0.10417,-0.10756,-0.10586,-0.10756,-0.10417,-0.11433,-0.099085,0.39905,0.40752,0.39905,0.40075,0.39227 0.18035,0.066686,-0.084873,-0.046983,-0.12276,0.25613,-0.0090935,-0.046983,-0.16065,-0.16065,0.52136,0.10458,-0.046983,-0.12276,-0.31221,0.40769,-0.046983,-0.0090935,-0.0090935,-0.23643,0.33191,0.028796,-0.12276,-0.23643,-0.12276 -0.2416,-0.2418,0.14969,0.1537,0.1533,-0.2424,-0.243,0.14909,0.30307,0.1521,-0.24079,-0.24421,0.14969,0.15049,0.15511,-0.2414,-0.2422,0.14889,0.15129,0.15149,-0.242,-0.2436,0.15149,0.15129,0.1523 -0.34356,-0.37809,-0.38672,-0.39536,-0.39536,-0.050067,-0.0069058,-0.02417,0.010359,0.0017264,0.079417,0.13984,0.10531,0.12258,0.15711,0.14847,0.10531,0.13121,0.13121,0.19164,0.13121,0.14847,0.062152,0.16574,0.14847 0.46446,0.21801,-0.066351,-0.094788,-0.1327,0.47394,0.20853,-0.018958,-0.11375,-0.1327,0.34124,0.037915,-0.094788,-0.16114,-0.14218,0.23697,-0.066351,-0.15166,-0.1327,-0.19905,0.094788,-0.094788,-0.15166,-0.16114,-0.16114 0.31295,0.31656,0.31751,0.097243,0.099285,0.31735,0.31923,0.32143,0.10148,0.10368,-0.1535,-0.15397,-0.15381,-0.1535,-0.15381,-0.15334,-0.15381,-0.15319,-0.15334,-0.15334,-0.15366,-0.15413,-0.15428,-0.15444,-0.1546 0.26289,0.25515,0.26483,0.26289,0.26289,0.27257,0.26676,0.27257,0.27644,-0.14739,-0.16675,-0.13385,-0.12611,-0.13772,-0.13965,-0.16094,-0.14159,-0.15707,-0.1532,-0.14352,-0.16675,-0.14933,-0.15514,-0.16094,-0.15707 0.29667,0.24476,-0.081227,-0.12172,-0.13521,0.30601,0.2458,-0.059425,-0.1186,-0.13625,0.30497,-0.0075164,-0.086418,-0.11341,-0.13002,0.29667,-0.0085546,-0.083303,-0.11237,-0.50999,0.30601,0.00078901,-0.074998,-0.10614,-0.11652 0.29283,0.15355,0.026269,-0.11116,-0.26335,0.28453,0.16093,0.022579,-0.15451,-0.25597,0.30574,-0.1665,-0.15359,-0.11854,-0.25597,0.34817,-0.16374,0.048405,-0.065967,-0.22184,0.31589,0.19598,0.045638,-0.077035,-0.19233 0.23996,-0.13372,-0.16185,-0.14578,-0.14176,0.32033,0.051111,-0.16587,-0.16587,-0.13774,0.41676,0.21184,-0.089524,-0.14176,-0.14578,0.36051,0.26809,0.035038,-0.15783,-0.20203,0.15156,0.17567,-0.065415,-0.10961,-0.26632 0.31398,0.45089,0.3368,0.47371,0.38244,-0.073932,-0.073932,-0.11957,-0.073932,-0.11957,-0.11957,-0.09675,-0.11957,-0.14239,-0.051113,-0.028295,-0.09675,-0.051113,-0.09675,-0.073932,-0.14239,-0.14239,-0.11957,-0.14239,-0.073932 0.94703,-0.004657,-0.007303,-0.054343,-0.060223,0.1888,-0.056401,-0.052579,-0.060811,-0.058459,0.0029871,-0.064339,-0.064633,-0.061399,-0.060223,-0.049051,-0.062281,-0.062281,-0.058459,-0.067279,0.001811,-0.054049,-0.059929,-0.059635,-0.062281 -0.10027,-0.099897,-0.099526,-0.10027,-0.10064,-0.099155,-0.099897,-0.10027,-0.099897,-0.099897,-0.099155,-0.098784,-0.098413,-0.099155,-0.098784,-0.098784,-0.098413,-0.098413,-0.099155,-0.098784,0.4971,0.37317,0.37299,0.37243,0.37187 0.3112,0.31901,0.31682,0.50524,0.50427,-0.094691,-0.096399,-0.095911,-0.095667,-0.097864,-0.095667,-0.09762,-0.097132,-0.097864,-0.098596,-0.097864,-0.097376,-0.099084,-0.099328,-0.09884,-0.098108,-0.09762,-0.099572,-0.1003,-0.10104 0.22082,0.25596,0.2648,0.21338,0.19732,0.22199,0.25596,0.21477,0.21035,0.19266,0.22664,-0.17432,-0.17432,-0.17641,-0.17804,-0.17292,-0.17502,-0.17688,-0.17734,-0.17967,-0.17525,-0.17688,-0.17827,-0.1799,-0.17944 0.3112,-0.002063,-0.1033,-0.11858,-0.13004,0.51368,0.0036675,-0.095661,-0.11094,-0.11476,0.39334,0.03614,-0.10139,-0.14342,-0.16634,0.4984,-0.017344,-0.063188,-0.11667,-0.14724,0.055242,0.013218,-0.070829,-0.1587,-0.16443 0.20824,0.20631,-0.17539,-0.20719,-0.19948,0.20438,0.20631,-0.17635,-0.1831,-0.19948,0.20438,0.21209,-0.18792,-0.1831,-0.20045,0.21209,0.20824,0.21016,-0.19177,-0.19948,0.21113,0.20245,0.21016,-0.1831,-0.20912 0.14042,0.1372,0.13899,-0.26464,-0.27323,0.1372,0.13899,0.14257,-0.26428,-0.26607,0.13863,0.13756,0.14293,-0.26249,-0.26715,0.15475,0.18555,0.14579,-0.26894,-0.26535,0.15761,0.15546,0.16227,0.17982,-0.26356 0.36629,-0.10866,-0.14061,-0.13955,-0.11505,0.37693,-0.10227,-0.14594,-0.12996,-0.11612,0.39184,-0.10227,-0.11505,-0.12464,-0.147,0.40782,-0.087365,-0.085235,-0.02773,-0.10653,0.42592,-0.050093,-0.054353,-0.046899,-0.023471 0.19742,0.18638,0.1643,0.15325,0.075965,0.1643,0.17534,0.13117,0.12013,0.075965,0.15325,0.12013,0.087006,0.0097164,0.0097164,0.12013,0.053882,0.0097164,-0.056532,-0.089656,-0.33257,-0.36569,-0.33257,-0.39881,-0.43194 -0.009808,0.028849,-0.14875,-0.14781,-0.15435,0.36145,0.042668,-0.14277,-0.14389,-0.15491,0.30019,0.3015,-0.14053,-0.14259,-0.1508,0.29739,0.29702,-0.14651,-0.15024,-0.14856,0.29889,0.3015,-0.148,-0.15043,-0.14949 0.15564,0.15437,0.15311,-0.26611,-0.2651,0.15868,0.15083,0.15133,0.13259,-0.26485,0.15311,0.15665,0.1564,-0.26814,-0.26763,0.13867,0.14171,0.15817,-0.26789,-0.26611,0.13234,0.14678,0.15817,-0.26662,-0.26611 0.10729,0.39779,0.20967,-0.12178,-0.33165,0.12393,0.14824,0.20967,-0.094904,-0.29326,0.079138,0.14952,0.19047,-0.12434,-0.34573,0.097054,0.11369,0.085537,-0.10002,-0.35085,0.086816,0.07018,0.093215,-0.096184,-0.3035 0.26439,0.28826,-0.14571,-0.15204,-0.14376,0.2717,0.26731,-0.14766,-0.15253,-0.15788,0.25903,0.26293,-0.15106,-0.14814,-0.15009,0.25952,-0.15009,-0.15009,-0.1496,-0.15155,0.26683,0.25903,-0.1496,-0.1496,-0.1496 -0.28406,-0.28406,-0.34227,-0.080328,-0.37137,-0.080328,-0.19674,-0.022119,-0.13854,-0.13854,-0.051223,-0.022119,0.065193,-0.022119,-0.022119,0.15251,-0.022119,0.23982,0.18161,0.1234,0.23982,0.32713,0.21071,0.23982,0.29803 0.35957,0.13055,0.02521,-0.075394,-0.22689,0.36135,0.12877,0.035862,-0.078353,-0.25471,0.39804,0.14475,0.039413,-0.050539,-0.23991,0.16665,0.14534,0.036454,-0.075394,-0.24228,0.15481,-0.2121,-0.2044,-0.21032,-0.25648 0.2823,0.27988,0.2702,0.2702,0.0016452,0.29439,0.28714,0.28714,0.26536,-0.010452,0.025839,-0.085454,-0.12416,-0.13142,-0.16288,-0.16771,-0.16529,-0.16771,-0.17739,-0.17739,-0.16771,-0.18465,-0.17497,-0.17981,-0.18707 0.098214,0.099068,0.10277,0.11046,-0.41882,0.093943,0.098214,0.10277,0.11131,-0.41882,0.093943,0.095367,0.095367,0.10533,-0.32857,0.093943,0.098214,0.095367,0.10277,-0.40402,0.093943,0.096506,0.096506,0.10903,-0.42281 -0.40638,0.039117,0.14777,0.15864,0.2021,-0.39551,-0.080406,0.14777,0.12604,0.12604,-0.34118,-0.036943,0.10431,0.12604,0.18037,-0.35205,-0.13473,0.13691,0.12604,0.14777,-0.25426,-0.1782,0.12604,0.12604,0.15864 0.39727,0.3876,0.38532,0.39898,0.40467,-0.067081,-0.064235,-0.075048,-0.073909,-0.17577,-0.096103,-0.097241,-0.067081,-0.065374,-0.1752,-0.095534,-0.10122,-0.090412,-0.062528,-0.15073,-0.096672,-0.096103,-0.094965,-0.070495,-0.15813 -0.17592,-0.17592,-0.18418,0.10515,0.22089,-0.16765,-0.21725,-0.20072,0.22915,0.25395,-0.14285,-0.21725,-0.093248,0.24569,0.14649,-0.15938,-0.26685,0.072086,0.25395,0.23742,-0.16765,-0.22552,0.10515,0.22089,0.30355 0.39557,0.4203,0.3214,0.39557,0.39557,-0.049447,-0.049447,-0.049447,-0.049447,-0.049447,-0.12362,-0.049447,-0.049447,-0.12362,-0.12362,-0.049447,-0.19779,-0.12362,-0.049447,-0.19779,-0.049447,-0.12362,-0.17306,-0.049447,-0.19779 0.2789,0.30353,0.22962,0.30353,0.18035,0.13107,0.15571,0.22962,0.10643,0.13107,-0.016753,-0.016753,-0.041391,-0.016753,0.007884,-0.016753,-0.066028,-0.13994,-0.18922,-0.066028,-0.3124,-0.23849,-0.23849,-0.41095,-0.28777 0.16125,0.16217,0.16495,0.14274,-0.3689,0.11036,0.11776,0.11406,0.11684,-0.39018,0.093706,0.096482,0.096482,0.096482,-0.40776,0.0678,0.073351,0.06965,0.073351,-0.39851,0.050221,0.052996,0.052996,0.058548,-0.40684 -0.37629,-0.24286,-0.13166,0.068498,0.29089,-0.1539,-0.087179,0.090737,0.11298,0.26865,-0.30957,-0.087179,0.13522,0.024019,0.29089,-0.30957,-0.087179,-0.10942,0.046258,0.24641,-0.24286,-0.02046,0.11298,0.24641,0.22417 -0.31429,-0.34758,-0.21441,-0.21441,-0.31429,-0.11453,-0.014649,-0.14782,-0.281,0.018644,-0.047943,0.051938,0.085231,0.018644,-0.11453,0.085231,0.085231,0.2184,0.11852,0.11852,0.28499,0.28499,0.2184,0.2184,0.31828 0.26513,0.26917,0.16144,-0.22101,-0.24862,0.23819,0.15874,0.17288,-0.22976,-0.24525,0.20183,0.18635,-0.21091,-0.25131,-0.26612,0.19914,0.046971,0.039564,-0.20754,-0.23919,0.16749,0.13787,0.037544,0.053704,-0.2163 -0.34544,-0.18432,-0.18432,0.17014,0.23459,-0.28099,-0.11987,0.13792,0.10569,0.20237,-0.21654,-0.11987,0.041247,0.041247,0.42793,-0.28099,-0.055425,-0.055425,0.07347,0.36349,-0.18432,-0.087649,0.10569,0.0090227,0.20237 0.25442,0.22933,-0.19761,-0.20666,-0.22064,0.24208,0.22193,-0.19514,-0.20337,-0.22064,0.17915,0.17997,0.18614,-0.20049,-0.2153,0.16393,0.17051,0.17051,-0.19926,-0.21324,0.15242,0.17586,0.15283,-0.19514,-0.2116 -0.22834,-0.16242,-0.25471,-0.22834,-0.32063,-0.070137,-0.10969,-0.14924,-0.24152,-0.25471,0.19354,0.1408,-0.056953,-0.030586,-0.14924,0.27264,0.20672,0.12762,0.088067,0.048516,0.31219,0.33856,0.23309,0.18035,0.11443 0.10722,0.14159,0.14846,0.14159,0.12784,0.093476,0.10722,0.10722,0.1141,0.12784,0.093476,0.10035,0.072856,0.10722,0.10035,0.03849,0.065983,0.031617,0.065983,0.086603,-0.38078,-0.38765,-0.38765,-0.41514,-0.40827 0.48204,0.30144,0.2686,0.2686,0.23577,0.17009,0.21935,0.13726,0.0059106,0.022329,-0.026926,-0.043344,-0.12544,-0.076181,-0.14185,-0.12544,-0.043344,-0.092599,-0.15827,-0.12544,-0.24036,-0.2732,-0.22395,-0.19111,-0.22395 0.25211,0.25336,0.25762,0.25631,0.34094,0.25581,0.25662,0.257,0.2622,-0.13851,-0.14873,-0.14979,-0.15079,-0.14998,-0.13938,-0.15061,-0.15023,-0.15036,-0.15242,-0.15061,-0.15167,-0.1523,-0.1523,-0.15236,-0.15192 0.014214,-0.043437,-0.024545,-0.022265,-0.028942,-0.046205,-0.045716,-0.047508,-0.022591,-0.02878,-0.041482,-0.046368,0.017308,-0.067702,-0.068028,0.01454,-0.048974,0.01796,-0.066725,-0.066725,0.9617,-0.048485,-0.021125,-0.063305,-0.17681 -0.26248,-0.39051,-0.27848,-0.13444,-0.21446,-0.15044,-0.15044,-0.19846,-0.11843,-0.0064018,-0.11843,-0.038411,-0.0064018,0.0096028,0.073621,-0.0064018,0.10563,0.13764,0.15364,0.21766,0.12164,0.28168,0.26568,0.32969,0.37771 0.44575,0.16822,0.073503,-0.063842,-0.23718,0.17106,0.16728,-0.21161,-0.06763,-0.26465,0.18243,0.17864,0.10571,-0.22676,-0.25897,0.17012,0.17012,-0.20687,-0.0089037,-0.27602,0.17012,0.16065,0.093394,-0.1955,-0.23907 0.40379,0.078153,-0.17512,-0.15703,-0.10276,0.3857,-0.030393,-0.048484,-0.030393,-0.22939,0.43997,0.16861,-0.10276,-0.15703,-0.12085,0.22288,-0.048484,-0.084666,-0.15703,-0.15703,0.34952,-0.15703,-0.10276,-0.048484,-0.13894 0.17439,0.1486,0.17439,0.1228,0.20019,0.097,0.1228,0.20019,0.097,0.1228,0.071202,0.1228,0.1228,0.1228,0.1228,-0.0061915,-0.083585,0.071202,-0.083585,-0.10938,-0.41896,-0.44476,-0.28997,-0.28997,-0.36736 0.31411,0.31516,-0.11278,-0.14335,-0.15284,0.32465,0.31305,-0.10646,-0.14019,-0.15389,0.31411,-0.068513,-0.11173,-0.13703,-0.16338,0.30989,-0.054811,-0.10646,-0.13597,-0.17286,0.33097,-0.079054,-0.10435,-0.10857,-0.1697 -0.17739,-0.17644,-0.17644,-0.17739,-0.17613,-0.17581,-0.17581,-0.17644,-0.17644,-0.17581,0.21674,-0.17581,-0.17613,-0.1755,-0.17707,0.25016,0.25363,0.21421,0.21421,0.14485,0.25079,0.25489,0.24764,0.21611,0.20539 0.12469,0.12394,0.12618,-0.23484,-0.23633,0.12319,0.12245,0.12562,-0.23484,-0.23577,0.12599,0.12506,0.12693,-0.23652,-0.23446,0.12861,0.33917,0.12506,-0.23764,-0.23446,0.13365,0.1665,0.33618,-0.2339,-0.23446 -0.31902,-0.048154,0.042135,0.19262,0.28291,-0.34912,-0.19864,0.13242,0.19262,0.16252,-0.31902,-0.13844,0.22271,0.16252,0.13242,-0.28893,-0.048154,0.13242,0.10233,0.19262,-0.28893,-0.22873,0.072232,0.16252,0.042135 0.19749,0.22885,0.22213,0.23612,0.27699,0.1807,0.2294,0.24004,0.2406,0.23052,0.18966,-0.17817,-0.17593,-0.17705,-0.17761,-0.17033,-0.17481,-0.17985,-0.18041,-0.18041,-0.16473,-0.17705,-0.17705,-0.17929,-0.17985 0.1364,0.13755,0.13726,0.13726,0.1364,0.11044,0.11015,0.11101,0.10987,0.10958,0.088467,0.087896,0.088181,0.085613,0.085613,0.063928,0.062501,0.062501,0.062501,0.061645,-0.39718,-0.39718,-0.39718,-0.39775,-0.39547 0.26341,0.26269,-0.14102,-0.1421,-0.14498,0.25909,0.26664,-0.1421,-0.14498,-0.14246,0.25334,0.27383,-0.14785,-0.14641,-0.14102,0.25945,-0.14498,-0.15576,-0.15468,-0.16187,0.28138,0.27779,-0.1554,-0.15864,-0.17338 -0.098505,-0.092571,-0.092571,-0.092571,-0.097022,-0.10147,-0.10147,-0.097022,-0.10741,-0.092571,-0.11334,-0.10444,-0.092571,-0.091087,-0.095538,-0.12076,-0.11037,-0.11631,-0.085153,-0.095538,0.39699,0.39995,0.40144,0.39847,0.40144 0.348,0.34433,-0.070128,-0.11781,-0.09947,0.35167,-0.018779,-0.10314,-0.12881,-0.11047,0.35534,-0.077464,-0.13615,-0.12514,-0.14348,0.35167,-0.09947,-0.12514,-0.12148,-0.14348,0.36634,-0.10314,-0.12881,-0.13615,-0.12881 0.30925,0.30925,0.25872,0.28398,0.10713,0.23345,0.10713,0.18292,0.10713,0.15766,0.08186,0.15766,-0.019202,-0.14553,-0.14553,-0.14553,-0.094998,-0.19606,-0.12026,-0.14553,-0.29712,-0.19606,-0.24659,-0.27186,-0.27186 0.28818,-0.089244,-0.096681,-0.11341,-0.13944,0.28075,-0.059496,-0.12643,-0.12457,-0.14316,0.28818,0.28446,-0.10412,-0.1413,-0.13758,0.46295,0.022311,-0.11713,-0.12643,-0.14316,0.4518,-0.070651,-0.057637,-0.13201,-0.15618 0.21667,0.17446,-0.050649,-0.23355,-0.43052,0.11818,0.21667,0.075973,-0.28982,-0.38831,0.16039,0.10411,0.17446,-0.13506,-0.28982,0.16039,0.10411,0.16039,-0.10693,-0.17727,0.2026,0.16039,0.16039,0.019697,-0.10693 -0.11217,-0.11217,-0.142,-0.072392,-0.17183,-0.1768,-0.1768,-0.19172,-0.18675,-0.18675,-0.12708,-0.13206,-0.11217,-0.10222,-0.16189,0.12152,0.091683,0.061851,0.15632,0.036992,0.31045,0.32039,0.31045,0.50933,0.24581 -0.030015,-0.10387,-0.059557,-0.08319,-0.071373,-0.071373,-0.092053,-0.08319,-0.089099,-0.077282,-0.018198,-0.053648,-0.10387,-0.089099,-0.035923,0.032023,0.10588,-0.065465,-0.030015,0.017253,0.93305,0.14133,0.023161,-0.077282,-0.018198 0.26238,0.37071,-0.17097,0.06819,-0.1587,0.23172,0.26647,-0.14031,-0.1587,-0.17505,0.2358,0.24194,-0.15666,-0.18323,-0.18732,0.29099,0.076367,-0.15461,-0.1587,-0.23842,0.17244,0.039573,0.055926,-0.17097,-0.25886 -0.28751,-0.15742,0.070251,0.10278,0.39549,-0.22246,-0.059844,-0.059844,0.037728,0.36297,-0.35256,-0.15742,0.0052038,0.0052038,0.36297,-0.15742,-0.12489,0.037728,0.037728,0.16782,-0.25499,-0.02732,0.0052038,-0.059844,0.33044 -0.34463,-0.28438,-0.30446,-0.36471,-0.24421,-0.063463,-0.083546,-0.12371,-0.20404,-0.12371,0.11729,0.057036,0.13737,-0.0032133,0.11729,0.077119,0.27795,0.057036,0.057036,0.17753,0.057036,0.25787,0.27795,0.2177,0.25787 0.28829,0.10814,-0.18334,-0.17694,-0.17925,0.28548,0.29034,-0.18334,-0.1772,-0.18002,0.23251,0.22713,-0.18181,-0.17899,0.01601,0.22764,0.22867,-0.18181,-0.18283,-0.01342,0.22816,0.22969,-0.1795,-0.1795,-0.18411 0.062683,0.10829,0.1373,0.11658,0.12487,0.13316,0.11658,0.13316,0.12901,0.10829,0.07512,0.095848,0.099994,0.12487,0.091702,0.079265,0.033663,0.070974,0.066828,0.07512,-0.40163,-0.41407,-0.40163,-0.37676,-0.3892 -0.18426,-0.088621,0.038891,0.30986,0.34173,-0.13644,-0.1205,-0.040804,0.2461,0.3258,-0.16832,-0.2002,-0.1205,0.19828,0.26204,-0.18426,-0.18426,-0.13644,0.038891,0.19828,-0.21613,-0.23207,-0.18426,-0.056743,0.29392 0.20086,0.1242,0.1242,-0.029133,-0.37412,0.23919,0.1242,-0.029133,-0.25913,-0.2208,0.16253,0.20086,-0.14413,-0.029133,-0.25913,0.46919,0.16253,-0.14413,-0.1058,-0.25913,0.23919,-0.029133,0.085865,-0.1058,-0.14413 -0.28042,-0.047707,-0.13498,0.18501,0.27228,-0.16406,-0.16406,-0.10589,0.2141,0.27228,-0.16406,-0.22224,-0.13498,0.12683,0.30137,-0.076796,-0.25133,-0.13498,0.039562,0.41772,-0.10589,-0.16406,-0.10589,0.18501,0.24319 -0.091179,-0.13171,-0.15556,-0.15079,-0.15675,0.0077731,-0.01011,-0.047068,-0.043491,-0.14125,0.0018121,0.0077731,-0.0017644,0.0018121,-0.049452,0.0065809,0.0077731,0.0065809,0.010157,-0.032761,0.93411,0.025656,0.016118,0.017311,-0.031569 0.18617,0.18435,0.16801,0.16801,0.15893,0.19343,0.18798,0.17709,0.17345,0.15893,0.19343,0.18072,0.1789,0.16801,-0.18609,-0.22423,-0.22967,-0.22423,-0.22423,-0.22967,-0.23875,-0.23694,-0.22967,-0.22967,-0.22423 -0.2058,-0.1078,-0.2548,-0.1813,-0.1323,-0.1323,-0.2303,-0.1568,-0.0097999,-0.1568,-0.1568,-0.0588,-0.1323,-0.0343,-0.1078,0.088199,-0.0097999,-0.0097999,0.1862,0.088199,0.3087,0.3822,0.3577,0.2597,0.4067 0.16204,0.093766,0.16204,0.1848,0.16204,0.13928,0.16204,0.11653,0.16204,0.13928,0.093766,0.02549,0.071007,0.093766,0.093766,-0.020028,0.02549,0.0027311,0.02549,0.0027311,-0.33865,-0.4752,-0.38417,-0.29313,-0.40693 0.35534,-0.016744,-0.04,-0.04,-0.10977,0.35534,-0.016744,-0.086511,-0.04,-0.22604,0.42511,0.12279,-0.016744,-0.016744,-0.22604,0.35534,0.029767,-0.10977,-0.22604,-0.04,0.26232,-0.016744,-0.22604,-0.15628,-0.29581 0.21191,0.19649,0.18106,0.18878,0.15793,0.16564,0.18878,0.17335,0.2042,0.17335,0.0037015,-0.011721,-0.011721,0.0037015,0.034547,-0.011721,-0.011721,-0.011721,-0.011721,-0.011721,-0.39729,-0.32789,-0.37416,-0.39729,-0.30476 0.14817,0.14676,0.14596,-0.26291,-0.26644,0.14839,0.14747,0.14839,0.14883,-0.26547,0.14998,0.15166,0.14932,-0.26308,-0.27492,0.15317,0.15307,0.15122,-0.26433,-0.27443,0.1537,0.15292,0.15066,-0.26345,-0.26464 0.24791,0.2854,0.013541,0.016975,-0.2214,0.28254,0.28597,0.016403,0.020123,-0.22111,0.23532,0.14632,0.015544,-0.27348,-0.23571,0.14088,0.15033,0.017548,-0.23399,-0.25145,0.14718,0.1529,-0.28035,-0.23485,-0.22254 0.10699,0.053597,-0.066546,-0.165,-0.20171,0.1704,0.021893,-0.1116,-0.16667,-0.20838,0.54752,0.023561,-0.056534,-0.11327,-0.1917,0.5325,0.065278,-0.03651,-0.09825,-0.17167,0.26218,0.091976,-0.01148,-0.09825,-0.17835 0.39742,-0.073041,-0.10294,-0.065067,-0.2385,0.46719,0.16618,-0.059087,-0.059087,-0.23252,0.17814,0.040587,-0.057093,-0.083008,-0.26043,0.13029,0.038594,-0.088989,-0.1169,-0.18667,0.48513,0.032613,-0.06108,-0.12487,-0.12686 -0.1413,-0.10205,-0.10205,-0.0628,-0.088967,-0.075883,-0.088967,-0.12822,-0.12822,-0.075883,-0.12822,-0.15438,-0.12822,-0.10205,-0.0628,-0.075883,-0.075883,-0.11513,-0.049717,-0.088967,0.31662,0.42128,0.39512,0.42128,0.42128 -0.039676,-0.033836,-0.035394,-0.019044,-0.024494,-0.020601,-0.027219,-0.032279,-0.024104,-0.033058,-0.045515,-0.04824,-0.049797,-0.038508,-0.046293,-0.05875,-0.048629,-0.052133,-0.049408,-0.049408,0.9783,-0.048629,-0.051743,-0.049797,-0.051743 0.16143,0.14505,-0.066418,-0.20045,-0.2064,0.16887,0.18377,-0.11407,-0.2064,-0.20193,0.1659,0.24184,-0.13641,-0.20045,-0.2064,0.22993,0.51586,-0.11854,-0.18109,-0.20193,0.18377,0.22397,0.030379,-0.050037,-0.16024 0.38386,0.10681,-0.10977,-0.14858,-0.12782,0.38205,0.12215,-0.14948,-0.15399,-0.13143,0.13569,0.11584,-0.14316,-0.1558,-0.14497,0.41635,0.13659,-0.11248,-0.13684,-0.10616,0.39018,-0.14497,-0.1558,-0.15399,-0.11428 0.26503,0.26928,-0.1548,-0.15291,-0.15361,0.26739,0.27094,-0.15291,-0.15432,-0.15621,0.26503,0.26787,-0.14912,-0.14912,-0.14605,0.2655,-0.15101,-0.147,-0.14534,-0.147,0.26739,0.26125,-0.14676,-0.14629,-0.14723 0.43414,0.38184,0.43414,0.32953,0.38184,-0.11507,-0.088921,-0.036615,-0.036615,-0.088921,-0.11507,-0.16738,-0.14123,-0.14123,-0.088921,-0.14123,-0.14123,-0.062768,-0.088921,-0.062768,-0.062768,-0.11507,-0.14123,-0.036615,-0.088921 -0.049691,-0.0091821,0.065085,0.30814,0.90228,-0.076698,-0.083449,-0.056443,-0.022685,0.011073,-0.076698,-0.076698,-0.083449,-0.063195,-0.049691,-0.090201,-0.049691,-0.076698,-0.056443,-0.056443,-0.063195,-0.076698,-0.056443,-0.056443,-0.056443 -0.0053984,-0.059383,-0.059383,-0.086375,-0.11544,-0.014742,-0.03862,-0.049001,-0.069764,-0.1497,-0.057306,-0.042772,-0.039658,-0.03862,-0.1196,-0.049001,-0.010589,-0.028238,0.003945,-0.11233,0.87392,0.3673,-0.026162,-0.024085,-0.049001 -0.21737,-0.39126,-0.37677,-0.42025,-0.40575,0.072456,0.014491,-0.086947,-0.086947,-0.086947,0.1594,0.10144,0.14491,0.057965,0.043474,0.20288,0.11593,0.17389,0.14491,0.13042,0.1594,0.10144,0.1594,0.1594,0.13042 -0.3418,-0.037347,0.064139,0.10473,0.3483,-0.3824,-0.077941,0.10473,0.20622,0.26711,-0.26061,0.0032475,0.0032475,0.18592,0.26711,-0.32151,0.0032475,-0.077941,0.064139,0.084436,-0.3621,-0.077941,0.0032475,0.043842,0.18592 0.24727,0.38465,0.33558,0.35521,0.41408,0.060837,0.090274,0.10009,-0.027475,0.12952,-0.086349,-0.017662,-0.11579,-0.11579,-0.11579,-0.086349,-0.26297,-0.17466,-0.16485,-0.11579,-0.15504,-0.18447,-0.15504,-0.22372,-0.11579 -0.178,-0.18606,-0.18257,-0.1785,-0.18232,-0.17808,-0.18723,-0.18507,-0.16661,-0.16685,0.22156,-0.18739,-0.16735,-0.16694,-0.16769,0.22331,0.22688,0.2248,0.22056,0.22289,0.22721,0.22821,0.23129,0.22971,0.22422 0.16486,0.15904,0.090509,-0.28898,-0.28704,0.16033,0.15774,0.10538,-0.29157,-0.28381,0.17132,0.15322,0.10085,-0.29157,-0.2851,0.16098,0.16356,0.1015,0.10344,-0.28834,0.16421,0.16162,0.096328,0.098267,-0.29674 -0.081332,-0.098644,-0.065942,-0.067866,-0.00053862,-0.010157,-0.073637,-0.062095,-0.06979,-0.0043859,0.0033087,-0.065942,-0.098644,-0.09095,-0.031317,0.38419,-0.054401,-0.11211,-0.083255,-0.029393,0.86895,0.011003,-0.02747,-0.054401,-0.085179 -0.27676,-0.01741,0.12016,0.11114,0.11565,-0.27225,-0.17528,0.12467,0.13143,0.12918,-0.2948,-0.22038,0.14271,0.14271,0.14271,-0.28578,-0.26774,0.20135,0.19233,0.19007,-0.28804,-0.24744,0.19909,0.19458,0.20811 0.15903,0.090484,0.12476,0.17617,0.15903,0.17617,0.10762,0.17617,0.17617,0.17617,0.021936,0.15903,0.15903,0.26186,0.17617,-0.28653,-0.21798,-0.14944,-0.14944,-0.06375,-0.32081,-0.37222,-0.28653,-0.2694,-0.18371 0.31212,0.20493,0.33355,0.24781,0.29068,0.26924,0.1835,0.22637,0.033441,0.1835,-0.18092,-0.11661,-0.11661,-0.18092,-0.030869,-0.20236,-0.052305,-0.26667,-0.26667,-0.15949,-0.18092,-0.11661,-0.11661,-0.18092,-0.11661 0.093144,-0.010203,-0.13774,-0.27517,-0.33344,0.15801,0.02388,-0.083865,-0.22129,-0.30155,0.25036,0.11293,-0.020098,-0.12454,-0.25757,0.32293,0.20858,0.075553,-0.055279,-0.15753,0.41528,0.25256,0.16131,0.010686,-0.10695 0.52692,0.32904,0.33109,0.37979,0.40645,-0.089283,-0.093384,-0.091846,-0.094922,-0.095947,-0.09646,-0.096972,-0.097998,-0.097485,-0.1021,-0.09851,-0.09851,-0.10107,-0.10415,-0.10415,-0.099535,-0.10261,-0.10159,-0.10261,-0.10415 -0.1536,-0.23473,-0.31586,-0.23473,-0.23473,-0.12656,-0.045431,-0.12656,-0.045431,-0.20769,-0.045431,-0.12656,-0.045431,-0.12656,-0.045431,0.035696,0.30612,0.14387,-0.045431,0.22499,0.30612,0.30612,0.30612,0.22499,0.30612 -0.15899,-0.22109,-0.17969,-0.096883,-0.15899,-0.096883,-0.096883,-0.24179,-0.11758,-0.20039,-0.076181,-0.05548,-0.034779,-0.096883,-0.11758,-0.05548,-0.05548,0.15153,0.13083,0.0066245,0.25504,0.44136,0.31715,0.37925,0.37925 -0.011125,-0.019553,-0.04905,-0.04905,-0.032194,-0.061692,-0.074333,-0.053264,-0.015339,-0.04905,-0.036408,-0.057478,-0.02798,-0.032194,-0.078547,-0.078547,-0.061692,-0.0069108,-0.053264,-0.074333,0.97072,-0.023766,0.04787,-0.032194,-0.040622 0.10861,0.39896,0.19948,-0.095306,-0.28592,0.15072,0.12855,0.06206,-0.10861,-0.40117,0.15515,0.12412,0.046545,-0.090874,-0.3502,0.1352,0.13077,0.057627,-0.026597,-0.28592,0.12855,0.11969,0.046545,0.044329,-0.39231 0.13865,0.1847,0.17214,0.17214,0.16377,0.12191,0.12609,0.15121,0.15121,0.13446,0.12191,0.13446,0.15121,0.12191,0.10935,0.02562,0.00050236,-0.10416,-0.12927,-0.23393,-0.24649,-0.33859,-0.36371,-0.37627,-0.38882 -0.23623,-0.24902,-0.24902,-0.22855,-0.2439,-0.23623,-0.22599,-0.25158,-0.12876,-0.16458,-0.021289,0.21412,-0.17226,0.1783,0.13736,0.1783,0.23203,0.19621,0.21156,0.20132,0.078503,0.19109,0.18341,0.19365,0.21156 -0.22952,-0.27434,-0.0053793,0.21876,0.286,-0.34158,-0.27434,0.084275,0.084275,0.21876,-0.27434,-0.095034,0.15152,0.084275,0.15152,-0.22952,-0.027793,-0.027793,-0.0053793,0.21876,-0.31917,-0.027793,0.1291,0.21876,0.286 0.20838,0.13299,0.078332,-0.30993,-0.42679,0.21027,0.13864,0.057599,-0.29768,-0.39758,0.20555,0.14241,0.072677,-0.0093108,-0.358,0.19896,0.12734,0.076447,-0.01685,-0.10826,0.20178,0.12639,0.064196,-0.015908,-0.10167 0.45151,0.39038,0.37001,0.33944,0.41076,-0.047677,-0.1088,-0.1088,-0.12918,-0.078239,-0.03749,-0.027302,-0.12918,-0.11899,-0.1088,-0.068052,-0.1088,-0.1088,-0.11899,-0.11899,-0.027302,-0.078239,-0.12918,-0.18011,-0.12918 0.21755,0.2224,0.2439,0.12079,0.092009,0.21824,0.2172,0.067387,0.069468,0.10172,0.21685,0.21477,0.22101,0.067734,0.065307,-0.23258,-0.23536,-0.2357,-0.22981,-0.23536,-0.23674,-0.23605,-0.23813,-0.23848,-0.23813 0.38804,-0.11946,-0.081921,-0.074414,-0.081921,0.38204,-0.092432,-0.12246,-0.057897,0.00066065,0.39255,-0.08042,-0.14348,-0.12697,-0.11796,0.40306,-0.072912,-0.12847,-0.14198,-0.13447,0.40907,-0.077417,-0.08042,-0.14198,-0.098438 0.15872,0.14905,0.14157,-0.26623,-0.26654,0.15685,0.14874,0.14656,-0.26654,-0.26717,0.16152,0.14531,0.14749,-0.26623,-0.26717,0.14874,0.14781,0.14718,0.15311,-0.26685,0.15124,0.14781,0.14781,-0.26498,-0.26779 0.15113,0.15732,0.19443,0.16598,-0.27198,0.10288,0.14866,0.089273,-0.27445,-0.26455,0.13505,0.15237,0.13505,-0.27198,-0.2596,0.15237,0.13752,0.18948,-0.27445,-0.25837,0.14742,0.17216,0.15484,-0.24352,-0.26703 0.20234,0.19352,0.19352,-0.16339,-0.21626,0.19352,0.19132,0.18471,-0.19423,-0.22067,0.19132,0.19352,0.20454,-0.20965,-0.22728,0.19352,0.18031,-0.18101,-0.21846,-0.22507,0.19573,0.1737,-0.19643,-0.22067,-0.21846 -0.091677,-0.16981,-0.27399,-0.065632,-0.16981,-0.19585,-0.11772,-0.065632,-0.24794,-0.11772,-0.2219,-0.039588,-0.14377,-0.19585,-0.11772,0.11668,0.090635,0.090635,0.14272,0.29899,0.29899,0.29899,0.29899,0.22086,0.37712 0.3109,0.29366,0.29366,0.3109,0.2592,0.10409,0.052391,0.086858,0.10409,0.17303,0.052391,0.086858,0.052391,-0.051012,-0.13718,-0.17165,-0.13718,-0.08548,-0.051012,-0.20612,-0.27505,-0.27505,-0.20612,-0.24058,-0.34399 -0.22824,-0.16189,0.16985,0.07033,0.30255,-0.22824,-0.19507,-0.029194,0.1035,0.26938,-0.12872,-0.095542,0.0039809,0.20303,0.07033,-0.32776,-0.29459,0.1035,0.16985,0.30255,-0.22824,-0.16189,-0.16189,0.16985,0.30255 -0.17426,-0.16835,-0.16835,-0.16599,-0.16008,-0.13882,-0.1589,-0.16717,-0.16599,-0.16244,-0.13055,-0.13173,-0.12464,-0.12346,-0.12346,0.30887,0.27462,-0.11283,0.238,0.2191,0.33013,0.28525,0.25926,0.24745,0.21437 0.13702,0.18866,0.1198,0.1198,0.1198,0.1198,0.1198,0.068165,0.2403,0.10259,0.1198,0.10259,0.15423,0.18866,0.1198,-0.035115,-0.069542,0.016525,-0.086755,-0.00068853,-0.29332,-0.3966,-0.37938,-0.37938,-0.3966 0.23275,0.23235,0.16392,0.080061,-0.0037974,0.23196,0.23196,0.22563,0.10379,0.015981,0.23196,0.23196,0.18844,0.080457,0.021123,-0.18219,-0.22175,-0.18655,-0.15846,-0.15648,-0.28346,-0.28187,-0.27594,-0.26843,-0.25339 -0.28867,-0.29709,-0.28026,-0.29148,-0.29989,0.16851,-0.25502,-0.19331,-0.21575,-0.22977,0.18815,0.18534,0.12925,0.07315,0.028273,0.18815,0.18815,0.15449,0.14047,0.13486,0.1629,0.1629,0.15449,0.14888,0.14327 -0.15632,-0.15015,-0.15375,-0.14706,-0.14552,-0.14603,-0.14809,-0.15169,-0.14912,-0.145,-0.14912,-0.15478,-0.15015,-0.1378,-0.1342,0.14263,0.13852,0.29186,0.30009,-0.13471,0.29083,0.29443,0.29237,0.29957,0.30318 0.28888,0.31583,0.26193,0.31583,0.28888,0.20804,0.23499,0.019403,0.10025,0.019403,-0.0075454,-0.0075454,0.046351,-0.034493,-0.034493,-0.14229,-0.30397,-0.14229,-0.19618,-0.14229,-0.27703,-0.11534,-0.19618,-0.19618,-0.30397 -0.39392,0.01464,0.15083,0.082733,0.15083,-0.34285,-0.044941,0.1338,0.14231,0.15934,-0.37689,-0.0023833,0.1338,0.1338,0.091245,-0.39392,-0.027918,0.1338,0.15083,0.14231,-0.36838,-0.096011,0.1338,0.15934,0.1338 0.44957,0.16272,-0.019819,-0.045896,-0.1502,0.39741,-0.071973,0.0062585,-0.045896,-0.25451,0.29311,0.032336,-0.12413,-0.17628,-0.22844,0.39741,-0.1502,-0.09805,-0.09805,-0.071973,0.24095,-0.071973,-0.071973,-0.071973,-0.22844 -0.21296,-0.30397,-0.21296,-0.23571,-0.1447,-0.0992,-0.21296,-0.1447,-0.19021,-0.1447,0.060066,-0.0992,-0.12195,-0.0992,0.060066,0.17383,0.24208,0.15107,0.12832,0.037314,0.31034,0.082818,0.28759,0.26484,0.4241 -0.083392,0.018306,-0.0071188,0.14543,0.27255,-0.10882,-0.21051,0.04373,0.17085,0.24712,-0.26136,-0.10882,-0.13424,0.27255,0.2217,-0.31221,-0.23594,-0.083392,0.19628,0.17085,-0.31221,-0.31221,-0.032543,0.17085,0.27255 -0.40075,-0.091031,0.04363,0.084029,0.15136,-0.36036,0.0032319,0.15136,0.12443,0.20522,-0.36036,-0.010234,0.15136,0.19176,0.11096,-0.33342,-0.1045,0.097495,0.19176,0.15136,-0.36036,-0.064099,0.13789,0.16483,0.12443 -0.10368,-0.099281,-0.10515,-0.10515,-0.10075,-0.09048,-0.099281,-0.09488,-0.086079,-0.093413,-0.097814,-0.10221,-0.09048,-0.099281,-0.096347,-0.12128,-0.10808,-0.10515,-0.096347,-0.10368,0.39654,0.40094,0.39507,0.40094,0.40534 0.17542,0.15558,0.19527,0.15558,0.19527,0.11589,0.096047,0.19527,0.19527,0.13574,0.19527,0.11589,0.11589,0.13574,0.21511,-0.32069,-0.281,-0.18177,-0.18177,-0.20162,-0.32069,-0.24131,-0.24131,-0.22146,-0.20162 0.2277,0.0552,0.0552,-0.14605,-0.26105,0.14145,0.25645,0.08395,-0.03105,-0.31855,0.2277,0.1702,0.14145,-0.2323,-0.4048,0.14145,0.19895,0.1127,0.08395,-0.31855,0.25645,0.0552,-0.14605,-0.1173,-0.2323 -0.24456,-0.2452,0.21253,0.15229,0.15484,-0.2452,-0.2452,0.19723,0.15069,0.15292,-0.24456,-0.2452,0.15547,0.15165,0.15675,-0.24265,-0.24328,0.14942,0.15579,0.17141,-0.24328,-0.24456,0.15229,0.16185,0.16854 -0.38349,-0.42016,-0.42016,-0.34683,-0.34683,-0.016865,-0.035196,0.056461,0.093123,-0.016865,0.074792,0.093123,0.093123,0.11145,0.056461,0.11145,0.093123,0.16645,0.12979,0.16645,0.16645,0.14812,0.16645,0.16645,0.093123 0.1459,0.14158,0.13725,0.1286,0.1286,0.1459,0.13581,0.10985,0.096865,0.093981,0.079558,0.079558,0.083884,0.076673,0.073788,0.06225,0.066577,0.069461,0.060808,0.063692,-0.38198,-0.39352,-0.40073,-0.40361,-0.40073 -0.080968,-0.025354,-0.057439,-0.026067,-0.029632,-0.07669,-0.051022,-0.045318,-0.031771,-0.030345,-0.086672,-0.023215,-0.049596,-0.030345,-0.026067,-0.063856,-0.030345,-0.032484,-0.030345,-0.029632,0.9757,-0.027493,-0.031771,-0.029632,-0.029632 0.028402,0.15266,0.20236,0.18461,0.17751,0.0035502,0.18816,0.18461,0.18461,0.16686,0.14556,0.18461,0.19881,0.18816,0.18461,-0.20591,-0.19526,-0.21656,-0.22721,-0.19526,-0.26982,-0.26982,-0.26982,-0.25917,-0.26627 0.25713,0.26224,-0.16033,-0.1606,-0.16813,0.25497,0.26251,-0.15737,-0.16437,-0.16087,0.25928,-0.14122,-0.15575,-0.16383,-0.1649,0.25982,0.27435,-0.15602,-0.15387,-0.16544,0.25578,0.27597,0.020003,-0.1423,-0.16706 0.035269,0.032786,-0.070601,-0.072153,-0.074948,0.029371,0.030612,-0.061287,-0.074948,-0.073085,0.030302,0.030612,-0.070911,-0.073706,-0.073706,0.031854,-0.051973,-0.068428,-0.071532,-0.070601,0.95457,-0.063771,-0.067807,-0.067807,-0.068117 0.31106,0.31894,0.32819,0.19088,0.18299,0.32655,0.32112,0.18761,0.18299,-0.13432,-0.14438,-0.14574,-0.14764,-0.14819,-0.14601,-0.14628,-0.14683,-0.149,-0.14846,-0.14955,-0.14764,-0.14791,-0.149,-0.14982,-0.14955 0.12525,0.057181,0.19333,0.057181,0.19333,0.2614,0.19333,0.19333,0.19333,0.12525,0.12525,0.19333,0.057181,0.19333,0.057181,-0.078964,-0.078964,-0.14704,-0.14704,-0.14704,-0.35125,-0.37394,-0.26049,-0.30587,-0.32856 0.17639,0.2479,0.22406,0.34325,0.34325,0.20023,0.15255,-0.014302,0.20023,0.15255,0.033371,-0.038139,-0.014302,0.0095346,-0.014302,-0.13348,-0.10965,-0.085812,-0.061975,-0.15732,-0.2765,-0.32418,-0.25267,-0.30034,-0.30034 0.32352,0.28582,0.26696,0.19155,0.11614,0.30467,0.22926,0.11614,0.097283,-0.015837,0.097283,0.11614,0.040723,-0.015837,-0.053543,-0.053543,-0.18552,-0.20437,-0.14781,-0.24208,-0.18552,-0.20437,-0.24208,-0.31749,-0.31749 0.12297,-0.036731,-0.076657,-0.076657,-0.2164,0.18286,-0.036731,-0.15651,-0.15651,-0.2164,0.30263,0.083045,-0.096619,-0.13654,-0.17647,0.50226,0.12297,-0.056694,-0.15651,-0.15651,0.50226,0.14293,0.063082,-0.17647,-0.096619 -0.21724,-0.19086,-0.11832,0.15538,0.12241,-0.17108,-0.20405,-0.16119,0.21474,0.2642,-0.12821,-0.17438,-0.15129,0.17187,0.27409,-0.11832,-0.148,-0.1381,0.32026,0.29388,-0.085341,-0.18427,-0.18427,0.25431,0.30377 0.17305,0.2071,-0.10572,-0.10785,-0.11849,0.21986,0.21773,-0.15253,-0.15679,-0.16317,0.29009,0.31775,-0.15679,-0.1653,-0.16105,0.30285,0.33052,-0.16743,-0.16956,-0.14189,0.2986,-0.10359,-0.17169,-0.16317,-0.15253 -0.46354,-0.13086,0.0077627,0.17411,0.20183,-0.38037,-0.15858,0.063211,0.090934,0.22955,-0.10313,0.035487,0.14638,0.090934,0.17411,-0.21403,-0.10313,0.035487,0.090934,0.285,-0.38037,-0.10313,0.0077627,0.14638,0.25728 0.18355,0.38193,0.30014,-0.051369,-0.27759,0.22009,0.20791,0.032158,-0.2219,-0.25149,0.23053,0.24098,-0.032228,-0.18536,-0.24627,0.14353,0.037378,-0.042668,-0.21668,-0.21494,0.14353,0.10698,-0.084432,-0.18536,-0.21842 -0.13781,-0.13398,-0.14548,-0.14356,-0.14356,-0.1359,-0.13206,-0.13781,-0.13973,-0.13973,-0.13015,-0.13206,-0.13015,-0.099488,-0.11482,0.069136,-0.0055952,-0.087991,-0.049667,0.30099,0.35081,0.35081,0.35656,0.33932,0.37189 0.43081,0.16908,-0.11444,-0.11308,-0.11512,0.42843,-0.11614,-0.11444,-0.11444,-0.11512,0.41686,-0.1141,-0.11376,-0.11376,-0.11478,0.41005,-0.11308,-0.11444,-0.11308,-0.11478,0.10713,0.10509,-0.11104,-0.10968,-0.13214 -0.069877,-0.06353,-0.077225,-0.074553,-0.05852,-0.073551,-0.064198,-0.073551,-0.070545,-0.057852,-0.071213,-0.067205,-0.068207,-0.070879,-0.055514,0.22339,0.051372,-0.062528,-0.065534,-0.055848,0.92517,0.050704,0.053042,-0.050504,-0.052842 -0.093832,-0.093832,-0.09259,-0.09259,-0.091347,-0.094143,-0.0929,-0.096318,-0.093832,-0.093832,-0.095075,-0.093832,-0.093832,-0.091658,-0.091968,-0.091968,-0.093211,-0.088861,-0.090725,-0.091658,0.60836,0.49744,0.3396,0.27466,0.13795 0.28796,0.40289,0.26706,0.29841,0.23572,0.026748,0.068541,0.15213,0.13123,0.099886,-0.0045973,-0.035942,0.026748,0.068541,0.068541,-0.21356,-0.15087,-0.20312,-0.27625,-0.10908,-0.24491,-0.26581,-0.2867,-0.20312,-0.14043 -0.034835,-0.0060212,0.0014308,-0.067624,-0.08849,-0.034339,-0.0249,-0.0060212,0.019316,-0.080541,-0.030364,-0.029371,-0.0055244,-0.079547,-0.095942,-0.030861,-0.025893,-0.0080084,-0.019435,-0.092961,0.96472,-0.018441,-0.015957,-0.085509,-0.10488 0.28926,0.029304,0.029304,-0.13612,-0.20702,0.26563,-0.13612,0.076569,-0.15975,-0.25428,0.43105,-0.017961,-0.088857,-0.15975,-0.18339,0.52558,0.076569,-0.041593,-0.13612,-0.18339,0.14747,0.1002,0.0056717,-0.065225,-0.20702 0.33921,0.33997,-0.078724,-0.19537,-0.15889,0.35479,-0.078724,-0.078914,-0.079104,-0.14901,0.35593,-0.077774,-0.077964,-0.078724,-0.14939,0.3565,-0.077774,-0.078344,-0.14654,-0.14787,0.35726,-0.078154,-0.078914,-0.1473,-0.14616 0.25976,0.25868,0.26379,0.27185,0.28797,0.25868,0.26137,0.2662,0.27077,-0.14949,-0.14653,-0.1468,-0.14707,-0.14949,-0.1511,-0.14841,-0.14895,-0.15003,-0.15218,-0.15271,-0.14868,-0.15003,-0.15218,-0.15271,-0.15271 0.26808,0.26836,0.26863,0.26344,0.26426,0.26617,0.26481,0.26617,0.26999,-0.15116,-0.14706,-0.14815,-0.1487,-0.14979,-0.15006,-0.14979,-0.1487,-0.15061,-0.14979,-0.15088,-0.15143,-0.15034,-0.15061,-0.1517,-0.15116 -0.21139,-0.11988,-0.16564,-0.23427,-0.14276,-0.16564,-0.21139,-0.23427,-0.16564,-0.097003,0.017387,-0.028369,-0.14276,-0.028369,-0.18852,0.22329,0.086022,0.086022,0.063144,0.086022,0.40631,0.24617,0.42919,0.3148,0.17753 -0.10792,-0.14924,-0.20237,-0.22008,-0.23779,-0.084302,-0.096109,-0.14924,-0.18466,-0.13153,-0.001653,-0.042978,-0.10792,-0.14924,-0.12563,0.2463,0.15184,0.033768,-0.025267,-0.11382,0.34075,0.35846,0.37617,0.32304,0.29943 -0.20282,0.017637,0.049131,0.14362,0.39557,-0.26581,-0.17133,-0.10834,-0.013858,0.42707,-0.29731,-0.20282,-0.045352,-0.013858,0.2066,-0.13984,-0.045352,-0.10834,0.11212,0.26959,-0.23432,-0.13984,-0.076847,0.14362,0.30109 0.20365,0.14268,0.23414,0.23414,0.24938,0.17316,0.24938,0.14268,0.20365,0.17316,-0.055485,0.06646,-0.040242,0.020731,0.020731,-0.085972,0.0054875,-0.070728,-0.085972,-0.16219,-0.28413,-0.32986,-0.34511,-0.32986,-0.32986 -0.090608,-0.069856,-0.069856,-0.074645,-0.047507,-0.085819,-0.08103,-0.055489,-0.069856,-0.060278,-0.074645,-0.074645,-0.047507,-0.055489,-0.010791,-0.065067,0.0099612,-0.01558,-0.025158,0.029117,0.96138,0.024328,0.0083648,0.0083648,0.03231 -0.19707,-0.17468,-0.19707,-0.24186,-0.062704,-0.12989,-0.21946,-0.17468,-0.12989,-0.12989,-0.17468,-0.085098,-0.17468,-0.12989,0.071662,0.16124,0.026873,0.049267,0.13884,0.20603,0.34039,0.25082,0.20603,0.36279,0.40758 -0.17999,-0.17999,-0.17999,-0.20794,-0.31974,-0.29179,-0.15204,-0.12409,-0.20794,-0.20794,0.043601,0.07155,-0.040247,-0.040247,0.07155,0.099499,-0.012298,0.12745,0.23924,0.043601,0.26719,0.35104,0.32309,0.35104,0.1554 0.32396,0.096886,-0.016652,-0.20588,-0.054499,0.096886,0.13473,-0.16804,-0.20588,-0.24373,0.24827,0.28612,-0.13019,-0.13019,-0.28158,0.39966,0.021194,-0.016652,-0.16804,-0.16804,0.39966,-0.016652,0.05904,-0.054499,-0.20588 -0.17025,-0.17282,-0.17641,-0.18103,-0.17949,-0.17744,-0.17641,-0.17744,-0.18103,-0.18822,-0.17693,-0.17333,-0.17693,-0.17384,0.22816,0.22303,0.22508,0.22765,0.22868,0.22457,0.22457,0.2256,0.22611,0.2256,0.22252 0.26694,0.26694,0.2662,0.2662,0.26743,0.26669,0.26669,0.26669,0.2662,-0.14991,-0.14941,-0.14892,-0.14991,-0.14991,-0.14991,-0.14991,-0.15065,-0.15015,-0.14966,-0.15139,-0.14966,-0.1504,-0.14991,-0.15015,-0.15015 -0.39653,-0.2675,0.13083,0.12522,0.18693,-0.39092,-0.12724,0.10839,0.12522,0.18693,-0.36287,-0.059917,0.10839,0.14766,0.17571,-0.33482,0.029846,0.057898,0.11961,0.19815,-0.20017,0.024236,0.114,0.10839,0.19254 0.25829,0.35187,-0.11604,-0.25642,-0.16283,0.23489,0.28168,0.11791,-0.13944,-0.20963,0.23489,0.32848,-0.092647,-0.20963,-0.25642,0.071123,0.071123,0.024331,-0.18623,-0.18623,0.2115,0.024331,0.00093583,-0.13944,-0.25642 0.19167,0.090579,0.1108,-0.13183,-0.5362,0.21189,0.23211,0.050142,-0.050951,-0.35423,0.19167,0.19167,0.070361,0.029923,-0.31379,0.090579,0.15123,0.1108,-0.11161,-0.19248,0.090579,0.070361,0.1108,0.029923,-0.33401 0.38426,0.29925,0.3205,0.27799,0.49053,0.06546,0.022954,0.044207,-0.040806,0.17173,-0.21083,-0.14707,-0.16833,-0.10457,-0.083313,-0.10457,-0.12582,-0.10457,-0.10457,-0.10457,-0.10457,-0.10457,-0.16833,-0.23209,-0.16833 0.15054,0.15054,0.18592,0.15054,0.12225,0.15054,0.17884,0.18592,0.17177,0.065651,0.13639,0.15054,0.16469,0.19299,-0.012168,-0.068763,-0.061689,-0.04754,-0.068763,-0.14658,-0.32344,-0.33052,-0.35174,-0.35174,-0.39419 0.35481,0.39058,0.41204,0.39773,0.41204,-0.10301,-0.074396,-0.12447,-0.10301,-0.081549,-0.0028614,-0.060089,-0.10301,-0.14593,-0.16024,-0.095856,-0.088703,-0.081549,-0.038629,-0.081549,-0.067242,-0.13878,-0.14593,-0.14593,-0.12447 0.42522,0.28548,0.055898,-0.0089836,-0.11379,0.34537,0.17069,0.055898,-0.068874,-0.21361,0.40027,-0.058893,-0.058893,-0.18367,-0.24855,0.18067,-0.048911,-0.09882,-0.15871,-0.21361,0.1108,0.030944,-0.1088,-0.20363,-0.2735 -0.29731,0.0068122,0.049389,0.12238,0.1832,-0.40679,0.00072988,0.061553,0.12846,0.1832,-0.42504,0.018977,0.067636,0.12846,0.19537,-0.32163,0.012895,0.049389,0.12846,0.19537,-0.4372,0.00072988,0.049389,0.15279,0.15279 0.21439,0.12207,-0.0027355,-0.072833,-0.21474,0.2332,0.11523,0.012652,-0.08651,-0.17883,0.25543,0.13062,-0.0010258,-0.072833,-0.18054,0.23662,0.15968,-0.016413,-0.079671,-0.18054,0.22807,0.12891,0.010942,-0.079671,-0.68148 -0.42636,-0.37802,-0.28134,-0.233,-0.20883,-0.13632,-0.015469,-0.18466,-0.18466,-0.087979,0.032871,0.0087012,0.032871,0.12955,0.22623,0.10538,0.057041,0.17789,0.10538,0.17789,0.12955,0.2504,0.22623,0.2504,0.22623 -0.15516,-0.15832,-0.15832,-0.1599,-0.15885,-0.15411,-0.15411,-0.15569,-0.15621,-0.1599,-0.14043,-0.15516,-0.15516,-0.15727,-0.15885,0.13416,0.14416,0.33353,0.33564,0.3288,0.151,0.12838,0.14048,0.32354,0.31775 0.2303,0.14765,0.1752,0.25784,0.14765,0.065012,0.09256,0.20275,0.20275,0.14765,0.065012,0.12011,0.037465,0.12011,0.037465,-0.10027,0.0099171,-0.01763,-0.10027,-0.072725,-0.32065,-0.3482,-0.3482,-0.37575,-0.37575 0.28198,-0.099403,-0.09536,-0.097606,-0.10075,0.29636,-0.097156,-0.096258,-0.097606,-0.099403,0.32421,-0.098504,-0.09491,-0.096707,-0.097606,0.52186,-0.1021,-0.094012,-0.096258,-0.096707,0.51647,-0.092664,-0.092664,-0.097606,-0.097606 0.31041,0.30897,0.16917,0.17176,0.17205,0.30926,0.30695,0.16513,0.17292,0.30349,-0.16232,-0.16232,-0.16319,-0.16203,-0.16232,-0.1629,-0.16376,-0.1554,-0.16117,-0.16203,-0.16434,-0.15886,-0.1433,-0.15252,-0.15367 -0.26522,-0.2122,0.13241,0.16555,0.13241,-0.2851,-0.15587,0.11253,0.13572,0.1059,-0.27847,-0.22214,0.20862,0.19868,0.17549,-0.25528,-0.22546,0.24838,0.23182,0.17549,-0.26522,-0.23208,0.13241,0.13572,0.1059 0.25752,0.25752,0.21528,0.18813,0.18813,0.27261,0.25149,0.22584,0.20774,0.19417,-0.16937,-0.15579,-0.14222,-0.14071,0.20473,-0.19501,-0.19501,-0.18144,-0.17238,-0.16937,-0.20255,-0.20406,-0.19199,-0.16484,-0.17842 -0.15762,-0.15566,-0.1488,-0.15566,-0.14684,-0.15076,-0.1537,-0.15174,-0.14782,-0.14488,-0.1488,-0.1488,-0.14978,-0.15272,-0.15174,0.28632,0.2726,0.26378,0.25692,-0.13214,0.27946,0.2775,0.26574,0.25006,0.24516 -0.20197,-0.04252,-0.20197,0.25866,0.24094,-0.14882,-0.1311,-0.077952,0.25866,0.25866,-0.16653,-0.2374,-0.1311,0.22323,0.22323,-0.18425,-0.29055,-0.16653,0.24094,0.24094,-0.16653,-0.14882,-0.077952,0.24094,0.18779 -0.13896,-0.12382,-0.038622,0.33435,0.27944,-0.20144,-0.14086,-0.053768,0.016282,0.2624,-0.20523,-0.20523,-0.13896,-0.017797,0.28512,-0.17304,-0.21659,-0.16358,0.24537,0.27944,-0.18251,-0.13139,-0.11814,0.27944,0.26808 -0.21708,-0.22043,-0.19361,0.20528,0.19522,-0.22378,-0.22378,-0.056179,0.19857,0.18516,-0.22043,-0.22043,0.20192,0.18852,0.18852,-0.21708,-0.22043,0.054436,0.21533,0.18852,-0.22043,-0.20702,0.21533,0.21868,0.18516 0.35565,-0.097062,-0.098344,-0.099399,-0.10008,0.35565,-0.096007,-0.097892,-0.099475,-0.10023,0.35791,-0.096384,-0.098495,-0.099324,-0.10023,0.35912,-0.096761,-0.098872,-0.099701,-0.10023,0.5436,-0.09661,-0.098268,-0.099324,-0.099249 0.30755,0.15619,0.095654,-0.20705,-0.20705,0.30755,0.36809,-0.11624,-0.025427,-0.29786,0.36809,0.095654,0.065384,-0.17678,-0.26759,0.18646,0.12592,-0.025427,-0.025427,-0.23732,0.035113,-0.025427,-0.11624,-0.14651,-0.23732 -0.22023,-0.22023,0.074722,0.041949,0.27136,-0.28578,-0.22023,-0.023597,0.074722,0.14027,-0.28578,0.0091764,0.0091764,0.0091764,0.27136,-0.28578,-0.12192,0.1075,0.17304,0.30413,-0.15469,-0.18746,0.041949,0.0091764,0.468 -0.34229,0.044478,0.117,0.068651,0.21369,-0.48733,-0.22142,0.117,0.068651,0.31038,-0.19725,-0.12473,0.068651,0.068651,0.21369,-0.29394,-0.10056,-0.028041,0.14117,0.26203,-0.19725,-0.076386,0.068651,0.044478,0.26203 -0.19213,-0.19584,-0.14564,0.25974,0.24858,-0.18655,-0.18097,-0.15122,0.23556,0.2337,-0.19398,-0.19213,-0.15122,0.22069,0.22627,-0.19027,-0.18655,-0.14564,0.20767,0.20581,-0.18283,-0.17539,0.23928,0.20209,0.19094 -0.14268,-0.17783,-0.12511,0.17361,0.29661,-0.26569,-0.14268,-0.12511,0.068179,0.43719,-0.12511,-0.16026,-0.089968,0.033035,0.43719,-0.16026,-0.17783,-0.12511,0.050607,0.2439,-0.10754,-0.072396,-0.089968,0.015463,0.33176 -0.17925,-0.17993,-0.17428,-0.17563,-0.17473,-0.17744,-0.1745,-0.17654,-0.17857,-0.17699,-0.17541,-0.17428,-0.17563,-0.17563,0.2016,0.25536,0.25469,0.26327,0.19505,0.19799,0.2583,0.25898,0.19324,0.19347,0.19686 0.20317,0.18565,0.18765,-0.16792,-0.16842,0.20042,0.16536,0.18339,-0.16767,-0.16817,0.20393,0.16737,0.16561,-0.22376,-0.22851,0.20818,0.19141,-0.16441,-0.23127,-0.23678,0.2212,0.19341,-0.23803,-0.24279,-0.23903 0.27662,0.25884,0.16995,-0.16782,-0.061155,0.25884,0.22329,-0.043377,-0.11449,-0.061155,0.27662,0.11662,-0.061155,-0.15004,-0.1856,0.25884,0.1344,-0.11449,-0.078932,-0.34559,0.16995,0.0099554,-0.061155,-0.32782,-0.38115 0.013623,0.13383,0.13383,0.15386,0.234,0.27407,0.1739,0.25404,0.19393,0.21397,0.033658,0.013623,0.1739,0.15386,0.15386,-0.24682,-0.26686,-0.16669,-0.18672,-0.18672,-0.32696,-0.22679,-0.22679,-0.26686,-0.20675 -0.10072,-0.12059,-0.12804,-0.13797,-0.09079,-0.08334,-0.06844,-0.088306,-0.09824,-0.078373,0.018476,-0.041124,-0.033674,-0.041124,-0.051057,0.038342,0.018476,0.0085426,-0.03864,-0.02374,0.93482,0.030892,0.055725,0.058209,0.060692 -0.15194,-0.15194,-0.15733,-0.1479,-0.1479,-0.15598,-0.15329,-0.15598,-0.1479,-0.15329,-0.1506,-0.15463,-0.16136,-0.15867,-0.15733,0.26937,-0.088678,0.26803,0.27341,0.26937,0.26533,0.26264,0.26399,0.26533,0.25726 0.2385,0.31986,-0.16455,-0.1759,-0.17212,0.19119,0.20633,-0.15698,-0.22321,-0.18536,0.17227,0.26499,0.22525,-0.19672,-0.16455,0.17416,0.18551,-0.1286,-0.19293,-0.21564,0.20444,0.2612,-0.13806,-0.14752,-0.18158 -0.3748,-0.1351,0.14818,0.19176,0.19176,-0.33122,-0.1351,0.21355,0.19176,0.082805,-0.3748,-0.047939,0.12639,0.14818,0.19176,-0.30943,-0.047939,0.14818,0.1046,0.12639,-0.30943,-0.15689,0.1046,0.14818,0.1046 0.1987,0.19693,0.19693,-0.18902,-0.19566,0.20223,0.20489,0.20047,-0.19035,-0.19389,0.20975,0.21063,-0.18902,-0.19123,-0.19566,0.21726,0.21461,-0.18814,-0.19123,-0.19566,0.22257,0.22169,-0.18858,-0.19256,-0.19566 -0.14824,-0.14885,-0.14946,-0.15088,-0.15088,-0.15048,-0.15088,-0.15149,-0.15068,-0.15109,-0.14987,-0.14946,-0.14824,-0.14946,-0.14763,-0.14906,0.25454,0.25434,0.26023,0.26795,0.25881,0.25393,0.31324,0.26795,0.26571 -0.111,-0.1127,-0.11313,-0.11313,-0.11441,-0.097772,-0.10076,-0.096065,-0.099478,-0.097345,-0.083692,-0.084119,-0.082839,-0.084119,-0.084119,-0.080279,-0.079426,-0.081132,-0.077292,-0.075159,0.63991,0.42232,0.35363,0.28451,0.16761 0.20643,0.20669,-0.2037,-0.2028,-0.20152,0.20265,0.22058,0.19299,-0.20178,-0.20171,0.20317,0.21987,0.2088,-0.20126,-0.20171,0.20451,0.2088,-0.13233,-0.20203,-0.20235,0.20534,0.20713,-0.13233,-0.20165,-0.20178 0.2511,0.2511,-0.11043,-0.1433,-0.17616,0.18537,-0.044698,-0.11043,0.021034,-0.2419,0.3497,0.11963,0.11963,-0.077564,-0.34049,0.1525,0.086767,-0.077564,-0.077564,-0.17616,0.3497,0.11963,0.11963,-0.11043,-0.43909 0.042294,0.10817,0.12135,-0.15534,-0.32004,0.085115,0.18723,0.21358,-0.20805,-0.31016,0.11805,0.23993,0.07194,-0.13228,-0.31016,0.45404,0.10488,0.022531,-0.11582,-0.29369,0.17076,0.15758,0.032412,-0.056524,-0.22781 0.17718,0.22464,0.22164,-0.22394,-0.22494,0.17778,0.17838,0.17558,-0.22534,-0.22474,0.16817,0.16857,0.16717,-0.22454,-0.22474,0.16076,0.16156,-0.22514,-0.22574,-0.22514,0.16316,0.16336,0.16717,-0.22534,-0.22554 -0.33865,-0.27319,-0.16409,-0.25137,-0.18591,-0.20773,-0.25137,-0.098629,-0.098629,-0.098629,-0.011347,-0.054988,-0.033167,-0.011347,0.097756,0.010474,0.032294,0.075935,0.18504,0.33778,0.16322,0.22868,0.29414,0.29414,0.3596 -0.2432,-0.31229,-0.2432,-0.2432,-0.2432,-0.087745,-0.19138,-0.17411,-0.087745,-0.070472,0.015891,-0.12229,-0.15684,0.050436,0.10225,0.17134,0.17134,-0.018654,0.11953,0.18862,0.34407,0.36134,0.20589,0.1368,0.3268 0.21813,0.0064939,-0.20224,-0.22833,-0.23026,0.22489,0.0035948,0.0026285,-0.20707,-0.22736,0.22972,0.23842,-0.0109,-0.13556,-0.23799,0.21813,0.23552,0.24615,-0.19934,-0.21577,0.20363,0.22199,0.24035,-0.19451,-0.20031 -0.25689,-0.22272,0.22887,0.15564,0.14587,-0.24469,-0.22516,0.1654,0.1532,0.13855,-0.25933,-0.2276,0.18005,0.16784,0.14587,-0.25201,-0.25201,0.1654,0.16052,0.15076,-0.25445,-0.24469,0.16784,0.1654,0.14831 0.12151,0.12871,0.16111,-0.33392,-0.33662,0.12421,0.12601,0.018001,0.0027001,-0.34112,0.13771,0.26101,0.022501,0.0081004,-0.35012,0.17101,0.17731,0.15031,0.022501,-0.33752,0.14761,0.13411,0.088204,0.033302,-0.33662 0.088582,0.023029,0.061506,-0.078151,-0.24061,0.15699,0.058656,0.058656,0.075757,-0.38169,0.11708,0.12706,0.099983,0.088582,-0.40307,0.062931,0.084307,0.17266,0.11993,-0.40164,0.12563,0.15129,0.12563,0.18264,-0.47575 0.19142,0.19474,0.20885,-0.18052,-0.39306,0.15406,0.14409,0.15987,0.085148,-0.35155,0.14658,0.1059,0.12832,-0.17803,-0.38642,0.084318,0.061902,0.077676,0.083487,-0.37065,0.10175,0.058581,0.09262,0.05775,-0.27683 0.23156,0.23156,0.2102,-0.046142,-0.2384,0.35974,0.060668,-0.02478,-0.17431,-0.2384,0.35974,0.23156,-0.088866,-0.17431,-0.30249,0.27429,-0.02478,0.039306,-0.15295,-0.15295,0.12475,0.039306,-0.15295,-0.28112,-0.11023 0.29618,0.18566,0.10278,0.10278,0.07515,0.21329,0.19948,0.10278,0.13041,0.10278,0.21329,0.19948,0.11659,0.07515,0.061335,-0.090622,-0.15969,-0.11825,-0.062993,-0.090622,-0.29784,-0.39454,-0.38072,-0.31165,-0.27021 0.084036,0.052264,-0.070851,-0.13042,-0.34488,0.11581,0.060207,0.091979,0.0085784,-0.38857,0.14758,0.13964,0.12375,0.060207,-0.40843,0.15552,0.14758,0.13567,0.13169,-0.2734,0.15155,0.15155,0.14758,0.15552,-0.44417 -0.3439,-0.070736,0.20243,0.087413,0.17368,-0.3439,-0.18575,0.073036,0.1593,0.1593,-0.38703,-0.056359,0.10179,0.1593,0.1593,-0.32953,0.015527,0.1593,0.1593,0.1593,-0.3439,-0.11387,0.17368,0.087413,0.14492 0.26381,0.26527,-0.099674,-0.10369,-0.1088,0.42402,-0.098214,-0.10077,-0.10588,-0.11099,0.42457,-0.098579,-0.10186,-0.10643,-0.11099,0.43424,-0.099492,-0.10241,-0.10643,-0.11281,0.27093,-0.10004,-0.10296,-0.10935,-0.2035 -0.48509,0.023746,0.16509,0.22163,0.19336,-0.25894,-0.17414,0.080284,0.22163,0.22163,-0.25894,-0.14587,-0.061061,0.22163,0.2499,-0.20241,-0.14587,0.080284,0.080284,0.19336,-0.23067,-0.20241,-0.004523,0.023746,0.19336 0.14835,0.093224,-0.11197,-0.18853,-0.21609,0.14223,0.10854,0.025848,-0.18241,-0.20691,0.15141,0.1361,0.12079,-0.19466,-0.21609,0.29535,0.43623,0.059536,-0.18547,-0.24059,0.17285,0.35048,-0.075216,-0.16709,-0.25591 0.19055,0.20467,-0.16666,-0.22455,-0.23585,0.18632,0.17926,-0.17372,-0.21326,-0.22455,0.16514,0.17079,0.20891,-0.22455,-0.23161,0.17361,0.17785,0.20185,-0.18784,-0.22455,0.20044,0.19903,0.22444,-0.15678,-0.21891 0.28168,-0.065279,-0.15523,-0.19378,-0.28373,0.14033,0.063223,-0.15523,-0.23233,-0.28373,0.20458,0.14033,0.024673,-0.15523,-0.23233,0.30738,0.25598,0.20458,-0.026729,-0.20663,0.24313,0.21743,0.20458,-0.065279,-0.23233 -0.22259,-0.22292,-0.22359,-0.22559,-0.22593,-0.22459,-0.2266,-0.22359,-0.22593,-0.22626,-0.22024,0.15461,0.18036,0.17501,0.17969,0.15494,0.1526,0.17568,0.17568,0.18705,0.15494,0.15127,0.17434,0.18303,0.26864 0.11026,-0.15281,-0.22144,-0.18712,-0.17569,0.23608,0.018758,-0.16425,-0.12993,-0.16425,0.32758,0.11026,-0.12993,-0.16425,-0.15281,0.39621,0.2132,-0.072745,-0.10706,-0.15281,0.40765,0.30471,0.075948,-0.072745,-0.15281 0.26829,0.22436,0.2024,0.18483,0.18922,0.22876,0.23754,0.22876,0.21558,0.18044,-0.19731,-0.17095,-0.087497,0.13212,0.14091,-0.21048,-0.22366,-0.21048,-0.17095,-0.065535,-0.22366,-0.22805,-0.23684,-0.21048,-0.19731 0.10004,0.10079,0.097076,0.10227,-0.40018,0.058483,0.09188,0.090396,0.089654,-0.39276,0.085201,0.094849,0.093365,0.12008,-0.39647,0.099302,0.1134,0.093365,0.20989,-0.39572,0.09188,0.093365,0.087427,0.0711,-0.39869 0.12063,0.16172,0.095978,0.13707,0.1042,0.14528,0.095978,0.13707,0.12063,0.13707,0.095978,0.071326,0.12885,0.1535,0.11241,-0.010847,0.022022,0.013805,0.03024,0.071326,-0.43815,-0.42171,-0.38884,-0.37241,-0.32311 0.95066,0.1461,-0.031897,0.010822,-0.046137,0.053542,-0.017658,-0.067497,-0.074617,-0.081737,-0.024777,-0.039017,-0.046137,-0.081737,-0.060377,-0.046137,-0.046137,-0.060377,-0.060377,-0.074617,-0.046137,-0.053257,-0.060377,-0.046137,-0.095977 0.25177,0.27876,0.24503,-0.024827,-0.19349,0.28551,0.28551,0.13034,-0.15975,-0.24746,0.28551,0.16407,-0.065305,-0.19349,-0.18674,0.2113,0.022398,-0.14626,-0.18674,-0.23396,0.16407,-0.10578,-0.15301,-0.21373,-0.21373 -0.34392,-0.29001,-0.26306,-0.34392,-0.29001,-0.12829,-0.15525,-0.047437,0.087327,-0.26306,0.087327,0.0064687,0.14123,0.11428,-0.074389,0.087327,0.11428,0.11428,0.11428,0.11428,0.19514,0.24904,0.24904,0.24904,0.276 0.097734,0.10541,0.11564,-0.2451,-0.1223,0.12844,0.11053,0.1489,-0.2451,-0.20161,0.19752,0.12076,0.17705,-0.32186,-0.27581,0.20263,0.1617,0.21031,-0.32953,-0.1837,0.22566,0.23333,0.12588,-0.26557,-0.17091 -0.28008,-0.054209,0.17166,0.27433,0.15113,-0.30061,-0.21848,0.11006,0.2538,0.29486,-0.23901,-0.23901,-0.013141,0.21273,0.21273,-0.28008,-0.19794,-0.054209,0.15113,0.13059,-0.095276,-0.19794,-0.095276,0.048459,0.2538 0.34532,0.15823,-0.0021382,-0.21596,-0.32287,0.4255,0.21168,-0.055594,-0.082321,-0.29614,0.23841,0.1315,-0.0021382,-0.1625,-0.3496,0.024589,0.21168,0.051317,-0.082321,-0.21596,0.15823,0.078045,-0.13578,-0.082321,-0.028866 0.26677,-0.16013,-0.16033,-0.16337,-0.16397,0.29389,0.18965,-0.15972,-0.16195,-0.16397,0.27547,0.19329,-0.15993,-0.16155,-0.16296,0.27568,0.25402,-0.15993,-0.16114,-0.16276,0.27628,0.2522,0.14593,-0.15993,-0.16155 0.11895,0.11895,0.09572,0.14219,-0.4851,0.11895,0.09572,0.072487,0.16542,-0.32247,0.11895,0.11895,0.09572,0.072487,-0.36894,0.14219,0.11895,0.11895,0.002788,-0.46187,0.09572,0.002788,0.072487,0.049254,-0.29924 -0.22569,-0.22569,-0.22604,-0.22621,-0.22604,-0.22362,-0.22535,-0.22535,-0.22621,-0.22569,-0.22448,0.18195,0.18195,0.18783,0.18834,0.16362,0.16725,0.1733,0.18298,0.18973,0.16207,0.16673,0.16967,0.17814,0.18679 0.1121,0.1581,0.15103,0.15103,0.12626,0.14749,0.17049,0.16695,0.14749,0.13687,0.18287,0.18641,0.10856,0.14749,0.13333,-0.26653,-0.32668,-0.011748,-0.03121,-0.038288,-0.30545,-0.31253,-0.30545,-0.31253,-0.31607 0.38192,0.36851,0.34974,0.35243,0.3417,-0.073896,-0.052445,0.30684,-0.017589,-0.017589,-0.13288,-0.12484,-0.12484,-0.1168,-0.1168,-0.12484,-0.13288,-0.14093,-0.1168,-0.13288,-0.13288,-0.13288,-0.15165,-0.12484,-0.13288 -0.040407,-0.03187,-0.020488,-0.046098,-0.071708,-0.051789,0.0022765,-0.0034147,-0.10016,-0.097319,0.0079676,-0.029025,0.056342,-0.11155,-0.11155,-0.0034147,0.076261,0.013659,-0.12008,-0.10586,0.93563,0.047806,0.039269,-0.1087,-0.12577 0.24427,0.1979,0.10852,-0.087191,-0.38945,0.23936,0.23669,0.090463,-0.094323,-0.38633,0.23669,0.23312,0.18185,-0.094323,-0.19441,0.23223,0.018465,0.016236,-0.088305,-0.38365,0.014899,0.014899,-0.074931,-0.074708,-0.19797 0.24345,0.22733,-0.16643,-0.19019,-0.20547,0.24175,0.21205,-0.1834,-0.18255,-0.20801,0.23751,0.20102,-0.18255,-0.16643,-0.20971,0.22648,0.19593,-0.21141,-0.17407,-0.20122,0.22393,0.18574,0.17217,0.10597,-0.19189 -0.22657,-0.22657,-0.22657,-0.23808,-0.23479,-0.22657,-0.22164,-0.21671,-0.22657,-0.23151,0.21231,0.18929,0.17121,-0.19699,0.15149,0.20409,0.19423,0.17286,0.15971,0.14491,0.20573,0.18436,0.16957,0.16299,0.14984 -0.37174,-0.39299,-0.40007,-0.40716,-0.38591,0.039101,0.0036834,0.024934,0.024934,0.032017,0.10993,0.10993,0.1241,0.10285,0.10285,0.11702,0.13827,0.15244,0.13119,0.10993,0.15244,0.10285,0.10285,0.13119,0.14535 -0.18855,-0.16382,-0.15145,0.20306,0.15978,-0.1968,-0.17,-0.14733,0.19276,0.17833,-0.18855,-0.18031,-0.14939,0.19688,0.19276,-0.20504,-0.17412,-0.17412,0.22161,0.3123,-0.18443,-0.16588,0.23398,0.21337,0.33497 -0.1381,-0.18089,-0.18089,0.06163,0.24709,-0.18089,-0.18089,-0.16663,0.090162,0.30415,-0.095298,-0.1381,-0.22369,0.30415,0.37549,-0.10956,-0.18089,-0.10956,0.14723,0.28989,-0.095298,-0.15236,-0.1381,0.10443,0.34695 -0.15349,-0.18536,-0.19762,-0.15349,-0.17801,-0.050509,-0.099547,-0.18046,-0.13142,-0.11426,-0.040702,-0.048057,-0.079932,-0.050509,-0.057865,-0.0088269,-0.0039231,-0.006375,-0.013731,-0.028442,0.4693,0.43252,0.42516,0.40555,0.050019 -0.12153,-0.125,-0.125,0.15216,0.35656,-0.13193,-0.13193,-0.125,-0.027993,0.33924,-0.15618,-0.14925,-0.11807,0.19373,0.38427,-0.16311,-0.14925,-0.14232,0.11058,0.34963,-0.16311,-0.16311,-0.14232,-0.079959,0.32884 -0.027246,-0.15824,-0.13204,-0.13204,-0.13204,-0.13204,-0.26303,-0.15824,-0.10584,-0.21064,-0.15824,-0.15824,-0.027246,-0.079643,-0.10584,0.025151,0.077548,-0.079643,0.025151,0.15614,0.41813,0.26094,0.33953,0.33953,0.41813 -0.086555,-0.085237,-0.085237,-0.086555,-0.20426,-0.084359,-0.083919,-0.087433,-0.085676,-0.20294,-0.08348,-0.086555,-0.08348,-0.085237,-0.083919,-0.079528,-0.091825,-0.085676,-0.078649,-0.084359,0.44618,0.53226,0.32013,0.31925,0.31706 -0.22509,-0.2878,0.16244,0.13234,0.13861,-0.22008,-0.24767,0.15366,0.14989,0.14989,-0.21757,-0.25018,0.16369,0.15115,0.16494,-0.24014,-0.24014,0.16244,0.14864,0.17999,-0.24767,-0.26146,0.1825,0.19504,0.20257 0.24335,0.24569,-0.14533,-0.14338,-0.14299,0.24335,0.31522,-0.14416,-0.14025,-0.14103,0.3621,0.24178,-0.14963,-0.14377,-0.1426,0.24569,0.24178,-0.15666,-0.14533,-0.14338,0.241,-0.17385,-0.16486,-0.15627,-0.1465 0.067184,0.12868,0.10062,0.098233,-0.39675,0.088083,0.11316,0.10838,0.096442,-0.39556,0.064796,0.075544,0.11197,0.095248,-0.40034,0.057034,0.081515,0.12033,0.11197,-0.39556,0.067782,0.086291,0.17108,0.14063,-0.39675 0.35604,0.36362,-0.069891,-0.13236,-0.11722,0.35983,-0.058533,-0.096394,-0.13236,-0.12858,0.3674,-0.064212,-0.10207,-0.12858,-0.12858,0.3409,-0.094501,-0.14751,-0.13993,-0.13615,0.32954,-0.062319,-0.10207,-0.13993,-0.13615 0.17422,0.18315,0.28356,-0.16271,-0.21849,0.15637,0.15637,0.23001,-0.22742,-0.23411,0.18315,0.16976,-0.13147,-0.23411,-0.22742,0.201,0.25455,-0.14486,-0.20287,-0.24081,0.16083,0.18538,0.10505,-0.17387,-0.24527 0.16078,-0.14156,-0.15535,-0.11716,-0.15322,0.24989,-0.11079,-0.12564,-0.11291,-0.14049,0.53737,-0.042899,-0.055629,-0.050325,-0.12034,0.46417,-0.050325,-0.071541,-0.075785,-0.06942,0.45356,-0.040778,-0.06942,-0.086393,-0.075785 -0.085138,-0.28118,-0.057132,0.25093,0.30695,-0.11314,-0.14115,-0.057132,0.22293,0.30695,-0.14115,-0.16916,-0.19716,0.22293,0.13891,-0.22517,-0.22517,-0.0011202,0.13891,0.22293,-0.28118,-0.28118,0.026886,0.22293,0.19492 0.12034,0.12748,0.12034,0.11319,-0.14406,0.12034,0.11319,0.10605,0.077461,-0.25125,0.13463,0.12034,0.10605,0.020294,-0.37273,0.12748,0.12748,0.098899,0.034586,-0.47277,0.12034,0.11319,0.070316,-0.18694,-0.54423 -0.17328,-0.17414,-0.17568,-0.17859,-0.17859,-0.17294,-0.17397,-0.17876,-0.17927,-0.17876,0.22177,-0.17551,-0.17962,-0.18047,-0.18064,0.22194,0.22263,0.21989,0.21989,0.22588,0.25891,0.22571,0.22314,0.2192,0.22126 -0.067106,0.26965,0.067595,-0.15895,-0.22017,0.28802,0.20842,0.1227,-0.12221,-0.2263,0.30638,0.17168,0.18393,-0.20793,-0.29977,0.25128,0.17168,-0.0058779,-0.20793,-0.30589,0.079841,0.15331,-0.042614,-0.23242,-0.17732 0.20216,0.19816,-0.083546,-0.37253,-0.37191,0.20585,0.20031,-0.018701,-0.091229,-0.3712,0.20902,0.20339,-0.017882,-0.018701,-0.37099,0.20421,0.19847,-0.018804,-0.019623,-0.082931,0.20298,0.19868,-0.019623,-0.082624,-0.082931 0.3454,-0.091831,-0.096252,-0.097136,-0.10156,0.35645,-0.096252,-0.097136,-0.08962,-0.10156,0.35247,-0.094483,-0.10156,-0.094483,-0.10067,0.34716,-0.10067,-0.10067,-0.10465,-0.10156,0.56202,-0.09802,-0.097136,-0.099788,-0.098462 -0.086326,-0.2302,-0.30768,-0.31874,-0.14166,-0.10846,-0.26341,-0.2302,-0.2302,0.013281,-0.10846,-0.1638,-0.053124,0.035416,0.11289,0.12396,0.10182,0.15716,0.19036,0.15716,0.23463,0.2789,0.30104,0.30104,0.23463 0.14385,0.13464,0.17179,0.17893,-0.26697,0.13642,0.14385,0.16228,-0.2637,-0.26548,0.13702,0.13702,0.16199,-0.26608,-0.26637,0.13939,0.13702,0.17982,-0.26905,-0.26578,0.13999,0.13107,0.1599,-0.26667,-0.26489 0.40809,0.47018,0.3667,0.26323,0.3667,-0.047183,-0.088572,-0.047183,-0.067878,0.076983,-0.15066,-0.15066,-0.067878,-0.026489,-0.067878,-0.19204,-0.026489,-0.17135,-0.067878,-0.12996,-0.25413,-0.088572,-0.067878,-0.15066,-0.088572 -0.1765,-0.17761,-0.17761,-0.17788,-0.17857,-0.17595,-0.17664,-0.17719,-0.17761,-0.17857,0.2194,-0.17595,-0.17636,-0.17719,-0.17788,0.22617,0.21995,0.22645,0.23087,0.23308,0.21898,0.21898,0.2241,0.22962,0.23391 -0.27597,0.013628,0.16694,0.16694,0.13287,-0.31004,-0.071547,0.18398,0.11584,0.16694,-0.31004,-0.12265,0.18398,0.11584,0.16694,-0.34411,-0.293,0.13287,0.14991,0.13287,-0.39521,-0.10562,0.081768,0.13287,0.18398 0.18634,0.18634,0.1891,0.090887,0.081708,0.18451,0.18726,0.18634,0.088133,0.089969,0.25977,0.25656,0.21342,0.086298,0.091346,-0.23633,-0.23633,-0.23863,-0.23771,-0.23541,-0.23633,-0.23909,-0.23909,-0.23909,-0.24 -0.22414,-0.22681,-0.22462,-0.22584,-0.22547,-0.22474,-0.22839,-0.22462,-0.22681,-0.2245,-0.2245,0.20461,0.18335,0.18056,0.17898,0.17023,0.17218,0.17534,0.17995,0.17959,0.16878,0.16793,0.17084,0.16829,0.17983 0.11691,0.39717,0.42386,0.43721,0.41051,-0.003203,0.05018,0.090217,0.036834,0.010143,-0.12331,-0.096623,-0.16335,-0.16335,-0.12331,-0.056586,-0.12331,-0.13666,-0.19004,-0.13666,-0.12331,-0.083277,-0.10997,-0.1767,-0.16335 -0.37873,-0.25078,-0.31475,-0.34674,-0.25078,-0.21879,-0.12283,0.0051179,-0.058856,-0.15482,0.0051179,0.069092,0.037105,0.13307,0.069092,0.0051179,0.13307,0.26101,0.26101,0.069092,0.16505,0.26101,0.22903,0.13307,0.26101 0.31341,0.29353,0.11455,-0.2633,-0.08432,0.37308,0.094661,-0.044546,0.035001,-0.20364,0.35319,0.015114,-0.14398,-0.18375,-0.20364,0.23387,0.094661,-0.14398,-0.12409,-0.28319,0.25375,-0.08432,-0.08432,-0.16387,-0.16387 -0.15054,-0.15109,-0.15219,-0.15109,-0.15164,-0.15,-0.15109,-0.15109,-0.15109,-0.14945,-0.1489,-0.1489,-0.15,-0.14781,-0.14945,-0.14562,0.26645,0.26727,0.26617,0.26672,0.26617,0.26672,0.26645,0.26672,0.26727 0.10239,0.11147,0.15685,0.1387,0.11147,0.10239,0.12962,0.10239,0.11147,0.11147,0.1387,0.15685,0.14777,0.12054,0.14777,-0.088229,-0.042844,0.03885,0.03885,0.075158,-0.42408,-0.415,-0.39685,-0.33331,-0.34239 0.15945,0.13937,0.10925,0.10925,0.074102,0.15443,0.12933,0.10422,0.094184,0.069082,0.13937,0.10422,0.099204,0.11427,0.069082,0.10422,0.089163,0.049,0.038959,0.023897,-0.3928,-0.40284,-0.3928,-0.3928,-0.3928 0.50204,-0.095769,-0.096969,-0.097968,-0.099167,0.49425,-0.098368,-0.097368,-0.097968,-0.099567,0.32036,-0.097169,-0.097568,-0.098768,-0.099967,0.32196,-0.096769,-0.097568,-0.097368,-0.10097,0.32376,-0.097968,-0.097368,-0.097968,-0.099767 0.556,0.33832,0.34957,0.36036,0.36194,-0.097477,-0.097253,-0.096353,-0.097702,-0.099726,-0.097028,-0.097028,-0.096353,-0.097028,-0.099276,-0.1004,-0.1004,-0.099951,-0.1004,-0.099726,-0.095903,-0.099501,-0.097702,-0.10018,-0.096803 -0.22575,-0.23985,-0.24478,-0.2469,-0.24972,-0.012911,-0.22646,-0.24831,-0.2469,-0.24408,0.16681,0.16822,0.17667,0.17667,-0.23562,0.16962,0.1802,0.17385,0.1654,0.17808,0.17738,0.17103,0.16962,0.16681,0.1809 0.10895,0.058428,-0.068972,-0.17441,-0.13267,0.17045,0.22537,0.049642,-0.14585,-0.17001,0.59219,0.15288,-0.10192,-0.23591,-0.2447,0.22097,0.17045,-0.00087862,-0.16782,-0.29082,0.15288,0.17704,-0.040416,-0.097527,-0.20735 -0.24668,-0.23164,0.12936,0.24969,0.12936,-0.26172,-0.20156,0.18952,0.18952,0.1444,-0.24668,-0.23164,0.26473,0.20456,0.11431,-0.2918,-0.23164,0.084232,0.15944,0.099273,-0.26172,-0.18651,0.11431,0.15944,0.15944 -0.23952,-0.24201,0.16025,0.18911,0.19054,-0.23845,-0.24237,0.16346,0.17058,0.17023,-0.24593,-0.24415,0.18733,0.1998,0.11429,-0.24379,-0.24451,0.16346,0.1973,0.12034,-0.25092,-0.24237,0.16488,0.1289,0.11357 -0.058247,-0.15532,-0.20386,-0.36566,-0.36566,-0.058247,-0.10679,-0.20386,-0.30094,-0.22004,0.07119,-0.058247,0.0064718,0.038831,-0.025887,0.20063,0.23299,0.16827,0.08737,0.08737,0.28153,0.18445,0.28153,0.31388,0.16827 0.37337,0.3177,0.24532,0.13396,0.033741,0.39843,0.3344,0.24532,0.10891,0.044876,-0.13886,-0.13329,-0.13608,-0.12772,-0.12772,-0.15278,-0.15556,-0.16113,-0.16113,-0.14721,-0.16391,-0.16113,-0.15835,-0.16391,-0.14721 0.27267,0.23825,-0.011081,-0.1538,-0.20836,0.28274,0.24748,-0.10846,-0.12945,-0.17898,0.3818,-0.098389,-0.10259,-0.11854,-0.1538,0.38096,-0.093352,-0.10678,-0.10678,-0.14372,0.37928,-0.11854,-0.1093,-0.11938,-0.12189 -0.099763,-0.10002,-0.10002,-0.10053,-0.10053,-0.098488,-0.098743,-0.10002,-0.098488,-0.099508,-0.099508,-0.099508,-0.099253,-0.099253,-0.099508,-0.098743,-0.099253,-0.098488,-0.098743,-0.098998,0.41981,0.29713,0.4216,0.42492,0.4239 -0.35414,0.036351,0.14285,0.14285,0.16415,-0.29734,-0.034647,0.14995,0.15705,0.17835,-0.32574,-0.013348,0.14995,0.13575,0.13575,-0.31864,-0.23344,0.05765,0.15705,0.16415,-0.31864,-0.30444,0.086049,0.17835,0.16415 0.20192,0.2292,0.21101,0.12006,-0.08004,0.21101,0.17463,0.047296,-0.10733,-0.20738,0.27468,0.21101,-0.034563,-0.19828,-0.26195,0.2474,0.074582,-0.13461,-0.24376,-0.29833,0.22011,0.083678,-0.17099,-0.27104,-0.29833 0.23896,0.23736,0.23896,-0.21452,-0.21868,0.2396,0.23351,0.23752,-0.22028,-0.22044,0.23768,0.10725,0.10628,-0.21852,-0.21932,0.10725,0.10628,0.10532,-0.21804,-0.22028,0.10484,0.10452,-0.21644,-0.219,-0.2198 0.25282,0.30219,0.25282,0.37626,0.42564,0.10468,0.17875,0.10468,0.10468,0.030614,0.055303,-0.14221,-0.14221,-0.018764,-0.11752,-0.14221,-0.21628,-0.1669,-0.21628,-0.14221,-0.14221,-0.092831,-0.19159,-0.19159,-0.26565 -0.15763,-0.16417,-0.16417,-0.14453,-0.17072,-0.15108,-0.15108,-0.14453,-0.13799,-0.14453,-0.13144,-0.13144,-0.1249,-0.11835,-0.1249,0.10094,0.15003,0.055117,0.064935,0.1664,0.42823,0.42823,0.12712,0.19913,0.44132 0.19449,0.1976,-0.19538,-0.19228,-0.17947,0.21738,0.20303,-0.19771,-0.20159,-0.20391,0.21893,0.21389,-0.19771,-0.19344,-0.19034,0.22126,0.21505,0.19411,-0.18723,-0.18762,0.21816,0.19915,0.20264,-0.18064,-0.1884 -0.25963,-0.09104,-0.0067437,0.10565,0.38664,-0.28773,-0.062941,0.10565,0.21805,0.38664,-0.25963,-0.28773,-0.09104,0.049454,0.27424,-0.25963,0.021355,-0.14724,0.13375,0.13375,-0.20344,-0.14724,-0.0067437,0.13375,0.16185 0.22736,0.22865,0.22736,0.21957,0.21828,0.22347,0.22736,0.22736,0.22476,0.22476,0.23125,-0.15659,-0.18123,-0.17215,-0.17475,-0.18383,-0.18253,-0.19031,-0.18383,-0.17085,-0.17604,-0.18901,-0.18642,-0.16826,-0.16437 -0.13976,-0.18344,-0.13976,0.049499,0.34067,-0.18344,-0.096087,-0.081528,0.049499,0.34067,-0.11065,-0.15432,-0.081528,-0.0087352,0.34067,-0.24167,-0.13976,-0.15432,0.0058235,0.35523,-0.06697,-0.198,-0.052411,0.10773,0.44258 0.072589,0.072589,0.095658,0.072589,0.095658,0.211,0.20331,0.23407,0.211,0.18024,0.17255,0.14948,0.16486,0.18793,0.18793,-0.18117,-0.15041,-0.17348,-0.19654,-0.081202,-0.3042,-0.31189,-0.29651,-0.31189,-0.3042 0.10004,0.1915,0.10766,0.24962,0.35251,0.087651,0.1029,0.099084,0.15053,0.35537,0.074313,0.092415,0.086699,0.1229,0.11909,-0.21818,-0.2096,-0.21246,-0.21818,-0.22294,-0.24104,-0.24485,-0.24104,-0.24295,-0.24104 0.22716,0.22716,-0.022467,-0.20969,-0.24089,0.13355,0.13355,0.13355,-0.2721,-0.2721,0.35198,0.039941,0.039941,-0.084874,-0.3345,0.32077,0.16476,-0.20969,-0.20969,-0.022467,0.22716,0.071144,0.13355,-0.14728,-0.17849 -0.35719,-0.33182,-0.38256,-0.20498,-0.25572,-0.15424,-0.15424,-0.1035,-0.17961,-0.027398,0.17555,0.099445,0.15018,0.023339,-0.052767,0.17555,0.17555,0.22629,0.074076,0.25166,0.30239,0.12481,0.12481,0.12481,0.17555 0.23285,0.22581,0.22346,0.22307,0.22503,0.22972,0.22112,0.22112,0.22112,0.23637,0.2219,-0.18245,-0.17619,-0.17697,-0.17697,-0.17463,-0.17776,-0.17697,-0.17541,-0.17658,-0.17619,-0.17736,-0.17658,-0.17932,-0.17815 -0.246,-0.10662,0.17213,0.17213,0.13728,-0.38537,-0.054356,0.10244,0.13728,0.22439,-0.36795,-0.019513,0.15471,0.24182,0.10244,-0.33311,-0.14147,0.10244,0.15471,0.10244,-0.38537,-0.12404,0.050175,0.15471,0.15471 0.37001,0.23684,-0.10191,-0.13353,-0.13353,0.35669,0.24932,-0.10773,-0.13353,-0.1352,0.33588,-0.10773,-0.13853,-0.1302,-0.1352,0.33671,-0.11023,-0.13187,-0.14019,-0.12188,0.33755,-0.12188,-0.12688,-0.10857,-0.1044 -0.22658,-0.22562,-0.22466,-0.22339,-0.22307,-0.22658,-0.2269,-0.22594,-0.22498,-0.22307,-0.22882,0.17746,0.16915,0.18321,0.18992,0.1717,0.1781,0.16659,0.18705,0.18737,0.16883,0.14613,0.18769,0.18513,0.18129 -0.35209,0.03341,0.001285,0.097661,0.25829,-0.062966,-0.19147,0.03341,0.16191,0.32254,-0.25572,-0.12722,0.001285,0.097661,0.22616,-0.22359,-0.062966,0.03341,0.12979,0.29041,-0.35209,-0.38422,0.03341,0.065536,0.22616 -0.077141,-0.063756,-0.068218,-0.065987,-0.043121,-0.06766,-0.065429,-0.074352,-0.068775,-0.062641,-0.058179,-0.07491,-0.058179,-0.074352,-0.068775,0.20561,-0.033083,-0.019698,-0.071564,-0.057621,0.93452,-0.019698,-0.026948,-0.0024093,0.082361 -0.44222,-0.26894,-0.060996,0.21626,0.28557,-0.16497,0.0083177,-0.060996,0.14695,0.21626,-0.23428,-0.23428,0.042975,0.11229,0.14695,-0.16497,-0.060996,-0.026339,0.28557,0.28557,-0.19962,-0.095654,-0.13031,0.11229,0.28557 0.18885,0.18703,0.19218,-0.26335,-0.26608,0.18157,0.14245,0.13153,-0.26638,-0.26456,0.13699,0.1294,0.12667,0.12425,-0.26486,0.13153,0.12971,0.12849,-0.26517,-0.26638,0.13153,0.13456,0.18976,-0.26486,-0.26486 -0.17533,-0.17506,-0.17478,-0.17561,-0.17395,-0.17506,-0.17589,-0.17423,-0.17671,-0.17589,-0.16622,0.16338,-0.17478,-0.17561,-0.17395,0.1642,0.16614,0.27167,0.27112,0.27527,0.16393,0.16255,0.2667,0.26394,0.27416 -0.3696,-0.3696,-0.39839,-0.41278,-0.384,0.076569,0.0046057,0.0046057,0.062176,-0.02418,0.10535,0.090962,0.062176,0.090962,0.090962,0.090962,0.16293,0.11975,0.10535,0.076569,0.17732,0.16293,0.13414,0.16293,0.17732 -0.098303,-0.099118,-0.099118,-0.099118,-0.099118,-0.098846,-0.099661,-0.10047,-0.099661,-0.099389,-0.099118,-0.099932,-0.099932,-0.099932,-0.099661,-0.098575,-0.098846,-0.098846,-0.09776,-0.10129,0.3716,0.3716,0.37269,0.37052,0.50028 0.12866,0.13857,0.11875,0.12866,0.14848,0.098922,0.098922,0.098922,0.08901,0.08901,0.08901,0.10883,0.08901,0.08901,0.10883,0.069186,0.079098,0.08901,0.059274,0.069186,-0.4165,-0.38677,-0.41155,-0.38677,-0.38677 0.22857,0.22793,0.2273,0.22539,0.22475,0.22603,0.22475,0.22475,0.22348,0.22412,0.22475,-0.18143,-0.1738,-0.17634,-0.18079,-0.17507,-0.17761,-0.17698,-0.17761,-0.17825,-0.17634,-0.17475,-0.17571,-0.17889,-0.17825 -0.15073,-0.15073,-0.15106,-0.15237,-0.15172,-0.14844,-0.15041,-0.15204,-0.15041,-0.15106,-0.14746,-0.14844,-0.14942,-0.1491,-0.1491,0.26655,0.26623,0.26623,0.26623,-0.14746,0.26721,0.26655,0.26623,0.26688,0.26786 0.21445,0.25774,0.18028,0.14382,0.11648,0.17572,0.18939,0.1985,0.18483,0.19623,0.18939,0.12103,-0.093145,0.21901,-0.099981,-0.15467,-0.14327,-0.2253,-0.17745,-0.15011,-0.24353,-0.2572,-0.25492,-0.3734,-0.21391 -0.34155,-0.21677,0.041714,0.077366,0.086279,-0.36829,-0.074157,0.041714,0.14867,0.1665,-0.35938,-0.15438,0.095192,0.21106,0.14867,-0.32373,-0.074157,0.18432,0.21106,0.17541,-0.27025,0.0328,0.17541,0.17541,0.21106 0.39573,0.20229,0.064113,-0.12933,-0.12933,0.22992,0.17465,-0.046427,-0.15697,-0.40568,0.14702,0.14702,-0.23987,-0.21224,-0.1846,0.22992,0.14702,0.064113,-0.018792,-0.1017,0.34046,0.036478,-0.1846,-0.15697,-0.21224 -0.42028,-0.030598,0.11373,0.12816,0.17146,-0.30482,-0.13163,0.15703,0.1426,0.17146,-0.39142,-0.0017319,0.12816,0.17146,0.1426,-0.39142,-0.016165,0.12816,0.17146,0.11373,-0.30482,-0.10276,0.1426,0.084865,0.12816 0.2169,0.21502,-0.1787,-0.17897,-0.17843,0.22389,0.37445,-0.17807,-0.17897,-0.1795,0.22201,0.37445,-0.17762,-0.17879,-0.17897,0.21932,0.21717,0.065525,-0.17879,-0.1787,0.06436,0.064898,0.06427,-0.17825,-0.17852 -0.21296,-0.27736,-0.19149,-0.14856,-0.34177,-0.12709,-0.21296,-0.01975,-0.19149,-0.19149,0.13052,0.0017174,-0.01975,-0.062686,-0.2559,0.17346,0.23786,0.10906,0.23786,0.17346,0.17346,0.21639,0.32373,0.23786,0.23786 0.19409,0.19364,-0.11549,-0.12084,-0.12084,0.40656,0.19186,-0.11549,-0.11995,-0.12217,0.39854,-0.12084,-0.11995,-0.12084,-0.12173,0.39498,-0.12084,-0.11995,-0.1195,-0.12039,0.38429,-0.12351,-0.12128,-0.11995,-0.12039 0.23185,0.33094,0.033688,-0.090165,-0.46173,0.108,0.15754,0.033688,0.033688,-0.36264,0.033688,0.25662,0.08323,-0.090165,-0.3131,0.108,0.13277,0.108,-0.090165,-0.28833,0.13277,0.20708,0.0089174,-0.040624,-0.26356 -0.25676,-0.23168,-0.25676,-0.23168,-0.33198,-0.15646,-0.08124,-0.0060178,-0.13139,-0.15646,0.019056,-0.15646,0.019056,0.069204,-0.08124,0.14443,0.11935,0.14443,0.069204,0.04413,0.19457,0.34502,0.14443,0.44532,0.31995 0.20947,0.28307,0.24397,0.23017,0.21637,0.16117,0.23937,0.18187,0.22787,0.17957,-0.1953,-0.16771,0.12668,0.16807,-0.14471,-0.1976,-0.1907,-0.1907,-0.1838,-0.2091,-0.1953,-0.1953,-0.2022,-0.2045,-0.1907 -0.078194,-0.074765,-0.071335,-0.088483,-0.10563,0.034982,-0.0061732,-0.085053,-0.071335,-0.10906,0.0487,0.076136,-0.057617,-0.081624,-0.10563,0.04527,0.079566,0.031552,-0.091912,-0.12278,0.91981,0.062418,0.062418,-0.091912,-0.11935 -0.23074,-0.23375,-0.23375,-0.23275,-0.22973,-0.19458,-0.19759,-0.18855,-0.21065,-0.20663,0.17907,0.18008,0.19414,-0.19257,-0.1323,0.17606,0.17505,0.20418,0.20619,0.19615,0.18208,0.19514,0.19213,0.21623,0.18711 -0.25506,-0.25848,0.1498,0.14615,0.14775,-0.25461,-0.25643,0.14775,0.15048,0.14843,-0.11418,-0.25643,0.14775,0.14752,0.14775,-0.25187,-0.25506,0.14797,0.14843,0.21203,-0.25392,-0.25894,0.14797,0.21408,0.21112 -0.19838,-0.24732,-0.18206,-0.18206,-0.10049,-0.21469,-0.11681,-0.13312,-0.21469,-0.14944,-0.067866,-0.08418,-0.035238,-0.018924,-0.14944,0.095273,0.1279,0.095273,0.046332,0.14422,0.27473,0.19316,0.19316,0.40524,0.51944 -0.11784,-0.13942,-0.18258,0.21668,0.38934,-0.11784,-0.161,-0.10705,0.087191,0.34617,-0.21495,-0.053091,-0.10705,0.033236,0.37855,-0.22575,-0.22575,0.00086327,0.00086327,0.3138,-0.161,-0.17179,-0.0423,-0.0423,0.30301 0.15902,0.16243,0.10177,0.094028,-0.34547,0.077005,0.091242,0.089385,0.093099,-0.34949,0.076696,0.083505,0.090004,0.087838,-0.35104,0.083505,0.077315,0.088147,0.090623,-0.35259,0.15841,0.088147,0.079791,0.079791,-0.55315 -0.23052,-0.2089,-0.20118,-0.36177,-0.31699,-0.039037,-0.02514,-0.031316,-0.34788,-0.32317,0.059791,0.053615,0.044349,0.072145,0.047438,0.078322,0.10303,0.11847,0.13391,0.096852,0.24664,0.22193,0.27752,0.25436,0.27752 0.045224,0.036103,0.023073,-0.039474,-0.27228,0.46698,0.03784,0.02177,-0.034696,-0.23232,0.073023,0.047396,0.023073,-0.17977,-0.23189,0.35492,0.07476,0.029153,-0.16022,-0.28097,0.48175,0.088659,0.00483,-0.14936,-0.22755 -0.34525,-0.0049498,0.08786,0.13426,0.13426,-0.43806,-0.0049498,0.14973,0.10333,0.13426,-0.34525,-0.051355,0.10333,0.072391,0.18067,-0.37619,-0.051355,0.14973,0.1652,0.1652,-0.37619,-0.0049498,0.1188,0.1188,0.18067 0.28422,-0.017852,-0.19747,-0.19747,-0.18658,0.25701,0.2679,-0.15392,-0.1893,-0.19202,0.2679,0.39036,-0.13215,-0.18386,-0.17842,0.1672,0.19442,0.13183,-0.18386,-0.18386,0.15632,0.16448,0.058347,-0.16481,-0.17842 0.24377,0.15037,0.24377,0.080323,-0.29327,0.10367,0.19707,0.17372,0.056973,-0.41002,0.22042,0.10367,0.10367,-0.15317,-0.38667,0.17372,0.10367,-0.013076,-0.19987,-0.26992,0.10367,0.10367,-0.013076,-0.15317,-0.26992 0.55303,0.063681,-0.012366,-0.033857,-0.17934,0.44887,-0.060308,-0.060308,-0.1595,-0.1595,0.42408,-0.033857,-0.12644,-0.14793,-0.12974,0.16618,0.045496,-0.088413,-0.090066,-0.17603,0.14634,0.0074724,-0.11486,-0.070228,-0.2124 0.46726,-0.11283,-0.11145,-0.11606,-0.11467,0.46864,-0.11421,-0.10869,-0.11329,-0.10639,0.46404,-0.11283,-0.11007,-0.11099,-0.10915,0.26883,-0.092116,-0.064492,-0.09764,-0.10178,0.27252,-0.041472,-0.041472,-0.055744,-0.10593 -0.20263,-0.12092,-0.36604,-0.17539,-0.17539,-0.28433,-0.22986,-0.14816,-0.093689,-0.14816,-0.12092,-0.093689,0.015252,-0.039219,0.069722,0.12419,0.15143,0.31484,0.12419,0.069722,0.2059,0.23313,0.31484,0.2059,0.36931 -0.31777,-0.027127,0.045535,0.14242,0.21508,-0.31777,-0.0029065,-0.051348,0.16664,0.2393,-0.51154,-0.12401,0.16664,0.069755,0.21508,-0.29355,-0.051348,0.069755,0.069755,0.1182,-0.22089,-0.075568,0.021314,0.14242,0.31196 0.13457,0.13457,0.13334,0.096507,0.065812,0.12311,0.12311,0.12311,0.12188,0.056808,0.10919,0.10797,0.10879,0.10919,0.089959,0.097735,0.098963,0.10306,0.026112,0.014243,-0.39544,-0.39585,-0.39626,-0.39544,-0.39503 0.2376,-0.09416,-0.088875,-0.086473,-0.097283,0.24096,-0.09392,-0.096322,-0.093199,-0.10305,0.34954,-0.091758,-0.092479,-0.096803,-0.10617,0.53836,-0.090317,-0.090797,-0.089596,-0.10689,0.53956,-0.090797,-0.10665,-0.094881,-0.095602 0.58067,0.07749,0.052331,-0.048305,-0.14894,0.40456,0.07749,-0.023146,-0.24958,-0.22442,0.2536,0.10265,-0.048305,-0.1741,-0.22442,0.17813,0.027172,0.0020127,-0.098623,-0.27474,0.10265,0.0020127,-0.023146,-0.22442,-0.098623 -0.25403,-0.2548,-0.056695,0.19687,0.15882,-0.25372,-0.25572,0.19779,0.19733,0.15774,-0.25372,-0.25418,0.19779,0.16159,0.15681,-0.25403,-0.25403,0.16298,0.15758,0.15974,-0.25311,-0.048993,0.15928,0.16359,0.16513 -0.38648,0.04431,0.07508,0.10585,0.22893,-0.29417,-0.048002,0.10585,0.13662,0.16739,-0.30955,-0.017232,0.04431,0.19816,0.16739,-0.27878,-0.063387,0.13662,0.07508,0.2597,-0.38648,-0.30955,0.04431,0.16739,0.13662 -0.32538,-0.024102,-0.024102,0.20445,0.23562,-0.36693,-0.024102,0.18367,0.14212,0.15251,-0.34616,-0.034491,0.059009,0.12134,0.15251,-0.3981,0.038231,0.069397,0.21484,0.11095,-0.38771,-0.086435,0.069397,0.12134,0.14212 0.25761,-0.13101,-0.15744,-0.18231,-0.19786,0.25295,0.2545,-0.13723,-0.1792,-0.18231,0.25761,0.24673,-0.12324,-0.17765,-0.18076,0.25606,0.23274,-0.10459,-0.17299,-0.17143,0.24051,0.2172,0.21875,-0.17765,-0.15899 0.11983,0.10638,-0.057738,-0.12635,-0.037559,0.41444,0.078132,-0.085988,-0.091369,-0.16132,0.41444,-0.056393,-0.083297,-0.088678,-0.24069,0.33238,-0.034869,-0.088678,-0.12635,-0.24742,0.2853,0.30682,-0.061773,-0.22724,-0.24204 0.20284,0.18707,0.17076,-0.211,-0.21481,0.23221,0.23874,0.17076,-0.21481,-0.21698,0.24254,0.24363,-0.20719,-0.21481,-0.21535,0.22405,0.18,0.17021,-0.21372,-0.21481,0.15118,-0.032629,-0.037523,-0.20611,-0.21426 -0.25662,-0.039671,-0.0086781,0.11529,0.23927,-0.41159,-0.0086781,0.084301,0.084301,0.14629,-0.31861,-0.070664,0.17728,0.17728,0.20827,-0.28762,-0.22563,-0.16364,0.27026,0.17728,-0.28762,-0.070664,0.053308,0.17728,0.23927 0.19945,0.20545,-0.14701,-0.14839,-0.1507,0.43596,-0.14023,-0.14347,-0.14916,-0.14963,0.25041,0.25349,-0.14547,-0.14809,-0.14732,0.24964,0.25149,-0.14331,-0.14701,-0.15024,0.24995,0.25796,-0.14701,-0.14793,-0.14886 -0.26274,-0.29301,0.10049,0.1913,0.28211,-0.23247,-0.17193,-0.081121,0.1913,0.28211,-0.23247,-0.23247,0.16103,0.1913,0.1913,-0.23247,0.039955,0.039955,0.1913,0.13076,-0.29301,-0.23247,0.070224,-0.020583,0.22157 0.93107,0.023386,-0.062851,-0.10524,-0.10085,0.13886,-0.020463,-0.020463,-0.084776,-0.11401,0.065774,-0.020463,-0.029233,-0.071621,-0.095007,0.074544,-0.046773,-0.054081,-0.065774,-0.089161,0.038003,-0.052619,-0.058466,-0.073083,-0.1067 -0.017305,-0.026702,0.035804,-0.035689,-0.045494,-0.051622,-0.059384,0.031718,-0.049171,-0.049171,-0.051622,-0.051622,-0.049988,-0.048354,-0.049171,-0.054073,-0.051213,-0.054073,-0.051622,-0.049171,0.97297,-0.047945,-0.049579,-0.047128,-0.050396 0.32268,0.31797,0.32235,0.16158,0.16057,0.1562,0.16057,0.15654,0.15587,0.15452,0.15721,0.16125,-0.12261,-0.12934,-0.13068,-0.22183,-0.22351,-0.21342,-0.12295,-0.1253,-0.22183,-0.22149,-0.22014,-0.22014,-0.21409 0.3405,-0.062937,-0.049489,-0.10328,-0.089833,0.32706,-0.036041,-0.13018,-0.14363,-0.076385,0.27326,-0.076385,-0.23776,-0.076385,-0.089833,0.50188,-0.062937,-0.14363,-0.13018,-0.10328,0.47499,-0.062937,-0.036041,-0.10328,-0.10328 0.21391,0.29031,0.26484,0.21391,0.26484,0.21391,0.16298,0.26484,0.11205,0.035652,-0.040745,0.035652,-0.040745,-0.040745,0.010186,-0.16807,-0.015279,-0.040745,-0.091677,-0.14261,-0.2954,-0.34634,-0.34634,-0.2954,-0.21901 -0.24824,-0.24531,0.17778,0.15627,0.13573,-0.2471,-0.24319,0.18104,0.15643,0.1385,-0.24286,-0.24254,0.1874,0.16148,0.1385,-0.244,-0.24237,0.19066,0.168,0.14535,-0.24368,-0.24351,0.1931,0.16507,0.14747 -0.20051,-0.22157,-0.11626,0.01011,0.32604,-0.15839,-0.2637,-0.17945,0.13648,0.22073,-0.074138,-0.17945,-0.032014,0.19967,0.26285,-0.13732,-0.15839,0.031172,0.15754,0.30498,-0.22157,-0.30582,0.13648,0.13648,0.32604 0.26891,0.26891,-0.15009,-0.15442,-0.14191,0.27372,-0.15394,-0.15394,-0.15298,-0.14288,0.26843,0.25448,-0.1525,-0.15538,-0.13855,0.26939,0.2617,-0.15298,-0.15394,-0.13999,0.26651,0.26699,-0.15442,-0.15586,-0.14528 0.10973,-0.054118,-0.055436,-0.060267,-0.050604,-0.043136,-0.053678,-0.05851,-0.053678,-0.050164,0.10753,-0.053678,-0.056314,-0.053678,-0.052361,-0.055436,-0.054118,-0.055875,-0.053678,-0.055436,0.95576,-0.047529,-0.058071,-0.053678,-0.043575 0.059715,0.29316,0.011558,-0.12557,-0.25372,0.043391,0.25806,-0.018643,-0.10108,-0.26514,0.051553,0.23439,0.005028,-0.10353,-0.25616,0.4213,0.12012,-0.0080317,-0.11985,-0.28473,0.37968,0.11848,-0.038232,-0.137,-0.28473 -0.31784,-0.24099,0.097134,0.15861,0.15861,-0.37931,-0.10267,0.097134,0.1125,0.12787,-0.33321,-0.071928,0.17398,0.1125,0.097134,-0.36394,-0.010451,0.17398,0.17398,0.18935,-0.33321,0.035657,0.081765,0.12787,0.23546 0.20496,0.20139,-0.10339,-0.11233,-0.27142,0.21837,0.20139,-0.10786,-0.11501,-0.073898,0.22284,0.16385,-0.14272,-0.13378,-0.11233,0.16564,0.14687,-0.19277,-0.17936,-0.13199,0.55532,0.15759,-0.17668,-0.17936,-0.20528 0.19022,0.19234,0.18916,0.19499,0.19446,0.17803,0.17485,0.17644,0.17644,0.17644,-0.21791,0.15842,0.16054,0.15524,0.16107,-0.22109,-0.22374,-0.22374,-0.22692,-0.22957,-0.22639,-0.22533,-0.22745,-0.22692,-0.22957 0.3103,0.34559,0.34692,0.34869,0.34972,0.042739,0.041557,0.040081,0.040376,0.039933,0.041114,0.040671,0.039638,-0.11688,-0.11688,-0.11659,-0.11629,-0.11644,-0.11732,-0.11836,-0.27384,-0.27266,-0.27207,-0.27104,-0.11895 -0.1996,-0.10111,-0.068285,0.12869,0.095862,-0.36375,-0.0026264,-0.068285,0.16152,0.26001,-0.13394,-0.16677,-0.10111,0.063033,0.16152,-0.23243,-0.068285,-0.0026264,0.29284,0.32567,-0.39658,-0.16677,0.030203,0.19435,0.3585 -0.38859,-0.38859,-0.32144,-0.34382,-0.41098,0.014326,0.10386,0.014326,-0.11998,-0.097596,0.12625,0.12625,0.12625,0.12625,0.059095,0.10386,0.1934,0.1934,0.17102,0.12625,0.081479,0.081479,0.12625,0.17102,0.12625 0.22141,0.21318,0.21044,0.21318,0.22689,0.18577,0.19673,0.19948,0.20222,0.2077,-0.10758,0.18029,0.17206,-0.14048,-0.044523,-0.21724,-0.22272,-0.099354,-0.21724,-0.22821,-0.21998,-0.23369,-0.21998,-0.23095,-0.2474 0.35848,0.30212,0.38666,0.38666,0.3303,0.1612,0.076657,-0.0078911,0.020291,-0.0078911,-0.092439,-0.036074,-0.17699,-0.17699,-0.17699,-0.064256,-0.036074,-0.064256,-0.12062,-0.17699,-0.12062,-0.12062,-0.26153,-0.12062,-0.26153 -0.15112,-0.15078,-0.1507,-0.15045,-0.1507,-0.15045,-0.15019,-0.14986,-0.14977,-0.14952,-0.15011,-0.14986,-0.14969,-0.1491,-0.14901,0.26806,0.26629,0.26612,0.26536,-0.14868,0.26823,0.26452,0.26873,0.26679,0.26587 0.066882,-0.028427,-0.084369,-0.14445,-0.21904,0.24092,-0.0056356,-0.071937,-0.14653,-0.19625,0.35902,-0.0035637,-0.059506,-0.15274,-0.18175,0.41082,0.035803,-0.04293,-0.12995,-0.18796,0.4046,0.42532,-0.018067,-0.1113,-0.15896 0.29116,0.19634,0.046395,-0.11788,-0.27334,0.31762,0.19193,0.013319,-0.11788,-0.27334,0.29557,0.19965,0.023241,-0.13111,-0.26121,0.34187,0.20736,0.051907,-0.093627,-0.25239,-0.11016,-0.10024,-0.073781,-0.10024,-0.27113 0.090672,0.25493,0.05782,-0.205,-0.17215,0.28778,0.15638,-0.13929,-0.17215,-0.205,0.32064,-0.040737,0.090672,-0.073589,-0.17215,0.18923,0.22208,-0.205,-0.13929,-0.36926,0.35349,0.15638,-0.0078845,-0.0078845,-0.2707 -0.35366,-0.35366,-0.35366,-0.199,-0.27633,-0.12167,-0.12167,-0.044336,-0.14744,-0.044336,0.032994,-0.070112,0.1361,0.18765,-0.044336,0.1361,0.1361,0.1361,0.1361,0.0072175,0.29076,0.21343,0.29076,0.1361,0.29076 -0.15157,-0.1754,-0.24689,-0.31839,-0.43754,-0.0085793,-0.068158,-0.056242,-0.13965,-0.1754,-0.044326,-0.0085793,-0.0085793,-0.0085793,-0.032411,0.027168,0.062915,0.086746,0.039084,0.086746,0.22973,0.32506,0.30123,0.34889,0.37272 0.19946,0.13342,-0.26287,-0.19682,-0.13077,0.33156,0.10039,-0.09775,-0.09775,-0.031703,0.23249,0.23249,-0.064726,-0.09775,-0.26287,0.16644,0.33156,-0.064726,-0.1638,-0.1638,0.36458,0.16644,-0.22984,-0.19682,-0.19682 0.24159,0.2446,0.24196,0.19972,0.19594,0.23983,0.24159,0.23995,0.19783,0.19607,0.23681,-0.17587,-0.176,-0.17637,-0.177,-0.17662,-0.17662,-0.177,-0.17688,-0.177,-0.17675,-0.17763,-0.1775,-0.17713,-0.1775 0.06728,0.2859,0.088137,-0.21417,-0.21262,0.068825,0.29079,0.022475,-0.21417,-0.21468,0.28976,0.29362,0.028655,-0.21237,-0.21468,0.29336,0.29079,0.026337,-0.21262,-0.21468,0.071915,0.025307,0.018355,-0.21443,-0.23709 0.31422,0.20439,0.19938,-0.23058,-0.23124,0.14497,0.14564,-0.024275,-0.22857,-0.23158,0.1403,0.1433,0.21341,-0.22724,-0.23291,0.13462,0.14297,-0.023942,-0.22624,-0.23291,0.13362,0.14063,0.29152,-0.22757,-0.23191 0.64503,0.48109,0.31715,0.21283,0.17557,-0.062894,-0.04799,-0.085249,-0.077798,-0.10015,-0.092701,-0.077798,-0.10015,-0.10015,-0.092701,-0.077798,-0.092701,-0.062894,-0.10015,-0.10015,-0.10015,-0.085249,-0.12251,-0.12996,-0.12251 -0.18037,-0.16643,0.1865,0.25615,0.2608,-0.18965,-0.18037,-0.068914,0.25615,0.24687,-0.18501,-0.16179,-0.096777,0.22365,0.27473,-0.18965,-0.1943,-0.15715,0.18185,0.26544,-0.18501,-0.18965,-0.17572,-0.08749,0.25615 0.32804,0.32804,0.12228,0.23986,0.23986,0.15168,0.063492,0.26925,0.15168,0.26925,0.0047031,-0.14227,0.0047031,0.092887,-0.11287,-0.25985,-0.23045,-0.17166,-0.23045,-0.17166,-0.23045,-0.23045,-0.17166,-0.14227,-0.17166 0.08365,0.19276,0.12002,0.10184,-0.29823,0.19276,0.1382,0.1382,0.065465,-0.44371,0.08365,0.08365,0.12002,0.065465,-0.28005,0.065465,0.08365,0.047281,0.1382,-0.40734,0.10184,0.12002,-0.0072739,-0.025459,-0.48008 -0.16659,-0.16659,-0.16559,0.12475,0.12475,-0.16639,-0.16619,-0.16719,0.32445,0.31723,-0.16779,-0.16559,-0.16719,0.11512,0.32485,-0.16699,-0.16659,-0.1688,0.11973,0.32425,-0.16779,-0.1708,0.11833,0.12375,0.32285 0.51763,-0.086564,-0.097549,-0.15248,-0.15248,0.4627,-0.086564,-0.14149,-0.075579,-0.10853,0.23201,-0.053608,-0.075579,-0.064593,-0.11952,0.39679,-0.075579,-0.086564,-0.053608,-0.11952,0.31989,-0.064593,-0.11952,-0.11952,-0.075579 -0.081449,-0.030932,-0.11662,-0.052461,-0.046279,-0.079531,-0.076973,-0.04223,-0.041377,-0.038606,-0.053527,-0.040737,-0.046066,-0.048198,-0.048624,-0.041164,-0.053527,-0.058216,-0.059921,0.40347,-0.044148,-0.04905,-0.061839,-0.063118,0.87112 -0.36281,-0.36281,-0.41617,-0.37348,-0.4055,-0.021342,0,-0.021342,-0.021342,0.064026,0.13872,0.11738,0.11738,0.10671,0.13872,0.11738,0.14939,0.13872,0.10671,0.10671,0.13872,0.074697,0.14939,0.17074,0.14939 -0.16921,-0.17057,-0.16784,-0.17057,-0.17467,-0.16921,-0.1733,-0.17877,-0.1774,-0.1774,-0.1774,-0.19105,-0.19379,-0.18832,0.21858,0.23906,0.23633,0.22541,0.21449,0.21449,0.24043,0.22814,0.23087,0.21449,0.21722 0.19935,0.14085,0.060952,0.0024541,-0.054617,0.18651,0.13086,0.060952,-0.014667,-0.36851,0.19935,0.12088,0.055245,-0.0003995,-0.38848,0.19792,0.13514,0.056672,0.0081612,-0.37707,0.18794,0.12944,0.068086,-0.33284,-0.40418 -0.14949,-0.14812,-0.14995,-0.1504,-0.14949,-0.14766,-0.14903,-0.14858,-0.14903,-0.1504,-0.14538,-0.14538,-0.14766,-0.14721,-0.14812,-0.15885,0.24802,0.24711,0.24437,0.24665,0.24323,0.24437,0.32908,0.24186,0.34004 0.15385,0.14919,0.12329,0.09843,-0.29003,0.16058,0.14453,0.1264,0.10568,-0.28847,0.1611,0.14401,0.11397,-0.29106,-0.29158,0.15489,0.13831,0.11915,-0.28847,-0.29313,0.16058,0.14608,0.12484,-0.28899,-0.29313 -0.24193,-0.24421,0.19222,0.12679,0.12195,-0.24193,-0.24364,0.12565,0.12508,0.12878,-0.24364,-0.24563,0.18596,0.18767,0.18511,-0.24279,-0.24421,0.17942,0.1817,0.1743,-0.24193,-0.24449,0.19564,0.18426,0.13987 0.33394,0.21295,0.15245,0.27344,0.21295,0.091954,0.1827,0.27344,0.24319,0.091954,-0.059286,0.031458,-0.059286,0.0012099,0.031458,-0.27102,-0.089534,-0.18028,-0.089534,0.0012099,-0.27102,-0.27102,-0.27102,-0.27102,-0.30127 0.16779,0.13929,0.12426,-0.28888,-0.29283,0.16581,0.14127,0.1203,-0.28828,-0.29264,0.16403,0.14286,0.12188,-0.28789,-0.29145,0.16027,0.13652,0.1199,0.10427,-0.29165,0.15809,0.13712,0.11575,0.10467,-0.29046 -0.14996,-0.14962,-0.15013,-0.14996,-0.14945,-0.14894,-0.14996,-0.15047,-0.14911,-0.15064,-0.15013,-0.15013,-0.15064,-0.14996,-0.14945,0.27875,0.27604,0.24893,0.25062,-0.15013,0.27604,0.27672,0.26706,0.25537,0.2691 0.36902,0.31575,0.18792,0.11335,0.060082,0.33706,0.25184,0.17726,0.11335,0.0068179,0.070735,0.070735,0.070735,0.0068179,0.0068179,-0.19559,-0.18493,-0.21689,-0.18493,-0.21689,-0.22755,-0.19559,-0.24885,-0.19559,-0.29146 -0.17471,-0.23454,-0.29437,-0.14479,-0.23454,-0.11488,-0.17471,-0.20463,-0.29437,-0.14479,-0.055045,-0.055045,0.094535,0.12445,-0.11488,0.12445,0.33386,0.094535,0.094535,0.034703,0.30395,0.18428,0.30395,0.27403,0.27403 -0.1561,-0.1564,-0.1561,-0.1564,-0.1564,-0.1562,-0.1564,-0.1564,-0.1565,-0.1562,-0.1563,-0.1561,-0.1564,-0.15671,-0.15579,0.17711,0.17456,0.17294,0.36975,0.37544,0.17639,0.17558,0.17294,0.17182,0.37788 0.30205,0.32222,0.44828,0.38021,0.36256,0.28188,-0.068579,-0.053451,-0.0711,-0.10892,-0.12405,-0.10136,-0.11396,-0.13665,-0.11648,-0.12153,-0.13917,-0.12909,-0.13665,-0.035802,-0.119,-0.11648,-0.13413,-0.13665,-0.13413 0.27899,0.29779,0.12859,-0.040608,-0.26621,0.20379,0.20379,0.10979,-0.003008,-0.39781,0.27899,0.090992,0.18499,-0.078208,-0.32261,0.12859,0.12859,-0.003008,-0.097008,-0.30381,-0.021808,-0.003008,-0.003008,-0.20981,-0.28501 -0.10338,-0.096356,-0.089724,-0.088553,-0.096747,-0.091284,-0.094406,-0.091284,-0.088943,-0.087773,-0.085042,-0.088943,-0.084261,-0.087383,-0.08114,-0.08036,-0.08036,-0.088553,-0.087773,-0.075287,0.60868,0.58488,0.29147,0.19393,0.088584 0.42815,0.26044,0.2582,0.11041,0.10788,0.37935,0.26016,0.25904,0.10452,0.12948,-0.15153,-0.15209,-0.15097,-0.15125,-0.15013,-0.15433,-0.15349,-0.15377,-0.15405,-0.15209,-0.15546,-0.15377,-0.15546,-0.15546,-0.15377 -0.23858,-0.23078,-0.24053,-0.23858,-0.23663,-0.21907,-0.21517,-0.21322,-0.21907,-0.1859,-0.22102,0.20432,0.19457,0.18286,0.14969,0.21017,0.20042,0.18676,0.19066,0.13798,0.19457,0.18871,0.17701,0.1653,0.075547 0.9494,0.074431,0.001842,-0.052014,-0.048111,0.099407,-0.044989,-0.066063,-0.073869,-0.069185,-0.048892,-0.044989,-0.067624,-0.069185,-0.07543,-0.0051827,-0.066063,-0.062161,-0.079332,-0.073869,0.074431,-0.049672,-0.073088,-0.077771,-0.052014 0.1756,0.1756,0.1756,0.29045,0.26493,-0.028585,0.11179,0.073505,0.1756,0.15007,0.11179,0.13731,0.18836,0.12455,0.20112,-0.20724,-0.20724,-0.20724,-0.19448,-0.20724,-0.19448,-0.24553,-0.29657,-0.30933,-0.25829 0.05584,0.13048,-0.091426,-0.20036,-0.31939,0.06391,0.20311,-0.045027,-0.16203,-0.26895,0.041719,0.19302,-0.028889,-0.14791,-0.26492,0.40283,0.26363,-0.016784,-0.1116,-0.2044,0.38265,0.29389,0.057858,-0.07327,-0.15396 0.91051,0.1396,0.034036,-0.023543,-0.10351,0.1396,0.024439,-0.0075492,-0.029941,-0.12591,0.027638,-0.023543,-0.036339,-0.074725,-0.11311,0.0084449,-0.029941,-0.077923,-0.090719,-0.10991,-0.0043504,-0.045935,-0.10032,-0.1291,-0.15789 -0.097418,-0.12786,-0.036532,-0.082196,-0.12786,-0.1583,-0.11264,-0.11264,-0.1583,-0.082196,-0.082196,-0.066975,-0.066975,-0.097418,-0.11264,-0.066975,-0.066975,-0.12786,-0.097418,-0.097418,0.38967,0.37445,0.42012,0.37445,0.42012 0.12248,0.13572,0.12579,0.14565,0.1291,0.14565,0.12579,0.12579,0.13903,0.12579,0.1291,0.13241,0.13572,0.13241,0.13572,0.11917,0.076134,-0.016551,-0.14234,-0.23502,-0.32771,-0.35088,-0.36081,-0.37736,-0.37074 -0.16081,-0.15944,-0.16095,0.28587,0.19388,-0.16081,-0.16095,-0.1604,0.22732,0.19498,-0.16163,-0.16135,-0.16135,0.25421,0.31767,-0.1619,-0.16231,-0.16095,0.25502,0.18692,-0.16354,-0.16176,-0.16135,0.31657,0.18706 -0.22829,-0.22379,-0.24177,-0.22829,-0.22829,0.0098865,-0.18784,-0.2193,-0.22829,-0.23278,0.17616,0.18515,-0.0080889,-0.15639,-0.20582,0.2211,0.18515,0.17616,0.18964,0.1492,0.23009,0.2166,0.22559,0.21211,0.21211 0.21582,0.21164,0.21499,0.21666,0.21582,0.22585,0.23337,0.23086,0.2317,0.23504,0.2459,-0.14594,-0.1543,-0.16766,-0.17017,-0.17602,-0.17685,-0.18521,-0.18437,-0.18939,-0.18521,-0.18604,-0.18354,-0.18604,-0.18688 -0.099934,-0.09904,-0.099636,-0.099934,-0.10053,-0.09755,-0.098742,-0.098742,-0.098742,-0.099636,-0.095166,-0.095762,-0.09606,-0.098146,-0.09755,-0.096954,-0.096656,-0.09755,-0.096358,-0.098146,0.34318,0.33632,0.56726,0.36404,0.35003 0.27665,0.15999,-0.1025,-0.21082,-0.22332,0.27249,0.18707,0.06833,-0.18999,-0.12958,0.29332,0.11624,0.037082,-0.16499,-0.12541,0.30999,0.049581,-0.027499,-0.14208,-0.13583,0.25999,0.07458,-0.029582,-0.50664,-0.11708 0.13934,0.19644,0.19644,0.25354,0.13934,0.31065,0.082231,0.11078,0.053678,0.19644,0.13934,0.053678,0.082231,0.11078,0.11078,-0.17474,-0.031979,-0.14619,-0.11764,-0.14619,-0.2604,-0.46026,-0.2604,-0.34605,-0.23184 0.2886,-0.10019,-0.099667,-0.097061,-0.093935,0.29798,-0.097061,-0.096019,-0.10227,-0.094977,0.29225,-0.096019,-0.097583,-0.094456,-0.09185,0.52625,-0.094456,-0.10279,-0.094456,-0.097061,0.52781,-0.09185,-0.10019,-0.094977,-0.096019 -0.13268,-0.13723,-0.12358,-0.041678,0.36782,-0.13723,-0.12358,-0.10538,-0.041678,0.38602,-0.13268,-0.13723,-0.14633,0.090272,0.40877,-0.12813,-0.11903,-0.12813,0.008372,0.39512,-0.13723,-0.14178,-0.11903,0.022022,0.35417 -0.23608,-0.23608,-0.23558,-0.23558,-0.23508,-0.23608,-0.23558,-0.23459,-0.23658,-0.23658,0.1776,0.17486,0.18409,0.19132,0.18284,-0.020138,0.19057,0.18907,0.18458,0.18483,-0.021634,0.18259,0.18583,0.18434,0.18708 -0.029596,0.080232,0.10335,0.033989,-0.3533,-0.00069365,0.10913,0.12069,-0.00069365,-0.37064,0.12069,0.15538,0.14382,-0.11052,-0.33018,0.1496,0.25364,0.21896,0.010867,-0.36486,0.13226,0.20162,0.19584,-0.09896,-0.37064 0.34822,-0.05511,-0.10892,-0.12686,-0.15113,0.33661,-0.082281,-0.10998,-0.12897,-0.14717,0.34163,0.30892,-0.10576,-0.12844,-0.15034,0.33661,-0.1171,-0.11314,-0.13003,-0.15614,0.32765,0.21844,-0.11578,-0.13768,-0.15324 0.42307,0.3291,0.02153,-0.13225,-0.27749,0.32055,0.35473,-0.046818,-0.13225,-0.28604,0.29492,0.072791,-0.046818,-0.080992,-0.24332,0.098421,-0.012644,-0.063905,-0.089536,-0.20914,0.072791,-0.021188,-0.029731,-0.10662,-0.20914 -0.39222,-0.38879,-0.39565,-0.39222,-0.40251,0.050365,0.043503,0.043503,0.033211,0.012626,0.11555,0.10869,0.11212,0.11898,0.091536,0.13271,0.12928,0.12584,0.13614,0.12241,0.12584,0.12241,0.12584,0.11555,0.10526 0.3625,0.31464,-0.11301,-0.11339,-0.11358,0.36402,-0.11225,-0.11169,-0.1132,-0.11282,0.36535,-0.11206,-0.11055,-0.1132,-0.11263,0.36098,-0.11112,-0.11358,-0.11282,-0.11206,0.36573,-0.10808,-0.11188,-0.1132,-0.11206 -0.1548,-0.14188,-0.064301,0.28479,0.3796,-0.15911,-0.1548,-0.08154,0.21152,0.37098,-0.14188,-0.14188,-0.1505,0.00034478,0.33219,-0.1505,-0.14188,-0.1505,0.0046545,0.31926,-0.15911,-0.14188,-0.1548,-0.08154,0.26755 0.40107,0.39556,0.3974,0.38822,0.39373,-0.092469,-0.090634,-0.097973,-0.090634,-0.097973,-0.1365,-0.13834,-0.13467,-0.14384,-0.14201,-0.10898,-0.10531,-0.11999,-0.11265,-0.11265,-0.068618,-0.075957,-0.061279,-0.028254,-0.017246 0.30052,0.23694,0.20515,0.13097,0.088587,0.26873,0.23694,0.13097,0.12038,0.077991,0.17336,0.15217,0.16276,0.067394,-0.11275,-0.17633,-0.2505,-0.22931,-0.21871,-0.2717,-0.13394,-0.19752,-0.28229,-0.19752,-0.28229 -0.29453,-0.18934,-0.37343,-0.32083,-0.18934,-0.0052595,-0.16305,-0.11045,-0.24194,-0.21564,0.12623,0.12623,0.099931,-0.0052595,-0.057855,0.25772,0.12623,0.17882,0.099931,0.12623,0.31031,0.36291,0.099931,0.12623,0.12623 0.94944,0.020302,-0.045188,-0.082026,-0.07384,0.098071,-0.028815,-0.041095,-0.069747,-0.077933,0.05714,-0.028815,-0.028815,-0.082026,-0.082026,0.048954,-0.045188,-0.045188,-0.069747,-0.10658,-0.0042568,-0.028815,-0.057467,-0.094305,-0.082026 0.20239,0.17467,0.19459,-0.25759,-0.26798,0.13569,0.11403,0.15734,-0.27838,-0.26192,0.12096,0.12789,0.16774,-0.26365,-0.26625,0.13309,0.12789,0.14695,-0.25585,-0.26798,0.16774,0.12962,0.1175,0.16774,-0.26625 -0.28654,-0.31176,-0.26132,-0.41266,-0.28654,-0.0090805,0.016143,-0.1352,-0.18565,-0.18565,0.19271,0.041367,0.14226,-0.0090805,0.041367,0.14226,0.091814,0.21793,0.016143,0.041367,0.2936,0.26838,0.21793,0.14226,0.21793 -0.16393,-0.14291,-0.091873,-0.1234,0.29093,-0.16993,-0.16393,-0.14742,0.28192,0.27742,-0.16543,-0.17294,-0.13841,0.26091,0.26091,-0.16843,-0.16843,-0.15192,0.2564,0.2534,-0.17744,-0.14291,-0.096376,0.2489,0.2549 -0.20809,-0.20809,-0.057737,0.21291,0.15276,-0.20809,-0.17802,-0.057737,0.15276,0.39333,-0.26824,-0.20809,0.032477,-0.057737,0.24298,-0.26824,-0.027666,-0.057737,0.15276,0.24298,-0.29831,0.09262,-0.057737,0.12269,0.36326 0.4823,0.41695,0.28624,0.25357,0.3516,0.024834,0.090186,0.12286,-0.0078423,-0.073195,-0.10587,-0.073195,-0.13855,-0.10587,-0.17122,-0.0078423,-0.17122,-0.073195,-0.13855,-0.10587,-0.17122,-0.17122,-0.13855,-0.13855,-0.23658 0.34477,0.20485,0.19085,0.13488,0.036939,0.20485,0.23283,0.20485,0.1069,0.092908,0.12089,0.13488,0.036939,0.092908,0.036939,-0.21492,-0.21492,-0.14496,-0.061006,-0.08899,-0.36883,-0.32686,-0.31286,-0.13097,-0.31286 0.028227,0.1492,0.1492,0.10887,-0.35485,0.028227,0.088713,0.1492,0.0080648,-0.35485,0.1492,0.18952,0.088713,0.12904,-0.39517,0.10887,0.12904,0.028227,0.12904,-0.35485,0.048389,0.10887,0.088713,0.028227,-0.47582 0.24742,0.011733,-0.15222,-0.18296,-0.18168,0.36782,0.037351,-0.062558,-0.18424,-0.27518,0.042474,0.03607,-0.077929,-0.17656,-0.22395,0.32299,0.21924,0.13085,-0.2137,-0.22395,0.35629,0.20515,0.13726,0.06553,-0.22523 -0.15041,-0.14986,-0.15041,-0.15041,-0.15041,-0.15004,-0.14948,-0.15004,-0.15004,-0.14948,-0.15041,-0.1493,-0.14986,-0.15041,-0.14967,0.26889,0.26517,0.2635,0.26573,-0.14967,0.26536,0.26592,0.27261,0.2674,0.26536 0.49551,0.50121,0.5109,0.17957,0.18527,-0.086751,-0.088462,-0.090743,-0.092454,-0.086181,-0.091313,-0.093594,-0.093594,-0.093594,-0.097586,-0.091884,-0.094735,-0.095876,-0.099867,-0.10158,-0.089032,-0.090743,-0.096446,-0.098727,-0.099297 0.19212,0.06525,0.06525,-0.27912,-0.38787,0.15587,0.21025,0.11962,-0.1885,-0.42412,0.11962,0.11962,0.11962,-0.0435,-0.406,0.11962,0.11962,0.174,-0.00725,-0.20662,0.13775,0.11962,0.22837,0.047125,-0.17037 -0.21733,-0.21972,-0.22051,-0.2221,-0.22289,-0.21972,-0.22051,-0.2213,-0.22448,-0.22369,-0.22289,0.1389,0.14963,0.15479,0.1532,0.14089,0.14367,0.2513,0.1532,0.15519,0.14407,0.31484,0.2366,0.15439,0.14446 -0.15179,-0.11633,0.025535,0.1674,0.13193,-0.22272,-0.15179,-0.18726,0.27379,0.34472,-0.22272,-0.11633,0.025535,0.096466,0.27379,-0.15179,-0.29365,-0.11633,-0.0099303,0.38019,-0.22272,-0.11633,-0.11633,0.1674,0.30926 0.18784,0.19411,-0.18154,-0.20663,-0.22702,0.19411,0.18706,0.17843,-0.19252,-0.22859,0.19411,0.19568,0.18784,-0.19879,-0.22467,0.19255,0.19333,0.1996,-0.20193,-0.22545,0.19019,0.19882,-0.19016,-0.19565,-0.22075 -0.19008,-0.19745,-0.204,-0.19336,-0.19131,-0.18353,-0.18312,-0.204,-0.18435,-0.1823,-0.18148,-0.18353,-0.20073,0.15017,0.15999,0.18333,0.22837,0.24352,0.25458,0.17351,0.19357,0.22837,0.23656,0.23943,0.18784 -0.16815,-0.1307,0.22909,0.22374,0.22909,-0.18019,-0.15879,-0.16013,0.22775,0.2331,-0.2056,-0.1628,-0.16815,0.22775,0.21571,-0.2056,-0.20159,-0.16815,0.22106,0.22507,-0.20961,-0.18821,-0.16548,0.22507,0.21571 0.22515,0.15523,0.12027,-0.019578,-0.33422,0.085304,-0.019578,0.050343,-0.019578,-0.50903,0.29507,0.085304,0.085304,-0.019578,-0.29926,0.22515,0.015383,0.015383,-0.019578,-0.36919,0.26011,0.12027,0.12027,-0.019578,-0.22934 0.18295,0.1541,0.16853,0.12524,-0.4519,0.12524,0.1541,0.16853,0.067526,-0.36533,0.038669,0.067526,0.02424,0.11081,-0.27876,0.096383,0.096383,0.053097,0.0098114,-0.40862,0.096383,0.11081,0.038669,0.038669,-0.42305 -0.1756,-0.17603,-0.17589,-0.17691,-0.17618,-0.17574,-0.17691,-0.17603,-0.17676,-0.17632,-0.17763,-0.17691,-0.174,-0.17487,0.20598,0.23361,0.32465,0.20264,0.20424,0.20467,0.21413,0.21529,0.24583,0.20627,0.20846 -0.25432,-0.35855,-0.42804,-0.39329,-0.34118,0.0062538,0.0062538,-0.028489,-0.11535,-0.063233,0.17997,0.12785,0.058369,0.07574,0.0062538,0.23208,0.17997,0.14523,0.07574,0.040997,0.24946,0.17997,0.21471,0.11048,0.093112 0.2144,0.2144,0.23263,0.17794,0.10501,0.2144,0.2691,0.19617,0.14148,0.06855,0.10501,0.17794,0.14148,-0.077301,-0.040838,-0.15023,-0.0043755,-0.095533,-0.22315,-0.27785,-0.20492,-0.29608,-0.22315,-0.33254,-0.33254 -0.37548,-0.25726,-0.32819,-0.37548,-0.32819,0.0028374,-0.091742,-0.11539,-0.16268,-0.068097,0.14471,0.0028374,0.192,0.050127,0.050127,0.21564,0.14471,0.26293,0.026482,0.14471,0.14471,0.23929,0.21564,0.16835,0.097417 0.11991,0.11438,0.11438,0.10885,0.097786,0.11438,0.14756,0.11991,0.14203,0.12544,0.23053,0.16969,0.21947,0.19734,0.17522,-0.012832,-0.15664,-0.11239,-0.10686,-0.079203,-0.33362,-0.34469,-0.34469,-0.35575,-0.35022 -0.28557,-0.2074,-0.25952,-0.28557,-0.2074,-0.051069,-0.10318,-0.077125,-0.15529,-0.077125,-0.025014,0.027098,-0.12924,-0.15529,-0.051069,0.31371,0.027098,0.0010422,0.13132,0.10527,0.39188,0.39188,0.23554,0.20949,0.23554 -0.24123,-0.24182,0.11411,0.11647,0.11057,-0.24153,-0.24448,0.19992,0.13003,0.12296,-0.2433,-0.24241,0.19078,0.18783,0.18193,-0.24389,-0.24212,0.19137,0.18665,0.17928,-0.24359,-0.24536,0.19609,0.17191,0.14979 0.36073,0.35329,-0.10411,-0.11581,-0.12467,0.35553,-0.093361,-0.10482,-0.11923,-0.12514,0.35412,-0.093361,-0.10494,-0.11935,-0.12632,0.35494,-0.098677,-0.10695,-0.11864,-0.12585,0.35412,-0.097968,-0.10624,-0.12065,-0.12667 0.38958,-0.070665,-0.073946,-0.076641,-0.079414,0.38837,-0.070157,-0.073204,-0.076641,-0.079179,0.38743,-0.069923,-0.072344,-0.075508,-0.078711,0.387,-0.068751,-0.071837,-0.074297,-0.077304,0.38642,-0.068204,-0.22717,-0.22732,-0.2276 -0.23474,-0.23608,-0.23769,-0.23796,-0.24037,-0.23447,-0.23447,-0.23501,-0.23715,-0.23822,0.25412,0.26297,0.25895,0.10752,0.10484,0.11583,0.2426,0.23965,0.1102,0.11073,0.1236,0.10484,0.10859,0.10966,0.11207 -0.30678,0.12294,0.14479,0.13751,0.16665,-0.35048,-0.015441,0.12294,0.14479,0.13751,-0.37961,-0.051858,0.12294,0.093811,0.13751,-0.41603,-0.0081575,0.10838,0.14479,0.14479,-0.39418,-0.16839,0.14479,0.093811,0.12294 0.059569,-0.082784,-0.068184,-0.12293,-0.20324,0.10702,0.012118,-0.12658,-0.15944,-0.19959,0.38443,0.019418,-0.0061321,-0.15579,-0.20324,0.41728,0.22382,-0.028033,-0.14119,-0.20324,0.48663,0.25302,-0.0097822,-0.090084,-0.16309 0.23668,0.18984,0.21326,0.23668,0.29132,0.11959,0.14301,0.14301,0.18984,0.18984,-0.083368,-0.0053081,0.033722,0.072752,0.09617,-0.30193,-0.16143,-0.10679,-0.05995,-0.028726,-0.39561,-0.35658,-0.30193,-0.20046,-0.15362 -0.15053,-0.15091,-0.14992,-0.15039,-0.15063,-0.15039,-0.15101,-0.14996,-0.14883,-0.15063,-0.1503,-0.15063,-0.14764,-0.14689,-0.15044,0.26779,0.26812,0.26855,0.26528,-0.15082,0.26746,0.26722,0.26841,0.26779,0.25927 -0.22435,-0.13339,-0.042444,0.20009,0.29104,-0.042444,-0.16371,-0.042444,0.01819,0.23041,-0.13339,-0.28498,-0.072761,0.16977,0.29104,-0.22435,-0.22435,-0.012127,0.01819,0.47294,-0.19403,-0.16371,-0.13339,0.10914,0.29104 0.118,0.13273,0.14378,0.118,-0.21346,0.1401,0.13642,0.14378,0.044342,-0.335,0.14378,0.15115,0.12168,0.040659,-0.34973,0.15851,0.13642,0.11064,-0.2908,-0.35341,0.14746,0.13642,0.081172,-0.30922,-0.35341 -0.35559,-0.34086,-0.33349,-0.34822,-0.33349,-0.11254,-0.12727,-0.090443,-0.053618,-0.060983,0.049493,0.11578,0.10841,0.14524,0.16733,0.1526,0.15997,0.21153,0.20416,0.23362,0.012668,0.056858,0.13787,0.18206,0.21889 -0.26329,-0.28855,-0.30604,-0.29633,-0.28078,-0.22054,-0.22442,-0.23803,-0.23025,0.10595,0.21284,0.18952,0.16231,0.1215,0.08652,0.21478,0.17397,0.15259,0.12927,0.072916,0.20507,0.17397,0.14871,0.12733,0.070972 -0.1639,-0.22003,-0.32106,-0.38093,-0.41087,0.049394,0.045652,-0.1639,-0.21629,-0.27242,0.10927,0.10552,0.11301,0.07933,-0.081575,0.16914,0.15043,0.14669,0.14294,0.13546,0.21778,0.2103,0.19907,0.17662,0.18036 0.22925,-0.1515,-0.19158,-0.071341,-0.11142,0.32945,-0.051301,-0.13146,-0.17154,-0.17154,0.30941,-0.011222,-0.11142,-0.071341,-0.071341,0.54988,0.088975,-0.031262,-0.11142,-0.11142,0.42965,-0.031262,-0.09138,-0.071341,-0.17154 -0.32524,-0.34131,-0.35738,-0.37345,-0.37666,0.11506,0.082917,-0.042423,-0.15169,-0.22561,0.15684,0.15041,0.15041,0.10863,0.086131,0.17612,0.15041,0.13755,0.13434,0.1247,0.13755,0.13434,0.11827,0.10541,0.1247 0.098928,0.032516,0.043142,-0.14813,-0.23048,0.15737,0.056424,0.098928,-0.13484,-0.29689,0.35395,0.098928,0.168,0.069707,-0.34737,0.25832,0.1069,0.14143,-0.21985,-0.34737,0.34598,0.1494,-0.12953,-0.17735,-0.14813 0.11087,0.11367,0.11199,0.11451,0.11255,0.10303,0.10499,0.10387,0.10387,0.10331,0.096583,0.095742,0.095462,0.094062,0.095182,0.088459,0.087618,0.088459,0.086778,0.086778,-0.38723,-0.39283,-0.40908,-0.41216,-0.39647 -0.096451,-0.096451,-0.095693,-0.095693,-0.094682,-0.095946,-0.096451,-0.096451,-0.096451,-0.096198,-0.096704,-0.095693,-0.09721,-0.096198,-0.096198,-0.096198,-0.096451,-0.095693,-0.097715,-0.09721,0.60635,0.41093,0.34318,0.29843,0.26683 0.22038,0.2141,-0.18608,-0.1921,-0.19538,0.21355,0.20398,-0.18827,-0.18827,-0.1951,0.20562,0.21054,-0.188,-0.19046,-0.19538,0.19742,0.20863,0.20781,-0.19374,-0.19428,0.19934,0.20672,0.20918,-0.1951,-0.1951 0.090541,0.303,0.1886,0.29483,0.098712,0.00065372,0.1886,0.22946,0.23763,0.23763,-0.07289,0.066026,0.090541,0.10688,0.18043,-0.21998,-0.20364,-0.20364,-0.21181,-0.23632,-0.21998,-0.21181,-0.23632,-0.25266,-0.24449 -0.045032,-0.041235,-0.033008,-0.027946,-0.0089608,-0.050094,-0.043133,-0.041235,-0.031742,-0.026047,-0.046297,-0.049462,-0.048196,-0.03111,-0.026047,-0.058321,-0.057055,-0.048829,-0.032375,-0.02668,0.97761,-0.062751,-0.057055,-0.060852,-0.024149 0.13545,0.12169,0.098873,-0.34943,-0.35088,0.1282,0.10503,0.088733,0.092354,-0.35124,0.13943,0.13943,0.092354,0.078232,-0.35414,0.13979,0.14631,0.084026,0.070265,-0.35631,0.14124,0.14305,0.1072,0.069541,-0.35921 -0.26864,0.078046,0.1748,0.15061,0.19898,-0.31702,-0.03483,0.15867,0.16673,0.16673,-0.34927,-0.10739,0.13448,0.14255,0.14255,-0.3654,-0.15577,0.11836,0.13448,0.12642,-0.34121,-0.30089,0.094171,0.1103,0.14255 -0.34228,-0.20774,-0.26156,-0.20774,-0.23465,-0.28846,-0.1001,-0.073192,-0.15392,-0.019374,-0.046283,-0.046283,0.088261,-0.073192,0.0075345,0.16899,-0.019374,0.1959,0.061352,0.088261,0.27662,0.33044,0.22281,0.41117,0.22281 0.20773,0.20773,0.24212,0.17333,0.2937,0.15614,0.13894,0.17333,0.13894,0.20773,0.070159,0.052963,-0.033016,0.0013757,0.035767,-0.084604,-0.13619,-0.20497,-0.15339,0.035767,-0.17058,-0.30815,-0.42852,-0.34254,-0.27376 0.35248,0.353,0.15292,0.1366,0.13502,0.34879,0.35248,0.1724,0.16029,0.16609,-0.15457,-0.15141,-0.15457,-0.15615,-0.15509,-0.15562,-0.15562,-0.15404,-0.15615,-0.15615,-0.15615,-0.15457,-0.15615,-0.15615,-0.15773 -0.29851,-0.26519,-0.26519,-0.19856,-0.29851,-0.031983,-0.19856,-0.13193,-0.13193,-0.065299,0.13459,0.067964,-0.19856,-0.065299,-0.031983,0.23454,0.13459,0.13459,0.13459,0.0013326,0.23454,0.16791,0.3678,0.33449,0.23454 -0.24853,-0.10602,-0.16303,-0.22003,-0.22003,-0.020521,-0.27703,-0.16303,-0.077523,-0.30553,-0.077523,0.064983,-0.16303,-0.22003,-0.020521,0.23599,0.29299,0.20749,0.15049,0.15049,0.29299,0.20749,0.26449,0.20749,0.20749 -0.21617,-0.19228,-0.15405,0.046637,0.26166,-0.21617,-0.17317,-0.12538,0.094421,0.22344,-0.19706,-0.087158,-0.10627,0.15176,0.12309,-0.22095,-0.12061,-0.11583,0.40024,0.23777,-0.19228,-0.13494,0.046637,0.36201,0.30467 0.25946,0.28372,-0.16233,-0.12477,-0.15372,0.25789,0.27589,-0.14433,-0.1639,-0.15294,0.25946,-0.15216,-0.1412,-0.16311,-0.15216,0.26728,0.26259,-0.13181,-0.15059,-0.16076,0.26494,0.26572,-0.13729,-0.14824,-0.15763 0.18839,0.18839,0.04121,0.15159,0.24358,0.16999,0.18839,0.20679,0.16999,0.18839,0.1332,0.18839,0.04121,0.022813,0.20679,-0.34513,-0.14276,-0.14276,-0.23475,-0.21635,-0.23475,-0.25315,-0.21635,-0.27154,-0.27154 0.22237,0.22237,0.23135,0.22536,0.22436,0.21638,0.22436,0.23135,0.23135,0.22736,0.22336,-0.16381,-0.18377,-0.18077,-0.19375,-0.16381,-0.17379,-0.17678,-0.17778,-0.19474,-0.16082,-0.17379,-0.17279,-0.17778,-0.18576 0.051487,0.057023,0.048719,0.057023,-0.44124,0.051487,0.059791,0.070864,0.065328,-0.28622,0.081936,0.081936,0.090241,0.0764,-0.40802,0.14007,0.13176,0.13453,0.14007,-0.42463,0.1456,0.16498,0.14283,0.15944,-0.39141 -0.091484,-0.091879,-0.091189,-0.09109,-0.090992,-0.09109,-0.091287,-0.091484,-0.090893,-0.091484,-0.091189,-0.091484,-0.091583,-0.091287,-0.091287,-0.091879,-0.091189,-0.091189,-0.091879,-0.091583,0.50477,0.52497,0.51157,0.14473,0.14138 0.19245,0.096864,0.12873,-0.22177,-0.22177,0.38363,0.033138,0.033138,-0.12618,-0.31736,0.22432,-0.12618,-0.062452,-0.22177,-0.25363,0.35177,0.096864,0.16059,0.0012745,-0.15804,0.19245,0.16059,0.12873,-0.15804,-0.31736 -0.32481,-0.19473,0.056116,0.046826,0.028244,-0.34339,-0.21332,0.13044,0.13973,0.15832,-0.3341,-0.10183,0.16761,0.16761,0.18619,-0.31552,0.018953,0.1769,0.19548,0.1769,-0.28764,-0.12041,0.19548,0.19548,0.19548 -0.23634,-0.23757,-0.237,-0.23681,-0.23738,-0.23662,-0.23624,-0.237,-0.23643,-0.23738,0.1926,0.19364,0.19174,0.19203,0.18842,0.18757,0.19079,0.18994,0.028534,0.18691,0.19051,0.19241,0.19269,0.025499,0.025499 0.23118,0.093045,0.065679,0.086529,-0.26011,0.239,0.20251,0.063073,0.073498,-0.27575,0.24682,0.10477,-0.18322,-0.22101,-0.25229,0.239,0.095651,0.08262,-0.22883,-0.23535,0.26115,0.2416,-0.21711,-0.22883,-0.22362 0.21165,0.21143,0.21045,-0.19095,-0.19155,0.21198,0.2122,0.21357,-0.19095,-0.19193,0.21543,0.21493,-0.19056,-0.19144,-0.19199,0.21882,0.2186,-0.19111,-0.19177,-0.19188,0.22199,0.12822,-0.19067,-0.19193,-0.19253 0.097777,0.15598,0.097777,-0.096225,-0.36783,0.17538,0.21418,0.15598,-0.17383,-0.17383,0.23358,0.15598,-0.018624,-0.096225,-0.42603,0.23358,0.15598,0.21418,0.020176,-0.32903,0.097777,0.039577,-0.018624,0.020176,-0.36783 -0.11345,-0.10327,-0.10327,-0.11345,-0.10327,-0.11345,-0.09309,-0.10327,-0.09309,-0.10327,-0.09309,-0.09309,-0.096483,-0.10327,-0.096483,-0.089698,-0.10666,-0.069343,-0.076128,-0.099875,0.29365,0.34115,0.39204,0.41578,0.52434 0.17615,0.16344,0.12914,-0.17452,-0.21391,0.1609,0.23586,0.27779,-0.14784,-0.20883,0.2816,0.29431,-0.15419,-0.19612,-0.21391,0.17869,0.17361,-0.15927,-0.19612,-0.2101,0.19648,0.17869,-0.15673,-0.20501,-0.2101 -0.25839,-0.18893,-0.11947,-0.21209,-0.18893,-0.16578,-0.18893,-0.18893,-0.11947,-0.073165,-0.11947,-0.11947,-0.11947,-0.050012,0.065756,-0.050012,0.08891,0.019449,0.22783,0.15837,0.29729,0.45937,0.32045,0.20468,0.32045 -0.19768,-0.19936,-0.19768,0.076084,0.39572,-0.19655,-0.19693,0.073462,0.074024,0.34441,-0.1973,-0.19955,0.075147,0.074024,0.35846,-0.19749,-0.19917,0.073275,0.074024,0.33093,-0.19768,-0.19768,0.075147,0.07496,0.077394 -0.21189,-0.16687,-0.12185,0.26831,0.32834,-0.16687,-0.12185,-0.13686,0.2233,0.34335,-0.18188,-0.16687,-0.13686,-0.016807,0.32834,-0.15187,-0.091839,-0.16687,-0.016807,0.35835,-0.12185,-0.091839,-0.076833,-0.016807,0.31333 -0.12987,-0.12987,-0.12987,-0.12987,-0.12987,-0.064059,-0.12987,-0.15181,-0.064059,-0.12987,-0.085996,0.001755,-0.085996,-0.12987,-0.020183,-0.020183,-0.19569,-0.064059,-0.10793,-0.042121,0.44051,0.35276,0.33082,0.44051,0.3747 0.32904,0.3545,0.3545,0.4309,0.2781,0.048897,0.02343,-0.027505,0.02343,0.17623,-0.052972,-0.12937,-0.18031,0.02343,-0.0020374,-0.18031,-0.10391,-0.23124,-0.10391,-0.20577,-0.20577,-0.18031,-0.12937,-0.15484,-0.15484 0.35697,0.33169,0.33169,0.43281,0.43281,-0.047528,0.0030337,0.0030337,-0.072809,-0.072809,0.028315,-0.047528,-0.047528,-0.047528,-0.17393,-0.19921,-0.12337,-0.19921,-0.17393,-0.17393,-0.12337,-0.17393,-0.047528,-0.14865,-0.047528 0.24028,0.16124,-0.10222,-0.2603,-0.41838,0.39836,0.16124,-0.10222,-0.2603,-0.18126,0.13489,0.21393,-0.10222,-0.10222,-0.10222,0.29297,0.029508,-0.023185,-0.10222,-0.10222,0.31932,0.16124,-0.049531,-0.18126,-0.023185 -0.19558,-0.25135,-0.24206,-0.21417,-0.23276,-0.074737,-0.13981,-0.29783,-0.31642,-0.1584,0.17624,-0.1491,0.036811,0.036811,0.064697,0.25061,0.036811,0.18554,0.16695,0.10188,0.28779,0.25061,0.22272,0.2785,0.17624 0.36708,0.24633,-0.070638,-0.010264,-0.040451,0.36708,0.26142,-0.10083,-0.17629,-0.17629,0.36708,0.065205,-0.11592,-0.1612,-0.14611,0.33689,-0.10083,-0.070638,-0.17629,-0.20648,0.14067,-0.10083,-0.10083,-0.17629,-0.22158 -0.56577,-0.24736,0.087816,0.071057,0.18837,-0.24736,-0.046254,0.15485,0.13809,0.20513,-0.18032,-0.046254,0.071057,0.12133,0.20513,-0.24736,-0.11329,0.071057,0.15485,0.20513,-0.26412,-0.16357,0.054298,0.15485,0.23864 -0.33053,-0.13984,-0.10806,0.1462,0.33689,-0.17162,-0.17162,0.082633,0.11442,0.30511,-0.20341,-0.20341,-0.17162,0.30511,0.33689,-0.26697,-0.17162,-0.044495,0.050851,0.1462,-0.17162,-0.10806,0.17798,0.11442,0.1462 0.34773,-0.098676,-0.10085,-0.099609,-0.095565,0.34275,-0.093698,-0.10085,-0.09712,-0.093698,0.34431,-0.10303,-0.10116,-0.098054,-0.092143,0.57887,-0.09992,-0.099298,-0.098054,-0.092765,0.34151,-0.10241,-0.098054,-0.097432,-0.092765 0.11351,0.11712,-0.0022651,-0.01561,-0.37305,0.11748,0.11207,-0.0033471,-0.013086,-0.37269,0.11063,0.10991,-0.0058719,-0.0026258,-0.37269,0.11027,0.10486,0.17916,0.1384,-0.37305,0.11496,0.33281,0.11604,0.1283,-0.37124 0.20012,0.15042,-0.031807,-0.26373,-0.031807,0.29952,0.29952,-0.081505,-0.1312,-0.1312,0.28295,0.13385,-0.14777,-0.19747,-0.1312,0.26638,0.28295,-0.24717,-0.14777,-0.081505,0.31608,0.0013253,-0.24717,-0.14777,-0.21403 -0.14711,-0.1376,-0.15472,0.41226,0.2981,-0.14521,-0.15282,-0.14711,0.29239,0.28478,-0.11477,-0.16423,-0.12999,0.18394,0.21058,-0.19468,-0.20229,-0.12999,0.17063,0.17824,-0.17375,-0.2099,-0.15472,0.17443,0.1535 -0.1523,-0.1523,-0.15099,-0.15187,-0.15056,-0.14706,-0.15099,-0.15099,-0.15099,-0.15099,-0.15143,-0.14488,-0.14619,-0.14575,-0.14881,0.23732,0.25436,0.28232,0.28406,-0.14968,0.25261,0.23732,0.28537,0.28057,0.28188 0.14683,0.11346,0.096774,0.19689,-0.003337,0.16352,0.13014,0.13014,0.16352,0.046719,0.21357,0.14683,0.1802,0.14683,0.11346,-0.003337,-0.053393,0.030033,-0.020022,-0.10345,-0.3871,-0.40378,-0.32036,-0.33704,-0.3871 0.13925,0.13165,0.032835,-0.20279,-0.52962,0.16205,0.13925,0.093642,-0.081176,-0.46882,0.17725,0.15445,0.11644,-0.027971,-0.2636,0.14685,0.10124,0.10124,0.0024323,-0.3092,0.15445,0.16965,0.086041,0.093642,-0.11918 0.099477,0.099477,0.11906,0.11906,-0.39008,0.079895,0.040731,0.060313,0.11906,-0.39008,0.079895,0.079895,0.11906,0.060313,-0.40966,0.17781,0.17781,0.060313,0.079895,-0.39008,0.060313,0.13864,0.060313,0.13864,-0.39008 0.44169,0.23748,-0.11471,-0.13839,-0.13839,0.36474,0.25523,-0.088077,-0.13247,-0.13543,0.28187,-0.093996,-0.13247,-0.13839,-0.12063,0.28187,-0.10879,-0.13247,-0.13543,-0.13543,0.34106,-0.091037,-0.13543,-0.12655,-0.10583 0.25399,0.11153,-0.19375,-0.1734,-0.091992,0.41681,0.050473,-0.11234,-0.25481,-0.15305,0.35576,0.030121,-0.11234,-0.15305,-0.010583,0.43716,0.050473,-0.071639,-0.15305,-0.15305,0.27435,0.050473,-0.1327,-0.25481,-0.010583 -0.26528,-0.26595,-0.26695,-0.26661,-0.26494,0.14212,-0.26695,-0.26728,-0.26795,-0.26695,0.1468,0.14479,0.14346,0.14546,0.15014,0.15548,0.1488,0.14713,0.1468,0.15014,0.17719,0.15047,0.1498,0.1498,0.15047 0.16682,0.17024,-0.22308,-0.22108,-0.21766,0.1711,0.17196,0.28662,-0.22251,-0.22137,0.16625,0.16568,0.16853,-0.22393,-0.22764,0.16768,0.16597,0.16397,-0.22336,-0.22992,0.16682,0.16682,0.16682,-0.22336,-0.23135 0.15224,0.1419,0.13414,0.12897,-0.28214,0.14707,0.14448,0.10828,0.0876,-0.29765,0.16517,0.14448,0.11604,-0.27438,-0.29248,0.17292,0.14965,0.10828,-0.308,-0.30282,0.15224,0.14707,0.12121,-0.2718,-0.29248 0.30035,0.44088,0.3405,0.3405,0.32042,0.059427,0.03935,0.11966,0.09958,0.079503,-0.14134,-0.20157,-0.16142,-0.14134,-0.040956,-0.22165,-0.10119,-0.16142,-0.12126,-0.14134,-0.22165,-0.16142,-0.14134,-0.14134,-0.040956 -0.14642,-0.14882,-0.15361,-0.1572,-0.16019,-0.14523,-0.14762,-0.14822,-0.15001,-0.156,-0.14523,-0.14642,-0.14762,-0.14792,-0.15001,0.25791,0.27318,0.27886,0.27856,-0.14762,0.24624,0.27587,0.27497,0.25103,0.2615 -0.19039,-0.19039,-0.19232,0.17759,0.24829,-0.19097,-0.19194,-0.1929,0.1774,0.24713,-0.18923,-0.19001,-0.1929,0.17991,0.24655,-0.18846,-0.19001,0.17585,0.17875,0.2479,-0.18904,-0.19174,0.17604,0.17875,0.24616 0.3034,0.3034,0.3034,0.24572,0.24572,0.10152,0.072678,0.043838,0.18804,0.072678,0.13036,0.043838,-0.042684,-0.013843,0.072678,-0.042684,-0.10037,-0.12921,-0.18689,-0.21573,-0.18689,-0.33109,-0.24457,-0.27341,-0.35993 0.30975,0.19637,-0.10656,-0.16304,-0.18689,-0.10781,0.21854,-0.10489,-0.16597,-0.18062,0.29804,0.18967,-0.12622,-0.17811,-0.19568,0.31519,0.19511,-0.11158,-0.1576,-0.20865,0.31268,0.22231,0.11394,-0.16179,-0.21618 -0.32828,-0.31252,-0.33879,-0.37556,-0.38082,0.01324,-0.086588,-0.097096,-0.002522,-0.060317,0.12358,0.029003,-0.018284,0.023749,0.07629,0.27069,0.12883,0.07629,0.11832,0.21815,0.2812,0.16561,0.081544,0.16561,0.22866 0.192,0.17272,0.26911,0.15345,0.11489,0.11489,0.15345,0.15345,0.11489,0.192,0.057061,0.15345,0.057061,0.076338,0.13417,-0.07788,-0.039326,-0.15499,-0.097158,-0.00077109,-0.34776,-0.27065,-0.30921,-0.40559,-0.40559 -0.14205,-0.17196,-0.15701,0.022429,0.11215,-0.14953,-0.17196,-0.14953,0.029906,0.21682,-0.17196,-0.14953,-0.1271,0.17943,0.26168,-0.17196,-0.14953,-0.074764,0.2841,0.3813,-0.19439,-0.14953,-0.082241,0.29906,0.42616 -0.20605,-0.33093,-0.29971,-0.14361,-0.20605,-0.11239,-0.20605,-0.17483,-0.17483,-0.018732,0.012488,-0.20605,0.012488,0.012488,-0.049951,0.13737,0.074927,0.13737,0.16859,0.26224,0.1998,0.16859,0.23102,0.26224,0.44956 0.19944,0.16217,-0.19251,-0.14803,-0.12038,0.25595,-0.01337,-0.15404,-0.21656,-0.11557,0.28,0.27158,-0.12759,-0.17809,-0.13961,0.26316,0.29683,-0.17208,-0.1853,-0.25864,0.25475,0.27398,-0.10475,0.081613,-0.21295 -0.12166,-0.12166,-0.12166,-0.15454,-0.15454,-0.039456,-0.1381,-0.15454,-0.10522,-0.12166,-0.072336,-0.055896,-0.055896,-0.12166,-0.055896,-0.023016,-0.023016,-0.055896,-0.072336,-0.006576,0.63458,0.48662,0.30578,0.22358,0.12494 0.24797,0.26222,0.25438,0.26756,0.32634,0.25082,0.26649,0.25794,0.26079,-0.15705,-0.14387,-0.14672,-0.14743,-0.15064,-0.15028,-0.14743,-0.14886,-0.14957,-0.15028,-0.15064,-0.14743,-0.15028,-0.15099,-0.15028,-0.15277 -0.11812,-0.18679,0.087902,0.087902,0.39693,-0.2898,-0.049445,-0.18679,0.087902,0.22525,-0.25547,-0.11812,-0.083782,0.15658,0.053566,-0.25547,-0.22113,0.019229,0.12224,0.3626,-0.2898,-0.049445,-0.015108,0.22525,0.29392 0.1292,0.13269,0.12746,-0.25748,-0.26504,0.12804,0.12281,0.19898,-0.2569,-0.26736,0.15595,0.1606,0.15595,-0.26446,-0.26736,0.17979,0.19084,0.23038,-0.26039,-0.26387,0.17979,0.065242,0.054194,0.15014,-0.25922 0.075703,0.23564,-0.13755,-0.1642,-0.37745,0.15567,0.075703,0.075703,-0.13755,-0.32414,0.23564,0.23564,0.075703,-0.004265,-0.1642,0.23564,0.23564,-0.004265,-0.004265,-0.24417,0.23564,0.075703,0.075703,-0.004265,-0.45742 -0.17774,-0.1765,-0.17786,-0.17774,-0.17823,-0.17613,-0.1765,-0.17662,-0.17786,-0.17761,0.22909,-0.17687,-0.17613,-0.17823,-0.17749,0.22204,0.22278,0.22352,0.23354,0.23713,0.21907,0.21932,0.22266,0.22798,0.22439 0.25524,0.25524,0.26744,0.29184,0.23084,0.09663,0.13323,0.13323,0.09663,0.12103,0.035626,0.035626,-0.037578,0.047827,0.035626,-0.13518,-0.06198,-0.07418,-0.049779,-0.086381,-0.18399,-0.24499,-0.3548,-0.4158,-0.3914 -0.078638,-0.20466,-0.15425,0.1608,0.24902,-0.11644,-0.16685,-0.24247,0.1608,0.29943,-0.066036,-0.15425,-0.14165,0.19861,0.31203,-0.12905,-0.22987,-0.11644,0.26162,0.26162,-0.16685,-0.17946,-0.21726,0.17341,0.28683 0.32607,0.32459,0.3237,0.074328,0.080533,0.32666,0.32488,0.32607,0.074032,0.080533,-0.14757,-0.1523,-0.15555,-0.14816,-0.15289,-0.15052,-0.14905,-0.14905,-0.14905,-0.14993,-0.15111,-0.15082,-0.15171,-0.15259,-0.15111 0.1354,0.13736,0.144,-0.14873,-0.32545,0.13442,0.13343,0.15236,-0.24852,-0.31931,0.13614,0.13245,0.16809,-0.25122,-0.32053,0.13786,0.14326,0.17202,0.17005,-0.2495,0.13909,0.14793,0.1821,-0.24926,-0.25343 0.28056,0.45253,0.42796,0.29284,0.37883,-0.13709,0.084021,0.084021,-0.075668,-0.0019654,-0.17394,-0.14937,-0.0511,-0.0511,-0.014249,-0.18622,-0.1985,-0.087951,-0.063384,-0.075668,-0.21079,-0.13709,-0.16165,-0.13709,-0.087951 0.10783,0.1153,0.10534,0.11032,-0.40991,-0.00916,0.081694,0.13023,0.22233,-0.38004,0.12525,0.053068,0.092895,0.028177,-0.38253,0.12774,0.049335,0.084183,0.0082639,-0.37631,0.18873,0.16384,0.10285,0.046846,-0.38626 0.10511,-0.10234,-0.17149,-0.19454,-0.28674,0.17426,0.10511,-0.12539,-0.17149,-0.30979,0.19731,0.15121,0.059008,-0.010142,-0.26369,0.38171,0.17426,0.10511,-0.10234,-0.26369,0.35866,0.19731,0.19731,-0.010142,-0.19454 0.23431,0.23431,0.25577,-0.1292,-0.18474,0.22548,0.22422,-0.098906,-0.17338,-0.20998,0.2381,0.22927,-0.11279,-0.16202,-0.20619,0.26587,0.23558,-0.10522,-0.18726,-0.20998,0.27849,-0.1393,-0.14813,-0.18347,-0.17085 -0.32165,-0.20702,0.067387,0.098649,0.19591,-0.29386,-0.25218,0.14381,0.12644,0.12296,-0.2765,-0.23829,0.19938,0.20633,0.17159,-0.23829,-0.2105,0.2237,0.17159,0.095176,-0.1966,-0.12713,0.14033,0.27233,0.12644 0.36792,0.35163,0.14625,0.14833,0.14972,0.35977,0.34989,0.14694,0.14764,0.14868,-0.15341,-0.15341,-0.15376,-0.15445,-0.1548,-0.15376,-0.1541,-0.15445,-0.1548,-0.15514,-0.1548,-0.15514,-0.1548,-0.15549,-0.15445 0.47485,0.28491,0.094969,-0.094969,-0.094969,0.40362,0.18994,-0.071227,-0.18994,-0.094969,0.23742,0,-0.094969,-0.1662,-0.18994,0.26117,0.023742,-0.071227,-0.1662,-0.28491,0.047485,0.047485,-0.1662,-0.1662,-0.21368 0.34696,0.050413,0.16162,-0.13493,-0.32027,0.30989,0.087482,-0.24614,-0.13493,-0.35734,0.087482,0.087482,0.12455,-0.13493,-0.13493,0.34696,0.050413,0.050413,-0.13493,-0.24614,0.16162,0.27282,0.013345,-0.13493,-0.172 0.20151,0.20078,0.19714,-0.1873,-0.19385,0.20078,0.20879,0.19277,-0.18293,-0.19458,0.18695,0.31073,-0.18439,-0.19749,-0.19458,0.19569,0.20151,-0.18875,-0.19749,-0.19385,0.19641,0.18913,-0.17783,-0.19531,-0.19385 0.38875,-0.092205,-0.072707,-0.081373,-0.098704,0.37575,-0.10304,-0.068374,-0.083539,-0.10304,0.36275,-0.10954,-0.11604,-0.11387,-0.1117,0.42558,-0.1182,-0.044543,-0.016379,-0.11387,0.42558,-0.12254,-0.13553,-0.13553,-0.1377 0.27703,0.21482,0.25629,0.25629,0.27703,0.21482,0.090407,0.15261,0.15261,0.11114,0.048936,-0.013271,0.090407,-0.034006,-0.11695,-0.013271,-0.034006,-0.075478,-0.17916,-0.24136,-0.22063,-0.28283,-0.28283,-0.24136,-0.40725 0.37424,0.30264,0.32651,0.42198,0.32651,0.087832,0.040097,0.01623,-0.0076376,0.063965,-0.055373,0.01623,-0.055373,-0.15084,-0.12698,-0.22245,-0.10311,-0.07924,-0.0076376,-0.12698,-0.17471,-0.27018,-0.15084,-0.15084,-0.29405 -0.097669,-0.098461,-0.099253,-0.099253,-0.10044,-0.095689,-0.096085,-0.098461,-0.10044,-0.10163,-0.092918,-0.09371,-0.094502,-0.096877,-0.10044,-0.088958,-0.092126,-0.092522,-0.095293,-0.097273,0.32202,0.6162,0.33152,0.34776,0.3145 0.1246,0.10855,0.10855,0.14066,0.10855,0.20489,0.28517,0.22094,0.26912,0.18883,0.14066,0.092488,0.076431,0.17277,0.1246,-0.26077,-0.26077,-0.26077,-0.26077,-0.21259,-0.26077,-0.19654,-0.26077,-0.21259,-0.18048 0.4456,-0.057085,-0.061043,-0.11426,-0.11338,0.47814,-0.055326,-0.058404,-0.11514,-0.1147,0.42888,-0.055326,-0.065881,-0.1125,-0.11822,0.44076,-0.064561,-0.10766,-0.11426,-0.11734,0.078811,-0.090069,-0.10854,-0.1125,-0.11602 -0.1162,-0.11696,0.19902,0.19366,0.18968,-0.32287,-0.11696,0.19718,0.1958,0.18738,-0.32379,-0.11558,-0.11773,0.19795,0.19473,-0.32562,-0.11666,-0.11681,0.19764,0.19335,-0.32516,-0.11497,-0.11375,0.20177,0.19488 -0.13796,-0.13796,-0.091743,-0.031082,0.39066,-0.13796,-0.13796,-0.085966,-0.025305,0.38488,-0.14663,-0.13507,-0.10041,0.018025,0.38488,-0.14663,-0.1293,-0.1033,-0.036859,0.39355,-0.14085,-0.13796,-0.091743,-0.010861,0.39355 -0.12993,-0.12993,-0.11183,0.12341,0.44008,-0.13897,-0.11183,-0.11183,0.0057905,0.40389,-0.15707,-0.11183,-0.11183,-0.021353,0.37675,-0.12993,-0.11183,-0.12993,-0.021353,0.31341,-0.11183,-0.16612,-0.11183,-0.11183,0.3677 -0.16848,-0.1669,0.22403,0.22245,0.2256,-0.16059,-0.15429,-0.16059,0.22718,0.22718,-0.21734,-0.22522,-0.2,0.22245,0.22403,-0.17793,-0.15587,-0.16532,0.22403,0.22403,-0.20946,-0.19212,-0.11331,0.22245,0.22403 0.97206,-0.025915,-0.037294,-0.054742,-0.046777,0.00063725,0.0025338,-0.019846,-0.037294,-0.058536,-0.00088001,0.0070856,0.0048097,-0.035018,-0.042984,-0.063467,-0.063087,-0.057398,-0.063087,-0.058156,-0.063087,-0.064605,-0.064225,-0.066501,-0.064225 -0.19484,-0.13668,-0.093057,0.31407,0.31407,-0.15122,-0.093057,-0.13668,0.21229,0.31407,-0.12214,-0.093057,-0.1803,0.25591,0.25591,-0.12214,-0.19484,-0.22392,0.16867,0.25591,-0.13668,-0.22392,-0.22392,0.037804,0.19775 -0.15632,-0.16118,-0.15794,-0.16118,-0.16118,-0.15632,-0.15632,-0.16605,-0.1547,-0.15632,-0.13525,-0.13525,-0.14011,-0.13201,-0.14011,0.31212,-0.11742,0.27646,0.24891,0.22135,0.30078,0.28295,0.26349,0.24729,0.23432 0.31883,0.30483,0.054054,0.30092,0.15378,0.3066,0.30886,0.054054,0.29777,0.15378,-0.090814,-0.091192,-0.091571,-0.091949,-0.091444,-0.20189,-0.19887,-0.092075,-0.20088,-0.092201,-0.20252,-0.20189,-0.20126,-0.20252,-0.2024 0.29896,-0.10219,-0.22887,-0.1233,-0.10219,0.38341,0.0033781,-0.1233,-0.1233,-0.059961,0.40453,0.024491,-0.16553,-0.10219,-0.10219,0.46786,-0.081074,-0.22887,-0.081074,-0.059961,0.32007,0.045604,-0.14441,-0.1233,0.0033781 0.064716,0.10284,0.10903,0.11624,-0.40622,0.075021,0.11418,0.11109,0.12655,-0.39798,0.070899,0.11933,0.12036,0.12448,-0.39901,0.05338,0.077082,0.10181,0.108,-0.40004,0.083265,0.091509,0.10594,0.11521,-0.38768 0.24073,0.064757,0.09995,-0.14641,-0.21679,0.34631,0.17034,-0.076019,-0.14641,-0.1816,0.34631,0.24073,-0.1816,-0.28718,-0.28718,0.24073,0.029563,-0.14641,-0.11121,-0.040825,0.34631,0.064757,-0.1816,-0.14641,-0.040825 0.38293,0.098101,0.070358,0.090703,-0.031369,0.33854,0.029667,0.0019235,-0.15714,-0.20708,0.051862,0.096251,-0.059112,-0.21448,-0.28106,0.24607,0.23127,-0.048015,-0.19043,-0.29031,0.24237,0.23312,-0.096103,-0.23667,-0.30141 0.26775,0.23117,-0.024873,-0.098027,-0.20776,0.23117,0.12144,-0.06145,-0.098027,-0.1346,0.26775,0.048282,0.12144,-0.20776,-0.39065,0.26775,0.011705,0.011705,-0.17118,-0.20776,0.45063,-0.024873,-0.24434,0.011705,-0.17118 -0.27878,-0.24543,-0.22876,-0.24543,-0.22042,-0.1704,-0.1704,-0.14539,-0.087036,-0.15373,-0.053689,-0.0036682,-0.0036682,0.029679,-0.062026,0.071363,0.24643,0.32147,0.096373,0.038016,0.15473,0.3965,0.42151,0.1714,0.12138 -0.13724,-0.13065,-0.14714,0.31474,0.31144,-0.14054,-0.14384,-0.13065,0.29494,0.31474,-0.15044,-0.15044,-0.14054,0.11019,0.32133,-0.15374,-0.15374,-0.14714,-0.015176,0.29494,-0.15044,-0.16034,-0.15374,-0.058065,0.30154 -0.38694,-0.38694,-0.31272,-0.38694,-0.43642,0.0089065,-0.040574,0.0089065,0.058387,-0.015834,0.10787,0.083128,0.10787,0.10787,0.13261,0.18209,0.10787,0.18209,0.10787,0.15735,0.15735,0.18209,0.083128,0.10787,0.083128 -0.1746,-0.17377,-0.1735,-0.1735,-0.1746,-0.17322,-0.17239,-0.17322,-0.17239,-0.17377,-0.0067792,-0.0065032,-0.0056751,-0.0062271,-0.0029148,-0.0076073,-0.0073312,-0.0067792,-0.0056751,-0.005123,0.30734,0.30071,0.29354,0.56515,0.32887 0.36124,0.34692,0.15013,0.1494,0.14347,0.36399,0.35763,0.15114,0.1481,0.14434,-0.15504,-0.15504,-0.15475,-0.15461,-0.15417,-0.15519,-0.15461,-0.15475,-0.15446,-0.15461,-0.15359,-0.15374,-0.15374,-0.15432,-0.15374 0.51218,-0.096664,-0.097242,-0.096592,-0.096809,0.51096,-0.097242,-0.097098,-0.097242,-0.097242,0.30786,-0.097676,-0.097676,-0.097676,-0.097676,0.30808,-0.097676,-0.098109,-0.097893,-0.097459,0.31104,-0.098037,-0.097893,-0.098109,-0.098109 -0.2578,-0.27556,-0.2578,-0.29331,-0.32882,-0.13352,-0.080252,-0.11576,-0.15127,-0.18678,0.18607,0.15056,0.026277,-0.0092325,-0.062497,0.31035,0.27485,0.13281,0.026277,0.0085223,0.34586,0.18607,0.097297,0.16832,0.23934 0.17065,0.35956,0.41466,0.41466,0.43828,-0.10878,-0.14814,-0.077297,0.0014168,0.25724,-0.10878,-0.13633,-0.12059,-0.096975,-0.096975,-0.12059,-0.11665,-0.12059,-0.12059,-0.10878,-0.12452,-0.12059,-0.093039,-0.11665,-0.12059 0.17264,0.17098,0.17022,-0.24585,-0.24368,0.24592,0.17098,0.1706,-0.24406,-0.24457,0.25192,0.1729,0.16945,-0.24521,-0.24457,0.22473,0.22435,0.17098,-0.24291,-0.24419,-0.029583,-0.028817,-0.028434,-0.029072,-0.2447 0.25646,0.25315,0.24984,0.24652,0.26309,0.22333,0.23658,0.23327,0.23327,0.21339,-0.22399,-0.23393,-0.23724,-0.21074,-0.20742,-0.1279,-0.14447,-0.15109,-0.12459,-0.13453,-0.12459,-0.11796,-0.1279,-0.11796,-0.12459 0.23658,0.23665,0.23765,-0.080414,-0.20974,0.24086,0.23897,-0.08054,-0.20886,-0.20987,0.24275,0.24174,-0.08054,-0.20974,-0.21012,0.24854,-0.00061423,-0.080351,-0.21025,-0.21037,0.046649,0.32438,-0.081106,-0.20999,-0.21226 0.27236,0.28173,0.19733,0.19733,0.16919,0.22546,0.16919,0.11292,0.075404,0.075404,0.16919,0.16919,0.047268,-0.093411,0.047268,-0.0090035,-0.065275,-0.24347,-0.24347,-0.093411,-0.24347,-0.27161,-0.33726,-0.33726,-0.27161 -0.20238,-0.1846,0.23603,0.22813,0.15901,-0.20238,-0.17276,-0.14511,0.22023,0.20246,-0.21028,-0.20238,-0.16091,0.21233,0.21431,-0.20435,-0.19448,-0.15498,0.23998,0.2459,-0.16683,-0.15301,-0.10364,0.25183,0.24788 0.10369,0.11138,0.10369,0.10369,0.09215,0.10753,0.11523,0.09215,0.12292,0.10369,0.095996,0.12676,0.095996,0.095996,0.088304,0.095996,0.088304,0.088304,0.088304,0.076766,-0.40014,-0.3886,-0.40399,-0.40399,-0.40014 0.3692,-0.076297,-0.1147,-0.13006,-0.11982,0.3692,0.30519,-0.12238,-0.1147,-0.11214,0.36151,-0.076297,-0.1147,-0.12238,-0.11982,0.3692,-0.10446,-0.1147,-0.11214,-0.11982,0.35383,-0.09934,-0.11214,-0.12238,-0.11982 -0.16439,-0.15619,-0.13339,-0.13886,0.27604,-0.16166,-0.15983,-0.1343,0.25416,0.27786,-0.16074,-0.15801,-0.13612,0.25142,0.27695,-0.1571,-0.15801,-0.12792,0.2496,0.27695,-0.16257,-0.14707,-0.13886,0.24777,0.28425 -0.28896,-0.39638,-0.28896,-0.34267,-0.18154,-0.10098,-0.18154,-0.074121,-0.047265,0.033301,-0.047265,-0.02041,0.033301,-0.047265,0.033301,-0.02041,0.060156,0.19443,0.16758,0.22129,0.22129,0.30185,0.32871,0.19443,0.24814 0.20197,0.20083,-0.10163,-0.099348,-0.096834,0.2957,0.207,-0.10209,-0.096148,-0.095919,0.29593,0.27261,-0.087917,-0.096376,-0.092718,0.24609,0.24609,-0.090661,-0.26235,-0.2651,0.049253,0.25707,-0.25801,-0.26212,-0.26533 -0.063452,-0.063452,-0.036336,0.00094906,-0.0024404,-0.066841,-0.049894,-0.027862,-0.029557,-0.017693,-0.068536,-0.061757,-0.054978,-0.032946,0.0026438,-0.049894,-0.051588,-0.060062,-0.054978,-0.015998,0.97374,-0.053283,-0.061757,-0.046504,-0.0075247 -0.098836,-0.10006,-0.098019,-0.099653,-0.098019,-0.099245,-0.099245,-0.09761,-0.096384,-0.09761,-0.098019,-0.09761,-0.10047,-0.09761,-0.10047,-0.093524,-0.10211,-0.099653,-0.099245,-0.098428,0.33144,0.32572,0.3437,0.47936,0.49161 0.43526,0.38344,0.38344,0.19345,0.36617,0.089816,0.089816,0.037999,0.037999,0.037999,-0.16927,-0.16927,-0.16927,-0.048362,-0.16927,-0.16927,-0.22108,-0.10018,-0.16927,-0.10018,-0.22108,-0.10018,-0.048362,-0.10018,-0.10018 0.052896,0.054985,0.14509,0.14838,-0.37349,0.045139,0.044243,0.044542,0.04305,-0.3887,0.04663,0.049316,0.049316,0.047824,-0.38691,0.13435,0.13465,0.13525,0.061848,-0.38721,0.20984,0.21014,0.21193,0.053493,-0.38661 -0.14784,-0.14784,-0.14841,-0.14822,-0.14822,-0.14841,-0.14897,-0.14822,-0.14766,-0.14878,-0.14597,-0.1439,-0.14803,-0.14709,-0.14709,0.043566,0.1038,0.33049,0.33181,0.040752,0.041127,0.33124,0.33049,0.33106,0.33031 0.20772,0.19824,0.19824,-0.19405,-0.19128,0.20587,0.19454,0.20587,-0.19105,-0.19151,0.20772,0.20934,-0.1959,-0.19105,-0.19105,0.21812,0.21303,-0.19405,-0.19197,-0.19012,0.21858,0.21974,-0.19359,-0.19174,-0.18966 -0.18375,-0.13069,-0.18375,-0.070043,0.27866,-0.18375,-0.16859,-0.16101,0.066405,0.3014,-0.16101,-0.18375,-0.17617,0.25592,0.24833,-0.15343,-0.15343,-0.12311,0.25592,0.27108,-0.16101,-0.17617,0.13463,0.27866,0.27866 0.20039,0.18269,0.016207,0.17349,0.027244,0.18752,0.18246,0.1912,0.17073,0.16935,0.15785,0.18545,0.20821,0.17004,0.16935,-0.23857,-0.24156,-0.2365,-0.23627,-0.24018,-0.24064,-0.23972,-0.24041,-0.23926,-0.23903 0.18279,0.18637,0.18398,0.18637,0.1518,0.17683,0.17683,0.18756,0.1816,0.14823,0.16372,0.17445,0.18517,0.19233,-0.2165,-0.22722,-0.21769,-0.22007,-0.22126,-0.2308,-0.22603,-0.23199,-0.21173,-0.2308,-0.24391 -0.19476,-0.16392,-0.16291,0.22724,0.22288,-0.19744,-0.16291,-0.16626,0.22422,0.22121,-0.18369,-0.16492,-0.16928,0.22691,0.22121,-0.1847,-0.18302,-0.16727,0.22724,0.22188,-0.17967,-0.19811,0.23428,0.22858,0.22322 0.42834,0.27946,0.20502,0.16249,0.056148,0.37517,0.30073,0.17312,0.14122,0.077416,-0.060827,-0.13527,-0.092729,-0.082095,-0.10336,-0.114,-0.13527,-0.1459,-0.15653,-0.13527,-0.10336,-0.18844,-0.19907,-0.25224,-0.29478 -0.095756,-0.21156,-0.26946,-0.3346,-0.31289,-0.025187,-0.095756,-0.26222,-0.30022,-0.27851,0.027286,0.00014476,0.1069,0.13042,0.14128,0.1069,0.063475,0.11776,0.19014,0.24804,0.1648,0.13947,0.19918,0.23356,0.3168 0.17699,0.17985,0.1827,0.17413,-0.39717,0.12843,0.13986,0.13986,0.13129,-0.38289,0.11129,0.099864,0.099864,0.091295,-0.4086,0.065586,0.068442,0.057016,0.028451,-0.37432,0.028451,0.028451,0.022738,-0.02868,-0.36289 0.19822,0.22099,0.21172,-0.19358,-0.19105,0.21298,0.21636,0.20412,-0.19864,-0.19232,0.20708,0.20075,-0.19485,-0.18641,-0.19105,0.20666,0.20033,-0.19063,-0.19316,-0.19189,0.21467,0.20328,-0.18852,-0.19358,-0.19147 0.091171,0.092546,0.099879,-0.074744,-0.37999,0.092546,0.098963,0.098046,0.088879,-0.39145,0.098963,0.099421,0.097588,0.091171,-0.39145,0.096213,0.096213,0.10355,0.1063,-0.38733,0.096671,0.093463,0.10492,0.26809,-0.38962 -0.35116,0.025981,0.13074,0.10979,0.14471,-0.42799,0.012013,0.13074,0.10979,0.13773,-0.40005,-0.0019556,0.13074,0.11677,0.15868,-0.37211,0.032965,0.10281,0.10979,0.13074,-0.40005,0.032965,0.095822,0.11677,0.12376 -0.18266,-0.24196,-0.24196,-0.27161,-0.18266,-0.21231,-0.27161,-0.0937,-0.27161,-0.153,-0.0937,0.024908,-0.0047443,0.024908,0.17317,0.23247,0.23247,0.14351,0.084211,0.17317,0.23247,0.26212,0.32143,0.29177,0.024908 0.26693,0.26314,0.27072,0.26693,0.26503,0.26693,0.26788,-0.10438,0.26503,0.25935,-0.12238,-0.12901,-0.13185,-0.12806,-0.13091,-0.16406,-0.16311,-0.16216,-0.16595,-0.16501,-0.16122,-0.16122,-0.16785,-0.1688,-0.16595 0.034515,-0.065529,-0.11555,-0.18225,-0.19475,0.14707,-0.057192,-0.09054,-0.14473,-0.18642,0.37633,0.030347,-0.098877,-0.1489,-0.17808,0.43052,0.22627,-0.019675,-0.12806,-0.1489,0.4597,0.30964,-0.011338,-0.086372,-0.15724 0.22795,-0.031646,-0.10736,-0.14136,-0.16299,0.22177,0.25113,-0.11663,-0.14136,-0.16145,0.22486,0.22641,-0.099636,-0.14754,-0.16299,0.24959,0.25113,-0.099636,-0.15681,-0.16454,0.54472,-0.040918,-0.1429,-0.15372,-0.16608 -0.12273,-0.13745,-0.16763,-0.16837,-0.1772,-0.051343,-0.12126,-0.16469,-0.14408,-0.17499,-0.025583,-0.033679,-0.030735,-0.016751,-0.16763,-0.022639,-0.016751,-0.024111,-0.029263,-0.046927,0.60001,0.31297,0.30635,0.31077,0.31371 0.20155,0.17666,0.15719,0.16476,0.25239,0.18748,0.16693,0.15394,0.15827,0.19668,0.19397,0.15719,0.14908,0.15286,-0.22037,-0.22524,-0.22956,-0.22632,-0.22632,-0.22578,-0.22307,-0.22416,-0.22037,-0.22145,-0.22632 0.36045,0.38447,0.34946,0.34743,0.34421,0.32206,-0.068352,-0.06869,-0.067844,-0.071904,-0.14312,-0.1416,-0.069197,-0.070043,-0.073088,-0.14363,-0.14244,-0.1416,-0.13652,-0.07072,-0.14379,-0.14193,-0.14126,-0.13923,-0.13314 -0.23792,-0.099594,0.093539,0.14835,0.29711,-0.24314,-0.17267,0.0831,0.10398,0.15357,-0.24314,-0.26402,-0.18311,0.12225,0.3467,-0.25619,-0.2327,0.18489,0.17967,0.14835,-0.22748,-0.20399,0.17445,0.18489,0.14313 -0.34761,-0.020828,0.094084,0.22695,0.34904,-0.33684,-0.013646,0.094084,0.14077,0.13718,-0.36197,0.011491,0.076129,0.13718,0.13358,-0.38711,-0.071102,0.029446,0.10486,0.12999,-0.38352,-0.013646,0.025855,0.1264,0.11922 0.16067,0.092588,0.16067,-0.020878,-0.20242,0.18336,0.25144,0.092588,-0.15704,-0.36127,0.18336,0.047202,0.18336,0.024509,-0.36127,0.18336,0.11528,-0.066264,0.024509,-0.31589,0.11528,0.18336,0.11528,-0.20242,-0.42935 0.15132,0.14778,0.14778,0.14424,0.14778,0.12301,0.13362,0.13362,0.14778,0.14778,0.14778,0.15486,0.13716,0.1407,0.15486,0.091158,0.0062282,-0.11763,-0.23087,-0.26979,-0.30518,-0.31226,-0.3158,-0.35826,-0.34765 -0.3577,-0.29768,-0.3577,-0.41771,-0.3577,-0.017605,0.062417,-0.097627,-0.097627,-0.097627,0.16244,0.022406,0.082422,0.14244,0.12243,0.10243,0.20246,0.18245,0.16244,0.22246,0.14244,0.042412,0.14244,0.18245,0.12243 -0.12985,-0.049364,0.031121,0.32623,0.13843,-0.18351,-0.18351,-0.022536,0.16526,0.19209,-0.18351,-0.18351,-0.022536,0.21892,0.19209,-0.34447,-0.23716,0.057949,0.2994,0.24575,-0.31765,-0.23716,-0.12985,0.21892,0.13843 0.10734,0.36984,0.019834,-0.067669,-0.30101,0.019834,0.19484,0.078169,-0.18434,-0.30101,0.1365,0.19484,0.22401,-0.15517,-0.38851,0.078169,0.25317,0.049001,-0.126,-0.21351,0.1365,0.16567,0.10734,-0.067669,-0.33018 -0.12122,-0.27618,-0.22453,-0.32784,-0.24175,-0.017907,-0.035126,-0.086781,-0.22453,-0.22453,0.050967,-0.035126,-0.035126,-0.086781,-0.13844,0.30924,0.1715,0.11984,0.068185,0.01653,0.37812,0.3609,0.29203,0.1715,0.13706 0.20618,0.20023,0.1993,-0.1912,-0.19321,0.21275,0.19729,0.21801,-0.19128,-0.1929,0.21213,0.19799,-0.19275,-0.19105,-0.19244,0.2119,0.21515,-0.19252,-0.19105,-0.19259,0.21198,0.2143,-0.19159,-0.19205,-0.19259 0.37805,0.34166,-0.013612,-0.23619,-0.067117,0.19613,0.17901,0.1148,-0.28114,-0.075678,0.17045,0.16189,-0.058556,-0.27472,-0.13346,0.20041,0.11052,-0.15701,-0.23191,-0.19339,0.22823,0.17259,-0.075678,-0.22763,-0.22763 -0.26678,-0.26642,-0.26642,-0.26594,-0.26618,-0.26618,-0.26642,-0.2657,-0.26787,0.14125,0.15611,0.14439,0.14306,0.14246,0.14029,0.14911,0.1456,0.14717,0.14439,0.14331,0.14947,0.14899,0.17315,0.15164,0.1775 -0.28342,-0.081801,-0.1106,0.20623,0.23503,-0.28342,-0.28342,-0.052998,0.20623,0.29264,-0.19701,0.033412,0.0046085,0.062215,0.17743,-0.42744,-0.1106,-0.1106,0.23503,0.23503,-0.19701,0.033412,0.033412,0.14862,0.23503 0.21693,0.19192,-0.18723,-0.19645,-0.1688,0.20706,0.20179,-0.13852,-0.19579,-0.20237,0.1985,0.19784,0.21298,-0.19052,-0.19579,0.21496,0.23207,-0.19974,-0.20237,-0.2083,0.20509,0.22681,0.18402,-0.19777,-0.20632 0.25948,-0.11607,-0.14446,-0.16629,-0.18158,0.23656,0.23437,-0.13463,-0.16083,-0.18594,0.2573,0.21909,-0.13463,-0.19031,-0.19031,0.24966,0.23219,-0.16083,-0.14446,-0.18594,0.26494,0.23983,0.2442,-0.15756,-0.18376 0.3191,0.33548,0.36824,0.401,0.34367,0.016053,-0.008518,-0.016708,-0.00032762,-0.016708,0.032434,0.0078628,0.040624,0.065196,0.0078628,-0.22966,-0.1969,-0.18052,-0.1969,-0.1969,-0.15595,-0.18052,-0.20509,-0.18871,-0.16414 -0.25835,0.12195,0.12353,0.12905,0.2474,-0.24967,-0.26939,0.1109,0.11485,0.14167,-0.26387,-0.26545,0.11485,0.11958,0.14798,-0.26939,-0.25993,0.11011,0.13536,0.23556,-0.26703,-0.25519,0.11721,0.15114,0.23714 -0.11587,-0.11587,-0.12755,-0.12436,-0.12967,-0.12011,-0.12011,-0.11905,-0.12543,-0.12543,-0.10524,-0.11799,-0.11374,-0.11799,-0.084,-0.096746,-0.075502,-0.079751,-0.098871,0.28884,0.43011,0.39931,0.36425,0.33132,0.29946 -0.29837,-0.28078,-0.38634,-0.38634,-0.4743,0.00070371,-0.016889,0.018296,-0.034482,-0.08726,0.12385,0.17663,0.10626,0.10626,0.071075,0.21182,0.17663,0.12385,0.053482,0.071075,0.17663,0.22941,0.17663,0.088668,0.053482 -0.15124,-0.15899,-0.15899,-0.18483,-0.16674,-0.15899,-0.12281,-0.15124,-0.10989,-0.089212,-0.11247,-0.09438,-0.10989,-0.099549,-0.07629,-0.037525,-0.014266,-0.024603,-0.053031,0.31912,0.33204,0.37856,0.40698,0.35271,0.28552 0.96625,-0.08912,-0.055616,-0.017925,-0.055616,0.070023,-0.034677,-0.043053,-0.038865,-0.043053,0.011391,-0.013737,-0.076556,-0.059804,-0.06818,-0.0095486,-0.043053,-0.059804,-0.08912,-0.043053,-0.013737,-0.030489,-0.059804,-0.072368,-0.030489 0.23024,0.25695,0.19018,0.029916,-0.21048,0.25695,0.19018,0.17682,-0.076926,-0.25054,0.20353,0.20353,0.069981,-0.1437,-0.29061,0.19018,0.1234,-0.063571,-0.2639,-0.27725,0.21689,-0.10364,-0.21048,-0.23719,-0.21048 0.14626,-0.029501,-0.065639,-0.0081473,-0.093563,0.24153,0.036203,-0.01636,-0.04757,-0.14448,0.24974,0.23989,0.0066361,-0.11656,-0.29068,0.2596,0.26288,-0.083707,-0.15762,-0.30874,0.28095,0.33844,-0.063996,-0.30546,-0.3301 -0.033602,-0.015823,-0.011379,-0.18695,-0.23806,0.1953,0.20419,0.21308,-0.21362,-0.23584,0.19753,0.23086,0.22419,-0.20028,-0.24028,0.21753,0.22419,0.20419,-0.20917,-0.23362,0.20641,0.21753,-0.046937,-0.23139,-0.23806 0.34115,0.35791,0.37466,0.25737,0.32439,0.073056,0.10657,0.10657,0.0563,0.0563,-0.010724,-0.010724,-0.010724,0.022788,-0.12802,-0.22855,-0.27882,-0.22855,-0.19504,-0.21179,-0.16153,-0.21179,-0.094503,-0.14477,-0.16153 -0.24209,-0.11826,0.021051,0.33063,0.36158,-0.13374,-0.13374,-0.0099064,0.28419,0.33063,-0.18017,-0.14922,-0.0873,0.067487,0.33063,-0.24209,-0.14922,-0.11826,0.021051,0.25323,-0.19565,-0.13374,-0.19565,-0.071821,0.16036 0.13845,0.071828,-0.050813,-0.11743,-0.19162,0.11119,0.091511,-0.073524,-0.10381,-0.17345,0.13845,0.0688,-0.078066,-0.13863,-0.18254,0.55028,0.11725,-0.041728,-0.14469,-0.20676,0.54422,0.12936,-0.096235,-0.14014,-0.2219 0.29562,0.2948,-0.10698,-0.10643,-0.11245,0.2937,-0.10588,-0.11054,-0.10753,-0.11711,0.38484,-0.10588,-0.10944,-0.11574,-0.11492,0.41659,-0.10643,-0.11492,-0.11656,-0.1141,0.42726,-0.10807,-0.11628,-0.1141,-0.10944 -0.15411,-0.15463,-0.15463,-0.15411,-0.15343,-0.15343,-0.15429,-0.15583,-0.1548,-0.1548,-0.15343,-0.15463,-0.15411,-0.15394,-0.1548,0.17151,0.17784,0.18075,0.18434,0.4126,0.17732,0.17921,0.18348,0.18673,0.46119 -0.060563,-0.049727,-0.041847,-0.033966,0.054692,-0.057608,-0.054653,-0.054653,-0.045787,-0.015249,-0.059578,-0.061548,-0.049727,-0.049727,-0.015249,-0.068444,-0.043817,-0.042832,-0.050712,-0.037906,0.9728,-0.053668,-0.030026,-0.026085,-0.024115 0.16393,0.14046,-0.21029,-0.2078,-0.41021,0.17176,0.15611,0.12267,0.11093,-0.3042,0.12338,0.15789,0.12907,-0.063376,-0.31345,0.1931,0.17318,0.12801,-0.080807,-0.27966,0.19026,0.18848,0.12338,-0.08223,-0.32057 0.14217,0.1437,0.14523,-0.24474,-0.32825,0.14217,0.1391,0.14064,-0.24551,-0.32442,0.13834,0.1391,0.13604,-0.24627,-0.31523,0.13144,0.13144,0.13297,0.13527,-0.30757,0.12991,0.12991,0.13297,0.12991,-0.30833 -0.2262,0.018606,0.092049,0.16549,0.31238,-0.37309,-0.079318,0.018606,0.16549,0.16549,-0.29965,-0.079318,0.018606,0.092049,0.092049,-0.29965,-0.079318,0.092049,0.14101,0.16549,-0.51998,-0.030356,0.067568,0.16549,0.21445 -0.014299,-0.049476,-0.075146,-0.073244,-0.084653,-0.0019395,-0.070392,-0.070392,-0.036166,0.0037649,-0.077047,-0.078949,-0.065638,-0.030461,0.01042,-0.090358,-0.078949,-0.037117,-0.00098876,0.013272,0.964,-0.070392,0.011371,-0.0047917,0.0075678 -0.14489,-0.31591,-0.28481,-0.44028,-0.37809,0.010572,-0.020521,-0.051615,-0.19153,-0.22263,0.088304,0.1194,0.088304,0.072758,-0.098254,0.21268,0.21268,0.19713,0.10385,0.16604,0.22822,0.15049,0.16604,0.19713,0.13494 -0.19949,-0.075583,-0.13754,0.11028,0.11028,-0.23047,-0.16851,-0.075583,0.23418,0.35809,-0.13754,-0.16851,0.017347,0.14125,0.26516,-0.35437,-0.044606,-0.075583,0.20321,0.26516,-0.26144,-0.075583,-0.044606,-0.075583,0.42004 0.38921,0.32568,0.26215,0.3045,0.29392,0.35744,0.082161,0.03981,0.03981,0.029222,0.03981,-0.066068,-0.15077,-0.2143,-0.18253,-0.15077,-0.18253,-0.15077,-0.087243,-0.12959,-0.15077,-0.17195,-0.18253,-0.16136,-0.18253 -0.012141,-0.060065,-0.15591,-0.23579,-0.28371,0.13163,0.16358,0.019809,-0.23579,-0.25176,0.24346,0.17956,0.083708,-0.15591,-0.28371,0.27541,0.21151,0.16358,-0.092015,-0.21981,0.30736,0.24346,0.19553,0.035784,-0.26774 -0.092128,-0.090885,-0.091631,-0.091631,-0.092376,-0.092873,-0.092128,-0.092128,-0.091382,-0.091879,-0.092873,-0.092128,-0.092625,-0.092376,-0.091134,-0.092873,-0.091879,-0.092625,-0.092625,-0.092625,0.56437,0.38173,0.55443,0.17201,0.17027 0.40676,0.25589,0.014484,-0.076042,-0.13639,0.34641,-0.015691,-0.19674,-0.16657,-0.25709,0.43694,0.074835,-0.015691,-0.16657,-0.13639,0.31624,-0.015691,-0.10622,-0.015691,-0.25709,0.044659,0.044659,-0.015691,-0.16657,-0.19674 -0.29558,-0.32089,-0.47273,-0.32089,-0.14374,-0.11844,-0.11844,-0.11844,-0.11844,-0.067822,-0.067822,0.13463,0.033405,0.033405,0.15994,0.13463,0.15994,0.13463,0.21055,0.21055,0.084019,0.15994,0.26117,0.21055,0.23586 0.29502,0.28955,-0.091725,-0.10449,-0.082603,0.2859,0.28043,-0.097198,-0.12091,-0.13733,0.2932,0.2932,-0.097198,-0.13551,-0.18659,0.2786,-0.10632,-0.12639,-0.18294,-0.18476,0.2859,-0.097198,-0.16834,-0.19206,-0.19024 -0.02183,0.0068936,-0.02183,-0.12236,-0.02183,-0.02183,-0.02183,-0.16545,-0.02183,0.0068936,-0.108,-0.02183,-0.02183,0.0068936,-0.064915,-0.050553,-0.02183,-0.093639,-0.093639,-0.064915,0.95477,0.0068936,0.0068936,0.0068936,-0.036192 0.1152,0.11698,0.14003,0.13235,0.13294,0.11284,0.1223,0.12585,0.12821,0.14476,0.1223,0.11757,0.13117,0.027713,0.0093875,0.12407,0.11875,0.019437,0.003476,0.0046583,-0.38196,-0.39201,-0.39142,-0.39023,-0.39437 -0.20511,-0.020377,0.19235,0.21474,0.18115,-0.27789,-0.081956,0.19795,0.21474,0.18115,-0.2555,-0.2387,0.19235,0.18115,0.15876,-0.29468,-0.2387,-0.031573,0.15876,0.18675,-0.29468,-0.2555,-0.13794,0.069192,0.20355 -0.1307,-0.1307,-0.10694,-0.035646,0.46934,-0.11882,-0.12476,-0.1307,0.011882,0.33864,-0.12476,-0.083174,-0.12476,0.005941,0.40399,-0.12476,-0.1307,-0.12476,-0.017823,0.43964,-0.12476,-0.14853,-0.11882,-0.041587,0.27329 -0.094585,-0.094585,-0.045018,-0.090474,-0.092758,-0.099382,0.029448,-0.053241,-0.058723,-0.074941,-0.10167,0.11145,-0.050957,-0.059637,-0.10144,0.11876,0.11762,-0.056895,-0.054383,-0.050728,0.92692,-0.01281,-0.053241,-0.0089268,-0.049814 0.30045,0.35734,-0.09749,-0.11232,-0.13335,0.34655,-0.091559,-0.098568,-0.11798,-0.13523,0.36381,-0.093715,-0.096681,-0.11825,-0.14224,0.37486,-0.091559,-0.098029,-0.11394,-0.13739,0.3816,-0.091559,-0.098568,-0.12014,-0.13604 -0.14801,-0.14801,-0.14741,-0.14741,-0.14781,-0.14741,-0.14899,-0.1484,-0.1482,-0.14722,-0.1482,-0.14702,-0.14741,-0.14741,-0.14682,0.22556,0.2228,0.23345,0.23384,-0.14248,0.22931,0.22832,0.2297,0.37625,0.37901 0.19806,0.14022,0.03367,-0.38797,-0.40471,0.20263,0.12195,0.045847,-0.036349,-0.40623,0.21328,0.1524,0.047369,-0.019605,-0.41384,0.20415,0.15392,0.035192,-0.027216,-0.10485,0.19958,0.15088,0.058024,-0.045482,-0.11093 -0.26135,-0.28636,0.17539,0.17584,0.12761,-0.26046,-0.26984,0.17138,0.17316,0.11734,-0.21982,-0.23456,0.17138,0.16021,0.17093,-0.22071,-0.23143,0.17539,0.1294,0.18701,-0.21669,-0.23277,0.17539,0.13565,0.1879 -0.12293,-0.13542,-0.12293,0.039477,0.15191,-0.14791,-0.18539,-0.085451,-0.022987,0.36429,-0.1729,-0.1729,-0.022987,0.076956,0.42675,-0.16041,-0.16041,-0.13542,0.089449,0.37678,-0.13542,-0.16041,-0.097944,0.064463,0.45174 -0.15148,-0.14831,-0.14884,-0.14884,-0.14725,-0.1499,-0.1499,-0.14884,-0.14937,-0.14831,-0.15043,-0.15201,-0.15095,-0.1499,-0.14884,0.30403,0.30113,0.2393,0.23401,-0.14514,0.30271,0.30007,0.2356,0.23613,0.23533 0.36866,0.36866,0.34179,0.34179,0.31492,0.20744,-0.034394,-0.0075236,-0.0075236,0.073087,-0.061264,-0.14187,-0.115,-0.0075236,-0.034394,-0.14187,-0.16874,-0.16874,-0.034394,-0.088134,-0.088134,-0.27622,-0.19561,-0.22248,-0.22248 0.16139,-0.034354,-0.15726,-0.19368,-0.22555,0.21602,0.17353,-0.20885,-0.23617,-0.19975,0.23271,0.19174,-0.10112,-0.23769,-0.18154,0.22967,0.20691,0.21905,-0.15575,-0.18458,0.29947,0.2494,0.23119,-0.11326,-0.18154 0.26801,0.26813,-0.14896,-0.14977,-0.15071,0.22996,0.27245,-0.14896,-0.15024,-0.15024,0.27023,-0.14977,-0.14884,-0.15012,-0.15082,0.27397,0.27327,-0.14919,-0.14989,-0.15071,0.2672,0.2749,-0.14931,-0.15001,-0.15059 -0.0080794,-0.15235,-0.18121,-0.18121,-0.15235,-0.18121,-0.15235,-0.18121,-0.065789,-0.094644,-0.1235,-0.036934,-0.1235,-0.094644,-0.0080794,-0.094644,-0.094644,0.078486,0.078486,-0.094644,0.36704,0.36704,0.4536,0.36704,0.30933 -0.079257,-0.071599,-0.044797,-0.03714,0.0049775,-0.088829,-0.056284,-0.044797,-0.033311,-0.017995,-0.079257,-0.075428,-0.016081,-0.033311,0.024122,-0.075428,-0.06777,-0.048626,-0.025653,0.016464,-0.071599,-0.060112,-0.016081,0.031779,0.96601 0.24545,0.21492,-0.059836,-0.15142,-0.24301,0.33704,0.12334,0.0012211,-0.24301,-0.15142,0.27598,0.18439,0.0012211,-0.15142,-0.36512,0.03175,0.062279,0.062279,0.062279,-0.24301,0.15386,0.36757,-0.090365,-0.18195,-0.24301 0.29401,0.28864,0.29866,0.41453,0.62088,-0.094012,-0.095442,-0.093297,-0.094012,-0.092581,-0.097588,-0.096158,-0.096158,-0.095442,-0.095442,-0.096873,-0.096158,-0.096873,-0.096873,-0.096873,-0.096873,-0.095442,-0.096873,-0.096873,-0.096873 0.12589,0.1297,0.1297,-0.17913,-0.21147,0.17916,0.17979,0.18169,-0.2045,-0.21718,0.2153,0.2153,0.2153,-0.21147,-0.21718,0.22418,0.22482,-0.19689,-0.20704,-0.21464,0.22735,0.22482,-0.19689,-0.20386,-0.21274 -0.15041,-0.14978,-0.14936,-0.1502,-0.14936,-0.15041,-0.14999,-0.15041,-0.14936,-0.14915,-0.15063,-0.14915,-0.15105,-0.15126,-0.14873,-0.14999,0.27709,0.27646,0.27097,0.27329,0.24944,0.26274,0.26379,0.26358,0.26189 0.25864,0.25864,0.23771,0.15401,0.34234,0.15401,0.049384,0.11216,0.13309,0.21679,-0.013392,-0.034318,0.07031,0.028459,0.049384,-0.097094,-0.11802,0.028459,-0.11802,-0.15987,-0.36912,-0.30635,-0.3482,-0.28542,-0.24357 0.1395,0.13658,0.167,0.15589,0.15237,0.13131,0.12721,0.16934,0.14652,0.14886,0.12897,0.15003,0.34548,0.14769,0.15413,-0.23617,-0.22856,-0.24436,-0.24261,-0.24495,-0.23734,-0.24085,-0.23734,-0.24378,-0.24495 -0.16872,-0.13267,-0.16872,-0.27687,-0.16872,-0.20477,-0.31292,-0.096616,-0.20477,-0.27687,-0.096616,-0.060565,-0.060565,0.083637,-0.024514,0.37204,0.19179,0.11969,0.15574,0.26389,0.19179,0.11969,0.22784,0.22784,0.29994 -0.14999,-0.14962,-0.15075,-0.15188,-0.1515,-0.14962,-0.14924,-0.14962,-0.1515,-0.15075,-0.1481,-0.1481,-0.14697,-0.14886,-0.14886,0.27412,0.27488,0.27261,0.27412,-0.14886,0.27412,0.27412,0.27412,0.27526,0.20086 -0.31903,-0.29208,0.058201,0.13904,0.13904,-0.29208,-0.1843,0.085146,0.13904,0.11209,-0.076523,-0.23819,0.19293,0.16598,0.21987,-0.23819,-0.23819,0.085146,0.27376,0.24682,-0.15736,-0.23819,-0.022634,0.19293,0.24682 -0.017327,-0.071025,-0.10324,-0.13546,-0.13725,0.0023627,-0.031646,-0.092504,-0.11219,-0.13188,-0.0083769,0.016682,-0.078185,-0.088924,-0.10324,0.0077326,-0.0083769,-0.063865,-0.013747,-0.078185,0.91523,0.10618,0.1026,0.10976,0.014892 -0.092157,-0.092009,-0.091567,-0.092009,-0.092157,-0.090386,-0.091419,-0.091567,-0.090829,-0.092157,-0.089648,-0.090238,-0.090533,-0.090829,-0.090533,-0.089648,-0.0895,-0.0895,-0.09009,-0.090386,0.51368,0.5187,0.51545,0.13518,0.13415 0.17333,0.33317,0.35093,0.40421,0.38645,-0.0042623,0.17333,0.12005,0.12005,0.12005,-0.12858,-0.18186,-0.12858,-0.12858,-0.18186,-0.18186,-0.022022,-0.2529,-0.11082,-0.12858,-0.14634,-0.14634,-0.14634,-0.12858,-0.1641 0.25448,0.12945,0.0091922,-0.065822,-0.15512,0.23185,0.10683,0.0080015,-0.097971,-0.16227,0.23423,0.11278,0.023481,-0.077729,-0.1837,0.25805,0.14374,0.013955,-0.06225,-0.1456,0.24138,0.15208,0.017527,-0.48852,-0.49805 -0.014877,-0.032392,-0.055572,-0.012301,-0.010241,-0.11893,-0.023119,-0.096783,-0.019513,-0.0076652,-0.04527,-0.031361,-0.081329,-0.017968,-0.031361,-0.04424,-0.027755,-0.067936,-0.0097257,-0.014877,0.968,-0.019513,-0.083905,-0.013847,-0.087511 0.14858,0.12808,-0.0020078,-0.37458,-0.39367,0.22635,0.1712,0.046067,-0.37812,-0.36681,0.22988,0.15423,0.046067,-0.05291,-0.15684,0.20655,0.17756,0.046067,-0.039478,-0.13845,0.20867,0.18958,0.084243,-0.038771,-0.12149 -0.18002,-0.16043,0.091276,0.26159,0.26762,-0.19509,-0.12727,0.21034,0.25255,0.2646,-0.22524,-0.22524,-0.20564,0.088261,0.24953,-0.23277,-0.21016,0.064146,0.073189,0.21637,-0.21619,-0.21469,-0.17851,0.085247,0.24652 -0.17474,-0.1616,-0.14846,-0.15444,-0.14607,-0.16519,-0.17116,-0.11621,-0.14369,-0.15324,-0.15802,-0.17236,-0.11621,-0.12457,-0.1401,0.13704,0.29473,0.31145,0.31145,-0.11979,0.24336,0.25292,0.27084,0.27562,0.26845 0.13787,-0.096556,-0.10289,-0.096556,-0.10606,0.38179,-0.093388,-0.099724,-0.10289,-0.099724,0.47999,-0.10289,-0.096556,-0.093388,-0.087053,0.43248,-0.093388,-0.10289,-0.093388,-0.083885,0.48316,-0.093388,-0.10289,-0.087053,-0.080717 -0.12603,-0.1217,-0.11776,-0.050823,-0.055548,-0.12406,-0.11776,-0.05791,-0.048461,-0.056335,-0.058698,-0.094528,-0.046492,-0.03468,0.012174,0.023199,0.022018,0.021624,0.011387,0.0094181,0.94493,0.020049,0.020443,0.012962,0.012568 0.28977,0.20705,0.20366,0.20415,0.19447,0.3367,0.19302,0.1906,0.20173,0.20463,0.22834,-0.17174,-0.17948,-0.16787,-0.1669,-0.18141,-0.17561,-0.17561,-0.17561,-0.16738,-0.17996,-0.17561,-0.17706,-0.17754,-0.18238 -0.4598,-0.38516,-0.28919,-0.24654,-0.26786,-0.10791,-0.11858,-0.11858,-0.054596,-0.043933,0.03071,0.041374,0.12668,0.11602,0.15867,0.0627,0.073363,0.10535,0.22265,0.19066,0.084027,0.13734,0.20132,0.23331,0.30796 0.084907,0.091024,0.076343,0.08613,-0.38,0.1106,0.0898,0.1106,0.11549,-0.38245,0.099588,0.094694,0.13629,0.11549,-0.39468,0.083683,0.10571,0.11549,0.11305,-0.40202,-0.042331,0.13874,0.1314,0.11549,-0.41303 0.059261,-0.11522,-0.1308,-0.13236,-0.12301,0.3241,-0.074716,-0.13236,-0.13703,-0.13703,0.35682,0.067051,-0.1121,-0.13547,-0.13859,0.40511,0.077956,-0.10276,-0.13547,-0.13703,0.47521,0.31787,-0.0716,-0.12768,-0.14015 0.18511,0.15182,0.15182,-0.14782,-0.11453,0.2517,0.28499,0.051938,-0.2477,-0.18112,0.2517,0.018644,0.085231,-0.21441,-0.31429,0.15182,0.35158,-0.11453,-0.081236,-0.281,0.085231,0.2184,-0.081236,-0.14782,-0.31429 0.1255,0.12373,0.12329,0.10782,0.10429,0.13125,0.12418,0.11136,0.098541,0.082188,0.1118,0.10296,0.094122,0.067162,0.072023,0.08705,0.082188,0.076001,0.083514,0.083514,-0.39646,-0.39691,-0.39823,-0.40044,-0.40044 0.10915,0.10825,0.11005,0.10735,0.10645,0.099237,0.10284,0.10374,0.10465,0.10374,0.099237,0.095631,0.095631,0.095631,0.097434,0.088419,0.090222,0.095631,0.093828,0.092025,-0.39839,-0.402,-0.39839,-0.402,-0.39839 0.19148,0.12931,0.087866,0.025697,-0.2437,0.12931,0.19148,0.087866,-0.036473,-0.16081,0.12931,0.12931,0.12931,0.025697,-0.3266,0.19148,0.12931,0.025697,-0.036473,-0.36804,0.19148,0.12931,0.025697,-0.18154,-0.596 0.33761,0.044468,0.018384,0.015899,0.025836,0.32892,0.054405,0.023352,0.028321,-0.23253,0.30904,0.0395,0.025836,-0.25116,-0.23998,0.29041,0.0395,0.025836,-0.24867,-0.26606,0.29538,0.079248,-0.22632,-0.25116,-0.26606 0.2017,0.10234,0.25138,0.17686,0.17686,0.17686,0.10234,0.15202,0.15202,0.15202,0.25138,0.077502,0.15202,0.15202,0.0029808,-0.021859,-0.24542,-0.22058,-0.27026,-0.22058,-0.19574,-0.27026,-0.24542,-0.39446,-0.19574 -0.1807,-0.1801,-0.1789,-0.1783,-0.1753,-0.1783,-0.1735,-0.1729,-0.1795,-0.1819,-0.1699,-0.1759,-0.1771,-0.1753,0.25029,0.23168,0.20286,0.21427,0.24188,0.23948,0.21307,0.21667,0.19566,0.22507,0.24668 -0.19227,-0.1407,-0.14269,0.22859,0.22895,-0.1939,-0.19499,-0.1939,0.2275,0.22696,-0.19462,-0.19462,-0.19553,0.22606,0.22479,-0.19046,-0.15844,-0.16169,0.22352,0.22334,-0.15934,-0.16133,0.22208,0.22171,0.22099 -0.3395,-0.25146,-0.30428,-0.30428,-0.35711,-0.022539,-0.0049305,-0.057757,-0.1458,-0.26906,0.13594,0.18877,0.030287,-0.0049305,-0.022539,0.24159,0.29442,0.17116,0.13594,0.012678,0.24159,0.17116,0.20638,0.13594,0.11833 0.33601,0.26697,0.15189,0.19792,0.19792,0.22094,0.17491,0.15189,0.313,0.10587,-0.10126,0.013809,-0.03222,0.013809,0.059837,-0.14729,-0.055234,-0.26236,-0.21634,-0.26236,-0.33141,-0.17031,-0.17031,-0.17031,-0.28538 -0.14505,-0.14871,-0.19803,-0.15008,-0.15282,-0.14597,-0.14916,-0.1583,-0.14916,-0.15008,-0.14688,-0.14871,-0.14642,-0.13181,-0.14871,0.2664,0.26731,0.27005,-0.12587,0.26457,0.25635,0.27005,0.27096,0.26275,0.26731 -0.19618,-0.18705,-0.20074,-0.22127,-0.20074,-0.16424,-0.17793,-0.20074,-0.16424,-0.18021,-0.072997,0.047904,-0.068435,-0.031936,-0.050185,0.077559,0.084403,0.2053,0.16196,0.12546,0.13459,0.49729,0.45395,0.15968,0.16881 0.41029,0.34281,0.3698,0.45078,0.3698,0.032391,-0.11607,-0.075579,-0.14306,-0.17005,-0.12956,-0.12956,-0.048587,-0.0080978,-0.089075,-0.11607,-0.075579,-0.11607,-0.11607,-0.075579,-0.089075,-0.12956,-0.075579,-0.089075,-0.18355 0.97623,-0.028855,-0.054316,-0.039767,-0.045829,0.0087294,-0.015519,-0.045829,-0.056741,-0.053104,-0.0033947,-0.03613,-0.038555,-0.054316,-0.053104,-0.025218,-0.028855,-0.049466,-0.057953,-0.056741,-0.039767,-0.040979,-0.044617,-0.060378,-0.055528 0.43811,-0.088753,-0.168,-0.18085,-0.14444,0.47666,-0.088753,-0.12302,-0.18513,-0.14872,0.26677,0.25178,-0.045918,-0.14015,-0.15943,0.2218,0.16611,-0.050202,-0.14658,-0.16157,0.19181,0.14684,-0.033068,-0.14015,-0.15515 -0.22704,-0.22402,-0.22503,-0.22704,-0.22503,-0.22905,-0.23106,-0.22101,-0.22704,-0.23206,0.17293,-0.21297,0.18499,0.17595,0.17394,0.17595,0.17997,0.17695,0.17896,0.17695,0.17293,0.17293,0.17896,0.17595,0.18399 0.25833,0.25318,0.11836,-0.16004,-0.16004,0.25627,0.2573,-0.15026,-0.16467,-0.15386,0.25833,0.25318,-0.16673,-0.16261,-0.16158,0.25936,0.25421,-0.16467,-0.16416,-0.16055,0.25936,-0.16879,-0.16673,-0.1621,-0.16107 -0.13648,-0.14727,-0.14875,-0.14875,-0.14727,-0.14875,-0.14987,-0.15136,-0.15061,-0.14875,-0.15396,-0.15285,-0.15247,-0.15359,-0.15359,-0.15508,0.26086,0.27053,0.27202,0.26978,0.25825,0.26234,0.26532,0.27016,0.27016 0.3647,0.31027,0.2014,0.28305,0.2014,0.22862,0.14697,0.14697,0.038103,0.11975,0.038103,0.038103,-0.043546,-0.043546,-0.043546,-0.09798,-0.1252,-0.2885,-0.09798,-0.17963,-0.09798,-0.34293,-0.20685,-0.37015,-0.17963 0.18325,0.18289,0.17896,-0.2304,-0.23254,0.18325,0.17646,0.17932,-0.23576,-0.23254,0.18039,0.17288,0.16966,-0.2329,-0.23361,0.18575,0.17109,0.1668,-0.23361,-0.24327,-0.13458,0.17181,0.16752,-0.23326,-0.22754 0.18014,0.22473,0.22473,0.38079,0.29162,0.068668,0.15785,0.090963,0.18014,0.22473,-0.13199,0.024078,-0.042806,0.068668,0.11326,-0.22116,-0.15428,-0.17657,-0.13199,-0.15428,-0.31034,-0.19887,-0.37723,-0.17657,-0.15428 -0.14909,-0.14936,-0.14962,-0.14975,-0.14949,-0.1487,-0.14909,-0.14936,-0.14949,-0.14922,-0.14883,-0.14844,-0.14922,-0.14909,-0.14949,0.30712,0.28112,0.26221,0.2412,-0.1462,0.31946,0.28847,0.26996,0.19891,0.21598 -0.11835,-0.13542,-0.10697,0.080797,0.4165,-0.10128,-0.16956,-0.15818,0.058037,0.39943,-0.12973,-0.15249,-0.17525,-0.067141,0.38236,-0.10697,-0.10697,-0.12404,-0.044381,0.37098,-0.12404,-0.10697,-0.09559,-0.021622,0.33684 -0.22946,-0.22015,-0.23101,0.17148,0.19242,-0.23256,-0.2124,0.15985,0.17691,0.19087,-0.22946,-0.22326,0.1583,0.17769,0.19552,-0.22713,-0.22713,0.1583,0.17458,0.19242,-0.21628,-0.22946,0.16062,0.17846,0.19087 0.235,0.235,0.19701,0.22234,0.24133,0.19701,0.19068,0.19701,0.19068,0.15903,0.19701,0.15903,-0.056218,-0.17017,-0.1955,-0.030894,-0.18916,-0.21449,-0.22715,-0.23348,-0.22715,-0.21449,-0.22715,-0.22715,-0.20816 0.20353,0.18931,0.18682,-0.20738,-0.20854,0.19327,0.18853,0.18806,-0.20769,-0.20839,0.19506,0.1932,0.18682,-0.20769,-0.20885,0.19871,0.19133,-0.20746,-0.20808,-0.20885,0.19444,0.18853,-0.20738,-0.20854,-0.20878 0.28813,0.33632,0.26404,0.26404,0.31222,0.095402,-0.049146,0.095402,0.16768,0.19177,-0.14551,0.047219,0.071311,0.023128,0.047219,-0.21779,-0.12142,-0.097329,-0.1937,-0.097329,-0.29006,-0.26597,-0.24188,-0.26597,-0.21779 -0.22938,-0.22726,-0.23149,-0.22938,-0.22568,-0.2299,-0.22938,-0.22673,-0.23254,-0.2299,0.11555,0.11291,0.10657,0.12453,0.11503,0.11344,0.1145,0.12295,0.38283,0.11714,0.11767,0.12242,0.12136,0.38706,0.11767 -0.098349,-0.14957,-0.14104,0.038247,0.38828,-0.089812,-0.11542,-0.089812,0.046784,0.39681,-0.12396,-0.14104,-0.14104,-0.030051,0.35413,-0.089812,-0.14104,-0.14957,-0.012977,0.3712,-0.1325,-0.15811,-0.19226,0.0040979,0.39681 0.39396,0.31501,0.13737,-0.040264,-0.2179,0.37422,0.17685,0.018948,-0.13895,-0.17843,0.23606,0.097898,-0.060002,-0.11921,-0.19816,0.27553,0.058423,-0.13895,-0.13895,-0.11921,0.058423,-0.079739,-0.17843,-0.17843,-0.35606 0.16603,0.18504,0.13753,0.14703,-0.273,0.16603,0.20024,0.18124,-0.21218,-0.2635,0.14703,0.16603,0.17744,-0.19888,-0.2787,0.12422,0.14703,0.15843,-0.25969,-0.31291,-0.060134,0.12802,0.15463,-0.2635,-0.2635 0.28422,0.28387,-0.057261,-0.06138,-0.23327,0.30193,0.28545,-0.058144,-0.064087,-0.23374,0.30258,-0.057614,-0.059909,-0.23574,-0.067324,0.32058,-0.057967,-0.060498,-0.23609,-0.1417,0.33994,-0.056379,-0.059085,-0.23615,-0.14223 0.16789,0.15638,0.1535,0.087285,-0.28408,0.1535,0.14486,0.13623,0.087285,-0.30999,0.14198,0.15062,0.13335,0.032588,-0.3215,0.15062,0.13335,0.13335,-0.2812,-0.3215,0.12183,0.13335,-0.022109,-0.32726,-0.35029 0.36378,-0.11121,-0.14567,-0.13979,-0.14904,0.25281,-0.11625,-0.13643,-0.14651,-0.14315,0.24692,0.2133,-0.13811,-0.15492,-0.13474,0.36966,0.22591,-0.13138,-0.15744,-0.10112,0.389,0.2175,-0.1255,-0.1524,-0.095232 0.047822,0.047714,0.16229,0.14199,0.14264,0.04847,0.16402,0.14426,0.14123,0.13788,0.049118,0.049766,0.14523,0.1422,0.14026,0.049442,0.049874,0.04901,0.049442,0.048686,-0.38888,-0.39266,-0.38942,-0.39072,-0.38964 -0.35618,-0.41904,-0.33523,-0.27237,-0.35618,-0.083808,-0.062856,0,-0.12571,-0.041904,0.083808,0.18857,0.10476,0.062856,0,0.14666,0.27237,0.12571,0.041904,0.18857,0.083808,0.18857,0.18857,0.18857,0.18857 0.13839,0.12911,0.082736,-0.32538,-0.33775,0.16003,0.1322,0.11056,-0.30992,-0.3192,0.11365,0.16003,0.092011,-0.028568,-0.29446,0.13839,0.15694,0.1322,0.092011,-0.29755,0.15694,0.1724,0.14148,0.12293,-0.3192 0.095896,0.23632,0.23835,-0.11169,-0.2745,0.065369,0.2119,0.23021,-0.097442,-0.30706,0.065369,0.19562,0.22818,-0.11983,-0.27653,0.026701,0.1427,0.19765,-0.19716,-0.32538,0.0083848,0.102,0.19155,-0.1992,-0.32741 -0.17467,-0.17432,-0.1837,0.2344,0.23475,-0.17641,-0.17571,-0.17884,0.23232,0.23266,-0.1778,-0.17502,-0.17814,0.22363,0.2285,-0.1771,-0.17675,-0.17849,0.22398,0.2278,-0.17675,-0.1771,0.20453,0.22329,0.21495 0.16874,-0.11183,-0.19199,-0.18197,-0.24209,0.28899,0.018438,-0.19199,-0.19199,-0.22205,0.28899,0.13868,-0.091787,-0.16193,-0.19199,0.30903,0.28899,0.048499,-0.19199,-0.12185,0.27897,0.24891,0.1988,0.0084171,-0.19199 0.3256,0.24506,-0.12995,-0.13952,-0.14556,0.31705,0.25412,-0.12693,-0.14153,-0.14858,0.3105,-0.11988,-0.12592,-0.14354,-0.14958,0.31302,-0.11787,-0.13046,-0.14103,-0.14858,0.30446,0.2511,-0.12441,-0.14153,-0.14606 0.16708,0.24268,0.22378,0.091478,0.14818,0.18598,0.12928,0.16708,0.12928,0.091478,0.015876,0.12928,0.091478,0.18598,0.091478,-0.21093,-0.13533,-0.040825,-0.021924,0.034777,-0.34323,-0.39993,-0.30543,-0.34323,-0.32433 0.97072,0.0087947,-0.022124,-0.022124,-0.030713,0.0087947,-0.041019,-0.030713,0.010512,-0.013536,-0.027277,-0.04789,-0.018689,-0.028995,-0.059914,-0.065067,-0.049608,-0.04789,-0.07022,-0.092551,-0.065067,-0.051325,-0.058196,-0.078809,-0.077091 -0.38557,-0.38557,-0.39045,-0.41,-0.37091,0.10299,0.044361,0.019933,0.0052764,-0.028923,0.17627,0.12253,0.10299,0.098102,0.073674,0.15673,0.14207,0.12742,0.088331,0.073674,0.17627,0.1323,0.11276,0.11764,0.098102 0.20649,0.20817,-0.19244,-0.19128,-0.19115,0.20559,0.26221,-0.19153,-0.19128,-0.1914,0.20559,0.19964,-0.1936,-0.19076,-0.19192,0.2021,0.20003,0.20481,-0.19192,-0.19166,0.20003,0.20042,0.19874,-0.19283,-0.19205 -0.16975,-0.16266,-0.036185,-0.035051,0.27718,-0.16834,-0.17004,-0.036753,-0.036753,0.28058,-0.17117,-0.15557,-0.15047,0.28937,0.28824,-0.1655,-0.16181,-0.16181,0.29533,0.29589,-0.1621,-0.1621,-0.16635,0.27321,0.27264 -0.11398,-0.31049,-0.081225,-0.24498,-0.27774,-0.048473,-0.11398,-0.27774,-0.17948,-0.21223,0.082535,0.017031,-0.17948,0.017031,-0.17948,0.18079,0.082535,0.14804,0.082535,0.24629,0.21354,0.27905,0.27905,0.27905,0.3118 -0.23016,-0.23016,-0.23016,-0.2295,-0.2295,-0.23115,-0.22967,-0.22967,-0.2295,-0.22835,0.21157,0.21322,0.010436,0.24592,0.028271,0.20513,0.20992,0.21768,0.21933,0.032399,0.2076,0.20992,0.21982,0.031408,0.035206 0.28693,0.47947,0.29257,0.2929,0.57507,-0.094504,-0.093508,-0.095832,-0.095168,-0.09716,-0.096828,-0.095168,-0.096496,-0.097824,-0.098488,-0.095168,-0.094836,-0.096164,-0.098156,-0.099152,-0.096164,-0.096164,-0.096828,-0.095832,-0.097492 0.6406,0.071901,0.052904,-0.12934,-0.26469,0.20784,0.077243,0.061809,-0.1329,-0.24035,0.20784,0.080805,0.064777,-0.14062,-0.27834,0.10039,0.09802,0.054685,-0.13053,-0.27953,0.086148,0.083179,0.081992,-0.12993,-0.24391 0.29751,0.30388,0.25163,0.25163,0.25163,-0.12306,0.27712,0.25163,0.25163,0.25163,-0.17659,-0.14345,-0.11287,-0.12306,-0.13963,-0.17659,-0.17532,-0.16385,-0.1562,-0.15365,-0.13326,-0.14091,-0.146,-0.1613,-0.16257 -0.051372,-0.055927,-0.051372,-0.039011,0.073545,-0.055927,-0.066336,-0.066336,-0.037709,-0.030553,-0.039011,-0.079349,-0.079999,-0.048119,-0.012986,-0.086505,-0.010384,-0.067638,-0.048119,0.012388,0.96553,-0.0058295,-0.062433,-0.003227,-0.053324 -0.14475,-0.13054,-0.13232,-0.043539,0.37906,-0.13587,-0.13232,-0.11989,-0.038212,0.37906,-0.13054,-0.13765,-0.12522,0.032814,0.38439,-0.12877,-0.12344,-0.10924,0.038141,0.39327,-0.12344,-0.12344,-0.10924,-0.01868,0.40037 0.25641,-0.12849,-0.12646,-0.16708,-0.15185,0.28688,0.2879,-0.12544,-0.16505,-0.14474,0.28485,0.33055,-0.12646,-0.16505,-0.14677,0.29907,0.34071,-0.13357,-0.16708,-0.14779,0.11931,0.1254,-0.13255,-0.14779,-0.1549 -0.18056,-0.17492,-0.17579,-0.17666,-0.17666,-0.17752,-0.17926,-0.17839,-0.17622,-0.17709,0.24337,-0.17318,-0.17579,-0.17926,-0.17535,0.25032,0.23036,0.2156,0.21083,0.19955,0.26073,0.23339,0.22124,0.2143,0.19695 -0.077056,-0.084919,-0.10064,-0.13865,-0.063951,-0.062641,-0.079677,-0.080987,-0.13472,-0.015464,-0.06133,0.05006,-0.016774,0.0068145,-0.084919,-0.06133,0.051371,-0.027258,0.0081249,-0.074435,0.94249,0.046129,0.015988,0.02254,0.02123 -0.18509,-0.18314,-0.18379,0.22222,0.21508,-0.18314,-0.17989,-0.17145,0.21898,0.22092,-0.17859,-0.17859,-0.1695,0.22417,0.22872,-0.17924,-0.1747,-0.1669,0.22417,0.23392,-0.17665,-0.17015,0.23392,0.22352,0.23522 0.21734,0.21434,0.21434,0.23035,0.19634,0.20934,0.21934,0.20634,0.21134,0.18433,0.19334,0.17433,-0.13576,-0.14776,-0.16477,-0.14376,-0.16477,-0.18177,-0.23579,-0.22278,-0.16877,-0.20278,-0.21278,-0.23679,-0.25279 0.28,0.28,-0.11117,-0.11072,-0.1114,0.28409,-0.1114,-0.11004,-0.11026,-0.10936,0.42356,-0.11095,-0.10981,-0.11072,-0.10936,0.41947,-0.11163,-0.11163,-0.11072,-0.11072,0.4172,-0.11163,-0.11095,-0.11163,-0.11026 0.12234,0.028868,-0.22112,-0.22329,-0.25372,0.10712,0.19625,0.22016,-0.21025,-0.24285,0.14625,0.19625,0.20494,-0.18851,-0.23199,0.19407,0.20277,0.19842,-0.19938,-0.22112,0.20277,0.19407,0.21581,-0.21025,-0.22764 -0.13718,-0.1112,-0.1177,-0.01377,0.41492,-0.1047,-0.14368,-0.091714,-0.033256,0.39544,-0.13069,-0.1177,-0.1177,-0.026761,0.35646,-0.14368,-0.13718,-0.1112,-0.00077944,0.38894,-0.15017,-0.15017,-0.085219,-0.026761,0.39544 0.10718,0.35357,0.16878,0.19957,0.19957,0.23037,0.19957,0.16878,0.16878,0.26117,-0.046814,0.10718,-0.077612,0.10718,-0.016015,-0.10841,-0.17001,-0.23161,-0.2624,-0.10841,-0.2624,-0.23161,-0.17001,-0.23161,-0.3548 0.21773,0.19583,0.17392,0.13011,0.13011,0.097256,0.097256,0.11916,0.097256,0.075352,0.064399,0.086304,0.031543,0.097256,0.031543,0.042495,0.075352,0.042495,0.086304,0.053447,-0.42845,-0.37369,-0.38464,-0.36274,-0.3956 0.26972,0.2286,0.26972,0.30056,0.33139,0.29028,0.25944,0.18749,0.07442,-0.018091,-0.090044,-0.15172,-0.19283,-0.090044,-0.038649,-0.25451,-0.19283,-0.15172,-0.090044,-0.090044,-0.34702,-0.19283,-0.12088,-0.10032,-0.090044 -0.39329,-0.33805,-0.39329,-0.24599,-0.35646,0.011784,0.011784,-0.043453,-0.09869,-0.09869,0.19591,0.085433,0.048608,0.011784,0.048608,0.17749,0.12226,0.19591,0.030196,0.011784,0.25114,0.28797,0.23273,0.14067,0.10385 0.9759,-0.0088896,-0.031317,-0.042531,-0.012967,-0.012967,-0.023162,-0.037434,-0.055784,-0.06394,-0.021123,-0.02724,-0.040492,-0.06292,-0.054765,-0.025201,-0.040492,-0.033356,-0.066998,-0.06394,-0.031317,-0.043551,-0.042531,-0.064959,-0.068018 -0.42106,-0.38262,-0.3586,-0.32977,-0.22408,-0.055923,-0.051119,-0.079945,-0.07514,-0.0030748,0.049773,0.064186,0.059382,0.068991,0.068991,0.13625,0.12664,0.10262,0.083404,0.16027,0.13145,0.11223,0.16027,0.2948,0.36206 0.20557,0.17461,0.23653,0.14365,0.23653,0.20557,0.14365,0.11269,0.14365,0.13333,-0.031785,0.071413,0.13333,0.071413,0.17461,-0.22786,-0.1969,-0.093704,-0.062744,-0.073064,-0.33106,-0.26914,-0.49618,-0.16594,-0.23818 0.92546,0.25354,-0.052559,-0.022696,-0.022696,-0.0077644,0.022099,-0.022696,-0.067491,-0.052559,-0.022696,-0.052559,-0.11229,-0.089888,-0.074957,-0.052559,-0.067491,-0.067491,-0.074957,-0.052559,-0.045094,-0.060025,-0.045094,-0.052559,-0.082423 0.15122,0.21913,0.10594,-0.21098,-0.39208,0.12858,0.10594,0.19649,-0.14307,-0.43735,0.060668,0.03803,0.10594,-0.052518,-0.3468,0.17385,0.083305,0.15122,-0.075155,-0.3468,0.24177,0.17385,0.12858,0.03803,-0.097793 0.25643,-0.09094,-0.153,-0.18229,-0.19529,0.28959,0.23257,-0.15262,-0.039155,-0.25929,0.29793,0.13657,-0.14835,-0.13982,-0.26162,0.1546,0.15693,-0.14098,-0.13613,-0.17841,0.32334,0.27136,0.22598,-0.13477,-0.13264 0.19744,0.18239,0.17637,0.15831,0.16132,0.19643,0.17938,0.17838,0.15731,0.15731,0.19844,0.18339,0.18339,0.16834,-0.22693,-0.22192,-0.22894,-0.22392,-0.2169,-0.22392,-0.22794,-0.22292,-0.23396,-0.22593,-0.22493 -0.064486,-0.049768,-0.033062,0.011885,0.016658,-0.061304,-0.057724,-0.04778,-0.041415,-0.051359,-0.062895,-0.044597,-0.048575,-0.048575,0.018249,-0.059712,-0.045791,-0.041018,-0.043802,-0.030676,0.97368,-0.048973,-0.045393,-0.042609,-0.050962 -0.14755,-0.14886,-0.14833,-0.1486,-0.14807,-0.14729,-0.14702,-0.14833,-0.14729,-0.14729,-0.15175,-0.14702,-0.14624,-0.1465,-0.14624,-0.1528,0.19048,0.28811,0.28943,0.29468,0.18786,0.19153,0.28628,0.31803,0.32276 -0.19282,-0.19004,-0.18796,0.23275,0.24317,-0.19317,-0.18866,-0.19109,0.23345,0.23484,-0.19178,-0.19039,-0.19109,0.23449,0.239,-0.19213,-0.19039,0.14111,0.22859,0.23171,-0.189,-0.18414,0.15882,0.15222,0.1425 0.96477,0.042358,0.046575,-0.070511,-0.050078,-0.0014271,-0.012779,-0.040347,-0.0757,-0.068565,-0.024131,-0.040347,-0.052997,-0.073754,-0.074727,-0.02186,-0.052024,-0.054294,-0.066943,-0.074727,0.021276,-0.036131,-0.047807,-0.063375,-0.072457 0.06353,-0.078923,-0.10444,-0.10869,-0.093806,0.44836,-0.032147,-0.10018,-0.10444,-0.10231,0.46112,-0.06404,-0.10869,-0.10656,-0.10231,0.45474,-0.068292,-0.10018,-0.10018,-0.10231,0.43986,-0.072544,-0.10231,-0.10656,-0.10869 0.19002,0.22379,0.22285,0.2327,0.23294,0.11403,0.11497,0.11356,0.1145,0.11544,0.11309,0.11356,0.11168,0.11286,0.11215,-0.26169,-0.26099,-0.26333,0.11262,-0.25747,-0.26216,-0.26239,-0.26122,-0.26122,-0.26028 0.19769,0.021878,-0.23207,-0.3102,-0.3102,0.19769,0.13908,-0.1344,-0.27114,-0.193,0.25629,0.080481,-0.056259,-0.1344,-0.193,0.21722,0.21722,0.10002,0.041413,-0.21253,0.33443,0.27582,0.13908,0.021878,-0.193 -0.24268,-0.24131,0.25892,0.16475,0.15996,-0.24314,-0.24154,0.19166,0.15358,0.157,-0.24245,-0.24268,0.16247,0.14879,0.15563,-0.24428,-0.24405,0.14628,0.1472,0.15267,-0.24679,-0.24565,0.13762,0.14446,0.15358 0.20143,0.20418,0.003716,0.0064663,-0.22731,0.20632,0.20357,0.0040216,0.005244,-0.22762,0.22405,0.20052,0.20571,-0.23342,-0.22731,0.22252,0.20357,-0.22976,-0.22884,-0.22823,0.19899,0.20663,-0.23067,-0.23067,-0.23312 -0.26557,-0.26537,-0.26735,-0.26715,-0.26874,0.1505,-0.26577,-0.26577,-0.26696,-0.26616,0.15228,0.14554,0.14851,0.14732,0.14712,0.16697,0.15348,0.15447,0.1503,0.15129,0.13283,0.13978,0.14474,0.1507,0.163 -0.26886,-0.26799,-0.26711,-0.26799,-0.26565,0.14626,-0.26535,-0.26652,-0.2636,-0.26623,0.14217,0.14363,0.15036,0.14919,0.15943,0.13924,0.14363,0.15475,0.15504,0.15679,0.14597,0.1486,0.15299,0.15328,0.15797 -0.1581,-0.14057,-0.13806,0.24266,0.27523,-0.15059,-0.1556,-0.11552,0.30027,0.24767,-0.16562,-0.17313,-0.13305,0.26521,0.25769,-0.1581,-0.1581,-0.14808,0.26521,0.27022,-0.16562,-0.16311,-0.1556,-0.11302,0.26771 0.20824,0.15913,0.24099,0.25736,0.20824,0.14276,0.093644,0.093644,0.04453,0.19187,0.077273,-0.004584,0.15913,0.11002,0.12639,-0.10281,-0.10281,-0.15193,-0.053698,-0.037327,-0.41387,-0.41387,-0.29927,-0.31564,-0.21741 0.15764,0.14915,-0.2325,-0.2749,-0.20988,0.14915,0.17743,-0.22119,-0.2438,-0.19574,0.21418,0.20287,-0.099625,-0.19009,-0.17596,0.23679,0.23679,0.16612,-0.18161,-0.1392,0.27354,0.26789,0.20004,-0.14768,-0.11941 0.33625,0.17122,0.0583,-0.10152,-0.27871,0.3293,0.29977,0.0583,-0.012925,-0.27003,0.32756,0.29629,0.030505,-0.16059,-0.25787,0.042665,0.066986,-0.030296,-0.13626,-0.28393,-0.030296,-0.0094503,-0.030296,-0.14148,-0.2735 0.094048,0.091529,-0.23842,-0.26864,-0.25227,0.17087,0.083973,0.087751,-0.26361,-0.2359,0.23006,0.15324,0.07012,-0.24094,-0.20568,0.26406,0.25398,0.085232,-0.22834,-0.20442,0.23383,0.27161,0.17087,0.077676,-0.20064 0.17063,0.20844,0.17849,0.1392,0.15,0.18241,0.20255,0.18585,0.15982,0.15147,0.18389,0.18389,0.19862,0.17898,-0.20899,-0.23011,-0.22765,-0.2198,-0.23011,-0.21145,-0.22864,-0.23551,-0.22815,-0.23257,-0.22127 0.099291,0.11854,0.050088,-0.051885,-0.24157,0.39095,0.24761,0.071481,-0.044041,-0.20021,0.37526,0.18486,0.096439,-0.1781,-0.23872,0.11926,0.11854,-0.17668,-0.18809,-0.24656,0.10785,0.25047,-0.20377,-0.2159,-0.24513 -0.26484,-0.26868,-0.26791,-0.26484,-0.25715,-0.26253,-0.27483,-0.27022,-0.26791,0.14393,0.15699,0.15084,0.14162,0.14393,0.13855,0.15853,0.15315,0.14316,0.1447,0.14777,0.16314,0.15622,0.15238,0.15161,0.15238 -0.38747,0.0041776,0.10862,0.14778,0.17389,-0.41358,-0.034987,0.12167,0.082507,0.10862,-0.3222,-0.034987,0.095562,0.16084,0.17389,-0.38747,-0.021932,0.12167,0.17389,0.069452,-0.38747,0.030288,0.14778,0.12167,0.14778 0.029794,-0.041145,-0.02341,-0.11208,-0.46678,0.15394,0.11847,0.11847,0.047529,-0.3781,0.10073,0.11847,0.15394,0.10073,-0.3781,0.17167,0.20714,0.18941,0.065264,-0.3249,0.082999,0.15394,0.18941,0.01206,-0.28943 -0.22456,-0.22441,-0.22441,-0.22383,-0.22398,-0.22616,-0.22573,-0.22529,-0.2266,-0.22616,0.072117,0.0794,0.07838,0.075613,0.068622,0.078817,0.077943,0.30777,0.3586,0.35408,0.06935,0.15717,0.15761,0.1579,0.15776 0.14258,0.13671,0.31007,0.31496,0.31399,0.13867,0.14518,0.30975,0.31399,0.12368,-0.16374,-0.16016,-0.15886,-0.16635,0.12172,-0.17222,-0.16863,-0.16733,-0.16537,-0.17124,-0.17515,-0.1758,-0.17482,-0.17613,-0.17548 0.35141,0.12083,0.12397,0.12711,0.19315,0.12187,0.093575,0.12816,0.17218,0.2183,0.10091,0.12711,0.12292,0.15122,0.078902,-0.21667,-0.23134,-0.25021,-0.23658,0.077854,-0.26173,-0.27012,-0.24601,-0.29947,-0.29737 0.97392,-0.0049247,-0.0075929,-0.0060682,-0.01979,-0.0053059,-0.005687,-0.015979,-0.011786,-0.048759,-0.049521,-0.05562,-0.055239,-0.051046,-0.055239,-0.058669,-0.062481,-0.056764,-0.050665,-0.056382,-0.057907,-0.057907,-0.059432,-0.060956,-0.060194 0.54669,0.54446,0.26678,0.27049,0.27866,-0.10074,-0.10371,-0.090342,-0.084403,-0.091827,-0.10222,-0.10593,-0.096282,-0.093312,-0.10222,-0.10371,-0.099252,-0.090342,-0.090342,-0.088858,-0.093312,-0.093312,-0.097767,-0.097767,-0.081433 -0.2331,-0.21837,-0.21664,0.20977,0.1465,-0.23397,-0.21577,0.2011,0.2115,0.2115,-0.2279,-0.21837,0.13004,0.21324,0.21324,-0.22097,-0.2149,0.13177,0.15864,0.19504,-0.23484,-0.22704,0.13524,0.1569,0.14737 0.1943,0.13919,-0.29807,-0.29626,-0.29242,0.19701,0.23631,-0.082148,-0.29423,-0.29264,0.24715,0.24037,-0.077405,-0.074921,-0.07334,0.2485,0.24105,-0.073791,-0.074695,-0.074695,0.24263,0.24308,-0.074921,-0.075146,-0.074921 -0.2852,-0.30617,-0.2852,-0.11743,-0.32714,-0.24326,-0.096463,-0.096463,-0.18034,-0.15937,0.17615,0.029358,0.029358,0.050329,-0.11743,0.23906,0.17615,0.17615,0.26003,0.11324,0.30197,0.30197,0.17615,0.029358,0.15518 0.23406,0.43004,0.40204,0.26205,0.40204,0.038076,-0.017918,0.010079,0.094071,0.094071,-0.045916,-0.12991,0.038076,-0.017918,-0.073913,-0.12991,-0.1579,-0.2139,-0.12991,-0.12991,-0.29789,-0.1579,-0.12991,-0.2139,-0.1579 -0.16983,-0.17887,-0.1879,-0.17887,-0.16983,-0.16983,-0.22403,-0.22403,-0.17887,-0.1608,-0.12466,-0.16983,-0.15176,-0.0072269,0.092143,0.14634,0.16441,0.20055,0.30895,0.38122,0.046975,0.15538,0.20055,0.25475,0.34508 0.19922,0.12768,0.061639,0.030452,0.0047697,0.19372,0.12218,0.056135,0.03779,-0.28508,0.23041,0.14052,0.061639,-0.2062,-0.29058,0.19556,0.12218,0.081818,-0.27224,-0.33828,0.19739,0.12768,0.1075,-0.22454,-0.48137 -0.068939,-0.065901,-0.064381,-0.061343,-0.060584,-0.074256,-0.065901,-0.061343,-0.061343,-0.059824,-0.053747,-0.052228,-0.068939,-0.062862,-0.056026,0.20375,-0.052228,-0.053747,-0.070458,-0.045392,0.91091,0.21666,-0.068939,-0.051469,-0.051469 0.11861,0.12098,0.11148,0.11861,0.11386,0.099601,0.10435,0.099601,0.092473,0.10673,0.10673,0.090097,0.080593,0.082969,0.080593,0.092473,0.092473,0.099601,0.087721,0.097225,-0.38985,-0.39698,-0.39935,-0.40886,-0.40173 -0.073906,-0.075045,-0.080457,0.1312,-0.0058227,-0.071342,-0.07476,-0.075615,-0.07476,-0.077039,0.13177,-0.07476,-0.0759,-0.076184,-0.07476,0.13291,-0.014653,-0.073051,-0.076469,-0.071342,0.92284,-0.015508,-0.0086713,-0.072196,-0.076469 -0.15999,-0.16252,-0.13385,0.05505,0.051677,-0.16167,-0.15746,-0.1524,0.28189,0.28105,-0.15999,-0.15577,-0.15493,0.28021,0.27683,-0.15999,-0.16336,-0.15493,0.28021,0.28021,-0.15999,-0.15493,-0.15409,0.27936,0.27936 -0.36833,-0.30931,-0.32898,-0.38801,-0.44704,0.064537,-0.053518,0.0055092,-0.073194,0.0055092,0.10389,0.14324,0.14324,0.0055092,0.064537,0.10389,0.18259,0.10389,0.10389,0.064537,0.22194,0.064537,0.24162,0.18259,0.16292 0.2134,0.2134,0.20145,0.22535,0.2134,0.10981,0.15762,0.18152,0.18152,0.22137,-0.1412,-0.089407,0.046058,0.15762,0.19746,-0.23683,-0.2169,-0.23284,-0.15316,0.058011,-0.25675,-0.2687,-0.25675,-0.25675,-0.2687 -0.17254,-0.11062,-0.089983,0.19895,0.32278,-0.317,-0.0074298,-0.089983,0.19895,0.30214,-0.19317,-0.11062,-0.19317,0.26087,0.32278,-0.089983,-0.17254,-0.19317,0.26087,0.19895,-0.21381,-0.19317,-0.13126,0.075123,0.13704 0.22217,0.13127,0.040371,-0.11321,-0.13516,0.37575,0.30366,-0.10068,-0.16337,-0.14456,0.42277,0.36635,-0.14769,-0.1759,-0.16023,0.10619,0.071715,-0.14142,-0.20411,-0.20411,0.090522,0.065446,-0.15083,-0.1665,-0.18844 -0.266,-0.26529,-0.2678,-0.26565,-0.26816,-0.26565,-0.266,-0.26708,-0.26744,0.14761,0.1286,0.15048,0.15443,0.15407,0.15263,0.14079,0.14617,0.15335,0.15478,0.15478,0.15586,0.14438,0.15156,0.15478,0.15478 -0.056559,-0.23021,-0.27982,-0.25501,-0.40385,-0.13098,-0.15579,-0.18059,-0.23021,-0.081366,0.042667,-0.081366,0.14189,-0.031753,-0.031753,0.017861,0.11709,0.19151,0.11709,0.24112,0.29073,0.36515,0.21631,0.24112,0.1667 0.38806,0.36621,0.25696,0.34436,0.38806,0.016606,0.082156,0.060306,0.082156,0.10401,-0.2019,-0.092644,-0.092644,-0.005244,-0.15819,-0.11449,-0.18004,-0.18004,-0.2019,-0.092644,-0.11449,-0.15819,-0.048944,-0.2019,-0.2456 -0.27475,-0.023837,-0.086565,0.19571,0.25844,-0.27475,-0.24339,0.038892,-0.023837,0.22708,-0.24339,-0.14929,0.13298,0.10162,0.22708,-0.30611,0.038892,-0.023837,0.19571,0.2898,-0.36884,0.0075274,0.038892,-0.055201,0.32117 0.17424,0.33538,-0.17181,-0.18238,-0.25898,0.34859,0.24556,-0.10577,-0.16389,-0.23257,0.30104,0.060651,-0.037088,-0.12954,-0.25898,0.11348,0.055368,0.22443,-0.16653,-0.24842,0.19009,0.055368,0.14518,-0.060863,-0.23257 0.30786,0.016173,-0.2322,-0.21487,-0.17299,0.29053,-0.0069312,-0.2192,-0.20043,-0.19465,0.3714,-0.027147,-0.10657,-0.12245,-0.16433,0.42772,-0.0083752,-0.038699,-0.022815,0.0046208,0.42772,-0.0069312,-0.041587,-0.047363,-0.018483 0.36213,-0.06424,-0.10261,-0.10546,-0.098349,0.36924,-0.082716,-0.10261,-0.1083,-0.069925,0.38345,-0.062819,-0.094086,-0.085558,-0.081295,0.38487,-0.068504,-0.098349,-0.062819,-0.068504,0.40619,-0.03013,-0.10261,-0.042921,-0.37407 0.17144,0.19245,0.25548,0.31852,0.44458,0.15043,0.10841,0.087403,0.27649,0.27649,-0.10169,-0.1227,-0.18573,-0.14371,-0.16472,-0.20674,-0.10169,-0.22775,-0.10169,-0.16472,-0.1227,-0.1227,-0.1227,-0.22775,-0.16472 -0.33697,-0.29432,-0.36896,-0.37963,-0.41162,0.1109,-0.027726,-0.0063982,-0.0063982,-0.17702,0.19621,0.12157,0.10024,0.04692,0.014929,0.20688,0.13223,0.13223,0.10024,0.057584,0.26019,0.19621,0.16422,0.1109,0.057584 0.97397,-0.0093482,-0.011928,-0.037723,-0.045462,0.000454,0.00096991,-0.02173,-0.057844,-0.058359,-0.0062528,-0.0057369,-0.056812,-0.056296,-0.059907,-0.040819,-0.046494,-0.057328,-0.058359,-0.059907,-0.055264,-0.05578,-0.058875,-0.056296,-0.058875 0.41361,0.33297,-0.079587,-0.15835,-0.21273,0.12294,0.32922,-0.062709,-0.11334,-0.21648,0.3386,0.28047,-0.092713,-0.12272,-0.24649,0.053558,0.053558,-0.098339,-0.14147,-0.2071,0.053558,0.17545,-0.062709,-0.13022,-0.20898 -0.20324,-0.20718,0.16705,0.16705,0.16705,-0.20324,-0.20545,0.21424,0.22592,0.16152,-0.2026,-0.20418,-0.1442,0.22182,0.25512,-0.20324,-0.20639,-0.14247,0.22308,0.22197,-0.20308,-0.20608,-0.142,0.2245,0.22403 -0.29567,-0.22659,-0.22659,-0.19205,-0.22659,-0.019343,-0.22659,-0.019343,-0.22659,-0.15751,-0.019343,-0.053884,0.049739,-0.15751,-0.019343,0.22244,0.11882,0.049739,0.15336,0.015198,0.15336,0.29153,0.36061,0.42969,0.22244 0.20933,0.21306,0.21493,0.21679,0.21679,0.23172,0.23359,0.22426,0.22612,0.22612,-0.14702,-0.14142,-0.15448,0.24291,-0.14888,-0.14142,-0.14702,-0.14142,-0.14702,-0.15821,-0.22538,-0.21978,-0.22911,-0.22538,-0.22911 0.27702,0.2663,0.26825,0.26532,0.25753,0.2663,-0.11276,0.27507,0.2624,0.25753,-0.13518,-0.14395,-0.15174,-0.13615,-0.1303,-0.15759,-0.16344,-0.15467,-0.16149,-0.15856,-0.15467,-0.16636,-0.14784,-0.16051,-0.16051 -0.23313,-0.23313,-0.23278,-0.23313,-0.23313,-0.23336,-0.23278,-0.23313,-0.23313,-0.23325,0.082297,0.21422,0.19769,0.2056,0.11816,0.21049,0.2141,0.20001,0.19908,0.11618,-0.022495,-0.015393,0.21597,0.19594,0.19908 -0.28962,0.08235,0.1155,0.11918,0.13391,-0.38906,0.086033,0.10813,0.11918,0.14496,-0.40011,0.063935,0.11181,0.12286,0.14128,-0.3817,-0.10548,0.12654,0.13759,0.14128,-0.39643,-0.17177,0.12654,0.12286,0.13023 -0.21593,0.070243,0.20032,0.23934,0.25235,-0.25495,-0.020813,0.18731,0.13528,0.20032,-0.35902,-0.15089,0.044227,0.13528,0.14829,-0.37203,-0.15089,-0.0078047,0.096258,0.1613,-0.35902,-0.24195,-0.03382,0.096258,0.20032 0.95402,0.16959,-0.00040963,-0.019867,-0.054685,-0.02806,-0.023963,-0.036252,-0.045469,-0.061854,-0.051613,-0.053661,-0.047517,-0.057758,-0.062878,-0.058782,-0.061854,-0.051613,-0.057758,-0.066974,-0.064926,-0.042396,-0.056733,-0.057758,-0.06083 -0.048722,-0.049298,-0.048722,-0.048434,0.11393,-0.048722,-0.048434,-0.048434,-0.047858,-0.044979,-0.049586,-0.048722,-0.044404,-0.047282,-0.045267,-0.048146,-0.048146,-0.044691,-0.046995,-0.043828,0.96752,-0.046707,-0.045555,-0.044691,-0.043828 0.3355,-0.098604,-0.096005,-0.096871,-0.098171,0.3355,-0.097305,-0.097305,-0.098171,-0.095139,0.33723,-0.097305,-0.095572,-0.098604,-0.096438,0.33896,-0.097305,-0.097738,-0.097305,-0.096871,0.59761,-0.098171,-0.096438,-0.098604,-0.096871 0.17712,0.15956,0.15078,0.13541,0.13322,0.16834,0.16176,0.15517,0.13761,0.13322,0.16834,0.17054,0.15078,0.14639,0.13541,-0.26854,-0.25976,-0.24658,-0.25976,0.10907,-0.2883,-0.25976,-0.27732,-0.26195,-0.27073 0.3506,0.3506,0.21116,0.251,0.27092,0.19124,0.13148,0.19124,0.091634,-0.0079682,0.11155,-0.06773,0.011952,-0.16733,-0.027889,-0.08765,-0.08765,-0.10757,-0.18725,-0.18725,-0.16733,-0.16733,-0.34662,-0.24701,-0.30678 -0.073381,-0.070804,-0.075958,-0.019273,-0.019273,-0.075958,-0.075958,-0.042462,-0.0063899,-0.019273,-0.070804,-0.073381,-0.021849,-0.0063899,0.006493,-0.070804,-0.070804,-0.011543,-0.024426,-0.0038133,-0.078534,-0.060498,-0.029579,0.027106,0.96756 0.97071,-0.0067583,-0.0067583,-0.036818,-0.040964,-0.0046852,-0.0036487,-0.042519,-0.045629,-0.061177,0.0036072,-0.037336,-0.039928,-0.046665,-0.077762,-0.0046852,-0.037336,-0.040964,-0.058067,-0.088127,-0.031635,-0.033709,-0.046147,-0.076207,-0.10679 0.18495,0.51205,-0.0039313,-0.054608,-0.31413,0.19263,0.32624,-0.042323,-0.068429,-0.20817,0.23256,0.082066,-0.045394,-0.13446,-0.22353,0.22488,0.052888,-0.057679,-0.14368,-0.24196,0.20953,0.023711,-0.079179,-0.18821,-0.23582 0.012288,-0.052796,-0.12569,-0.11267,-0.11528,0.33771,-0.037176,-0.086639,-0.12309,-0.11267,0.40539,-0.008539,-0.11528,-0.1335,-0.12569,0.47048,-0.018952,-0.078829,-0.1335,-0.1335,0.54597,-0.042382,0.025305,-0.11528,-0.12569 -0.056205,-0.056796,-0.043205,-0.049705,-0.059159,-0.055023,-0.056205,-0.047933,-0.047342,-0.05975,-0.063296,-0.051478,-0.049705,-0.063886,-0.069204,0.16301,0.16774,-0.056205,-0.067432,-0.064477,0.93353,-0.053251,-0.058568,-0.067432,-0.068023 -0.17593,-0.17642,0.22251,0.22528,0.24924,-0.17642,-0.17691,-0.17871,0.22332,0.25805,-0.17789,-0.17577,-0.1774,0.22267,0.22512,-0.17789,-0.17691,-0.17822,0.22381,0.223,-0.17789,-0.17691,-0.17381,0.17833,0.22577 0.089378,0.079469,0.099287,0.12901,0.099287,0.094333,0.11415,0.099287,0.10424,0.11415,0.089378,0.1191,0.094333,0.099287,0.1191,0.079469,0.089378,0.10424,0.094333,0.084424,-0.3912,-0.40607,-0.38625,-0.42093,-0.3912 0.13949,0.32424,0.32424,0.30115,0.30115,0.13949,0.16258,0.1164,0.1164,0.047112,0.024018,0.024018,-0.11455,0.024018,0.024018,-0.18383,-0.068359,-0.091453,-0.13764,-0.045265,-0.39168,-0.2993,-0.18383,-0.25311,-0.2993 -0.18714,-0.18764,-0.18846,0.090321,-0.19043,-0.18747,-0.059753,-0.18862,-0.18961,-0.18912,-0.18813,-0.18895,-0.18895,-0.18895,-0.061726,0.21689,0.22133,0.22001,0.16117,0.16149,0.27064,0.27853,0.27639,0.32965,0.15854 -0.40641,0.052085,0.13156,0.12544,0.12544,-0.38196,0.070424,0.12544,0.1071,0.1071,-0.41252,0.052085,0.1071,0.12544,0.12544,-0.40641,0.015405,0.11322,0.1071,0.13156,-0.3575,-0.015161,0.12544,0.1071,0.12544 -0.26834,-0.25463,-0.19522,0.051548,0.18407,-0.2592,-0.2135,-0.15409,0.16579,0.23434,-0.27291,-0.21807,0.1338,0.17493,0.24805,-0.2592,-0.030709,0.1338,0.19321,0.2252,-0.23635,0.074397,0.14751,0.16579,0.22977 0.10991,0.18114,0.18595,0.18712,0.19343,0.11373,0.1838,0.21053,0.1554,0.18795,0.11223,0.18828,0.21235,-0.034542,-0.033712,-0.2924,-0.2909,-0.036867,-0.037365,-0.032882,-0.29256,-0.29273,-0.2924,-0.2924,-0.29306 0.11641,0.11924,0.11076,0.10229,0.10511,0.088158,0.10229,0.093809,0.11924,0.13337,0.062728,0.085333,0.090984,0.10229,0.11359,0.085333,0.090984,0.085333,0.090984,0.096635,-0.39219,-0.40349,-0.40914,-0.39502,-0.39502 -0.039763,-0.08322,-0.077788,-0.11038,-0.11038,-0.077788,-0.088652,-0.066923,-0.08322,-0.12124,-0.099516,-0.099516,-0.12668,-0.099516,-0.12668,-0.12668,-0.12124,-0.099516,-0.088652,-0.12124,0.51974,0.38937,0.34592,0.35135,0.36221 -0.22688,-0.22688,-0.22594,0.16174,0.17083,-0.22423,-0.22442,0.14867,0.17632,0.18579,-0.22461,-0.22234,0.15814,0.19848,0.19298,-0.22575,-0.22575,0.16268,0.18825,0.19242,-0.22575,-0.22518,0.16174,0.18844,0.19128 0.093415,0.23284,0.45069,0.47684,0.52912,-0.13315,-0.063439,-0.037296,0.014988,0.10213,-0.089581,-0.12444,-0.11572,-0.12444,-0.089581,-0.12444,-0.14187,-0.098295,-0.080867,-0.13315,-0.12444,-0.12444,-0.080867,-0.14187,-0.072153 0.14945,0.13433,-0.15687,-0.14732,-0.14573,0.15661,0.15263,-0.15766,-0.16801,-0.17119,0.46611,0.159,-0.13777,-0.16721,-0.17755,0.48123,0.13911,-0.13698,-0.17198,-0.17676,0.14468,0.13354,0.12877,-0.17914,-0.1513 -0.024358,0.04809,-0.0086938,-0.045897,-0.10855,0.036341,-0.0028196,-0.075268,-0.030232,-0.057645,0.044174,-0.030232,-0.053729,-0.053729,-0.071351,0.028509,-0.087016,-0.065477,-0.036106,-0.069393,0.95663,-0.087016,-0.10268,-0.03219,-0.071351 -0.1975,-0.24579,-0.24579,0.019798,0.16466,-0.16128,-0.23372,-0.004346,0.092231,0.18881,-0.12507,-0.25786,0.092231,0.21295,0.2371,-0.23372,-0.16128,0.092231,0.27331,0.29746,-0.22164,-0.1975,0.080159,0.21295,0.3216 -0.25714,-0.10694,0.013218,0.10334,0.3737,-0.2271,0.013218,-0.046862,-0.076902,0.2235,-0.10694,-0.13698,-0.076902,0.16342,0.31362,-0.2271,-0.25714,0.10334,0.16342,0.19346,-0.31722,-0.25714,0.013218,0.043257,0.3737 -0.15749,-0.15626,-0.15256,-0.1464,-0.13776,-0.19079,-0.18832,-0.19449,-0.19202,-0.19079,0.066933,-0.098304,-0.15256,-0.15009,-0.15133,0.036106,0.043504,0.29506,0.29013,0.28766,0.036106,0.32096,0.29999,0.28889,0.29383 0.26449,0.25668,0.26003,0.2723,0.27453,0.24107,0.23437,-0.10478,0.27453,0.30912,-0.1059,-0.12486,-0.14494,-0.14717,-0.13156,-0.15387,-0.15721,-0.1561,-0.16279,-0.16279,-0.16949,-0.16391,-0.16726,-0.16391,-0.1706 -0.18433,-0.33062,-0.33062,-0.18433,-0.15994,-0.086799,-0.23309,-0.25747,-0.30624,0.010728,0.059492,0.10826,-0.086799,-0.038036,0.059492,0.13264,0.13264,0.23016,0.083874,0.13264,0.23016,0.30331,0.15702,0.27893,0.27893 -0.1762,-0.17799,-0.17876,0.22654,0.22218,-0.17569,-0.17646,-0.17825,0.22167,0.22244,-0.17671,-0.17876,-0.17928,0.225,0.23115,-0.17697,-0.1762,-0.17851,0.22346,0.23192,-0.17774,-0.17415,0.21962,0.22679,0.23089 -0.3071,-0.27918,-0.32106,-0.39085,-0.44669,0.069795,-0.069795,-0.041877,-0.069795,-0.11167,0.19543,0.12563,0.097714,0.013959,0,0.25126,0.16751,0.15355,0.13959,0.027918,0.26522,0.18147,0.13959,0.11167,0.097714 0.39639,-0.013284,-0.1167,-0.090843,-0.19624,0.36059,-0.015273,-0.061013,-0.11073,-0.2042,0.33076,0.050354,-0.039137,-0.045104,-0.19426,0.30888,0.3407,-0.03516,-0.12266,-0.17636,0.27508,-0.13658,-0.21215,-0.14653,-0.14653 0.12228,0.11293,0.11968,0.16643,0.22928,0.10773,0.11604,0.12435,0.17214,0.2511,0.095266,0.14929,0.1228,0.21889,0.28123,-0.2351,-0.23406,-0.2351,-0.23977,-0.24029,-0.23874,-0.23874,-0.24081,-0.24445,-0.24237 0.12882,0.12415,0.10545,0.10078,0.11948,0.1522,0.11013,0.1148,0.1148,0.086755,0.11013,0.16154,0.096104,0.096104,0.082081,0.09143,0.016641,0.0026176,0.096104,0.035338,-0.376,-0.47884,-0.45079,-0.35263,-0.28719 -0.46007,-0.32962,-0.32962,-0.39484,-0.32962,-0.025221,-0.025221,-0.025221,-0.025221,-0.025221,0.1922,0.083491,0.12698,0.083491,0.061748,0.14872,0.14872,0.17046,0.083491,0.14872,0.018264,0.21395,0.12698,0.14872,0.21395 -0.3769,-0.24603,-0.22967,-0.24603,-0.16424,-0.22967,-0.16424,-0.13152,-0.082446,0.048421,-0.082446,-0.098805,-0.066088,0.048421,0.097496,-0.017013,0.048421,0.081138,0.14657,0.212,0.19565,0.2938,0.26108,0.31016,0.39195 0.23221,0.16653,-0.25381,-0.23702,-0.22462,0.22856,0.16726,-0.25235,-0.24724,-0.22826,0.21834,0.17966,0.11691,-0.19616,-0.21002,0.23439,0.17747,0.13077,-0.19178,-0.17937,0.22929,0.15996,0.10961,0.081148,-0.21148 0.10949,0.16475,0.047805,-0.23877,-0.24777,0.029814,0.18531,0.056801,0.055516,-0.22849,0.040095,0.19688,0.13519,-0.21178,-0.26576,0.19816,0.19945,0.23414,-0.26319,-0.27347,0.20716,0.20716,0.22386,-0.26833,-0.29403 -0.22283,-0.22299,-0.22362,-0.22378,-0.22378,-0.22188,-0.22188,-0.22188,-0.22235,-0.2252,-0.22251,0.16655,0.16718,0.20395,0.20285,0.1031,0.16765,0.20869,0.2049,0.20427,0.10404,0.10041,0.20884,0.20616,0.20411 0.17392,0.1774,0.19036,0.24375,0.24249,0.17456,0.18088,0.18656,0.1853,0.18119,0.17582,0.17519,0.18909,-0.16606,-0.1648,-0.22641,-0.22863,-0.21662,-0.16164,-0.16922,-0.23021,-0.22926,-0.22799,-0.22799,-0.22768 0.33511,0.15686,0.038027,-0.14022,-0.11051,0.24598,0.15686,-0.14022,0.038027,-0.19964,0.36482,0.067735,-0.22935,-0.25906,-0.19964,0.3054,0.0083183,-0.14022,0.038027,-0.16993,0.27569,0.18657,-0.19964,-0.19964,-0.22935 -0.21838,-0.2187,-0.2187,-0.21681,-0.21807,-0.21303,-0.21775,-0.21901,-0.2187,-0.21649,0.15597,0.15471,0.13706,0.14021,-0.21523,0.15628,0.15691,0.15691,0.15471,0.13863,0.42822,0.15439,0.15092,0.15376,0.15218 -0.22686,-0.2251,-0.22642,-0.22642,-0.22554,-0.22554,-0.22686,-0.22642,-0.22554,-0.22642,0.24552,0.24618,0.058061,0.04733,0.039446,0.24793,0.24837,0.24027,0.044045,0.040541,0.24443,0.23961,0.23567,0.042731,0.040979 -0.11109,-0.11074,-0.11092,-0.11109,-0.11109,-0.11057,-0.11109,-0.11109,-0.11109,-0.11092,-0.1104,-0.1104,-0.11161,-0.11092,-0.11178,-0.11057,-0.1123,-0.11144,-0.10971,0.24403,0.45873,0.38307,0.35658,0.33563,0.33078 -0.15467,-0.15501,-0.15501,-0.15535,-0.1549,-0.1549,-0.15512,-0.15478,-0.15524,-0.15478,-0.15535,-0.15422,-0.15501,-0.15478,-0.15512,0.1921,0.18069,0.18057,0.18182,0.42859,0.18758,0.18407,0.17707,0.17662,0.43514 0.26705,0.32955,-0.15367,-0.13203,-0.12722,0.35119,-0.050293,-0.15607,-0.074334,-0.13684,0.36802,-0.064718,-0.15126,-0.052698,-0.12963,0.38725,-0.083951,-0.15607,-0.083951,-0.13203,0.38485,-0.011828,-0.15367,-0.13203,-0.10559 0.22575,0.23733,0.098271,0.21416,0.26051,0.20257,0.086683,0.098271,0.30687,0.29528,0.017151,-0.0060261,0.0055625,-0.098735,0.14463,-0.16827,-0.16827,-0.17986,-0.098735,-0.075558,-0.29574,-0.24939,-0.28415,-0.24939,-0.31892 -0.32418,-0.35184,-0.3795,-0.32418,-0.35184,-0.1029,-0.075236,0.035405,-0.13056,0.0077449,0.14605,0.14605,-0.019915,0.11839,-0.047576,0.14605,0.17371,0.17371,0.14605,0.11839,0.14605,0.25669,0.17371,0.25669,0.063065 0.96618,0.03136,-0.024358,-0.062066,-0.058689,0.016727,-0.013102,-0.054187,-0.067131,-0.063755,0.014475,-0.02267,-0.059252,-0.076699,-0.063192,0.0049077,-0.027172,-0.066569,-0.076699,-0.069945,0.0071589,-0.026609,-0.055312,-0.077825,-0.075573 0.29369,-0.11847,-0.11981,-0.12786,-0.17619,0.29235,-0.1131,-0.11981,-0.13458,-0.17619,0.28832,0.28698,-0.12115,-0.13055,-0.1668,0.29772,0.28698,-0.12921,-0.12518,-0.15471,0.29369,0.2843,-0.12652,-0.12652,-0.1574 -0.31646,-0.066294,-0.066294,0.12133,0.24641,-0.28519,-0.035023,-0.066294,0.12133,0.21514,-0.28519,-0.097565,0.027518,0.1526,0.34023,-0.19138,0.058789,-0.066294,0.058789,0.3715,-0.28519,-0.22265,-0.12884,0.30896,0.09006 -0.33875,-0.23185,-0.19622,0.14823,0.18387,-0.30312,-0.18434,-0.18434,0.16011,0.19574,-0.26748,-0.18434,-0.0061764,0.2195,0.23138,-0.23185,-0.077442,0.16011,0.18387,0.20762,-0.11308,0.076967,0.088845,0.16011,0.30264 0.041505,0.15429,0.10918,0.041505,-0.093837,0.10918,0.064062,0.15429,0.086618,-0.34196,0.17685,0.10918,0.17685,0.041505,-0.43219,0.041505,0.13173,0.10918,-0.07128,-0.4773,0.10918,0.17685,0.13173,-0.11639,-0.43219 0.1141,0.10843,0.10155,0.10155,0.10439,0.11167,0.1056,0.098721,0.092246,0.094674,0.10439,0.098316,0.095484,0.092246,0.094674,0.096698,0.09427,0.093865,0.093056,0.10317,-0.39294,-0.39861,-0.40427,-0.40265,-0.40063 0.28793,-0.025037,-0.026965,-0.2355,-0.2384,0.3011,0.23491,-0.022146,-0.23711,-0.23068,0.2905,0.25194,-0.017326,-0.058455,-0.12722,0.28729,0.23041,-0.010899,-0.064239,-0.15517,0.2905,-0.18184,-0.18056,-0.18216,-0.18088 0.15789,0.13158,0.15789,0.21053,0.13158,0.23684,0.052632,0.15789,0.23684,0.15789,0.052632,0.052632,0.052632,0.052632,0.052632,0.052632,-0.052632,-0.052632,-0.026316,0.026316,-0.34211,-0.42105,-0.36842,-0.36842,-0.34211 0.97766,-0.018592,-0.042429,-0.047304,-0.052722,-0.020759,-0.022926,-0.051638,-0.058139,-0.046221,-0.020217,-0.02726,-0.044054,-0.060306,-0.041345,-0.020759,-0.037553,-0.047304,-0.061389,-0.042429,-0.024551,-0.037011,-0.045137,-0.053805,-0.053805 0.097749,0.096594,0.096017,0.098326,0.093708,0.1093,0.10525,0.10583,0.096594,0.091976,0.11276,0.11449,0.11507,0.096594,0.094863,0.094285,0.10064,0.094285,0.094285,0.090244,-0.39758,-0.40046,-0.39815,-0.40162,-0.40104 -0.1832,-0.14742,0.079195,0.31773,0.17461,-0.1832,-0.1832,0.079195,0.23425,0.36544,-0.1832,-0.1832,-0.063929,0.2581,0.31773,-0.21898,-0.21898,-0.099709,0.043414,0.27003,-0.1832,-0.21898,-0.1832,0.0076333,0.10305 -0.067562,-0.061291,-0.065472,-0.052929,-0.052929,-0.067562,-0.067562,-0.061291,-0.059201,-0.052929,-0.069653,-0.065472,-0.052929,-0.052929,-0.023664,-0.069653,-0.038296,-0.011121,0.011874,0.026506,-0.021573,0.0014215,0.0056023,-0.00066893,0.96928 -0.10924,-0.10924,-0.10924,-0.01553,0.41288,-0.12263,-0.13602,-0.095856,-0.002142,0.30578,-0.069081,-0.17618,-0.17618,0.024633,0.3861,-0.13602,-0.1628,-0.12263,-0.002142,0.46643,-0.12263,-0.14941,-0.12263,0.011246,0.33255 0.27237,0.11832,0.025882,-0.1898,-0.22061,0.30318,0.24156,-0.12818,-0.15899,-0.31304,0.14913,0.17994,-0.12818,-0.035741,-0.31304,0.27237,-0.035741,-0.035741,-0.22061,0.025882,0.21075,0.30318,0.087504,-0.12818,-0.28223 0.2542,0.2482,0.30024,0.21217,0.026021,0.27022,0.31425,0.26621,0.23619,0.22818,-0.16213,-0.16413,-0.17014,-0.14412,-0.15012,-0.15012,-0.17614,-0.18215,-0.19616,-0.21617,-0.090072,-0.10208,-0.10408,-0.17214,-0.17614 -0.36606,-0.20409,-0.1501,-0.20409,-0.1501,-0.1231,-0.1231,-0.31207,-0.069109,-0.042114,-0.1231,-0.096105,-0.1501,-0.1501,0.011878,0.17385,0.20085,0.36282,0.22785,0.22785,0.17385,0.20085,0.20085,0.22785,0.25484 -0.21122,-0.17481,-0.12018,-0.12018,-0.083761,-0.17481,-0.19301,-0.21122,-0.10197,0.025492,-0.22943,-0.10197,-0.065552,-0.010925,-0.065552,0.13475,-0.029134,-0.029134,-0.029134,0.025492,0.46251,0.40788,0.35325,0.37146,0.17116 0.46535,0.421,0.421,0.31753,0.12535,0.066225,-0.037252,0.11057,0.0070956,0.0070956,-0.17029,-0.081599,-0.037252,-0.037252,-0.12595,-0.037252,-0.17029,-0.17029,-0.17029,-0.066817,-0.17029,-0.22942,-0.17029,-0.15551,-0.11116 0.20242,0.19813,0.1831,0.1831,0.12674,0.21718,0.21718,0.21718,0.21584,-0.057905,0.21718,0.21503,0.2153,-0.057368,-0.06032,-0.22349,-0.22349,-0.22349,-0.22215,-0.22269,-0.22269,-0.22376,-0.22349,-0.22403,-0.22349 0.31179,0.18115,-0.036578,-0.12367,-0.21076,0.31179,0.094059,0.0069673,-0.036578,-0.16722,0.094059,0.26824,-0.080124,-0.38494,-0.29785,0.44243,0.0069673,-0.036578,-0.12367,-0.16722,0.1376,0.1376,-0.080124,0.0069673,-0.25431 0.15064,0.17831,0.18781,0.18334,0.18445,0.17719,0.16797,0.18194,0.18166,0.21687,0.16601,0.15902,0.16601,0.17663,-0.22775,-0.22216,-0.22188,-0.22383,-0.22663,-0.22914,-0.22048,-0.22272,-0.22551,-0.22663,-0.2311 -0.067897,-0.068363,-0.04647,-0.031098,-0.01526,-0.067897,-0.063705,-0.056252,-0.031098,-0.010602,-0.064171,-0.066034,-0.06976,-0.024111,-0.012465,-0.04973,-0.04088,-0.016192,-0.019918,-0.019918,-0.048333,-0.048333,-0.016658,-0.019452,0.9746 0.97056,0.06792,-0.0097663,-0.04306,-0.057858,0.0013318,-0.04676,-0.031962,-0.054158,-0.065257,-0.031962,-0.04306,-0.04306,-0.065257,-0.061557,-0.031962,-0.04306,-0.054158,-0.050459,-0.061557,-0.04306,-0.028263,-0.050459,-0.061557,-0.061557 0.31367,0.30362,-0.021448,-0.095175,-0.091823,0.22989,0.035523,-0.061662,-0.10188,-0.10188,0.14611,0.2366,-0.085121,-0.1689,-0.10188,0.15617,0.29692,-0.22922,-0.24263,-0.21582,0.2567,0.27011,-0.19571,-0.26274,-0.26944 0.13591,0.28526,0.15514,0.14383,-0.24991,0.11328,0.13478,0.11215,-0.25783,-0.26236,0.10988,0.11102,0.17211,-0.26688,-0.28272,0.11554,0.12686,0.21171,-0.26462,-0.26236,0.11328,0.12007,0.19587,-0.26236,-0.24765 -0.22078,-0.22101,-0.22147,-0.22287,-0.22334,-0.21728,-0.21775,-0.21798,-0.21961,-0.21938,0.2642,0.2195,0.15943,0.12846,-0.21798,0.25093,0.20763,0.16013,0.12218,0.085624,0.25792,0.19924,0.16176,0.12404,0.078407 -0.065819,0.084215,0.066276,0.10868,-0.35284,0.0059361,0.20653,0.051599,0.085846,-0.39361,0.1364,0.19674,0.17065,0.05323,-0.41155,0.11357,0.1576,0.14945,0.056491,-0.37893,0.10542,0.10868,0.077692,0.046706,-0.37893 0.075723,-0.035914,-0.088169,-0.1048,-0.11905,0.025843,0.085224,-0.021662,-0.1143,-0.14518,0.068597,0.016342,0.0020902,-0.095295,-0.11905,0.10423,0.016342,0.0068407,-0.085794,-0.1048,0.90468,0.059096,-0.081043,-0.12617,-0.1238 0.049984,0.26894,0.26589,0.29491,0.29135,0.049984,0.26996,0.26589,0.29287,0.29186,-0.15624,-0.15981,-0.15472,-0.15574,-0.15523,-0.15166,-0.15523,-0.15675,-0.15675,-0.15726,-0.15472,-0.15624,-0.15726,-0.15675,-0.15726 -0.18977,-0.19083,-0.19114,-0.19205,-0.19205,-0.19023,-0.19159,-0.19114,-0.19326,-0.048355,-0.19038,-0.19205,-0.048204,-0.048204,-0.048204,0.20647,0.34819,0.39513,0.18391,0.27082,0.19996,0.15787,0.15938,0.18573,0.18997 -0.01337,-0.097811,-0.17873,-0.05559,0.060516,-0.0063331,-0.037999,-0.1717,-0.080219,-0.03448,0.018296,0.028851,-0.080219,-0.094293,-0.041517,0.021814,0.021814,0.00070368,-0.15762,-0.030962,0.92252,0.099218,0.00070368,-0.0098515,-0.083737 0.11235,0.10212,0.097679,0.0971,0.093238,0.10058,0.10482,0.10193,0.095748,0.095169,0.099224,0.10444,0.10173,0.092658,0.098838,0.10115,0.10482,0.10212,0.093817,0.099996,-0.39551,-0.39898,-0.40168,-0.40149,-0.40188 0.097163,0.099215,0.088441,0.10999,0.12358,0.10435,0.10306,0.087927,0.11153,0.12615,0.08331,0.10229,0.10204,0.087158,0.089467,0.10742,0.10691,0.090493,0.08331,0.093315,-0.40025,-0.39717,-0.39896,-0.39999,-0.40076 0.091558,0.097574,0.097942,0.12458,0.1495,0.084807,0.093154,0.092049,0.12384,0.14373,0.081492,0.080878,0.090822,0.094873,0.1085,0.082474,0.080387,0.094873,0.082843,0.096223,-0.39702,-0.39837,-0.39764,-0.39837,-0.4007 0.16541,0.19592,0.17576,-0.23504,-0.24049,0.17576,0.16378,0.17413,-0.23504,-0.23885,0.18829,0.16432,-0.23504,-0.23395,-0.23558,0.18829,0.16486,0.16378,-0.23504,-0.23068,0.19156,0.18066,0.16922,-0.23286,-0.10918 -0.15932,-0.15625,-0.15757,-0.15451,-0.14576,-0.15713,-0.15407,-0.15625,-0.15494,-0.14532,-0.15888,-0.15582,-0.15451,-0.15538,-0.14051,0.22376,0.22638,0.20277,0.41704,0.078573,0.21763,0.21632,0.2067,0.41966,0.097377 0.96511,0.019962,-0.007918,-0.080407,-0.010706,0.0088102,-0.016282,-0.083195,-0.060891,-0.074831,0.011598,-0.016282,-0.069255,-0.080407,-0.060891,0.0088102,0.019962,-0.083195,-0.058103,-0.060891,-0.066467,-0.044163,-0.063679,-0.049739,-0.046951 -0.18819,-0.18787,-0.18787,-0.18776,-0.18809,-0.18949,-0.18819,-0.18809,-0.18787,-0.18874,0.10991,0.16286,-0.18841,-0.18863,-0.18776,0.11132,0.247,0.25036,0.23412,0.24343,0.11284,0.23314,0.24906,0.25166,0.24126 0.10987,0.11132,0.089502,0.1186,-0.43133,0.3441,0.10696,0.066224,0.086592,-0.3935,0.086592,0.079318,0.067679,0.066224,-0.3484,0.12005,0.067679,0.032763,0.040037,-0.39059,0.15497,0.041492,0.048766,0.070589,-0.34549 0.10969,0.14191,0.12009,0.15854,-0.37976,0.083716,0.097225,0.10969,0.1336,-0.40885,0.075402,0.070206,0.10242,0.10658,-0.38599,0.070206,0.067089,0.10658,0.10762,-0.40158,0.063971,0.060854,0.082677,0.11697,-0.40885 -0.018051,-0.22715,0.10363,0.24067,0.27375,-0.15391,-0.22952,-0.16454,0.23358,0.23358,-0.18935,-0.17281,-0.16454,0.22177,0.20641,-0.21062,-0.18344,-0.16218,0.20405,0.22531,-0.19408,-0.18699,-0.15982,0.23713,0.23713 0.52485,0.17784,0.026026,-0.039038,-0.12579,0.30797,0.17784,0.026026,-0.01735,-0.21254,0.13447,0.22122,-0.01735,-0.082414,-0.19085,0.19953,-0.01735,-0.01735,-0.21254,-0.38605,0.13447,-0.01735,-0.082414,-0.27761,-0.23423 -0.22379,-0.22536,-0.22536,-0.22379,-0.2234,-0.22184,-0.22614,-0.22497,-0.22497,-0.22536,-0.22301,0.17824,0.16456,0.16066,0.27123,0.18293,0.18097,0.15988,0.15753,0.16574,0.19035,0.17121,0.16105,0.15401,0.16964 0.25316,0.25863,0.3233,-0.22087,-0.22336,0.16313,0.14423,0.13926,-0.22137,-0.22187,0.14224,0.13776,0.13975,-0.21988,-0.21988,0.14025,0.13876,0.14274,-0.22187,-0.21888,0.15816,0.14274,-0.2144,-0.22037,-0.22137 0.33125,0.11801,0.12126,-0.26025,-0.26675,0.13291,0.13237,0.12288,-0.25943,-0.26133,0.13399,0.1321,0.13616,0.1451,-0.25943,0.13372,0.13399,0.13806,-0.26133,-0.2616,0.1554,0.15079,0.13643,-0.26458,-0.2597 0.11286,0.10843,0.098103,0.0922,0.08187,0.11433,0.10991,0.10696,0.099578,0.074492,0.10991,0.11138,0.10401,0.093676,0.078919,0.11433,0.11581,0.098103,0.093676,0.077443,-0.38001,-0.3992,-0.40067,-0.40067,-0.41543 0.12786,0.12786,0.12475,0.038593,-0.31613,0.13717,0.13717,0.13717,-0.30682,-0.2975,0.14726,0.14726,0.14726,-0.3107,-0.31303,0.15735,0.15735,0.15968,-0.30449,-0.29906,0.17598,0.169,0.169,-0.058433,-0.054552 0.18279,0.20043,0.18314,-0.20661,-0.20679,0.20377,0.20342,0.18091,-0.20708,-0.20708,0.20277,0.18103,0.20459,-0.20843,-0.20831,0.20324,0.18308,-0.20679,-0.20831,-0.20972,0.18326,0.18384,-0.21077,-0.21018,-0.2062 -0.25133,-0.26289,-0.2652,-0.26693,-0.26115,0.089163,-0.26693,-0.25884,-0.26462,-0.26289,0.082226,0.18859,0.17761,0.17356,0.1753,0.074711,0.18512,0.17472,0.17472,0.16663,0.071821,0.090319,0.1753,0.18166,0.17934 0.09585,0.1129,0.10949,0.12768,-0.41568,0.1004,0.10153,0.10494,0.10608,-0.41114,0.1129,0.090166,0.10608,0.10835,-0.38726,0.09926,0.060611,0.11404,0.11858,-0.39636,0.081072,-0.029191,0.12427,0.13109,-0.36567 0.15703,0.13849,0.11584,0.11172,-0.24873,0.16321,0.082883,0.12408,0.14467,-0.33112,0.14879,0.13232,0.14879,-0.25285,-0.31876,0.13849,0.14879,0.13643,-0.27345,-0.32906,0.13849,0.14055,0.14055,-0.23019,-0.327 -0.13642,-0.15485,-0.17329,-0.044244,0.27837,-0.13642,-0.15485,-0.13642,0.19541,0.2968,-0.16407,-0.11798,-0.14564,0.28759,0.28759,-0.1272,-0.15485,-0.1272,0.18619,0.19541,-0.21016,-0.18251,-0.18251,0.31524,0.30602 -0.19337,-0.17563,-0.17563,-0.1845,-0.10467,-0.11354,-0.11354,-0.14015,-0.10467,-0.15789,-0.10467,-0.086927,-0.11354,-0.11354,-0.095797,0.31223,0.063865,-0.051446,-0.015966,-0.060317,0.32997,0.37432,0.36545,0.4098,0.25014 0.07279,0.012653,-0.016213,-0.035457,-0.084769,-0.006591,0.017464,-0.065525,-0.055903,-0.099202,-0.055903,-0.025835,-0.077552,-0.11845,-0.10882,-0.04989,-0.037862,-0.00178,-0.08958,-0.1425,0.89546,0.28688,-0.047484,-0.075147,-0.090783 0.10858,0.10674,0.1049,0.10122,0.097534,0.095693,0.097534,0.097534,0.099376,0.093851,0.093851,0.10122,0.097534,0.1049,0.093851,0.099376,0.10306,0.099376,0.099376,0.10306,-0.37761,-0.39971,-0.40708,-0.42181,-0.39235 -0.1677,-0.1677,-0.14082,-0.22145,-0.1677,-0.087074,-0.060199,-0.24832,-0.1677,-0.24832,0.020425,-0.0064499,-0.087074,-0.11395,-0.19457,0.23542,0.20855,0.18167,0.020425,-0.087074,0.42355,0.34292,0.31605,0.23542,0.18167 0.099412,0.098563,0.10756,0.088714,0.091431,0.11096,0.10026,0.10111,0.097883,0.090751,0.10264,0.11283,0.098902,0.098902,0.09194,0.10824,0.10739,0.10043,0.099242,0.09194,-0.39931,-0.39982,-0.39948,-0.4005,-0.39999 0.18877,0.2665,-0.17698,-0.172,-0.17466,0.27182,0.26318,0.26119,-0.17466,-0.17632,0.26584,0.26517,-0.17432,-0.17432,-0.17565,0.16917,0.16751,-0.17333,-0.17731,-0.17599,0.16684,0.16518,-0.17333,-0.17665,-0.17565 -0.28098,-0.35396,-0.22624,-0.22624,-0.28098,-0.22624,-0.11677,-0.043789,0.047438,-0.22624,-0.11677,0.010947,-0.0072981,0.15691,-0.062034,0.12042,0.15691,0.15691,0.17515,0.10217,0.28463,0.37585,0.22989,0.24814,0.10217 0.26212,0.1011,0.093908,0.087162,-0.39003,0.070521,0.23153,0.1137,0.094808,-0.39003,0.064674,0.089411,0.089411,0.089411,-0.38868,0.057478,0.060177,0.075918,0.081315,-0.38733,0.064674,0.058378,0.074119,0.084913,-0.38868 0.20592,0.20927,0.2212,-0.19127,-0.19043,0.20132,0.20341,0.21303,-0.19169,-0.19253,0.20634,0.20634,-0.18855,-0.19169,-0.19211,0.20759,0.20885,-0.19336,-0.19378,-0.19336,0.20466,0.20969,-0.19294,-0.19336,-0.19253 0.071802,0.11925,0.095525,0.071802,-0.36312,0.071802,0.095525,0.095525,0.11925,-0.21288,0.095525,0.095525,0.071802,0.12716,-0.46592,0.095525,0.11925,0.11925,0.095525,-0.48965,0.071802,0.071802,0.14297,0.095525,-0.41057 0.16127,0.16127,0.19581,0.17357,0.18142,0.17357,0.18064,0.18927,0.17697,0.15499,0.17567,0.18613,0.18875,0.18037,-0.22362,-0.22467,-0.22519,-0.22598,-0.22571,-0.22598,-0.22414,-0.22545,-0.2265,-0.22624,-0.22624 -0.043767,-0.042065,-0.042491,0.26478,0.93125,-0.049726,-0.051854,-0.051002,-0.047598,-0.045895,-0.054407,-0.053556,-0.054833,-0.054407,-0.053556,-0.054407,-0.055258,-0.053556,-0.057812,-0.056109,-0.052705,-0.054407,-0.055258,-0.054407,-0.056961 -0.064242,-0.10074,-0.078843,-0.12994,-0.12994,-0.093443,-0.10804,-0.12994,-0.13724,-0.12994,-0.11534,-0.11534,-0.10804,-0.14454,-0.12994,0.22777,0.074462,-0.056942,-0.11534,-0.16645,0.45408,0.45408,0.43947,0.26427,0.14016 0.32538,-0.068113,-0.11206,-0.11306,-0.10906,0.33537,-0.094079,-0.11705,-0.11405,-0.11106,0.34935,-0.091083,-0.10906,-0.12304,-0.12804,0.36333,-0.082095,-0.099073,-0.13203,-0.13702,0.37732,0.37532,-0.11206,-0.13603,-0.13802 -0.037485,-0.1354,-0.14938,-0.10742,-0.093434,-0.10742,-0.06546,-0.093434,-0.10742,-0.10742,-0.093434,-0.1354,-0.14938,-0.10742,-0.093434,-0.0095112,0.03245,-0.06546,-0.10742,-0.079447,0.4101,0.43808,0.57795,0.31219,0.074411 -0.10901,-0.17979,-0.21518,-0.32136,-0.42754,0.050257,-0.10901,-0.1444,-0.1621,-0.25058,0.085649,0.014865,-0.020527,-0.038223,-0.1621,0.3157,0.20952,0.13874,0.10334,0.050257,0.298,0.28031,0.20952,0.22722,0.15643 0.24076,0.17015,0.09955,-0.28877,-0.50058,0.17015,0.1878,0.064249,-0.12991,-0.39467,0.22311,0.1878,0.028947,0.064249,-0.25347,0.25841,0.09955,0.046598,-0.041656,-0.18286,0.1172,0.0819,-0.076957,0.011296,-0.18286 -0.19246,-0.19246,-0.19369,0.069346,0.42383,-0.19205,-0.19349,0.068936,0.068936,0.068526,-0.19164,-0.19369,0.066886,0.068526,0.34735,-0.19718,-0.2019,0.068116,0.069346,0.34305,-0.19677,-0.19882,0.070986,0.068936,0.34141 -0.16627,-0.1755,-0.17605,0.20142,0.27528,-0.18419,-0.12581,-0.12038,0.26496,0.26822,-0.19261,-0.12065,-0.11929,-0.12309,0.27121,-0.1937,-0.11875,-0.12092,0.27528,0.26904,-0.19587,-0.12092,-0.12092,0.26361,0.28587 0.30335,0.3535,0.34096,0.37857,0.27828,0.040113,0.040113,0.077719,0.040113,0.0025071,-0.022564,0.052648,0.090254,0.052648,-0.060169,-0.17299,-0.08524,-0.13538,-0.16045,-0.23566,-0.27327,-0.23566,-0.23566,-0.23566,-0.19806 -0.15229,-0.20557,-0.20131,0.30164,0.23771,-0.072374,-0.072374,-0.18213,0.26328,0.22172,-0.19065,-0.18532,-0.16828,0.2164,0.23238,-0.19705,-0.18852,-0.028685,0.24197,0.28353,-0.19278,-0.18959,-0.038275,-0.040407,0.30697 0.31558,0.31698,-0.10777,-0.11151,-0.11151,0.33427,-0.10544,-0.10964,-0.11291,-0.10824,0.38614,-0.11338,-0.11572,-0.11432,-0.10544,0.38474,-0.11946,-0.11712,-0.11572,-0.10544,0.39035,-0.11665,-0.11712,-0.11151,-0.10918 -0.14126,-0.11882,-0.088888,-0.066442,0.3376,-0.11882,-0.13378,-0.1263,0.015862,0.37501,-0.15623,-0.11133,-0.13378,-0.021549,0.36004,-0.14875,-0.10385,-0.11882,-0.014066,0.44235,-0.15623,-0.11882,-0.11133,0.045791,0.41242 -0.028131,-0.10115,-0.10115,-0.10115,-0.097307,0.033358,-0.11268,-0.11268,-0.11268,-0.11268,0.14096,-0.058876,-0.12421,-0.11268,-0.10115,0.18324,-0.028131,-0.058876,-0.05119,-0.058876,0.87884,0.11022,0.10253,0.067946,-0.043504 -0.068179,-0.011468,-0.0020164,-0.024071,-0.01777,-0.042974,-0.036673,-0.019345,-0.030372,-0.030372,-0.013044,-0.00044109,-0.031947,-0.027221,-0.025646,-0.024071,-0.049276,-0.061878,-0.080782,-0.058728,0.97153,-0.093384,-0.080782,-0.085508,-0.055577 0.96105,-0.057784,-0.065058,-0.061635,-0.047514,0.031648,-0.0565,-0.068054,-0.061635,-0.058212,0.041489,-0.049654,-0.052221,-0.06677,-0.057356,0.038066,-0.049654,-0.054789,-0.069337,-0.062063,0.032931,0.03721,-0.05864,-0.071477,-0.074044 -0.36122,-0.20902,0.13765,0.16302,0.13765,-0.34431,-0.23439,0.13765,0.15457,0.1292,-0.33585,-0.014543,0.14611,0.16302,0.1292,-0.36967,0.036189,0.17148,0.13765,0.13765,-0.31048,0.019278,0.10383,0.13765,0.13765 -0.38875,0.077217,0.037277,0.18372,0.14378,-0.38875,-0.0026626,0.023964,0.1571,0.14378,-0.42869,0.010651,0.010651,0.18372,0.18372,-0.33549,-0.015976,0.010651,0.1571,0.14378,-0.33549,0.010651,0.063904,0.1571,0.19704 0.27247,0.25811,-0.10197,-0.11531,-0.11941,0.26016,-0.069143,-0.11018,-0.12044,-0.12557,0.3412,-0.090686,-0.11941,-0.12351,-0.12351,0.32068,-0.051703,-0.11018,-0.11838,-0.12454,0.58741,-0.072221,-0.10915,-0.11736,-0.11736 -0.17801,-0.17699,-0.1761,0.23798,0.23112,-0.17712,-0.17661,-0.17509,0.23239,0.23214,-0.17648,-0.17724,-0.17674,0.25728,0.23684,-0.1775,-0.17724,-0.17775,0.21462,0.20738,-0.17712,-0.17864,0.2122,0.21208,0.20459 -0.21762,-0.30263,-0.07594,-0.33096,-0.33096,-0.10428,-0.10428,-0.16095,-0.10428,-0.21762,0.094076,0.06574,-0.047604,-0.07594,-0.10428,0.23576,0.12241,0.20742,0.20742,0.094076,0.46244,0.17908,0.17908,0.17908,0.15075 0.095701,0.09858,0.10338,0.097141,0.091381,0.097141,0.1005,0.1005,0.10338,0.10338,0.093781,0.1005,0.09954,0.10146,0.10338,0.091381,0.097621,0.10098,0.10626,0.11346,-0.39864,-0.39864,-0.39912,-0.40632,-0.39672 0.32821,-0.11078,-0.11058,-0.1161,-0.11713,0.32878,-0.10898,-0.1112,-0.11538,-0.11693,0.36929,-0.10562,-0.113,-0.11527,-0.11682,0.37332,-0.10454,-0.10893,-0.11383,-0.11662,0.37879,0.35401,-0.10511,-0.11068,-0.11491 -0.23924,-0.26365,-0.28806,-0.33689,-0.14159,-0.23924,-0.092766,-0.23924,-0.14159,0.029294,-0.043942,-0.092766,-0.01953,-0.043942,0.17577,0.15135,0.15135,0.12694,0.12694,0.15135,0.34665,0.29783,0.12694,0.34665,0.15135 0.10359,0.10547,0.10078,0.10265,0.10078,0.10172,0.10172,0.098904,0.095155,0.09703,0.10078,0.10172,0.099842,0.099842,0.097967,0.10172,0.097967,0.096093,0.10172,0.094218,-0.39693,-0.39693,-0.41193,-0.39412,-0.39974 0.44296,-0.19692,-0.0040413,-0.080582,-0.043842,0.42152,0.011267,-0.10507,-0.056089,-0.12957,0.34498,-0.10201,-0.10201,-0.10814,-0.10507,0.34498,-0.028534,-0.15406,-0.18468,-0.12957,0.31131,0.12455,-0.20917,-0.14181,-0.12038 0.010226,-0.092036,-0.27099,-0.14317,-0.14317,-0.06647,-0.14317,-0.1176,-0.14317,-0.14317,-0.14317,-0.06647,-0.040905,-0.14317,-0.14317,-0.1943,0.061357,-0.040905,0.061357,0.086923,0.41927,0.41927,0.36814,0.34258,0.26588 -0.11375,-0.1074,-0.11375,-0.023345,0.39852,-0.12643,-0.12168,-0.10423,-0.047135,0.39535,-0.12168,-0.12802,-0.11533,-0.018588,0.40962,-0.13278,-0.12485,-0.11533,-0.029689,0.38583,-0.12961,-0.12643,-0.11375,-0.056651,0.38108 0.47734,-0.064021,-0.087559,-0.1111,-0.1111,0.43026,-0.016947,-0.15817,-0.13463,-0.15817,0.38319,-0.016947,0.0065904,-0.064021,-0.087559,0.38319,-0.040484,-0.13463,0.030128,-0.20525,0.19489,-0.13463,-0.087559,-0.087559,-0.20525 -0.17722,-0.17673,-0.17722,-0.17868,-0.17819,-0.17625,-0.17771,-0.17625,-0.17819,-0.17673,0.22432,-0.17479,-0.17771,-0.17625,-0.17479,0.22626,0.24084,0.24522,0.26855,0.23404,0.2073,0.20876,0.20876,0.20827,0.20439 -0.20065,-0.20166,-0.20166,-0.20106,-0.20106,-0.19944,-0.19903,-0.20004,-0.19842,-0.19984,0.067742,0.067944,-0.11503,-0.1122,0.0064123,0.20457,0.19283,0.14547,0.15174,0.17198,0.20578,0.54198,0.15194,0.15559,0.16611 -0.17706,-0.1766,-0.1786,0.22546,0.22638,-0.17706,-0.1766,-0.17675,0.23023,0.21993,-0.17752,-0.17706,-0.17752,0.22823,0.22162,-0.17675,-0.17706,-0.17829,0.2293,0.22423,-0.17737,-0.17752,0.22054,0.22823,0.22761 0.33675,0.33817,0.52138,0.52422,0.20182,-0.09501,-0.095578,-0.095578,-0.095578,-0.09501,-0.096146,-0.097282,-0.09501,-0.097282,-0.095578,-0.09501,-0.09501,-0.095578,-0.09501,-0.095578,-0.095578,-0.095578,-0.096146,-0.096146,-0.10467 -0.42278,-0.0053667,0.11389,0.15862,0.15862,-0.45259,-0.020274,0.098986,0.1288,0.1288,-0.34824,-0.064997,0.11389,0.15862,0.14371,-0.28861,0.039356,0.069171,0.14371,0.11389,-0.39296,0.069171,0.098986,0.1288,0.1288 0.11309,0.10119,0.11203,-0.32087,-0.34599,0.11864,0.10463,0.10754,0.1123,-0.3333,0.12869,0.12446,0.10595,0.10251,-0.34494,0.12129,0.12393,0.10172,0.10066,-0.3973,0.11944,0.12129,0.10912,0.1004,-0.38645 -0.16687,-0.16758,-0.17321,0.20425,0.21129,-0.18448,-0.17532,-0.17955,0.22538,0.22467,-0.18448,-0.17391,-0.18236,0.22538,0.22397,-0.17603,-0.16758,-0.1887,0.23242,0.23735,-0.17955,-0.18025,0.22397,0.23383,0.23735 0.26329,-0.11367,-0.11566,-0.11566,-0.11406,0.26309,-0.10151,-0.1029,-0.1029,-0.1029,0.41798,-0.099313,-0.10509,-0.11187,-0.10988,0.45825,0.20189,-0.10689,-0.11247,-0.11247,0.45964,-0.10609,-0.10729,-0.11147,-0.11207 0.33083,-0.079291,-0.10208,-0.079291,-0.12486,0.39919,-0.079291,-0.17043,-0.17043,-0.14765,0.3764,-0.14765,-0.079291,-0.010937,-0.12486,0.30805,-0.14765,-0.10208,-0.056506,-0.056506,0.51311,0.011848,-0.056506,-0.10208,-0.10208 -0.19462,-0.25324,0.00078162,0.059403,0.11802,-0.25324,-0.25324,0.098484,0.13757,0.13757,-0.21416,-0.27279,0.078944,0.21573,0.21573,-0.17508,-0.31187,0.17665,0.21573,0.23527,-0.21416,-0.19462,0.23527,0.19619,0.21573 0.20086,0.056195,-0.17944,-0.21225,-0.22716,0.21279,0.21428,-0.20181,-0.2212,-0.2212,0.19042,0.19937,0.1934,-0.2212,-0.21822,0.17998,0.19042,0.21577,-0.19734,-0.19585,0.2113,0.1934,0.20981,-0.18242,-0.18988 0.15784,0.31381,0.34501,0.32941,0.3918,0.095455,-0.04492,0.033066,0.095455,0.32941,-0.060517,-0.029323,-0.013725,-0.091711,-0.060517,-0.12291,-0.1385,-0.12291,-0.10731,-0.1697,-0.18529,-0.23209,-0.20089,-0.24768,-0.26328 -0.15122,-0.14945,-0.15387,-0.40537,-0.42662,-0.13439,-0.16273,-0.13351,-0.14059,-0.39829,0.16492,0.15607,0.15253,0.14367,0.098509,0.17112,0.16581,0.15961,0.16492,0.13305,0.15961,0.14367,0.15518,0.1543,0.13305 -0.27473,-0.024325,-0.060098,0.26186,0.29763,-0.31051,-0.060098,0.15454,0.04722,0.29763,-0.16742,-0.16742,0.04722,0.15454,0.19031,-0.4536,-0.024325,0.11877,0.04722,0.26186,-0.27473,-0.16742,-0.095871,0.04722,0.15454 -0.11423,-0.12958,-0.1173,-0.0098262,0.4385,-0.14494,-0.11423,-0.11423,-0.080452,0.417,-0.11116,-0.11116,-0.12344,-0.019038,0.39551,-0.12344,-0.11116,-0.11423,0.023951,0.36173,-0.12344,-0.12651,-0.10809,-0.083523,0.3433 0.21888,0.19048,0.17274,0.15515,0.13324,0.21949,0.19125,0.16348,0.15283,0.14064,0.21749,0.19341,0.16672,0.15237,-0.22568,-0.22491,-0.22429,-0.22537,-0.22414,-0.22429,-0.22399,-0.22383,-0.22368,-0.22414,-0.22383 0.087442,0.16505,0.15212,0.24267,0.26854,0.11331,0.11331,0.11331,0.074507,0.17799,0.13918,0.11331,0.11331,0.15212,0.10038,-0.080716,-0.067781,-0.080716,-0.080716,-0.080716,-0.37823,-0.45584,-0.33942,-0.24887,-0.31355 0.36159,0.22469,-0.19885,-0.22879,-0.23735,0.31239,0.19688,-0.16676,-0.23093,-0.23307,0.17549,0.1049,0.11773,-0.22665,-0.23093,0.15838,0.10276,0.094204,-0.22452,-0.23307,0.17977,0.13057,0.10918,0.085648,-0.14323 0.50155,-0.032305,-0.10531,-0.10987,-0.10075,0.51524,-0.0094907,-0.087059,-0.11444,-0.10987,0.47417,-0.023179,-0.10531,-0.119,-0.10531,0.28253,-0.077933,-0.10075,-0.10075,-0.096185,0.0087607,-0.064245,-0.096185,-0.11444,-0.10987 -0.17747,-0.17741,-0.17757,0.22377,0.22398,-0.17757,-0.17747,-0.17779,0.22484,0.22479,-0.17773,-0.17779,-0.17827,0.22549,0.22592,-0.17752,-0.17757,-0.17811,0.2264,0.22624,-0.17484,-0.17478,0.22677,0.22677,0.22693 0.10162,-0.032306,-0.079694,-0.13944,-0.23628,0.10986,-0.015823,-0.063211,-0.10854,-0.21568,0.55489,0.0089006,-0.046728,-0.10854,-0.19919,0.45187,0.021263,-0.011703,-0.087935,-0.17447,0.44363,0.062469,-0.024065,-0.05909,-0.15181 0.083713,0.096712,0.12271,0.0057195,-0.20226,0.14871,0.17471,0.12271,-0.046276,-0.12427,0.12271,0.2137,0.10971,-0.059275,-0.31925,0.2397,0.2007,0.070714,-0.085273,-0.50124,0.13571,0.17471,-0.0072794,-0.22826,-0.44924 0.39477,0.40265,0.40002,0.3974,0.3974,-0.11747,-0.12536,-0.13849,-0.13586,-0.13061,-0.085952,-0.09646,-0.099087,-0.10434,-0.10697,-0.09646,-0.083325,-0.085952,-0.083325,-0.093833,-0.080698,-0.070191,-0.093833,-0.078071,-0.085952 -0.35711,-0.39165,-0.39165,-0.39165,-0.37438,-0.063548,-0.011743,0.040063,0.057331,-0.011743,0.12641,0.14367,0.16094,0.14367,0.12641,0.057331,0.14367,0.0746,0.14367,0.17821,0.057331,0.0746,0.14367,0.17821,0.14367 0.13168,0.10392,0.10392,0.1067,0.092822,0.10392,0.10115,0.10115,0.098373,0.092822,0.10115,0.08727,0.095597,0.095597,0.092822,0.10392,0.10392,0.095597,0.092822,0.092822,-0.38461,-0.39571,-0.40682,-0.40126,-0.40959 0.21564,0.21547,-0.12371,-0.12337,-0.20114,0.21119,0.21102,0.21119,-0.20388,-0.20251,0.20691,0.20622,0.20691,-0.20097,-0.20114,0.20143,0.20263,-0.20662,-0.20354,-0.20302,0.19766,0.19766,-0.20422,-0.20491,-0.20491 0.2548,0.21482,0.17999,0.081975,0.034255,0.27543,0.20966,0.15549,0.072947,0.039414,0.28833,0.22127,0.15936,0.079396,0.036835,-0.21079,-0.2224,-0.22111,-0.22756,-0.22627,-0.21337,-0.24562,-0.24433,-0.2482,-0.24433 -0.19122,-0.26958,-0.19122,-0.19122,-0.16509,-0.060604,-0.16509,-0.16509,-0.21734,-0.16509,-0.0083592,-0.060604,0.017763,-0.060604,-0.086727,0.1745,-0.034482,0.096131,-0.034482,0.1745,0.33123,0.27899,0.27899,0.20062,0.51409 -0.27208,-0.27407,-0.27524,-0.27357,-0.27657,-0.24613,-0.24746,0.14656,-0.25062,-0.27657,0.14073,0.14689,0.14656,0.15055,0.10364,0.14323,0.14656,0.14839,0.15171,0.15371,0.1424,0.14722,0.18814,0.18315,0.15288 -0.024673,-0.079713,-0.074019,-0.013286,-0.11577,0.05504,-0.085407,-0.092999,-0.079713,-0.11577,0.19739,-0.036061,-0.087305,-0.10249,-0.10628,0.23914,-0.020877,-0.047448,-0.085407,-0.096795,0.87874,0.047448,0.015183,-0.077815,-0.091101 0.0993,0.10354,0.099866,0.11034,0.10779,0.0993,0.0993,0.10213,0.0993,0.098169,0.095339,0.095056,0.09449,0.095339,0.093642,0.099017,0.095905,0.101,0.10468,0.10609,-0.39924,-0.40065,-0.39839,-0.40065,-0.40065 0.087931,0.11665,0.15368,0.1174,0.13554,0.17559,0.17332,0.26325,0.11211,0.10304,0.27383,0.18164,0.26627,0.12572,0.093221,-0.23852,-0.23399,-0.2355,-0.2355,-0.23172,-0.24003,-0.24155,-0.24155,-0.24003,-0.24079 -0.34396,-0.38653,-0.34396,-0.36524,-0.38653,0.017879,-0.088544,-0.0034055,-0.13111,-0.0034055,0.1243,0.1243,0.16687,0.1243,0.14559,0.16687,0.16687,0.23072,0.10302,0.1243,0.017879,0.16687,0.1243,0.14559,0.10302 -0.1385,-0.034365,-0.19057,-0.086433,-0.11247,-0.060399,-0.060399,-0.1385,-0.1385,-0.060399,-0.1385,-0.034365,-0.1385,-0.19057,-0.1385,0.043737,-0.034365,-0.086433,0.043737,-0.1385,0.59045,0.38218,0.33011,0.30408,0.22597 0.3352,-0.08563,-0.14865,-0.15272,-0.13442,0.3535,-0.077498,-0.13849,-0.14052,-0.12019,0.35146,-0.087663,-0.10393,-0.13442,-0.14052,0.35553,-0.091729,-0.097828,-0.087663,-0.12629,0.35756,0.36773,-0.091729,-0.071399,-0.089696 -0.29139,-0.31333,-0.15974,-0.22556,-0.20362,-0.11585,-0.15974,-0.20362,-0.15974,0.015798,-0.22556,-0.093912,-0.028086,-0.028086,0.14745,0.015798,0.059682,0.16939,0.16939,0.30105,0.25716,0.30105,0.30105,0.23522,0.23522 -0.24638,-0.23834,0.18322,0.183,0.18339,-0.2461,-0.23916,0.18157,0.18174,0.18157,-0.24715,-0.23707,0.17964,0.18014,0.17997,-0.24731,-0.23625,0.17772,0.086655,0.085554,-0.24764,-0.2374,0.17656,0.17623,0.08583 -0.21582,-0.074454,0.18472,0.23184,0.11404,-0.21582,-0.074454,0.066914,0.2554,0.23184,-0.21582,-0.23938,0.11404,0.090475,0.16116,-0.38075,-0.21582,0.1376,0.2554,0.1376,-0.33363,-0.28651,0.043353,0.066914,0.16116 0.55557,-0.085522,-0.091473,-0.092014,-0.10121,0.55719,-0.084981,-0.090932,-0.096883,-0.10662,0.27154,-0.086604,-0.086604,-0.10446,-0.10824,0.25639,-0.080112,-0.086604,-0.099047,-0.10716,0.24774,-0.087145,-0.086063,-0.093637,-0.11311 -0.0017947,-0.061617,0.082954,0.14776,0.19761,-0.34577,-0.32583,0.058028,0.21755,0.18266,-0.36073,-0.16631,-0.0017947,0.22752,0.22254,-0.36571,-0.13141,0.038087,0.21257,0.22254,-0.2012,-0.14637,-0.01675,0.17269,0.14278 0.022648,0.01121,0.014069,0.028367,-0.29762,0.036946,0.028367,0.019788,0.028367,-0.29762,0.13989,0.15419,0.14561,0.099856,-0.38627,0.14275,0.14847,0.13989,0.12845,-0.44346,0.15705,0.15705,0.14847,0.14847,-0.47492 0.19125,0.19102,0.18939,-0.20872,-0.20686,0.19125,0.19056,0.18939,-0.20826,-0.20756,0.19311,0.19149,0.19125,-0.20779,-0.20849,0.19497,0.19381,-0.20942,-0.20872,-0.20756,0.1959,0.19451,-0.20826,-0.20756,-0.20872 0.07564,0.20654,0.17033,0.2873,0.24274,0.20654,0.22046,-0.0023394,0.21211,0.25388,0.20932,0.20097,-0.069179,0.05336,-0.074749,-0.18615,-0.20843,-0.21957,-0.22514,-0.21121,-0.22235,-0.21957,-0.24185,-0.23628,-0.22235 0.32635,-0.091223,-0.10874,-0.154,-0.16714,0.32635,-0.091223,-0.099983,-0.13648,-0.16276,0.32197,-0.088303,-0.099983,-0.12042,-0.1613,0.31467,0.32051,-0.092683,-0.1248,-0.16568,0.30153,0.31613,-0.092683,-0.11896,-0.15108 0.085423,0.085423,0.17591,0.085423,-0.18605,0.049227,0.067325,0.049227,0.049227,-0.27654,0.13972,0.15782,0.013031,0.10352,-0.47562,0.17591,0.10352,0.10352,0.15782,-0.43942,0.10352,0.067325,0.15782,-0.07746,-0.47562 -0.23368,-0.15748,-0.00508,0.07112,0.37592,-0.33528,-0.23368,-0.00508,0.40132,0.22352,-0.15748,-0.15748,-0.15748,0.12192,0.19812,-0.28448,-0.10668,-0.08128,0.17272,0.22352,-0.13208,-0.13208,0.09652,0.17272,0.12192 -0.33284,-0.043414,-0.0072357,0.028943,0.46309,-0.29667,-0.11577,0.028943,0.20984,0.065122,-0.29667,-0.043414,-0.043414,0.1013,0.1013,-0.26049,-0.043414,-0.043414,0.13748,0.35455,-0.22431,-0.22431,0.065122,0.20984,0.20984 0.38798,-0.16569,-0.15463,-0.14256,-0.11792,0.24265,0.36485,-0.14909,-0.14407,-0.17172,0.26076,0.217,-0.1325,-0.15412,-0.132,0.26377,0.20996,-0.12445,-0.15312,-0.16871,0.20996,0.19035,-0.12496,-0.15664,-0.15513 0.2944,0.27824,0.26476,0.25758,0.25578,-0.13579,0.26297,0.26476,0.26117,0.25758,-0.15016,-0.14567,-0.14657,-0.1331,-0.14567,-0.15645,-0.15645,-0.15735,-0.14388,-0.14747,-0.15016,-0.16274,-0.15735,-0.14747,-0.16094 -0.059111,-0.032604,-0.032604,-0.092244,-0.085618,-0.059111,-0.059111,-0.059111,-0.092244,-0.072364,-0.052484,-0.072364,-0.03923,-0.059111,0.0071569,-0.025977,-0.072364,-0.052484,0.0071569,0.11981,-0.01935,-0.059111,-0.032604,0.040291,0.95478 -0.21522,-0.056302,-0.056302,0.12532,0.35234,-0.28333,-0.12441,-0.12441,0.011805,0.35234,-0.0336,-0.10171,-0.10171,0.079913,0.35234,-0.19252,-0.23792,-0.079004,-0.0336,0.42045,-0.10171,-0.14711,-0.12441,0.011805,0.30694 0.085025,0.094215,0.10993,0.10074,0.10341,0.086804,0.078206,0.10548,0.12712,0.12683,0.079096,0.10252,0.09629,0.088286,0.15618,0.084432,0.10103,0.093919,0.0871,0.086507,-0.39761,-0.3988,-0.39821,-0.3988,-0.39969 0.21657,0.21604,0.16436,0.16347,0.14497,0.21271,0.21295,0.16585,0.16626,0.14295,-0.22052,0.18904,0.16781,0.16597,0.14034,-0.22206,-0.22254,-0.22415,-0.22415,-0.22474,-0.2254,-0.22605,-0.2276,-0.22623,-0.22587 0.17185,0.30937,-0.14802,-0.14889,-0.14802,0.26192,-0.14055,-0.14802,-0.14494,-0.15109,0.26895,0.27862,-0.14977,-0.1445,-0.15505,0.28872,0.28521,-0.14494,-0.14977,-0.15636,0.26236,0.2584,-0.14977,-0.15153,-0.15417 -0.14796,-0.14818,-0.14969,-0.14969,-0.14969,-0.14774,-0.14687,-0.14709,-0.14709,-0.14774,-0.14731,-0.14796,-0.14796,-0.14731,-0.14796,0.22506,0.22593,0.23092,0.29277,-0.14839,0.22723,0.22767,0.22723,0.34723,0.36459 -0.086233,-0.1189,-0.23322,-0.1189,-0.086233,-0.1189,-0.086233,-0.086233,-0.086233,-0.086233,-0.1189,-0.1189,-0.1189,-0.086233,-0.020905,-0.086233,-0.037237,0.044423,-0.020905,-0.1189,0.58338,0.51805,0.32207,0.22408,0.14242 0.28762,0.34964,-0.09715,-0.09846,-0.11942,0.39244,-0.09846,-0.10021,-0.097587,-0.16572,0.39288,-0.10152,-0.099771,-0.096277,-0.16485,0.39375,-0.094966,-0.098024,-0.095403,-0.11855,0.29243,-0.10064,-0.096277,-0.094966,-0.17052 -0.22815,-0.23413,0.19624,0.19482,0.20022,-0.22815,-0.23242,0.22812,0.19339,0.19339,-0.22815,-0.23441,0.19709,0.19482,0.19453,-0.2273,-0.22929,-0.022646,0.19652,0.1914,-0.2273,-0.23014,-0.024923,-0.023784,0.19026 0.44142,0.38136,0.27626,0.39638,0.23122,0.23122,-0.039037,-0.039037,0.096091,0.036034,-0.039037,-0.054051,-0.14414,-0.14414,-0.099094,-0.17417,-0.069066,-0.12912,-0.17417,-0.14414,-0.20419,-0.11411,-0.20419,-0.15915,-0.15915 0.36278,0.22253,0.26928,0.2459,0.2459,0.10565,0.058904,0.1524,0.19915,0.082279,0.10565,0.058904,-0.057969,-0.057969,-0.01122,-0.12809,-0.15147,-0.12809,0.012155,-0.12809,-0.31509,-0.24497,-0.40859,-0.22159,-0.26834 -0.12432,-0.1379,-0.1017,-0.051938,0.4231,-0.11075,-0.12885,-0.11075,-0.024793,0.41858,-0.1198,-0.12432,-0.12432,-0.056462,0.4412,-0.10623,-0.12432,-0.10623,-0.060986,0.36881,-0.10623,-0.10623,-0.092655,-0.051938,0.31905 -0.14998,-0.14789,-0.15837,-0.15837,-0.15837,-0.1416,-0.13951,-0.14579,-0.14789,-0.15837,-0.11855,-0.11855,-0.097587,-0.10597,-0.11645,-0.043092,-0.038901,-0.038901,0.30064,0.22309,0.34675,0.34046,0.40544,0.32579,0.24195 -0.16441,-0.15709,-0.12415,0.14669,0.31871,-0.16807,-0.14611,-0.091207,0.28211,0.28211,-0.16441,-0.12049,0.014933,0.28943,0.31871,-0.20101,-0.14611,-0.10951,-0.080227,0.32237,-0.20101,-0.16807,-0.13879,-0.087547,0.29309 -0.12637,-0.20343,-0.17041,0.22589,0.33597,-0.10436,-0.14839,-0.21444,0.13782,0.32496,-0.071333,-0.18141,-0.21444,0.038749,0.31395,-0.12637,-0.1594,-0.14839,0.11581,0.32496,-0.0273,-0.1594,-0.19242,0.1048,0.32496 -0.4063,-0.20178,-0.11089,0.093621,0.16179,-0.24723,-0.019997,0.13907,0.29813,0.16179,-0.36085,-0.11089,0.13907,0.18451,0.22996,-0.26996,-0.065444,0.11634,0.22996,0.16179,-0.3154,-0.065444,0.02545,0.093621,0.13907 0.22815,0.25532,0.17383,0.24174,0.17383,0.24174,0.25532,0.17383,0.078768,0.051606,0.14667,0.18741,0.065187,-0.11136,-0.13852,-0.016297,-0.11136,-0.13852,-0.11136,-0.28791,-0.22001,-0.24717,-0.23359,-0.30149,-0.35581 0.87501,0.057924,-0.022976,-0.071515,-0.10388,0.29253,-0.0067956,-0.039156,-0.079605,-0.10388,0.090284,-0.0067956,-0.071515,-0.095785,-0.11197,0.066014,-0.022976,-0.079605,-0.10388,-0.12006,0.017474,-0.022976,-0.10388,-0.10388,-0.12815 -0.17642,-0.1749,0.21686,0.22346,0.23919,-0.17693,-0.17592,-0.17287,0.21787,0.22498,-0.17236,-0.17845,-0.17439,0.22346,0.23234,-0.1749,-0.18302,-0.18353,0.22143,0.23005,-0.17541,-0.17947,-0.18251,0.21914,0.23234 0.10382,0.10203,0.10126,0.1005,0.099728,0.10305,0.1005,0.099217,0.09845,0.097939,0.099984,0.1005,0.09845,0.09845,0.097172,0.10101,0.10126,0.1005,0.09845,0.097683,-0.39881,-0.39983,-0.4006,-0.40009,-0.4006 0.97283,-0.02089,-0.020366,-0.071648,-0.077928,-0.01932,-0.01775,-0.02089,-0.047577,-0.078451,-0.01775,-0.018273,-0.015657,-0.066939,-0.077928,-0.017227,-0.021413,-0.032925,-0.066939,-0.067462,-0.02089,-0.021413,-0.073218,-0.050717,-0.029262 -0.40827,0.041547,0.076305,0.1172,0.16422,-0.37147,0.039502,0.076305,0.11311,0.15809,-0.40214,0.039502,0.068127,0.11311,0.14582,-0.40418,0.039502,0.07835,0.11924,0.16831,-0.37147,0.039502,0.082439,0.11106,0.16627 0.13651,0.14718,0.10452,0.10452,0.14718,0.10452,0.13651,0.14718,0.083186,0.051191,0.093851,0.083186,0.093851,0.083186,0.051191,0.10452,0.072521,0.083186,0.083186,0.061856,-0.46072,-0.4074,-0.4074,-0.35407,-0.34341 0.11801,0.11083,0.096867,0.086893,0.078515,0.122,0.11003,0.097665,0.088888,0.079313,0.12041,0.11203,0.098463,0.090085,0.080111,0.1212,0.11123,0.10205,0.089287,0.081707,-0.39784,-0.39425,-0.40702,-0.39824,-0.39824 0.25553,0.1315,-0.19861,-0.18874,-0.19244,0.24134,0.24195,-0.20046,-0.19738,-0.18319,0.23702,0.23949,-0.17948,-0.18751,-0.18134,0.22283,0.12965,0.14138,-0.19368,-0.18134,0.13397,0.2401,0.2438,-0.19306,-0.18134 0.12063,0.093692,0.091114,0.091758,0.094852,0.12385,0.094207,0.092016,0.093563,0.093176,0.14396,0.095883,0.092918,0.092789,0.093563,0.11006,0.095754,0.093176,0.093176,0.096141,-0.39921,-0.39921,-0.39921,-0.39933,-0.39933 -0.050582,-0.061412,-0.066508,-0.062049,-0.032426,-0.043893,-0.063323,-0.055041,-0.032744,-0.031152,-0.049626,-0.052493,-0.048989,-0.042937,-0.024781,-0.049626,-0.049626,-0.028604,-0.02287,-0.021596,-0.048671,-0.045485,-0.030515,0.040516,0.97443 -0.11915,-0.12166,-0.11947,-0.11978,-0.11947,-0.12072,-0.12041,-0.12041,-0.12009,-0.12041,-0.11821,-0.11727,-0.11915,-0.11915,-0.11915,-0.11758,-0.11821,-0.11852,0.18265,0.18579,0.40061,0.36072,0.45934,0.37297,0.18674 0.97923,-0.04235,-0.044091,-0.043221,-0.040608,-0.022319,-0.024931,-0.044672,-0.04293,-0.042059,-0.021448,-0.040898,-0.04235,-0.044672,-0.043221,-0.041188,-0.043221,-0.04293,-0.045833,-0.043221,-0.043221,-0.044672,-0.044672,-0.045833,-0.044672 0.19027,0.32311,0.32508,0.17509,0.17724,0.19348,0.19598,0.30222,0.18563,0.18545,-0.17237,-0.17254,-0.17272,-0.17362,0.18027,-0.17362,-0.17379,-0.17344,-0.17433,-0.17433,-0.17451,-0.17415,-0.17415,-0.17469,-0.17558 0.38997,0.43085,0.38997,0.32865,0.22646,0.0016351,0.14471,0.062951,0.08339,-0.018804,-0.16187,-0.22319,-0.059681,-0.24363,-0.14144,-0.121,-0.14144,-0.20275,-0.10056,-0.121,-0.16187,-0.10056,-0.08012,-0.10056,-0.08012 -0.020705,0.042789,-0.13803,-0.10766,-0.059353,0.016564,0.14631,-0.13803,-0.11042,0.023465,-0.011042,-0.077297,-0.069015,-0.071776,-0.067635,0.011042,-0.012423,-0.040029,-0.053832,-0.062114,0.93309,0.030367,-0.042789,-0.053832,-0.067635 0.97759,-0.045759,-0.036031,-0.039922,-0.034086,0.00093386,-0.037977,-0.037977,-0.045759,-0.047704,-0.03214,-0.047704,-0.055487,-0.047704,-0.059378,-0.037977,-0.045759,-0.057432,-0.055487,-0.053541,-0.039922,-0.037977,-0.020467,-0.01463,-0.047704 0.92564,0.067381,0.067381,-0.0072499,-0.1192,0.088704,0.035396,-0.0019191,-0.071219,-0.097873,0.014073,-0.0019191,-0.049896,-0.097873,-0.087212,0.0087425,-0.017911,-0.087212,-0.11387,-0.1192,0.040727,-0.039235,-0.1032,-0.11387,-0.1192 0.13059,0.11382,0.13704,0.12349,0.10027,0.13252,0.11833,0.10801,0.09963,0.064158,0.12607,0.12865,0.066093,0.055774,0.053839,0.148,0.071253,0.060289,0.059644,0.082861,-0.40987,-0.40084,-0.39697,-0.38923,-0.38343 -0.053578,-0.22136,-0.22809,-0.22416,-0.053578,-0.053578,-0.20901,-0.22192,-0.053017,-0.051894,-0.051894,-0.053578,-0.051894,-0.051894,-0.050772,-0.050772,-0.052455,-0.053017,-0.051333,-0.052455,0.37738,0.37738,0.37906,0.37906,0.37738 0.15844,0.16278,-0.2284,-0.2284,-0.22612,0.15502,0.15958,0.20794,-0.22612,-0.22133,0.15571,0.15457,0.21273,-0.22475,-0.22316,0.16734,0.16301,0.22345,-0.22475,-0.22179,0.16323,0.16278,0.22345,-0.22293,-0.22225 -0.30072,-0.18975,-0.32846,-0.30072,-0.30072,-0.30072,-0.051045,-0.078787,-0.10653,0.032181,-0.078787,0.087664,-0.023303,-0.078787,0.0044387,0.059922,0.14315,0.14315,0.22637,0.3096,0.22637,0.25412,0.22637,0.17089,0.25412 0.97739,0.017359,-0.029837,-0.032139,-0.03329,-0.032139,-0.039046,-0.042499,-0.037895,-0.032139,-0.050557,-0.050557,-0.048255,-0.042499,-0.040197,-0.056313,-0.051708,-0.049406,-0.039046,-0.040197,-0.049406,-0.052859,-0.051708,-0.04365,-0.049406 0.047412,0.02394,-0.06212,-0.11689,-0.12862,0.066971,0.016117,-0.030825,-0.11689,-0.12862,0.055235,0.059147,-0.0034424,-0.14036,-0.12862,0.0435,0.051323,-0.011266,-0.11297,-0.14036,0.90802,0.0435,0.00046942,-0.066032,-0.12862 0.15563,0.15064,-0.19273,-0.19567,-0.20067,0.1621,0.05127,0.052152,-0.20155,-0.21272,0.20091,0.16886,0.051858,0.048918,-0.20655,0.22913,0.20737,0.05421,-0.27417,-0.2724,0.27793,0.21766,0.27999,-0.27505,-0.27711 0.25351,0.25351,0.22559,0.23397,0.23117,0.2563,0.23955,0.24513,0.2228,0.21721,-0.17645,-0.17366,-0.19879,-0.19879,-0.19599,-0.21275,-0.20995,-0.20437,-0.21554,-0.21554,-0.056397,-0.056397,-0.084317,-0.087109,-0.092693 0.48452,0.11732,-0.061689,-0.075459,-0.15808,0.57172,-0.075459,-0.098409,-0.11218,-0.15349,0.34682,0.0071603,0.01634,-0.10759,-0.17185,0.1724,0.06224,-0.13972,-0.16267,-0.16267,0.11732,-0.011199,-0.098409,-0.16267,-0.14431 0.33758,0.31053,-0.10696,-0.11541,-0.086676,0.32913,-0.083296,-0.12048,-0.11541,-0.098508,0.31729,-0.081605,-0.12048,-0.11203,-0.10189,0.34096,-0.098508,-0.12217,-0.13231,-0.10527,0.47449,-0.11541,-0.12386,-0.14245,-0.12724 0.093465,-0.057554,-0.060246,-0.059438,-0.058362,0.092388,-0.060246,-0.061323,-0.060515,-0.059169,0.091311,-0.057554,-0.056747,-0.057016,-0.054593,-0.05567,-0.058362,-0.058093,-0.056747,-0.055131,0.95005,-0.062938,-0.0589,-0.059438,-0.059169 0.14297,0.11831,0.099246,0.088034,0.082428,0.134,0.11718,0.099246,0.092519,0.076823,0.11494,0.10373,0.092519,0.079065,0.081307,0.11943,0.10597,0.094761,0.08355,0.06449,-0.41537,-0.3851,-0.4064,-0.41537,-0.36828 0.10638,0.10232,0.10232,0.10502,0.10097,0.10232,0.09826,0.10097,0.10232,0.10097,0.094202,0.10232,0.10232,0.095555,0.096908,0.09285,0.09826,0.099613,0.096908,0.09826,-0.41306,-0.40765,-0.37789,-0.40359,-0.39683 -0.10083,-0.10083,-0.099748,-0.10083,-0.099748,-0.099748,-0.099748,-0.099748,-0.09758,-0.098664,-0.09758,-0.098664,-0.09758,-0.09758,-0.09758,-0.092158,-0.093243,-0.095411,-0.095411,-0.095411,0.30629,0.31063,0.33665,0.50308,0.50145 0.97969,-0.042449,-0.042449,-0.039886,-0.042449,-0.030914,-0.041808,-0.04309,-0.040527,-0.041808,-0.0354,-0.041168,-0.041168,-0.041808,-0.041808,-0.0354,-0.041808,-0.042449,-0.042449,-0.041808,-0.037963,-0.04309,-0.045013,-0.042449,-0.040527 0.97959,-0.03807,-0.042969,-0.041633,-0.046977,-0.029162,-0.040742,-0.045196,-0.041187,-0.046086,-0.034507,-0.045641,-0.041633,-0.041187,-0.040297,-0.038515,-0.041187,-0.045641,-0.046977,-0.040742,-0.035398,-0.037179,-0.037179,-0.03896,-0.042523 -0.23079,-0.2149,-0.2168,0.26848,0.27039,-0.23206,-0.21458,0.15343,0.15534,0.26784,-0.21998,-0.21426,0.15343,0.14771,0.15089,-0.23206,-0.21521,0.14708,0.14454,0.14708,-0.23174,-0.21553,0.14517,0.14009,0.14644 0.31019,-0.047796,-0.04892,-0.1695,-0.16351,0.31731,-0.048545,-0.048545,-0.17249,-0.15826,0.31319,-0.048545,-0.16351,-0.17249,-0.15452,0.30645,0.31543,-0.16725,-0.17511,-0.04555,0.30495,0.30794,-0.049669,-0.17249,-0.16875 -0.049745,-0.049092,-0.047785,-0.026878,-0.027205,-0.048439,-0.048439,-0.049419,-0.041579,-0.024918,-0.048112,-0.048439,-0.048439,-0.047459,-0.023285,-0.045825,-0.048439,-0.045499,-0.031452,-0.022305,-0.045825,-0.042232,-0.044192,-0.023612,0.97861 0.3001,0.30265,0.3001,0.28483,0.29501,0.2441,0.022607,-0.10469,0.25937,0.3001,-0.069043,-0.15306,-0.14542,-0.14542,-0.14796,-0.14542,-0.14542,-0.15306,-0.16069,-0.17088,-0.14287,-0.14542,-0.14542,-0.16069,-0.17342 -0.17384,-0.24019,-0.14067,-0.0079622,-0.17384,-0.20702,-0.20702,-0.14067,-0.10749,-0.20702,-0.14067,-0.10749,-0.17384,0.025214,-0.041138,0.15792,-0.0079622,0.12474,0.05839,-0.0079622,0.35697,0.35697,0.35697,0.29062,0.35697 0.1694,0.10323,0.12528,-0.051172,-0.31586,0.14734,0.14734,0.14734,-0.11734,-0.40409,-0.0070583,0.19146,0.1694,-0.095286,-0.47026,0.08117,0.14734,0.037056,-0.095286,-0.27174,0.10323,0.23557,0.21351,0.08117,-0.27174 0.15584,0.15747,0.16113,0.18553,0.11842,0.16031,0.16113,0.17089,0.19163,0.10377,0.16397,0.16601,0.18431,0.086282,0.098485,-0.26191,-0.26272,-0.26028,-0.26028,0.11476,-0.26841,-0.26597,-0.2676,-0.26801,-0.26475 -0.15775,-0.15775,-0.15729,0.22446,0.2226,-0.16099,-0.16007,-0.15033,0.21588,0.22399,-0.16076,-0.16123,-0.16308,0.2175,0.21797,-0.16007,-0.16239,-0.16239,0.21171,0.21101,-0.15404,-0.16169,-0.16424,0.43909,0.20985 0.12304,0.10516,0.14092,0.087273,-0.39559,-0.0021461,0.10516,0.033622,0.069389,-0.41347,0.17669,0.051505,0.033622,0.033622,-0.43136,0.17669,0.051505,0.087273,0.12304,-0.35982,0.12304,0.12304,0.12304,0.17669,-0.34194 0.47947,0.21134,0.27443,0.2902,0.51101,0.085169,0.10094,0.069397,-0.041007,-0.0094632,-0.19873,-0.15141,-0.15141,-0.15141,-0.056779,-0.1041,-0.15141,-0.1041,-0.1041,-0.13564,-0.18296,-0.15141,-0.15141,-0.1041,-0.072551 0.97277,-0.044617,-0.053728,-0.043988,-0.038333,0.073523,-0.044302,-0.054043,-0.04713,-0.045245,-0.044931,-0.043988,-0.050272,-0.044617,-0.049015,-0.043674,-0.048701,-0.048387,-0.048073,-0.024822,-0.047444,-0.04713,-0.048073,-0.042103,-0.043674 -0.062597,-0.060273,-0.050312,-0.027732,-0.027732,-0.061933,-0.052304,-0.03703,-0.027068,-0.027068,-0.059609,-0.052304,-0.033377,-0.028065,-0.026736,-0.05496,-0.049315,-0.030721,-0.029393,-0.029393,-0.053632,-0.039354,-0.0274,-0.029393,0.9777 -0.14763,-0.087127,-0.056875,0.0036303,0.033883,-0.14763,-0.14763,-0.17788,0.15489,0.2154,-0.23839,-0.26864,-0.087127,0.18515,0.36666,-0.17788,-0.087127,-0.087127,0.2154,0.30616,-0.26864,-0.14763,-0.026622,0.2759,0.39691 0.19271,0.19103,0.19019,-0.20926,-0.21599,0.19355,0.19019,0.19103,-0.21851,-0.21431,0.19103,0.19103,0.19103,-0.21515,-0.21683,0.19187,0.19271,-0.20842,-0.19244,-0.20253,0.19439,0.19608,-0.2101,-0.19581,-0.19749 0.23538,0.22832,0.22249,0.21834,0.21418,0.2358,0.23622,0.23331,0.22665,0.21667,-0.17502,-0.17211,-0.18043,-0.1692,0.21335,-0.18168,-0.17752,-0.17461,-0.17877,-0.17627,-0.17918,-0.17419,-0.18043,-0.18251,-0.17877 0.094537,0.095461,0.089916,0.10147,0.10886,0.094999,0.097772,0.096386,0.10979,0.10979,0.092689,0.098234,0.10332,0.099621,0.10424,0.093613,0.10239,0.10147,0.10563,0.099159,-0.3995,-0.3995,-0.39996,-0.39719,-0.4032 0.17637,0.16071,-0.21224,-0.24008,-0.32766,0.18275,0.16071,0.15897,-0.22268,-0.28706,0.18681,0.16767,0.16071,-0.20992,-0.26908,0.19841,0.18391,0.15607,-0.20122,-0.24066,0.12997,0.12881,0.13925,0.13171,-0.21224 -0.10184,-0.062803,-0.022204,-0.019862,-0.010493,-0.076856,-0.067487,-0.030792,-0.026108,-0.019862,-0.062022,-0.071391,-0.037819,-0.027669,-0.022204,-0.062803,-0.079198,-0.019862,0.0019987,-0.015958,-0.069829,-0.040161,-0.023766,-0.001905,0.9709 -0.041949,-0.038963,-0.03538,-0.053894,-0.074797,-0.044338,-0.036574,-0.032394,-0.041352,-0.07181,-0.043144,-0.043741,-0.037171,-0.041949,-0.063449,-0.045533,-0.044338,-0.04613,-0.047921,0.090635,-0.042546,-0.042546,-0.044935,-0.045533,0.96975 0.23576,0.23576,0.42416,0.45107,0.47799,-0.033373,0.020454,-0.033373,0.047368,-0.11411,-0.060287,-0.033373,-0.14103,-0.14103,0.020454,-0.11411,-0.14103,-0.14103,-0.060287,-0.0872,-0.060287,-0.14103,-0.22177,-0.22177,-0.16794 0.32602,0.18788,-0.11604,-0.11604,-0.19893,0.40891,-0.060784,-0.060784,-0.033155,-0.088413,0.40891,0.077361,-0.088413,-0.088413,-0.0055258,0.24313,0.077361,-0.088413,-0.19893,-0.25419,0.32602,-0.060784,-0.28182,-0.11604,-0.19893 -0.40684,-0.2722,-0.096773,0.1113,0.16841,-0.32932,-0.20693,-0.035576,0.14394,0.18473,-0.31708,-0.14165,0.05418,0.15617,0.20921,-0.22733,-0.10085,0.16841,0.20921,0.18881,-0.12941,0.070499,0.20105,0.20921,0.18881 0.061022,0.061022,0.10225,-0.18636,-0.22759,0.22595,0.10225,-0.1039,-0.1039,-0.26883,0.22595,0.30841,-0.062671,-0.26883,-0.1039,0.14348,0.18471,0.18471,-0.22759,-0.39252,0.30841,0.22595,0.10225,-0.062671,-0.22759 0.29474,0.35513,0.20414,0.38533,0.20414,0.14374,0.11355,0.14374,0.083348,0.14374,-0.097843,-0.0072476,-0.0072476,0.022951,0.022951,-0.037446,-0.15824,-0.24883,-0.33943,-0.24883,-0.18844,-0.21864,-0.24883,-0.18844,-0.12804 -0.23959,-0.21993,0.17332,0.17642,0.17953,-0.24373,-0.21786,0.17642,0.17332,0.17642,-0.23856,-0.23028,-0.1806,0.17642,0.17953,-0.23959,-0.20855,0.17435,0.17332,0.18263,-0.2427,-0.21579,0.17746,0.17539,0.18263 0.97948,-0.034585,-0.044497,-0.047547,-0.049072,-0.038397,-0.03306,-0.037635,-0.047547,-0.046022,-0.038397,-0.035348,-0.03611,-0.049072,-0.044497,-0.03306,-0.036872,-0.03611,-0.040685,-0.042972,-0.03611,-0.038397,-0.042972,-0.042972,-0.047547 0.10844,0.099506,0.096154,0.095409,0.097271,0.098389,0.099133,0.096527,0.096899,0.099506,0.098761,0.10025,0.097644,0.101,0.10025,0.10249,0.10509,0.10174,0.1036,0.10174,-0.40026,-0.40026,-0.39989,-0.39914,-0.40026 -0.17715,-0.17726,-0.17715,0.21547,0.21547,-0.17736,-0.17684,-0.17694,0.21853,0.21705,-0.17736,-0.17684,-0.17715,0.22086,0.22022,-0.17684,-0.17736,-0.17726,0.2273,0.22762,-0.17684,-0.17831,0.23576,0.23639,0.24601 0.09839,0.09839,0.096799,0.09839,0.09839,0.09839,0.09839,0.095208,0.10157,0.10157,0.099981,0.10157,0.099981,0.10316,0.099981,0.099981,0.10316,0.09839,0.10316,0.10475,-0.38688,-0.4012,-0.4012,-0.4012,-0.40915 0.076493,0.023465,-0.18533,-0.23505,-0.32122,0.15603,0.17592,0.093064,0.013522,-0.12899,0.12289,0.14609,0.12289,-0.21185,-0.30465,0.28529,0.26872,0.036722,-0.12568,-0.24499,0.27203,0.2654,0.15603,-0.11242,-0.34442 -0.23621,-0.23653,-0.23653,-0.23637,-0.23685,-0.23685,-0.23669,-0.23669,-0.23661,-0.23541,0.1404,0.2107,0.21398,0.21446,0.34168,0.14016,0.11134,0.1115,0.22655,0.089641,0.11966,0.11582,0.11902,0.11902,0.090842 0.97928,-0.031869,-0.035255,-0.042026,-0.04654,-0.02397,-0.037512,-0.039769,-0.045411,-0.049925,-0.034126,-0.031869,-0.042026,-0.037512,-0.053311,-0.037512,-0.039769,-0.042026,-0.039769,-0.052182,-0.03864,-0.043154,-0.042026,-0.045411,-0.047668 -0.32712,-0.047264,0.13931,0.13931,0.13931,-0.23383,-0.10945,0.10821,0.04602,0.10821,-0.35821,-0.17164,-0.016169,0.2015,0.38806,-0.17164,-0.23383,-0.016169,0.29478,0.10821,-0.32712,-0.078359,-0.016169,0.2015,0.23259 -0.027842,0.13921,0.027842,-0.1949,-0.36195,0.1949,0.083527,0.13921,-0.11137,-0.44548,0.1949,0.083527,0.13921,0.027842,-0.30627,0.13921,0.055685,0.16705,0.027842,-0.30627,0.33411,0.1949,0.027842,0.055685,-0.27842 0.098901,0.10466,0.10466,0.10302,0.099724,0.099724,0.10631,0.10796,0.10302,0.097254,0.087374,0.098077,0.094784,0.097254,0.098901,0.090667,0.093137,0.093137,0.095607,0.12442,-0.40252,-0.39429,-0.40499,-0.40746,-0.38935 0.97956,-0.036306,-0.034824,-0.038777,-0.043718,-0.031859,-0.038283,-0.039765,-0.040753,-0.043224,-0.034824,-0.038777,-0.040259,-0.041741,-0.044212,-0.03433,-0.039765,-0.043224,-0.045694,-0.043718,-0.041741,-0.041741,-0.04273,-0.046188,-0.053106 0.256,0.25753,-0.14924,-0.15333,-0.15077,0.25139,0.25566,-0.14924,-0.15197,-0.14941,0.25276,0.25498,-0.14975,-0.14838,-0.14889,0.25344,-0.15111,-0.14889,-0.14719,-0.14702,0.25532,0.35257,-0.14907,-0.14992,-0.14548 0.14897,0.15259,0.15802,0.15983,0.17611,0.14083,0.14445,0.14354,0.14716,0.15621,0.13721,0.14354,0.14626,0.14716,0.15621,0.1354,-0.21739,-0.26262,-0.25177,-0.25448,-0.28072,-0.28072,-0.28343,-0.28072,-0.28162 0.97897,-0.026011,-0.035185,-0.048435,-0.050473,-0.018877,-0.029069,-0.039262,-0.050473,-0.049454,-0.031108,-0.038242,-0.0413,-0.049454,-0.050473,-0.037223,-0.0413,-0.042319,-0.048435,-0.049454,-0.035185,-0.036204,-0.043339,-0.043339,-0.044358 -0.040005,-0.082106,-0.088267,-0.047193,0.03598,-0.062596,-0.077998,-0.082106,-0.052327,-0.0020126,-0.04514,-0.07081,-0.052327,-0.04514,-0.047193,-0.04822,-0.032818,-0.038979,-0.030764,0.10478,-0.04514,-0.035898,-0.035898,-0.038979,0.96116 -0.23385,-0.1721,-0.23385,-0.29561,-0.1721,-0.1721,-0.1721,-0.11034,-0.1721,-0.11034,-0.13093,-0.11034,-0.027997,-0.069168,0.1161,0.033761,0.095518,0.095518,0.28079,0.23962,0.033761,0.32196,0.4043,0.30137,0.2602 0.97775,-0.029258,-0.037914,-0.062801,-0.061719,-0.026012,-0.027815,-0.031061,-0.031422,-0.056669,-0.027094,-0.029258,-0.03034,-0.038996,-0.059555,-0.027455,-0.029979,-0.041882,-0.055948,-0.055948,-0.031061,-0.029619,-0.041882,-0.057391,-0.056669 -0.23807,-0.15612,0.094933,0.10442,0.35892,-0.24929,-0.20874,-0.18717,0.10874,0.32442,-0.23549,-0.23807,0.072503,0.12772,0.31061,-0.21737,-0.22427,-0.024984,-0.0042791,0.30371,-0.02671,-0.028435,-0.03965,-0.024122,0.29681 0.17001,0.16753,0.16256,0.18243,0.2023,0.17001,0.1576,0.15511,0.16505,0.19609,0.17498,0.17498,-0.1578,0.16256,0.22589,-0.21616,-0.21367,-0.21491,-0.22112,-0.21864,-0.24223,-0.24471,-0.24471,-0.2472,-0.24596 0.21645,0.20577,0.18559,0.20102,-0.052986,0.20221,0.20221,0.18678,0.1939,-0.044677,0.18084,0.17372,0.17135,0.16897,0.12506,-0.20729,-0.22153,-0.20966,-0.21679,-0.2061,-0.24765,-0.25477,-0.25121,-0.24765,-0.25358 -0.24362,-0.24362,-0.274,-0.25881,-0.28918,-0.15249,-0.046172,-0.10693,-0.15249,-0.18287,0.044957,-0.00060753,-0.091737,-0.046172,-0.10693,0.36391,0.30316,0.25759,0.22722,0.27278,0.21203,0.15127,0.18165,0.044957,0.13609 0.1172,0.13407,0.078523,0.083474,0.080999,0.11798,0.11999,0.085331,0.086878,0.084867,0.11364,0.11101,0.10513,0.10158,0.084403,0.10869,0.11194,0.08564,0.10297,0.08038,-0.3991,-0.39925,-0.39863,-0.3991,-0.39863 -0.38196,-0.36742,-0.38924,-0.40378,-0.38924,0.098036,0.068945,-0.011055,0.018036,-0.0037818,0.1344,0.11258,0.12713,0.076218,0.047127,0.17804,0.15622,0.12713,0.090764,0.0544,0.19985,0.17804,0.12713,0.090764,0.061673 0.098396,0.093565,0.10033,0.095498,0.094531,0.10033,0.10129,0.10226,0.10033,0.09743,0.098396,0.10033,0.099362,0.10033,0.10129,0.10419,0.10033,0.10516,0.10323,0.10323,-0.40209,-0.40112,-0.39726,-0.39919,-0.40015 -0.1978,-0.1978,-0.1957,-0.1978,-0.19149,-0.19008,-0.16903,-0.15991,-0.16903,-0.16552,0.28077,-0.16061,-0.1557,-0.15008,-0.14728,0.27446,0.24709,0.2099,0.18394,0.16008,0.28639,0.24499,0.21621,0.18744,0.15657 0.057764,0.066286,0.073258,0.074033,-0.39507,0.070934,0.078682,0.080231,0.089915,-0.39623,0.08178,0.10386,0.14298,0.14608,-0.39507,0.062025,0.087978,0.14725,0.14763,-0.39623,0.077132,0.085654,0.15383,0.14996,-0.39468 0.11743,0.12277,-0.19778,-0.26724,-0.26724,0.15483,0.1201,-0.16038,-0.25655,-0.27258,0.18421,0.15216,-0.037505,-0.21915,-0.24319,0.24565,0.22962,0.23497,-0.13634,-0.20312,0.24565,0.24031,0.24832,0.05599,-0.090931 0.1024,0.10352,0.10183,0.092291,-0.11991,0.10296,0.10296,0.099589,0.088361,-0.45225,0.096221,0.093975,0.092291,0.092291,-0.44832,0.093414,0.090045,0.090607,0.090607,-0.44439,0.094536,0.094536,0.094536,0.094536,-0.44663 -0.20386,-0.2018,-0.067403,0.3275,0.21999,-0.2018,-0.19353,-0.092214,0.34405,0.24894,-0.19353,-0.20386,-0.063268,0.31717,0.2324,-0.19973,-0.19146,0.085598,0.21586,0.17657,-0.18526,-0.16665,-0.13977,0.081463,0.054584 -0.079967,-0.082266,-0.076519,-0.053148,-0.053531,-0.073837,-0.072687,-0.060427,-0.041271,0.030758,-0.066557,-0.066557,-0.058512,0.02616,0.025011,-0.059661,-0.058129,-0.046251,0.0139,0.021563,-0.050083,-0.043186,-0.033225,-0.0056397,0.96406 -0.14186,-0.21575,-0.24038,-0.24038,-0.16649,-0.21575,-0.36352,-0.31427,-0.31427,-0.067976,0.10443,0.079798,0.055169,0.12906,0.10443,0.20294,0.2522,0.2522,0.20294,0.22757,0.12906,0.055169,0.17831,0.12906,0.17831 0.12282,0.11099,0.097291,0.086082,0.077364,0.12033,0.11099,0.099782,0.086082,0.076742,0.12344,0.11473,0.095423,0.091687,0.082969,0.1222,0.1085,0.098536,0.086705,0.082346,-0.40336,-0.40398,-0.39963,-0.39963,-0.38842 0.40369,0.20755,0.53742,0.40369,0.19864,-0.02425,-0.033165,0.07382,0.07382,0.011412,-0.059912,-0.059912,-0.095573,-0.015335,-0.042081,-0.13123,-0.14015,-0.13123,-0.19364,-0.042081,-0.19364,-0.20256,-0.17581,-0.20256,-0.1669 0.9761,-0.043874,-0.043874,-0.033046,-0.063364,0.0070164,-0.039543,-0.035212,-0.049288,-0.056867,-0.0081424,-0.034129,-0.033046,-0.031963,-0.066612,-0.023301,-0.030881,-0.03846,-0.039543,-0.061198,-0.030881,-0.048205,-0.067695,-0.037377,-0.066612 -0.092951,-0.093546,-0.094439,-0.094439,-0.092951,-0.094439,-0.095928,-0.09176,-0.096226,-0.09563,-0.096226,-0.093249,-0.096226,-0.091164,-0.093249,-0.095333,-0.093546,-0.093249,-0.091462,-0.092355,0.53734,0.58795,0.2545,0.2545,0.24408 0.97965,-0.035814,-0.040318,-0.04182,-0.043822,-0.04232,-0.037315,-0.039317,-0.04182,-0.040819,-0.035814,-0.039818,-0.040318,-0.043321,-0.045323,-0.033812,-0.039818,-0.039317,-0.043822,-0.046825,-0.034313,-0.041319,-0.04182,-0.043321,-0.047325 -0.22983,-0.22983,0.16768,0.095402,0.20381,-0.22983,-0.049146,-0.12142,0.059265,0.27609,-0.22983,-0.26597,0.059265,0.059265,0.20381,-0.15756,-0.26597,-0.049146,0.20381,0.34836,-0.22983,-0.013009,-0.049146,0.023128,0.42064 -0.18733,-0.144,-0.14125,0.080546,0.16216,-0.19122,-0.20679,0.18325,0.076815,0.16346,-0.1969,-0.20777,-0.11561,0.20142,0.41105,-0.20128,-0.2089,-0.1161,0.20515,0.21116,-0.19674,-0.18619,0.096933,0.10423,0.40391 -0.22575,-0.22718,-0.22539,-0.22072,-0.21821,-0.22826,-0.22718,-0.22611,-0.22144,-0.22216,0.17401,0.16827,0.14387,-0.22216,0.20703,0.16684,0.16935,0.15607,0.16684,0.19842,0.15751,0.15679,0.26947,0.14279,0.18729 0.97922,-0.03471,-0.037302,-0.039375,-0.050261,-0.029008,-0.036783,-0.0316,-0.038338,-0.050261,-0.027971,-0.035747,-0.036265,-0.040412,-0.051298,-0.03471,-0.034192,-0.041967,-0.046632,-0.050779,-0.047151,-0.043522,-0.046632,-0.045596,-0.048706 0.02325,0.19938,0.16416,-0.13527,-0.48754,0.058476,0.14654,0.093703,0.058476,-0.48754,0.076089,0.11132,0.093703,0.058476,-0.24095,0.076089,0.11132,0.076089,0.02325,-0.38186,0.18177,0.18177,0.14654,0.076089,-0.22334 0.97277,-0.024683,-0.039805,-0.033989,-0.087496,-0.017122,-0.024683,-0.043876,-0.030499,-0.079354,-0.015959,-0.032826,-0.038642,-0.063069,-0.08168,-0.018286,-0.040968,-0.048529,-0.078191,-0.027591,-0.035734,-0.029918,0.0003257,-0.075864,-0.0043271 -0.3749,-0.042624,0.22091,0.17508,0.10633,-0.31761,-0.076997,0.19799,0.12925,0.10633,-0.32907,-0.0082497,0.16362,0.1407,0.083414,-0.34053,-0.11137,0.18654,0.17508,0.083414,-0.38636,-0.1572,0.15216,0.17508,0.04904 -0.24239,-0.24239,-0.17598,-0.24239,-0.24239,-0.12618,-0.17598,-0.17598,-0.026564,-0.17598,-0.0099613,-0.0099613,-0.12618,0.089652,-0.092972,0.27228,0.10625,0.07305,-0.026564,0.089652,0.50471,0.30548,0.23907,0.17266,0.23907 0.09921,0.086199,0.079103,0.10039,-0.34373,0.11813,0.09507,0.081468,0.087974,-0.35674,0.14356,0.13883,0.10808,0.080286,-0.34846,0.19028,0.13528,0.089156,0.079694,-0.35438,0.19324,0.13055,0.07378,-0.34965,-0.35733 0.099733,-0.0069194,-0.078454,-0.14219,-0.15649,0.089328,0.042505,-0.081056,-0.12268,-0.15519,0.46781,0.034701,-0.09016,-0.13308,-0.14739,0.48992,-0.0030175,-0.066749,-0.12528,-0.14088,0.54585,0.0073876,-0.075853,-0.10967,-0.14219 0.29169,-0.1176,-0.14546,-0.1926,-0.20332,0.28526,0.26812,-0.096172,-0.18403,-0.1626,0.27454,0.26597,-0.079029,-0.12832,-0.11332,0.30455,-0.081172,-0.1026,-0.079029,-0.15189,0.28526,0.3174,-0.091886,-0.15832,-0.20546 0.25953,0.25953,0.40869,0.45841,0.40869,0.010938,-0.013921,0.11038,-0.088499,0.035797,-0.038781,-0.16308,-0.18794,-0.06364,-0.013921,-0.2128,-0.2128,-0.18794,-0.11336,-0.06364,-0.038781,-0.06364,-0.13822,-0.2128,-0.13822 0.97953,-0.033335,-0.033335,-0.037845,-0.046564,-0.035139,-0.040851,-0.029728,-0.042956,-0.041453,-0.034237,-0.036943,-0.037845,-0.044158,-0.042355,-0.044459,-0.042655,-0.042355,-0.047465,-0.04506,-0.043557,-0.042054,-0.043557,-0.046564,-0.04506 0.10169,0.12941,-0.26148,-0.28366,-0.23653,0.16545,0.15436,-0.14227,-0.23099,-0.21713,0.18763,0.18763,0.11832,-0.22267,-0.18109,0.22367,0.21812,0.15159,-0.1894,-0.16168,0.26803,0.25971,0.25416,-0.14227,-0.15059 0.3782,-0.11593,-0.12332,-0.12131,-0.12332,0.3661,-0.12131,-0.11055,-0.13811,-0.15425,0.36206,-0.10383,-0.10652,-0.15559,-0.13274,0.3466,-0.10517,-0.071558,-0.066179,-0.124,0.33316,0.33316,-0.068868,-0.064835,-0.11189 -0.26296,-0.26799,-0.2695,-0.26899,-0.26749,0.1681,-0.26195,-0.26547,-0.26648,-0.26648,0.16608,0.15452,0.14345,0.13691,0.1354,0.1691,0.152,0.14597,0.14194,0.13691,0.16608,0.15502,0.14747,0.14144,0.13691 0.25168,0.23805,-0.24936,-0.33117,-0.13688,0.41529,0.24146,-0.095983,0.05399,-0.24596,0.16306,0.2176,0.013089,-0.19824,-0.21187,0.16988,0.15624,-0.014179,-0.17779,-0.23914,0.16306,0.088075,0.033539,-0.10962,-0.19483 -0.23873,-0.22186,-0.22537,-0.22467,-0.2078,-0.24154,-0.22045,-0.22186,-0.20639,-0.20569,-0.26123,0.20344,0.18516,0.1697,0.17884,0.15564,0.1704,0.18798,0.18657,0.18095,0.15845,0.16829,0.16267,0.18516,0.18235 0.17686,0.17646,0.17806,0.17886,0.18448,0.17565,0.17325,0.17044,0.18368,0.18368,0.16923,0.16482,0.18007,0.18528,-0.23753,-0.22028,-0.22308,-0.22148,-0.22389,-0.23913,-0.22188,-0.22268,-0.22268,-0.22308,-0.22509 0.11815,-0.14357,-0.031406,-0.10618,-0.25574,0.23031,0.34248,-0.10618,-0.10618,-0.33051,0.37987,0.11815,0.0059822,-0.18096,-0.25574,0.2677,0.23031,-0.031406,-0.14357,-0.18096,0.30509,0.043371,-0.031406,0.080759,-0.21835 -0.17698,-0.17731,0.21935,0.22615,0.22267,-0.17648,-0.17764,-0.17664,0.22532,0.22416,-0.17747,-0.17698,-0.17847,0.22631,0.22897,-0.17681,-0.17664,-0.17814,0.22432,0.22863,-0.17615,-0.17814,-0.17797,0.22664,0.2293 -0.30861,-0.24524,-0.055132,0.24588,0.11914,-0.21356,-0.24524,-0.15019,0.18251,0.13498,-0.19772,-0.16603,0.039923,0.19835,0.18251,-0.26109,-0.19772,0.13498,0.18251,0.21419,-0.1185,-0.21356,0.24588,0.26172,0.23003 0.97949,-0.047122,-0.047947,-0.047397,-0.046573,-0.036128,-0.040526,-0.037777,-0.047122,-0.047122,-0.035303,-0.035578,-0.040251,-0.049871,-0.044924,-0.035028,-0.039976,-0.039426,-0.042175,-0.039426,-0.03283,-0.037777,-0.039976,-0.035578,-0.033654 -0.038488,-0.037028,-0.04688,-0.04761,-0.049252,-0.037576,-0.036116,-0.042501,-0.0019996,-0.046698,-0.031008,-0.01477,-0.0087499,-0.011304,-0.013311,-0.013858,-0.012216,-0.010574,-0.0087499,-0.0092972,0.95089,-0.021886,-0.020426,-0.19356,-0.19703 0.97942,-0.037305,-0.040761,-0.048826,-0.051706,-0.037305,-0.037305,-0.046522,-0.04537,-0.049978,-0.027512,-0.041913,-0.044793,-0.043065,-0.037305,-0.03212,-0.043641,-0.047098,-0.037305,-0.039609,-0.039033,-0.037305,-0.040761,-0.034425,-0.038457 0.41875,0.20931,0.43255,0.47025,0.42565,-0.095496,-0.09525,-0.097714,-0.095743,-0.097714,-0.095989,-0.097221,-0.097221,-0.09796,-0.099685,-0.097468,-0.098453,-0.0987,-0.098453,-0.0987,-0.097468,-0.098453,-0.0987,-0.099439,-0.10067 0.97967,-0.041308,-0.04255,-0.042017,-0.04184,-0.04113,-0.041485,-0.041662,-0.040953,-0.04113,-0.041662,-0.043082,-0.04113,-0.04042,-0.040775,-0.030306,-0.04255,-0.040775,-0.040953,-0.046098,-0.030839,-0.041485,-0.04113,-0.042017,-0.042372 -0.14672,-0.14785,-0.1471,-0.1421,-0.1436,-0.14635,-0.14822,-0.14872,-0.14298,-0.14398,-0.1466,-0.14735,-0.1446,-0.14185,-0.1446,0.071998,0.076368,0.073996,0.36213,0.36525,0.077117,0.07437,0.364,0.35901,0.35838 0.23172,0.16104,0.22401,0.22701,0.23352,0.15924,0.22241,0.22571,0.24663,0.23312,0.15884,0.15714,-0.19042,-0.19122,-0.19062,-0.18972,-0.19012,-0.19032,-0.19072,-0.19052,-0.19112,-0.19102,-0.19132,-0.19162,-0.19162 0.9645,0.032133,-0.071926,-0.0011655,0.0071593,0.027971,-0.021977,-0.030302,-0.051114,-0.071926,-0.038627,-0.038627,-0.051114,-0.08025,-0.076088,-0.02614,-0.038627,-0.071926,-0.059439,-0.059439,0.019646,-0.038627,-0.034464,-0.084413,-0.10522 -0.18218,-0.18218,-0.17953,-0.18019,-0.18019,-0.18086,-0.17556,-0.17755,-0.18019,-0.17887,-0.17027,0.24137,-0.17689,-0.1663,-0.1663,0.25395,0.23541,0.22152,0.21291,0.19505,0.246,0.23541,0.22218,0.21093,0.20233 0.20849,0.19975,-0.18227,-0.20599,-0.1935,0.20724,0.201,-0.18352,-0.19226,-0.21598,0.21098,0.20724,0.22472,-0.18477,-0.23595,0.20973,0.20349,0.20849,-0.18601,-0.22347,0.19975,0.20224,-0.17603,-0.10736,-0.196 -0.13392,-0.12218,-0.09868,-0.15742,-0.13392,-0.14567,-0.15742,-0.12218,-0.18091,-0.13392,-0.15742,-0.16917,-0.086933,-0.11043,-0.11043,0.11278,0.089282,0.089282,0.030544,-0.039942,0.25375,0.42996,0.53569,0.34773,0.17152 -0.18589,-0.14109,0.23972,0.23777,0.23875,-0.18427,-0.18265,-0.17908,0.2342,0.23258,-0.18687,-0.17972,-0.17778,0.22544,0.22381,-0.18752,-0.17453,-0.17648,0.21472,0.21375,-0.18037,-0.1755,-0.16609,0.20855,0.20855 0.20651,0.21275,-0.19055,-0.19013,-0.19325,0.20277,0.20464,-0.19304,-0.19159,-0.19325,0.20049,0.214,-0.192,-0.19283,-0.19221,0.20049,0.21005,0.22543,-0.1918,-0.19367,0.1955,0.21109,0.21337,-0.18992,-0.19283 -0.15577,-0.14509,-0.14865,-0.15221,-0.15043,-0.15933,-0.15399,-0.15577,-0.15755,-0.15399,-0.16289,-0.10947,-0.15043,-0.15221,-0.13262,0.036538,0.30363,0.31076,-0.075641,0.29117,0.24665,0.29117,0.22885,0.30007,0.30719 0.31851,0.30826,-0.11402,-0.116,-0.11468,0.30693,-0.11567,-0.11435,-0.11369,-0.11435,0.29867,-0.11501,-0.11468,-0.11402,-0.11336,0.43954,-0.10244,-0.10211,-0.1117,-0.11468,0.43821,-0.10079,-0.10079,-0.10542,-0.11236 0.35641,0.43333,0.35641,0.39487,0.40769,-0.066667,-0.13077,-0.15641,-0.15641,-0.041026,-0.041026,-0.0025641,-0.079487,-0.11795,-0.20769,-0.10513,-0.10513,-0.066667,-0.10513,-0.066667,-0.066667,-0.079487,-0.16923,-0.079487,-0.10513 0.11302,0.11144,0.10039,0.083026,0.081448,0.11775,0.10828,0.097233,0.087762,0.083026,0.12722,0.10355,0.097233,0.095654,0.071977,0.12722,0.11144,0.097233,0.092497,0.084605,-0.42997,-0.37472,-0.3984,-0.42523,-0.36367 -0.045729,-0.041102,-0.048673,-0.049935,-0.051617,-0.048673,-0.044467,-0.049935,-0.049094,-0.049094,-0.049094,-0.054982,-0.047411,-0.047832,-0.048252,-0.048673,-0.052038,-0.051617,-0.044467,-0.047832,-0.045308,-0.050776,-0.05372,0.16163,0.95869 -0.040274,-0.03468,-0.11019,-0.13257,-0.13537,-0.03841,-0.016967,-0.031884,-0.11672,-0.0076446,-0.063581,-0.061716,0.0026104,-0.044003,-0.0048478,-0.098075,-0.1018,-0.059852,-0.011374,0.38484,-0.030951,-0.079429,-0.018832,-0.010441,0.86216 0.37371,0.38056,-0.13163,-0.13677,-0.17274,0.35829,0.35658,-0.13163,-0.16246,-0.11964,0.31204,0.077359,-0.19158,-0.18987,-0.15047,0.12532,0.041386,-0.10422,-0.18987,-0.17274,0.073933,0.031108,-0.006578,-0.12478,-0.14533 -0.11524,-0.21021,-0.33684,-0.49514,-0.24187,-0.083578,-0.17855,-0.083578,-0.14689,-0.17855,0.10637,-0.020261,0.074713,-0.020261,0.074713,0.20135,0.26466,0.074713,0.13803,0.10637,0.10637,0.233,0.32798,0.16969,0.233 0.19442,0.19548,0.19671,-0.20713,-0.20854,0.19054,0.19407,0.19478,-0.2096,-0.20872,0.19196,0.18861,0.19196,-0.20766,-0.2073,0.19054,0.18966,-0.20783,-0.20766,-0.20783,0.19037,0.18878,-0.20783,-0.20924,-0.20854 0.10253,0.098593,0.098593,0.098593,0.098593,0.10155,0.10155,0.098593,0.098593,0.096623,0.10253,0.10352,0.098593,0.098593,0.096623,0.1045,0.1045,0.10253,0.097608,0.096623,-0.39743,-0.39496,-0.39546,-0.39349,-0.41811 0.14413,0.14413,0.14085,0.15725,0.14249,0.14905,0.15069,0.14905,0.14249,0.14741,0.15561,0.15725,0.15069,0.15069,0.15397,-0.26752,-0.22324,-0.2216,-0.2298,0.15397,-0.29868,-0.28884,-0.29212,-0.29212,-0.27572 0.94406,0.019311,-0.0078875,-0.058885,-0.092882,0.03631,0.0091115,-0.072484,-0.089483,-0.082683,0.066908,0.0057117,-0.069084,-0.075884,-0.075884,0.03631,-0.024887,-0.092882,-0.086083,-0.092882,0.073708,-0.014687,-0.082683,-0.089483,-0.082683 -0.16409,-0.033167,-0.011347,0.11958,0.42506,-0.098629,-0.098629,-0.098629,0.16322,0.31596,-0.098629,-0.25137,-0.14227,0.054115,0.33778,-0.16409,-0.16409,-0.14227,0.010474,0.38142,-0.20773,-0.22955,-0.14227,-0.033167,0.27232 0.97586,0.0024107,-0.0067604,0.0063412,-0.014621,-0.034274,-0.036894,-0.036894,-0.044755,-0.042135,-0.044755,-0.042135,-0.049996,-0.047375,-0.047375,-0.052616,-0.049996,-0.049996,-0.057857,-0.047375,-0.052616,-0.057857,-0.052616,-0.055236,-0.060477 0.94491,-0.021958,-0.050082,-0.074948,-0.08901,0.070476,0.018514,-0.050254,-0.07289,-0.08661,0.068932,-0.038249,-0.058657,-0.072547,-0.086781,0.064988,-0.043737,-0.060886,-0.078378,-0.08661,0.06756,-0.029332,-0.066374,-0.077692,-0.090382 -0.045799,-0.1503,-0.14121,-0.11395,-0.12758,-0.10032,-0.086692,-0.082148,-0.13213,-0.14121,-0.11395,-0.12758,-0.063974,-0.12758,-0.10032,0.12231,-0.10032,0.0087237,-0.068517,-0.12758,0.36767,0.40402,0.48126,0.46763,0.099595 0.52066,-0.079333,-0.10433,-0.070999,-0.121,0.36233,-0.10433,-0.121,-0.10433,-0.070999,0.51233,-0.10433,-0.087666,-0.10433,-0.11267,0.304,-0.10433,-0.079333,-0.095999,-0.10433,0.229,-0.087666,-0.10433,-0.079333,-0.087666 0.096956,0.097521,0.097521,0.097521,0.097521,0.098087,0.099218,0.098935,0.099783,0.099783,0.097804,0.10148,0.1012,0.10148,0.10035,0.10204,0.10261,0.10374,0.10374,0.10261,-0.39975,-0.39975,-0.39975,-0.40089,-0.39975 0.97197,-0.0047006,-0.0099234,-0.012535,-0.067375,-0.015146,-0.007312,-0.056929,-0.062152,-0.080432,-0.020369,0.013579,-0.017758,-0.05954,-0.067375,-0.049095,-0.04126,-0.02298,-0.051706,-0.033426,-0.04126,-0.064763,-0.067375,-0.064763,-0.067375 0.96132,-0.00086126,-0.05469,-0.060073,-0.080258,0.035473,-0.022393,-0.050653,-0.066801,-0.081604,-0.0062441,-0.0075898,-0.066801,-0.081604,-0.070838,0.023362,0.0058673,-0.051998,-0.074875,-0.085641,0.03951,-0.0075898,-0.047961,-0.06411,-0.08295 -0.10297,-0.10156,-0.10392,-0.1025,-0.099676,-0.098263,-0.10156,-0.10156,-0.10015,-0.099676,-0.096378,-0.092138,-0.09308,-0.094022,-0.098734,-0.094022,-0.094494,-0.092609,-0.095436,-0.095907,0.44591,0.44591,0.4299,0.21222,0.42471 0.094401,-0.038185,0.12092,-0.011668,-0.54201,0.12092,0.01485,0.094401,0.041367,-0.27684,0.22699,0.067884,0.094401,0.01485,-0.30336,0.14743,0.17395,0.094401,0.01485,-0.43594,0.22699,0.22699,0.067884,0.01485,-0.25032 0.17943,0.20349,0.21352,0.21953,0.23157,0.15737,0.1674,0.18344,0.23157,0.23357,0.15136,0.14735,0.15938,-0.1755,-0.17951,-0.20157,-0.21961,-0.21159,-0.2156,-0.20959,-0.2156,-0.21159,-0.21159,-0.21159,-0.2156 -0.16668,-0.19021,-0.19335,-0.17923,-0.19335,-0.15099,-0.18551,-0.19335,-0.16354,-0.17609,0.24123,-0.16668,-0.15256,-0.17609,-0.15099,0.26633,0.25692,0.24123,0.17691,0.17377,0.3134,0.27889,0.18946,0.14396,0.15651 0.1877,0.1583,-0.26818,-0.26415,-0.2632,0.18628,0.15095,-0.14419,-0.26581,-0.27434,0.1877,0.15356,0.15095,-0.2632,-0.13447,0.24317,0.18272,0.16541,-0.13945,-0.13376,0.24222,0.24317,0.16138,-0.13281,-0.12997 0.96671,-0.011429,-0.01037,-0.0089595,-0.0054322,-0.013898,-0.01037,-0.0089595,-0.0093123,-0.075627,-0.013898,-0.011429,-0.010018,-0.065397,-0.078449,-0.0093123,-0.0061376,-0.074216,-0.071747,-0.075627,-0.0915,-0.078449,-0.07598,-0.075274,-0.074921 -0.025578,-0.077527,-0.078471,0.015981,0.021648,-0.029356,-0.031245,-0.075638,-0.073748,-0.0218,-0.082249,-0.082249,-0.072804,-0.082249,-0.076582,-0.072804,-0.08036,-0.053913,-0.070915,0.051873,0.95012,0.083043,0.066041,-0.046357,-0.054858 -0.095524,-0.10003,-0.10003,-0.1026,-0.10582,-0.096168,-0.098741,-0.098741,-0.1026,-0.10582,-0.096168,-0.098098,-0.098741,-0.095524,-0.096811,-0.092308,-0.087804,-0.095524,-0.094238,-0.098098,0.50343,0.32201,0.31879,0.31622,0.49893 0.35324,0.35504,0.35324,0.34965,0.34426,-0.076007,-0.067027,-0.056251,-0.036495,0.34965,-0.090375,-0.090375,-0.084987,-0.095763,-0.086783,-0.14066,-0.14246,-0.13887,-0.11552,-0.093967,-0.15862,-0.16581,-0.15144,-0.16042,-0.15324 0.094369,0.096735,0.096735,0.08727,0.10147,0.08727,0.094369,0.096735,0.10147,0.10147,0.096735,0.10383,0.10383,0.099101,0.094369,0.10383,0.11093,0.11093,0.10383,0.1133,-0.40256,-0.39546,-0.41676,-0.38836,-0.39546 0.37873,0.19547,0.012217,0.012217,-0.07941,0.22601,-0.07941,-0.07941,-0.17104,-0.26266,0.37873,0.10384,-0.10995,-0.17104,0.012217,0.31764,0.012217,-0.018325,-0.07941,-0.26266,0.2871,0.012217,-0.018325,-0.26266,-0.35429 0.16355,0.15307,0.13177,0.078331,0.044453,0.11221,0.10487,0.13002,0.07414,0.078331,0.10453,0.10767,0.093,0.064361,0.084618,0.10348,0.09754,0.097191,0.063662,0.096492,-0.39316,-0.39456,-0.39666,-0.39805,-0.40085 0.97969,-0.041092,-0.045171,-0.043131,-0.045986,-0.042724,-0.039869,-0.040685,-0.0415,-0.046394,-0.038238,-0.042724,-0.036198,-0.039869,-0.039869,-0.037422,-0.039869,-0.039053,-0.039869,-0.044355,-0.034975,-0.03783,-0.03783,-0.040685,-0.044355 0.10039,0.10185,0.10002,0.10131,0.10314,0.098926,0.099109,0.099841,0.10057,0.10167,0.099109,0.098011,0.099109,0.10057,0.10002,0.098926,0.098926,0.099475,0.099475,0.099475,-0.39724,-0.39907,-0.39871,-0.40054,-0.40438 -0.22348,-0.22106,-0.21945,0.15201,0.26601,-0.22361,-0.22308,0.15174,0.25888,0.27273,-0.22348,-0.22267,0.14918,0.14918,0.14918,-0.22375,-0.22294,0.14999,0.14891,0.14891,-0.22348,-0.21474,0.15026,0.14703,0.1477 0.0911,0.096476,0.097821,0.099165,0.10633,0.092892,0.098717,0.10275,0.10275,0.10723,0.092892,0.094684,0.10141,0.10185,0.10544,0.092892,0.097821,0.10365,0.10589,0.10768,-0.39505,-0.39997,-0.39953,-0.40087,-0.40401 0.21743,0.21802,0.22056,0.21573,0.21429,0.217,0.21827,0.22056,0.21506,0.21328,-0.19155,-0.19205,-0.19155,0.16066,0.16041,-0.19231,-0.19138,-0.19146,-0.19129,-0.19188,-0.19205,-0.19138,-0.19104,-0.19155,-0.1918 0.32061,0.22698,-0.11012,-0.078905,-0.097632,0.35183,0.089642,-0.20375,-0.11636,-0.1663,0.2894,0.26443,-0.18503,-0.17878,-0.11012,0.32686,0.23322,-0.097632,-0.11012,-0.085147,0.18952,-0.14133,-0.18503,-0.22248,-0.20375 0.10413,0.097364,0.092852,0.095108,0.097364,0.10864,0.10188,0.10188,0.10413,0.092852,0.10413,0.11541,0.097364,0.097364,0.09962,0.10413,0.10188,0.097364,0.092852,0.090596,-0.41472,-0.43277,-0.39442,-0.37186,-0.38314 0.97691,-0.022219,-0.016719,-0.035052,-0.057051,-0.018553,-0.024052,-0.036885,-0.044218,-0.053385,-0.053385,-0.033219,-0.031386,-0.038719,-0.057051,-0.042385,-0.040552,-0.069884,-0.038719,-0.057051,-0.0075531,-0.042385,-0.069884,-0.038719,-0.047885 0.29898,0.16679,-0.17691,-0.19957,-0.18069,0.29898,0.10636,-0.17314,-0.19957,-0.18069,0.38963,0.049705,-0.18824,-0.17691,-0.17691,0.37452,0.15924,-0.16558,-0.16558,-0.13159,0.20078,0.12147,-0.12781,-0.037165,0.11391 0.17772,0.17872,0.1795,0.17872,0.17806,0.17772,0.17772,0.17772,0.17728,0.17706,-0.22242,0.17594,0.17561,0.17527,0.17483,-0.22565,-0.2252,-0.22565,-0.22576,-0.22587,-0.22542,-0.22643,-0.22609,-0.22654,-0.22687 0.28765,0.21504,-0.18689,-0.18992,-0.19114,0.20532,0.20016,0.19985,-0.19175,-0.19175,0.19894,0.19864,-0.19418,-0.19296,-0.19114,0.19621,0.19742,-0.19205,-0.19266,-0.19205,0.19621,0.19681,0.19651,-0.19084,-0.19144 -0.070548,-0.070548,-0.10807,0.21089,0.30471,-0.18313,-0.089311,-0.089311,0.023266,0.34223,-0.10807,-0.089311,-0.16436,0.042029,0.37976,-0.25818,-0.12684,-0.22065,0.15461,0.37976,-0.20189,-0.20189,-0.16436,0.042029,0.26718 0.0063688,-0.034967,-0.10386,-0.10386,-0.13601,0.48556,-0.03956,-0.059463,-0.13295,-0.12376,0.47025,-0.050277,-0.097737,-0.11917,-0.12836,0.42585,-0.047215,-0.1008,-0.1008,-0.11305,0.4182,-0.025781,-0.07171,-0.10692,-0.10998 0.38715,0.34854,-0.11082,-0.11305,-0.11171,0.35345,-0.11238,-0.11216,-0.11528,-0.11238,0.33716,-0.10792,-0.11216,-0.11216,-0.11327,0.35233,-0.11149,-0.11216,-0.1135,-0.1126,0.35524,-0.11104,-0.11193,-0.11372,-0.11417 0.15723,-0.11901,-0.16198,-0.11696,-0.13947,0.23704,0.1204,-0.14152,-0.13129,-0.055576,0.57262,0.0078576,-0.084223,-0.13743,-0.094454,0.31275,-0.0044199,-0.057622,-0.14356,-0.14561,0.49077,-0.0064661,-0.10469,-0.10878,-0.14561 0.12161,0.16631,0.18503,0.19023,0.19543,0.06962,0.17879,0.18295,0.18191,0.24325,-0.16744,0.076898,0.18919,0.17775,0.27029,-0.22046,-0.22046,-0.22046,-0.22462,-0.21838,-0.22462,-0.23086,-0.22878,-0.23502,-0.23814 0.9795,-0.051094,-0.051094,-0.051094,-0.049926,-0.033969,-0.03825,-0.037861,-0.03825,-0.042531,-0.036304,-0.037083,-0.03825,-0.041753,-0.042531,-0.036304,-0.037083,-0.041753,-0.040196,-0.042531,-0.035526,-0.037083,-0.037861,-0.040196,-0.040975 0.081117,0.07673,0.13474,0.085504,-0.39759,0.077217,0.073805,0.12304,0.21907,-0.39662,0.077217,0.073805,0.07088,0.12304,-0.39418,0.081605,0.077705,0.089404,0.12548,-0.39564,0.086967,0.081605,0.10354,0.11427,-0.39272 0.131,0.12917,0.16755,0.089565,-0.28941,0.12978,0.13953,0.1511,-0.29428,-0.29246,0.14684,0.15841,0.15354,-0.29611,-0.29246,0.15841,0.14806,0.090783,-0.2955,-0.28697,0.19375,0.15171,0.090174,0.084081,-0.26626 0.97949,-0.030496,-0.032204,-0.037326,-0.040741,-0.030496,-0.037326,-0.037326,-0.03818,-0.042449,-0.03818,-0.040741,-0.041595,-0.04501,-0.047571,-0.041595,-0.044156,-0.042449,-0.048425,-0.050986,-0.039034,-0.041595,-0.044156,-0.04501,-0.042449 -0.22088,-0.21987,-0.22088,-0.21987,-0.22088,-0.22037,-0.22113,-0.2224,-0.22113,-0.22063,0.24579,0.22198,0.23819,0.098924,-0.21354,0.20958,0.22122,0.18653,0.098671,0.092847,0.20451,0.20451,0.20578,0.096139,0.096899 0.34449,-0.11098,-0.11094,-0.11274,-0.1139,0.34509,-0.11158,-0.1119,-0.11302,-0.1137,0.34749,-0.11158,-0.11226,-0.1131,-0.11386,0.36062,-0.11174,-0.11206,-0.11246,-0.1135,0.38744,0.34877,-0.11146,-0.11134,-0.11178 0.17845,0.083245,0.18035,-0.23473,-0.24806,0.064205,0.19939,0.22224,-0.24425,-0.26139,0.075629,0.16131,-0.16047,-0.2195,-0.26139,0.25651,0.17654,0.24128,-0.18332,-0.22902,0.20701,0.19368,0.16702,-0.16238,-0.20236 0.29334,-0.046151,-0.051214,-0.049527,-0.42559,0.30038,-0.049527,-0.030681,-0.055996,-0.26498,0.30038,0.31163,-0.027869,-0.11816,-0.2962,0.15608,0.3136,-0.023931,-0.052902,-0.12322,0.14399,0.13499,-0.01268,-0.029837,-0.29592 0.12772,0.12772,0.10176,0.2056,0.17964,0.12772,0.049843,0.17964,0.15368,0.075804,0.10176,0.049843,0.15368,0.049843,0.2056,0.049843,-0.053997,-0.053997,-0.0020768,0.049843,-0.33956,-0.36552,-0.39148,-0.36552,-0.41744 -0.04943,-0.053603,-0.056144,-0.061769,-0.060862,-0.049611,-0.053603,-0.053966,-0.056869,-0.062495,-0.048159,-0.052696,-0.054692,-0.060136,-0.062495,-0.047978,-0.055781,-0.056325,-0.06068,-0.05941,-0.048885,-0.054873,-0.058865,0.40513,0.8742 -0.27962,-0.25532,-0.25906,-0.26467,-0.2684,0.16137,-0.25906,-0.2684,-0.26467,-0.27962,0.14455,0.1539,0.15203,0.15016,0.1539,0.14829,0.15016,0.15016,0.15577,0.14642,0.14642,0.14642,0.15016,0.15016,0.13895 0.36238,0.23785,0.019925,-0.22913,-0.16687,0.33125,-0.011208,-0.1046,-0.22913,-0.32253,0.30011,0.23785,0.019925,-0.2914,-0.04234,0.30011,0.11332,-0.011208,-0.198,-0.198,0.11332,-0.04234,0.019925,-0.13574,-0.073472 0.97768,-0.020106,-0.016696,-0.018742,-0.022834,-0.02829,-0.029654,-0.026926,-0.031018,-0.033746,-0.042612,-0.04193,-0.04193,-0.046022,-0.039202,-0.050797,-0.052161,-0.050115,-0.050115,-0.050115,-0.058981,-0.058981,-0.051479,-0.056253,-0.058981 0.12608,0.12948,0.08868,0.08868,0.078479,0.12268,0.11928,0.098881,0.098881,0.081879,0.12948,0.13288,0.10568,0.08868,0.08528,0.09548,0.09548,0.08528,0.058077,0.068278,-0.45537,-0.43497,-0.40096,-0.30576,-0.38056 0.3131,-0.11639,-0.12079,-0.13478,-0.14478,0.3183,-0.11879,-0.12398,-0.13318,-0.14678,0.3191,0.3115,-0.12518,-0.13198,-0.14758,0.3107,0.3111,-0.12998,-0.13598,-0.15038,0.30351,0.09236,-0.12718,-0.13798,-0.15398 0.29042,-0.11941,-0.10899,-0.11941,-0.17324,0.31821,-0.055153,-0.098567,-0.13503,-0.16282,0.31126,-0.074255,-0.060362,-0.14372,-0.17671,0.34946,0.30431,-0.12982,-0.1333,-0.16282,0.29737,0.34599,-0.12982,-0.10204,-0.13156 0.10367,0.10084,0.10144,-0.24713,-0.31826,0.10327,0.10266,0.10286,-0.24652,-0.31887,0.17602,0.14441,0.13225,-0.25139,-0.31077,0.16731,0.16285,0.14319,0.13752,-0.30671,0.16467,0.16082,0.15576,0.14927,-0.30914 0.24774,0.23312,0.2315,0.24936,0.2656,0.25261,0.29483,-0.059174,0.34355,0.25748,-0.14524,-0.14686,-0.1355,-0.1355,-0.14199,-0.16148,-0.15985,-0.15173,-0.15985,-0.16635,-0.15985,-0.1631,-0.1631,-0.16635,-0.15985 0.17861,0.17732,0.17732,0.18444,0.18088,0.17699,0.17732,0.1757,0.17538,0.1757,-0.22456,0.17699,0.1757,0.17473,0.17473,-0.22424,-0.22456,-0.22521,-0.22618,-0.22553,-0.22618,-0.22618,-0.22618,-0.22618,-0.22683 -0.22702,-0.2284,-0.22886,-0.23023,-0.22932,-0.22519,-0.22519,-0.22289,-0.22289,-0.22152,0.23588,0.2313,0.23313,0.038611,0.024389,0.23313,0.22809,0.22854,0.033564,0.022553,0.24093,0.22809,0.22533,0.037234,0.020718 0.095363,0.098948,0.098948,0.10253,0.10253,0.10134,0.10134,0.10014,0.10014,0.097753,0.097753,0.096558,0.096558,0.097753,0.10134,0.10134,0.10492,0.10134,0.10492,0.097753,-0.41013,-0.40177,-0.37906,-0.40177,-0.40655 0.9797,-0.036811,-0.038959,-0.041537,-0.046692,-0.037241,-0.03767,-0.039389,-0.042826,-0.044115,-0.03767,-0.037241,-0.040248,-0.044115,-0.045404,-0.037241,-0.038959,-0.040248,-0.041537,-0.044115,-0.038959,-0.040248,-0.041537,-0.042826,-0.044115 0.10237,0.10645,0.098718,0.14187,0.13114,0.11203,0.10924,0.10108,0.099362,0.13371,0.10623,0.058355,0.061361,0.074672,0.1292,0.10387,0.057711,0.063078,0.083689,0.11332,-0.39659,-0.39659,-0.39788,-0.39852,-0.39788 0.97906,-0.015342,-0.034068,-0.048919,-0.036005,-0.028902,-0.044399,-0.045691,-0.033422,-0.043108,-0.042462,-0.042462,-0.035359,-0.043108,-0.047628,-0.043753,-0.056022,-0.037296,-0.044399,-0.048919,-0.042462,-0.039879,-0.037296,-0.039879,-0.048273 0.096558,0.10318,0.097747,0.098341,0.097917,0.095199,0.10395,0.09452,0.094435,0.098936,0.097237,0.10021,0.09435,0.096728,0.11643,0.10012,0.096558,0.095199,0.10904,0.11261,-0.39984,-0.40009,-0.39992,-0.39933,-0.40009 -0.22805,-0.13087,0.12828,0.063492,0.35504,-0.22805,-0.098477,-0.098477,0.12828,0.35504,-0.35763,-0.13087,0.12828,0.16067,0.32264,-0.19566,-0.35763,0.031098,0.031098,0.12828,-0.22805,-0.0012958,-0.03369,0.063492,0.19307 0.010314,0.26817,0.010314,-0.17018,-0.37647,0.061885,0.16503,0.11346,-0.22176,-0.27333,0.13924,0.13924,0.010314,-0.092828,-0.3249,0.087671,0.26817,0.13924,-0.041257,-0.27333,0.16503,0.34553,0.2166,-0.17018,-0.19597 0.34223,0.18352,0.039477,-0.025874,-0.077888,0.38357,0.16751,0.03681,-0.099227,-0.11656,0.33956,0.16218,-0.069886,-0.18192,-0.18325,0.29155,0.16084,-0.089891,-0.23393,-0.27527,-0.04988,-0.055215,-0.083222,-0.22726,-0.33796 0.10615,0.10377,0.091859,0.096623,0.10377,0.094241,0.099006,0.10377,0.091859,0.096623,0.11092,0.089477,0.10139,0.096623,0.091859,0.10853,0.10615,0.099006,0.10615,0.10139,-0.39412,-0.3965,-0.39888,-0.40603,-0.40365 -0.39158,-0.012443,0.10907,0.10907,0.12366,-0.38671,-0.012443,0.10907,0.13338,0.099352,-0.42074,0.089631,0.11393,0.11393,0.10421,-0.39158,0.10421,0.12366,0.14796,0.11393,-0.37699,0.08477,0.10421,0.10907,0.099352 0.32371,0.09467,0.018323,-0.21072,-0.28706,0.17102,0.018323,-0.01985,-0.21072,-0.40159,0.20919,0.018323,-0.096197,-0.058024,-0.01985,0.28554,0.018323,0.17102,-0.13437,-0.28706,0.28554,0.24736,0.17102,-0.01985,-0.28706 -0.21916,-0.23282,-0.22485,-0.22485,-0.22827,-0.21689,-0.23737,-0.22713,-0.22485,-0.21916,0.19268,0.18813,-0.22485,0.17903,0.17334,0.18244,0.18244,0.17334,0.16993,0.16196,0.18472,0.18244,0.17561,0.16879,0.16537 0.018472,0.23529,0.23568,-0.23188,-0.23216,0.23865,0.23961,0.2376,-0.23245,-0.23226,0.023947,0.24163,0.23837,-0.23245,-0.23226,0.10339,0.10339,0.10186,-0.23245,-0.23226,0.10214,0.10147,0.10109,-0.23207,-0.23236 0.40993,0.36804,0.36804,0.42389,0.40993,-0.13459,-0.10667,-0.10667,-0.10667,-0.13459,-0.12063,-0.12063,-0.12063,-0.13459,-0.10667,-0.10667,-0.10667,-0.10667,-0.064784,-0.10667,-0.064784,-0.092709,-0.064784,-0.022898,-0.050822 0.97935,-0.044435,-0.04471,-0.044749,-0.04471,-0.030399,-0.030084,-0.044513,-0.044789,-0.044749,-0.030478,-0.043884,-0.044277,-0.044671,-0.044946,-0.029495,-0.043884,-0.044277,-0.044356,-0.044277,-0.029888,-0.030556,-0.043334,-0.043688,-0.044199 -0.14922,-0.148,-0.15044,-0.15044,-0.15044,-0.1476,-0.14882,-0.14922,-0.14922,-0.15288,-0.1476,-0.14882,-0.14882,-0.14963,-0.15247,0.27493,0.27656,0.27778,-0.15003,0.22176,0.27493,0.27899,0.28265,0.28549,0.22055 0.9747,-0.034869,-0.030953,-0.039568,-0.028603,-0.023904,-0.035652,-0.036435,-0.035652,-0.031736,-0.0082395,-0.036435,-0.036435,-0.045834,-0.085778,-0.006673,-0.036435,-0.038785,-0.050533,-0.084995,-0.017638,-0.035652,-0.042701,-0.063848,-0.087345 0.10224,0.075047,-0.033717,-0.0065258,-0.14248,0.29257,0.15662,-0.16967,-0.088098,-0.11529,0.42853,0.18381,-0.14248,-0.088098,-0.25124,0.34695,0.020665,-0.19686,-0.16967,-0.14248,0.42853,0.047856,-0.22405,-0.16967,-0.14248 0.28828,0.20695,0.14189,0.084332,0.024274,0.28703,0.2057,0.13688,0.09184,0.049298,0.26951,0.20195,0.12187,0.076825,0.044293,-0.22847,-0.21471,-0.22847,-0.21471,-0.0045044,-0.26476,-0.27101,-0.26726,-0.26976,-0.26726 0.31316,0.26628,0.40693,0.26628,0.17252,0.031879,0.07876,0.37567,0.11001,0.07876,-0.093137,-0.14002,-0.015002,-0.015002,-0.015002,-0.14002,-0.093137,-0.093137,-0.1869,-0.1869,-0.21815,-0.1869,-0.1869,-0.21815,-0.31191 0.10735,0.095979,0.095979,0.09143,0.09143,0.1028,0.095979,0.09143,0.098253,0.10053,0.10053,0.098253,0.10053,0.093705,0.10053,0.10735,0.11417,0.10735,0.10963,0.095979,-0.39984,-0.39756,-0.40211,-0.39756,-0.40211 -0.057207,-0.14044,-0.10261,-0.072341,-0.064774,-0.034506,-0.14801,-0.087475,-0.042073,-0.042073,-0.04964,-0.04964,-0.04964,-0.04964,-0.034506,0.026031,-0.042073,-0.072341,-0.026939,-0.04964,0.91894,0.22277,-0.019372,-0.011805,0.079 -0.097637,-0.095874,-0.098225,-0.097931,-0.097637,-0.097343,-0.095874,-0.096168,-0.096462,-0.096168,-0.09558,-0.094405,-0.095286,-0.096462,-0.095286,-0.092936,-0.094405,-0.094111,-0.094111,-0.095874,0.45596,0.41688,0.44362,0.46918,0.13215 -0.091147,-0.15533,-0.13929,0.021182,0.37421,-0.13929,-0.13929,-0.15533,-0.043006,0.40631,-0.12324,-0.13929,-0.091147,-0.026959,0.34212,-0.059053,-0.17138,-0.13929,0.053276,0.32607,-0.13929,-0.15533,-0.12324,0.069323,0.4384 0.071376,0.093893,0.14455,0.088264,-0.42398,0.071376,0.093893,0.12204,0.11641,-0.50279,0.088264,0.088264,0.10515,0.10515,-0.3114,0.077005,0.099522,0.088264,0.11641,-0.29451,0.077005,0.093893,0.11641,0.10515,-0.42961 -0.13807,-0.15294,-0.13807,-0.14963,-0.13862,-0.057145,-0.16174,-0.00044042,-0.097884,-0.05219,0.043602,0.0045143,-0.0070467,0.017176,-0.060448,0.16747,0.02048,-0.0070467,0.01057,-0.057695,0.90242,0.032591,0.0067164,0.035894,-0.022461 0.066654,0.061499,0.057374,0.065623,-0.37365,0.065623,0.061499,0.061499,0.069748,-0.37056,0.077997,0.068717,0.066654,0.064592,-0.38809,0.25536,0.074904,0.068717,0.069748,-0.37881,0.376,0.10481,0.075935,0.064592,-0.36643 -0.20358,-0.20358,-0.22323,-0.18393,-0.26253,-0.16428,-0.20358,-0.20358,-0.20358,-0.066025,-0.085676,-0.20358,-0.18393,0.11083,0.16978,0.15013,0.091178,0.16978,0.26803,0.30733,0.26803,0.18943,0.18943,0.20908,0.26803 -0.30075,-0.1259,-0.1259,0.078103,0.25296,-0.21332,-0.18418,-0.1259,0.16553,0.25296,-0.0093257,-0.38818,-0.0093257,0.25296,0.25296,-0.1259,-0.21332,-0.0093257,0.25296,0.25296,-0.1259,-0.21332,-0.0093257,0.16553,0.25296 -0.12082,-0.12082,-0.27185,0.24165,0.36247,-0.060412,-0.18124,-0.18124,0.12082,0.27185,-0.18124,-0.12082,-0.12082,0.12082,0.21144,-0.12082,-0.18124,-0.15103,0.24165,0.36247,-0.21144,-0.21144,-0.030206,0.060412,0.27185 -0.17822,-0.17822,0.22856,0.22783,0.22856,-0.17858,-0.17696,-0.17895,0.22512,0.22783,-0.17877,-0.17678,-0.17171,0.22349,0.22729,-0.17804,-0.17696,-0.17714,0.22313,0.22819,-0.1784,-0.17696,-0.17605,0.21734,0.2244 0.28715,0.28835,-0.13126,-0.14083,-0.17071,0.28835,0.28955,-0.11931,-0.13963,-0.16593,0.29194,-0.11333,-0.12409,-0.13365,-0.16235,0.29074,-0.094204,-0.11214,-0.13963,-0.15517,0.29433,0.29313,-0.11931,-0.13844,-0.16354 0.33072,0.11038,0.045669,-0.2363,-0.21781,0.36769,0.08727,0.071862,-0.24862,-0.2024,0.27371,0.053373,0.039506,-0.25479,-0.20702,0.16585,0.08727,0.12425,-0.2779,0.053373,0.18126,0.11192,0.090352,-0.27482,-0.27482 0.97922,-0.038066,-0.040712,-0.040712,-0.050769,-0.035949,-0.029598,-0.038066,-0.039125,-0.056591,-0.032773,-0.032773,-0.033832,-0.047064,-0.053415,-0.032773,-0.035949,-0.040183,-0.047593,-0.045476,-0.032773,-0.039654,-0.0423,-0.046005,-0.047064 0.04187,0.15435,0.16583,0.10844,-0.25425,0.1291,0.13599,0.19108,-0.010927,-0.30246,0.12451,0.13599,0.19338,-0.31853,-0.34148,0.13599,0.11074,0.16583,-0.29557,-0.32082,0.13828,0.16353,0.14746,-0.093566,-0.30475 0.97104,-0.050629,0.013123,0.025874,-0.050956,0.016719,-0.049975,0.024566,-0.049975,-0.050139,-0.0521,-0.051446,-0.053245,-0.054062,-0.054062,-0.051446,-0.051446,-0.05537,-0.056023,-0.054062,-0.049158,-0.054716,-0.052754,-0.056841,-0.052918 0.1011,0.09868,0.1011,0.1023,0.10351,0.09868,0.10351,0.10351,0.099888,0.097472,0.097472,0.097472,0.099888,0.09868,0.09868,0.097472,0.097472,0.099888,0.1011,0.1011,-0.3882,-0.40149,-0.38095,-0.40994,-0.4184 0.18875,0.18875,0.19183,-0.20631,-0.20807,0.19227,0.18875,0.19095,-0.20675,-0.20763,0.19271,0.19624,0.19227,-0.20719,-0.20763,0.19448,0.19977,-0.21116,-0.20807,-0.20896,0.18742,0.1936,-0.21204,-0.20631,-0.20763 0.26951,0.20061,0.19283,0.024462,0.031701,0.29016,0.24753,0.19203,0.18881,0.031969,0.24726,0.23975,0.031433,0.03894,0.025803,-0.22381,-0.22622,-0.22568,-0.22568,-0.22622,-0.22327,-0.22568,-0.22622,-0.22568,-0.22434 0.097287,0.096236,0.097287,0.091679,0.09939,0.095184,0.092731,0.091679,0.089226,0.10745,0.089226,0.090628,0.11026,0.1078,0.10605,0.095535,0.11481,0.11341,0.1078,0.105,-0.40044,-0.40008,-0.39973,-0.39973,-0.39868 0.10217,0.11406,0.10811,0.10811,0.10811,0.20421,0.18737,0.13387,0.11901,0.11406,0.22007,0.21907,0.22106,0.21907,0.22205,-0.25252,-0.23568,-0.23172,-0.23172,-0.22379,-0.24063,-0.24261,-0.25252,-0.24856,-0.24063 -0.1481,-0.16324,-0.16408,-0.15819,-0.15567,-0.099315,-0.14642,-0.15399,-0.15314,-0.15062,-0.054738,-0.10941,-0.12791,-0.13464,-0.12455,0.15469,0.10339,0.094134,-0.1338,0.12105,0.1488,0.45496,0.37169,0.36749,0.3616 0.97373,-0.013522,-0.00055844,-0.0015557,0.0084165,-0.027483,-0.026486,-0.024492,-0.031472,-0.034464,-0.026486,-0.046431,-0.040447,-0.056403,-0.056403,-0.036458,-0.05042,-0.056403,-0.062386,-0.066375,-0.054408,-0.063383,-0.066375,-0.067372,-0.072358 0.12216,0.11347,0.10397,0.083595,0.081965,0.12271,0.093916,0.10044,0.084138,0.092015,0.099349,0.088212,0.08957,0.093373,0.12352,0.10016,0.090657,0.092286,0.10179,0.11918,-0.39989,-0.39881,-0.39962,-0.39799,-0.40017 -0.1286,-0.15585,-0.1286,-0.046864,-0.23759,-0.019617,-0.21034,-0.21034,-0.07411,-0.1286,-0.1286,-0.15585,-0.1831,-0.1286,-0.1831,0.089368,0.062122,0.007629,0.14386,0.089368,0.36183,0.36183,0.25285,0.38908,0.36183 0.24343,-0.14597,-0.14583,-0.1474,-0.14583,0.24429,0.24414,-0.14511,-0.14697,-0.14511,0.39712,0.39827,-0.14568,-0.1474,-0.14583,0.20214,0.20156,-0.14583,-0.14683,-0.14511,0.20414,0.20171,-0.14769,-0.14511,-0.14511 0.41822,0.42519,0.41822,0.40544,0.12078,-0.11623,-0.11391,-0.10229,0.17074,0.12659,-0.13831,-0.14063,-0.11855,-0.11855,-0.11739,-0.11042,-0.11274,-0.12204,-0.13133,-0.13482,-0.11623,-0.10926,-0.10694,-0.089508,-0.086023 0.059292,0.051813,0.059292,0.053309,-0.53154,0.071258,0.075746,0.07425,0.07425,-0.3685,0.098182,0.096686,0.099678,0.096686,-0.25931,0.11464,0.11613,0.11314,0.11912,-0.48068,0.13707,0.13258,0.14006,0.14156,-0.28473 0.28732,0.12627,-0.19584,-0.19584,-0.29247,0.25511,-0.034787,0.061844,0.029634,-0.26026,0.31953,0.12627,-0.034787,-0.13142,-0.3891,0.19069,0.19069,0.029634,0.061844,-0.32468,0.19069,0.094055,0.19069,-0.19584,-0.099208 -0.2203,-0.045804,0.17231,0.22684,0.28137,-0.20939,-0.045804,0.17231,0.25956,0.29227,-0.24211,-0.18758,0.01963,0.1614,0.11778,-0.29664,-0.24211,-0.12214,0.074159,0.21593,-0.2312,-0.20939,-0.24211,0.074159,0.22684 -0.455,-0.22046,-0.18343,-0.22046,-0.20195,-0.43648,-0.12171,-0.14023,-0.08468,-0.066164,-0.072336,0.06962,0.075792,0.10665,0.11282,0.13751,0.13751,0.18689,0.19306,0.17454,0.18689,0.2054,0.18689,0.22392,0.2054 0.96913,0.097397,-0.027313,-0.040895,-0.044599,-0.044599,-0.047069,-0.047069,-0.047069,-0.048303,-0.04213,-0.047069,-0.050773,-0.048303,-0.035956,-0.047069,-0.054477,-0.050773,-0.053242,-0.04213,-0.035956,-0.031017,-0.064355,-0.048303,-0.068059 0.97935,-0.037239,-0.032959,-0.031889,-0.036169,-0.037239,-0.032959,-0.038309,-0.037239,-0.037239,-0.036169,-0.04045,-0.037239,-0.04473,-0.04794,-0.034029,-0.039379,-0.04794,-0.04045,-0.04473,-0.0458,-0.04901,-0.053291,-0.053291,-0.04366 0.97959,-0.043971,-0.047368,-0.046883,-0.047854,-0.032808,-0.037662,-0.044942,-0.044942,-0.046398,-0.038147,-0.036206,-0.042515,-0.045427,-0.041059,-0.038147,-0.039603,-0.040574,-0.037662,-0.036691,-0.037662,-0.039603,-0.040088,-0.038632,-0.03475 0.11909,0.10591,0.095545,0.088952,0.080475,0.12003,0.10591,0.095545,0.086126,0.080475,0.12003,0.11062,0.10214,0.093661,0.080475,0.12286,0.11532,0.099313,0.088952,0.084242,-0.40836,-0.40083,-0.40271,-0.38482,-0.39895 -0.057277,-0.052238,-0.052238,-0.023684,-0.019904,-0.053078,-0.049299,-0.051398,-0.045939,-0.016125,-0.050139,-0.050139,-0.04468,-0.033342,-0.017805,-0.04132,-0.038381,-0.036701,-0.033342,-0.032502,-0.069035,-0.035861,-0.035021,-0.038381,0.97783 0.090884,0.090884,0.106,0.10043,0.10361,0.095658,0.090884,0.094067,0.09884,0.10043,0.094067,0.095658,0.09884,0.106,0.10839,0.094067,0.10043,0.10998,0.10998,0.10998,-0.3952,-0.39679,-0.40077,-0.39997,-0.40634 0.97962,-0.034488,-0.039962,-0.03905,-0.043156,-0.034488,-0.034488,-0.03905,-0.03905,-0.041331,-0.041331,-0.039962,-0.038137,-0.03905,-0.040875,-0.042243,-0.043612,-0.041787,-0.037681,-0.037225,-0.04498,-0.046349,-0.049086,-0.046349,-0.045893 0.97971,-0.038959,-0.039878,-0.039326,-0.039694,-0.039326,-0.039694,-0.037303,-0.041534,-0.040062,-0.038959,-0.042454,-0.039143,-0.040614,-0.043558,-0.04043,-0.040798,-0.039143,-0.041718,-0.046134,-0.036015,-0.039143,-0.04227,-0.046134,-0.047421 0.21837,0.25314,-0.025036,-0.12935,-0.1989,0.32269,0.11405,0.25314,-0.12935,-0.30322,0.079281,0.25314,0.079281,-0.33799,-0.23367,0.21837,0.21837,0.079281,-0.12935,-0.1989,0.079281,-0.025036,0.0097363,-0.12935,-0.33799 0.97972,-0.042133,-0.044101,-0.042789,-0.043445,-0.038526,-0.03787,-0.043773,-0.042789,-0.040822,-0.039182,-0.041477,-0.042461,-0.043773,-0.043117,-0.041805,-0.040494,-0.041477,-0.043445,-0.039838,-0.034263,-0.038526,-0.038526,-0.039182,-0.035903 0.97964,-0.039938,-0.042647,-0.04373,-0.039396,-0.032353,-0.035062,-0.042105,-0.04048,-0.04048,-0.042105,-0.043189,-0.042105,-0.04373,-0.041022,-0.037771,-0.037229,-0.037771,-0.04373,-0.045356,-0.035604,-0.037229,-0.044814,-0.04373,-0.048064 0.19741,0.23281,-0.24726,-0.24441,-0.24505,0.18888,0.23376,-0.16888,-0.16572,-0.23936,0.19046,0.24261,-0.16793,-0.1654,-0.16414,0.19552,0.22617,0.20057,-0.16635,-0.16477,0.18604,0.18351,0.19267,-0.16825,-0.16288 0.97534,-0.036693,-0.012451,-0.061258,-0.062551,-0.0072791,-0.016006,-0.048976,-0.05738,-0.061258,-0.037339,-0.02538,-0.049622,-0.050915,-0.065783,-0.032814,-0.0011378,-0.03443,-0.051561,-0.069016,-0.033137,-0.012451,-0.041541,-0.047683,-0.058672 0.10122,0.096249,0.096249,0.096249,0.098236,0.098236,0.096249,0.093269,0.096249,0.10022,0.10519,0.096249,0.10221,0.10122,0.096249,0.10618,0.10618,0.10618,0.10618,0.10122,-0.39354,-0.3995,-0.40646,-0.39354,-0.40646 -0.12933,-0.14832,-0.06761,-0.072358,0.37394,-0.12458,-0.12933,-0.072358,-0.024879,0.38819,-0.11984,-0.14832,-0.096097,-0.039123,0.41193,-0.14358,-0.13883,-0.081854,-0.053366,0.40243,-0.15782,-0.11984,-0.09135,-0.0011395,0.38344 0.97693,-0.014065,-0.04464,-0.050035,-0.012266,-0.026654,-0.026654,-0.053632,-0.046438,-0.010467,-0.021259,-0.051834,-0.050035,-0.055431,-0.04464,-0.01946,-0.046438,-0.05633,-0.04464,-0.063524,-0.037446,-0.037446,-0.055431,-0.058129,-0.050035 0.97956,-0.045267,-0.045267,-0.046196,-0.040622,-0.045267,-0.04248,-0.04248,-0.041551,-0.040622,-0.024826,-0.035976,-0.035976,-0.039693,-0.04248,-0.039693,-0.039693,-0.04248,-0.041551,-0.04248,-0.039693,-0.037834,-0.037834,-0.04248,-0.047126 -0.064242,-0.13724,-0.064242,0.10001,0.33727,-0.17375,-0.11899,-0.17375,0.027011,0.51978,-0.11899,-0.17375,-0.064242,0.027011,0.37377,-0.17375,-0.11899,-0.11899,-0.0094903,0.28252,-0.17375,-0.11899,-0.17375,-0.0094903,0.31902 0.081621,0.078602,-0.1659,-0.21721,-0.22627,0.084639,0.090676,0.17218,-0.2157,-0.22627,0.10577,0.12539,0.2084,-0.20967,-0.22929,0.22047,0.22802,0.23255,-0.22023,-0.23381,0.25217,0.24764,0.26273,-0.21419,-0.2323 0.97954,-0.044206,-0.035034,-0.044206,-0.036181,-0.035034,-0.043059,-0.043059,-0.046499,-0.036181,-0.036181,-0.040767,-0.041913,-0.046499,-0.046499,-0.030449,-0.041913,-0.041913,-0.045352,-0.044206,-0.031595,-0.03962,-0.045352,-0.040767,-0.043059 0.34597,-0.071797,-0.12847,-0.13242,-0.13242,0.3486,-0.066526,-0.12715,-0.12188,-0.12319,0.35651,0.35651,-0.12319,-0.12319,-0.12715,0.35651,-0.065208,-0.12319,-0.12451,-0.12188,0.35915,-0.058619,-0.11792,-0.1166,-0.11792 0.1946,0.19525,0.14669,-0.32949,-0.29887,0.14822,0.1456,0.067073,-0.32796,-0.32796,0.14757,0.15435,0.067292,0.063573,-0.32818,0.14975,0.11651,0.071666,0.064229,-0.29734,0.15566,0.11432,0.12373,0.079322,-0.29559 -0.28426,-0.16964,-0.25561,-0.28426,-0.25561,-0.31292,-0.11233,-0.16964,-0.083673,-0.055018,-0.083673,-0.026363,0.0022924,0.088258,0.11691,0.088258,0.030948,0.17422,0.20288,0.059603,0.20288,0.20288,0.20288,0.23153,0.48943 -0.27908,-0.27908,0.16077,0.11305,0.12723,-0.29456,-0.25328,0.20076,0.12594,0.13884,-0.26876,-0.086887,0.20463,0.1569,0.18399,-0.28295,-0.11397,0.21495,0.19689,0.17754,-0.27908,-0.12945,-0.10237,0.20076,0.16722 0.97352,-0.0029227,-0.039456,-0.067687,-0.092596,-0.064366,-0.012886,-0.034474,-0.039456,-0.094257,-0.056063,-0.026171,-0.012886,-0.024511,-0.064366,-0.036135,-0.052741,-0.042778,-0.014547,-0.044438,-0.037796,-0.027832,-0.037796,-0.024511,-0.02285 0.16807,-0.08135,-0.17728,-0.13891,-0.13891,0.18726,0.11051,-0.19647,-0.19647,-0.13891,0.35993,0.11051,-0.11972,-0.17728,-0.023791,0.35993,0.052954,-0.08135,-0.11972,-0.11972,0.51342,0.24482,-0.023791,-0.15809,-0.21565 -0.094268,-0.045509,-0.090205,-0.041446,-0.004876,0.043884,-0.1349,-0.069889,0.035757,0.035757,0.05201,-0.025192,-0.1349,-0.10646,-0.073952,-0.021129,0.015441,-0.004876,-0.11458,-0.15928,0.93375,-0.029256,-0.004876,0.035757,0.0032506 -0.26803,-0.16997,-0.16997,-0.30071,-0.26803,-0.16997,-0.039223,-0.16997,-0.1046,-0.071909,-0.1046,-0.23534,0.12421,0.026149,-0.071909,0.12421,0.15689,-0.0065372,0.058835,0.12421,0.32032,0.28764,0.32032,0.22226,0.3857 -0.056789,-0.056072,-0.055355,-0.018089,-0.006622,-0.058222,-0.058939,-0.051055,-0.018805,-0.023105,-0.061089,-0.051772,-0.037439,-0.015222,-0.017372,-0.065389,-0.044605,-0.026689,-0.017372,-0.023822,-0.066822,-0.063955,-0.060372,-0.020239,0.97521 0.12832,0.10657,0.10415,0.0998,-0.35366,0.12687,0.1143,0.10463,0.096899,-0.35414,0.11817,0.094966,0.1056,0.092065,-0.35511,0.1114,0.11527,0.10415,0.096416,-0.35511,0.16361,0.13606,0.11044,-0.35656,-0.35511 0.97963,-0.031366,-0.035217,-0.035217,-0.044461,-0.04138,-0.04292,-0.041765,-0.04292,-0.043691,-0.04215,-0.04292,-0.044076,-0.043305,-0.044076,-0.042535,-0.042535,-0.041765,-0.043305,-0.042535,-0.031751,-0.039069,-0.043305,-0.037913,-0.039454 0.083432,0.082401,0.086525,0.19495,0.2026,0.082401,0.085151,0.21566,0.21351,0.21325,0.1379,0.1379,0.21858,0.21678,0.21471,-0.23807,-0.23816,-0.2385,-0.23824,-0.23824,-0.23884,-0.23893,-0.23884,-0.23936,-0.23859 0.97404,-0.031891,-0.035828,-0.041733,-0.022048,-0.051576,-0.016142,-0.025985,-0.025985,-0.014174,-0.010236,-0.020079,-0.025985,-0.024016,-0.053545,-0.024016,-0.031891,-0.041733,-0.039765,-0.069293,-0.069293,-0.055513,-0.067324,-0.08701,-0.088978 0.97963,-0.038444,-0.032809,-0.036566,-0.049714,-0.040322,-0.034687,-0.036566,-0.045331,-0.04721,-0.039696,-0.03907,-0.040322,-0.041575,-0.044705,-0.044079,-0.042201,-0.037818,-0.042201,-0.040322,-0.039696,-0.041575,-0.042201,-0.040322,-0.042201 0.32562,-0.10187,-0.12874,-0.1319,-0.13348,0.33905,-0.10266,-0.1153,-0.12716,-0.13506,0.32325,-0.1074,-0.1074,-0.12953,-0.13269,0.32483,0.27584,-0.11609,-0.13269,-0.14296,0.34458,0.30507,-0.12241,-0.12953,-0.14138 0.97636,-0.062578,-0.065449,-0.064875,-0.057409,-0.013761,-0.021227,-0.056835,-0.053963,-0.049368,-0.012038,-0.0080175,-0.044774,-0.049368,-0.051666,-0.016058,-0.020652,-0.0442,-0.044774,-0.045922,-0.032139,-0.028693,-0.045348,-0.043625,-0.043625 0.35359,0.46841,0.44745,0.50224,0.14156,-0.093328,-0.093089,-0.092137,-0.099045,-0.097616,-0.096425,-0.097139,-0.096663,-0.094995,-0.094757,-0.094042,-0.096186,-0.095472,-0.096186,-0.096186,-0.09571,-0.095233,-0.096186,-0.095948,-0.096901 0.12186,0.12319,0.12064,-0.26263,-0.26086,0.11975,0.12042,0.11997,-0.25787,-0.26041,0.11798,0.11853,0.11942,-0.26218,-0.26152,0.11709,0.11366,0.26748,-0.26108,-0.26119,0.14245,0.26681,0.21233,0.14788,-0.26174 -0.28946,-0.34066,-0.25533,-0.3236,-0.3236,0.051885,-0.016385,-0.033452,-0.16999,-0.16999,0.051885,0.12015,0.034817,-0.016385,-0.067587,0.10309,0.20549,0.17136,0.00068269,0.00068269,0.29083,0.3591,0.22256,0.29083,0.10309 0.096875,0.098119,0.097981,0.10379,0.11761,0.10199,0.099225,0.09107,0.090931,0.092867,0.11761,0.094802,0.091761,0.090517,0.091761,0.12245,0.094387,0.09259,0.090793,0.12065,-0.39991,-0.40019,-0.39922,-0.40033,-0.39812 0.091394,0.096935,0.090968,0.084573,0.090968,0.10248,0.097788,0.095657,0.095657,0.10035,0.099919,0.10205,0.10503,0.10376,0.096935,0.10503,0.10844,0.1191,0.111,0.10077,-0.3984,-0.39712,-0.4001,-0.40181,-0.40138 0.35243,0.22656,0.35243,0.25174,0.4783,0,0.10069,0.050347,0.10069,0.17622,-0.075521,-0.17622,-0.075521,-0.050347,-0.025174,-0.22656,-0.17622,-0.22656,-0.12587,-0.12587,-0.12587,-0.25174,-0.15104,-0.10069,-0.17622 0.19341,0.19083,-0.19909,-0.20361,-0.21394,0.19535,0.19018,0.18502,-0.20684,-0.21329,0.1947,0.1947,0.18631,-0.2049,-0.21007,0.19341,0.19018,-0.20748,-0.20942,-0.20684,0.19664,0.19535,0.19147,-0.21007,-0.212 0.96828,-0.022383,-0.03486,-0.017393,-0.014897,-0.0086589,-0.037979,-0.022383,-0.019888,-0.021136,-0.026126,-0.026126,-0.024879,-0.01864,-0.01864,-0.03486,-0.030493,-0.021136,-0.022383,-0.088511,-0.087887,-0.1066,-0.092878,-0.056071,-0.11346 0.2762,0.27896,0.27482,0.43255,0.63495,-0.092475,-0.092475,-0.096887,-0.099645,-0.098266,-0.091924,-0.093027,-0.093303,-0.093303,-0.093578,-0.093578,-0.095509,-0.094406,-0.094957,-0.094681,-0.09606,-0.095233,-0.09606,-0.095784,-0.096336 0.97887,-0.026412,-0.039888,-0.047973,-0.052824,-0.028029,-0.03288,-0.041505,-0.047973,-0.054441,-0.029646,-0.034498,-0.041505,-0.046356,-0.05498,-0.029646,-0.03288,-0.039888,-0.045817,-0.051207,-0.030185,-0.033958,-0.039349,-0.044739,-0.052285 0.97966,-0.036799,-0.037646,-0.036799,-0.040185,-0.035953,-0.040185,-0.039338,-0.037646,-0.035953,-0.037646,-0.042724,-0.037646,-0.04357,-0.044416,-0.039338,-0.042724,-0.042724,-0.045263,-0.045263,-0.041031,-0.042724,-0.048648,-0.042724,-0.042724 0.15151,0.15151,0.19455,0.1802,0.25194,0.15151,0.16585,0.1802,0.15151,0.16585,0.094117,0.12281,0.10846,0.15151,0.15151,-0.3363,-0.23587,-0.23587,-0.27891,-0.3363,-0.25021,-0.20717,-0.16413,-0.12109,-0.20717 0.26434,0.27637,-0.16512,-0.16955,-0.054588,0.26212,0.26054,-0.16512,-0.16702,-0.053321,0.27099,0.25515,-0.16417,-0.16924,-0.15752,0.26434,0.2561,-0.16417,-0.16607,-0.15593,0.26339,-0.16575,-0.16448,-0.1629,-0.12838 0.36202,0.37319,-0.11323,-0.11775,-0.11589,0.34262,-0.098081,-0.10685,-0.11775,-0.11403,0.36442,-0.099144,-0.11616,-0.11748,-0.11908,0.3482,-0.099144,-0.11722,-0.11483,-0.11748,0.34289,-0.096486,-0.11748,-0.11589,-0.11935 -0.17561,-0.17636,0.17807,0.17807,0.17852,-0.17524,-0.17606,-0.17778,0.17867,0.1783,-0.17487,-0.17584,-0.17681,0.26928,0.25349,-0.17127,-0.17584,-0.17748,0.26905,0.24945,-0.17105,-0.17621,-0.17756,0.27122,0.25387 -0.19372,-0.18292,0.11954,0.17355,0.31758,-0.19372,-0.17211,0.040328,0.29958,0.36439,-0.19372,-0.15771,-0.1109,0.34639,0.19876,-0.19372,-0.16491,-0.17211,0.11234,0.15195,-0.17571,-0.18652,-0.18292,-0.013683,0.16995 -0.15047,-0.16383,-0.16001,-0.16383,-0.27649,-0.16383,-0.16192,-0.16383,-0.16574,-0.24212,-0.16574,0.23907,-0.15619,-0.15238,-0.17338,0.21806,0.22379,0.2257,0.22952,0.22188,0.21997,0.21615,0.22761,0.21806,0.21997 0.052208,0.18676,0.18676,0.18676,-0.25189,0.079119,0.17869,0.17869,-0.17654,-0.30033,0.089883,0.17062,0.176,-0.25189,-0.28687,0.08181,0.18676,0.16793,-0.29495,-0.28687,0.15447,0.13832,0.13025,-0.2169,-0.2788 -0.171,-0.14132,-0.052252,0.24463,0.036814,-0.26007,-0.23038,0.12588,0.24463,0.24463,-0.23038,-0.171,0.036814,0.3337,0.12588,-0.20069,-0.23038,-0.022563,0.15557,0.15557,-0.26007,-0.28976,0.066502,0.27432,0.21494 -0.13182,-0.096764,-0.085078,-0.038332,0.18955,-0.14935,-0.13182,-0.085078,0.002571,0.39407,-0.16104,-0.14935,-0.11429,0.020101,0.4116,-0.13182,-0.10845,-0.079234,-0.0032722,0.46419,-0.14935,-0.13767,-0.096764,-0.067548,0.43497 -0.098243,-0.098243,-0.098243,-0.097731,-0.098243,-0.097475,-0.097475,-0.097731,-0.098243,-0.097731,-0.096836,-0.096708,-0.096964,-0.09658,-0.097475,-0.09722,-0.096836,-0.096836,-0.096708,-0.096708,0.21056,0.48648,0.48725,0.38197,0.38197 -0.33285,-0.11909,0.19391,0.15574,0.1023,-0.33285,-0.25651,0.19391,0.13284,0.11757,-0.30995,-0.096192,0.17864,0.11757,0.11757,-0.35576,0.048859,0.15574,0.13284,0.13284,-0.31759,-0.14963,0.17864,0.15574,0.15574 -0.22056,-0.22153,0.14457,0.18219,0.14408,-0.21719,-0.22201,0.14312,0.14698,0.14505,-0.22105,-0.22587,0.14119,0.15904,0.15132,-0.22442,-0.22587,0.15759,0.23428,0.24103,-0.22491,-0.22346,-0.22828,0.22849,0.23621 0.11986,0.12439,0.10695,0.053247,0.060919,0.12439,0.11393,0.12021,0.063361,0.072079,0.12509,0.10137,0.12021,0.12858,0.069987,0.11811,0.091609,0.13102,0.072428,0.068243,-0.39559,-0.39559,-0.39559,-0.39838,-0.40082 0.63855,0.32686,0.32807,0.30956,0.3135,-0.094098,-0.094856,-0.095312,-0.095312,-0.095008,-0.095767,-0.095919,-0.095463,-0.095767,-0.096374,-0.095767,-0.095615,-0.096981,-0.096526,-0.096526,-0.09607,-0.096374,-0.095919,-0.096829,-0.09607 0.97955,-0.030235,-0.038388,-0.046541,-0.046541,-0.0314,-0.04887,-0.036059,-0.040718,-0.039553,-0.044212,-0.043047,-0.038388,-0.039553,-0.044212,-0.036059,-0.045376,-0.044212,-0.044212,-0.039553,-0.037224,-0.040718,-0.038388,-0.044212,-0.041882 0.3008,0.38038,0.18144,0.28091,0.12175,0.16154,0.20133,0.18144,0.22122,0.18144,-0.017507,0.10186,-0.25624,-0.13687,-0.21645,-0.25624,-0.15677,-0.037401,-0.17666,-0.15677,-0.15677,-0.15677,-0.23634,-0.17666,-0.17666 0.14055,0.24657,0.25507,0.26357,0.25952,0.14257,0.14986,0.25709,0.25992,0.25547,0.21824,-0.17266,-0.17307,-0.17549,-0.17549,-0.17226,-0.17307,-0.17509,-0.1763,-0.17711,-0.17307,-0.17711,-0.1763,-0.1763,-0.17509 0.35869,-0.1101,-0.11208,-0.11282,-0.11208,0.35918,-0.11109,-0.11282,-0.11134,-0.1106,0.35474,-0.11257,-0.11356,-0.11232,-0.11208,0.354,-0.11232,-0.11306,-0.11232,-0.11405,0.35598,0.35277,-0.11356,-0.11282,-0.1138 -0.27818,-0.24411,-0.24898,-0.23925,-0.14678,-0.21491,-0.19545,-0.21978,-0.18085,-0.10298,-0.083512,-0.10298,0.004088,-0.034846,0.31556,0.10142,0.17442,0.16469,0.26202,0.28636,0.16469,0.13062,0.16469,0.24256,0.28149 -0.32318,-0.32318,-0.32318,-0.36571,-0.36571,-0.089301,-0.089301,-0.089301,-0.068039,-0.068039,0.10206,0.10206,0.038272,0.10206,0.038272,0.29342,0.22963,0.22963,0.16584,0.22963,0.10206,0.14458,0.01701,0.14458,0.16584 -0.18924,-0.20537,-0.21229,-0.20307,-0.21689,-0.19846,-0.20768,-0.21689,-0.20537,-0.20537,0.10573,0.10573,0.11495,-0.17311,-0.18002,0.14721,0.16564,0.18869,0.19791,0.34078,0.16795,0.16564,0.18638,0.20252,0.32465 0.15117,0.12728,0.12361,-0.20985,-0.23373,0.13831,0.12269,0.15117,-0.2172,-0.23373,0.12637,0.23568,0.24946,-0.22363,-0.2273,0.12177,0.22925,0.25405,-0.21169,-0.2319,0.15025,0.24946,-0.20709,-0.20801,-0.22639 -0.13654,-0.13519,-0.14191,-0.1446,-0.14057,-0.12713,-0.13519,-0.12847,-0.12982,-0.13519,-0.1016,-0.10832,-0.11638,-0.11638,-0.12041,0.36876,-0.045154,-0.050529,-0.049186,-0.047842,0.34457,0.36069,0.32979,0.3486,0.35801 -0.15779,-0.15969,-0.16263,0.397,0.20085,-0.15885,-0.15948,-0.16158,0.37617,0.19916,-0.16011,-0.158,-0.15948,0.20463,0.20127,-0.15779,-0.15863,-0.15927,0.20548,0.19874,-0.1559,-0.15611,-0.15527,0.19874,0.19853 0.09962,0.1034,0.10232,0.10178,0.10232,0.096382,0.088825,0.098541,0.10178,0.09962,0.086666,0.088285,0.10178,0.10448,0.1061,0.083427,0.092063,0.1115,0.11527,0.11419,-0.38887,-0.39913,-0.40453,-0.40776,-0.39805 0.1876,-0.14873,-0.14722,-0.1442,-0.14144,0.1881,0.36506,-0.1447,-0.1437,-0.14345,0.21223,0.20896,-0.14546,-0.14144,-0.14043,0.36481,0.21173,-0.14772,-0.14144,-0.14194,0.37838,0.21499,-0.15375,-0.153,-0.15325 -0.048561,-0.039971,-0.035676,-0.031381,-0.032813,-0.061445,-0.055719,-0.049992,-0.037108,-0.034244,-0.06574,-0.058582,-0.044266,-0.037108,-0.015633,-0.051424,-0.045697,-0.037108,-0.02136,-0.035676,-0.047129,-0.042834,-0.02995,-0.018497,0.97791 -0.25039,-0.23818,0.19238,0.19451,0.10654,-0.24006,-0.24025,0.19031,0.19277,0.11584,-0.23457,-0.23941,0.18973,0.19199,0.11364,-0.25039,-0.23928,0.18973,0.17068,0.10667,-0.25104,-0.24032,0.18999,0.1699,0.10919 0.18695,0.17635,0.099513,0.094215,-0.21312,0.19224,0.20019,0.19489,-0.17073,-0.22902,0.20814,0.1737,0.19224,-0.21577,-0.25551,0.18695,0.18165,-0.17868,-0.22372,-0.24492,0.18695,0.179,-0.22637,-0.23962,-0.25551 -0.40242,-0.33107,-0.37864,-0.33107,-0.37864,0.025686,-0.093232,-0.069448,-0.021881,-0.045665,0.097037,0.23974,0.12082,0.073254,0.1446,0.097037,0.097037,0.21596,0.16839,0.16839,0.12082,0.097037,0.073254,0.097037,0.21596 -0.20552,-0.20469,-0.20436,-0.20387,-0.20436,-0.20453,-0.20585,-0.20486,-0.20354,-0.20453,-0.20321,-0.20469,0.11132,0.10967,0.22391,0.10967,0.11412,0.22737,0.22011,0.22127,0.21814,0.22539,0.2305,0.22341,0.21913 -0.33625,-0.015673,-0.051293,0.091187,0.51863,-0.19377,-0.26501,-0.051293,0.12681,0.26929,-0.19377,-0.12253,-0.12253,0.055567,0.26929,-0.15815,-0.19377,0.019947,0.091187,0.30491,-0.086913,-0.12253,-0.051293,-0.051293,0.26929 0.97943,-0.030319,-0.031933,-0.048072,-0.045382,-0.043768,-0.039465,-0.04592,-0.048072,-0.038389,-0.041616,-0.052913,-0.037313,-0.044306,-0.037313,-0.036775,-0.04592,-0.029781,-0.042154,-0.037313,-0.036775,-0.039465,-0.04054,-0.044844,-0.041078 -0.21049,-0.17209,-0.1516,0.19745,0.2222,-0.21049,-0.16099,-0.16014,0.20769,0.23074,-0.21476,-0.18916,0.19916,0.19745,0.22305,-0.21049,-0.20196,-0.21647,0.19233,0.19916,-0.1994,-0.18916,0.1838,0.21537,0.21879 0.37591,0.27997,0.14774,0.027173,-0.075244,0.29942,0.16459,0.081622,-0.041537,-0.20618,0.26182,0.12829,0.019394,-0.072651,-0.24767,0.15552,0.063472,-0.070058,-0.19192,-0.31638,0.076437,-0.04413,-0.12969,-0.3073,-0.3786 -0.15088,-0.15209,-0.15233,-0.14944,-0.14655,-0.15305,-0.15281,-0.15401,-0.14366,-0.14221,-0.15546,-0.15353,-0.15498,-0.13884,-0.14005,0.26452,-0.1492,0.29052,0.26139,0.20841,0.29486,0.2951,0.29101,0.2662,0.21708 0.36381,0.29572,-0.027568,-0.096634,-0.43021,0.32119,0.22518,-0.0020965,-0.075571,-0.33175,0.22323,0.069909,0.0037815,-0.068224,-0.4258,0.072848,0.072848,0.057663,-0.079,-0.13925,0.070888,0.058153,0.051295,-0.074102,-0.13631 -0.053482,-0.0473,-0.043437,-0.015619,-0.022316,-0.053482,-0.046013,-0.036225,-0.040088,-0.040088,-0.054512,-0.038801,-0.038801,-0.041376,-0.041891,-0.053997,-0.050391,-0.039573,-0.036998,-0.021286,-0.048073,-0.044725,-0.039316,-0.030816,0.97861 -0.047288,-0.052276,-0.069735,-0.074723,-0.059759,-0.02983,-0.0098767,-0.049782,-0.074723,-0.057265,-0.054771,-0.059759,-0.067241,-0.049782,0.015064,-0.054771,-0.067241,-0.034818,-0.0023943,0.030029,-0.044794,-0.012371,-0.039806,-0.0023943,0.97031 -0.20291,-0.17676,0.08472,0.18931,0.032424,-0.28136,-0.019873,0.058572,0.18931,0.0062756,-0.3598,-0.12447,-0.019873,0.16317,0.26776,-0.3598,-0.12447,-0.019873,0.18931,0.29391,-0.22906,-0.17676,0.11087,0.13702,0.37235 0.16232,0.1163,0.17884,-0.1905,-0.21646,0.20598,0.17648,0.20952,-0.18106,-0.21528,0.1753,0.193,0.19536,-0.20466,-0.20584,0.20362,0.20362,-0.21292,-0.19758,-0.22708,0.23549,0.22604,-0.20938,-0.20584,-0.21528 -0.26531,-0.27044,-0.26531,-0.26673,-0.2673,-0.26987,-0.26502,-0.26218,0.1414,-0.26645,0.15023,0.14852,0.14909,0.1414,0.1471,0.16333,0.14795,0.1471,0.14397,0.14539,0.17587,0.1528,0.14795,0.14511,0.15137 0.21543,0.16237,-0.156,-0.12947,-0.10294,0.24197,0.13584,-0.10294,0.029715,-0.26213,0.21543,0.24197,-0.023348,0.0031838,-0.28866,0.37462,0.082778,0.029715,0.0031838,-0.28866,0.1889,0.21543,-0.20907,-0.34172,-0.2356 0.45665,-0.15148,-0.12384,-0.11002,-0.096195,0.38754,-0.096195,-0.1653,-0.11002,-0.096195,0.49811,-0.054732,-0.15148,-0.15148,-0.027089,0.30462,-0.082374,-0.096195,-0.096195,-0.068553,0.2908,-0.054732,-0.096195,-0.068553,-0.040911 0.9797,-0.041698,-0.043679,-0.04665,-0.045907,-0.042441,-0.042193,-0.044421,-0.045412,-0.045412,-0.039964,-0.041202,-0.038726,-0.038726,-0.039222,-0.038479,-0.038479,-0.037984,-0.039469,-0.038479,-0.038479,-0.037736,-0.038231,-0.038726,-0.037984 0.14815,0.14621,0.1433,-0.29123,-0.29188,0.14734,0.14475,0.14281,-0.29139,-0.29139,0.11517,0.14685,0.14621,-0.29026,-0.29091,0.1197,0.14815,0.14685,0.11242,-0.29026,0.14556,0.15316,0.11242,0.1087,-0.29042 0.97976,-0.038007,-0.03764,-0.040578,-0.040946,-0.040578,-0.038007,-0.04168,-0.042782,-0.042782,-0.03764,-0.040211,-0.040946,-0.040578,-0.042782,-0.038742,-0.040946,-0.042048,-0.042048,-0.043884,-0.042048,-0.040946,-0.040211,-0.040211,-0.043517 0.89029,0.26472,0.08363,0.050705,0.001317,0.067167,-0.048071,-0.048071,-0.097458,-0.015146,0.001317,-0.064533,-0.11392,-0.11392,-0.11392,-0.064533,-0.048071,-0.097458,-0.048071,-0.097458,-0.048071,-0.048071,-0.097458,-0.048071,-0.14685 0.35528,0.35868,-0.1125,-0.11347,-0.1125,0.35771,-0.11024,-0.11202,-0.11347,-0.11315,0.36808,-0.11153,-0.11266,-0.1125,-0.1125,0.36808,-0.11169,-0.11202,-0.11315,-0.11299,0.3263,-0.11072,-0.11153,-0.1125,-0.11299 -0.031369,-0.068129,-0.031369,-0.080382,-0.080382,-0.092636,-0.14165,-0.068129,-0.1294,-0.080382,-0.16616,-0.17841,-0.10489,-0.19066,-0.17841,-0.019115,-0.068129,-0.11714,-0.0068619,-0.10489,0.36074,0.34849,0.3975,0.42201,0.40975 -0.16084,-0.083012,-0.10895,-0.10895,-0.18678,-0.23866,-0.16084,-0.057071,-0.083012,-0.18678,-0.13489,0.020753,-0.031129,-0.057071,-0.10895,-0.0051882,-0.0051882,-0.13489,-0.0051882,-0.031129,0.28017,0.33205,0.43581,0.33205,0.4877 -0.23356,-0.21994,-0.21238,-0.21389,-0.21011,-0.22751,-0.22675,-0.21768,-0.21994,-0.21843,0.19674,0.18011,0.17859,0.20884,-0.21238,0.19901,0.19296,0.19523,0.20582,0.023564,0.19977,0.20128,0.2043,0.20809,0.018271 0.97971,-0.038239,-0.038872,-0.042665,-0.040136,-0.031917,-0.038872,-0.043298,-0.04393,-0.042033,-0.036975,-0.041401,-0.040136,-0.042033,-0.040136,-0.042665,-0.042033,-0.042033,-0.040136,-0.04393,-0.038872,-0.042033,-0.039504,-0.04393,-0.04393 0.97976,-0.040522,-0.042207,-0.042809,-0.042448,-0.036911,-0.037272,-0.039559,-0.042809,-0.042809,-0.037152,-0.037633,-0.040763,-0.042448,-0.042448,-0.0398,-0.041124,-0.042328,-0.040522,-0.041244,-0.041606,-0.042448,-0.040522,-0.040763,-0.041606 0.077037,0.062932,0.056484,0.046409,-0.39245,0.078246,0.08147,0.14232,0.14716,-0.39165,0.080664,0.096381,0.14313,0.14796,-0.39648,0.076231,0.085903,0.16167,0.15038,-0.39407,0.060917,0.058902,0.059305,0.15522,-0.39407 0.51943,0.11253,0.046336,-0.19508,-0.19118,0.50775,0.021026,-0.035433,-0.12694,-0.16977,0.17678,0.10474,-0.074371,-0.1795,-0.1795,0.1612,0.16899,-0.14446,-0.20676,-0.16977,0.12032,0.10474,-0.13083,-0.17366,-0.066584 0.31271,0.45326,0.36542,0.34785,0.40056,0.014055,-0.091355,-0.16163,-0.073786,-0.056218,-0.073786,-0.021082,-0.056218,0.049191,-0.0035136,-0.073786,-0.12649,-0.12649,-0.14406,-0.16163,-0.19676,-0.2319,-0.091355,-0.056218,-0.19676 -0.11663,-0.13889,-0.094372,0.039173,0.37304,-0.11663,-0.094372,-0.11663,0.016916,0.28401,-0.11663,-0.22792,-0.16115,0.15046,0.30627,-0.22792,-0.22792,-0.094372,-0.0053418,0.43981,-0.11663,-0.20566,-0.049857,0.21723,0.28401 0.096546,0.096546,0.095887,0.088637,0.080069,0.1038,0.098524,0.096546,0.089296,0.093251,0.11105,0.11105,0.097205,0.097205,0.096546,0.12027,0.11896,0.10577,0.10248,0.098524,-0.39976,-0.3991,-0.40108,-0.3991,-0.3991 -0.39731,-0.11273,0.103,0.12136,0.13054,-0.4019,-0.19076,0.103,0.11677,0.11218,-0.36977,-0.0025704,0.13054,0.13054,0.13054,-0.33305,0.11677,0.13054,0.12595,0.1489,-0.33305,0.11677,0.12595,0.14431,0.15349 0.28599,0.20428,0.24513,0.20428,0.20428,0.31322,0.19066,0.23151,0.19066,0.054473,0.08171,-0.08171,-0.054473,0,-0.013618,-0.19066,-0.3677,-0.16342,-0.25875,-0.19066,-0.19066,-0.1498,-0.25875,-0.24513,-0.040855 0.3971,0.1347,0.090966,-0.1277,-0.2589,0.30963,0.2003,0.025366,-0.10584,-0.21517,0.30963,0.24403,-0.083969,-0.1933,-0.34637,-0.083969,0.17843,0.025366,-0.17144,-0.21517,0.11283,0.0034987,0.1347,-0.1277,-0.23704 -0.1124,-0.19566,-0.17485,-0.049957,-0.13322,-0.21648,-0.091587,-0.1124,-0.049957,-0.1124,-0.029141,-0.091587,-0.13322,-0.0083261,-0.091587,0.17901,-0.091587,-0.13322,-0.029141,-0.13322,0.47043,0.47043,0.34553,0.3039,0.22064 0.1253,0.11218,0.094287,0.082358,0.079972,0.13007,0.10622,0.097865,0.089515,0.079972,0.12649,0.10979,0.10025,0.087129,0.0752,0.1253,0.11099,0.099058,0.088322,0.072815,-0.41985,-0.38526,-0.39122,-0.39719,-0.39957 -0.11875,-0.0875,-0.0875,-0.24375,-0.2125,-0.18125,-0.2125,-0.05625,-0.30625,-0.15,-0.0875,-0.18125,0.00625,-0.0875,-0.0875,0.06875,0.225,0.06875,0.13125,-0.025,0.31875,0.35,0.2875,0.2875,0.38125 0.28323,0.085626,-0.14491,-0.24371,-0.34251,0.21736,-0.013173,-0.013173,-0.14491,-0.24371,0.18443,0.18443,0.085626,-0.14491,-0.14491,0.28323,0.085626,-0.013173,-0.24371,-0.34251,0.18443,0.34909,0.11856,0.11856,-0.14491 0.97939,-0.023954,-0.050702,-0.038147,-0.029412,-0.032688,-0.035417,-0.037601,-0.037601,-0.038147,-0.040876,-0.041968,-0.039784,-0.042514,-0.041422,-0.043606,-0.044151,-0.04306,-0.045789,-0.044151,-0.046335,-0.044697,-0.044697,-0.046335,-0.046335 0.026533,-0.012764,-0.0096199,-0.088214,-0.08507,-0.037914,-0.036342,0.0029551,-0.017479,-0.086642,-0.088214,-0.075639,-0.0096199,-0.026911,-0.026911,-0.10236,-0.063064,-0.067779,-0.014336,0.020246,0.96337,-0.063064,-0.080354,-0.011192,-0.0096199 -0.15461,-0.1539,-0.16857,-0.0014741,0.28405,-0.1539,-0.15104,-0.16642,-0.008988,0.28691,-0.15998,-0.15032,-0.16928,0.28513,0.2887,-0.16284,-0.15104,-0.16642,0.28083,0.28298,-0.16141,-0.032961,-0.15676,0.28262,0.27868 -0.097672,-0.097672,-0.096223,-0.095861,-0.09731,-0.096947,-0.098034,-0.097672,-0.096223,-0.099483,-0.09912,-0.098034,-0.097672,-0.096585,-0.10021,-0.091515,-0.094412,-0.094774,-0.098034,-0.10057,0.21923,0.44632,0.53831,0.3699,0.37026 0.17614,0.18303,-0.28912,-0.22068,-0.21527,0.17121,0.16974,0.18401,-0.21576,-0.21527,0.16875,0.16974,0.185,-0.21773,-0.21625,0.16383,0.17318,0.20518,-0.22167,-0.21822,0.16531,0.17417,0.185,-0.22118,-0.22314 0.084434,0.09485,0.1004,0.1004,0.10179,0.09485,0.096933,0.095544,0.093461,0.09971,0.10735,0.10526,0.10179,0.097627,0.096238,0.11221,0.10735,0.10735,0.10388,0.097627,-0.39329,-0.40856,-0.39259,-0.40231,-0.40231 0.9777,-0.031971,-0.034951,-0.035547,-0.034355,-0.039719,-0.033759,-0.030779,-0.033163,-0.034355,-0.033759,-0.033759,-0.031971,-0.030779,-0.033759,-0.034355,-0.032567,-0.029587,-0.061772,-0.065945,-0.049256,-0.033759,-0.055216,-0.068925,-0.073693 0.21386,0.094524,0.2209,0.23005,0.18781,0.20928,0.093115,0.2216,0.21456,0.18394,-0.22546,0.093468,0.087483,0.19907,0.18218,-0.22124,-0.22264,-0.22053,-0.22616,-0.21948,-0.21948,-0.21948,-0.22018,-0.21842,-0.21877 0.098586,-0.09559,-0.09559,-0.096977,-0.090042,0.4481,-0.096052,-0.095128,-0.090504,-0.093741,0.44949,-0.092816,-0.093741,-0.097902,-0.093278,0.45041,-0.08958,-0.097439,-0.10114,-0.091429,0.4518,-0.091891,-0.093741,-0.10391,-0.097902 0.42564,0.4364,0.38261,0.38261,0.28577,-0.15537,-0.12309,-0.09081,0.049063,-0.058531,-0.16613,-0.1984,-0.12309,-0.11233,-0.058531,-0.15537,-0.15537,-0.09081,-0.09081,-0.12309,-0.11233,-0.09081,-0.037012,-0.0047342,-0.015494 0.28545,0.34231,-0.11827,-0.18651,-0.20925,0.29113,0.01251,-0.15239,-0.17514,-0.19219,0.27408,-0.1069,-0.15808,-0.1467,-0.19219,0.2627,0.092117,-0.089842,-0.1467,-0.16376,0.27976,0.30819,0.14898,-0.12396,-0.13533 -0.2447,-0.20753,-0.22065,-0.20316,-0.18129,-0.26,-0.15943,-0.21409,-0.22065,-0.20316,-0.054485,0.21007,0.20788,-0.10477,-0.17255,0.22319,0.17727,0.21007,0.19914,0.22319,0.20569,0.18164,0.21881,0.17946,0.21007 0.21204,0.2261,0.32453,0.33859,0.36671,-0.026997,0.029247,0.1558,0.21204,0.25422,-0.25197,-0.11136,-0.055119,0.015186,0.07143,-0.20979,-0.22385,-0.13949,-0.15355,-0.11136,-0.22385,-0.22385,-0.15355,-0.20979,-0.11136 -0.36244,-0.22037,-0.25194,-0.26773,-0.15723,-0.22037,-0.20458,-0.23616,-0.14144,0.079561,0.047989,-0.10987,-0.12566,0.047989,0.12692,0.23742,0.23742,0.11113,0.079561,0.19006,0.23742,0.20585,0.31635,0.17428,0.20585 0.28367,0.25178,0.1444,-0.19562,-0.19562,0.28612,0.2557,-0.19555,-0.19555,-0.1959,0.28984,0.25878,0.169,-0.19597,-0.19611,0.28107,-0.024383,-0.049967,-0.19611,-0.19611,0.029517,0.029937,-0.050738,-0.19604,-0.19618 -0.30572,-0.22173,-0.22173,-0.22173,-0.22173,-0.13774,-0.081749,-0.30572,-0.16574,-0.38971,0.11423,0.19821,0.11423,0.11423,0.11423,0.19821,0.19821,0.030236,0.22621,0.25421,0.19821,0.058232,0.058232,0.19821,0.19821 -0.10392,-0.065591,-0.030003,-0.016316,-0.030003,-0.095704,-0.065591,-0.016316,0.002847,-0.035478,-0.10118,-0.040953,-0.021791,-0.024528,-0.019053,-0.10118,-0.024528,-0.030003,-0.027266,0.057598,-0.084754,-0.027266,-0.035478,-0.027266,0.96372 0.17754,0.17754,0.17754,0.16134,0.19374,0.17754,0.17754,0.16134,0.14514,0.12894,0.11274,0.11274,0.047948,0.064147,0.015551,0.015551,0.03175,-0.081642,-0.11404,-0.19503,-0.16264,-0.32462,-0.34082,-0.37322,-0.48661 0.23779,0.23741,0.23591,0.23516,0.23367,-0.062332,0.23929,0.23816,0.23666,0.23591,-0.064205,-0.066079,-0.065704,-0.060084,0.23629,-0.19722,-0.19909,-0.19834,-0.19872,-0.19984,-0.21108,-0.20996,-0.20883,-0.21258,-0.2122 0.36086,0.2275,-0.13893,-0.14188,-0.13697,0.35987,0.23202,-0.1407,-0.1409,-0.135,0.20626,-0.13992,-0.13933,-0.13972,-0.13539,0.35358,-0.11671,-0.12379,-0.13815,-0.135,0.3522,0.18915,-0.13893,-0.11907,-0.12104 0.15374,0.19552,0.15374,0.17463,0.13285,0.091076,0.070187,0.091076,0.070187,0.11196,0.091076,0.17463,0.13285,0.13285,0.091076,-0.076036,-0.013369,0.028409,-0.034258,0.091076,-0.38937,-0.3267,-0.5147,-0.26404,-0.36848 -0.098482,-0.062886,-0.098482,-0.11035,-0.080684,-0.080684,-0.080684,-0.098482,-0.080684,-0.080684,-0.021358,-0.080684,-0.039156,-0.080684,-0.080684,0.26934,-0.039156,-0.039156,-0.039156,-0.039156,0.86854,0.25748,-0.021358,-0.021358,-0.021358 0.18542,0.2495,0.31359,0.16406,0.20678,0.16406,0.18542,0.099973,0.16406,0.20678,0.057249,-0.0068357,0.035888,-0.0068357,-0.0068357,-0.049559,-0.11364,-0.049559,-0.13501,-0.13501,-0.24181,-0.45543,-0.28454,-0.41271,-0.13501 0.97957,-0.040957,-0.042655,-0.033316,-0.028222,-0.02992,-0.042655,-0.042655,-0.042655,-0.040108,-0.03841,-0.044353,-0.045202,-0.042655,-0.040108,-0.040957,-0.044353,-0.042655,-0.046051,-0.040957,-0.040108,-0.044353,-0.044353,-0.039259,-0.042655 0.14829,0.1511,0.14549,0.13707,0.019294,0.12025,0.13707,0.12025,0.12305,-0.0031408,0.11464,0.11464,0.11184,0.10342,0.044532,0.10342,0.11184,0.078184,0.09501,-0.025575,-0.40696,-0.38452,-0.38452,-0.39574,-0.37892 -0.19596,-0.19493,-0.18365,-0.18263,-0.17955,-0.13135,-0.17135,-0.17442,-0.17135,-0.17032,-0.0062353,-0.0093119,-0.0093119,-0.012388,-0.07187,0.035812,0.039914,0.040939,0.049144,0.049144,0.57935,0.38552,0.37732,0.15888,0.14862 -0.16117,-0.18407,-0.19551,-0.14972,-0.19551,-0.13828,-0.12683,-0.09249,-0.21841,-0.21841,0.056318,-0.00091575,-0.046703,-0.14972,-0.2413,0.26236,0.13645,0.090659,0.079212,0.021978,0.4684,0.39972,0.28526,0.19368,0.125 0.27163,0.26842,0.26842,0.25717,0.25717,-0.13826,0.27592,0.27485,0.26413,0.26145,-0.14362,-0.14683,-0.1463,-0.1479,-0.1463,-0.15326,-0.15219,-0.15326,-0.15273,-0.15273,-0.1538,-0.15165,-0.15273,-0.1538,-0.1538 0.97965,-0.041016,-0.036269,-0.046951,-0.042203,-0.033896,-0.042203,-0.03983,-0.042203,-0.038643,-0.041016,-0.044577,-0.036269,-0.038643,-0.045764,-0.033896,-0.036269,-0.03983,-0.042203,-0.045764,-0.044577,-0.03983,-0.04339,-0.042203,-0.042203 -0.20876,-0.17,0.21201,0.20278,0.20093,-0.21983,-0.19584,0.21201,0.20093,0.21016,-0.21429,-0.17739,-0.16447,0.20647,0.21016,-0.20322,-0.16816,-0.17739,0.21201,0.20462,-0.2309,-0.18292,-0.17739,0.20647,0.21201 0.048691,0.11847,0.11847,0.14948,0.14948,0.033184,0.10296,0.10296,0.13398,0.14173,0.12622,0.095211,0.11072,0.13398,0.14173,-0.028842,0.048691,0.040938,0.056444,0.12622,-0.39325,-0.43977,-0.39325,-0.36999,-0.35448 -0.19549,0.02921,0.17901,0.23518,0.17901,-0.34528,0.010486,0.14156,0.14156,0.14156,-0.34528,-0.064413,0.14156,0.16028,0.12283,-0.40146,-0.10186,0.06666,0.12283,0.17901,-0.45763,-0.15804,0.02921,0.06666,0.12283 -0.045239,-0.046729,-0.045239,-0.047661,-0.048965,-0.045053,-0.043748,-0.042817,-0.044866,-0.047475,-0.04468,-0.043189,-0.043562,-0.045798,-0.046357,-0.043748,-0.050083,-0.050829,-0.050456,-0.047288,-0.046729,-0.050456,-0.050456,0.10214,0.96928 -0.2557,0.10082,0.1243,0.17712,0.20646,-0.25717,-0.27037,0.15951,0.14924,0.15658,-0.26597,-0.25276,0.17125,0.14777,0.14337,-0.26157,-0.26157,0.1375,0.14044,0.1419,-0.28504,-0.27771,0.12283,0.13897,0.16978 0.13062,0.11793,0.079891,-0.04058,-0.59855,0.1433,0.13696,0.06721,0.035507,-0.53514,0.13696,0.11159,0.10525,0.054529,-0.20543,0.13696,0.086232,0.07355,0.06721,-0.24982,0.11159,0.092572,0.12427,0.035507,-0.21812 0.096061,0.090459,0.096061,0.096061,0.096061,0.099796,0.099796,0.094194,0.099796,0.097929,0.10353,0.1054,0.10166,0.099796,0.099796,0.10166,0.10727,0.1054,0.10166,0.1054,-0.40815,-0.39881,-0.40815,-0.36333,-0.41935 0.07981,0.078474,0.089331,0.089581,0.096096,0.10779,0.15113,0.089832,0.088245,0.096847,0.10779,0.15113,0.090083,0.09025,0.093173,0.083067,0.11363,0.1133,0.093089,0.089581,-0.39831,-0.3984,-0.39815,-0.39856,-0.39881 -0.1556,-0.15808,-0.1556,-0.16057,-0.15808,-0.1357,-0.1556,-0.15808,-0.15477,-0.13736,-0.13902,-0.13736,-0.15477,-0.14151,-0.15062,0.26713,0.27625,-0.14482,0.28122,0.25221,0.26133,0.26464,0.26796,0.27542,0.25138 -0.2049,-0.2049,-0.27274,0.23611,0.16826,-0.13705,-0.17097,-0.03528,0.30395,0.23611,-0.27274,-0.13705,-0.069204,0.27003,0.06649,-0.17097,-0.17097,-0.13705,0.27003,0.27003,-0.17097,-0.13705,-0.0013569,0.20218,0.27003 0.26906,0.2699,0.27158,0.26571,0.26969,-0.14142,0.26341,0.2632,0.26341,0.26383,-0.1498,-0.15064,-0.14938,-0.1498,-0.1498,-0.15148,-0.15022,-0.15106,-0.15064,-0.15148,-0.15022,-0.15148,-0.15022,-0.15106,-0.15106 -0.10416,-0.10416,-0.1015,-0.13209,-0.19906,0.31889,0.224,-0.057595,-0.15338,-0.21236,0.35215,0.24173,0.043955,-0.15338,-0.22478,0.3016,0.23464,0.033755,-0.16668,-0.23231,0.30515,0.12245,0.073666,-0.17378,-0.23675 -0.21688,-0.22054,-0.21932,-0.22054,-0.2242,-0.19979,-0.19857,-0.2059,-0.20956,-0.2059,0.17607,0.17241,0.19926,-0.18515,-0.18515,0.17485,0.17973,0.19194,0.19804,0.19926,0.17973,0.17607,0.21756,0.21634,0.21024 0.19297,0.20757,0.19881,0.19881,0.18128,0.20903,0.20465,0.13602,0.093679,0.1039,-0.11803,0.081998,0.10244,0.095139,0.12434,-0.1633,-0.12095,-0.091752,-0.10197,0.11996,-0.32245,-0.28448,-0.30346,-0.36625,-0.37793 -0.075938,-0.075358,-0.075938,-0.075358,-0.075358,-0.073616,-0.070713,-0.071874,-0.071874,-0.070713,-0.063746,-0.061424,-0.057941,-0.055038,-0.05736,-0.053877,0.053528,0.0018578,0.0018578,0.0065024,0.0099858,0.0088246,0.023339,0.020436,0.9598 0.48905,-0.075238,-0.092338,-0.14364,0.01026,0.35225,-0.041039,-0.092338,-0.058139,-0.092338,0.36935,-0.10944,-0.12654,-0.12654,-0.092338,0.40355,-0.10944,-0.14364,-0.058139,-0.075238,0.33515,-0.14364,-0.17784,-0.12654,-0.075238 0.094269,0.10015,-0.17403,-0.16961,-0.16851,0.21784,0.22042,-0.11205,-0.16869,-0.16777,0.216,0.21674,0.10181,-0.11316,-0.31305,0.21508,0.2138,0.10236,0.10181,-0.31525,0.21306,0.21711,0.10181,-0.31562,-0.31452 -0.20297,-0.17236,-0.18958,0.21798,0.20649,-0.19149,-0.17236,-0.1781,0.21606,0.20841,-0.16471,-0.16471,-0.18001,0.23711,0.20841,-0.16279,-0.17236,-0.1781,0.25816,0.24668,-0.16471,-0.18193,0.22372,0.23328,0.21989 0.97632,-0.017111,-0.065769,-0.055632,-0.037386,-0.023194,-0.0090017,-0.051577,-0.023194,-0.043468,-0.038399,-0.051577,-0.051577,-0.027248,-0.017111,-0.024207,-0.05766,-0.056646,-0.043468,-0.029276,-0.027248,-0.07692,-0.051577,-0.059687,-0.037386 0.31987,0.33747,0.16807,-0.13992,-0.21031,0.30667,0.16367,0.14387,-0.18171,-0.23451,0.21427,-0.11792,-0.16411,-0.15091,-0.19051,0.20547,0.15927,-0.16411,-0.16851,-0.16411,0.22307,0.16367,-0.15971,-0.17731,-0.18171 0.34117,0.40628,0.10244,0.23266,0.27606,0.21095,0.12414,0.080735,0.21095,0.080735,-0.092889,0.015626,0.015626,-0.049483,-0.02778,-0.02778,-0.2014,-0.071186,-0.158,-0.26651,-0.24481,-0.26651,-0.1363,-0.24481,-0.30992 0.17299,0.14397,0.26007,-0.17531,-0.23337,0.17299,0.085916,0.05689,-0.14629,-0.20434,0.17299,0.085916,-0.001161,-0.29142,-0.40752,0.11494,0.027865,0.11494,-0.059212,-0.32044,0.2891,0.20202,0.20202,0.05689,-0.32044 0.080091,0.070821,-0.049686,-0.2907,-0.48722,0.12088,0.11346,0.022618,-0.16278,-0.39452,0.14869,0.13756,0.13015,-0.081203,-0.28143,0.18206,0.16537,0.16537,0.0040787,-0.23879,0.21914,0.20801,0.19689,0.14313,-0.12199 -0.11719,0.014979,0.18019,0.16917,0.20221,-0.26037,0.003965,0.13613,0.20221,0.1912,-0.30442,-0.11719,0.025993,0.16917,0.20221,-0.32645,-0.24935,0.014979,0.22424,0.16917,-0.39253,-0.26037,-0.17226,0.12512,0.16917 -0.090352,-0.090352,-0.096843,0.052446,0.35751,-0.10982,-0.10333,-0.11631,-0.064389,0.38348,-0.096843,-0.10333,-0.083861,-0.10333,0.47435,-0.13579,-0.11631,-0.10982,-0.096843,0.41593,-0.14877,-0.11631,-0.12281,-0.10333,0.32506 -0.23376,-0.23872,-0.23872,0.088701,0.18296,-0.28337,-0.2536,-0.075009,0.15319,0.23257,-0.26849,-0.19407,-0.00059531,0.21272,0.19784,-0.2536,-0.089892,0.16808,0.21272,0.21272,-0.21391,0.073819,0.18296,0.24249,0.18296 -0.17654,-0.15725,-0.13796,0.202,0.20562,-0.17292,-0.15484,-0.13434,0.19838,0.21526,-0.17774,-0.16328,-0.13434,0.202,0.202,-0.16207,-0.16448,-0.15604,0.22611,0.21526,-0.15243,-0.14881,-0.17413,0.47324,0.22732 0.33082,0.33315,0.36281,0.36369,0.36311,0.32409,-0.12271,-0.12505,0.042395,0.042395,-0.12315,-0.12388,-0.12505,-0.12958,-0.13089,-0.12388,-0.12607,-0.12855,-0.12885,-0.1287,-0.12928,-0.12958,-0.12928,-0.12855,-0.12943 0.085568,0.12277,0.10417,0.066966,0.10417,0.19718,0.085568,0.10417,0.14137,0.14137,0.10417,0.21578,0.029763,0.066966,0.10417,0.066966,0.12277,0.10417,0.029763,-0.10045,-0.26786,-0.37947,-0.37947,-0.41668,-0.45388 0.97835,-0.053162,-0.036156,-0.021871,-0.028401,-0.021191,-0.058196,-0.050985,-0.032211,-0.034251,-0.025408,-0.053706,-0.053026,-0.038877,-0.037381,-0.029218,-0.038333,-0.049897,-0.054387,-0.047176,-0.031667,-0.03534,-0.04704,-0.050985,-0.049489 0.95888,0.14047,-0.036019,-0.034042,-0.036514,-0.063951,-0.035525,-0.033053,-0.027862,-0.033547,-0.063456,-0.076557,-0.030087,-0.032064,-0.037008,-0.059749,-0.080265,-0.03157,-0.034042,-0.030581,-0.063951,-0.081995,-0.073344,-0.032559,-0.071613 -0.29367,-0.14151,0.12477,0.086733,0.2389,-0.25563,-0.027389,0.086733,-0.027389,0.20085,-0.25563,-0.14151,-0.027389,0.27694,0.20085,-0.44584,-0.027389,0.010651,0.010651,0.2389,-0.17955,-0.25563,0.16281,0.12477,0.31498 0.24502,0.12983,0.084312,-0.023975,-0.264,0.26985,0.15466,0.056034,-0.0012139,-0.26814,0.24019,0.15604,0.03879,-0.0019036,-0.23917,0.24088,0.15466,-0.25021,-0.25986,-0.076394,0.25743,0.16984,-0.26952,-0.27366,-0.26952 0.28087,0.24494,0.21343,0.18579,0.15594,0.27811,0.24715,0.21287,0.18468,0.15815,0.28916,-0.16635,-0.16856,-0.16524,-0.15972,-0.16967,-0.17133,-0.17243,-0.17409,-0.17796,-0.17962,-0.18128,-0.18349,-0.18846,-0.19288 -0.23694,-0.23814,-0.23754,-0.23814,-0.23904,-0.23724,-0.23545,-0.23814,0.020422,0.020422,0.021918,0.019524,0.020721,0.020122,0.019524,0.022517,0.021619,0.023115,0.021619,0.021619,0.31849,0.32597,0.33016,0.33584,0.33704 -0.17724,-0.18015,0.22336,0.23211,0.22466,-0.17659,-0.17853,-0.18177,0.22466,0.22207,-0.17626,-0.17788,-0.17983,0.22272,0.22336,-0.17076,-0.17724,-0.17918,0.22142,0.23049,-0.17141,-0.17659,-0.17821,0.22725,0.22952 0.15509,0.14457,0.13755,0.1282,-0.069409,0.15509,0.12352,0.1282,0.089614,-0.42487,0.15626,0.113,0.10481,-0.15477,-0.41201,0.18316,0.10949,0.093122,-0.21206,-0.35238,0.189,0.13171,0.018288,-0.20154,-0.33367 0.24518,0.24596,0.1945,0.19482,0.16618,0.24525,0.24603,0.24415,0.1847,0.16369,-0.16476,-0.16476,-0.1649,0.18492,0.16153,-0.19762,-0.19777,-0.19819,-0.19844,-0.19848,-0.19805,-0.19833,-0.19844,-0.19848,-0.19869 -0.28673,0.011947,0.12395,0.086615,0.27329,-0.3614,-0.21206,0.011947,0.086615,0.38529,-0.28673,-0.025387,-0.062722,0.049281,0.27329,-0.24939,-0.062722,0.049281,-0.025387,0.27329,-0.28673,0.049281,-0.17472,0.16128,0.19862 -0.28854,-0.28989,-0.28935,-0.28854,-0.29098,0.069715,0.07053,-0.28881,-0.28908,-0.29044,0.13196,0.16512,0.14229,0.13142,0.19203,0.13658,0.16376,0.13631,0.12462,0.13604,0.15072,0.15479,0.14229,0.1287,0.13876 0.145,0.17891,0.1776,0.17541,0.17475,0.17869,0.18547,0.18285,0.17869,0.17519,0.14938,0.16469,0.17082,0.23732,-0.22166,-0.22341,-0.22428,-0.22428,-0.22603,-0.22647,-0.22385,-0.22516,-0.22625,-0.22625,-0.22713 0.97346,0.0025014,0.0011565,-0.015654,-0.013636,-0.037843,-0.029102,-0.024395,-0.024395,-0.015654,-0.037171,-0.053981,-0.051291,-0.066084,-0.064067,-0.029102,-0.060705,-0.065412,-0.062722,-0.075498,-0.044567,-0.057343,-0.019016,-0.051291,-0.078188 0.92176,0.073873,0.063803,-0.0046724,-0.12148,0.091999,0.081929,0.017481,-0.036896,-0.12954,0.0013695,-0.0087004,-0.032868,-0.085232,-0.14968,-0.030854,-0.030854,-0.057036,-0.091274,-0.12148,-0.036896,-0.040924,-0.042938,-0.085232,-0.14565 0.97966,-0.038109,-0.03868,-0.041532,-0.040962,-0.036968,-0.03925,-0.041532,-0.040391,-0.040391,-0.042103,-0.03868,-0.040391,-0.044385,-0.034116,-0.038109,-0.040962,-0.041532,-0.038109,-0.035257,-0.041532,-0.046667,-0.046667,-0.047237,-0.046096 0.35814,0.35554,-0.10988,-0.10839,-0.10839,0.36148,-0.11173,-0.11062,-0.11025,-0.10802,0.36037,-0.11358,-0.11173,-0.11173,-0.10765,0.3548,-0.11099,-0.11136,-0.11099,-0.11025,0.34442,-0.11396,-0.11507,-0.1236,-0.12656 0.9705,0.036431,-0.0042408,0.0058128,0.016323,-0.040342,-0.041713,-0.038971,-0.045369,-0.01795,-0.042627,-0.043541,-0.048568,-0.048111,-0.039885,-0.063191,-0.060449,-0.060449,-0.038971,-0.049482,-0.072331,-0.075073,-0.072331,-0.063648,-0.06182 0.97922,-0.029753,-0.028959,-0.051187,-0.025784,-0.04563,-0.037692,-0.037692,-0.030547,-0.032929,-0.040073,-0.041661,-0.040867,-0.037692,-0.040867,-0.041661,-0.038485,-0.044042,-0.048012,-0.04563,-0.04563,-0.048012,-0.048805,-0.048805,-0.048805 0.97964,-0.03374,-0.034589,-0.036713,-0.035014,-0.035439,-0.04096,-0.038836,-0.038412,-0.037987,-0.041809,-0.04011,-0.04011,-0.042659,-0.041385,-0.042659,-0.043083,-0.043083,-0.043083,-0.043508,-0.044358,-0.046481,-0.044782,-0.045632,-0.045207 0.9781,-0.00095706,-0.026427,-0.042636,-0.045337,-0.049196,-0.047267,-0.046881,-0.045723,-0.041092,-0.056143,-0.045337,-0.046881,-0.046495,-0.029901,-0.054985,-0.047653,-0.039548,-0.038005,-0.022182,-0.044951,-0.048038,-0.050354,-0.036461,-0.025656 0.1964,0.18611,0.20388,0.067362,-0.074768,0.20856,0.19453,0.17957,-0.04017,-0.22438,0.231,0.1936,0.036505,-0.096274,-0.26739,0.23193,0.13282,-0.072897,-0.22625,-0.35809,0.159,-0.026144,-0.16079,-0.3104,-0.3637 0.10996,0.2192,0.40126,0.45588,0.40126,0.055346,0.055346,0.10996,0.10996,0.16458,-0.10851,-0.10851,-0.10851,-0.10851,-0.017478,-0.12671,-0.072096,-0.16313,-0.10851,-0.10851,-0.25416,-0.18133,-0.12671,-0.23595,-0.25416 -0.31983,0.013326,-0.016961,0.28591,0.10419,-0.25926,-0.047248,0.10419,0.13447,0.40706,-0.31983,-0.10782,-0.047248,0.0739,0.16476,-0.3804,-0.016961,0.0739,0.0739,0.34648,-0.25926,-0.13811,-0.077534,0.0739,0.13447 0.21895,0.24953,0.28011,0.37185,0.24953,0.18837,0.12721,0.12721,0.035473,0.24953,0.035473,-0.14801,-0.056267,-0.056267,-0.056267,-0.086847,-0.11743,-0.025687,-0.11743,-0.14801,-0.36207,-0.36207,-0.17859,-0.14801,-0.27033 0.33647,0.41091,0.41091,0.36128,0.43572,-0.11017,-0.010918,-0.1598,-0.085358,-0.20942,-0.085358,-0.1598,-0.13498,-0.085358,-0.060545,-0.085358,-0.11017,-0.11017,-0.11017,-0.060545,-0.060545,-0.060545,-0.11017,-0.060545,-0.085358 -0.052812,-0.054294,-0.045403,-0.046885,-0.052812,-0.052812,-0.05133,-0.046885,-0.045403,-0.042439,-0.045403,-0.048366,-0.040957,-0.040957,-0.048366,-0.039475,-0.029103,-0.027621,-0.029103,-0.03503,-0.032066,-0.033548,-0.021694,-0.015766,0.97853 0.092254,0.092254,0.092254,0.10566,0.10566,0.10566,0.092254,0.092254,0.11907,0.10566,0.092254,0.10566,0.098959,0.13248,0.10566,0.058732,0.10566,0.072141,0.08555,0.12578,-0.46422,-0.41059,-0.39718,-0.33684,-0.37706 -0.32051,-0.18584,0.083495,0.01616,0.31916,-0.25318,-0.084841,-0.084841,0.11716,0.11716,-0.15218,-0.28684,-0.051174,0.083495,0.42017,-0.32051,-0.11851,-0.11851,0.11716,0.31916,-0.11851,-0.017507,0.11716,0.1845,0.21816 -0.24892,-0.028636,0.10904,0.081503,0.16411,-0.35906,-0.16631,0.026434,0.27425,0.081503,-0.38659,-0.028636,0.13657,0.10904,0.32932,-0.30399,-0.083706,0.10904,0.026434,0.16411,-0.38659,-0.056171,0.10904,0.10904,0.21918 -0.1682,-0.13392,-0.072979,0.067951,0.14413,-0.14916,-0.14916,-0.13773,0.39171,0.23554,-0.22534,-0.20248,-0.042508,0.24316,0.20507,-0.1263,-0.13773,-0.13392,0.22793,0.31172,-0.14535,-0.23295,-0.24819,0.20507,0.27363 -0.10301,-0.1008,-0.10521,-0.10411,0.41071,-0.10632,-0.1008,-0.1008,-0.069936,0.4052,-0.10742,-0.11403,-0.10301,-0.077653,0.39969,-0.10521,-0.11072,-0.11072,-0.075448,0.39197,-0.10852,-0.10962,-0.10742,-0.075448,0.38866 -0.15872,-0.42724,-0.36757,-0.12889,-0.21839,-0.069217,-0.12889,-0.18856,-0.18856,-0.12889,0.079958,0.020288,0.020288,-0.0095472,-0.0095472,0.22913,0.050123,0.16946,0.13963,0.079958,0.050123,0.31864,0.22913,0.37831,0.25897 -0.21914,-0.16117,-0.33509,-0.19015,-0.27711,-0.045219,-0.19015,-0.21914,-0.21914,-0.19015,0.21566,-0.016232,0.070727,0.070727,-0.074206,0.24465,0.041741,0.070727,0.012754,0.041741,0.27363,0.33161,0.24465,0.36059,0.15769 -0.10228,-0.038091,-0.02751,-0.028921,-0.026099,-0.049377,-0.046555,-0.043029,-0.028215,-0.026805,-0.049377,-0.044439,-0.034564,-0.032448,-0.02751,-0.045145,-0.047966,-0.041618,-0.028215,-0.028921,-0.052199,-0.049377,-0.043734,-0.034564,0.97696 -0.16027,-0.17959,-0.15558,-0.10639,-0.13216,-0.17198,-0.17315,-0.14329,-0.11283,-0.12806,-0.16847,-0.16203,-0.00098382,-0.10171,-0.099952,0.30529,0.000773,0.010143,-0.094096,0.044694,0.31115,0.34862,0.35799,0.33574,0.37615 -0.153,-0.16191,-0.18866,-0.16191,-0.14408,-0.13517,-0.17083,-0.16191,-0.16191,-0.18866,0.0074895,-0.010343,-0.090587,-0.14408,-0.16191,0.18581,0.09665,0.13231,0.034237,-0.019259,0.5692,0.38196,0.26605,0.21256,0.16798 0.10585,0.11308,0.084163,0.098624,0.055241,0.076932,0.14201,0.098624,0.084163,0.084163,0.11308,0.076932,0.11308,0.11308,0.12755,0.091393,0.098624,0.14924,0.11308,0.04801,-0.40751,-0.39305,-0.40028,-0.37859,-0.40751 0.29336,0.28628,0.28982,0.28982,0.28156,-0.077056,-0.066439,0.29454,0.29218,0.28982,-0.1325,-0.13132,-0.12542,-0.12188,-0.11717,-0.15609,-0.15138,-0.14902,-0.14902,-0.14784,-0.15845,-0.16199,-0.15491,-0.16081,-0.15609 0.10949,0.21396,0.25575,0.25575,0.21396,0.10949,0.21396,0.21396,0.21396,0.19306,-0.12035,-0.14125,-0.036774,0.19306,0.21396,-0.14125,-0.16214,-0.22482,-0.16214,-0.24572,-0.24572,-0.28751,-0.20393,-0.22482,-0.20393 0.087669,0.00883,-0.085777,-0.22769,-0.16462,0.1192,0.056133,-0.085777,-0.22769,-0.21192,0.24535,0.056133,0.00883,-0.13308,-0.24345,0.38726,0.18228,-0.038473,-0.18038,-0.16462,0.37149,0.32419,0.29265,-0.18038,-0.19615 0.16998,0.074699,-0.077748,-0.30642,-0.36359,0.16998,0.11281,0.017531,-0.19208,-0.47792,0.22715,0.11281,0.074699,-0.15397,-0.30642,0.22715,0.16998,0.13187,0.13187,-0.15397,0.16998,0.20809,0.11281,0.036587,-0.11586 0.26671,0.061973,0.27676,0.30627,0.3182,0.076417,0.048156,0.3113,0.31067,0.31695,-0.14967,-0.13836,-0.14151,-0.14779,-0.14779,-0.15846,-0.15783,-0.15532,-0.15344,-0.14904,-0.16349,-0.16035,-0.15846,-0.15658,-0.15532 0.014698,0.17602,0.15809,-0.18247,-0.33483,0.077434,0.18498,0.13121,0.050547,-0.22728,0.095359,0.17602,0.14913,0.14017,-0.37068,0.086397,0.14017,0.050547,0.077434,-0.47823,0.077434,0.17602,0.02366,0.014698,-0.40653 -0.12839,-0.085112,-0.073502,-0.087223,-0.01123,-0.058726,-0.056615,-0.089334,-0.029173,0.019378,-0.0925,-0.075613,-0.045005,0.0077682,0.015156,-0.056615,-0.052393,-0.015452,0.017267,-0.027062,-0.058726,0.0088236,-0.010175,0.025711,0.95874 -0.22191,-0.19227,0.168,0.17268,0.15397,-0.20319,-0.20319,-0.16108,0.24131,0.1992,-0.21411,-0.21255,-0.17044,0.22883,0.25378,-0.21255,-0.16732,-0.16108,0.20232,0.22259,-0.19695,-0.16108,0.21479,0.20856,0.21167 0.97965,-0.02928,-0.048432,-0.043835,-0.044601,-0.04192,-0.040388,-0.047283,-0.040771,-0.042686,-0.040388,-0.03809,-0.03694,-0.041537,-0.040005,-0.038856,-0.040005,-0.040005,-0.040771,-0.039239,-0.042303,-0.040005,-0.040771,-0.041154,-0.040388 0.082404,-0.13445,0.082404,-0.080236,-0.37841,0.13662,0.13662,0.19083,-0.026022,-0.45973,0.055298,0.082404,0.16372,0.055298,-0.3242,0.19083,0.19083,0.13662,-0.026022,-0.29709,0.19083,0.24504,0.055298,0.055298,-0.3242 0.063949,-0.036871,-0.094483,-0.10889,-0.12329,0.11868,-0.0080656,-0.094483,-0.10312,-0.11465,0.15613,0.01786,-0.088721,-0.11465,-0.106,0.2195,-0.016707,-0.045513,-0.11177,-0.11465,0.86186,0.10716,-0.059916,-0.097363,-0.106 0.12206,0.080543,0.16358,0.080543,0.12206,0.1013,0.1013,0.039026,0.080543,0.12206,0.16358,0.12206,0.20509,0.12206,0.16358,-0.064767,-0.002491,0.018267,0.1013,0.059784,-0.5007,-0.35539,-0.35539,-0.37614,-0.31387 0.97899,-0.042291,-0.045786,-0.046835,-0.049981,-0.026563,-0.045786,-0.047184,-0.047184,-0.049282,-0.028311,-0.032854,-0.045437,-0.047184,-0.05033,-0.028311,-0.030058,-0.040544,-0.045087,-0.047883,-0.02866,-0.02901,-0.032854,-0.047184,-0.044388 -0.35972,-0.23819,0.096007,0.035243,0.15677,-0.20781,0.035243,-0.055903,0.2783,0.21753,-0.23819,-0.14705,-0.055903,0.065625,0.18715,-0.14705,-0.26858,0.096007,0.15677,0.30868,-0.20781,-0.14705,-0.11667,0.15677,0.39982 0.13237,0.1271,0.12974,-0.24177,-0.26811,0.12183,0.1192,0.13764,-0.21542,-0.26284,0.13237,0.14291,0.14028,-0.19171,-0.26284,-0.08368,0.301,0.32207,-0.16799,-0.25758,0.16135,0.1877,0.20878,-0.14955,-0.26284 0.97797,-0.03059,-0.032926,-0.06563,-0.06563,-0.03205,-0.038474,-0.039642,-0.04081,-0.07731,-0.028254,-0.032634,-0.03935,-0.04081,-0.05541,-0.030006,-0.031758,-0.039058,-0.04373,-0.038766,-0.030298,-0.03059,-0.037014,-0.04081,-0.03643 0.0061139,-0.032098,-0.16584,-0.032098,-0.089416,-0.012992,-0.18495,-0.16584,-0.12763,-0.12763,-0.10852,-0.10852,-0.16584,-0.14673,-0.089416,-0.032098,-0.089416,-0.14673,-0.10852,0.0061139,0.42645,0.42645,0.35002,0.35002,0.36913 0.10496,0.10496,0.095238,0.08552,0.062844,0.13735,0.12439,0.095238,0.062844,0.08552,0.12763,0.12763,0.10496,0.10496,0.095238,0.12763,0.12763,0.095238,0.069323,0.043408,-0.42306,-0.35828,-0.42306,-0.41982,-0.35828 0.13198,0.12643,0.14308,0.15234,-0.33621,0.12643,0.12643,0.13198,0.12273,-0.35471,0.11903,0.11347,0.11347,0.13568,-0.35101,0.11347,0.11347,0.11347,-0.24923,-0.3177,0.11347,0.11347,0.11347,-0.24183,-0.37322 -0.17085,-0.1789,-0.20534,0.25915,0.258,-0.18235,-0.1858,-0.18695,0.26145,0.2603,-0.18465,-0.18235,-0.1858,0.21891,0.25915,-0.19959,-0.18925,0.16372,0.13728,0.23271,-0.20419,-0.1927,0.13728,0.12808,0.13268 -0.14123,-0.14373,-0.15705,-0.15747,-0.15455,-0.14914,-0.14706,-0.15289,-0.1533,-0.15414,-0.14789,-0.14789,-0.15122,-0.14872,-0.14914,0.26551,0.26551,-0.14415,0.26676,0.26593,0.26717,0.26509,0.26884,0.26926,0.26551 0.075592,0.14736,0.15134,0.17527,-0.39487,0.1035,0.1334,0.1035,0.1334,-0.38291,0.041703,0.11147,0.095527,0.081573,-0.38291,0.0078144,0.10749,0.11546,0.08556,-0.38889,0.059645,0.069612,0.059645,0.10948,-0.41879 -0.11337,-0.15206,-0.18108,-0.19076,-0.20043,-0.1037,-0.12304,-0.084351,-0.16174,-0.12304,-0.084351,-0.11337,-0.13272,-0.13272,-0.11337,0.022055,0.051075,0.031728,0.080094,0.099441,0.24454,0.25421,0.26389,0.35094,0.61212 -0.096307,-0.11588,-0.076732,0.06029,0.49093,-0.11588,-0.096307,-0.11588,0.06029,0.37348,-0.096307,-0.17461,-0.19418,0.040715,0.33433,-0.096307,-0.13546,-0.17461,-0.037583,0.41263,-0.076732,-0.19418,-0.15503,-0.057158,0.23646 0.97969,-0.033349,-0.040844,-0.041998,-0.037385,-0.033349,-0.043727,-0.040844,-0.037385,-0.039691,-0.037385,-0.040268,-0.040268,-0.041998,-0.040268,-0.041998,-0.043727,-0.043727,-0.043727,-0.043151,-0.043727,-0.043727,-0.041998,-0.043151,-0.041998 -0.26674,-0.26743,0.33365,0.12248,0.14318,-0.22533,-0.23568,0.096945,0.10247,0.11696,-0.22809,-0.23085,0.1073,0.13076,0.2253,-0.23085,-0.22671,0.11696,0.13628,0.21219,-0.22878,-0.23085,0.11351,0.20805,0.20529 -0.23405,-0.2205,0.15874,0.17228,0.17228,-0.26114,-0.16633,0.10456,0.13165,0.13165,-0.20696,-0.35595,0.15874,0.17228,0.15874,-0.23405,-0.31531,0.1452,0.18583,0.17228,-0.13924,-0.26114,0.17228,0.17228,0.18583 0.14565,0.13329,0.12892,0.12632,-0.25743,0.14547,0.13534,0.13097,0.12948,-0.31124,0.14314,0.13766,0.13264,-0.25557,-0.31161,0.14101,0.13998,0.13617,-0.31199,-0.3118,0.14166,0.13998,0.13729,-0.25464,-0.31068 -0.30934,-0.36349,-0.38516,-0.42848,-0.43931,0.14557,0.058921,0.037259,0.015597,-0.04939,0.14557,0.1564,0.11308,0.10225,0.04809,0.14557,0.12391,0.11308,0.04809,0.058921,0.17806,0.14557,0.13474,0.11308,0.091415 -0.18193,-0.18331,-0.14726,-0.05713,0.28676,-0.18747,-0.17222,-0.12785,0.25348,0.24655,-0.1847,-0.17499,-0.12785,0.28398,0.24239,-0.18609,-0.16806,0.2202,0.23268,0.26457,-0.19163,-0.17915,-0.13201,0.11897,0.25209 0.35897,0.36292,-0.1186,-0.11421,-0.10631,0.3594,-0.10938,-0.11246,-0.12036,-0.11114,0.35063,-0.10719,-0.11202,-0.11685,-0.11421,0.34711,-0.10719,-0.11114,-0.11597,-0.11553,0.35589,-0.10763,-0.10895,-0.11246,-0.11333 -0.34727,-0.34727,-0.34727,-0.4171,-0.46365,0.025138,-0.044689,0.025138,0.071689,0.048413,0.071689,0.025138,0.14152,0.14152,0.11824,0.14152,0.094965,0.16479,0.16479,0.071689,0.16479,0.14152,0.14152,0.094965,0.11824 -0.096426,-0.097593,-0.098761,-0.092924,-0.087087,-0.10343,-0.10576,-0.10226,-0.10576,-0.1081,-0.087087,-0.090589,-0.094091,-0.094091,-0.1011,-0.089421,-0.07658,-0.069576,-0.047396,-0.045061,0.53163,0.46859,0.42656,0.3857,-0.019379 -0.20381,-0.30688,-0.3262,-0.31332,-0.31493,-0.020227,-0.23441,-0.23763,0.0039294,-0.079812,0.050631,0.031306,0.010371,0.021644,0.065125,0.26321,0.068346,0.029696,0.20684,0.24549,0.29541,0.04419,0.19235,0.23905,0.26965 0.16083,0.1605,0.21322,-0.18627,-0.18671,0.16594,0.214,0.212,-0.18971,-0.19082,0.21633,0.21511,-0.18816,-0.19237,-0.19326,0.22266,0.24963,-0.19082,-0.19382,-0.19415,0.2231,0.23298,-0.19237,-0.19371,-0.19415 -0.17688,-0.17567,-0.17592,-0.16964,-0.19353,-0.17435,-0.17145,-0.17049,-0.17036,-0.1916,-0.17507,0.25101,-0.17024,-0.17061,-0.19353,0.22157,0.22,0.21915,0.21602,0.22651,0.22096,0.21891,0.21903,0.23363,0.23255 0.95625,0.00039015,-0.048378,0.010144,0.044282,0.049159,0.00039015,-0.019117,-0.0093635,0.029651,-0.019117,-0.067886,-0.082516,-0.043501,-0.033748,-0.067886,-0.067886,-0.067886,-0.043501,-0.097147,-0.087393,-0.063009,-0.11665,-0.067886,-0.087393 -0.183,-0.15737,-0.15595,-0.18968,-0.19002,-0.18459,-0.15846,-0.15578,-0.18901,-0.19093,-0.18392,-0.15687,0.22162,-0.18993,-0.19219,0.22705,0.22763,0.22287,0.22028,0.21945,0.22972,0.22813,0.22579,0.22304,0.23214 0.49671,0.025859,-0.10649,-0.10903,-0.2592,0.40509,0.34909,-0.1014,-0.14467,-0.26938,0.1633,0.1353,0.010588,-0.12176,-0.15485,0.092033,0.086942,0.074217,-0.14212,-0.22102,0.076762,0.081852,0.04113,-0.19811,-0.21084 0.35104,0.21847,0.19196,0.24498,0.21847,0.2715,0.085903,0.11242,0.2715,0.19196,0.16544,-0.073177,-0.17923,-0.17923,-0.17923,-0.09969,-0.09969,-0.1262,-0.20574,-0.09969,-0.20574,-0.28528,-0.25877,-0.073177,-0.25877 0.19946,-0.14637,-0.14089,-0.14005,-0.13963,0.19946,0.20199,-0.13963,-0.14005,-0.14005,0.4484,0.20536,-0.1451,-0.14637,-0.143,0.44672,0.20536,-0.14426,-0.14342,-0.14173,0.16492,0.20704,-0.14173,-0.143,-0.14342 -0.24294,-0.19595,0.15518,0.15648,0.16301,-0.2077,-0.20901,0.17867,0.16692,0.19825,-0.21814,-0.21292,0.15779,0.19042,0.19303,-0.22728,-0.21031,0.15518,0.19694,0.19303,-0.25469,-0.23903,-0.25339,0.20347,0.16301 -0.23144,-0.20025,0.18964,0.18964,0.12726,-0.29382,-0.13787,0.22084,0.23643,0.12726,-0.30942,-0.21585,0.18964,0.14286,0.20524,-0.27823,-0.18465,0.18964,0.17405,0.018091,-0.24704,-0.26263,0.080474,0.14286,0.12726 -0.113,-0.1143,-0.11625,-0.11495,-0.1156,-0.11062,-0.11214,-0.11408,-0.11127,-0.10349,-0.10997,-0.11127,-0.11084,-0.11149,-0.10046,0.27297,-0.11279,-0.11452,-0.11149,-0.113,0.35319,0.33589,0.34454,0.40573,0.40919 0.3605,-0.10893,-0.11067,-0.11224,-0.11364,0.35474,-0.1098,-0.11155,-0.11329,-0.11469,0.35003,-0.1112,-0.11224,-0.11486,-0.11486,0.35352,-0.11574,-0.1112,-0.11294,-0.11329,0.35806,0.35841,-0.11067,-0.11155,-0.1119 -0.12646,-0.11241,-0.10118,-0.052021,0.39459,-0.11803,-0.11522,-0.098367,-0.039381,0.39178,-0.12084,-0.11522,-0.10118,-0.071683,0.40021,-0.12646,-0.11803,-0.099772,-0.071683,0.40021,-0.12084,-0.11382,-0.10399,-0.060447,0.40021 0.13302,0.12461,0.11339,0.12741,-0.32963,0.11059,0.12741,0.12741,0.10498,-0.34365,0.13582,0.12741,0.119,0.079743,-0.32963,0.13302,0.13582,0.12741,-0.25953,-0.33804,0.13582,0.15825,0.11339,-0.3128,-0.32122 0.082578,0.087401,0.12358,0.15734,-0.21407,0.082578,0.14769,0.26105,-0.23095,-0.25506,0.14528,0.14046,0.18628,-0.30089,-0.22854,0.14046,0.14769,0.15493,-0.27677,-0.3033,0.12117,0.19593,0.17422,-0.22854,-0.31053 0.095445,0.099508,0.096799,0.098154,0.095445,0.099508,0.096799,0.10357,0.10222,0.099508,0.10086,0.096799,0.10222,0.096799,0.096799,0.10357,0.10357,0.098154,0.10763,0.10492,-0.4002,-0.37582,-0.41103,-0.38666,-0.42457 0.17964,0.19072,0.19864,-0.20817,-0.20817,0.18914,0.19389,0.19785,-0.20817,-0.20896,0.19072,0.1931,0.19864,-0.20777,-0.20975,0.18914,0.19389,-0.20777,-0.20777,-0.20698,0.18835,0.19389,-0.20698,-0.20935,-0.20777 0.13177,0.18846,-0.18241,-0.21666,-0.24147,0.20145,0.22271,-0.20013,-0.19422,-0.23438,0.30539,0.25342,0.2298,-0.18123,-0.22021,0.14476,0.13885,0.14121,-0.19304,-0.19068,0.1483,0.1672,0.17783,-0.1954,-0.20131 -0.40425,-0.0072779,0.075426,0.09748,0.080939,-0.42079,0.0092628,0.09748,0.12505,0.10299,-0.3822,-0.0072779,0.12505,0.11402,0.10851,-0.38771,0.10851,0.13056,0.13607,0.12505,-0.36015,0.11953,0.12505,0.12505,0.16364 0.1717,0.2015,0.2015,0.1717,0.2015,0.052463,0.14189,0.19157,0.13195,0.16176,-0.076707,0.072335,0.072335,0.16176,0.19157,-0.24562,-0.14626,-0.036962,0.03259,-0.007154,-0.36485,-0.4046,-0.2953,-0.28536,-0.2953 -0.11547,-0.11723,-0.11547,-0.1137,-0.1084,-0.11017,-0.10664,-0.10664,-0.1137,-0.11194,-0.090749,-0.099576,-0.10487,-0.10134,-0.097811,-0.014831,-0.025424,-0.036017,-0.050141,-0.053672,0.50071,0.43362,0.43009,0.44068,-0.011299 -0.080879,-0.076983,-0.080879,-0.04192,0.02431,-0.10036,-0.080879,-0.088671,-0.0068568,0.02431,-0.092567,-0.073087,-0.0029609,0.0048309,0.0048309,-0.084775,-0.080879,-0.018544,0.0087268,-0.0029609,-0.014649,-0.065295,-0.010753,-0.02244,0.95933 0.10314,0.095235,0.095235,0.10314,-0.30817,0.095235,0.10314,0.10314,0.11896,-0.34772,0.10314,0.11105,0.11105,0.11105,-0.3899,0.11105,0.11633,0.11369,0.12424,-0.36617,0.12424,0.13215,0.1506,-0.32662,-0.38727 0.13111,-0.024024,-0.02572,-0.077855,-0.13211,0.14043,-0.029959,-0.039283,-0.077431,-0.1355,0.073888,-0.022753,-0.028687,-0.078703,-0.13508,0.17519,-0.01809,-0.076159,-0.076583,-0.13338,0.88897,-0.017667,-0.074464,-0.068106,-0.13804 0.33213,0.3678,0.34402,0.37374,0.35591,-0.089869,0.034949,-0.083925,0.2727,-0.036375,-0.18497,-0.1077,-0.16119,-0.024488,-0.018544,-0.19685,-0.17902,-0.17902,-0.11959,-0.06015,-0.14336,-0.14336,-0.14931,-0.1077,-0.095812 0.11249,0.082351,0.075135,0.13414,0.11376,0.083625,0.10315,0.077682,0.093388,0.087021,0.11801,0.10612,0.10315,0.082776,0.10697,0.10825,0.10697,0.10442,0.089143,0.10697,-0.39647,-0.39902,-0.39945,-0.39902,-0.40157 0.20506,0.21649,0.21649,-0.19126,-0.18745,0.21078,0.20077,0.22554,-0.18793,-0.18602,0.19934,0.28223,-0.19031,-0.18984,-0.19746,0.18077,0.18315,-0.19174,-0.19031,-0.19603,0.18029,0.18601,-0.18936,-0.19412,-0.19508 0.97956,-0.037299,-0.041265,-0.032011,-0.032011,-0.040383,-0.047434,-0.043909,-0.039061,-0.033553,-0.043248,-0.048095,-0.039943,-0.040604,-0.037739,-0.037519,-0.047875,-0.045231,-0.044129,-0.041705,-0.03796,-0.04435,-0.04479,-0.041485,-0.03796 0.11479,0.095164,0.095164,0.090802,0.079899,0.11043,0.10171,0.090802,0.092983,0.088622,0.11697,0.10389,0.092983,0.095164,0.088622,0.11915,0.11261,0.10607,0.10171,0.099525,-0.41075,-0.37804,-0.3933,-0.40639,-0.40857 0.97737,-0.018111,-0.031603,-0.027106,0.011874,-0.031603,-0.034602,-0.042098,-0.036101,-0.036101,-0.046596,-0.042098,-0.043597,-0.045096,-0.048095,-0.045096,-0.045096,-0.052592,-0.055591,-0.048095,-0.048095,-0.055591,-0.052592,-0.052592,-0.051093 -0.01165,0.01398,0.04194,-0.11184,-0.34717,-0.0093201,0.10718,0.086211,-0.076891,-0.35416,0.090871,0.19106,0.13048,-0.02563,-0.29824,0.20504,0.24232,0.15378,-0.072231,-0.30057,0.26096,0.28426,0.22834,-0.055921,-0.3728 0.014039,-0.0012208,0.052189,0.37265,0.86096,-0.0088507,-0.047001,-0.024111,-0.0088507,0.014039,-0.024111,-0.047001,-0.10041,-0.039371,-0.047001,-0.06226,-0.10041,-0.08515,-0.10804,-0.10041,-0.07752,-0.08515,-0.10041,-0.13856,-0.10804 -0.28187,-0.15257,-0.055599,-0.055599,-0.28187,-0.28187,-0.28187,-0.15257,-0.055599,-0.15257,-0.15257,-0.055599,-0.055599,-0.055599,-0.055599,0.041376,0.23532,0.041376,0.17067,0.17067,0.203,0.36462,0.23532,0.3323,0.3323 0.29445,-0.082858,-0.147,-0.15643,-0.15077,0.302,0.28691,-0.10927,-0.13379,-0.11682,0.32464,0.30766,-0.065879,-0.11682,-0.16209,0.30955,-0.10927,-0.15643,-0.15077,-0.19605,0.21899,0.25295,-0.086631,-0.17719,-0.17907 0.97978,-0.044304,-0.03973,-0.041719,-0.040128,-0.04331,-0.04152,-0.041122,-0.042117,-0.039333,-0.040128,-0.041122,-0.040128,-0.040923,-0.039333,-0.042117,-0.041122,-0.039333,-0.039333,-0.039333,-0.041122,-0.041719,-0.040923,-0.039929,-0.039929 0.44553,0.54233,0.23794,0.24544,0.45302,-0.091663,-0.092004,-0.093026,-0.094049,-0.094731,-0.092345,-0.094731,-0.095753,-0.096435,-0.097116,-0.09439,-0.097116,-0.097457,-0.099162,-0.10087,-0.096435,-0.097457,-0.097798,-0.10053,-0.10121 -0.17506,-0.14005,-0.14005,0.17506,0.39389,-0.1488,-0.16631,-0.15756,0.18381,0.49017,-0.1488,-0.14005,-0.20132,0.11379,0.11379,-0.17506,-0.14005,-0.1313,0.14005,0.20132,-0.12254,-0.15756,-0.12254,0.20132,0.25384 0.23902,0.22696,0.0076169,0.010027,-0.31176,0.13657,0.18117,0.041362,0.0269,-0.25391,0.13416,0.13416,0.22335,-0.17437,-0.23222,0.14501,0.18478,0.20165,-0.2057,-0.26476,0.16911,0.19322,-0.20811,-0.2503,-0.35394 -0.05829,-0.053346,-0.07065,-0.063234,-0.069414,-0.048402,-0.036042,-0.05829,-0.073122,-0.074358,0.010926,0.16666,-0.053346,-0.074358,-0.08301,0.073962,0.15183,-0.05829,-0.087954,-0.08301,0.9231,-0.07065,-0.078066,-0.079302,-0.053346 0.97899,-0.048021,-0.054579,-0.04449,-0.041968,-0.052561,-0.051048,-0.046004,-0.045499,-0.04449,-0.051048,-0.04903,-0.051048,-0.03995,-0.038942,-0.029358,-0.032384,-0.036419,-0.033897,-0.031375,-0.030871,-0.030366,-0.031375,-0.031375,-0.032888 0.24521,0.17981,0.1264,0.089337,-0.040374,0.24848,0.18744,0.1373,0.1373,0.18308,0.2463,0.1373,0.13294,0.1373,0.20161,-0.23766,-0.24311,-0.17335,-0.22349,-0.22567,-0.25401,-0.2442,-0.24311,-0.25401,-0.25074 0.37732,-0.10954,-0.1704,-0.079115,-0.20083,0.34689,0.13389,-0.018257,-0.23126,-0.13997,0.28603,-0.048686,-0.079115,-0.10954,-0.048686,0.28603,0.10346,-0.23126,-0.048686,-0.10954,0.46861,0.042601,-0.20083,-0.048686,-0.1704 0.97979,-0.040084,-0.040084,-0.040734,-0.041818,-0.038783,-0.040301,-0.040734,-0.040517,-0.041601,-0.040517,-0.039867,-0.040951,-0.041384,-0.040517,-0.042035,-0.040734,-0.041601,-0.040301,-0.040734,-0.041818,-0.042252,-0.041601,-0.040517,-0.040301 -0.059096,-0.0068207,0.17117,0.1861,0.21099,-0.24206,-0.071543,0.15623,0.17614,0.18859,-0.30678,-0.25824,0.15374,0.17241,0.1861,-0.31052,-0.30429,-0.091457,0.16245,0.18735,-0.30678,-0.24455,-0.10017,0.16992,0.18112 -0.15859,-0.13081,-0.14694,-0.12184,0.25634,-0.18189,-0.18726,-0.15859,0.26799,0.23214,-0.16217,-0.14514,-0.16217,0.26082,0.242,-0.18726,-0.18368,-0.15052,0.20705,0.30563,-0.15142,-0.18189,0.14611,0.17479,0.31728 0.49808,-0.12519,-0.08212,-0.07731,-0.12278,0.49742,-0.12278,-0.084306,-0.084962,-0.11316,0.32035,-0.12016,-0.084087,-0.079059,-0.1171,0.31991,-0.12016,-0.081683,-0.08365,-0.082994,0.31904,-0.1171,-0.084087,-0.084743,-0.087367 -0.30448,0.020097,0.17885,0.17835,0.14904,-0.30843,0.018944,0.016804,0.1772,0.17391,-0.30498,0.017627,0.16254,0.1665,0.17654,-0.30366,-0.30728,0.016804,0.16221,0.17325,-0.30283,-0.30662,0.016145,0.16567,0.16781 -0.058168,-0.050115,-0.053854,-0.0095605,-0.037172,-0.03861,-0.036022,-0.04954,-0.041774,-0.031995,-0.078877,-0.029119,-0.049827,-0.035446,-0.036022,-0.077726,-0.027968,-0.052128,-0.046376,0.0068339,-0.030557,-0.019627,-0.040048,-0.052128,0.97583 -0.23079,-0.22154,-0.21818,-0.21818,-0.22406,-0.24172,-0.23415,-0.22322,-0.22659,-0.20052,0.18284,-0.2392,0.17947,0.16266,0.18115,0.16602,0.17359,0.17191,0.17779,0.18788,0.16014,0.17191,0.17275,0.18452,0.20553 -0.20134,-0.28477,-0.20134,-0.18743,-0.20134,-0.29867,-0.21524,-0.14572,-0.090102,0.0072304,-0.15963,-0.24305,-0.062293,0.021135,0.18799,0.2158,0.2019,0.14628,0.062849,0.14628,0.25751,0.25751,0.25751,0.27142,0.25751 -0.068767,-0.074026,-0.027937,-0.028556,-0.031959,-0.023298,-0.073098,-0.025154,-0.0267,-0.030412,-0.023298,-0.075572,-0.025772,-0.026391,-0.030103,-0.070623,-0.079284,-0.025154,-0.028247,-0.031649,-0.01773,-0.0765,-0.025463,-0.028556,0.97425 0.21073,0.25136,0.1701,0.23782,0.18364,0.1701,0.21073,0.18364,0.15656,0.075299,0.1701,0.088842,0.088842,-0.033045,-0.12785,0.048213,-0.060131,-0.22265,-0.2091,-0.2091,-0.16848,-0.15493,-0.31745,-0.34453,-0.39871 -0.37703,-0.39539,-0.37703,-0.40763,-0.40763,0.1065,0.082016,0.051413,0.0085688,0.014689,0.14322,0.12486,0.11874,0.1065,0.088136,0.1677,0.12486,0.11262,0.069775,0.069775,0.14934,0.1371,0.11874,0.1065,0.063654 -0.13174,-0.15963,-0.15376,-0.15963,-0.14642,-0.12734,-0.15376,-0.15376,-0.15522,-0.14348,-0.089177,-0.13027,-0.14055,-0.14201,-0.13614,0.29683,0.2073,-0.052485,-0.053952,0.18675,0.37608,0.39956,0.38782,0.15886,0.2161 -0.06115,-0.080592,-0.072406,-0.02022,0.03913,-0.078546,-0.07036,-0.052964,-0.025336,0.038106,-0.076499,-0.075476,-0.057057,-0.0079405,0.042199,-0.028406,-0.06422,-0.040685,-0.058081,0.11485,-0.096965,-0.10106,-0.045801,-0.069336,0.94881 0.41513,0.29678,0.20574,0.20574,0.21485,0.3514,0.14202,0.15112,0.15112,0.16933,-0.19482,-0.21303,-0.1493,-0.17661,-0.10378,-0.1584,-0.19482,-0.24034,-0.17661,-0.20392,-0.067367,-0.10378,-0.10378,-0.10378,-0.11289 0.97969,-0.034067,-0.04322,-0.035592,-0.037499,-0.043983,-0.034448,-0.041695,-0.036736,-0.039406,-0.041313,-0.041313,-0.042457,-0.042076,-0.040169,-0.042457,-0.041313,-0.04322,-0.042839,-0.041313,-0.041695,-0.041313,-0.043602,-0.043983,-0.043983 -0.26911,-0.26994,-0.265,-0.265,-0.265,-0.26665,0.15068,-0.26665,-0.26583,-0.265,0.15027,0.14863,0.15027,0.13218,0.15479,0.16507,0.15891,0.15891,0.13588,0.13424,0.14246,0.14904,0.1585,0.14575,0.16261 -0.085105,-0.14722,-0.19381,-0.31806,-0.25594,-0.10063,-0.085105,-0.13169,-0.33359,-0.20935,-0.0074544,-0.038515,-0.069575,-0.16275,0.0080756,0.16338,0.11679,0.070196,0.24103,0.31868,0.28762,0.11679,0.16338,0.36527,0.28762 -0.2171,-0.23009,-0.19977,-0.23009,-0.25175,-0.13047,-0.16079,-0.18678,-0.19977,-0.20843,0.29402,0.12076,0.016806,-0.074156,-0.1348,0.31135,0.24205,0.14242,0.064453,-0.05683,0.32868,0.29402,0.21173,0.16408,0.090442 0.17379,0.17153,0.18283,0.18509,0.13536,0.17831,0.19187,0.18509,0.17831,0.14666,0.23482,0.18509,0.15796,-0.21502,0.16022,-0.2105,-0.19693,-0.18789,-0.2444,-0.2105,-0.2331,-0.2331,-0.25571,-0.25345,-0.22632 0.37759,-0.10747,-0.11259,-0.11022,-0.11508,0.37746,-0.11666,-0.11561,-0.11272,-0.11561,0.35198,-0.11981,-0.11535,-0.11167,-0.11311,0.34213,-0.12008,-0.11456,-0.10234,-0.11193,0.34055,0.34357,-0.10248,-0.10366,-0.11233 0.56998,-0.089912,-0.092708,-0.096747,-0.092397,0.5358,-0.091154,-0.095815,-0.096747,-0.096436,0.26302,-0.094572,-0.096747,-0.096436,-0.094572,0.26271,-0.094572,-0.095193,-0.094572,-0.096436,0.26458,-0.097679,-0.095504,-0.094572,-0.093329 0.21612,0.21423,-0.21665,-0.26956,-0.27523,0.2199,0.22368,-0.20814,-0.25066,-0.26389,0.22557,0.22557,0.014854,-0.22137,-0.23933,0.23124,0.05454,0.0091845,0.011074,-0.22326,0.24163,0.25392,0.0082396,0.0082396,0.010129 -0.34934,-0.25686,-0.071877,0.086675,0.35093,-0.23043,-0.23043,0.020612,0.12631,0.28487,-0.17758,-0.19079,-0.058665,0.047037,0.29808,-0.12473,-0.13794,-0.019026,0.086675,0.33772,0.073463,-0.24364,-0.032239,0.16595,0.24523 0.97587,-0.0067651,-0.043973,-0.0033826,-0.0067651,-0.050738,-0.045665,-0.025369,-0.050738,-0.062577,-0.045665,-0.045665,-0.049047,-0.062577,-0.059195,-0.032134,-0.030443,-0.049047,-0.062577,-0.062577,-0.016913,-0.037208,-0.062577,-0.033826,-0.030443 0.10832,0.12456,0.092077,-0.31797,-0.4357,0.12456,0.11238,0.10426,0.0027607,-0.43164,0.10832,0.096137,0.12862,0.10426,-0.3951,0.12456,0.12456,0.12456,0.11238,-0.26519,0.11238,0.12862,0.10426,0.14079,-0.23271 -0.11953,-0.12239,-0.072395,-0.053825,0.39329,-0.12668,-0.11668,-0.073823,-0.07668,0.40043,-0.12525,-0.12382,-0.078109,-0.075252,0.399,-0.12525,-0.11953,-0.096679,-0.053825,0.40043,-0.12811,-0.12668,-0.093822,-0.078109,0.39329 0.22652,-0.10424,-0.14753,-0.16469,-0.18966,0.21677,0.21911,-0.15884,-0.17132,-0.19785,0.23589,0.23159,-0.15923,-0.17327,-0.20331,0.22847,0.23237,0.21872,-0.17249,-0.20292,0.21521,0.21989,0.22067,-0.1803,-0.23958 -0.21587,-0.20932,-0.18967,-0.052133,0.1247,-0.22897,-0.22897,-0.14382,0.072305,0.26224,-0.24207,-0.18967,-0.039034,0.1378,0.27534,-0.22897,-0.11763,0.052657,0.23604,0.30808,-0.19622,0.039558,0.19674,0.29498,0.28189 0.17382,0.16924,0.21656,0.19519,0.18909,0.15245,0.13566,0.21809,0.19061,0.20893,0.18145,-0.13298,-0.12382,0.19519,0.20282,-0.20014,-0.22456,-0.21693,-0.13145,-0.11771,-0.24593,-0.2673,-0.29782,-0.29019,-0.18029 0.12626,0.12996,0.12739,0.12064,-0.36618,0.11228,0.10568,0.11163,0.11228,-0.35766,0.10826,0.10681,0.10826,0.11019,-0.3411,0.10922,0.10874,0.10568,0.10922,-0.37373,0.10922,0.10617,0.1052,-0.33483,-0.35959 0.05844,0.059582,-0.16212,-0.16255,-0.16469,0.058583,0.060867,-0.16169,-0.16212,-0.16369,0.31155,0.31341,-0.16155,-0.16155,-0.16384,0.31041,0.32183,-0.16112,-0.16212,-0.16384,0.31012,0.32183,0.14709,-0.16027,-0.16255 0.35937,0.35988,-0.11259,-0.11252,-0.11303,0.35528,-0.11398,-0.11412,-0.11215,-0.11252,0.35339,-0.11172,-0.11317,-0.11244,-0.1123,0.35485,-0.11106,-0.11164,-0.11266,-0.11288,0.35259,-0.11099,-0.11142,-0.11215,-0.11201 0.084631,0.085522,0.096654,0.097767,0.10712,0.084408,0.087748,0.10267,0.10177,0.11914,0.088639,0.093092,0.11113,0.11469,0.11402,0.089084,0.093314,0.098212,0.11625,0.11157,-0.40006,-0.39828,-0.39806,-0.39806,-0.40296 0.28099,-0.11074,-0.11036,-0.11954,-0.14593,0.28367,-0.11036,-0.14364,-0.14211,-0.14364,0.28941,0.28749,-0.14402,-0.14593,-0.14364,0.29438,0.2917,-0.14364,-0.1444,-0.14593,0.30394,0.29667,-0.14211,-0.1444,-0.14785 0.31552,0.31656,0.31449,0.64611,0.31811,-0.093311,-0.09098,-0.092275,-0.091498,-0.099011,-0.094866,-0.090721,-0.095902,-0.095384,-0.097716,-0.095125,-0.097457,-0.095902,-0.09668,-0.097975,-0.098234,-0.095643,-0.097457,-0.096939,-0.097716 -0.37845,-0.40099,-0.40099,-0.40099,-0.39348,0.064928,0.049898,0.049898,0.049898,0.027354,0.094987,0.1025,0.1025,0.12505,0.14759,0.14759,0.11753,0.1025,0.14008,0.087472,0.11753,0.079958,0.1025,0.11753,0.14759 -0.2124,-0.15553,-0.024026,0.047057,0.082598,-0.22661,-0.21595,0.27808,0.13236,0.14657,-0.27637,-0.1271,0.13946,0.10392,0.29229,-0.21595,-0.2124,0.12525,0.20344,0.29229,-0.3048,-0.31902,0.10392,0.1679,0.17501 0.11738,0.079636,0.14569,0.079636,0.17399,0.14569,0.10794,0.098507,0.15512,0.22117,0.2023,0.16456,0.10794,0.19286,0.24948,-0.071333,-0.12795,-0.20343,-0.024155,-0.21287,-0.30722,-0.28835,-0.30722,-0.38271,-0.31666 0.22732,0.059446,0.23812,-0.26641,-0.27136,0.064396,0.066197,0.063946,-0.27361,-0.27136,0.22957,0.23632,0.044143,-0.27541,-0.27721,0.22597,0.22777,0.054495,0.047294,-0.27631,0.22057,0.067547,0.054045,0.058545,-0.27406 0.97899,-0.047179,-0.047719,-0.050957,-0.049878,-0.048798,-0.048258,-0.049338,-0.049338,-0.047719,-0.039082,-0.030985,-0.040701,-0.046099,-0.038542,-0.042321,-0.029365,-0.033144,-0.046099,-0.031524,-0.040161,-0.040161,-0.032604,-0.028286,-0.020728 0.93782,0.054366,0.052243,0.050119,0.060737,0.045872,-0.062436,-0.06456,-0.045447,-0.053942,0.0097689,-0.079426,-0.08792,-0.079426,-0.079426,0.033129,-0.08792,-0.081549,-0.08792,-0.081549,0.026758,-0.08792,-0.10491,-0.096415,-0.090044 -0.10317,-0.11537,-0.1113,-0.054349,0.42975,-0.10317,-0.11537,-0.11537,-0.046213,0.44602,-0.10723,-0.1113,-0.099098,-0.078758,0.385,-0.09503,-0.10723,-0.11944,-0.11537,0.3728,-0.10723,-0.09503,-0.10723,-0.078758,0.35246 0.96276,0.023679,0.021656,-0.060312,-0.062336,0.023679,0.025703,0.029751,-0.060312,-0.0593,-0.082574,-0.048168,-0.00060716,-0.058288,-0.062336,-0.051204,-0.073467,-0.0087027,-0.063347,-0.063347,-0.057276,-0.081562,-0.052216,-0.073467,-0.068407 0.38848,0.38848,0.44495,0.30379,0.38848,-0.11971,-0.035009,-0.14794,-0.035009,-0.063242,-0.035009,-0.035009,-0.17617,-0.091474,-0.063242,-0.035009,-0.14794,-0.11971,-0.14794,-0.0067759,-0.11971,-0.23264,-0.091474,-0.17617,-0.035009 -0.083532,-0.042738,-0.021653,-0.016153,-0.0069854,-0.085365,-0.05603,-0.023487,-0.017069,-0.012944,-0.094533,-0.051447,-0.045946,-0.017069,-0.0069854,-0.10691,-0.052822,-0.052822,-0.02532,0.012724,0.96841,-0.056947,-0.057864,-0.051905,0.0053903 -0.22548,-0.23528,0.17296,0.17595,0.17296,-0.22634,-0.22335,0.17126,0.17467,0.17595,-0.22165,-0.22335,0.17296,0.16956,0.17041,-0.2225,-0.22378,0.167,0.17424,0.17296,-0.22506,-0.22719,-0.22506,0.18958,0.21856 -0.17673,-0.27141,-0.27141,-0.33453,-0.39765,-0.050496,-0.082055,-0.20829,-0.20829,0.012624,0.012624,-0.11361,-0.050496,0.075743,0.13886,0.13886,0.17042,0.20198,0.1073,0.29666,0.17042,0.32822,0.13886,0.20198,0.17042 0.11627,0.10354,0.073835,0.086565,-0.08317,0.095052,0.090808,0.129,0.044131,-0.46932,0.11203,0.11627,0.129,0.061105,-0.49478,0.10354,0.099295,0.10778,0.073835,-0.33777,0.099295,0.086565,0.099295,0.035644,-0.47781 0.26106,0.26257,0.26144,0.26333,0.26144,-0.1385,0.27163,0.27163,0.27314,0.27314,-0.15359,-0.14416,-0.14756,-0.15246,-0.1468,-0.15435,-0.15322,-0.15246,-0.14793,-0.15133,-0.14982,-0.15057,-0.15171,-0.15095,-0.15397 -0.19786,0.042368,0.14064,0.27168,0.26076,-0.19786,-0.034069,0.15156,0.21708,0.20616,-0.23062,-0.088667,0.042368,0.14064,0.18432,-0.40533,-0.23062,-0.0013103,0.075127,0.14064,-0.40533,-0.26338,-0.077747,0.053288,0.20616 -0.11132,-0.09557,-0.11657,-0.011552,0.43479,-0.10082,-0.11132,-0.11132,-0.058812,0.42429,-0.10607,-0.10607,-0.12708,-0.043059,0.34027,-0.12708,-0.090319,-0.12708,-0.069315,0.41379,-0.13233,-0.12708,-0.10082,-0.10082,0.36128 -0.057194,-0.055212,-0.049267,-0.024495,-0.016568,-0.055212,-0.055212,-0.036385,-0.018549,-0.017558,-0.058185,-0.057194,-0.048276,-0.037376,-0.012604,-0.052239,-0.048276,-0.043321,-0.054221,-0.022513,-0.036385,-0.038367,-0.035394,-0.047285,0.97729 0.20483,0.22465,0.2197,0.21226,0.20235,0.1974,0.18749,0.1974,0.19244,0.18997,-0.19898,-0.17421,0.11812,0.16519,0.17262,-0.20642,-0.21633,-0.21633,-0.20642,-0.19898,-0.21385,-0.21633,-0.21633,-0.20394,-0.21633 0.12719,0.13197,0.067763,0.076644,0.073911,0.11012,0.17774,0.1026,0.096453,0.075277,0.10533,0.099869,0.099186,0.078693,0.065714,0.10533,0.087573,0.07801,0.11353,0.11353,-0.39538,-0.39674,-0.39538,-0.39811,-0.40084 0.091751,0.3629,0.20168,-0.21604,-0.282,0.047781,0.27496,0.15038,-0.2307,-0.23803,0.09908,0.22366,0.018467,-0.20138,-0.22337,0.055109,0.31893,0.11374,-0.20871,-0.21604,0.055109,0.17969,0.040453,-0.20871,-0.20871 0.58483,-0.09014,-0.090907,-0.091675,-0.091675,0.59865,-0.091675,-0.090524,-0.092827,-0.091291,0.21021,-0.090524,-0.089756,-0.092827,-0.091291,0.21155,-0.09014,-0.088988,-0.091291,-0.092827,0.2129,-0.088221,-0.088604,-0.091675,-0.091291 0.16426,0.18976,0.1515,0.126,-0.15457,0.18976,0.18976,0.18976,0.036728,-0.3076,0.1515,0.1515,0.1515,-0.18007,-0.25659,0.08774,0.08774,0.13875,-0.2821,-0.29485,0.11325,0.11325,-0.014283,-0.38412,-0.35861 0.37755,0.37595,-0.03297,-0.084286,-0.1511,0.38236,-0.0035707,-0.053817,-0.1062,-0.16286,0.38717,-0.020676,-0.065042,-0.12919,-0.17836,0.39199,-0.020676,-0.082147,-0.12758,-0.19333,0.0039128,-0.035108,-0.10834,-0.15431,-0.20937 0.16839,0.096225,0.072169,0,-0.21651,0.24056,-0.048113,0.21651,-0.096225,-0.43301,0.14434,0.21651,0.21651,0,-0.21651,0.14434,0.16839,0.072169,-0.096225,-0.43301,0.21651,0.072169,-0.048113,-0.096225,-0.36084 0.97927,-0.042636,-0.042636,-0.038446,-0.035303,-0.058874,-0.041589,-0.040017,-0.035303,-0.035303,-0.055207,-0.032684,-0.036875,-0.037398,-0.035827,-0.048398,-0.044731,-0.041589,-0.036351,-0.034779,-0.049969,-0.045255,-0.040017,-0.032684,-0.037398 0.2344,0.22924,0.22408,-0.1394,-0.16006,0.20239,0.20239,0.20446,-0.18071,-0.1962,0.17038,0.16625,0.17141,-0.21375,-0.21272,0.13734,0.13321,0.14147,-0.25196,-0.23957,0.10739,0.095001,-0.27881,-0.28707,-0.25919 -0.25893,-0.27641,-0.21985,-0.17048,-0.27333,-0.27127,-0.21162,-0.10569,-0.14374,-0.19928,0.15555,0.26868,-0.017237,-0.058376,0.0074462,0.12881,0.2512,0.28925,0.040358,0.020816,0.172,0.2512,0.24297,0.30262,0.075326 0.11626,0.13313,0.14079,-0.28232,-0.30378,0.12853,0.13926,0.13313,-0.27465,-0.30531,0.14079,0.12853,0.12699,-0.28078,-0.29611,0.15459,0.13006,0.13006,0.12699,-0.27465,0.20977,0.13006,0.12546,0.12853,-0.30531 -0.11769,-0.11655,-0.084025,-0.084025,0.41303,-0.11884,-0.12283,-0.10514,-0.08003,0.3999,-0.11998,-0.1234,-0.094868,-0.084596,0.39533,-0.11313,-0.11998,-0.074324,-0.068046,0.39077,-0.11427,-0.10514,-0.073753,-0.07147,0.39305 -0.081494,-0.055374,-0.046667,-0.055374,-0.055374,-0.081494,-0.10761,-0.0902,-0.081494,-0.081494,-0.081494,-0.055374,-0.055374,-0.055374,-0.055374,-0.081494,-0.055374,-0.055374,-0.046667,0.1797,-0.10761,-0.037961,0.066518,0.3016,0.87623 -0.21293,-0.20919,-0.10198,-0.1076,-0.1076,-0.21106,-0.21106,-0.10479,-0.10854,-0.10947,-0.21387,-0.21293,-0.10573,-0.10854,-0.10947,0.24304,0.2833,0.26411,0.27066,-0.11134,0.25241,0.28377,0.28237,0.23274,0.23368 0.97978,-0.039794,-0.039599,-0.041741,-0.040183,-0.039599,-0.039599,-0.039015,-0.04213,-0.039989,-0.042714,-0.039015,-0.039405,-0.040962,-0.04213,-0.042519,-0.04213,-0.04213,-0.041546,-0.039599,-0.040962,-0.041546,-0.04213,-0.039794,-0.041546 0.20473,0.20765,0.20912,-0.18449,-0.19813,0.20181,0.20912,-0.1952,-0.18303,-0.19861,0.19742,0.21253,-0.19472,-0.18254,-0.19179,0.21253,0.20473,-0.18351,-0.18546,-0.20495,0.20571,0.2135,0.2174,-0.18254,-0.21128 -0.37085,-0.1952,0.13235,0.14184,0.13235,-0.39458,-0.17621,0.13235,0.15134,0.1276,-0.38034,0.056396,0.12286,0.1276,0.14184,-0.31863,0.06589,0.1371,0.1276,0.1276,-0.34236,0.094373,0.11336,0.1276,0.11811 0.066568,-0.10351,0.1968,-0.23196,-0.23345,0.19056,0.18194,0.23308,-0.23285,-0.23255,0.1858,0.17956,0.19621,-0.23137,-0.23374,0.18342,0.18372,0.19264,-0.23345,-0.23226,0.068352,0.18253,0.1861,-0.23018,-0.23196 0.11547,0.064378,-0.29328,-0.26773,-0.088903,0.26875,0.089925,-0.26773,-0.19109,-0.21664,0.34539,0.19211,-0.16554,-0.14,-0.14,0.31985,0.21766,-0.088903,-0.063356,-0.063356,0.31985,0.26875,-0.11445,-0.063356,-0.037809 0.33599,0.35439,0.35439,0.34826,0.35439,0.37279,-0.05037,-0.058547,-0.06468,-0.081033,-0.10761,-0.10148,-0.11579,-0.12396,-0.12396,-0.11987,-0.13214,-0.12601,-0.12601,-0.1301,-0.1301,-0.13214,-0.12601,-0.13827,-0.13214 0.33188,0.34588,-0.11005,-0.13027,-0.15206,0.33344,-0.0727,-0.10538,-0.15673,-0.15828,0.32099,-0.099153,-0.10382,-0.1505,-0.16606,0.32254,-0.08048,-0.10538,-0.11316,-0.16762,0.28675,0.28053,-0.086705,-0.10693,-0.15673 0.97732,-0.027751,-0.027751,-0.027751,0.0033799,-0.035163,-0.032198,-0.041092,-0.038128,-0.024786,-0.047022,-0.041092,-0.038128,-0.03961,-0.038128,-0.058881,-0.064811,-0.048505,-0.044057,-0.035163,-0.064811,-0.058881,-0.049987,-0.044057,-0.052952 0.97961,-0.042325,-0.04339,-0.043815,-0.045093,-0.04339,-0.042112,-0.040835,-0.042325,-0.045306,-0.042538,-0.041473,-0.037002,-0.038067,-0.044028,-0.044241,-0.044454,-0.036151,-0.039131,-0.034235,-0.042325,-0.041899,-0.039344,-0.038706,-0.027422 -0.061679,-0.054751,-0.049142,-0.047823,-0.037596,-0.05772,-0.038915,-0.034627,-0.036276,-0.034627,-0.053431,-0.036276,-0.034297,-0.034297,-0.034627,-0.051122,-0.034956,-0.034627,-0.035286,-0.036606,-0.044194,-0.034297,-0.026709,-0.034956,0.97883 -0.21752,-0.18689,-0.18252,-0.16939,-0.13877,-0.17814,-0.17814,-0.13002,-0.086272,-0.073147,-0.14314,-0.13002,-0.086272,-0.020649,0.0099746,-0.077522,-0.055648,0.0055998,0.12372,0.27246,0.14122,0.28121,0.35996,0.40808,0.45183 -0.036473,0.036209,0.063465,-0.20579,-0.20827,-0.034821,-0.042255,0.045294,-0.029866,-0.046384,0.028776,-0.041429,-0.031518,-0.032344,-0.053818,0.041991,-0.036473,-0.041429,-0.03317,-0.071988,0.93235,-0.033995,-0.046384,-0.038951,-0.082726 -0.26125,-0.26523,0.11955,0.16877,0.17722,-0.26523,-0.25429,0.17871,0.17871,0.17921,-0.26523,-0.2697,0.16131,0.17722,0.17672,-0.26523,-0.27269,0.11756,0.11458,0.15236,-0.26622,0.11358,0.11458,0.11756,0.13745 0.93523,0.10157,0.099582,0.099582,-0.056512,0.085166,-0.067449,-0.048061,-0.055021,-0.066951,-0.066951,-0.066454,-0.068443,-0.06894,-0.069437,-0.070928,-0.070928,-0.06894,-0.070431,-0.068443,-0.067946,-0.069934,-0.066951,-0.066951,-0.06546 0.34546,0.17174,0.1481,0.11974,0.11738,0.31001,0.16583,0.14101,0.12447,0.11501,0.2391,0.1481,0.12447,-0.17689,0.11028,-0.20644,-0.21116,-0.22534,-0.17571,-0.22416,-0.24662,-0.25725,-0.22889,-0.23243,-0.1958 0.3855,-0.0514,-0.0257,-0.2056,-0.1285,0.3855,-0.0514,-0.1028,-0.1285,-0.1028,0.257,-0.1542,-0.1799,-0.1285,-0.1542,0.4369,-0.1285,-0.1285,-0.1285,-0.0257,0.4112,0.1028,-0.077101,-0.1028,0.0257 0.098252,0.45901,0.48023,0.43248,0.42187,-0.11396,-0.08743,-0.076819,-0.082124,-0.066209,-0.10865,-0.13518,-0.09804,-0.10865,-0.10335,-0.092735,-0.10335,-0.09804,-0.10865,-0.09804,-0.082124,-0.082124,-0.08743,-0.08743,-0.071514 -0.15663,-0.24114,-0.26931,-0.29748,-0.10029,-0.015775,-0.10029,-0.1848,-0.10029,-0.15663,0.040565,-0.043945,-0.1848,-0.015775,-0.24114,0.18141,0.15324,0.18141,0.15324,-0.043945,0.37861,0.35044,0.35044,0.20958,0.15324 -0.16255,-0.1987,-0.20567,0.060454,0.27714,-0.16102,-0.15906,-0.16081,0.057406,0.40149,-0.16385,-0.16516,-0.15754,0.22509,0.22379,-0.16342,-0.16625,-0.17039,0.22509,0.22509,-0.16429,-0.16799,0.22379,0.22226,0.22509 0.34694,0.34966,-0.11148,-0.11419,-0.11167,0.34946,-0.11167,-0.11167,-0.11245,-0.11206,0.34675,-0.11264,-0.11264,-0.11284,-0.11342,0.34597,-0.11148,-0.11245,-0.11303,-0.11206,0.39465,-0.11051,-0.11206,-0.11226,-0.11284 -0.11753,-0.13751,-0.086464,-0.053174,0.38846,-0.11531,-0.13751,-0.084244,-0.064271,0.35961,-0.10866,-0.12863,-0.064271,-0.06649,0.4151,-0.12197,-0.11975,-0.075367,-0.068709,0.43285,-0.12863,-0.11975,-0.099779,-0.084244,0.38625 0.15625,-0.035233,0.079657,-0.073529,-0.11183,0.11795,0.079657,-0.11183,-0.073529,-0.26501,0.19455,0.079657,0.15625,-0.11183,-0.22672,0.46262,0.23284,-0.035233,-0.18842,-0.3416,0.19455,0.30944,0.04136,-0.18842,-0.3416 -0.00077291,0.0088885,0.012109,0.005668,-0.25519,0.031432,0.041093,0.047534,0.037873,-0.36469,0.082959,0.095841,0.0894,0.1055,-0.38401,0.14737,0.15381,0.14093,0.14737,-0.41621,0.17313,0.17957,0.17957,0.20534,-0.46452 0.97918,-0.041459,-0.057308,-0.027196,-0.050968,-0.042252,-0.046214,-0.033535,-0.039082,-0.048591,-0.043044,-0.043837,-0.03829,-0.041459,-0.046214,-0.054138,-0.03512,-0.040667,-0.036705,-0.039875,-0.030365,-0.041459,-0.032743,-0.031158,-0.037497 0.38946,0.40488,0.3856,0.37018,0.42031,-0.11568,-0.10411,-0.11568,-0.13496,-0.12339,-0.11568,-0.12725,-0.11183,-0.11183,-0.12339,-0.12339,-0.11183,-0.12339,-0.12725,-0.12339,-0.034704,-0.01928,-0.050128,-0.034704,-0.03856 -0.12099,-0.1966,-0.095781,0.055452,0.45874,-0.14619,-0.14619,-0.020165,-0.020165,0.45874,-0.1966,-0.1714,-0.020165,0.055452,0.38313,-0.12099,-0.22181,-0.095781,-0.020165,0.30751,-0.095781,-0.1714,-0.095781,0.055452,0.18148 0.34814,0.22665,0.056566,-0.11352,-0.23744,0.18049,0.17077,-0.40024,-0.15969,-0.27389,0.18049,0.16591,0.073575,-0.077074,-0.23501,0.17077,0.16105,0.071145,-0.069784,-0.25202,0.16105,0.16105,0.11002,-0.096512,-0.32248 -0.18401,-0.18401,-0.18372,-0.18372,-0.18401,-0.18401,-0.18343,-0.18343,-0.1843,-0.1843,0.015344,0.014472,0.0136,0.013891,0.020866,0.014472,0.015053,0.015344,0.014472,0.020866,0.46288,0.4623,0.41551,0.19058,0.14931 -0.0081908,0.10557,-0.1447,-0.25847,-0.12195,0.15107,0.15107,-0.1447,-0.076447,-0.30397,0.24208,0.21933,0.15107,-0.1447,-0.19021,0.44685,0.24208,-0.076447,-0.16746,-0.23571,0.35584,0.12832,-0.030943,-0.12195,-0.16746 -0.21007,-0.14187,-0.073661,0.011595,0.47198,-0.15892,-0.12482,-0.14187,0.028646,0.42082,-0.14187,-0.073661,-0.15892,-0.090713,0.30147,-0.090713,-0.17597,-0.12482,0.028646,0.38672,-0.10776,-0.10776,-0.073661,0.062749,0.28441 -0.097982,-0.099014,-0.098808,-0.098188,-0.099014,-0.096743,-0.097569,-0.097569,-0.097982,-0.097569,-0.096949,-0.096949,-0.096743,-0.097362,-0.096949,-0.096536,-0.09571,-0.096329,-0.096949,-0.097569,0.32749,0.34628,0.35392,0.33038,0.59041 0.31893,0.099885,-0.20678,0.099885,-0.33821,0.1875,0.23131,-0.075352,-0.20678,-0.25059,0.31893,0.012267,-0.075352,0.056076,-0.33821,0.14369,0.14369,0.099885,-0.11916,-0.25059,0.1875,0.1875,0.14369,-0.11916,-0.25059 0.35649,-0.11379,-0.11566,-0.11238,-0.11285,0.35461,-0.11379,-0.11332,-0.11472,-0.11238,0.35273,-0.1044,-0.11379,-0.11238,-0.11472,0.35508,-0.10815,-0.1105,-0.11191,-0.11472,0.35179,0.36447,-0.1105,-0.1105,-0.11472 0.23291,0.26115,0.22902,-0.18387,-0.18339,0.22707,0.23437,0.23876,-0.18241,-0.19604,0.2037,0.20467,-0.19604,-0.19312,-0.18923,0.1964,0.19347,-0.20189,-0.19799,-0.20091,0.13699,0.11216,-0.16634,-0.17949,-0.19994 -0.20379,-0.16779,-0.16779,0.22828,0.24628,-0.13178,-0.18579,-0.18579,0.19227,0.33629,-0.077772,-0.20379,-0.14978,0.21027,0.24628,-0.11378,-0.11378,-0.18579,0.13826,0.3723,-0.077772,-0.14978,-0.095775,-0.095775,0.33629 -0.28041,0.14406,0.15693,0.11834,0.18265,-0.38331,0.028298,0.1312,0.1312,0.18265,-0.319,-0.074605,0.14406,0.1312,0.19552,-0.37045,-0.087467,0.10548,0.16979,0.1312,-0.40904,-0.2161,0.07975,0.07975,0.028298 -0.23059,-0.22298,-0.1938,0.059932,0.23755,-0.22045,-0.18112,-0.19888,0.082769,0.2312,-0.17858,0.04344,0.056126,0.27688,0.2109,-0.19634,-0.20649,0.051052,0.33904,0.26292,-0.22045,-0.22045,0.04344,0.080231,0.29464 0.063626,0.063456,0.065665,0.065155,-0.39147,0.084698,0.082829,0.085888,0.075861,-0.39062,0.086907,0.084528,0.084188,0.082829,-0.38808,0.088097,0.085888,0.086398,0.084528,-0.38825,0.090136,0.088777,0.25447,0.24291,-0.38842 -0.043398,-0.044308,-0.046129,-0.046584,-0.046129,-0.043853,-0.046811,-0.043398,-0.045674,-0.044991,-0.043398,-0.043853,-0.046811,-0.036799,-0.032021,-0.038847,-0.040668,-0.044991,-0.031338,-0.029063,-0.032931,-0.037254,-0.034979,-0.035206,0.97944 -0.20813,-0.017703,0.0079309,0.011593,0.24073,-0.22278,-0.21545,-0.006194,0.013685,0.24492,-0.22487,-0.22382,0.22399,0.23445,0.24282,-0.22382,-0.20813,-0.0088097,0.24439,0.24492,-0.19139,-0.22591,-0.22958,0.24387,0.25329 -0.0071585,0.018149,-0.028851,-0.15539,-0.34881,0.030803,0.056111,0.019957,-0.14635,-0.32531,0.39415,0.086842,0.059726,-0.077659,-0.27651,0.43754,0.097688,0.050688,-0.04512,-0.24216,0.39957,0.11938,0.075996,-0.027043,-0.16624 -0.34099,-0.16852,-0.11925,-0.09461,-0.14389,-0.11925,-0.069972,-0.11925,-0.09461,-0.11925,-0.09461,-0.11925,-0.14389,-0.09461,-0.24244,0.0039421,0.12713,0.17641,0.077856,0.0039421,0.42279,0.34887,0.34887,0.25032,0.32424 -0.32915,-0.33847,-0.37109,-0.38973,-0.38973,0.14613,0.14613,0.048273,-0.086855,-0.19869,0.18806,0.1601,0.10885,0.057593,0.029635,0.16942,0.15544,0.12283,0.10885,0.052933,0.16942,0.16942,0.10885,0.10885,0.052933 0.21214,0.21214,0.062324,0.15221,0.2421,0.092287,0.092287,0.15221,0.18218,0.18218,0.062324,0.062324,0.15221,0.15221,0.092287,-0.11746,-0.027566,-0.057529,-0.027566,-0.17738,-0.3272,-0.20735,-0.41709,-0.41709,-0.3272 0.34763,0.35836,0.13854,0.1305,0.13318,0.34763,0.35032,0.17875,0.15998,0.16803,-0.15634,-0.16706,-0.16706,-0.16974,-0.16706,-0.16974,-0.17778,-0.18047,-0.17778,-0.17778,-0.10004,-0.10272,-0.13489,-0.1483,-0.11613 0.96731,0.0039105,-0.044082,-0.060079,-0.079632,0.021685,-0.017419,-0.049414,-0.052969,-0.084964,-0.017419,-0.026307,-0.056524,-0.054747,-0.084964,-0.017419,-0.0031995,-0.056524,-0.060079,-0.070744,0.016353,0.014575,-0.054747,-0.052969,-0.079632 -0.16245,-0.15994,-0.16113,-0.16033,-0.16099,-0.15954,-0.16007,-0.16166,-0.16113,-0.16218,-0.11712,-0.11738,-0.11765,-0.11804,-0.11831,-0.056986,0.18288,0.17958,0.43662,0.4049,0.12063,0.11878,0.27143,0.27024,0.26984 0.23756,0.2382,0.24994,-0.19321,-0.19416,0.23597,0.22296,-0.18496,-0.18718,-0.1967,0.22169,0.18264,-0.1894,-0.18591,-0.19765,0.17471,0.1801,0.17979,-0.18527,-0.19099,0.18201,0.1801,-0.18496,-0.19797,-0.19734 -0.21088,-0.080478,-0.17362,-0.04322,0.29211,-0.17362,-0.11774,-0.155,-0.11774,0.36662,-0.099108,-0.11774,-0.061849,0.049926,0.38525,-0.155,-0.099108,-0.13637,0.10581,0.42251,-0.099108,-0.19225,-0.080478,0.14307,0.34799 0.26487,0.32254,0.14201,0.13533,0.31753,0.17962,0.31585,0.15037,0.14034,0.13198,0.15539,0.1487,-0.1714,-0.14549,-0.15134,-0.19146,-0.19313,-0.19731,-0.18644,-0.18979,-0.19814,-0.19647,-0.19397,-0.19397,-0.19564 0.97952,-0.052093,-0.03761,-0.044295,-0.052093,-0.038724,-0.035382,-0.034268,-0.044295,-0.044295,-0.036496,-0.039838,-0.038724,-0.040953,-0.042067,-0.043181,-0.039838,-0.035382,-0.038724,-0.03761,-0.038724,-0.034268,-0.042067,-0.039838,-0.048751 0.97975,-0.043301,-0.043862,-0.040496,-0.036849,-0.042459,-0.044142,-0.04274,-0.042179,-0.040776,-0.043301,-0.042459,-0.040496,-0.039373,-0.038532,-0.041057,-0.041057,-0.039934,-0.039093,-0.038812,-0.042459,-0.041337,-0.039373,-0.038812,-0.036849 -0.24691,-0.23648,0.19524,0.19576,0.19559,-0.24709,-0.23562,0.19325,0.098906,0.097765,-0.24743,-0.23682,0.19205,0.19171,0.09805,-0.24737,-0.23362,0.19005,0.19045,0.09999,-0.24834,-0.23311,0.18828,0.18851,0.097195 0.29889,0.189,0.11575,-0.21391,-0.14065,0.40877,0.042489,0.042489,-0.25054,-0.25054,0.37214,0.11575,-0.10402,-0.030768,-0.17728,0.22563,0.042489,0.0058605,-0.28717,-0.067396,0.26226,-0.10402,-0.21391,-0.14065,-0.14065 -0.19822,-0.19822,-0.16562,0.013693,0.33971,-0.14932,-0.14932,-0.19822,0.095197,0.42122,-0.10041,-0.14932,-0.084113,0.013693,0.38861,-0.10041,-0.10041,-0.11671,-0.018909,0.29081,-0.051511,-0.067812,-0.11671,-0.018909,0.42122 -0.38983,-0.40371,-0.40966,-0.39379,-0.36603,0.024587,0.030536,0.086056,0.093987,0.086056,0.078124,0.048381,0.074158,0.062261,0.092004,0.097953,0.093987,0.097953,0.097953,0.14554,0.17925,0.19313,0.12175,0.13364,0.12571 -0.39004,0.0067711,0.094708,0.083715,0.12109,-0.38894,0.0078703,0.092509,0.09141,0.11779,-0.38235,0.030954,0.094708,0.094708,0.28267,-0.38125,0.030954,0.1013,0.098005,0.20243,-0.37795,0.029854,0.098005,0.1046,0.13648 -0.00027334,0.024886,0.0056283,-0.10464,-0.028539,-0.17857,0.028614,-0.0030689,-0.091905,-0.08942,0.02644,0.023955,0.012151,-0.097185,-0.084139,0.023955,0.020848,0.0053177,-0.088799,-0.082276,0.93654,0.024886,-0.098428,-0.099359,-0.086624 -0.18136,-0.17732,0.25134,0.24142,0.21101,-0.18216,-0.18152,-0.1791,0.22271,0.22198,-0.18071,-0.17305,-0.17192,0.2215,0.22069,-0.18079,-0.17555,-0.17192,0.22198,0.2219,-0.18095,-0.17224,-0.17152,0.2219,0.22368 0.079817,-0.27103,-0.38067,-0.33681,-0.27103,-0.029822,-0.13946,-0.16139,-0.22717,-0.095605,-0.007894,-0.007894,-0.007894,-0.095605,-0.029822,0.1456,0.1456,0.1456,0.079817,0.079817,0.29909,0.32102,0.23331,0.32102,0.21138 0.39327,0.29719,-0.087108,-0.055083,-0.18318,0.26517,0.10504,-0.11913,-0.11913,-0.087108,0.10504,0.008967,-0.15116,-0.34331,-0.11913,0.42529,0.16909,-0.023058,-0.15116,-0.24723,0.23314,0.073017,-0.023058,-0.24723,-0.11913 0.057433,0.036003,0.057433,0.057433,-0.1783,0.12172,0.078863,0.16458,0.036003,-0.3926,0.10029,0.16458,0.078863,0.057433,-0.37117,0.057433,0.10029,0.10029,0.014573,-0.41403,0.10029,0.20744,0.078863,0.20744,-0.52118 0.1074,0.24224,-0.21109,-0.30384,-0.28969,0.1115,0.37001,0.12044,-0.18762,-0.19582,0.18786,0.12528,0.17706,-0.19135,-0.20327,0.26273,0.17221,0.12379,-0.18539,-0.1988,0.13608,0.10591,0.12155,-0.1947,-0.20252 0.97851,-0.028716,-0.037505,-0.049809,-0.051919,-0.043481,-0.044184,-0.034341,-0.046294,-0.050864,-0.03645,-0.04313,-0.039966,-0.045239,-0.049809,-0.034692,-0.028716,-0.050512,-0.049809,-0.041372,-0.018872,-0.010434,-0.051567,-0.048755,-0.042075 0.31553,0.33196,0.33196,0.32101,0.20058,0.31006,0.24984,0.030875,-0.045765,-0.073136,0.096566,-0.051239,-0.067662,-0.11146,-0.10598,-0.14978,-0.13335,-0.11693,-0.11146,-0.10598,-0.25379,-0.24284,-0.22641,-0.20999,-0.18262 0.23931,0.24305,0.23507,0.2403,0.23107,-0.046853,0.2418,0.23881,0.23033,0.24006,-0.045107,-0.045855,-0.045855,-0.046105,-0.046354,-0.28312,-0.045606,-0.045606,-0.046853,-0.046604,-0.27937,-0.28037,-0.27763,-0.27863,-0.27987 0.13775,0.14059,0.13869,0.11379,-0.29453,0.18347,0.14532,0.1491,0.084462,-0.30399,0.19671,0.14878,0.081625,0.067752,-0.31975,0.12009,0.11126,0.086354,-0.31281,-0.32984,0.12482,0.10527,0.083516,-0.32038,-0.33804 0.28912,0.30819,0.23191,0.13655,0.098409,0.19377,0.21284,0.13655,0.17469,0.098409,-0.035092,0.060266,0.041194,0.079337,-0.01602,-0.22581,-0.11138,0.0030514,-0.073234,-0.073234,-0.43559,-0.37838,-0.30209,-0.22581,-0.18766 0.97972,-0.040423,-0.040039,-0.039656,-0.039656,-0.045404,-0.042339,-0.037357,-0.040806,-0.039656,-0.048087,-0.041955,-0.038506,-0.039656,-0.039656,-0.043872,-0.03774,-0.038506,-0.041955,-0.039656,-0.044638,-0.041189,-0.040806,-0.038506,-0.039656 -0.058309,-0.061444,-0.052823,-0.063403,0.93153,-0.048512,-0.049296,-0.05439,-0.056741,0.24773,-0.066146,-0.061444,-0.057525,-0.059876,0.010659,-0.066146,-0.066538,-0.066146,-0.06497,-0.065362,-0.066538,0.0051725,-0.015988,-0.043026,-0.050471 0.22938,0.26702,0.21683,0.15409,-0.32274,0.19173,0.21683,0.15409,0.09135,-0.32274,0.1039,0.078802,0.11645,-0.034131,-0.38548,0.078802,0.078802,-0.0090346,-0.034131,-0.38548,0.016062,0.016062,-0.046679,-0.12197,-0.34783 -0.040096,-0.042239,-0.042954,-0.044383,-0.044383,-0.038667,-0.042954,-0.043668,-0.042239,-0.042954,-0.04081,-0.043668,-0.042954,-0.052242,-0.042239,-0.037953,-0.04081,-0.038667,-0.044383,-0.025807,-0.037953,-0.043668,-0.037953,-0.025807,0.97945 -0.06999,-0.069204,-0.071563,-0.06999,-0.069597,-0.069204,-0.067238,-0.068418,-0.06488,-0.061342,-0.053479,-0.067631,-0.021244,-0.020851,-0.023603,0.035758,-0.019671,-0.018885,-0.02203,-0.02203,0.0027361,-0.018492,-0.019671,-0.019278,0.9698 0.34142,0.29926,0.3016,0.26529,0.23601,-0.07903,0.30628,0.29574,0.26061,-0.060292,-0.13056,-0.12236,-0.11651,-0.11534,-0.11534,-0.15516,-0.1575,-0.15516,-0.1575,-0.15399,-0.15633,-0.15984,-0.1575,-0.16218,-0.15164 0.22462,0.015415,0.00073405,-0.021287,-0.3773,0.15488,0.026426,0.026426,-0.043309,-0.34427,0.25398,0.0044043,0.011745,-0.010277,-0.28921,0.56595,0.026426,0.022755,0.019085,-0.28554,0.20994,0.052117,0.011745,-0.0066064,-0.24884 -0.093997,-0.184,-0.19574,-0.19183,-0.19183,-0.035298,-0.17422,-0.18205,-0.17813,-0.17422,-0.050951,-0.12139,-0.13704,-0.11748,-0.12139,0.27385,-0.054864,-0.066604,0.31886,0.29538,0.27972,0.27972,0.27385,0.2719,0.27777 0.1805,0.16684,0.13478,0.096771,0.054015,0.17635,0.12112,0.11162,0.041545,0.042139,0.17872,0.11756,0.10805,0.036794,0.027887,0.17991,0.12112,0.014228,0.0047269,0.0094776,-0.38661,-0.38661,-0.38186,-0.38305,-0.38602 0.12915,0.040359,-0.10493,-0.33902,-0.39552,0.21794,0.11301,-0.072647,-0.23408,-0.40359,0.19372,0.16144,0.048431,-0.080719,-0.29866,0.25023,0.16951,0.10493,0.016144,-0.11301,0.24216,0.20987,0.16951,0.048431,-0.072647 0.030688,-0.014441,0.114,-0.19149,-0.34076,0.16608,0.14525,0.15913,-0.14983,-0.34076,0.1626,0.1626,0.19385,-0.2748,-0.35465,0.1626,0.17649,0.15913,-0.13594,-0.28175,0.16608,0.14872,0.17302,0.16608,-0.2019 0.97948,-0.036064,-0.034425,-0.036884,-0.042622,-0.054916,-0.048359,-0.039343,-0.038523,-0.040163,-0.049179,-0.0459,-0.048359,-0.045081,-0.038523,-0.040982,-0.037704,-0.035245,-0.038523,-0.042622,-0.037704,-0.034425,-0.038523,-0.039343,-0.036064 0.17951,0.18537,0.18757,-0.2144,-0.20524,0.17292,0.17805,0.19269,-0.20817,-0.21,0.17805,0.19452,0.19709,-0.21513,-0.20964,0.20258,0.19892,-0.21806,-0.20817,-0.19646,0.21649,0.211,-0.20854,-0.20231,-0.19865 0.061944,-0.045445,-0.1748,-0.29561,-0.28829,0.16445,0.035097,-0.06375,-0.20165,-0.3066,0.24011,0.101,-0.018598,-0.12477,-0.27731,0.30967,0.19374,0.076588,-0.067411,-0.1626,0.4195,0.27916,0.18032,0.04608,-0.080835 -0.049801,-0.042422,-0.052918,-0.051463,-0.045436,-0.039408,-0.033484,-0.053334,-0.04793,-0.045955,-0.037226,-0.036602,-0.042526,-0.038265,-0.042838,-0.035563,-0.036394,-0.038161,-0.038057,-0.018,-0.039304,-0.037641,-0.037434,-0.038992,0.97916 0.3481,0.38114,0.3765,0.34578,0.34752,0.33419,-0.10346,-0.10404,-0.10752,-0.10868,-0.11041,-0.11215,-0.11331,-0.11331,-0.11679,-0.11215,-0.11447,-0.11447,-0.11563,-0.11563,-0.11215,-0.11215,-0.11505,-0.11505,-0.11679 0.37112,-0.09851,-0.11649,-0.12323,-0.11349,0.35389,-0.11499,-0.11649,-0.11798,-0.106,0.35239,-0.11499,-0.11798,-0.11049,-0.1045,0.35988,-0.12098,-0.11049,-0.11873,-0.109,0.3464,0.35015,-0.11798,-0.109,-0.092517 -0.069773,-0.05491,-0.033676,-0.05491,-0.024121,-0.069773,-0.046416,-0.028368,-0.018813,-0.020936,-0.076143,-0.065526,-0.018813,-0.015628,-0.018813,-0.057033,-0.033676,-0.04217,-0.044293,-0.046416,-0.04854,-0.028368,-0.032615,-0.026245,0.97598 -0.068499,-0.054,-0.054,-0.063666,-0.062055,-0.047557,-0.044335,-0.054,-0.050778,-0.041113,-0.037891,-0.042724,-0.042724,-0.031447,-0.03628,-0.034669,-0.03628,-0.02017,-0.031447,-0.041113,-0.039502,-0.029836,-0.010504,-0.0024487,0.97703 -0.1085,-0.017374,-0.05686,0.013,-0.05686,-0.065973,-0.1085,-0.099384,0.013,-0.075085,-0.050785,-0.075085,-0.065973,-0.050785,-0.072047,0.049449,0.019075,0.049449,-0.011299,-0.032561,0.9303,0.061599,0.061599,-0.029524,-0.22088 0.11795,0.096581,0.16068,0.13932,-0.20256,0.11795,0.075214,0.011111,-0.010256,-0.39487,0.13932,0.075214,0.18205,0.075214,-0.3094,0.11795,0.075214,0.075214,0.053846,-0.41624,0.053846,0.053846,0.22479,0.032479,-0.54444 -0.26065,0.065543,0.062648,0.061751,0.061751,-0.25906,-0.2587,0.065013,0.17464,0.19152,-0.26106,-0.25959,0.17819,0.17582,0.18969,-0.26082,-0.25947,0.179,0.17615,0.20546,-0.25955,-0.25943,0.18324,0.18186,0.18606 0.19887,0.23103,0.23218,0.25133,0.25171,0.19619,0.19275,0.23831,0.2295,0.21151,-0.15719,-0.14149,0.23563,-0.19433,-0.19433,-0.18361,-0.14302,-0.19318,-0.19165,-0.19509,-0.17671,-0.14417,-0.16982,-0.1905,-0.19394 -0.16786,-0.17232,0.095536,0.28304,0.225,-0.15446,-0.17232,-0.13214,0.30089,0.26964,-0.14554,-0.15893,-0.15893,0.22946,0.31429,-0.14554,-0.17232,-0.15893,0.033036,0.33661,-0.15893,-0.15893,-0.15893,-0.12321,0.25179 -0.31389,-0.29519,0.1561,0.13974,0.17247,-0.31623,-0.17126,0.13506,0.12337,0.14675,-0.31623,-0.17593,0.12571,0.13038,0.14207,-0.29519,-0.20633,0.14675,0.13974,0.14207,-0.26947,0.15844,0.17247,0.16078,0.1678 0.29862,0.27806,0.25749,0.21636,0.36032,0.17522,0.031261,0.15466,0.15466,0.092959,-0.1127,-0.0098718,-0.1127,0.051827,-0.0098718,-0.030438,-0.1127,-0.15384,-0.092137,-0.0098718,-0.38006,-0.19497,-0.31836,-0.2978,-0.2361 -0.17912,-0.044044,-0.043441,-0.04525,-0.043441,-0.17912,-0.041632,-0.043441,-0.045853,-0.04525,-0.042235,-0.042235,-0.047059,-0.044647,-0.04525,-0.042235,-0.03922,-0.038014,-0.044044,-0.043441,0.85805,0.40098,-0.035602,-0.039823,-0.044647 0.97801,-0.036818,-0.040319,-0.041752,-0.042547,-0.076603,-0.032362,-0.033158,-0.038728,-0.041911,-0.03284,-0.033158,-0.032362,-0.033476,-0.039365,-0.034431,-0.033476,-0.03284,-0.033158,-0.04382,-0.032044,-0.072147,-0.033158,-0.041911,-0.065622 0.17773,0.17748,0.17748,0.17758,0.17758,0.17743,0.17728,0.17743,0.17743,0.17698,0.17708,0.17698,0.17663,-0.22325,0.17668,-0.2305,-0.2266,-0.22335,-0.2231,-0.22115,-0.22955,-0.22945,-0.228,-0.2253,-0.22155 -0.098193,-0.097436,-0.097688,-0.097688,-0.097436,-0.097436,-0.097436,-0.098698,-0.09895,-0.09895,-0.096679,-0.097184,-0.095922,-0.099707,-0.098445,-0.097184,-0.094156,-0.096679,-0.092643,-0.094661,0.33172,0.33071,0.32188,0.36023,0.59864 0.22435,-0.12049,-0.17705,-0.19165,-0.21902,0.22617,0.22435,-0.14421,-0.19895,-0.21719,0.22982,0.22252,-0.12232,-0.19712,-0.20807,0.21157,0.22435,0.228,-0.14239,-0.20625,0.21887,0.21887,0.23164,-0.13144,-0.18435 -0.19981,-0.14074,-0.13483,0.30425,0.18808,-0.19981,-0.14271,-0.14665,0.30425,0.15067,-0.19981,-0.14074,-0.1368,0.31606,0.15067,-0.1939,-0.15256,-0.13877,0.31015,0.19398,-0.19981,-0.14862,-0.091518,0.29834,0.15067 -0.10965,-0.10965,-0.11709,-0.11337,-0.10593,-0.12081,-0.11337,-0.10965,-0.11709,-0.12453,-0.091056,-0.10221,-0.10593,-0.087336,-0.11337,-0.024103,-0.024103,-0.057579,-0.05386,-0.05386,0.076326,0.46316,0.5078,0.45201,0.3553 0.40857,-0.11716,-0.17349,-0.11716,-0.023282,0.46489,-0.13594,-0.11716,-0.060834,-0.07961,0.42734,-0.060834,-0.11716,-0.19227,-0.098386,0.33346,-0.060834,-0.060834,-0.042058,-0.098386,0.31469,-0.13594,-0.07961,-0.098386,-0.07961 0.23844,0.30053,0.20739,0.1453,0.26949,0.1453,0.052159,0.23844,0.20739,0.052159,0.1453,0.052159,0.052159,0.11425,-0.10308,-0.25831,-0.13412,-0.22726,-0.040982,-0.16517,-0.3825,-0.25831,-0.10308,-0.28936,-0.25831 0.23653,0.2434,0.23607,0.23928,0.35332,0.22142,0.24249,0.25439,0.34874,-0.14041,-0.14682,-0.14819,-0.15002,-0.14636,-0.15002,-0.15002,-0.15002,-0.15002,-0.14911,-0.14911,-0.14728,-0.14911,-0.14911,-0.14911,-0.15094 0.10674,0.14505,0.093975,0.042902,0.081207,0.11951,0.10674,0.068439,0.11951,0.081207,0.10674,0.11951,0.081207,0.11951,0.10674,0.093975,0.081207,0.14505,0.042902,0.11951,-0.37846,-0.40399,-0.37846,-0.4423,-0.37846 -0.19188,-0.17718,0.1804,0.18126,0.17752,-0.18813,-0.16796,-0.16479,0.18299,0.18299,-0.19072,-0.17055,-0.16133,0.28989,0.18501,-0.18294,-0.17142,-0.16162,0.29162,0.18501,-0.18352,-0.17055,-0.15903,0.29133,0.29363 0.13611,-0.039289,0.10103,-0.039289,-0.24976,0.41674,0.03087,-0.0042095,-0.039289,-0.24976,0.10103,0.03087,0.17119,-0.10945,-0.28484,0.27642,0.27642,0.065949,-0.21469,-0.28484,0.24135,0.065949,0.065949,-0.039289,-0.42516 -0.26126,-0.15055,0.13727,0.15941,0.13727,-0.2834,-0.12841,0.24797,0.0044281,0.09299,-0.30554,-0.2834,0.026568,0.20369,0.20369,-0.26126,-0.15055,0.20369,0.15941,0.15941,-0.32768,-0.15055,0.20369,0.20369,0.15941 0.33725,0.34949,-0.070607,-0.15632,-0.16386,0.32123,0.28921,-0.10828,-0.14596,-0.14784,0.30428,-0.099807,-0.12524,-0.14314,-0.14784,0.30145,-0.090387,-0.12995,-0.12901,-0.14784,0.32594,-0.096039,-0.11394,-0.10263,-0.11017 -0.1904,0.031393,0.1167,0.16788,0.16788,-0.3269,0.031393,0.031393,0.16788,0.1167,-0.34396,-0.17334,0.16788,0.20201,0.1167,-0.29277,-0.15628,0.099638,0.23613,0.16788,-0.48045,-0.17334,0.014332,0.13376,0.16788 0.15653,0.16919,-0.16153,-0.21691,-0.18052,0.27204,0.15653,-0.1726,-0.21849,-0.22324,0.16919,0.18343,0.1502,-0.21216,-0.21691,0.14387,0.2578,0.21982,-0.2264,-0.17102,0.11064,0.22457,0.23881,-0.21691,-0.2359 -0.1872,-0.18475,-0.19701,0.2621,0.3093,-0.19762,-0.1872,-0.18781,0.17568,0.23391,-0.17984,-0.18659,-0.19946,0.17077,0.20326,-0.18659,-0.19394,0.17322,0.18242,0.22533,-0.19026,-0.19272,0.17629,0.17445,0.18426 0.17748,0.13158,0.11316,-0.314,-0.31502,0.1674,0.13626,0.11755,-0.31327,-0.31356,0.17865,0.13845,0.12149,-0.31429,-0.31239,0.18245,0.13567,0.12413,0.038605,-0.3121,0.16038,0.14006,0.092256,0.040213,-0.0011578 0.35825,0.018139,-0.019651,-0.095231,-0.2086,0.20709,0.20709,0.13151,-0.019651,-0.24639,0.24488,-0.057441,-0.057441,-0.2086,-0.057441,0.20709,0.35825,-0.17081,-0.095231,-0.28418,0.32046,0.055929,-0.057441,-0.24639,-0.28418 0.97903,-0.042812,-0.035104,-0.028497,-0.014183,-0.035654,-0.036756,-0.036205,-0.036205,-0.041711,-0.04061,-0.038407,-0.04061,-0.041711,-0.042261,-0.056025,-0.049419,-0.040059,-0.043362,-0.046115,-0.05107,-0.045014,-0.042261,-0.045565,-0.049419 -0.23783,-0.26133,-0.35533,-0.35533,-0.35533,-0.049822,-0.096824,-0.049822,-0.14383,-0.16733,0.25569,0.044182,0.067683,-0.026321,0.11468,0.23219,0.20869,0.11468,0.16169,0.044182,0.34969,0.23219,0.16169,0.044182,0.067683 0.28689,0.18159,0.051068,-0.10907,-0.13649,0.29566,-0.081648,0.01926,-0.0981,-0.4085,0.3176,-0.068486,-0.11346,-0.087132,-0.42495,0.27482,-0.072873,0.052165,-0.097003,-0.13978,0.30334,0.18707,0.086167,-0.068486,-0.14965 0.97927,-0.051661,-0.054394,-0.047105,-0.038905,-0.051661,-0.055305,-0.039816,-0.037994,-0.037994,-0.051661,-0.038449,-0.034805,-0.036627,-0.037994,-0.037538,-0.035716,-0.035716,-0.036627,-0.037538,-0.036172,-0.037083,-0.036627,-0.036172,-0.035716 0.077309,0.11457,0.11314,0.10884,0.1086,0.07922,0.11326,0.11242,0.10538,0.064291,0.077906,0.07922,0.10645,0.1719,0.062858,0.070621,0.077787,0.10585,0.16975,0.062261,-0.39647,-0.39659,-0.39587,-0.39659,-0.39611 -0.096724,-0.097703,-0.096724,-0.097703,-0.096234,-0.097213,-0.097703,-0.095255,-0.097213,-0.095255,-0.092806,-0.094765,-0.094275,-0.093296,-0.091827,-0.094765,-0.093786,-0.095255,-0.094765,-0.083992,0.65789,0.32784,0.31315,0.3342,0.26418 -0.054098,-0.04421,-0.042013,-0.043111,-0.043111,-0.048604,-0.038717,-0.043111,-0.039815,-0.04421,-0.050802,-0.045309,-0.050802,-0.049703,-0.016194,-0.047506,-0.039815,-0.054098,-0.055196,-0.020039,-0.029378,0.025555,-0.046407,-0.055746,0.97644 0.13995,0.11617,0.10307,0.078484,0.060579,0.14209,0.11296,0.099864,0.080622,0.057906,0.14289,0.1183,0.10093,0.079553,0.062182,0.14289,0.11162,0.099329,0.076346,0.057906,-0.39667,-0.39828,-0.39667,-0.39667,-0.39534 -0.14855,-0.14855,-0.077131,-0.053325,0.42279,-0.17235,-0.077131,-0.077131,0.065704,0.35137,-0.077131,-0.14855,-0.029519,0.041898,0.30376,-0.14855,-0.29138,-0.077131,-0.0057134,0.4466,-0.29138,-0.077131,-0.053325,0.065704,0.25615 0.97956,-0.041458,-0.038598,-0.034022,-0.032878,-0.040886,-0.03917,-0.037454,-0.034594,-0.034594,-0.045462,-0.043174,-0.043174,-0.038598,-0.034594,-0.045462,-0.044318,-0.045462,-0.039742,-0.038598,-0.048894,-0.046034,-0.04775,-0.043174,-0.041458 -0.021189,-0.045736,-0.044444,-0.058656,-0.062532,-0.036692,-0.040568,-0.045736,-0.039276,-0.049612,-0.040568,-0.052196,-0.04186,-0.0095607,-0.031524,-0.053488,-0.056072,-0.022481,-0.017313,-0.037984,-0.057364,-0.05478,-0.022481,-0.0354,0.97751 -0.19658,-0.18249,0.27299,0.2805,0.2157,-0.20128,-0.19095,0.13963,0.17908,0.25045,-0.20034,-0.17404,-0.16089,0.11897,0.25702,-0.20597,-0.17498,-0.18155,0.11803,0.26642,-0.20222,-0.19658,-0.17498,0.16029,0.18377 0.97605,-0.030951,0.012531,-0.033422,-0.045281,-0.035398,-0.039351,-0.05961,-0.041822,-0.016622,-0.039351,-0.042316,-0.046763,-0.057139,-0.041328,-0.061092,-0.028481,-0.040834,-0.039845,-0.019093,-0.082833,-0.061092,-0.046763,-0.045775,-0.033422 0.97872,-0.039823,-0.02757,-0.026038,-0.042886,-0.055139,-0.039823,-0.03676,-0.03676,-0.045949,-0.01838,-0.035228,-0.042886,-0.045949,-0.045949,-0.024506,-0.035228,-0.039823,-0.049013,-0.052076,-0.049013,-0.03676,-0.055139,-0.052076,-0.045949 -0.29813,-0.32748,-0.23945,-0.23945,-0.2101,-0.18076,-0.092726,-0.034039,0.053993,-0.29813,-0.12207,-0.063383,-0.12207,0.053993,0.053993,0.14202,0.14202,0.17137,0.23006,0.23006,0.14202,0.14202,0.34743,0.2594,0.2594 0.15998,0.23537,0.23537,0.11772,-0.01136,0.21067,0.21039,0.11915,0.088019,0.12015,0.33718,0.20924,0.119,0.085163,0.084592,-0.23111,-0.23111,-0.23268,-0.23211,-0.23282,-0.23111,-0.23154,-0.23211,-0.23311,-0.23296 0.17958,0.27795,-0.17361,-0.17443,-0.17566,0.27672,0.27652,-0.17505,-0.17443,-0.17566,0.17753,0.29247,-0.17505,-0.17464,-0.17505,0.17753,0.17835,-0.17218,-0.17361,-0.17177,0.14072,0.17692,0.2847,-0.17484,-0.173 -0.051239,-0.059498,-0.041328,-0.048762,-0.037199,-0.048762,-0.031417,-0.035547,-0.047936,-0.030592,-0.052891,-0.061976,-0.027288,-0.033895,-0.032243,-0.052891,-0.043806,-0.029766,-0.036373,-0.037199,-0.040502,-0.02894,-0.033069,-0.035547,0.97867 -0.11923,-0.097473,-0.097473,-0.11923,-0.097473,-0.046706,-0.11923,-0.068463,-0.11923,-0.068463,-0.097473,-0.068463,-0.097473,-0.097473,-0.068463,-0.075715,-0.075715,-0.11923,-0.061211,-0.068463,0.68579,0.47547,0.2579,0.21438,0.14911 -0.2715,-0.28074,-0.28074,-0.25671,-0.25486,-0.25117,-0.2678,-0.26965,0.13886,-0.25117,0.19431,0.16843,0.12961,0.12037,0.12407,0.19801,0.17952,0.13886,0.12222,0.12961,0.19246,0.15549,0.13146,0.13701,0.12407 -0.22119,-0.22267,-0.22593,0.1831,0.18665,-0.22179,-0.22386,0.17629,0.17925,0.18754,-0.22445,-0.22948,0.1757,0.17599,0.1828,-0.22771,-0.23155,0.18339,0.1683,0.17363,-0.22652,-0.22593,0.17126,0.16771,0.16948 0.1568,0.071988,-0.023431,0.064037,-0.24607,0.32114,0.20186,0.085241,-0.052586,-0.19041,0.35294,0.19126,-0.11355,-0.15596,-0.22222,0.41656,-0.12945,-0.047285,-0.12945,-0.21692,0.31319,-0.087043,-0.17451,-0.20102,-0.18511 0.14627,-0.018078,-0.059165,-0.031774,-0.20981,0.11888,0.064095,-0.059165,-0.18242,-0.20981,0.52974,-0.0043826,0.023008,-0.12764,-0.19612,0.55713,0.036704,0.050399,-0.12764,-0.18242,0.24214,0.050399,-0.059165,-0.12764,-0.22351 0.34391,0.31147,0.37635,0.27902,0.24658,0.084355,-0.012978,0.084355,0.084355,0.21413,-0.045422,0.051911,-0.045422,-0.045422,-0.077866,-0.045422,-0.1752,-0.11031,-0.20764,-0.20764,-0.40231,-0.20764,-0.1752,-0.11031,-0.20764 -0.21393,-0.21257,-0.20806,-0.21347,-0.21438,-0.21438,-0.21483,-0.21663,-0.21347,-0.21393,-0.21347,0.12905,0.12905,0.12724,0.13988,0.12634,0.13085,0.12724,0.12634,0.14259,0.37996,0.37725,0.13853,0.13492,0.13988 0.38244,0.32467,0.38244,0.38244,0.44021,-0.050837,-0.10861,-0.079722,-0.10861,-0.050837,-0.22415,-0.13749,-0.13749,-0.050837,-0.050837,-0.10861,-0.19526,-0.10861,-0.021952,0.0069324,-0.19526,-0.050837,-0.16638,-0.050837,-0.021952 0.097128,0.14837,-0.22768,-0.22189,-0.23098,0.30788,0.15581,0.18639,-0.20702,-0.23181,0.15416,0.1368,0.22771,-0.20867,-0.23098,0.14672,0.16242,0.14176,-0.21941,-0.22107,0.13101,0.15911,0.27152,-0.21198,-0.21528 0.97885,-0.034547,-0.032782,-0.046553,-0.038432,-0.032782,-0.048672,-0.045847,-0.043375,-0.034194,-0.035254,-0.05079,-0.048672,-0.031016,-0.033135,-0.055027,-0.053262,-0.045141,-0.027485,-0.037725,-0.052909,-0.053968,-0.029957,-0.02572,-0.04161 -0.077452,-0.10049,-0.095482,-0.081458,0.39836,-0.092477,-0.11451,-0.11752,-0.08847,0.39535,-0.10049,-0.10951,-0.11552,-0.080457,0.40437,-0.10149,-0.1075,-0.10149,-0.086467,0.39936,-0.15558,-0.093479,-0.095482,-0.078453,0.39635 0.25451,-0.13814,-0.082177,-0.077664,-0.21216,0.26805,-0.14897,-0.071345,-0.095717,-0.2257,0.2518,0.26625,-0.070443,-0.10023,-0.24736,0.27437,0.26895,-0.060514,-0.091204,-0.25458,0.26534,0.35471,-0.028921,-0.043363,-0.25549 0.11565,0.092119,0.090625,0.083155,0.0783,0.13395,0.11005,0.089505,0.083902,0.077926,0.1276,0.10631,0.096601,0.083902,0.075312,0.17616,0.11528,0.091746,0.086143,0.073818,-0.39716,-0.39716,-0.39866,-0.39716,-0.39791 0.20116,-0.071365,-0.091961,-0.1571,-0.15566,0.20595,-0.075197,-0.12884,-0.15854,-0.15854,0.38269,0.36784,-0.12836,-0.13267,-0.14752,0.24619,0.2481,-0.13076,-0.13363,-0.1547,0.24906,0.36784,-0.13363,-0.14752,-0.16285 -0.090046,-0.011576,-0.012244,-0.012689,-0.11954,-0.12344,-0.12199,-0.12232,-0.1211,-0.12121,-0.12121,-0.12188,-0.12155,-0.12177,-0.1221,-0.1211,-0.12155,-0.12199,-0.12177,-0.0095722,0.40649,0.40059,0.39313,0.38456,0.37588 0.35024,0.35086,0.35647,0.35833,0.35958,0.349,-0.10284,-0.094749,-0.093504,-0.085413,-0.10222,-0.10222,-0.094749,-0.092882,-0.088525,-0.10595,-0.10595,-0.10595,-0.10222,-0.10222,-0.14205,-0.14516,-0.14952,-0.15263,-0.15574 0.23253,0.23018,0.23018,-0.16361,-0.18236,0.2419,0.23721,0.15986,-0.17064,-0.17299,0.23956,0.23018,-0.1472,-0.18471,-0.19643,0.25597,0.18096,-0.18471,-0.18471,-0.18705,0.23018,-0.15892,-0.16127,-0.18002,-0.19408 -0.16617,-0.17796,0.2546,0.28544,0.2945,-0.18793,-0.17705,-0.1698,0.21742,0.22831,-0.18068,-0.18884,-0.17342,0.17934,0.19022,-0.18068,-0.17796,-0.17161,0.18296,0.20291,-0.15347,-0.18068,-0.17161,0.17299,0.24916 -0.28226,-0.12755,-0.13454,0.26389,0.26016,-0.28366,-0.12755,-0.12755,0.26295,0.26016,-0.12849,-0.12569,-0.12662,0.26156,0.25876,-0.12383,-0.12662,-0.12569,0.26295,0.26016,-0.12476,-0.12755,-0.12476,-0.13128,0.25783 0.28575,0.25701,0.26716,0.26039,0.26251,-0.14449,0.27941,0.26927,0.25701,0.26039,-0.14703,-0.1521,-0.1521,-0.1521,-0.1521,-0.14745,-0.14872,-0.15083,-0.1521,-0.1521,-0.14872,-0.14914,-0.1521,-0.15125,-0.1466 -0.28541,-0.25142,-0.20257,-0.16433,-0.2408,-0.22806,-0.17708,-0.19407,-0.096355,-0.16858,0.11394,0.096949,0.02685,-0.15583,-0.18982,0.35398,0.19679,0.29663,0.18617,0.21166,0.15643,0.15005,0.15005,0.19891,0.21591 -0.15375,-0.11974,-0.051704,0.15239,0.22042,-0.11974,-0.22178,0.11838,0.11838,0.22042,-0.051704,-0.2558,0.016328,0.28846,0.22042,-0.22178,-0.2558,-0.15375,0.15239,0.35649,-0.22178,-0.35785,-0.051704,0.11838,0.25444 0.24617,0.25829,0.31886,0.25829,0.25829,0.1008,0.11291,0.22194,0.13714,0.22194,-0.16573,-0.16573,-0.068812,-0.044583,0.1008,-0.23842,-0.2263,-0.26265,-0.18996,0.040221,-0.20208,-0.27476,-0.25053,-0.17785,-0.0082381 -0.040419,-0.03641,-0.042777,-0.055275,-0.055747,-0.044663,-0.03641,-0.032401,-0.051502,-0.052445,-0.041598,-0.037353,-0.036881,-0.039711,-0.057161,-0.040183,-0.038768,-0.038768,-0.043013,0.0081592,-0.04089,-0.03924,-0.040654,-0.043956,0.97806 -0.27647,-0.10623,-0.0040857,0.2002,0.26829,-0.24242,-0.10623,0.1321,0.1321,0.029962,-0.37861,-0.14028,-0.072181,-0.0040857,0.47258,-0.17432,-0.14028,0.1321,0.1321,0.26829,-0.20837,-0.20837,-0.038133,0.1321,0.2002 -0.040881,-0.038823,-0.036355,-0.043761,-0.033063,-0.046641,-0.049932,-0.038823,-0.041292,-0.037178,-0.045406,-0.047875,-0.039235,-0.039235,-0.028537,-0.042526,-0.046641,-0.043349,-0.040058,-0.031417,-0.038412,-0.047052,-0.041292,-0.041703,0.97949 0.22525,0.21993,0.2186,0.22126,0.22392,0.23223,0.2309,0.22658,0.22126,0.2186,-0.17636,0.24254,-0.16706,-0.17503,-0.17869,-0.1757,-0.17869,-0.17902,-0.18301,-0.18135,-0.1767,-0.17836,-0.17703,-0.17736,-0.1767 0.10825,0.10302,0.10302,-0.0067614,-0.35529,0.12045,0.11174,0.10825,0.11522,-0.3762,0.16227,0.13788,0.11871,-0.31695,-0.39885,0.12394,0.12045,0.11522,0.11348,-0.36052,0.11697,0.11348,0.10999,0.11348,-0.30127 0.9785,-0.050273,-0.051962,-0.053088,-0.053651,-0.051399,-0.051962,-0.057593,-0.040137,-0.043516,-0.048021,-0.050836,-0.04239,-0.039011,-0.040137,-0.037885,-0.028875,-0.035632,-0.036759,-0.037885,-0.028875,-0.022681,-0.030002,-0.024934,-0.020992 0.12063,0.13768,0.10241,-0.26142,-0.26671,0.098299,0.093597,0.15943,-0.26201,-0.26436,0.10947,0.11711,0.16002,-0.26377,-0.26495,0.12945,0.18118,0.18764,-0.26436,-0.26436,0.16648,0.18118,0.22879,0.19705,-0.25848 0.22799,0.22417,0.23054,0.24039,0.22608,0.18665,0.22036,0.23181,0.23785,0.2229,-0.16828,-0.17337,-0.18736,0.23022,-0.1686,-0.17368,-0.17655,-0.17909,-0.18418,-0.17496,-0.17496,-0.17845,-0.18004,-0.18227,-0.17718 -0.056993,-0.03496,-0.096164,-0.06189,-0.03496,-0.064338,-0.025167,-0.10106,-0.081475,-0.017823,-0.096164,-0.012926,-0.037408,-0.081475,0.021348,-0.083923,-0.052097,0.006659,-0.032512,-0.0055818,-0.022719,0.026244,-0.0055818,-0.012926,0.96389 -0.0010026,-0.057971,-0.13203,-0.13203,-0.11836,0.41145,-0.068225,-0.11494,-0.13659,-0.12519,0.43309,-0.05911,-0.11836,-0.12519,-0.10924,0.46841,-0.034044,-0.10013,-0.096709,-0.079619,0.48778,-0.037462,-0.054553,-0.051135,-0.048856 0.089896,0.083024,0.087605,0.087605,0.089896,0.10364,0.083024,0.096769,0.094478,0.096769,0.10364,0.094478,0.10364,0.096769,0.10822,0.11281,0.11281,0.10822,0.12197,0.12197,-0.40495,-0.40266,-0.39807,-0.40036,-0.3912 -0.1255,-0.097011,-0.052249,0.00065108,0.0047203,-0.1255,-0.084803,-0.04818,-0.011557,0.012859,-0.088872,-0.064457,-0.019695,0.012859,0.016928,-0.080734,-0.011557,-0.0074874,0.00065108,-0.031903,-0.072595,-0.068526,-0.015626,0.00065108,0.95692 0.12062,0.12686,0.22116,0.21722,0.23069,0.12095,0.12818,0.12555,0.2343,0.22806,0.11668,0.12884,0.12686,0.29016,-0.15176,-0.22437,-0.22634,-0.22733,-0.22733,-0.22141,-0.22634,-0.22733,-0.22733,-0.22798,-0.22864 -0.044711,-0.040568,-0.053826,-0.048854,-0.048026,-0.03974,-0.042226,-0.048854,-0.047197,-0.044711,-0.03974,-0.03974,-0.040568,-0.040568,-0.03974,-0.034768,-0.038083,-0.038083,-0.037254,-0.037254,-0.031454,-0.035597,-0.035597,-0.032282,0.97944 0.58238,0.032561,0.082545,-0.13881,-0.21022,0.5324,0.032561,0.01471,-0.14952,-0.21736,0.19322,0.036131,-0.049555,-0.1281,-0.19594,0.13253,0.028991,-0.035274,-0.095969,-0.17094,0.11111,0.02542,-0.088828,-0.099539,-0.2245 -0.21058,0.098212,0.09068,0.166,0.1434,-0.30096,0.10574,0.09068,0.15093,0.15093,-0.39134,0.037959,0.10574,0.10574,0.12834,-0.43653,-0.16539,0.098212,0.11328,0.15093,-0.44406,-0.17293,0.10574,0.12834,0.15093 0.29553,0.29104,0.22518,0.22855,0.28468,-0.14002,0.27944,0.26822,0.23641,0.28318,-0.14676,-0.14713,-0.14975,-0.14563,-0.14713,-0.15199,-0.15012,-0.1505,-0.15162,-0.14863,-0.15274,-0.15274,-0.15162,-0.15312,-0.15274 -0.037376,-0.03945,-0.03945,-0.032539,-0.031847,-0.050508,-0.043597,-0.040141,-0.035994,-0.030465,-0.048435,-0.046361,-0.042906,-0.036685,-0.029083,-0.048435,-0.043597,-0.044979,-0.035994,-0.032539,-0.052581,-0.049126,-0.041523,-0.04567,0.97928 0.97648,-0.055351,-0.057636,-0.010787,-0.014215,-0.034783,-0.051923,-0.065635,-0.0085015,-0.032498,-0.03364,-0.061064,-0.04621,-0.022213,-0.038211,-0.025642,-0.064492,-0.051923,-0.031355,-0.037068,-0.05078,-0.064492,-0.05078,-0.038211,-0.02907 0.97964,-0.03711,-0.034925,-0.034925,-0.036017,-0.044754,-0.03984,-0.038202,-0.039294,-0.034925,-0.044208,-0.044754,-0.038202,-0.040932,-0.041478,-0.044208,-0.048577,-0.04257,-0.038748,-0.040386,-0.0453,-0.043116,-0.044754,-0.03984,-0.04257 -0.14476,-0.12667,-0.063334,-0.054286,0.49762,-0.18095,-0.081429,-0.081429,-0.018095,0.47048,-0.10857,-0.10857,-0.10857,-0.018095,0.44333,-0.090476,-0.13571,-0.10857,-0.099524,0.25333,-0.10857,-0.14476,-0.081429,-0.036191,0.23524 -0.088113,-0.12393,-0.19557,-0.016476,0.34171,-0.12393,-0.10602,-0.088113,-0.052294,0.46707,-0.15975,-0.17766,-0.052294,-0.052294,0.39543,-0.12393,-0.12393,-0.10602,0.0014327,0.3238,-0.070204,-0.17766,-0.088113,0.0014327,0.39543 -0.39527,-0.2197,0.12641,0.11637,0.13644,-0.38523,0.026084,0.11637,0.11136,0.14145,-0.38523,0.051164,0.12641,0.13644,0.12641,-0.36015,0.021068,0.11136,0.12641,0.12139,-0.34009,0.091293,0.12139,0.13142,0.14647 0.092435,-0.032115,-0.10493,-0.17199,-0.17774,0.21315,-0.02445,-0.085767,-0.14708,-0.15858,0.36836,-0.039779,-0.097264,-0.12409,-0.18732,0.43926,0.015789,-0.087683,-0.11068,-0.16241,0.42393,0.42201,-0.081935,-0.076186,-0.10493 0.36047,0.13072,0.10914,-0.29176,-0.15145,0.27798,0.11762,0.099885,-0.12755,-0.15453,0.31729,0.10605,-0.11521,-0.13063,-0.1553,0.36586,-0.14605,-0.14451,-0.14142,-0.12755,0.36509,-0.14528,-0.14297,-0.14682,-0.12909 0.31969,0.32313,-0.13567,-0.13405,-0.1294,0.31706,0.32414,-0.13344,-0.13567,-0.129,0.2936,0.063701,-0.13446,-0.13668,-0.13061,0.2932,-0.13405,-0.13506,-0.13567,-0.13183,0.33101,-0.13183,-0.13405,-0.13264,-0.13142 0.41201,0.31806,0.24353,0.11797,0.073018,0.41346,0.20438,0.22265,0.11565,0.067798,-0.16216,-0.161,-0.16129,-0.1552,0.071858,-0.16477,-0.16042,-0.1581,-0.15897,-0.16042,-0.16796,-0.16767,-0.16274,-0.15984,-0.15984 0.053954,0.055039,0.054677,-0.22142,-0.22142,0.19535,0.21162,0.21506,-0.22106,-0.22034,0.19481,0.21325,-0.21853,-0.22142,-0.21817,0.20493,0.20927,0.20963,-0.21853,-0.21889,0.19426,0.19065,0.21162,-0.2169,-0.21744 -0.047588,-0.046948,-0.044068,-0.040868,-0.049508,-0.043748,-0.044708,-0.041828,-0.032869,-0.038949,-0.044068,-0.043748,-0.036709,-0.036069,-0.037989,-0.043108,-0.041828,-0.037989,-0.034789,-0.038309,-0.043108,-0.042148,-0.035109,-0.033509,0.97956 0.9785,-0.041685,-0.042939,-0.032907,-0.032907,-0.056734,-0.046701,-0.039177,-0.032907,-0.025382,-0.059869,-0.042312,-0.041685,-0.035415,-0.02789,-0.054853,-0.052345,-0.044193,-0.029144,-0.025382,-0.057988,-0.050464,-0.04482,-0.026636,-0.034161 -0.221,-0.20628,-0.17491,0.20213,0.21878,-0.22356,-0.21396,0.19829,0.20469,0.20981,-0.19348,-0.17747,0.20085,0.20341,0.21493,-0.19412,-0.17875,-0.17491,0.20853,0.21237,-0.18772,-0.17555,-0.17043,0.20597,0.21237 0.26893,0.25759,0.25192,0.25381,0.2557,0.27649,0.28594,-0.090097,0.27271,0.27082,-0.15057,-0.15434,-0.15623,-0.15623,-0.15245,-0.15245,-0.14868,-0.15057,-0.15812,-0.15623,-0.15245,-0.15057,-0.15623,-0.14868,-0.16001 -0.047977,-0.04569,-0.04569,-0.044775,-0.04203,-0.048892,-0.047977,-0.044317,-0.039285,-0.040658,-0.047519,-0.044317,-0.04203,-0.035626,-0.035168,-0.043402,-0.041573,-0.037456,-0.031966,-0.032424,-0.038828,-0.038828,-0.031966,-0.031051,0.97945 -0.044112,-0.044112,0.20601,0.20601,0.19464,-0.21465,-0.13506,0.1719,0.20601,0.1719,-0.28286,-0.27149,0.13779,0.20601,0.13779,-0.28286,-0.29423,-0.032743,0.13779,0.16053,-0.31697,-0.32834,-0.010005,0.13779,0.18327 -0.095803,-0.096045,-0.095561,-0.095924,-0.095319,-0.095682,-0.095803,-0.09544,-0.095682,-0.095319,-0.095561,-0.095561,-0.095561,-0.095198,-0.095077,-0.095682,-0.096287,-0.095682,-0.095682,-0.096045,0.54253,0.53346,0.25083,0.25155,0.33455 0.97972,-0.041586,-0.043419,-0.039752,-0.036543,-0.047086,-0.042044,-0.042502,-0.038377,-0.037918,-0.045711,-0.04021,-0.041127,-0.041127,-0.03746,-0.043878,-0.041586,-0.04021,-0.041127,-0.036085,-0.041586,-0.040669,-0.041586,-0.038835,-0.039294 0.28131,-0.12672,-0.12865,-0.14308,-0.15463,0.29575,-0.12095,-0.1325,-0.1325,-0.13827,0.29286,0.30537,-0.12672,-0.14693,-0.15078,0.2919,0.30729,-0.13153,-0.14501,-0.14597,0.30537,0.24763,-0.12768,-0.14212,-0.13346 0.97679,-0.037145,-0.036257,-0.010486,-0.022927,-0.04692,-0.032702,-0.034479,-0.029147,-0.035368,-0.038034,-0.051363,-0.044254,-0.030036,-0.031813,-0.045143,-0.062027,-0.036257,-0.030036,-0.02115,-0.054029,-0.064693,-0.031813,-0.076245,-0.074468 0.45334,0.17552,0.17576,0.17316,0.17292,0.44508,0.17764,0.17646,0.17434,0.17292,-0.15116,-0.1514,-0.15352,-0.15281,-0.15352,-0.15352,-0.15352,-0.15258,-0.15258,-0.15352,-0.15352,-0.15352,-0.15423,-0.15352,-0.15423 -0.12355,-0.14031,-0.13193,-0.13403,-0.13403,-0.12565,-0.12774,-0.13193,-0.13403,-0.12984,-0.11518,-0.11937,-0.12355,-0.12565,-0.10261,-0.058636,-0.056542,-0.050259,-0.050259,0.37485,0.36229,0.34553,0.35391,0.34134,0.33716 0.97832,-0.034255,-0.05064,-0.061563,-0.057194,-0.042994,-0.041901,-0.046271,-0.057194,-0.034255,-0.045178,-0.03207,-0.042994,-0.030978,-0.023332,-0.047363,-0.027701,-0.03207,-0.025517,-0.027701,-0.063748,-0.037532,-0.045178,-0.034255,-0.03644 -0.17784,-0.2459,-0.041739,0.16242,0.29852,-0.15516,-0.15516,-0.20053,-0.041739,0.27584,-0.064423,-0.17784,-0.10979,0.048998,0.36658,-0.087107,-0.17784,-0.10979,0.1851,0.38926,-0.17784,-0.13248,-0.041739,-0.019055,0.38926 0.16646,-0.12123,-0.15803,-0.17475,-0.16472,0.19991,-0.12123,-0.13461,-0.1413,-0.14464,0.47087,-0.017529,-0.14464,-0.15468,-0.10785,0.42069,0.10624,-0.071051,-0.15468,-0.10785,0.41734,0.20325,0.133,-0.077742,-0.12123 -0.084498,-0.074465,-0.086323,-0.081762,-0.059871,-0.072641,-0.068992,-0.086323,-0.073553,-0.036156,-0.027947,-0.0097049,-0.070817,-0.073553,-0.018826,-0.02065,-0.022475,0.011274,-0.010617,-0.01609,0.037725,-0.023387,0.012186,-0.0069686,0.96444 -0.043358,-0.036937,-0.039407,-0.043358,-0.048545,-0.040148,-0.043111,-0.04731,-0.03916,-0.036443,-0.043111,-0.042124,-0.045828,-0.035949,-0.03422,-0.042371,-0.044346,-0.043111,-0.036196,-0.033233,-0.042371,-0.044346,-0.038172,-0.036443,0.9796 0.97733,-0.031538,-0.028497,-0.010256,0.01508,-0.041672,-0.041672,-0.043699,-0.042179,-0.043699,-0.047753,-0.047753,-0.046739,-0.050286,-0.048766,-0.049779,-0.049273,-0.048766,-0.048766,-0.045726,-0.049273,-0.046739,-0.045726,-0.041672,-0.042179 -0.21744,-0.22272,-0.22405,0.24892,0.17537,-0.22228,-0.22052,0.15071,0.25552,0.16525,-0.21832,-0.22669,0.14763,0.156,0.25464,-0.21964,-0.23109,0.14763,0.14895,0.15468,-0.21964,-0.22933,0.14675,0.14895,0.15071 -0.046711,-0.040292,-0.035477,-0.033873,-0.033873,-0.047781,-0.044571,-0.036012,-0.036547,-0.034408,-0.044037,-0.046176,-0.037082,-0.040827,-0.034942,-0.05741,-0.046711,-0.034942,-0.039222,-0.032803,-0.045641,-0.053131,-0.037617,-0.039222,0.97931 0.5488,0.28581,0.00044763,-0.13384,-0.16182,0.10117,-0.016339,-0.12265,-0.12825,-0.17861,0.26903,0.056402,-0.10027,-0.12825,-0.20099,0.15152,0.29701,-0.13944,-0.14503,-0.17861,0.28581,0.11795,-0.13944,-0.16182,-0.17861 0.090968,0.09151,0.10044,-0.35159,-0.34888,0.090698,0.093134,0.099089,0.095841,-0.34969,0.17704,0.094217,0.098547,0.099089,-0.34996,0.17677,0.17704,0.10694,0.10071,-0.3505,0.19761,0.068502,0.072833,0.074457,-0.35483 -0.043154,-0.04055,-0.035861,-0.037424,-0.037424,-0.048364,-0.042112,-0.040029,-0.03534,-0.032736,-0.048885,-0.048364,-0.039508,-0.037424,-0.03534,-0.047843,-0.05201,-0.034298,-0.03534,-0.039508,-0.049405,-0.038987,-0.036382,-0.043154,0.97944 0.10426,0.11304,0.11524,0.11304,-0.33711,0.11744,0.11524,0.11524,0.11524,-0.33711,0.12402,0.11963,0.11744,0.11085,-0.3459,0.10426,0.11085,0.099869,0.10646,-0.37884,0.10646,0.11304,0.11085,-0.35029,-0.38323 -0.089195,-0.11449,-0.10184,-0.10606,-0.009105,-0.09341,-0.097626,-0.097626,-0.089195,-0.030181,-0.009105,-0.10606,-0.080765,-0.01332,0.011971,0.0077561,-0.025966,-0.00067444,-0.00067444,0.016187,0.041478,-0.009105,0.016187,0.033048,0.94776 0.97888,-0.052277,-0.050637,-0.041265,-0.030956,-0.046654,-0.052511,-0.051574,-0.041031,-0.028613,-0.032596,-0.054151,-0.052277,-0.041031,-0.030487,-0.030253,-0.027675,-0.043608,-0.040562,-0.026738,-0.033533,-0.03611,-0.047825,-0.041733,-0.044779 -0.24426,-0.21828,0.22919,0.22683,0.22447,-0.23717,-0.23717,0.22329,0.22211,0.22211,-0.20057,-0.20529,-0.075421,0.21502,0.21975,-0.19349,-0.18758,-0.063614,0.21502,0.20558,-0.21828,-0.13682,-0.13209,-0.058892,0.20558 0.26982,0.093114,0.10163,-0.1794,0.10546,0.27153,0.088005,-0.18536,-0.17982,-0.17173,0.23618,0.32134,-0.17812,-0.18408,-0.18153,0.23022,0.23576,-0.18877,-0.19175,-0.19302,0.22341,0.22895,-0.18493,-0.19217,-0.19473 0.97069,-0.051542,-0.051542,-0.05229,-0.053412,-0.051542,-0.053412,-0.047053,-0.051168,-0.052664,-0.041443,-0.051168,-0.043687,-0.047801,-0.055656,0.049073,-0.044809,-0.045183,-0.046679,-0.044061,0.05244,-0.041817,-0.049672,-0.047053,-0.04855 -0.067666,-0.067666,-0.062377,-0.063338,-0.063338,-0.069109,-0.064781,-0.055645,-0.055645,-0.062377,0.24681,-0.067666,-0.055645,-0.05276,-0.078245,0.24778,-0.055645,-0.055645,-0.051317,-0.076802,0.88828,-0.047951,-0.063338,-0.061415,-0.084496 -0.15544,-0.14855,-0.083477,-0.071228,-0.061276,-0.15544,-0.15008,-0.12941,-0.073525,-0.055917,0.010687,0.017577,-0.12941,-0.065104,-0.041371,0.32763,0.014515,0.02064,0.0083906,0.0053283,0.85664,0.016046,0.02064,0.016046,0.0060939 -0.1131,-0.036681,0.039738,-0.036681,0.38362,-0.26594,-0.1131,-0.1131,0.039738,0.23078,-0.30414,-0.15131,-0.07489,0.19257,0.19257,-0.30414,-0.22773,-0.036681,0.15436,0.38362,-0.30414,0.11616,0.0015284,0.11616,0.23078 0.97908,-0.041112,-0.044037,-0.045207,-0.045207,-0.036432,-0.044037,-0.049886,-0.044037,-0.048716,-0.045207,-0.047546,-0.046376,-0.037017,-0.037602,-0.042867,-0.046376,-0.041112,-0.037602,-0.028827,-0.041112,-0.041697,-0.039357,-0.037017,-0.010693 -0.090562,-0.091349,-0.090562,-0.092136,-0.092136,-0.090562,-0.088989,-0.090562,-0.091349,-0.090562,-0.088989,-0.088202,-0.088202,-0.088989,-0.089775,-0.088989,-0.088989,-0.090562,-0.088989,-0.088202,0.49286,0.50388,0.46335,0.35556,-0.016995 -0.38729,-0.01692,0.075672,0.064862,0.062042,-0.3887,-0.026321,0.067212,0.068622,0.097763,-0.38729,0.072382,0.074262,0.15651,0.15134,-0.38729,0.073792,0.16027,0.15463,0.14711,-0.38729,0.086482,0.15886,0.15604,0.15322 0.38484,0.15394,-0.046181,-0.10776,-0.12315,0.44642,0.13854,-0.092362,-0.061575,-0.061575,0.35406,0.092362,-0.092362,-0.092362,-0.076969,0.23091,-0.046181,-0.12315,-0.12315,-0.10776,0.26169,-0.076969,-0.30787,-0.30787,-0.21551 -0.060151,-0.021321,-0.016615,-0.044855,-0.047208,-0.057014,-0.053091,-0.024459,-0.035441,-0.047208,-0.056229,-0.057798,-0.025244,-0.02995,-0.044855,-0.059759,-0.063681,-0.019752,-0.016615,-0.041717,-0.052699,-0.064074,-0.024459,-0.0123,0.9765 -0.28013,-0.25415,-0.24498,-0.17926,-0.17314,-0.23581,-0.20218,-0.22205,0.086693,-0.15939,0.0118,-0.037111,0.050011,0.065295,-0.1655,0.022499,0.028612,0.080579,0.17993,0.16464,0.15394,0.32971,0.31443,0.31902,0.34653 -0.25327,-0.25435,-0.25183,-0.26265,-0.27094,-0.25435,-0.24931,0.08738,-0.26337,-0.27094,0.090264,0.083055,0.081252,0.21139,0.21391,0.085218,0.080531,0.22761,0.224,0.21607,0.2204,0.12775,0.12595,0.12811,0.12811 0.33102,0.35875,0.28442,0.2796,0.64924,-0.092058,-0.092861,-0.094468,-0.093665,-0.095272,-0.092861,-0.095272,-0.095272,-0.097683,-0.098486,-0.093665,-0.095272,-0.096879,-0.095272,-0.096879,-0.094468,-0.093665,-0.093665,-0.096879,-0.098486 0.97838,-0.030688,-0.020405,-0.022193,-0.023534,-0.051701,-0.046783,-0.044547,-0.039182,-0.033817,-0.055724,-0.052595,-0.044547,-0.041865,-0.039182,-0.057066,-0.050807,-0.039182,-0.030241,-0.034712,-0.056619,-0.055277,-0.0365,-0.029347,-0.041865 -0.051281,-0.044783,-0.050353,-0.050353,-0.044783,-0.047568,-0.042926,-0.045711,-0.044783,-0.045711,-0.039213,-0.044783,-0.038285,-0.041998,-0.043855,-0.034571,-0.038285,-0.0355,-0.0355,-0.034571,-0.036428,-0.037356,-0.033643,-0.016933,0.97918 -0.052761,-0.054375,-0.057925,-0.059216,-0.058893,-0.053084,-0.053729,-0.057925,-0.058248,-0.057602,-0.054052,-0.054698,-0.056957,-0.059861,-0.059861,-0.053407,-0.056957,-0.055989,-0.056311,0.44684,-0.053084,-0.055666,-0.056957,-0.061798,0.85252 -0.039115,-0.044401,-0.046516,-0.04493,-0.032244,-0.046516,-0.046516,-0.045458,-0.047044,-0.047573,-0.045458,-0.044401,-0.04493,-0.047573,-0.047573,-0.039115,-0.042815,-0.042287,-0.031715,-0.047044,-0.036472,-0.029601,-0.028015,-0.011629,0.97894 0.97873,-0.035178,-0.047106,-0.043853,-0.0406,-0.052528,-0.046022,-0.050359,-0.050359,-0.042769,-0.044937,-0.046022,-0.056866,-0.042769,-0.036262,-0.038431,-0.046022,-0.052528,-0.024334,-0.035178,-0.0406,-0.028671,-0.019996,-0.02325,-0.034093 -0.082758,-0.17788,-0.24922,-0.39191,-0.46325,-0.058977,-0.10654,-0.10654,-0.13032,-0.20166,0.13127,0.012366,0.083709,-0.011415,-0.035196,0.15505,0.25018,0.10749,0.083709,-0.035196,0.15505,0.29774,0.22639,0.29774,0.25018 0.13689,0.046034,0.13689,-0.19625,-0.28711,0.22775,0.13689,0.16718,-0.10539,-0.3174,0.07632,-0.014537,0.10661,-0.22654,-0.34768,0.16718,0.07632,0.16718,0.07632,-0.34768,0.19746,0.13689,0.25803,0.07632,-0.34768 0.23256,-0.026415,-0.13216,-0.14943,-0.14943,0.31672,-0.093317,-0.1408,-0.12785,-0.13216,0.34478,-0.060945,-0.13648,-0.14511,-0.12353,0.39442,-0.045838,-0.10195,-0.13648,-0.14511,0.38578,0.40736,-0.063103,-0.056629,-0.1149 -0.14071,-0.11859,-0.12412,-0.0079649,0.52303,-0.14624,-0.14624,-0.096464,0.086065,0.47325,-0.12412,-0.12412,-0.11306,0.080534,0.32391,-0.14624,-0.12412,-0.14071,-0.07987,0.252,-0.12965,-0.13518,-0.12965,0.047347,0.24094 0.19278,0.19412,0.19381,-0.20887,-0.20723,0.19114,0.1895,0.1933,-0.20836,-0.20621,0.19104,0.1895,-0.20395,-0.20764,-0.21051,0.19237,0.19083,-0.20467,-0.20805,-0.21277,0.19319,0.19483,0.19145,-0.20816,-0.21144 0.14713,-0.0043274,0.082221,-0.11251,-0.48034,0.29859,-0.025965,0.1255,-0.047602,-0.19906,0.27696,0.01731,0.038947,-0.19906,-0.17742,0.27696,0.038947,0.10386,-0.069239,-0.17742,0.40678,0.01731,0.038947,-0.0043274,-0.37216 0.013286,-0.0029958,-0.0095083,0.10609,0.016542,0.0018886,-0.022533,-0.016021,-0.066493,-0.084402,-0.027418,-0.053468,-0.053468,-0.092543,-0.089287,-0.035558,-0.061608,-0.058352,-0.074633,-0.053468,0.95597,-0.050212,-0.087659,-0.079518,-0.074633 0,0.14056,0,0.070282,-0.37484,0.09371,0.09371,0.28113,0.046855,-0.28113,0.09371,0.09371,0.070282,0,-0.44512,0.070282,0.11714,0.14056,0.070282,-0.35141,0.16399,0.14056,0.070282,0.14056,-0.44512 -0.047985,-0.045764,-0.042434,-0.04854,-0.046319,-0.043544,-0.044654,-0.041323,-0.046875,-0.046319,-0.039103,-0.041323,-0.041323,-0.041878,-0.039103,-0.039103,-0.035772,-0.037993,-0.035217,-0.036327,-0.034107,-0.035217,-0.034662,-0.034662,0.97955 0.39394,0.16001,0.043043,-0.1441,-0.16749,0.32376,0.08983,0.08983,0.066436,-0.19089,0.32376,0.1834,0.043043,-0.097315,-0.16749,0.16001,0.11322,0.01965,-0.16749,-0.26107,0.08983,-0.097315,-0.073922,-0.40143,-0.33125 -0.17594,-0.17738,-0.17614,-0.17553,-0.17573,-0.17491,-0.17532,-0.17573,-0.1745,-0.17532,-0.17471,-0.17347,-0.17512,-0.17573,0.27653,0.17995,0.18221,0.18406,0.27344,0.27344,0.18118,0.18529,0.18735,0.2644,0.26769 -0.058368,-0.058018,-0.057785,-0.058018,-0.057203,-0.035652,-0.035535,-0.035885,-0.036001,-0.036001,-0.0367,-0.03705,-0.036351,-0.036933,-0.036351,-0.0367,-0.036351,-0.036467,-0.036351,-0.035885,-0.036118,-0.035885,-0.036584,-0.0367,0.97889 -0.15123,-0.15134,-0.15144,-0.15134,-0.15091,-0.15059,-0.15112,-0.15049,-0.15144,-0.15049,-0.15059,-0.15059,-0.15059,-0.15059,-0.1507,0.34243,0.27849,0.27743,0.27487,-0.010792,0.30785,0.26859,0.27338,0.26306,-0.011856 -0.17112,-0.14503,-0.014608,-0.0015651,0.38971,-0.1972,-0.07982,-0.07982,0.037562,0.40275,-0.17112,-0.14503,-0.066778,-0.0015651,0.40275,-0.17112,-0.17112,-0.11895,0.037562,0.10278,-0.17112,-0.11895,-0.066778,0.037562,0.48101 -0.11877,-0.13857,-0.19795,0.098976,0.29693,-0.11877,-0.059386,-0.079181,0.03959,0.4157,-0.19795,-0.11877,-0.11877,0.098976,0.29693,-0.29693,-0.19795,0.019795,-0.059386,0.29693,-0.25734,-0.059386,0.059386,-0.019795,0.4157 -0.15162,-0.15101,-0.15024,0.24669,0.2844,-0.15116,-0.15101,-0.1507,0.29471,0.30748,-0.14931,-0.14947,-0.14808,0.25546,0.25654,-0.14931,-0.14855,-0.14931,0.25115,0.24961,-0.14901,-0.14885,-0.14916,-0.14808,0.24884 0.29578,0.13845,0.13845,-0.11328,-0.23914,0.13845,0.044052,0.26431,-0.050345,-0.4594,0.16992,0.13845,0.044052,-0.081811,-0.30207,0.13845,0.20138,0.13845,-0.081811,-0.27061,0.13845,0.13845,-0.01888,-0.365,-0.14474 -0.22306,-0.22375,-0.22375,-0.22271,-0.2234,-0.22271,-0.2234,-0.2234,-0.22306,-0.22271,0.28081,0.23035,0.19573,0.051319,0.0027768,0.27072,0.23052,0.18825,0.049057,-0.0022688,0.26915,0.23313,0.19033,0.04088,0.0012109 0.96991,-0.037852,-0.048003,-0.038416,0.092419,-0.042363,-0.040671,-0.042363,-0.050822,-0.035596,-0.040107,-0.038416,-0.044055,-0.048567,-0.048567,-0.045183,-0.040107,-0.042927,-0.050258,-0.051386,-0.049694,-0.044055,-0.044055,-0.07338,-0.065485 -0.082946,-0.061524,-0.070093,-0.082946,-0.070093,-0.05724,-0.065808,-0.05724,-0.05724,-0.052955,-0.065808,-0.061524,-0.040102,-0.074377,-0.0015424,-0.014396,-0.074377,-0.078662,-0.0058268,0.13984,0.041302,-0.08723,-0.061524,0.10128,0.94103 0.97766,-0.035529,-0.054341,-0.001935,-0.052997,-0.047622,-0.05031,-0.040904,-0.043591,-0.063747,-0.05031,-0.051654,-0.048966,-0.052997,-0.035529,-0.043591,-0.038216,-0.019404,-0.040904,-0.014029,-0.035529,-0.038216,-0.030154,-0.040904,-0.046279 0.3821,0.197,-0.17912,-0.20281,-0.17912,0.19997,0.16443,-0.14654,-0.20133,-0.19689,0.26512,0.17627,0.16443,-0.21317,-0.19985,0.27104,0.19404,-0.15987,-0.17615,-0.19985,0.031156,0.12445,0.21774,-0.14062,-0.19244 -0.36499,-0.38636,-0.25814,-0.2154,-0.45047,-0.087187,-0.065818,-0.0017096,-0.0017096,-0.10856,-0.023079,0.083768,0.10514,0.062399,0.041029,-0.0017096,0.10514,0.10514,0.16925,0.21199,0.10514,0.25472,0.16925,0.25472,0.29746 0.2105,0.20984,0.20928,-0.19235,-0.19251,0.20282,0.25187,-0.19145,-0.19257,-0.1929,0.20733,0.20772,-0.19207,-0.19223,-0.19235,0.19642,0.19698,-0.19179,-0.19157,-0.19157,0.19636,0.20126,0.2046,-0.19073,-0.1909 0.074265,0.09902,0.09902,0.084167,0.10397,0.089118,0.10892,0.094069,0.10892,0.10892,0.11882,0.089118,0.10892,0.089118,0.10397,0.029706,0.11882,0.11387,0.11882,0.12377,-0.45549,-0.39608,-0.41093,-0.36637,-0.35647 -0.26503,-0.21719,-0.17732,0.029979,0.093764,-0.24908,-0.21719,-0.17732,0.029979,0.18944,-0.20921,-0.21719,-0.01786,0.13363,0.30106,-0.20124,-0.089618,0.13363,0.23728,0.28512,-0.17732,-0.01786,0.16552,0.30904,0.32498 0.97961,-0.041741,-0.040474,-0.041741,-0.038573,-0.04681,-0.044275,-0.041741,-0.03984,-0.036039,-0.046176,-0.044909,-0.043642,-0.036039,-0.033504,-0.038573,-0.045542,-0.044275,-0.036672,-0.036672,-0.04681,-0.044909,-0.037306,-0.037939,-0.035405 -0.25552,-0.14246,0.12135,0.25326,0.30979,-0.36859,-0.1613,0.083667,0.25326,0.34748,-0.21784,-0.18015,-0.067084,0.19673,0.29095,-0.18015,-0.21784,-0.010553,-0.029397,0.25326,-0.14246,-0.067084,-0.085928,-0.010553,0.027135 -0.026731,-0.043826,-0.032947,-0.036056,-0.040718,-0.048489,-0.046935,-0.042272,-0.040718,-0.03761,-0.040718,-0.040718,-0.048489,-0.043826,-0.039164,-0.048489,-0.050043,-0.043826,-0.04538,-0.028285,-0.048489,-0.050043,-0.046935,-0.0080815,0.97879 0.016418,0.044761,0.056833,0.04686,-0.28171,0.30667,0.059457,0.062081,0.047385,-0.28433,0.31034,0.062606,0.056308,0.046335,-0.28381,0.32661,0.063656,0.044761,-0.28013,-0.28171,0.32504,0.055258,0.047385,-0.28118,-0.28591 0.13842,0.12804,0.11298,-0.31419,-0.32561,0.14568,0.13375,0.11195,-0.31367,-0.3199,0.1488,0.1353,0.10935,0.097414,-0.32405,0.14984,0.13427,0.10779,0.093261,-0.3199,0.15088,0.13219,0.10935,0.098452,-0.32041 0.33042,-0.099648,-0.11696,-0.11549,-0.14688,0.32631,-0.091434,-0.124,-0.10904,-0.12928,0.31604,-0.092607,-0.12077,-0.11842,-0.14365,0.32103,0.31692,-0.12253,-0.1193,-0.15011,0.31604,0.31017,-0.12253,-0.16008,-0.15421 -0.13293,-0.11086,-0.1241,-0.031423,0.22897,-0.13293,-0.088797,-0.1241,-0.02701,0.40991,-0.12852,-0.1241,-0.10204,0.0038838,0.48053,-0.12852,-0.13734,-0.10645,-0.031423,0.27751,-0.13293,-0.1241,-0.11086,-0.0005296,0.49818 -0.20976,-0.20976,-0.20976,-0.047575,-0.18273,-0.20976,-0.1557,-0.20976,-0.18273,-0.18273,-0.18273,-0.074607,0.087582,-0.047575,-0.047575,0.2768,0.0064875,-0.047575,0.19571,0.14164,0.19571,0.33086,0.30383,0.2768,0.38493 -0.087554,-0.087554,-0.11713,-0.087554,-0.14671,-0.20587,-0.17629,-0.087554,-0.20587,-0.17629,-0.20587,-0.14671,-0.11713,-0.26503,-0.028396,0.060341,0.1195,0.1195,0.08992,0.1195,0.26739,0.41529,0.20824,0.47445,0.26739 -0.34836,0.077767,0.15767,0.13103,0.1843,-0.42825,0.024502,0.051135,0.051135,0.23756,-0.34836,-0.13529,0.13103,0.15767,0.051135,-0.34836,-0.028763,0.051135,0.13103,0.1044,-0.32172,-0.10866,0.13103,0.23756,0.15767 0.15413,0.15623,0.13735,0.22546,0.22266,0.14434,0.15203,0.13525,0.22057,0.21847,-0.2263,0.17511,0.14014,0.15903,0.21917,-0.2256,-0.2228,-0.21791,-0.22141,-0.2305,-0.2284,-0.2284,-0.21931,-0.21861,-0.22071 -0.054845,0.28109,0.26459,0.26195,0.26525,0.083423,0.087383,0.082763,0.26228,0.15635,0.076493,0.088043,0.084743,0.15569,0.17714,-0.23172,-0.19245,-0.22545,-0.2337,-0.23601,-0.22017,-0.23139,-0.23535,-0.23436,-0.23172 0.12798,0.19995,0.205,-0.14096,-0.24449,0.17343,0.19489,0.19868,-0.14601,-0.23944,0.18353,0.19363,-0.18389,-0.20661,-0.23186,0.17217,0.19616,-0.19399,-0.21671,-0.23691,0.22393,0.18606,0.21762,-0.21671,-0.21545 -0.07524,-0.072778,-0.067113,-0.069083,-0.058494,-0.074255,-0.0713,-0.022046,-0.019091,-0.063173,-0.065882,-0.020568,-0.020815,-0.011703,-0.0013594,-0.019583,-0.022539,-0.023524,-0.016628,-0.0030833,-0.06071,-0.018352,-0.022046,-0.072285,0.97165 0.2227,0.2215,0.23711,0.2291,0.20989,0.23511,0.23071,0.23271,0.21629,0.21069,-0.17961,-0.18361,0.23471,-0.17321,-0.18401,-0.17281,-0.17361,-0.17721,-0.17521,-0.17441,-0.17681,-0.17801,-0.17641,-0.17601,-0.17961 0.16871,0.13563,0.10979,0.079366,-0.31809,0.1646,0.13345,0.10013,-0.3164,-0.31881,0.15712,0.1337,0.10158,-0.31809,-0.31712,0.16388,0.13176,0.10544,0.077192,-0.31857,0.16195,0.12935,0.097717,0.074295,-0.31857 -0.23315,-0.41626,-0.26367,-0.20264,-0.17212,-0.26367,-0.080566,-0.1416,-0.11108,-0.080566,0.041504,0.010986,-0.080566,0.010986,0.13306,0.10254,0.010986,0.22461,0.010986,0.13306,0.34668,0.22461,0.40771,0.19409,0.19409 0.9792,-0.037909,-0.034257,-0.018431,-0.020866,-0.042778,-0.041561,-0.043387,-0.0373,-0.039735,-0.047039,-0.042169,-0.041561,-0.047648,-0.045821,-0.048865,-0.040952,-0.043995,-0.042169,-0.042169,-0.044604,-0.042778,-0.044604,-0.043995,-0.044604 0.20793,0.20724,-0.20625,-0.20847,-0.20805,0.17019,0.20835,0.12926,-0.20583,-0.20708,0.17227,0.20585,0.20516,-0.20778,-0.20791,0.17199,0.20585,-0.20653,-0.2075,-0.20722,0.19128,0.20696,0.20696,-0.20805,-0.20861 0.30382,0.29,0.27014,0.27618,0.27618,0.3116,0.30037,0.29691,-0.096944,-0.095217,-0.13495,-0.13063,-0.13236,-0.12977,-0.13322,-0.14531,-0.14877,-0.14531,-0.14531,-0.14877,-0.14704,-0.14704,-0.1505,-0.14704,-0.14704 0.29384,0.2408,0.2408,0.26732,0.16124,0.18776,0.081682,0.2408,0.081682,0.081682,0.081682,0.13472,-0.024398,-0.10396,0.0021216,0.028642,-0.077439,-0.077439,-0.157,-0.18352,-0.2896,-0.18352,-0.2896,-0.31612,-0.4222 -0.17657,-0.17632,-0.17723,0.22293,0.22201,-0.17615,-0.17673,-0.17682,0.22226,0.22326,-0.17682,-0.17707,0.22351,0.22384,0.22334,-0.1779,-0.17765,-0.17732,0.22401,0.26046,-0.17798,-0.1779,-0.17773,0.21695,0.21761 0.97906,-0.045079,-0.041898,-0.045079,-0.045079,-0.042959,-0.0525,-0.047199,-0.037658,-0.045079,-0.04932,-0.034477,-0.034477,-0.024935,-0.035537,-0.044019,-0.04932,-0.045079,-0.031297,-0.037658,-0.05356,-0.041898,-0.027056,-0.042959,-0.024935 0.14263,0.15748,0.16739,0.18225,0.073294,0.15253,0.18225,0.15748,0.15253,0.093104,0.17729,0.16739,0.11291,0.15253,0.088151,-0.28822,-0.27832,-0.25356,0.083199,0.048533,-0.30308,-0.32289,-0.32784,-0.27337,-0.24365 0.13927,0.10524,0.09488,0.071205,0.065286,0.13335,0.11708,0.090441,0.078603,0.068245,0.13483,0.10672,0.1008,0.077124,0.062326,0.14519,0.12595,0.10376,0.087482,0.074164,-0.36828,-0.35644,-0.39787,-0.43338,-0.42599 -0.18527,-0.18527,-0.082344,-0.21958,-0.16812,-0.15096,-0.20243,-0.15096,-0.11665,-0.25389,0.020586,-0.099498,-0.013724,-0.11665,-0.21958,0.10636,0.17498,0.15783,0.15783,0.17498,0.17498,0.17498,0.55239,0.31222,0.15783 0.57617,0.15029,0.098032,0.066678,-0.095315,0.13722,0.12155,0.095419,-0.10315,-0.24947,0.17642,0.12155,0.022261,-0.19721,-0.24686,0.15551,0.11893,-0.090089,-0.23641,-0.26253,0.1738,0.10848,-0.13189,-0.24686,-0.26253 0.16216,0.097299,0.064866,0.10811,-0.11892,0.12973,0.097299,0.043244,0.010811,-0.23784,0.12973,0.086488,0.043244,0.043244,-0.34595,0.086488,0.11892,0.097299,0.097299,-0.45406,0.16216,0.086488,0.11892,0.010811,-0.63785 -0.33059,-0.33059,-0.33059,-0.33059,-0.33059,0.038625,0.010224,-0.13178,-0.018177,0.010224,0.12383,0.010224,-0.074978,0.038625,-0.10338,0.15223,0.18063,0.12383,0.038625,0.038625,0.32263,0.35103,0.18063,0.15223,0.20903 -0.075638,-0.075638,-0.056627,-0.041418,-0.014803,-0.07437,-0.049023,-0.031279,0.00040556,-0.004664,-0.064231,-0.056627,0.00040556,-0.0059314,-0.0059314,-0.070568,-0.097183,0.00040556,0.00040556,-0.0084662,0.96362,-0.10986,-0.10859,-0.012268,-0.0021292 -0.10292,-0.10406,-0.10406,-0.10482,0.39156,-0.10463,-0.10444,-0.10406,-0.10501,0.39423,-0.10501,-0.10501,-0.10501,-0.10482,0.40089,-0.10577,-0.10482,-0.10596,-0.1052,0.39975,-0.10101,-0.10501,-0.10425,-0.0045146,0.40393 -0.15197,-0.15197,-0.1533,-0.15286,-0.15397,-0.15109,-0.1522,-0.15197,-0.15264,-0.15308,-0.1502,-0.1502,-0.15087,-0.1522,-0.15197,0.30285,0.052707,0.050933,0.31948,0.32258,0.28954,0.053594,0.29309,0.2962,0.29952 -0.14751,-0.14619,-0.14645,0.2438,0.27625,-0.1483,-0.14619,-0.14751,0.2591,0.26992,-0.1483,-0.14672,-0.14751,0.26438,0.27071,-0.15147,-0.14856,-0.14724,0.27229,0.27493,-0.16255,-0.15569,-0.15542,-0.15305,0.26728 -0.094109,-0.08091,-0.067711,-0.054512,0.047781,-0.12381,-0.074311,-0.09081,-0.041313,0.097277,-0.094109,-0.11391,-0.038013,0.011483,0.05438,-0.10401,-0.071011,-0.057812,0.027982,0.044481,-0.067711,-0.047913,-0.044613,0.047781,0.93542 0.97355,-0.013771,-0.0018995,-0.023664,-0.019707,-0.065215,-0.07115,-0.045429,-0.027621,-0.021685,-0.041471,-0.053343,-0.11072,-0.045429,-0.039493,-0.04345,-0.023664,-0.063236,-0.041471,-0.059279,-0.059279,-0.023664,-0.031578,-0.01575,-0.031578 -0.40033,0.060978,0.11291,0.097638,0.12208,-0.40033,0.082363,0.097638,0.11597,0.12208,-0.37894,0.051813,0.097638,0.11597,0.14041,-0.40644,0.033483,0.1068,0.10069,0.11597,-0.40033,0.079308,0.10375,0.1068,0.12208 0.18582,0.19609,-0.20053,-0.20111,-0.19935,0.19052,0.19022,0.18993,-0.20317,-0.20522,0.19052,0.19052,0.18934,-0.20727,-0.20845,0.19169,0.19169,-0.21431,-0.21314,-0.21343,0.1999,0.19697,0.19404,-0.21431,-0.21695 0.97875,-0.041727,-0.038889,-0.033212,-0.038889,-0.041727,-0.045985,-0.040308,-0.037469,-0.038889,-0.037469,-0.043147,-0.041727,-0.040308,-0.040308,-0.045985,-0.033212,-0.044566,-0.03605,-0.058759,-0.03605,-0.0076642,-0.048824,-0.048824,-0.058759 0.25288,0.25503,0.27267,0.0091966,0.0089098,0.25604,0.26981,0.27167,0.27267,0.0086229,0.07919,0.078042,0.078616,0.078042,0.011205,-0.22029,-0.22115,-0.22015,-0.21914,-0.22244,-0.22015,-0.22072,-0.21986,-0.21928,-0.21943 0.4165,0.26925,0.39546,0.122,0.122,0.122,0.122,0.14304,0.14304,0.14304,0.058898,-0.004207,-0.17249,0.058898,-0.004207,-0.10938,-0.17249,-0.10938,-0.10938,-0.10938,-0.27766,-0.34077,-0.21456,-0.27766,-0.21456 -0.1812,-0.1812,-0.10734,0.015757,0.28658,-0.20582,-0.033483,-0.10734,-0.033483,0.28658,-0.082723,-0.20582,-0.20582,0.040377,0.26196,-0.23044,-0.082723,-0.10734,0.26196,0.28658,-0.27968,-0.10734,0.040377,0.3112,0.36044 -0.15302,-0.27905,-0.26354,-0.24609,-0.28487,0.0273,-0.24027,-0.23058,-0.17629,-0.26936,0.1669,0.13588,0.11843,0.15333,-0.20731,0.17854,0.23671,0.13782,0.097102,0.15139,0.16496,0.33171,0.16109,0.12037,0.16884 -0.1706,-0.17076,-0.17085,0.22442,0.22961,-0.16984,-0.17445,-0.1711,0.22383,0.22643,-0.17998,-0.18157,-0.18191,0.22542,0.22517,-0.18199,-0.18199,0.22551,0.22752,0.22542,-0.18207,-0.18207,-0.18224,0.22433,0.22375 -0.12746,-0.11272,-0.10956,-0.10324,0.42539,-0.12114,-0.12009,-0.1222,-0.090604,0.3938,-0.12325,-0.11798,-0.086392,-0.045323,0.38327,-0.11798,-0.11904,-0.071649,-0.046376,0.38432,-0.11482,-0.11904,-0.057959,-0.056906,0.39696 0.3503,0.4147,0.28591,0.47909,0.25371,0.028333,-0.13265,0.092728,-0.0038637,-0.0038637,-0.10046,-0.10046,0.092728,-0.16485,-0.036061,-0.13265,-0.10046,-0.13265,-0.068258,-0.13265,-0.068258,-0.19705,-0.16485,-0.26144,-0.19705 0.11341,0.10059,0.095719,0.090335,-0.3114,0.11059,0.10059,0.12187,-0.31371,-0.3114,0.10726,0.11187,0.13623,0.12751,-0.39139,0.10649,0.11648,0.10546,0.12494,-0.396,0.1352,0.11495,0.10315,0.098539,-0.39728 -0.020305,-0.021964,-0.024729,-0.019752,-0.025282,-0.019199,-0.022517,-0.020305,-0.021964,-0.021964,-0.019199,-0.019752,-0.020305,-0.022517,-0.02307,-0.020305,-0.019199,-0.022517,-0.022517,-0.024176,0.95957,-0.13035,-0.12427,-0.13256,-0.14085 0.3798,0.3798,0.28516,0.3798,0.15898,0.15898,0.032806,0.15898,0.032806,0.032806,-0.030283,-0.030283,-0.12492,-0.030283,0.032806,-0.12492,-0.21955,-0.030283,-0.12492,-0.21955,-0.21955,-0.12492,-0.31418,-0.21955,-0.21955 -0.15162,-0.14223,-0.16569,-0.17038,-0.15162,-0.10001,-0.1094,-0.17507,-0.18445,-0.15631,0.036028,-0.029648,-0.08125,-0.14693,-0.15631,0.2612,0.064174,-0.0015011,-0.034339,-0.067176,0.46761,0.44884,0.35971,0.2612,0.12516 -0.25462,-0.27157,0.14195,0.14534,0.19618,-0.27834,-0.24106,0.10467,0.13856,0.2233,-0.26818,-0.25123,-0.20717,0.19279,0.23008,-0.25462,-0.19361,0.08433,0.19957,0.1894,-0.17327,0.060604,0.17246,0.1589,0.15551 -0.041268,-0.043511,-0.03809,-0.04052,-0.039586,-0.041268,-0.042203,-0.039399,-0.041268,-0.040146,-0.042016,-0.04052,-0.039959,-0.040894,-0.039586,-0.041268,-0.041268,-0.04052,-0.041829,-0.038277,-0.040707,-0.040894,-0.041642,-0.043137,0.97978 0.073798,0.078842,0.080218,0.080677,-0.3848,0.077008,0.078842,0.082511,0.080677,-0.38205,0.078842,0.080677,0.081135,0.07288,-0.37838,0.079301,0.082052,0.080677,0.071046,-0.37609,0.40628,0.067836,0.077008,0.084345,-0.37334 0.14905,0.17644,0.14905,0.14905,0.066852,0.12165,0.14905,0.20384,0.14905,0.28604,0.039453,0.14905,-0.015343,0.23124,0.23124,-0.31672,-0.12494,-0.20713,-0.15233,-0.070139,-0.39892,-0.26193,-0.28932,-0.20713,-0.20713 -0.22355,-0.22162,0.13419,0.13032,0.54072,-0.22162,-0.22897,0.10283,0.13226,0.13264,-0.22278,-0.22278,0.092379,0.13032,0.13458,-0.22084,-0.22007,0.083087,0.13497,0.13342,-0.22278,-0.22587,0.079602,0.13187,0.13768 0.32175,0.12556,-0.011771,0.047086,-0.28644,0.1648,0.027467,-0.011771,-0.05101,-0.48263,0.36099,0.0078477,-0.070629,0.0078477,-0.22758,0.20404,0.086324,0.0078477,0.0078477,-0.12949,0.32175,0.066705,-0.090248,0.0078477,-0.40415 0.44845,-0.09135,-0.09135,-0.035986,-0.14671,0.4346,-0.09135,-0.10519,-0.14671,-0.14671,0.4346,0.0055364,-0.049827,-0.11903,-0.10519,0.1301,-0.10519,-0.022145,-0.063668,-0.16055,0.4346,-0.063668,-0.09135,-0.13287,-0.11903 -0.18082,-0.17002,-0.17947,0.25112,0.24572,-0.17542,-0.17002,-0.17677,0.20658,0.25382,-0.17677,-0.17677,-0.17407,0.16068,0.19173,-0.18082,-0.17407,0.23627,0.20388,0.21603,-0.17677,-0.19027,-0.16732,0.24842,0.25517 0.21788,0.28862,0.35935,0.43009,0.35935,-0.08866,0.052818,0.052818,0.14714,0.21788,-0.1594,-0.08866,-0.1594,-0.08866,0.052818,-0.1594,-0.23014,-0.23014,-0.1594,-0.08866,-0.1594,-0.1594,-0.08866,-0.1594,-0.1594 -0.0062741,-0.17764,-0.1792,0.17002,0.15861,-0.1792,-0.17842,-0.17998,0.28798,0.2981,-0.1792,-0.17713,-0.18257,0.29213,0.18039,-0.1779,-0.17687,-0.18127,0.29654,0.17728,-0.17713,-0.1779,-0.0073111,0.29939,0.17754 -0.14713,-0.10096,-0.10096,-0.024008,0.39152,-0.085567,-0.11635,-0.11635,0.0067715,0.32996,-0.11635,-0.10096,-0.085567,0.0067715,0.45308,-0.14713,-0.13174,-0.11635,-0.070177,0.32996,-0.10096,-0.1933,-0.20869,0.037551,0.40691 -0.38491,-0.39048,-0.38491,-0.39048,-0.39327,0.084798,-0.11591,0.077829,0.084798,0.084798,0.095948,0.095948,0.09316,0.10292,0.094554,0.11825,0.11685,0.11267,0.11128,0.10849,0.13916,0.13916,0.13497,0.13497,0.1294 -0.22007,-0.22282,-0.22374,-0.22419,-0.22374,-0.21801,-0.22213,-0.22419,-0.22328,-0.22305,-0.21664,0.14284,0.25091,0.25228,0.14398,0.24381,0.14238,0.25228,0.14581,0.14788,0.13895,0.1433,0.14444,0.14467,0.14833 -0.1761,-0.1761,-0.17694,0.23343,0.22862,-0.17715,-0.17756,0.22024,0.22841,0.22485,-0.17715,-0.17694,-0.17882,0.22129,0.22631,-0.17631,-0.17652,-0.17924,0.22234,0.22317,-0.17735,-0.17903,-0.17652,0.23008,0.22297 -0.067997,-0.067997,-0.067344,-0.067671,-0.067344,-0.067344,-0.067671,-0.067344,-0.067453,-0.067127,-0.067127,-0.067562,-0.06582,-0.0668,-0.067997,-0.023042,0.015927,0.015274,0.016363,0.038895,-0.022497,-0.022606,0.015274,0.013859,0.96315 0.4147,0.38002,0.0079459,-0.12449,-0.13395,0.35794,0.33272,-0.06773,-0.1434,-0.1434,0.3674,0.12777,-0.13395,-0.1434,-0.16548,0.067856,-0.0015135,-0.14025,-0.1434,-0.14971,0.0016396,-0.12449,-0.14656,-0.1371,-0.15917 -0.26906,-0.2137,-0.29674,-0.29674,-0.26906,-0.019931,-0.047612,-0.26906,-0.15834,-0.075293,0.0077508,0.035432,-0.10297,-0.075293,0.090795,0.17384,0.11848,0.11848,0.090795,0.25688,0.42297,0.2292,0.11848,0.090795,0.33993 -0.32478,0.087469,0.051621,0.087469,0.19501,-0.25309,-0.020075,0.10539,0.19501,0.15917,-0.37856,-0.073847,0.051621,0.19501,0.12332,-0.37856,-0.18139,0.19501,0.069545,0.19501,-0.34271,-0.21724,0.19501,0.12332,0.14124 -0.048328,-0.049366,-0.048328,-0.041062,0.8547,-0.043138,-0.049366,-0.053518,-0.038986,0.43848,-0.0421,-0.051442,-0.063897,-0.062859,-0.038986,-0.041062,-0.057669,-0.061821,-0.054555,-0.065973,-0.062859,-0.064935,-0.078429,-0.09296,-0.081543 -0.0042658,0.44635,0.44635,0.43734,0.44635,-0.038813,-0.0087719,-0.010274,-0.01478,-0.016282,-0.079368,-0.061343,-0.068854,-0.07336,-0.079368,-0.12143,-0.1064,-0.097393,-0.1004,-0.1004,-0.16498,-0.15597,-0.15297,-0.14996,-0.17099 0.15517,0.15418,0.15641,0.14973,0.13934,0.15295,0.15295,0.15121,0.15097,0.14552,0.15146,0.15022,0.14948,0.14899,0.14577,-0.26514,-0.26638,-0.26341,-0.27083,0.14528,-0.26712,-0.26662,-0.26588,-0.26662,-0.26761 -0.069622,-0.037727,-0.033171,-0.069622,-0.074179,-0.065066,-0.083292,-0.055953,-0.060509,0.021506,-0.055953,-0.051397,-0.065066,-0.051397,0.10352,-0.087848,0.0078371,-0.0012758,-0.060509,0.039732,-0.078735,-0.051397,-0.0012758,-0.074179,0.95558 -0.068552,-0.073051,-0.0050594,-0.0020598,-0.0050594,-0.074551,-0.08055,-0.0075591,-0.0050594,-0.008559,-0.070552,-0.08855,-0.08305,-0.010559,-0.011059,-0.089549,-0.097048,-0.095049,-0.0020598,-0.0050594,-0.091549,-0.096549,-0.10255,0.25891,0.91433 -0.17104,-0.15733,-0.21215,-0.26697,-0.33549,-0.10251,-0.12992,-0.088807,-0.15733,-0.21215,0.07565,-0.0065783,0.034536,0.034536,-0.12992,0.2127,0.11676,0.10306,0.0071265,-0.047693,0.47309,0.41827,0.28122,0.17158,0.089355 0.22954,0.21926,0.20583,0.22321,0.21847,0.23349,0.23191,0.22163,0.22795,0.23191,-0.17504,-0.17504,-0.17978,-0.18532,0.23744,-0.17583,-0.17504,-0.1782,-0.17188,-0.17741,-0.17504,-0.18374,-0.18216,-0.17583,-0.1703 -0.27717,-0.21621,-0.43974,-0.23653,-0.15525,-0.073967,-0.21621,-0.25685,-0.013005,-0.11461,0.088597,-0.033326,-0.094287,0.14956,-0.094287,0.1902,0.14956,0.21052,0.10892,0.27148,0.1902,0.12924,0.25116,0.27148,0.21052 0.46213,0.46213,0.4411,0.4432,0.0077415,-0.053265,-0.055368,-0.059576,-0.065887,-0.080612,-0.057472,-0.063783,-0.074301,-0.074301,-0.093234,-0.097441,-0.082716,-0.10165,-0.086923,-0.095338,-0.14162,-0.13951,-0.12689,-0.1332,-0.1332 0.2069,-0.10059,-0.13629,-0.12805,-0.13354,0.28652,-0.11158,-0.11981,-0.11981,-0.14178,0.34692,-0.089612,-0.11981,-0.13629,-0.13629,0.3881,0.29475,-0.11981,-0.11981,-0.13629,0.37986,0.31123,-0.10059,-0.12805,-0.13629 -0.15375,-0.21083,-0.26792,-0.0015223,0.32196,-0.058607,-0.24889,-0.11569,0.13168,0.32196,-0.11569,-0.15375,-0.17278,0.1507,0.32196,-0.11569,-0.22986,-0.039579,0.20779,0.24585,-0.058607,-0.13472,-0.15375,0.20779,0.32196 -0.21122,-0.21191,-0.21064,0.14409,0.13922,-0.21412,-0.21354,-0.21099,0.14293,0.13968,-0.21389,-0.10678,0.15129,0.23019,0.2339,-0.21528,-0.21539,0.15198,0.23008,0.23332,-0.21203,-0.214,0.15442,0.23982,0.25885 -0.42689,-0.33977,-0.33977,-0.31799,-0.27443,-0.23087,-0.078409,-0.013068,-0.013068,-0.078409,0.095834,0.074053,0.20474,0.095834,0.18295,0.20474,0.13939,0.13939,0.27008,0.13939,0.11761,0.074053,0.18295,0.11761,0.074053 -0.37598,-0.31627,-0.13711,0.030098,0.17342,-0.34015,-0.18489,-0.041564,0.10176,0.22119,-0.34015,-0.12517,-0.017676,0.14953,0.28091,-0.13711,-0.02962,0.077872,0.25703,0.23314,-0.065451,0.030098,0.10176,0.22119,0.23314 0.97741,-0.04467,-0.049619,-0.056425,-0.052094,-0.04467,-0.045907,-0.047144,-0.050857,-0.054569,-0.03972,-0.047144,-0.048382,-0.054569,0.0073006,-0.045907,-0.042195,-0.028584,-0.03972,-0.045907,-0.042195,-0.031058,-0.027346,-0.035389,-0.010642 -0.057165,-0.05819,-0.057506,-0.058532,-0.05819,-0.057165,-0.059215,-0.057848,-0.05443,-0.057848,-0.055797,-0.054088,-0.058532,-0.055797,-0.055797,-0.053405,-0.052379,-0.062975,-0.055797,-0.051012,-0.053405,-0.053405,-0.056139,0.43641,0.85821 -0.13985,-0.13985,-0.13985,0.22544,0.43417,-0.17464,-0.10506,-0.10506,0.086278,0.41678,-0.12246,-0.13985,-0.13985,-0.01809,0.31241,-0.13985,-0.070275,-0.087669,-0.10506,0.36459,-0.13985,-0.087669,-0.10506,-0.15725,0.27762 0.42977,0.37067,0.16382,-0.060754,-0.11394,0.37067,0.21701,-0.025294,-0.12576,-0.16713,0.34112,0.098814,-0.096213,-0.15531,-0.13758,0.14018,-0.019385,-0.1494,-0.17895,-0.17895,-0.037114,-0.13758,-0.18486,-0.17895,-0.18486 0.97936,-0.031124,-0.040395,-0.030506,-0.029888,-0.046575,-0.0577,-0.044103,-0.045339,-0.034214,-0.045339,-0.044103,-0.041631,-0.040395,-0.041013,-0.045339,-0.042867,-0.039159,-0.040395,-0.038541,-0.044103,-0.041631,-0.041013,-0.042867,-0.031124 0.29675,0.28464,0.28464,0.30482,0.23217,0.29271,0.28464,0.21602,0.0020989,-0.12706,0.13126,-0.066517,-0.15128,-0.16742,-0.15128,-0.17953,-0.15935,-0.16742,-0.1755,-0.17146,-0.16742,-0.16742,-0.16339,-0.15532,-0.15935 -0.29047,-0.058712,0.057167,0.21167,0.13442,-0.097339,-0.29047,0.018541,-0.020086,0.21167,-0.36772,-0.020086,0.095794,0.28893,0.2503,-0.29047,-0.13597,-0.097339,0.17305,0.21167,-0.29047,-0.097339,0.018541,0.018541,0.36618 0.93229,0.14335,-0.0082014,-0.048317,-0.026031,0.13443,-0.052774,-0.021573,-0.030488,-0.034945,-0.09289,-0.079518,-0.04386,-0.034945,-0.061689,-0.09289,-0.083976,-0.079518,-0.039403,-0.04386,-0.10626,-0.10626,-0.097347,-0.057232,0.031914 -0.14492,-0.16987,-0.12745,-0.08254,0.40402,-0.15989,-0.13244,-0.090025,-0.042617,0.42647,-0.14242,-0.13494,-0.075054,-0.055093,0.33166,-0.13244,-0.13993,-0.13743,0.2044,0.31169,-0.10999,-0.12246,-0.12246,0.087131,0.35661 0.178,0.085349,-0.17938,-0.20585,-0.15291,0.27331,0.087996,0.24154,-0.22174,-0.24821,0.077407,0.29184,0.19389,-0.20056,-0.21115,0.12506,0.18859,0.042992,-0.20585,-0.16085,0.25213,0.24154,0.029756,-0.16879,-0.3541 -0.04461,-0.045129,-0.045475,-0.044956,-0.044264,-0.041844,-0.042362,-0.041671,-0.042881,-0.043573,-0.041152,-0.039769,-0.041325,-0.041325,-0.040633,-0.036311,-0.038386,-0.038731,-0.039423,-0.038558,-0.035619,-0.036656,-0.037002,-0.03804,0.9797 0.20652,0.20708,-0.19279,-0.19472,-0.19444,0.20625,0.20735,-0.19196,-0.19361,-0.19251,0.20846,0.20818,0.21039,-0.1914,-0.19251,0.20846,0.20708,0.21178,-0.1903,-0.19389,0.20708,0.20929,-0.18836,-0.19002,-0.1914 -0.023379,-0.077387,-0.025229,-0.026708,-0.025598,-0.073318,-0.031517,-0.026338,-0.026708,-0.027448,-0.078497,-0.027448,-0.026338,-0.027448,-0.027078,-0.089225,-0.032997,-0.036326,-0.025229,-0.029298,-0.094404,-0.034846,-0.037436,-0.043725,0.97393 -0.20354,-0.26237,0.031767,0.090595,0.20825,-0.43885,-0.1153,-0.17413,0.20825,0.26708,-0.26237,-0.1153,-0.027061,0.14942,0.26708,-0.085888,-0.085888,0.090595,0.17884,0.23766,-0.056474,-0.29178,0.0023531,0.061181,0.3259 -0.28008,-0.2651,-0.2651,-0.2651,-0.24512,-0.18019,-0.18019,-0.18019,-0.18019,-0.16521,0.06952,0.35419,0.36918,0.049543,-0.055337,0.099486,0.13445,0.094492,0.084503,0.084503,0.18439,0.19438,0.18439,0.1744,0.18439 0.97946,-0.043437,-0.046737,-0.035518,-0.036178,-0.044757,-0.046077,-0.045087,-0.035518,-0.034858,-0.043437,-0.051026,-0.037827,-0.037827,-0.034528,-0.044427,-0.050696,-0.038487,-0.040467,-0.032878,-0.045747,-0.043437,-0.041787,-0.034528,-0.034198 -0.39596,0.066358,0.073527,0.085785,0.11284,-0.39874,0.070058,0.076996,0.13921,0.15309,-0.39735,0.078153,0.084397,0.099199,0.10706,-0.39804,0.086941,0.094111,0.10036,0.11146,-0.39874,0.084166,0.1369,0.10961,0.11863 0.13671,0.13321,0.13346,0.13382,-0.38027,0.13731,0.13611,0.13647,0.13671,-0.37991,0.095134,0.094893,0.09417,0.094893,-0.37979,0.091519,0.092242,0.092242,0.092242,-0.32954,0.097424,0.097062,0.096942,-0.32484,-0.32821 0.9729,-0.037508,-0.040059,-0.05792,-0.1115,-0.036232,-0.040059,-0.050265,-0.037508,-0.098745,-0.042611,-0.041335,-0.034956,-0.032405,-0.065575,-0.041335,-0.034956,-0.01582,-0.041335,-0.036232,0.0020412,-0.018371,-0.0094407,-0.020923,-0.029853 0.070089,0.068268,0.065405,0.05929,-0.37291,0.068528,0.068137,0.066576,0.064625,-0.37395,0.069829,0.090515,0.079847,0.064234,-0.37577,0.092337,0.090645,0.086352,0.087002,-0.37838,0.42371,0.091166,0.088043,0.084921,-0.37851 0.16572,0.15697,-0.068139,-0.068934,-0.075298,0.17646,0.16692,0.1705,-0.070525,-0.41694,0.17646,0.17726,0.062714,0.055952,-0.41893,0.17965,0.17805,0.0476,0.040441,-0.41337,0.059929,0.051179,0.041634,0.040043,-0.41535 -0.04649,-0.044218,-0.048762,-0.035129,-0.030584,-0.044218,-0.044218,-0.041946,-0.037401,-0.032857,-0.040809,-0.041946,-0.038537,-0.041946,-0.032857,-0.038537,-0.044218,-0.039673,-0.047626,-0.030584,-0.052171,-0.044218,-0.036265,-0.044218,0.97943 0.19631,0.21883,0.10626,0.21883,0.19631,0.30888,0.038722,0.12877,0.083748,0.083748,0.12877,-0.0063036,-0.0063036,0.10626,0.038722,0.016209,0.016209,0.061235,-0.073842,-0.073842,-0.41154,-0.32148,-0.344,-0.36651,-0.344 0.083753,0.10222,0.14585,0.12823,0.13662,0.066969,0.072843,0.14669,0.14166,0.15676,0.057738,0.064451,0.14166,0.14166,-0.023666,0.039275,0.060255,0.14166,0.15173,-0.016113,-0.40131,-0.38788,-0.37194,-0.39795,-0.38117 -0.012269,-0.042192,-0.045501,-0.039603,-0.033848,-0.040897,-0.042192,-0.045501,-0.043775,-0.03356,-0.047371,-0.050105,-0.04435,-0.036725,-0.03428,-0.045357,-0.049242,-0.046077,-0.03428,-0.034711,-0.04435,-0.046652,-0.044206,-0.042048,0.97909 -0.22482,-0.22828,0.17437,0.17818,0.18683,-0.22586,-0.22655,0.18959,0.17299,0.17299,-0.2269,-0.22759,0.17714,0.17645,0.17126,-0.22794,-0.22828,0.1972,0.17299,0.16676,-0.22759,-0.22932,-0.20718,0.17057,0.17299 -0.29862,-0.23044,0.17862,0.0081813,0.2468,-0.12817,-0.16226,0.04227,-0.025907,0.31498,-0.23044,-0.059996,-0.059996,0.076359,0.34907,-0.3327,-0.12817,0.0081813,-0.059996,0.28089,-0.23044,-0.094085,-0.025907,0.31498,0.2468 0.19287,0.18703,0.18703,0.19148,0.5791,0.19454,0.18786,0.18619,0.19787,0.17034,-0.15055,-0.14999,-0.15055,-0.15055,-0.1511,-0.15333,-0.15277,-0.15221,-0.15166,-0.15221,-0.15277,-0.15166,-0.1511,-0.15166,-0.15221 -0.10007,-0.099089,-0.099792,-0.099792,0.40559,-0.099862,-0.09937,-0.099581,-0.1,0.40292,-0.099932,-0.10063,-0.10049,-0.099792,0.40053,-0.10028,-0.10028,-0.10021,-0.10042,0.39667,-0.10049,-0.099862,-0.099932,-0.1,0.39421 0.96775,0.020731,0.035603,0.029907,0.035603,-0.053625,-0.051411,-0.046032,-0.052676,-0.046032,-0.054258,-0.052993,-0.05584,-0.055208,-0.053309,-0.05584,-0.056473,-0.057106,-0.054258,-0.055208,-0.057106,-0.058055,-0.059004,-0.058055,-0.057106 -0.18681,-0.1817,0.17529,0.18168,0.19659,-0.1817,-0.1834,0.18211,0.19233,0.20426,-0.18212,-0.18255,-0.20129,0.19616,0.21278,-0.18042,-0.19874,-0.20427,0.22939,0.24047,-0.20044,-0.20214,-0.20257,0.22598,0.25112 0.44609,0.33494,0.37199,0.40904,0.37199,-0.072619,-0.054094,-0.091145,-0.091145,-0.1282,-0.054094,-0.10967,-0.14672,-0.1282,-0.18377,-0.091145,-0.16525,0.038533,-0.1282,-0.091145,0.020007,-0.14672,-0.1282,-0.091145,-0.091145 0.060943,0.070865,0.12368,0.11201,0.10647,0.060943,0.06853,0.12135,0.1158,0.11172,0.080203,0.063861,0.12018,0.12368,0.1158,0.088082,0.089541,0.11435,0.12018,0.12106,-0.40129,-0.39808,-0.39517,-0.3975,-0.39721 0.01932,0.00644,0.01932,0.01932,-0.39284,0.05796,0.08372,0.08372,0.05152,-0.39284,0.07084,0.0644,0.05796,0.10304,-0.39284,0.08372,0.12236,0.12236,0.12236,-0.37996,0.20608,0.18032,0.21252,0.2254,-0.3542 0.36686,0.36301,-0.10782,-0.10623,-0.10804,0.37637,-0.11484,-0.1094,-0.11008,-0.10623,0.38566,-0.1128,-0.11167,-0.1128,-0.11189,0.38769,-0.11325,-0.1137,-0.11393,-0.1128,0.23823,-0.11053,-0.11325,-0.11416,-0.11438 0.43855,0.21601,0.2106,-0.2199,-0.22698,0.21976,0.21268,0.074588,-0.2224,-0.22282,0.056702,0.060862,0.067933,-0.22406,-0.22448,0.049215,0.062942,0.058366,-0.22198,-0.22282,0.2052,0.071261,0.22641,-0.22365,-0.22198 0.10314,0.13313,0.11064,0.073159,0.05442,0.076907,0.10689,0.076907,0.12938,0.16311,0.11064,0.15561,0.12563,0.14812,0.16311,-0.11424,0.061916,0.12188,0.13687,-0.043026,-0.44405,-0.44031,-0.32037,-0.34661,-0.34286 -0.039169,-0.041276,-0.03952,-0.043031,-0.043734,-0.039872,-0.039872,-0.040925,-0.04268,-0.043734,-0.041276,-0.039169,-0.041978,-0.039872,-0.044787,-0.03952,-0.040925,-0.041978,-0.044085,-0.040925,-0.036009,-0.03636,-0.038116,-0.040925,0.97974 0.15223,0.14804,0.44036,0.31168,0.30609,-0.054772,0.066913,0.17601,0.31028,0.2921,-0.049178,-0.054772,-0.072955,-0.17925,-0.17925,-0.11352,-0.10373,-0.15827,-0.16107,-0.15408,-0.11631,-0.20163,-0.21842,-0.18485,-0.20163 0.30841,0.24841,0.36841,0.24841,0.24841,0.21841,0.0084003,0.18841,0.098403,0.098403,-0.081603,-0.1416,0.098403,0.038401,-0.051602,-0.17161,-0.081603,-0.081603,-0.1116,-0.23161,-0.32161,-0.26161,-0.29161,-0.081603,-0.26161 -0.094318,-0.094755,-0.094318,-0.094755,-0.094463,-0.093881,-0.093735,-0.09359,-0.09359,-0.093735,-0.092716,-0.092716,-0.093153,-0.09359,-0.09359,-0.091843,-0.091697,-0.09126,-0.09228,-0.092134,0.44829,0.45455,0.45761,0.45411,0.051561 -0.15225,-0.14978,-0.15052,-0.14731,-0.14929,-0.15299,-0.15175,-0.14682,-0.14633,-0.14731,-0.15225,-0.15274,-0.15052,-0.14879,-0.14781,0.26773,0.2697,-0.15249,0.27069,0.27488,0.27019,0.2697,0.26502,0.27019,0.24085 -0.046789,-0.054273,-0.040457,-0.03873,-0.035276,-0.041608,-0.045062,-0.038154,-0.037579,-0.037003,-0.04276,-0.039306,-0.039881,-0.035852,-0.035276,-0.041033,-0.040457,-0.041033,-0.041033,-0.038154,-0.040457,-0.041033,-0.044487,-0.043911,0.9796 -0.29526,-0.19262,0.11117,0.10296,0.11117,-0.29526,-0.20494,0.16865,0.15223,0.17275,-0.31989,0.012644,0.20149,0.18507,0.20149,-0.31168,-0.04483,0.2097,0.22202,0.23023,-0.31989,-0.18852,-0.048936,-0.020198,0.16044 -0.12097,-0.09372,-0.11346,-0.10124,0.45232,-0.11064,-0.09372,-0.11534,-0.10124,0.43165,-0.10406,-0.11534,-0.11722,-0.076803,0.42225,-0.1097,-0.11252,-0.09372,-0.064585,0.33014,-0.11158,-0.096539,-0.062705,-0.066465,0.34518 -0.099488,-0.095504,-0.09816,-0.1141,0.4038,-0.10347,-0.10214,-0.10746,-0.088865,0.39848,-0.094176,-0.091521,-0.10214,-0.10214,0.40247,-0.099488,-0.10347,-0.10214,-0.084881,0.39583,-0.094176,-0.10347,-0.10613,-0.10613,0.39848 -0.046752,-0.044878,-0.043629,-0.044531,-0.046336,-0.046891,-0.044323,-0.041547,-0.039188,-0.042172,-0.039466,-0.039119,-0.038078,-0.03787,-0.043976,-0.03551,-0.03891,-0.037523,-0.039188,-0.038841,-0.035649,-0.037523,-0.036135,-0.041617,0.97965 0.049537,0.080627,0.075445,0.13763,-0.38572,0.044355,0.065082,0.10135,0.10654,-0.38054,0.065082,0.080627,0.10135,0.1169,-0.35463,0.065082,0.085809,0.15835,0.12208,-0.41681,0.049537,0.10135,0.26717,0.075445,-0.41163 0.14962,0.27313,0.14962,0.14962,0.14962,0.13198,0.13198,0.096689,0.096689,0.18491,0.096689,0.026113,0.13198,0.13198,0.13198,-0.026819,-0.026819,-0.026819,-0.18561,-0.026819,-0.32677,-0.3797,-0.18561,-0.3797,-0.46792 0.18385,0.17764,-0.19943,-0.2134,-0.21495,0.21489,0.1792,-0.17615,-0.2134,-0.25219,0.20402,0.17144,0.15747,-0.2165,-0.25219,0.17454,0.17144,0.15747,-0.21805,-0.25995,0.18385,0.1792,0.15592,0.15747,-0.25219 0.12367,0.10608,0.10828,-0.35003,-0.34783,0.11048,0.11707,0.10828,0.11487,-0.35113,0.10828,0.11268,0.10828,0.10828,-0.35003,0.11487,0.11268,0.11268,0.11268,-0.35553,0.11268,0.10828,0.11487,0.11927,-0.37971 -0.10064,-0.099656,-0.10022,-0.1005,0.4024,-0.099796,-0.099236,-0.10064,-0.10106,0.40114,-0.099236,-0.099376,-0.099376,-0.10092,0.39946,-0.099516,-0.099096,-0.099516,-0.10106,0.39904,-0.099376,-0.099376,-0.1005,-0.10092,0.39792 0.16311,0.17799,0.16311,0.17799,0.20776,0.25241,0.25241,0.14823,0.16311,0.14823,-0.045243,-0.015478,0.044052,0.02917,0.17799,-0.1643,-0.13454,-0.08989,0.044052,-0.11965,-0.43218,-0.31313,-0.28336,-0.37266,-0.17918 0.37491,0.43206,0.23203,0.28919,0.34634,0.06058,0.06058,0.20346,-0.082298,0.06058,-0.082298,-0.025147,0.0034291,-0.053722,-0.11087,-0.16802,-0.1966,-0.082298,-0.16802,-0.13945,-0.11087,-0.25375,-0.082298,-0.25375,-0.25375 0.12122,0.068968,0.12775,0.12122,0.10815,0.10815,0.12122,0.10162,0.062437,0.10815,0.11469,0.10162,0.075499,0.075499,0.042844,0.14081,0.10815,0.088561,0.095092,0.095092,-0.42086,-0.41433,-0.40127,-0.36861,-0.38167 0.03425,0.1234,0.048762,0.12444,0.12962,0.13376,0.082971,0.059129,0.14206,0.12755,0.1462,0.065348,0.081934,0.13687,0.12547,0.022847,0.069495,0.079861,0.11925,0.11718,-0.39906,-0.38869,-0.37936,-0.38143,-0.42186 -0.072165,-0.037607,-0.036627,-0.036627,-0.035646,-0.052312,-0.036627,-0.036627,-0.035156,-0.036136,-0.050842,-0.036627,-0.037607,-0.037117,-0.038587,-0.047411,-0.038587,-0.038587,-0.037607,-0.039568,-0.047165,-0.038097,-0.038097,-0.037607,0.97903 0.20714,0.20569,-0.1917,-0.19195,-0.19231,0.20326,0.20787,0.21139,-0.19255,-0.19231,0.20884,0.21017,0.21587,-0.19243,-0.19255,0.20642,0.20678,-0.19146,-0.19243,-0.1928,0.20605,0.20836,-0.1911,-0.19146,-0.1928 -0.042289,-0.041165,-0.041165,-0.046786,-0.041165,-0.040603,-0.043976,-0.044538,-0.042851,-0.041165,-0.042851,-0.040603,-0.041165,-0.042851,-0.042289,-0.042851,-0.042851,-0.039479,-0.0451,-0.041727,-0.027676,-0.026552,-0.034421,-0.043414,0.97954 -0.10579,-0.12196,-0.10579,-0.057261,0.22581,-0.11388,-0.14623,-0.081524,-0.065349,0.32286,-0.10579,-0.11388,-0.089612,-0.065349,0.46844,-0.12196,-0.13814,-0.12196,-0.032998,0.44418,-0.11388,-0.13814,-0.057261,-0.032998,0.46844 -0.13391,-0.15032,-0.068267,0.046605,0.50609,-0.18314,-0.10109,-0.10109,-0.035446,0.44045,-0.1175,-0.13391,-0.16673,-0.019036,0.40763,-0.10109,-0.10109,-0.1175,0.046605,0.24353,-0.13391,-0.1175,-0.084677,-0.10109,0.27635 0.9384,0.16093,0.0054422,0.0054422,-0.091741,0.0054422,-0.052867,0.0054422,-0.11118,-0.072304,-0.013994,-0.033431,-0.11118,0.0054422,-0.033431,-0.13061,-0.091741,-0.033431,-0.033431,-0.052867,-0.052867,-0.091741,-0.072304,0.0054422,-0.052867 0.17487,0.060823,0.022809,-0.091234,-0.28131,0.28891,0.060823,0.17487,0.060823,-0.20528,0.25089,-0.05322,0.098837,-0.31932,-0.28131,0.25089,0.25089,-0.05322,-0.091234,-0.28131,0.17487,0.13685,0.060823,0.022809,-0.43336 -0.41855,-0.38265,-0.38265,-0.30286,-0.11537,-0.21909,-0.1393,-0.15526,-0.011649,0.076115,0.068136,0.044201,0.072125,0.10005,0.12399,0.16787,0.16787,0.20377,0.12797,0.12399,0.080104,0.12,0.23169,0.19978,0.21973 0.20679,0.20224,0.20438,-0.21661,-0.20885,0.20143,0.19179,0.18992,-0.2142,-0.20162,0.20036,0.18938,-0.20885,-0.20778,-0.20456,0.18081,0.18349,0.18322,-0.20804,-0.20376,0.17626,0.18617,-0.20885,-0.20885,-0.20429 0.29524,0.2843,-0.13297,-0.13595,-0.13894,0.29375,0.28828,-0.13744,-0.13844,-0.13794,0.29375,0.28181,-0.13595,-0.14043,-0.13894,0.29474,-0.1275,-0.13595,-0.13993,-0.14391,0.29971,-0.12352,-0.13894,-0.14391,-0.14093 0.19183,0.19087,0.19159,-0.20469,-0.20881,0.19111,0.19304,-0.20663,-0.20881,-0.20929,0.19425,0.19256,-0.20881,-0.20784,-0.20832,0.19038,0.19353,0.19329,-0.20784,-0.20784,0.19304,0.19183,0.19062,-0.21002,-0.20905 -0.33959,0.080956,0.061242,0.10724,0.12038,-0.42502,0.080956,0.0481,0.12038,0.14667,-0.43159,0.0481,0.087527,0.13352,0.1401,-0.35273,0.074384,0.10067,0.13352,0.11381,-0.42502,0.061242,0.10067,0.087527,0.12695 -0.26536,-0.12772,0.2026,0.12002,0.12002,-0.1002,-0.045144,0.12002,0.14754,0.25765,-0.40299,-0.18278,-0.045144,0.2026,0.36776,-0.18278,-0.29288,-0.045144,0.037436,0.2026,-0.23783,-0.15525,-0.12772,0.23012,0.2026 -0.051843,-0.043166,-0.042546,-0.045645,-0.045025,-0.045645,-0.038207,-0.040066,-0.045645,-0.045025,-0.040686,-0.040066,-0.037587,-0.035108,-0.035108,-0.042546,-0.036967,-0.038207,-0.035108,-0.036967,-0.040066,-0.040686,-0.033248,-0.044405,0.97957 0.10897,0.079533,0.117,0.10897,0.10094,0.1277,0.10897,0.12235,0.1277,0.12503,0.11432,0.11165,0.10629,0.117,0.12503,-0.19075,0.039392,0.10629,0.12235,0.12503,-0.3861,-0.3754,-0.3754,-0.3861,-0.38075 0.10332,0.10096,0.098008,-0.34979,-0.35746,0.10568,0.10568,0.10332,0.10804,-0.35569,0.10686,0.10332,0.1045,0.1045,-0.35451,0.12043,0.10922,0.10804,0.11158,-0.35687,0.12456,0.13636,0.15111,0.12633,-0.35746 -0.05621,-0.14591,-0.2954,-0.2057,-0.2655,-0.086109,-0.086109,-0.11601,-0.14591,-0.11601,-0.086109,-0.05621,-0.2356,-0.05621,-0.05621,0.12318,0.12318,0.033487,0.0035879,0.063386,0.42217,0.21288,0.45207,0.21288,0.36237 0.24759,0.24866,0.18097,0.16951,0.25045,0.24437,0.24437,0.24651,0.17166,0.17381,0.28304,-0.17466,-0.17573,-0.17681,-0.17287,-0.17287,-0.1743,-0.17609,-0.17788,-0.17967,-0.17179,-0.17609,-0.17681,-0.17681,-0.1786 0.30191,-0.1163,-0.016729,-0.036644,-0.096389,0.282,-0.096389,-0.13622,-0.17605,-0.15613,0.4214,-0.096389,-0.096389,-0.13622,-0.056559,0.50106,-0.1163,-0.15613,0.0031864,0.0031864,0.40149,-0.036644,-0.13622,-0.096389,-0.15613 -0.13652,-0.14099,-0.1231,-0.096259,0.1587,-0.13652,-0.14099,-0.10968,-0.060475,0.32868,-0.15888,-0.13204,-0.11862,0.033458,0.40472,-0.14099,-0.12757,-0.10073,0.002147,0.4405,-0.15888,-0.12757,-0.042583,0.27053,0.41366 0.97921,-0.049861,-0.055039,-0.032387,-0.040153,-0.042742,-0.046625,-0.046625,-0.042742,-0.034975,-0.0408,-0.044036,-0.044684,-0.033681,-0.029798,-0.045978,-0.040153,-0.038212,-0.028503,-0.025914,-0.047273,-0.049214,-0.038859,-0.042742,-0.038212 -0.035478,-0.03682,-0.041516,-0.038161,-0.035478,-0.041516,-0.042187,-0.03749,-0.038161,-0.040845,-0.046883,-0.045541,-0.040174,-0.034807,-0.046212,-0.04487,-0.04487,-0.041516,-0.040174,-0.035478,-0.046883,-0.047554,-0.038832,-0.038161,0.97961 0.70366,-0.022115,-0.11604,-0.11604,-0.11817,0.28741,-0.030653,-0.11604,-0.12244,-0.10964,0.2191,-0.052,-0.11177,-0.11604,-0.10323,0.36425,-0.0050377,-0.10323,-0.10964,-0.10323,0.22764,-0.030653,-0.10964,-0.10323,-0.10323 -0.038253,-0.040912,-0.042242,-0.044458,-0.037367,-0.037367,-0.040912,-0.043571,-0.041355,-0.040469,-0.038697,-0.041799,-0.041799,-0.031606,-0.038253,-0.040026,-0.040026,-0.043128,-0.045787,-0.038697,-0.041799,-0.040026,-0.044458,-0.046673,0.97968 0.0044768,-0.21936,-0.13542,-0.24734,-0.21936,-0.13542,-0.1634,-0.079462,-0.21936,-0.19138,-0.023503,-0.079462,-0.19138,-0.051483,-0.051483,0.1164,0.060436,-0.023503,0.088416,0.088416,0.28427,0.36821,0.42417,0.42417,0.17236 -0.043612,-0.042149,-0.038054,-0.036883,-0.038346,-0.040394,-0.040394,-0.038931,-0.037469,-0.037761,-0.042149,-0.046245,-0.041564,-0.038931,-0.039516,-0.045367,-0.046245,-0.039809,-0.040101,-0.036006,-0.046245,-0.043027,-0.040394,-0.040101,0.97969 -0.25681,-0.14548,-0.19186,-0.18259,-0.18259,-0.25681,-0.12692,-0.10836,-0.15475,-0.14548,-0.21042,-0.15475,-0.071253,-0.20114,0.25347,0.15141,0.15141,0.16997,0.1978,0.29058,0.20708,0.1978,0.20708,0.20708,0.35553 -0.042854,-0.04022,-0.041537,-0.038903,-0.039342,-0.042854,-0.04022,-0.038903,-0.038903,-0.041098,-0.041537,-0.04022,-0.04022,-0.042415,-0.044611,-0.038903,-0.04022,-0.04022,-0.040659,-0.038903,-0.04022,-0.042854,-0.041976,-0.041976,0.97977 -0.22177,-0.20159,0.19423,0.27889,0.32318,-0.21785,-0.13263,0.18694,0.21554,0.20881,-0.21673,-0.21056,-0.13375,0.24693,0.25198,-0.22121,-0.20719,-0.12814,0.10172,0.1006,-0.20832,-0.17468,-0.12926,0.19031,0.10453 -0.099164,-0.099164,-0.099164,-0.081624,-0.081624,-0.064083,-0.093317,-0.10501,-0.08747,-0.081624,-0.058236,-0.064083,-0.08747,-0.06993,-0.0056131,-0.06993,-0.075777,-0.064083,-0.029001,0.099632,0.06455,0.052856,0.076244,0.22242,0.90067 -0.13474,-0.10764,-0.078853,-0.090707,0.40551,-0.12966,-0.085627,-0.078853,-0.092401,0.39535,-0.12458,-0.078853,-0.072078,-0.083933,0.39704,-0.13474,-0.10934,-0.10256,-0.048368,0.39027,-0.12966,-0.12627,-0.094095,-0.085627,0.40043 -0.20783,-0.31226,-0.26005,-0.20783,-0.23394,-0.33837,-0.077283,-0.1295,-0.10339,-0.077283,-0.10339,-0.025065,-0.025065,0.079371,0.10548,0.1577,-0.025065,0.13159,0.13159,0.20992,0.28824,0.39268,0.28824,0.053262,0.28824 0.11728,0.12,0.11909,0.12241,0.30527,0.11909,0.11909,0.1197,0.11759,0.30376,0.11728,0.11789,0.11909,0.12332,0.30527,-0.23305,-0.23365,-0.23425,-0.23395,-0.23244,-0.23516,-0.23516,-0.23606,-0.23637,-0.23606 -0.23096,-0.22208,0.17576,0.17082,0.18563,-0.22702,-0.21714,0.18168,0.17576,0.17576,-0.22307,-0.22702,0.17675,0.17181,0.18563,-0.22702,-0.23294,0.17675,0.17576,0.15404,-0.22307,-0.21912,-0.23096,0.18465,0.18958 0.31869,-0.092699,-0.096752,-0.095176,-0.095401,0.65127,-0.095401,-0.096527,-0.096752,-0.095401,0.30878,-0.096527,-0.095626,-0.095626,-0.094726,0.31441,-0.094501,-0.094726,-0.095176,-0.095626,0.31351,-0.095176,-0.095176,-0.094501,-0.095176 -0.044607,-0.045251,-0.043318,-0.046539,-0.045895,-0.040097,-0.039453,-0.040741,-0.042674,-0.04203,-0.038164,-0.038809,-0.038164,-0.039453,-0.039453,-0.038809,-0.038809,-0.040097,-0.038809,-0.040097,-0.039453,-0.040097,-0.040741,-0.038164,0.97972 -0.3838,-0.16573,0.079595,0.21589,0.21589,-0.3838,-0.083956,0.025078,0.18863,0.079595,-0.35654,-0.11122,0.025078,0.21589,0.052336,-0.22025,-0.13847,0.079595,0.21589,0.13411,-0.30203,0.052336,0.18863,0.18863,0.18863 0.18111,0.18584,0.18466,0.18584,-0.22953,0.19057,0.18821,0.18584,-0.2532,-0.26267,0.18229,0.18466,-0.10172,-0.2532,-0.26385,0.18821,0.19176,-0.095808,-0.23427,-0.24847,0.19412,0.19531,-0.11474,-0.168,-0.21296 -0.3206,-0.20966,-0.20966,-0.3206,-0.4038,-0.070997,-0.015531,-0.12646,-0.1542,-0.2374,0.039936,0.1786,0.067669,-0.015531,0.039936,0.37274,0.23407,0.15087,0.12314,0.039936,0.28954,0.15087,0.12314,0.20634,0.067669 0.29214,0.29214,-0.12341,-0.14773,-0.11732,0.29011,0.27389,-0.11935,-0.14165,-0.14773,0.29822,0.28605,-0.13354,-0.13962,-0.13354,0.29416,-0.13557,-0.13354,-0.13962,-0.14165,0.30227,-0.12341,-0.13962,-0.168,-0.14368 0.97953,-0.042207,-0.044363,-0.036276,-0.035737,-0.041668,-0.049755,-0.037893,-0.036276,-0.035737,-0.045981,-0.047599,-0.039511,-0.037354,-0.037893,-0.047059,-0.045981,-0.037893,-0.036815,-0.037893,-0.044903,-0.049755,-0.035737,-0.036276,-0.038972 -0.1209,-0.12188,-0.12109,-0.12168,-0.12286,-0.1209,-0.12129,-0.12149,-0.12208,-0.12149,-0.11913,-0.11991,-0.12031,-0.12011,-0.11952,0.1086,0.10782,0.10703,-0.11913,-0.1205,0.53476,0.53339,0.22326,0.22031,0.21913 0.43425,0.33923,0.054162,-0.040859,-0.11213,0.41049,0.26796,0.018529,-0.11213,-0.14776,0.30359,0.077918,-0.10025,-0.19527,-0.124,0.16106,-0.10025,-0.14776,-0.13588,-0.20715,0.042285,-0.19527,-0.13588,-0.20715,-0.14776 0.46464,0.30103,0.3992,0.33375,0.3992,-0.026177,-0.091619,-0.058898,-0.026177,-0.18978,-0.12434,-0.026177,-0.15706,-0.026177,-0.026177,-0.12434,-0.058898,-0.058898,-0.12434,-0.15706,-0.058898,-0.2225,-0.058898,-0.2225,-0.058898 0.26439,0.26668,0.26211,0.26553,0.26439,0.27181,-0.13574,0.26896,0.26668,0.26896,-0.15628,-0.14258,-0.15172,-0.15001,-0.15001,-0.15001,-0.15115,-0.15115,-0.15343,-0.15343,-0.15172,-0.15001,-0.15001,-0.15001,-0.15229 0.45956,-0.033019,-0.07755,-0.097442,-0.11223,0.45627,-0.031924,-0.076455,-0.1062,-0.11898,0.44715,-0.036304,-0.08339,-0.10474,-0.12226,0.44824,-0.037764,-0.08485,-0.11369,-0.12427,-0.035574,-0.062402,-0.10109,-0.11624,-0.13486 0.045649,0.28016,-0.14418,-0.14333,-0.14162,0.29762,0.27776,-0.14709,-0.14367,-0.1411,0.29351,0.28016,-0.14795,-0.14607,-0.14298,0.28786,0.27571,-0.14778,-0.14384,-0.15411,0.29779,-0.14589,-0.14607,-0.16062,-0.1399 -0.38589,-0.27138,-0.38589,-0.47177,-0.27138,0.014886,-0.042368,-0.042368,-0.042368,-0.070995,0.043513,0.15802,0.10077,0.07214,0.21528,0.07214,0.21528,0.043513,0.07214,0.12939,0.15802,0.15802,0.27253,0.12939,0.12939 -0.042102,-0.017836,-0.036036,-0.029969,-0.041091,-0.048169,-0.041091,-0.04008,-0.035025,-0.036036,-0.043113,-0.052213,-0.042102,-0.043113,-0.034013,-0.050191,-0.050191,-0.041091,-0.043113,-0.031991,-0.037047,-0.045136,-0.04918,-0.04918,0.97911 0.32519,0.2534,0.18357,-0.23619,-0.23658,0.32893,-0.057586,-0.054833,-0.23501,-0.23501,0.33267,-0.054242,-0.055619,-0.055619,-0.23363,0.32342,-0.056209,-0.056209,-0.055619,-0.054242,0.32519,-0.054046,-0.055619,-0.054833,-0.23127 -0.099836,-0.10054,-0.099131,-0.10336,0.39343,-0.096313,-0.099131,-0.099131,-0.10547,0.39765,-0.097722,-0.098427,-0.097017,-0.10477,0.41175,-0.099131,-0.099836,-0.097722,-0.10054,0.40611,-0.096313,-0.099836,-0.099836,-0.10547,0.39061 0.30047,0.24953,-0.13316,-0.13686,-0.13896,0.29789,0.29047,-0.13445,-0.1367,-0.13993,0.29918,0.29112,-0.13283,-0.13848,-0.14009,0.29966,-0.13171,-0.1359,-0.13864,-0.14089,0.30143,-0.133,-0.13799,-0.13944,-0.14073 -0.04071,-0.043362,-0.04071,-0.038941,-0.04071,-0.042478,-0.039826,-0.038941,-0.042478,-0.04071,-0.042478,-0.037173,-0.04071,-0.041594,-0.045131,-0.039826,-0.037173,-0.045131,-0.041594,-0.039826,-0.035404,-0.03452,-0.041594,-0.048668,0.97969 0.96594,-0.051295,-0.063108,-0.060483,-0.051951,-0.051295,-0.049326,-0.055233,-0.054576,-0.045389,0.068805,-0.051295,-0.05392,-0.045389,-0.049326,0.074055,-0.042763,-0.049982,-0.046045,-0.038826,-0.058514,-0.057202,-0.04867,-0.044732,-0.039482 -0.019655,-0.19833,-0.064324,-0.22067,-0.176,-0.13133,-0.019655,-0.019655,-0.13133,-0.243,-0.064324,-0.176,-0.064324,-0.019655,-0.10899,-0.064324,0.025015,-0.019655,-0.086659,-0.064324,0.44938,0.36004,0.29303,0.42704,0.3377 -0.037696,-0.043485,-0.048447,-0.046793,-0.045966,-0.035215,-0.037696,-0.039764,-0.04638,-0.049688,-0.036455,-0.03935,-0.036455,-0.041418,-0.04638,-0.036455,-0.036455,-0.036455,-0.043485,-0.045966,-0.036455,-0.036455,-0.03811,-0.038523,0.97955 0.09585,0.07013,0.074417,0.091564,0.078704,0.10014,0.12586,0.08299,0.11728,0.074417,0.09585,0.10442,0.10014,0.10014,0.10442,0.12586,0.11728,0.12157,0.10014,0.113,-0.39712,-0.39712,-0.39283,-0.39712,-0.40998 -0.16172,-0.15517,-0.16359,-0.16546,-0.16265,-0.15798,-0.1533,-0.15424,-0.15704,-0.15798,-0.14115,-0.1505,-0.15891,-0.15704,-0.15517,0.33477,0.13281,0.33103,0.31888,0.32075,0.15992,0.1487,0.14496,0.15151,0.30859 -0.037351,-0.034175,-0.027823,-0.040527,-0.034175,-0.039469,-0.035763,-0.026764,-0.02994,-0.035763,-0.053232,-0.052173,-0.048997,-0.044762,-0.048997,-0.046879,-0.052173,-0.053232,-0.029411,-0.048997,-0.053232,-0.058525,-0.024647,-0.021471,0.97848 0.23295,0.23295,-0.0031479,-0.23924,-0.35729,0.23295,-0.1212,-0.0031479,-0.042497,-0.23924,0.23295,0.23295,-0.16055,0.036201,-0.39664,0.23295,0.075551,0.036201,0.036201,-0.19989,0.351,0.036201,0.036201,-0.0031479,-0.23924 0.12869,0.17744,0.14392,0.19572,0.18353,0.22009,0.21704,0.13174,0.17439,0.15916,0.214,0.16525,0.16525,0.10127,-0.23691,-0.23386,-0.12723,-0.066295,-0.099808,-0.30698,-0.25214,-0.25214,-0.23386,-0.26128,-0.30698 -0.041286,-0.042222,-0.042845,-0.04191,-0.043157,-0.042222,-0.042845,-0.042222,-0.04191,-0.043157,-0.041598,-0.042222,-0.042222,-0.042222,-0.043157,-0.040975,-0.043469,-0.041598,-0.041598,-0.042222,-0.032869,-0.028817,-0.037546,-0.035363,0.97965 0.96886,-0.026639,-0.023704,-0.025572,-0.11069,-0.029307,-0.027706,-0.023437,-0.024505,-0.10348,-0.027706,-0.030375,-0.026106,-0.022904,-0.10615,-0.028774,-0.030375,-0.026639,-0.025572,-0.11229,-0.02824,-0.028774,-0.027706,-0.026106,-0.026106 -0.12023,-0.091919,-0.11152,-0.065781,0.38728,-0.12677,-0.10717,-0.10934,-0.091919,0.39163,-0.12677,-0.083206,-0.098453,-0.072315,0.39381,-0.12023,-0.089741,-0.091919,-0.07885,0.40253,-0.1137,-0.07885,-0.098453,-0.11588,0.41777 0.1418,0.13585,0.13062,-0.29089,-0.2922,0.14108,0.136,0.1254,-0.29075,-0.29075,0.14006,0.13556,0.12612,-0.29104,-0.29104,0.14122,0.13469,0.12438,0.13266,-0.29089,0.19275,0.13411,0.12496,0.13062,-0.29031 -0.11659,-0.11159,-0.10785,-0.0991,0.48436,-0.11159,-0.11034,-0.10285,-0.071614,0.3994,-0.1066,-0.10785,-0.1041,-0.062868,0.34942,-0.10535,-0.11159,-0.1041,-0.060369,0.36317,-0.10909,-0.1041,-0.1016,-0.074113,0.3869 0.96898,-0.069657,-0.070041,-0.06697,-0.065435,-0.0021034,-0.05085,-0.063132,-0.061597,-0.06697,-0.0036387,-0.002871,-0.002871,-0.058526,-0.068506,0.00019959,0.0017349,-0.005174,-0.063516,-0.0639,-0.002871,0.0025026,-0.062748,-0.061597,-0.060445 -0.043579,-0.04217,-0.044284,-0.035123,-0.040056,-0.042875,-0.04217,-0.042875,-0.037237,-0.038646,-0.049922,-0.037237,-0.040761,-0.040056,-0.037237,-0.044284,-0.034418,-0.043579,-0.041465,-0.040056,-0.039351,-0.037942,-0.041465,-0.042875,0.97966 0.23893,0.23893,0.16865,-0.042164,-0.21785,0.20379,0.20379,0.16865,-0.28812,-0.39353,0.13352,0.028109,0.063246,-0.11244,-0.39353,0.27406,0.028109,-0.0773,-0.11244,-0.0773,0.3092,0.028109,-0.0773,-0.042164,-0.25298 -0.17327,-0.17232,-0.17423,-0.17088,-0.17232,-0.16897,-0.17375,-0.17279,-0.17279,-0.16993,-0.16993,-0.1747,0.17001,-0.16372,-0.17518,0.18003,0.19006,0.18337,0.17001,0.37292,0.17955,0.19579,0.20056,0.18433,0.37817 0.043912,-0.14701,-0.11519,-0.22656,-0.24247,0.13937,0.091642,0.043912,0.028002,-0.2902,0.29847,0.15528,0.075732,-0.019728,-0.35384,0.29847,0.20301,0.091642,-0.019728,-0.24247,0.39393,0.21892,-0.019728,-0.1311,-0.27429 -0.14458,-0.16475,-0.17651,-0.11098,0.27888,-0.2202,-0.17987,-0.18996,0.25368,0.28225,-0.20004,-0.15635,-0.18323,0.22679,0.3377,-0.20508,-0.13618,-0.035356,0.1999,0.26376,-0.15635,-0.11938,0.17974,0.16293,0.19318 0.4475,0.15339,0.42648,0.42871,0.47362,-0.095013,-0.095013,-0.095013,-0.096287,-0.09565,-0.09565,-0.096287,-0.096764,-0.096287,-0.096924,-0.096287,-0.096764,-0.097083,-0.096924,-0.098197,-0.095809,-0.096287,-0.096446,-0.097242,-0.09979 -0.098827,-0.098827,-0.10026,-0.10062,0.40637,-0.098467,-0.098827,-0.10026,-0.099904,0.4017,-0.098827,-0.098827,-0.099186,-0.10278,0.40134,-0.098827,-0.10098,-0.10062,-0.10314,0.39667,-0.10098,-0.099904,-0.10134,-0.098467,0.3938 0.3127,0.3127,0.3127,0.3127,0.2862,0.1007,0.0212,0.1272,0.0477,0.1272,-0.1908,-0.1378,0.1007,-0.0318,0.1272,-0.1113,-0.1908,-0.1908,-0.0583,-0.0583,-0.1908,-0.2968,-0.2968,-0.2173,-0.2173 0.092722,0.096869,0.084428,0.071988,0.076135,0.092722,0.096869,0.10516,0.092722,0.092722,0.096869,0.10931,0.088575,0.10102,0.10931,0.11346,0.10516,0.12175,0.12175,0.1259,-0.40904,-0.40904,-0.3883,-0.38416,-0.40489 0.21166,0.42875,0.42875,0.2388,0.45589,0.075982,0.075982,-0.0054273,0.048845,-0.032564,-0.19538,-0.086836,-0.14111,-0.19538,-0.0597,-0.14111,-0.0597,-0.0054273,-0.16824,-0.22252,-0.19538,-0.086836,-0.086836,-0.19538,-0.086836 -0.43967,0.079721,0.10388,0.12804,0.12804,-0.40344,0.031405,0.10388,0.10388,0.15219,-0.39136,-0.041068,0.055563,0.079721,0.15219,-0.3672,0.10388,0.10388,0.10388,0.10388,-0.35512,0.079721,0.12804,0.10388,0.15219 -0.10126,-0.097868,-0.097868,-0.10156,0.3977,-0.10095,-0.0991,-0.099408,-0.10403,0.39523,-0.10095,-0.10126,-0.10033,-0.10095,0.40047,-0.10218,-0.0991,-0.09756,-0.10002,0.40601,-0.10002,-0.10064,-0.096328,-0.098484,0.40047 0.97091,-0.048443,-0.044699,-0.05069,-0.05069,-0.040954,-0.047694,-0.047694,-0.052188,-0.055184,-0.038707,-0.053686,-0.052937,-0.052937,-0.053686,-0.019983,-0.047694,-0.055184,-0.045448,-0.025225,0.081878,-0.026723,-0.057431,-0.053686,-0.031217 -0.16144,-0.283,-0.38025,-0.40456,-0.33162,0.033065,-0.25869,-0.18575,-0.088498,-0.064185,-0.01556,0.17894,0.08169,0.15463,0.15463,0.17894,0.106,0.25188,0.15463,0.15463,0.20325,0.08169,0.08169,0.15463,0.20325 0.45513,-0.067514,-0.056201,-0.11503,-0.11955,0.45513,-0.049414,-0.069776,-0.099189,-0.11729,0.45287,-0.040364,-0.076564,-0.10824,-0.12634,0.45061,-0.058464,-0.072039,-0.10598,-0.11503,-0.017738,-0.053939,-0.10145,-0.12181,-0.12181 0.12296,0.11841,0.020569,-0.30935,-0.39582,0.10703,0.13434,0.14799,-0.11823,-0.38444,0.10021,0.10021,0.12751,0.13206,-0.34348,0.088829,0.11841,0.14571,0.14116,-0.32073,0.10476,0.13661,0.14116,0.17757,-0.29343 -0.041281,-0.040544,-0.039807,-0.04036,-0.042295,-0.041374,-0.039899,-0.039531,-0.04036,-0.041189,-0.04165,-0.039899,-0.040544,-0.040176,-0.040913,-0.042203,-0.040452,-0.040544,-0.040821,-0.040821,-0.042387,-0.040544,-0.040729,-0.041466,0.97979 -0.045871,-0.04447,-0.04447,-0.048675,-0.045871,-0.038862,-0.039563,-0.039563,-0.040965,-0.043769,-0.035357,-0.038862,-0.041666,-0.038862,-0.042367,-0.036058,-0.041666,-0.041666,-0.036759,-0.042367,-0.033955,-0.036759,-0.040965,-0.040264,0.97965 0.13891,0.13986,0.13796,-0.28936,-0.29507,0.1351,0.1351,0.13796,-0.27984,-0.29888,0.13796,0.13796,0.13891,-0.26937,-0.29507,0.13796,0.1351,0.1351,0.13701,-0.31125,0.13891,0.1351,0.13701,0.1351,-0.29221 -0.24055,-0.24432,-0.23302,0.21886,0.21886,-0.26691,-0.23679,0.030578,0.25276,0.22263,-0.21796,-0.19537,0.25276,0.25276,0.21133,-0.19913,-0.17277,0.10213,0.16614,0.1925,-0.16524,-0.19537,0.064469,0.060703,0.12095 -0.22981,-0.33241,-0.12722,-0.22981,-0.12722,-0.26401,-0.09302,-0.33241,-0.09302,-0.024623,-0.024623,-0.058821,-0.058821,-0.058821,-0.09302,0.18057,0.14637,0.38576,0.18057,0.14637,0.21477,0.24896,0.24896,0.077973,0.31736 -0.041923,-0.041923,-0.040634,-0.04178,-0.04178,-0.04049,-0.040061,-0.040634,-0.041636,-0.042066,-0.04049,-0.039774,-0.04049,-0.040777,-0.04178,-0.041207,-0.039917,-0.040061,-0.040061,-0.041207,-0.040777,-0.040061,-0.040204,-0.040061,0.97979 0.034136,0.10729,0.2292,0.14386,0.11948,0.13167,0.095094,0.14386,0.11948,0.15605,0.14386,-0.01463,0.058519,0.13167,0.058519,0.046328,0.082902,0.082902,0.058519,-0.01463,-0.33161,-0.4901,-0.38037,-0.33161,-0.38037 0.35948,-0.075571,-0.13475,-0.13475,-0.13293,0.35787,-0.13253,-0.13132,-0.13374,-0.13576,0.35544,0.33969,-0.12808,-0.13091,-0.13212,0.35322,-0.065876,-0.12364,-0.066078,-0.13475,0.351,-0.065472,-0.067088,-0.064462,-0.12687 0.2817,0.16497,-0.068479,-0.1463,-0.1852,0.2817,0.2817,-0.1852,-0.1852,-0.34084,0.16497,0.009338,0.087155,0.048246,-0.1463,0.087155,0.16497,0.048246,-0.1852,-0.34084,0.43733,0.009338,-0.02957,-0.02957,-0.22411 0.26661,0.27975,-0.13341,-0.13341,-0.12946,0.26234,0.27548,-0.13209,-0.13078,-0.12848,0.26793,0.27318,-0.13176,-0.13209,-0.12815,0.24297,0.27056,-0.20106,-0.12914,-0.12946,0.24034,-0.205,-0.205,-0.20073,-0.12914 0.70407,0.0052357,-0.096816,-0.12566,-0.14784,0.33801,-0.023605,-0.099034,-0.12344,-0.14562,0.28477,0.051824,-0.096816,-0.11678,-0.15228,0.27589,0.034076,-0.09016,-0.13453,-0.14119,0.076228,0.040732,-0.072412,-0.11456,-0.13009 -0.15094,-0.14872,-0.15005,-0.1536,0.26391,-0.15227,-0.1474,-0.14695,0.27321,0.26657,-0.17089,-0.15848,-0.12922,0.26258,0.27056,-0.1505,-0.14828,-0.1505,0.26169,0.26701,-0.14784,-0.1474,-0.14562,0.26568,0.26745 0.34943,0.39823,0.37383,0.27623,0.32503,0.12982,-0.040995,0.15422,-0.1142,0.056612,-0.21181,-0.163,0.0078085,-0.040995,0.03221,-0.163,-0.089798,-0.1386,-0.1142,-0.065396,-0.163,-0.21181,-0.1874,-0.26061,-0.1386 0.081193,0.081193,0.046789,0.069725,0.1156,0.12706,0.16147,0.16147,0.17294,0.15,0.069725,0.035321,0.13853,0.1156,0.069725,0.081193,0.058257,0.058257,0.058257,0.081193,-0.4922,-0.36606,-0.4578,-0.34312,-0.27431 -0.041916,-0.040444,-0.041033,-0.041916,-0.041327,-0.040444,-0.040444,-0.042799,-0.041033,-0.041327,-0.039267,-0.039267,-0.039855,-0.041327,-0.04221,-0.04015,-0.04015,-0.04015,-0.041327,-0.040444,-0.038089,-0.041033,-0.040738,-0.043093,0.97978 -0.18915,-0.18986,-0.19021,0.23946,0.24651,-0.19056,-0.19268,0.18059,0.25743,0.25955,-0.19162,-0.1881,-0.1888,0.17883,0.17354,-0.18915,-0.19232,-0.19268,0.17108,0.24545,-0.19162,-0.19056,0.1672,0.17813,0.17954 -0.055679,-0.056737,-0.060968,-0.057795,-0.060968,-0.05991,-0.055679,-0.05991,-0.055679,-0.058853,-0.052506,-0.060968,-0.060968,-0.032409,-0.048275,-0.051448,-0.065199,-0.058853,0.14106,-0.054622,0.94177,-0.051448,-0.057795,0.15164,-0.057795 -0.094763,-0.018997,-0.055956,-0.054108,-0.044868,-0.0615,-0.012529,-0.041172,-0.05226,-0.018073,-0.025465,-0.032857,-0.04302,-0.039324,0.03367,-0.040248,-0.048564,-0.037476,-0.04302,-0.040248,-0.077207,-0.05226,-0.0384,-0.034704,0.97335 0.26955,0.15436,0.067964,-0.27762,-0.16242,0.24076,0.12556,0.12556,-0.19122,-0.24882,0.21196,0.039166,0.15436,-0.018431,-0.5368,0.18316,0.15436,0.096763,-0.10483,-0.30642,0.039166,0.067964,0.18316,-0.10483,-0.16242 0.20667,0.1375,0.094415,0.095628,-0.28725,0.20849,0.16177,0.13203,0.14599,-0.28786,0.20849,0.095628,0.15873,-0.28118,-0.28664,0.19453,0.08956,0.094415,-0.28664,-0.28664,0.082279,0.086526,0.097448,-0.28786,-0.28603 -0.0047897,-0.066372,-0.090321,-0.10743,-0.056108,0.40234,-0.10058,-0.05953,-0.10743,-0.10401,0.46734,-0.066372,-0.10743,-0.090321,-0.10743,0.46392,-0.090321,-0.10058,-0.097163,-0.10743,0.48445,-0.093742,-0.093742,-0.090321,-0.076636 -0.23119,-0.22954,-0.1503,0.19639,0.19804,-0.2345,-0.20973,-0.18002,0.1997,0.28224,-0.18992,-0.18662,0.20465,0.19309,0.22116,-0.16021,-0.17837,0.19309,0.19309,0.19804,-0.18332,-0.1569,-0.18662,0.18979,0.20795 0.91806,0.10156,-0.025203,-0.021475,-0.0028335,0.075461,0.038178,0.0008948,-0.014018,-0.025203,0.019536,-0.01029,-0.017747,-0.1035,-0.15569,0.01208,-0.0028335,-0.021475,-0.11841,-0.15197,-0.01029,-0.066215,-0.11468,-0.13705,-0.16688 -0.10773,-0.10806,-0.10127,-0.094804,0.43296,-0.1094,-0.10996,-0.094469,-0.096141,0.43084,-0.11007,-0.10394,-0.094804,-0.095918,0.4246,-0.10316,-0.10461,-0.085556,-0.079317,0.42494,-0.1377,-0.078983,-0.078203,-0.078983,0.25971 -0.26685,-0.26304,-0.26685,-0.26643,-0.27065,-0.26981,-0.25924,0.14728,-0.26558,-0.26981,0.17136,0.15488,0.1477,0.14897,0.14812,0.16545,0.14728,0.13882,0.14939,0.14347,0.16122,0.15235,0.13967,0.14601,0.13629 -0.1922,-0.19586,-0.19586,-0.19952,-0.20226,-0.16383,-0.1922,-0.19494,-0.19952,-0.20409,0.1848,0.19853,-0.17573,-0.17115,-0.20592,0.20402,0.19487,0.20402,0.21043,0.22507,0.20311,0.21317,0.21043,0.21134,0.2333 0.2256,0.2331,0.2271,-0.20132,-0.20657,0.2226,0.22335,0.22335,-0.21032,-0.21633,0.17083,0.17083,-0.22008,-0.20207,-0.21708,0.15507,0.15282,0.15507,-0.19607,-0.21708,0.16182,0.15657,-0.17656,-0.20357,-0.21107 0.13951,0.12811,0.11557,-0.3164,-0.31982,0.14179,0.13039,0.11899,-0.30159,-0.32096,0.14635,0.12697,0.12013,0.10418,-0.32666,0.14521,0.13153,0.12355,0.098477,-0.33008,0.13609,0.12355,0.11785,0.091639,-0.32438 -0.40988,-0.40988,-0.40988,-0.20808,-0.25292,-0.14081,0.10583,-0.11839,0.016144,-0.11839,0.016144,0.016144,0.016144,0.1731,0.016144,0.10583,0.1731,0.1731,0.1731,0.1731,0.1731,0.1731,0.1731,0.21794,0.1731 -0.049618,-0.041098,-0.031157,-0.0066603,0.0089608,-0.050683,-0.046068,-0.045358,-0.034707,0.0078958,-0.047133,-0.046778,-0.048908,-0.046423,0.011446,-0.07021,-0.053169,-0.050683,-0.048198,0.0086058,-0.073405,-0.07376,-0.071275,-0.07305,0.97143 -0.13726,-0.1415,-0.15362,-0.16937,-0.17786,-0.13908,-0.13908,-0.1512,-0.16634,-0.17604,-0.14938,-0.14635,-0.1415,-0.15362,-0.16816,0.13602,0.21661,0.2354,0.35356,0.4293,0.13118,0.17541,0.2554,0.30448,0.073005 -0.041001,-0.042497,-0.042497,-0.046987,-0.046987,-0.043994,-0.039505,-0.04549,-0.039505,-0.042497,-0.039505,-0.041001,-0.043994,-0.041001,-0.039505,-0.041001,-0.042497,-0.041001,-0.038008,-0.038008,-0.042497,-0.043994,-0.033519,-0.023044,0.97953 -0.023142,-0.03246,-0.039236,-0.050248,-0.056178,-0.035848,-0.044319,-0.047707,-0.052789,-0.053636,-0.035848,-0.04093,-0.049401,-0.049401,-0.042625,-0.035848,-0.03246,-0.039236,-0.037542,-0.047707,-0.027377,-0.033307,-0.03246,-0.039236,0.97894 -0.11251,-0.16428,-0.26782,0.23261,0.16359,-0.11251,-0.19879,-0.12977,0.21536,0.24987,-0.060742,-0.12977,-0.21605,0.21536,0.28438,-0.28507,-0.18153,-0.095254,0.28438,0.1981,-0.28507,-0.095254,0.060051,0.16359,0.26713 -0.13174,-0.026629,-0.026629,0.0084091,0.25367,-0.27189,-0.20182,-0.096705,0.21864,0.21864,-0.30693,-0.096705,-0.096705,0.25367,0.14856,-0.23686,-0.20182,-0.026629,0.043447,0.53398,-0.23686,-0.026629,-0.026629,0.14856,0.1836 -0.070382,-0.070382,-0.070382,-0.070617,-0.07046,-0.067711,-0.055142,-0.052392,-0.0066712,-0.0065926,-0.067397,-0.055456,-0.05467,-0.0061998,-0.006514,-0.068732,-0.0095778,-0.0081638,-0.0052571,-0.054906,-0.068025,-0.009185,-0.0079281,-0.0074567,0.9702 0.34385,0.27878,-0.1153,-0.13039,-0.13768,0.33708,-0.10801,-0.11426,-0.13248,-0.13872,0.33969,-0.10593,-0.11894,-0.12987,-0.13768,0.33084,0.27566,-0.11269,-0.13039,-0.13508,0.33032,-0.10176,-0.11634,-0.12987,-0.14081 -0.040005,-0.039555,-0.039404,-0.039555,-0.039855,-0.040305,-0.040005,-0.040605,-0.040605,-0.041056,-0.040605,-0.040906,-0.040605,-0.040756,-0.041656,-0.041056,-0.040605,-0.040756,-0.041356,-0.041957,-0.041656,-0.041356,-0.041957,-0.043608,0.97979 -0.039973,-0.041865,-0.041865,-0.041865,-0.042244,-0.041108,-0.041108,-0.041108,-0.041487,-0.040351,-0.039594,-0.039216,-0.039973,-0.041865,-0.041865,-0.039973,-0.04073,-0.039594,-0.041108,-0.041487,-0.039216,-0.039216,-0.041108,-0.041865,0.97978 0.29549,0.28659,0.28659,0.28659,0.23319,0.17088,0.16198,0.17088,0.10858,-0.051621,0.081882,0.081882,0.00178,-0.13172,-0.14062,-0.0071202,0.00178,-0.14952,-0.23853,-0.21183,-0.096123,-0.23853,-0.29193,-0.29193,-0.31863 -0.044044,0.15587,0.034293,0.013612,-0.36491,-0.030883,0.15211,0.1565,0.016745,-0.36491,-0.038404,0.15524,0.15336,-0.03339,-0.35175,0.15775,0.15587,0.15462,-0.040284,-0.34047,0.25739,0.24047,0.20601,-0.049057,-0.35175 -0.19109,-0.19362,-0.19362,-0.1873,-0.18604,-0.18351,-0.17213,-0.16834,-0.17087,-0.16581,-0.14054,-0.13295,-0.1418,-0.13548,0.2146,0.15899,0.32076,0.35109,0.11223,0.12487,0.23861,0.2879,0.16025,0.08316,0.31065 -0.14947,-0.14831,-0.15297,0.24073,0.2419,-0.14637,-0.14792,-0.1522,0.24773,0.32351,-0.1452,-0.14792,-0.15103,0.24811,0.33323,-0.14714,-0.14831,-0.15064,0.25356,0.24734,-0.14598,-0.1487,-0.14909,-0.15608,0.25122 0.97402,-0.033421,-0.036634,-0.049488,-0.030207,-0.02378,-0.031814,-0.036634,-0.033421,-0.046275,-0.041455,-0.043061,-0.038241,-0.039848,-0.031814,-0.076803,-0.059129,-0.038241,-0.039848,0.0019281,-0.11376,-0.060736,-0.036634,-0.035028,0.00032135 -0.040279,-0.039435,-0.04049,-0.039224,-0.039013,-0.041123,-0.041545,-0.041967,-0.039857,-0.040701,-0.041334,-0.041967,-0.043233,-0.04049,-0.039013,-0.04049,-0.040279,-0.039857,-0.0426,-0.0426,-0.041334,-0.04049,-0.041334,-0.041123,0.97978 -0.040985,-0.036568,-0.045186,-0.040877,-0.043139,-0.036568,-0.041523,-0.043032,-0.043139,-0.042708,-0.034845,-0.040985,-0.04831,-0.047125,-0.041954,-0.038615,-0.043462,-0.051003,-0.047879,-0.04217,-0.012547,-0.018041,-0.048418,-0.049818,0.9789 -0.03967,-0.040874,-0.03967,-0.03967,-0.037863,-0.040272,-0.040272,-0.040272,-0.040272,-0.042079,-0.03967,-0.042079,-0.040874,-0.041476,-0.041476,-0.043885,-0.03967,-0.041476,-0.040874,-0.042079,-0.043283,-0.040874,-0.041476,-0.03967,0.97978 -0.15037,-0.14543,-0.14588,0.25749,0.26602,-0.15216,-0.15082,-0.15351,0.27321,0.26288,-0.14677,-0.14812,-0.15396,0.27591,0.2503,-0.15172,-0.14992,-0.15261,0.27141,0.27411,-0.15351,-0.15082,-0.14812,-0.14543,0.26782 0.97527,-0.01463,-0.054663,-0.047384,-0.040106,-0.020089,-0.052843,-0.049204,-0.058302,-0.01463,-0.061942,-0.047384,-0.045565,-0.041925,-0.01645,-0.054663,-0.038286,-0.047384,-0.031007,-0.0055318,-0.098335,-0.045565,-0.034647,-0.038286,-0.01645 0.14399,0.13569,0.11216,-0.32785,-0.32578,0.1177,0.11977,0.11424,-0.32578,-0.32716,0.13638,0.12877,0.08864,0.097634,-0.30502,0.27267,0.16059,0.11631,0.076878,-0.30987,0.1433,0.14952,0.14191,-0.16665,-0.16804 -0.217,-0.17023,-0.24506,-0.18894,-0.18894,-0.020578,-0.17959,-0.23571,-0.17023,-0.17959,0.13843,0.082311,-0.0018707,-0.18894,-0.22636,0.29744,0.20391,0.12908,0.072958,0.016836,0.40033,0.3255,0.26938,0.15714,0.11973 -0.35618,-0.305,-0.305,-0.27088,-0.25383,-0.35618,-0.066186,-0.049128,-0.049128,-0.049128,-0.18559,0.1044,0.12145,0.1044,0.15557,0.15557,0.17263,0.17263,0.18969,0.17263,0.18969,0.20675,0.17263,0.20675,0.12145 -0.18381,-0.212,-0.18381,-0.26838,-0.35296,-0.071043,-0.29657,-0.26838,-0.15562,-0.15562,-0.071043,0.098106,0.21087,0.23906,0.013532,0.18268,0.098106,0.041723,0.18268,0.013532,0.23906,0.29545,0.23906,0.098106,0.26726 -0.06356,-0.043605,-0.044656,-0.043605,-0.039404,-0.047806,-0.038354,-0.041505,-0.036254,-0.038354,-0.043605,-0.034153,-0.041505,-0.035204,-0.045706,-0.034153,-0.031003,-0.039404,-0.035204,-0.043605,-0.042555,-0.034153,-0.043605,-0.038354,0.97931 0.94813,0.037408,0.038174,-0.066674,-0.094225,0.011388,0.036643,-0.082745,-0.084276,-0.10035,-0.0031531,0.034347,-0.085807,-0.067439,-0.036827,-0.0046837,0.032816,-0.01999,-0.096521,-0.095756,0.0014388,-0.082745,-0.039123,-0.10341,-0.076623 -0.038566,-0.041685,-0.041295,-0.041685,-0.040515,-0.042855,-0.041685,-0.040515,-0.040515,-0.042075,-0.040905,-0.041685,-0.040905,-0.041685,-0.042075,-0.040126,-0.039736,-0.040905,-0.039736,-0.039736,-0.041295,-0.040515,-0.042075,-0.037007,0.97978 0.26022,0.0043858,-0.10526,0.077482,-0.2149,0.29677,0.077482,0.077482,-0.032162,-0.43419,0.33332,0.11403,0.0043858,-0.25145,0.0043858,0.33332,0.11403,-0.06871,-0.032162,-0.17835,0.26022,0.0043858,-0.10526,-0.2149,-0.32455 -0.038268,-0.041982,-0.040868,-0.039754,-0.042353,-0.039382,-0.04161,-0.041982,-0.041982,-0.042353,-0.038268,-0.041982,-0.041982,-0.043467,-0.04421,-0.034925,-0.037525,-0.041239,-0.042353,-0.046439,-0.035297,-0.037525,-0.040496,-0.043467,0.97971 0.24423,0.35882,0.27697,0.19513,0.19513,0.16239,0.22787,0.11328,0.080539,0.047799,0.17876,0.047799,-0.0013096,-0.1159,-0.050418,-0.050418,0.01506,-0.1159,-0.23048,-0.24685,-0.21411,-0.27959,-0.16501,-0.3287,-0.34507 -0.30699,-0.39707,-0.28898,-0.30699,-0.37906,-0.054768,-0.018737,-0.072784,-0.036753,-0.18088,0.10738,0.12539,0.053327,0.12539,-0.00072064,0.32357,0.19745,0.21547,0.16142,0.071343,0.12539,0.23349,0.14341,0.16142,-0.00072064 0.94299,-0.0011132,-0.013958,0.022436,-0.082464,0.10593,-0.028944,-0.020381,0.056689,-0.086746,-0.0075357,-0.024662,-0.013958,-0.058915,-0.11244,-0.0011132,-0.028944,-0.024662,-0.04607,-0.12956,-0.063197,-0.07176,-0.10173,-0.080324,-0.12956 0.12705,0.13007,0.12886,0.088419,-0.32144,0.13852,0.14335,0.14093,-0.27255,-0.29247,0.14395,0.14516,0.14335,-0.27375,-0.28221,0.14878,0.14938,0.14818,-0.27375,-0.30756,0.14093,0.13731,0.13973,0.13188,-0.30212 0.97109,-0.011141,-0.076128,-0.038992,-0.094695,-0.070557,-0.035279,-0.037135,-0.020425,-0.033422,-0.038992,0.014854,-0.025995,-0.044563,-0.022281,-0.024138,-0.05199,-0.046419,-0.040849,-0.079841,0.0092839,-0.022281,-0.038992,-0.048276,-0.092839 -0.17385,-0.17506,0.20966,0.22801,0.23204,-0.17466,-0.17506,-0.17627,0.32358,0.23426,-0.17546,-0.17546,-0.17748,0.22962,0.23446,-0.17345,-0.17667,-0.17829,0.23688,0.1776,-0.17304,-0.17587,-0.1799,0.17639,0.178 -0.039503,-0.039503,-0.040823,-0.039943,-0.044342,-0.039503,-0.039943,-0.039943,-0.040383,-0.037743,-0.039943,-0.042582,-0.040383,-0.043902,-0.045222,-0.040383,-0.041702,-0.043902,-0.044342,-0.038183,-0.039503,-0.039503,-0.037743,-0.040823,0.97974 0.45354,0.071664,-0.096076,-0.088938,-0.071093,0.46782,-0.021128,-0.10678,-0.10678,-0.12106,0.45711,-0.11392,-0.10321,-0.1282,-0.074662,0.41071,-0.099645,-0.10321,-0.1282,-0.085369,-0.0068523,-0.0818,-0.085369,-0.11035,-0.1282 -0.025253,-0.022085,-0.045617,-0.052858,-0.054669,-0.049238,-0.051953,-0.050596,-0.053311,-0.040639,-0.054216,-0.040639,-0.048333,-0.029778,-0.032493,-0.037019,-0.019822,-0.022085,-0.022085,-0.024347,-0.12798,-0.025253,-0.023895,-0.019822,0.97399 -0.037871,-0.032798,-0.035719,-0.039562,-0.040023,-0.040023,-0.040638,-0.03741,-0.038793,-0.038947,-0.041406,-0.04279,-0.037871,-0.038332,-0.038178,-0.047863,-0.046018,-0.042944,-0.039715,-0.039869,-0.049554,-0.047094,-0.046479,-0.039715,0.97961 -0.040074,-0.040074,-0.040074,-0.048393,-0.036607,-0.03522,-0.029674,-0.036607,-0.047007,-0.044927,-0.042847,-0.028287,-0.03314,-0.035914,-0.048393,-0.05602,-0.037994,-0.038687,-0.031754,-0.04562,-0.05394,-0.0477,-0.051167,-0.028981,0.9791 -0.17706,-0.17738,-0.17775,0.22436,0.22376,-0.17719,-0.17779,-0.17724,0.22524,0.22607,-0.17706,-0.17752,0.2251,0.22713,0.22565,-0.17696,-0.17724,-0.17696,0.2245,0.22524,-0.17715,-0.17752,-0.1771,0.2286,0.22625 -0.11471,-0.26565,-0.014088,0.26263,0.3381,-0.11471,-0.34112,-0.16503,0.31295,0.26263,-0.13987,-0.089557,-0.089557,0.21232,0.23748,-0.16503,-0.16503,-0.064401,0.011069,0.26263,-0.13987,-0.16503,-0.11471,-0.039244,0.28779 0.97747,-0.037688,-0.045107,-0.046344,-0.040161,-0.006776,-0.043871,-0.056235,-0.04758,-0.027796,-0.077256,-0.025323,-0.04758,-0.045107,-0.037688,-0.04758,-0.035215,-0.030269,-0.045107,-0.040161,-0.062418,-0.020377,-0.030269,-0.05129,-0.030269 -0.021071,-0.23798,-0.083046,0.0099159,0.41275,-0.23798,-0.14502,-0.17601,0.13386,0.19584,-0.20699,-0.11403,-0.14502,0.22683,0.10288,-0.20699,-0.20699,0.0099159,0.2888,0.19584,-0.20699,-0.20699,0.040903,0.2888,0.2888 -0.038655,-0.040439,-0.041629,-0.042819,-0.043116,-0.041629,-0.042224,-0.041927,-0.043116,-0.043116,-0.040439,-0.040737,-0.041927,-0.041629,-0.041629,-0.040439,-0.040439,-0.040439,-0.040439,-0.039547,-0.038655,-0.03925,-0.037465,-0.03806,0.97977 0.19041,0.19203,-0.21299,-0.20733,-0.20841,0.19149,0.18906,0.19984,-0.20599,-0.20653,0.19311,0.19122,0.18933,-0.20653,-0.20949,0.19742,0.19688,0.18718,-0.20706,-0.20841,0.1861,0.19364,-0.20868,-0.20706,-0.20922 -0.061698,-0.023939,-0.042818,0.0081559,0.015708,-0.052258,-0.06925,-0.061698,-0.0031717,-0.018275,-0.073025,-0.088129,-0.046594,-0.025827,-0.046594,-0.073025,-0.035267,-0.014499,-0.065474,-0.035267,-0.080577,-0.022051,-0.029603,-0.025827,0.971 0.10714,0.12856,0.10714,0.19285,0.17142,0.10714,0.27856,0.19285,0.12856,0.10714,0.064282,0.10714,0.10714,0.19285,0.08571,-0.17142,-0.14999,-0.08571,0.064282,-0.021427,-0.44998,-0.32141,-0.32141,-0.27856,-0.34284 0.08659,0.093596,0.1036,-0.36177,-0.35877,0.11461,0.10961,0.10561,0.1036,-0.35977,0.12562,0.12062,0.11261,0.11561,-0.36377,0.12762,0.12462,0.12062,0.10561,-0.35076,0.12262,0.11561,0.11762,0.10661,-0.33775 -0.27068,-0.26657,-0.25591,-0.25509,-0.26904,-0.27232,-0.26739,0.14856,-0.27232,-0.26904,0.16251,0.15841,0.15595,0.142,0.14118,0.16415,0.15185,0.1461,0.14364,0.13872,0.15841,0.15431,0.14856,0.14528,0.13872 0.082444,0.043363,-0.063685,-0.092571,-0.10786,0.085842,0.053558,-0.043295,-0.089173,-0.10786,0.097737,0.073948,-0.017807,-0.09427,-0.11296,0.10453,-0.01271,-0.078978,-0.095969,-0.10786,0.90315,-0.095969,-0.09427,-0.10616,-0.12316 -0.30722,-0.11195,0.050769,0.083314,0.21349,-0.20959,-0.20959,0.050769,0.34367,0.21349,-0.27468,-0.1445,-0.17704,0.083314,0.21349,-0.11195,-0.30722,0.11586,0.050769,0.21349,-0.30722,0.018225,0.018225,0.1484,0.34367 0.1505,0.11337,0.10099,0.076238,0.062315,0.1474,0.11337,0.094803,0.074691,0.046844,0.16133,0.12574,0.091709,0.07005,0.057674,0.15823,0.11646,0.091709,0.07005,0.051486,-0.3987,-0.4018,-0.39561,-0.39097,-0.38787 -0.041161,-0.039631,-0.040396,-0.047029,-0.049579,-0.03759,-0.0381,-0.039121,-0.040141,-0.042692,-0.03759,-0.038611,-0.039631,-0.040906,-0.040651,-0.040651,-0.041161,-0.040906,-0.041417,-0.0381,-0.041672,-0.041672,-0.041927,-0.039376,0.97971 -0.22375,-0.20616,-0.047847,0.18083,0.17497,-0.17391,-0.20616,-0.1446,0.21015,0.19256,-0.12407,-0.16512,0.19256,0.21601,0.19256,-0.15925,-0.21496,-0.1446,0.2424,0.23654,-0.1358,-0.23841,-0.22669,0.2336,0.33915 -0.11846,-0.1449,-0.17134,-0.092018,-0.1449,-0.19779,-0.22423,-0.22423,-0.1449,-0.17134,-0.17134,-0.17134,-0.092018,-0.17134,-0.092018,0.30461,0.27817,0.38394,0.30461,0.19884,0.1724,0.093076,0.14596,0.22529,0.22529 0.16092,0.27946,0.29397,-0.18985,-0.19711,0.18995,0.29397,-0.10518,-0.20437,-0.20195,0.15608,0.29156,-0.15115,-0.20921,-0.19227,0.18995,0.2722,-0.14147,-0.20679,-0.20921,0.15608,0.085928,-0.025353,-0.16566,-0.1705 -0.26213,-0.26648,-0.26865,-0.26702,-0.26865,-0.25452,-0.27082,0.13067,-0.27191,-0.26267,0.18772,0.1323,0.15132,0.15458,0.17251,0.18772,0.13339,0.13122,0.14154,0.15349,0.15567,0.13067,0.1285,0.1448,0.15675 0.16126,0.16098,0.16346,-0.18208,-0.19088,0.15713,0.16318,0.26855,-0.19088,-0.19308,0.22811,0.22563,-0.18373,-0.19308,-0.19336,0.23113,0.23361,-0.19281,-0.19391,-0.18703,0.22783,0.25314,-0.19088,-0.19143,-0.19088 -0.043189,-0.045512,-0.047061,-0.042415,-0.037252,-0.05274,-0.05274,-0.046028,-0.023314,-0.034929,-0.05687,-0.031057,-0.031574,-0.039059,-0.039834,-0.034929,-0.02925,-0.036478,-0.043705,-0.04035,-0.028734,-0.050933,-0.047061,-0.043963,0.97898 -0.18615,-0.21275,-0.21275,-0.21275,-0.31912,-0.13297,-0.10637,-0.10637,-0.15956,-0.18615,0.026593,0.07978,0.026593,0.026593,-0.18615,0.13297,0.13297,0.18615,0.026593,-0.053187,0.37231,0.45209,0.37231,0.10637,0.13297 0.93609,-0.02488,-0.11923,-0.028375,-0.05633,0.10441,0.027536,-0.12622,-0.14719,-0.098264,0.020547,-0.021386,-0.070308,-0.073803,-0.038858,0.020547,-0.049341,-0.0074082,-0.094769,-0.035364,-0.0074082,-0.049341,0.013558,-0.12272,0.048503 0.2723,0.23174,0.22648,0.21746,0.19718,0.10104,0.12808,0.22648,0.21296,0.22498,0.1093,0.15813,-0.19791,-0.058948,-0.044677,0.06048,-0.24147,-0.21443,-0.20917,-0.23246,-0.21067,-0.23246,-0.24973,-0.24222,-0.23246 -0.11701,-0.13619,-0.083442,-0.054669,0.39131,-0.13619,-0.12181,-0.073851,-0.069055,0.41529,-0.1314,-0.11701,-0.1266,-0.045078,0.33377,-0.11222,-0.1314,-0.088237,-0.045078,0.4105,-0.11701,-0.12181,-0.078646,-0.069055,0.42488 -0.15282,-0.15308,-0.15295,-0.15362,-0.15349,-0.15255,-0.15308,-0.15349,-0.15308,-0.15349,-0.15148,-0.15255,-0.15349,-0.15308,-0.15282,0.21252,0.14215,0.14108,0.29492,0.49785,0.15205,0.1364,0.13894,0.2893,0.28984 -0.047968,-0.051141,-0.040918,-0.038098,-0.035631,-0.044796,-0.044796,-0.044091,-0.037746,-0.037393,-0.044796,-0.036336,-0.041623,-0.034926,-0.040566,-0.048673,-0.039861,-0.038803,-0.035278,-0.044091,-0.038098,-0.039156,-0.036688,-0.038098,0.97957 -0.038859,-0.045208,-0.04124,-0.02616,-0.029334,-0.04124,-0.046002,-0.042033,-0.04124,-0.030922,-0.04124,-0.042033,-0.047589,-0.040446,-0.04124,-0.04124,-0.038859,-0.042033,-0.047589,-0.043621,-0.038859,-0.036478,-0.046002,-0.04997,0.97943 -0.099684,-0.096479,-0.10396,-0.10396,0.40984,-0.10289,-0.096479,-0.10075,-0.091138,0.40878,-0.099684,-0.096479,-0.10716,-0.11357,0.38741,-0.10075,-0.098616,-0.10396,-0.097548,0.40023,-0.098616,-0.098616,-0.10182,-0.086866,0.39275 0.15221,0.13887,0.12553,0.13887,0.1322,0.1322,0.12886,0.12886,0.12553,0.12553,0.058828,0.12886,0.12553,0.14554,0.12886,-0.34803,0.015474,0.048823,0.058828,0.065498,-0.36471,-0.3447,-0.33803,-0.3547,-0.3547 0.17737,0.29787,0.17737,0.17737,0.27377,0.080975,0.15327,0.080975,0.12918,0.12918,0.080975,0.0086759,0.0086759,0.056876,-0.039524,0.056876,-0.015424,-0.063624,-0.063624,0.056876,-0.40102,-0.23232,-0.32872,-0.37692,-0.42512 0.093863,0.12644,0.064475,0.080446,0.13986,0.097696,0.13539,0.060641,0.070224,0.11175,0.11047,0.14753,0.062558,0.064475,0.09514,0.14369,0.11239,0.064475,0.086196,0.11558,-0.39934,-0.39807,-0.39296,-0.39615,-0.39679 -0.041311,-0.042211,-0.041311,-0.041536,-0.039734,-0.042211,-0.040635,-0.041536,-0.039959,-0.036356,-0.042211,-0.042211,-0.041536,-0.04086,-0.032978,-0.041986,-0.041986,-0.041085,-0.040185,-0.041311,-0.041311,-0.041761,-0.040635,-0.042887,0.97975 0.11509,0.14195,0.15491,0.081753,-0.14235,0.11787,0.13361,0.19103,0.094718,-0.30812,0.11694,0.1188,0.11787,-0.31738,-0.2933,0.13917,0.12528,0.16047,-0.28867,-0.3146,0.21048,0.1225,0.14195,-0.29701,-0.32294 -0.33954,-0.27634,0.15235,0.14685,0.14136,-0.3203,-0.2571,0.13311,0.13586,0.15235,-0.31756,0.047925,0.12762,0.14685,0.1496,-0.3203,-0.17191,0.1441,0.15235,0.1551,-0.29282,0.10014,0.13036,0.13861,0.14136 -0.22404,-0.22404,-0.19885,0.18517,0.20406,-0.22823,-0.22613,0.18937,0.18517,0.16838,-0.22613,-0.23033,0.19357,0.16419,0.16628,-0.23243,-0.23243,0.19147,0.18097,0.15999,-0.22613,-0.22823,0.17678,0.16209,0.1495 0.27006,0.24625,-0.19963,-0.19414,-0.18773,0.20505,0.17758,-0.20055,-0.19689,-0.18407,0.20047,0.17301,-0.20329,-0.19231,-0.19689,0.18125,0.19407,0.25175,-0.17216,-0.19597,0.18399,0.20688,0.19223,-0.17583,-0.18315 0.21272,0.28481,0.15024,-0.24386,-0.26068,0.18869,0.15024,0.049311,-0.092469,-0.06123,0.20791,0.10698,-0.15495,-0.1934,-0.21743,0.18148,0.099775,-0.22944,-0.20541,-0.1934,0.31365,0.37132,-0.15255,-0.20061,-0.11169 -0.15876,-0.22938,-0.10226,0.095481,0.010735,-0.11639,-0.2435,0.038983,0.2226,0.19435,-0.22938,-0.25763,0.12373,0.20848,0.29322,-0.18701,-0.27175,-0.045763,0.30735,0.23673,-0.17288,-0.22938,-0.0033899,0.25085,0.26497 0.048632,0.17422,0.037711,-0.26442,-0.27534,0.15419,0.15055,-0.18251,-0.2535,-0.2717,0.3089,0.16512,0.15237,-0.22074,-0.27534,0.16329,0.14873,0.14509,-0.20072,-0.24076,0.21972,0.19788,0.15601,0.14145,-0.17887 -0.044075,-0.043866,-0.043136,-0.044179,-0.043762,-0.042927,-0.043136,-0.043136,-0.044075,-0.044283,-0.041884,-0.042927,-0.043136,-0.043449,-0.042927,-0.037086,-0.040007,-0.039694,-0.041571,-0.04105,-0.039902,-0.038859,-0.037086,-0.013201,0.97935 0.07377,0.068538,0.18976,0.18747,-0.39596,0.071481,0.072135,0.12086,0.20262,-0.3916,0.078785,0.075951,0.076278,0.07268,-0.38888,0.064831,0.075842,0.075733,0.074097,-0.39433,0.065813,0.099388,0.1068,0.11018,-0.39225 -0.04653,-0.047095,-0.045401,-0.02959,-0.036366,-0.045966,-0.039754,-0.034107,-0.032978,-0.035801,-0.041448,-0.036931,-0.038625,-0.039189,-0.039189,-0.040883,-0.041448,-0.042577,-0.045966,-0.037495,-0.044836,-0.044272,-0.042577,-0.050483,0.97951 0.26621,0.26621,0.26527,0.26527,0.26621,0.26842,-0.1402,0.26811,0.26684,0.26716,-0.14965,-0.15469,-0.14902,-0.14744,-0.14335,-0.14933,-0.15374,-0.15311,-0.15059,-0.14839,-0.15122,-0.15437,-0.15028,-0.15154,-0.1528 0.3389,0.33372,0.33043,0.31584,0.27161,-0.032845,-0.037551,-0.039904,0.33419,0.26031,-0.14249,-0.14672,-0.13307,-0.046491,-0.044609,-0.15707,-0.15754,-0.15519,-0.15378,-0.14954,-0.15613,-0.1599,-0.15613,-0.15613,-0.1599 -0.035339,-0.039137,-0.041036,-0.039137,-0.039137,-0.039137,-0.039137,-0.039137,-0.039137,-0.037713,-0.041036,-0.039137,-0.040086,-0.041036,-0.041036,-0.039611,-0.041036,-0.039137,-0.040561,-0.046258,-0.041036,-0.040561,-0.045783,-0.055278,0.97963 0.28155,0.28024,0.16995,0.16667,0.16207,0.25595,0.16732,0.16404,0.15682,0.15682,0.16995,0.16404,0.16732,-0.19046,-0.20621,-0.20621,-0.19899,-0.19702,-0.20621,-0.21081,-0.20621,-0.20818,-0.21081,-0.21015,-0.21146 -0.15948,-0.15536,-0.11206,0.28787,0.28169,-0.16154,-0.14505,-0.11825,0.3023,0.28169,-0.16566,-0.15742,-0.1265,-0.056403,0.28787,-0.1533,-0.15123,-0.1265,0.30643,0.28169,-0.1533,-0.15536,-0.14299,-0.072896,0.28375 0.10433,0.10845,0.11199,-0.35425,-0.35542,0.11494,0.11494,0.10728,0.1226,-0.35248,0.11435,0.11258,0.10963,0.11553,-0.35778,0.12378,0.10787,0.10845,0.10963,-0.35837,0.11612,0.10963,0.11376,0.10904,-0.3566 -0.094653,-0.10071,-0.093441,-0.10495,-0.11162,-0.081325,-0.098894,-0.10132,-0.10677,-0.11889,-0.066785,-0.073449,-0.088595,-0.10192,-0.10677,0.14465,0.14222,0.078611,-0.07769,-0.07769,0.87163,0.14465,0.072553,0.064071,0.087092 -0.042718,-0.042449,-0.042179,-0.038412,-0.038681,-0.042718,-0.042449,-0.04191,-0.041372,-0.040565,-0.04191,-0.04191,-0.04191,-0.041641,-0.043794,-0.040296,-0.04191,-0.040834,-0.036528,-0.04191,-0.037873,-0.039488,-0.041641,-0.034644,0.97974 0.95484,0.011521,0.023223,0.0052206,-0.0091811,-0.0037805,0.0052206,0.010621,0.00072009,-0.10819,-0.010981,-0.020883,-0.023583,-0.0091811,-0.10729,-0.08299,-0.028083,-0.040685,-0.042485,-0.097392,-0.11719,-0.046086,-0.040685,-0.10999,-0.11269 -0.12212,0.13951,0.12574,-0.13983,-0.2972,0.0077114,0.18476,-0.041468,-0.13196,-0.30704,0.15722,0.21033,0.056891,-0.13196,-0.27163,0.23197,0.25951,0.14738,-0.09655,-0.2795,0.30476,0.31459,0.082465,-0.10048,-0.30311 -0.040202,-0.038715,-0.042184,-0.041688,-0.043175,-0.043175,-0.04268,-0.041193,-0.04268,-0.041688,-0.039706,-0.038219,-0.039706,-0.040202,-0.041193,-0.036237,-0.041688,-0.040202,-0.042184,-0.041688,-0.033759,-0.043175,-0.047635,-0.036733,0.97971 -0.034417,-0.021122,-0.021122,-0.021122,-0.023021,-0.049613,-0.038216,-0.02492,-0.032518,-0.045814,-0.062909,-0.042015,-0.042015,-0.047713,-0.030619,-0.061009,-0.05721,-0.049613,-0.040116,-0.040116,-0.049613,-0.055311,-0.038216,-0.049613,0.97797 -0.18755,-0.28948,0.016309,0.15222,0.35608,-0.22153,-0.15357,-0.085621,0.15222,0.28812,-0.28948,-0.017668,-0.085621,0.016309,0.18619,-0.32346,-0.18755,0.050285,0.25415,0.39005,-0.085621,-0.085621,-0.085621,0.18619,0.050285 -0.14433,-0.14433,-0.14658,-0.14791,0.258,-0.14525,-0.14484,-0.1476,0.068744,0.258,-0.14402,-0.14597,-0.1476,0.25881,0.25881,-0.14341,-0.14638,-0.14801,0.25984,0.26045,-0.14402,-0.14566,-0.1474,0.35605,0.35462 -0.28782,-0.25526,-0.32037,-0.2227,-0.25526,-0.19014,-0.2227,-0.092465,-0.12502,0.0052093,-0.059907,0.23312,-0.12502,0.0052093,-0.027349,0.070326,0.20056,0.26568,0.20056,0.070326,0.33079,0.20056,0.29823,0.10288,0.20056 -0.16655,-0.16345,-0.165,-0.16655,-0.17587,-0.14326,-0.15568,-0.16655,-0.15568,-0.13394,-0.082687,-0.10443,-0.14015,-0.10598,-0.092005,0.28695,0.2885,-0.085793,-0.10909,0.29471,0.28384,0.2885,0.29161,0.2885,0.29006 0.20999,0.21237,0.21475,0.22022,0.21737,0.0053214,0.0055594,0.21808,0.22236,0.21784,0.0036555,0.0034175,0.0019896,0.0027035,0.0027035,0.0029415,0.0024655,0.0012756,0.0015136,0.00032366,-0.35285,-0.35285,-0.35309,-0.35475,-0.35332 -0.27067,-0.21654,0.13224,0.14126,0.17734,-0.23759,0.12622,0.13975,0.12923,0.23747,-0.27367,-0.21805,0.20289,0.12472,0.2059,-0.30374,-0.24962,0.1142,0.11119,0.19538,-0.30675,-0.27969,0.10518,0.099162,0.1142 0.30893,0.37708,0.24078,0.2635,0.14992,0.21807,0.17264,0.013629,0.14992,0.12721,0.05906,-0.077233,-0.0090862,-0.0090862,-0.077233,0.013629,-0.12266,-0.14538,-0.23624,-0.21353,-0.12266,-0.12266,-0.25896,-0.3271,-0.37253 -0.28517,0.024798,0.024798,0.12812,0.33477,-0.11297,-0.11297,0.16256,-0.044084,0.23144,-0.21629,-0.18185,0.059239,0.12812,0.197,-0.31961,-0.11297,-0.25073,0.09368,0.33477,-0.35405,-0.078526,-0.078526,0.12812,0.30033 -0.030564,-0.045089,-0.051404,-0.052667,-0.053298,-0.0090936,-0.047615,-0.046983,-0.054561,-0.0413,-0.026776,-0.050141,-0.043826,-0.047615,-0.045089,-0.022987,-0.043826,-0.046352,-0.048878,-0.046983,0.0079569,-0.039405,-0.041931,-0.048878,0.97731 0.14122,0.15811,-0.23962,-0.24975,-0.25482,0.16656,0.24509,0.30251,-0.23793,-0.22273,0.19696,0.18091,0.12602,-0.24975,-0.22695,0.23158,0.15727,0.12096,-0.23962,-0.13238,0.22736,0.098158,0.027225,-0.15264,-0.17375 -0.040867,-0.042434,-0.039823,-0.041912,-0.041912,-0.040867,-0.04139,-0.04139,-0.042434,-0.04139,-0.0393,-0.042957,-0.040345,-0.042434,-0.04139,-0.038778,-0.0393,-0.04139,-0.041912,-0.042957,-0.038778,-0.0393,-0.0393,-0.037211,0.97977 -0.25565,-0.25873,-0.38102,-0.26489,-0.25565,0.15543,-0.23818,-0.22995,-0.2392,-0.22687,0.067046,0.1544,0.15954,0.17187,0.21298,0.11843,0.1472,0.1657,0.17495,0.19037,0.13898,0.13076,0.12665,0.17084,0.06499 -0.28067,-0.27019,0.10187,0.21401,0.14065,-0.2639,-0.25447,0.08615,0.20982,0.20773,-0.21674,-0.2356,0.10292,0.1134,0.14275,-0.23351,-0.21045,0.26537,0.1134,0.13226,-0.21883,-0.19158,0.27585,0.14694,0.12283 0.15237,0.15945,0.15266,0.13879,0.13823,0.1535,0.16482,0.14162,0.13851,0.14389,0.15294,0.16199,0.14615,0.14615,0.15068,-0.27004,-0.26042,-0.26381,-0.26608,0.1569,-0.26862,-0.26636,-0.26834,-0.26749,-0.26749 0.076301,-0.0061866,-0.068052,-0.17116,-0.17116,0.24128,0.0041244,-0.11961,-0.1093,-0.20209,0.31345,0.014435,-0.016497,-0.098985,-0.17116,0.38563,0.014435,-0.037119,-0.098985,-0.098985,0.67433,-0.04743,-0.026808,-0.11961,-0.16085 -0.11176,-0.11291,-0.11407,-0.11494,-0.11667,-0.11147,-0.11176,-0.11147,-0.11291,-0.11378,-0.10974,-0.10945,-0.11089,-0.11089,-0.11176,-0.10685,-0.108,-0.10743,-0.108,0.3121,0.43201,0.43201,0.31008,0.32251,0.30604 -0.27143,-0.057143,-0.12857,0.37143,0.22857,-0.27143,-0.057143,0.05,0.014286,0.19286,-0.27143,-0.092857,0.12143,0.22857,0.085714,-0.30714,-0.12857,-0.12857,0.22857,0.37143,-0.27143,-0.092857,-0.057143,0.05,0.19286 -0.12631,-0.22199,0.065067,-0.03062,0.32023,-0.22199,-0.22199,0.0012758,0.096963,0.22455,-0.22199,-0.062516,-0.03062,0.25644,0.19265,-0.38147,0.0012758,0.033172,-0.03062,0.38402,-0.31768,-0.12631,0.12886,0.0012758,0.28834 -0.14938,-0.087823,-0.026265,0.035293,0.21997,-0.21094,-0.12886,-0.14938,-0.0057454,0.19945,-0.21094,-0.12886,-0.046784,-0.0057454,0.3636,-0.1699,-0.10834,-0.067304,0.035293,0.42516,-0.19042,-0.046784,-0.1699,0.076332,0.54828 0.97602,-0.055573,-0.049197,-0.04517,-0.07403,-0.055573,-0.054231,-0.045506,-0.038794,-0.067319,-0.060271,-0.014967,-0.028055,-0.01631,-0.053224,-0.058593,-0.033089,-0.023692,-0.021008,-0.034096,-0.050204,-0.050204,-0.014967,-0.01396,-0.017987 -0.43381,0.098742,0.09561,0.10187,0.11754,-0.41502,0.064283,0.089344,0.11127,0.11754,-0.38056,0.076813,0.10501,0.10501,0.1238,-0.39622,0.067415,0.092477,0.11127,0.11127,-0.3649,0.067415,0.09561,0.11754,0.12067 0.092439,0.17699,0.092439,0.092439,0.17699,0.036074,0.036074,0.12062,0.12062,0.1488,0.17699,0.17699,0.12062,0.17699,0.23335,-0.13302,-0.10484,-0.048474,0.092439,0.0078911,-0.30212,-0.41485,-0.35848,-0.30212,-0.41485 0.39516,0.39463,0.38239,0.38133,0.41378,-0.12507,-0.12613,-0.12613,-0.12294,-0.12507,-0.12719,-0.12613,-0.124,-0.124,-0.124,-0.1006,-0.096343,-0.11762,-0.124,-0.124,-0.030916,-0.028256,-0.025064,-0.030916,-0.038895 -0.20117,-0.16821,-0.17015,-0.17985,-0.17985,-0.18954,-0.18566,-0.15658,-0.16046,-0.17403,-0.17985,-0.19536,0.24088,-0.15464,-0.18178,0.23894,0.23312,0.23894,0.22343,0.2118,0.22731,0.21374,0.22149,0.21955,0.20792 0.10982,0.17477,0.15705,0.098011,0.080298,0.080298,0.16296,0.17477,0.080298,0.10391,0.092106,0.14524,0.15115,0.10391,0.12753,-0.26215,0.068489,0.056681,0.080298,0.044872,-0.34481,-0.39204,-0.36252,-0.35662,-0.37433 -0.059656,-0.059656,-0.048275,-0.023404,-0.024668,-0.042373,-0.043216,-0.046167,-0.030991,-0.039422,-0.016238,-0.037736,-0.052911,-0.036893,-0.043638,-0.020453,-0.035207,-0.053333,-0.054598,-0.05249,-0.040265,-0.032678,-0.047853,-0.03605,0.97817 0.12497,0.12778,0.13059,0.14787,0.1524,0.1267,0.1375,0.128,0.14052,0.46447,0.13296,0.13188,0.12713,0.11957,0.12627,-0.23115,-0.22964,-0.23115,-0.23115,-0.23093,-0.23331,-0.23245,-0.23331,-0.23309,-0.23245 -0.12165,-0.16344,-0.12102,-0.12186,-0.12059,-0.1225,-0.12186,-0.12123,-0.12144,-0.12123,-0.12017,-0.1208,-0.12144,-0.12123,-0.12165,0.24873,0.24873,-0.12059,-0.12102,-0.12123,0.37749,0.36243,0.34758,0.32679,0.31321 0.241,0.18542,0.11527,0.082215,0.018534,0.27681,0.16938,-0.11784,-0.11885,-0.11885,0.27518,0.16617,-0.12032,-0.12003,-0.2653,0.1611,0.16076,-0.12088,-0.26666,-0.26767,0.27957,0.18745,-0.26637,-0.26756,-0.26851 0.17235,0.17235,0.12339,0.025461,-0.072465,0.12339,0.074423,0.074423,0.025461,-0.23567,0.22131,0.17235,0.074423,-0.023502,-0.3336,0.074423,0.12339,0.074423,-0.072465,-0.43152,0.17235,0.12339,0.074423,-0.13775,-0.59473 0.30033,0.20542,0.13161,0.089424,0.068334,0.27397,0.3056,0.10524,0.057788,0.055152,0.22388,0.24497,0.047243,0.02088,0.034061,-0.2823,-0.20848,-0.20321,-0.031847,-0.10303,-0.27175,-0.20848,-0.26384,-0.30339,-0.28757 -0.15385,-0.15091,-0.14829,-0.14862,0.25555,-0.15352,-0.14894,-0.15156,0.26373,0.2657,-0.15254,-0.14731,-0.15352,0.27715,0.27028,-0.15385,-0.14829,-0.15222,0.26635,0.27028,-0.1496,-0.14142,-0.14502,0.2657,0.26471 -0.08793,-0.24495,-0.08793,0.069088,0.25751,-0.33916,-0.056527,-0.056527,0.1633,0.28891,-0.18214,-0.08793,0.10049,0.037684,0.35172,-0.33916,-0.24495,0.10049,0.037684,0.1633,-0.15074,-0.18214,-0.08793,0.32032,0.25751 -0.079242,0.00056638,-0.020029,-0.025178,-0.017455,-0.08053,0.0057153,-0.01488,-0.030327,-0.020029,-0.085678,-0.085678,-0.017455,-0.022604,-0.020029,-0.086966,-0.094689,-0.01488,-0.021317,-0.017455,0.96599,-0.090827,-0.094689,-0.012306,-0.020029 0.41164,0.38265,0.20872,0.26669,0.44063,0.12175,-0.081168,0.12175,0.092763,0.092763,-0.19712,-0.081168,-0.052179,-0.081168,-0.19712,-0.19712,-0.11016,-0.19712,-0.13915,-0.11016,-0.22611,-0.11016,-0.11016,-0.13915,-0.11016 0.2689,0.18197,0.21094,0.095041,0.12402,0.29787,0.21094,0.23992,0.18197,0.32685,-0.078814,0.066065,0.0081132,0.0081132,-0.049839,-0.28165,-0.16574,-0.28165,-0.19472,-0.28165,-0.10779,-0.22369,-0.13677,-0.13677,-0.28165 -0.12609,-0.12609,0.0041684,0.21259,0.34285,-0.33451,-0.10004,-0.1782,0.21259,0.3689,-0.15215,-0.28241,-0.1782,0.18653,0.3168,-0.073988,-0.12609,-0.15215,0.056273,0.21259,-0.073988,-0.12609,-0.12609,-0.021884,0.26469 -0.044986,-0.041076,-0.041076,-0.037167,-0.039773,-0.041945,-0.038035,-0.039773,-0.038035,-0.038035,-0.040642,-0.041945,-0.040642,-0.03847,-0.041945,-0.041076,-0.040642,-0.038904,-0.041945,-0.043682,-0.041945,-0.04542,-0.040207,-0.042379,0.97974 0.23982,0.32713,0.32713,0.21071,0.38534,0.036089,-0.051223,0.15251,0.21071,0.15251,-0.022119,0.065193,-0.051223,-0.13854,-0.022119,-0.19674,-0.10943,-0.10943,-0.10943,-0.022119,-0.31316,-0.25495,-0.19674,-0.31316,-0.19674 -0.26143,-0.26989,-0.28682,-0.23603,-0.20217,-0.20217,-0.24449,-0.21063,-0.075177,-0.12597,-0.12597,0.0094818,0.2042,0.2042,0.1534,-0.092109,0.128,0.2042,0.22113,0.1788,0.060277,0.2042,0.27192,0.28039,0.21266 -0.22539,-0.22524,0.18398,0.18933,0.19087,-0.22524,-0.22546,0.18061,0.16589,0.19014,-0.22583,-0.2259,0.16698,0.16596,0.19182,-0.22546,-0.22488,-0.22656,0.16508,0.16376,-0.22429,-0.22524,0.16647,0.16559,0.193 -0.072812,-0.072812,-0.13201,-0.072812,0.0011839,-0.13201,-0.13201,-0.072812,-0.028415,-0.13201,-0.13201,-0.13201,-0.13201,-0.13201,-0.072812,-0.13201,-0.028415,-0.13201,-0.13201,-0.072812,0.35637,0.29717,0.38596,0.47476,0.43036 0.18056,0.17911,-0.18944,-0.19524,-0.19815,0.20523,0.21683,-0.18364,-0.19815,-0.19669,0.19362,0.22554,0.22844,-0.18654,-0.20975,0.19507,0.21683,-0.14446,-0.19379,-0.19379,0.20087,0.20087,0.24585,-0.20395,-0.19524 0.975,-0.064255,-0.061502,-0.051178,-0.05049,-0.054619,-0.052555,-0.049802,-0.043607,-0.051866,-0.051178,-0.057372,-0.040854,-0.035348,-0.048425,-0.033972,-0.047049,-0.042919,-0.044296,-0.04636,-0.0030008,0.031412,-0.01883,-0.031219,-0.025713 0.16037,0.12644,0.097579,0.074868,0.044942,0.14941,0.12617,0.09277,0.069791,0.043873,0.15155,0.11976,0.095709,0.067653,0.044942,0.15877,0.1267,0.097579,0.073799,0.04708,-0.39593,-0.39432,-0.39406,-0.39272,-0.39272 -0.22499,-0.22928,0.21285,0.19425,0.19998,-0.18635,-0.23214,0.18138,0.19425,0.19855,-0.17205,-0.22356,0.1685,0.18853,0.21428,-0.20639,-0.20782,-0.19208,0.17136,0.19855,-0.22213,-0.21783,-0.17348,0.16707,0.19855 -0.19603,-0.20599,-0.21397,0.20372,0.21469,-0.21397,-0.20001,-0.22294,0.19575,0.21668,-0.21796,-0.19802,0.15687,0.18877,0.20372,-0.17609,-0.21796,0.19076,0.19276,0.2107,-0.20001,-0.22493,0.14291,0.17082,0.19973 0.2786,0.18186,-0.011608,-0.043854,-0.17283,0.2786,0.085128,0.052882,-0.20508,-0.17283,0.2786,0.052882,0.11737,-0.076099,0.020637,0.18186,0.14962,-0.23733,-0.076099,-0.4308,0.2786,0.18186,-0.14059,-0.26957,-0.30182 -0.14662,-0.15286,-0.15337,-0.15441,-0.15597,-0.13363,-0.13103,-0.13363,-0.13311,-0.14454,-0.13363,-0.13311,-0.13155,-0.14454,-0.15441,0.059646,0.061724,0.057568,0.37658,0.35891,0.062244,0.056528,0.37398,0.37398,0.35528 0.074106,0.22849,0.40494,0.38288,0.38288,0.029995,-0.014115,0.20644,0.18438,0.20644,-0.1685,-0.10234,-0.014115,-0.080281,-0.058226,-0.1685,-0.10234,-0.080281,-0.058226,-0.1685,-0.21261,-0.25672,-0.19056,-0.19056,-0.23467 -0.24665,-0.23186,0.21175,0.25611,0.21175,-0.15792,-0.23186,0.06388,0.21175,0.2709,-0.14314,-0.20229,0.034306,0.25611,0.21175,-0.23186,-0.20229,-0.14314,0.1526,0.16739,-0.15792,-0.21707,-0.23186,0.21175,0.13781 0.13686,0.11894,0.09542,0.042782,-0.4052,0.12342,0.12118,0.09318,0.041662,-0.43208,0.11894,0.11222,0.0943,0.031583,-0.48248,0.10998,0.10998,0.086461,0.042782,-0.48248,0.10102,0.0999,0.083101,0.046142,-0.0076157 -0.17533,-0.184,-0.16955,-0.17244,-0.18111,-0.14644,-0.16088,-0.158,-0.17533,-0.17822,0.012482,-0.097317,-0.11465,-0.065533,-0.12332,0.28409,0.19452,0.29276,0.035598,-0.053975,0.26387,0.30721,0.28698,0.46035,0.018261 -0.057308,-0.028832,-0.037731,-0.037731,-0.035951,-0.051079,-0.035951,-0.038621,-0.039511,-0.039511,-0.036841,-0.035951,-0.039511,-0.036841,-0.040401,-0.036841,-0.041291,-0.041291,-0.04396,-0.04663,-0.04307,-0.04218,-0.04307,-0.0493,0.97941 0.12974,0.1383,0.12118,0.12404,0.13259,0.13545,0.12404,0.11263,0.13259,0.13545,0.14971,0.14401,0.14401,0.13259,0.15827,-0.10418,0.12404,-0.21258,-0.14412,0.089804,-0.39231,-0.34952,-0.32384,-0.35237,-0.34952 -0.23321,-0.41654,-0.30654,-0.23321,-0.30654,-0.15987,0.060135,-0.19654,0.023467,-0.086536,0.060135,-0.0132,-0.049868,-0.049868,0.096803,0.17014,0.096803,0.13347,-0.0132,0.13347,0.24347,0.31681,0.35348,0.24347,0.13347 0.078187,0.083139,0.085165,0.083589,0.11195,0.078074,0.082802,0.099459,0.083814,0.086628,0.10464,0.1142,0.11094,0.10779,0.1106,0.11353,0.13559,0.10205,0.11285,0.11015,-0.39914,-0.39892,-0.39858,-0.3988,-0.3997 0.24811,0.035444,0.035444,-0.14178,-0.10633,0.28355,0,-0.21266,-0.10633,-0.35444,0.21266,0.21266,-0.035444,-0.14178,-0.28355,0.14178,0.17722,0,-0.035444,-0.319,0.21266,0.24811,0.24811,0.035444,-0.35444 -0.043432,-0.045172,-0.035019,-0.029218,-0.0356,-0.044592,-0.03676,-0.025737,-0.032409,-0.03618,-0.043722,-0.043432,-0.043722,-0.041691,-0.041111,-0.044012,-0.044302,-0.045463,-0.046913,-0.040531,-0.041401,-0.044882,-0.046333,-0.047783,0.97942 -0.050023,-0.051567,-0.062375,-0.062375,-0.067007,-0.050023,-0.037672,-0.062375,-0.063919,-0.057743,-0.042304,-0.025321,-0.046936,-0.050023,-0.050023,-0.036128,-0.022233,-0.019145,-0.014513,-0.053111,-0.036128,-0.011425,-0.0098812,0.0071021,0.97515 -0.19286,-0.19382,0.23445,0.2087,0.20584,-0.18237,-0.17188,0.19057,0.19534,0.21156,-0.18905,-0.18237,-0.18619,0.18676,0.22396,-0.20622,-0.20526,-0.18046,0.1839,0.20679,-0.21099,-0.21003,-0.17951,0.20202,0.24113 -0.095873,-0.10858,-0.11096,-0.1197,0.38619,-0.091902,-0.10223,-0.10381,-0.1062,0.40207,-0.09349,-0.096667,-0.10223,-0.10143,0.4124,-0.091108,-0.096667,-0.096667,-0.10143,0.40366,-0.086342,-0.09349,-0.095873,-0.10381,0.39413 0.070476,0.084723,0.084261,0.083667,0.083469,0.071729,0.08525,0.12278,0.12265,0.12192,0.071861,0.076478,0.14092,0.14092,0.12357,0.072652,0.077797,0.079974,0.14428,0.1266,-0.39729,-0.39729,-0.39702,-0.39729,-0.39709 -0.29236,-0.3213,-0.31109,-0.23277,-0.18851,0.15371,-0.3179,-0.31449,-0.21404,-0.17148,0.15541,0.1486,0.1486,0.1486,0.1503,0.15371,0.14349,0.1469,0.13838,0.14179,0.1503,0.152,0.14519,0.14349,0.14349 0.35402,-0.11883,-0.1153,-0.09461,-0.072406,0.35856,-0.11581,-0.11631,-0.1042,-0.10218,0.35402,-0.11782,-0.11883,-0.11227,-0.11631,0.35603,-0.12287,-0.11934,-0.1148,-0.11782,0.35301,0.35704,-0.12035,-0.11782,-0.1148 0.42329,0.29018,0.39001,0.39001,0.39001,-0.042595,-0.10915,-0.10915,-0.10915,0.090514,-0.14243,-0.14243,-0.0093176,-0.1757,-0.1757,-0.1757,-0.1757,-0.075872,-0.1757,-0.075872,-0.0093176,-0.0093176,-0.14243,-0.075872,-0.042595 0.27358,0.28142,0.27554,0.28533,0.29317,0.31081,0.30297,0.30101,-0.063495,-0.13013,-0.14188,-0.13796,-0.136,-0.13796,-0.14384,-0.14776,-0.14188,-0.14188,-0.13796,-0.1458,-0.13992,-0.1458,-0.13992,-0.1458,-0.1458 -0.31543,-0.16305,0.10362,0.17981,0.2941,-0.35353,-0.086859,-0.12495,0.10362,0.256,-0.20115,-0.12495,0.027429,0.21791,0.21791,-0.23924,-0.048763,0.10362,0.065525,0.2941,-0.35353,0.10362,-0.20115,0.14172,0.10362 -0.39167,0.044137,0.071955,0.081228,0.05341,-0.39167,-0.0022254,0.081228,0.10905,0.081228,-0.42876,0.10905,0.099773,0.11832,0.099773,-0.39167,0.12759,0.11832,0.13686,0.12759,-0.36386,0.071955,0.14614,0.17395,0.11832 0.24267,0.25623,0.023787,-0.065317,-0.34812,0.25817,0.26011,0.014102,-0.061443,-0.30357,0.20006,0.26592,0.023787,-0.065317,-0.30745,-0.0052687,0.26979,0.06059,-0.044009,-0.36168,-0.036261,0.0044164,0.054779,-0.028513,-0.30745 -0.18332,-0.15636,-0.1294,0.086266,0.24802,-0.34506,-0.10244,-0.021567,-0.1294,0.43672,-0.31811,-0.075483,-0.075483,0.16714,0.30193,-0.18332,-0.10244,0.03235,0.086266,0.14018,-0.15636,-0.1294,0.14018,0.086266,0.38281 -0.39512,-0.39512,-0.39621,-0.39295,-0.39838,0.077208,0.078293,0.074314,0.075761,0.074314,0.077569,0.077569,0.077569,0.076846,0.075761,0.083356,0.082994,0.088058,0.089866,0.091313,0.17016,0.15822,0.14809,0.15099,0.14954 0.040869,0.15439,0.19223,0.040869,-0.28078,0.059789,0.13547,0.17331,-0.2051,-0.28078,0.097631,0.249,0.21115,-0.24294,-0.28078,0.19223,0.15439,0.23008,-0.072655,-0.35647,0.13547,-0.034814,0.19223,-0.26186,-0.24294 0.066115,0.13367,-0.10953,-0.18835,-0.22438,0.15169,0.15844,0.14943,-0.17934,-0.1951,0.22375,0.24176,0.26428,-0.18159,-0.20636,0.25302,0.25978,-0.17258,-0.1951,-0.20861,0.25978,0.26203,-0.16583,-0.19285,-0.20411 -0.34186,-0.34232,-0.34279,-0.34584,-0.34537,-0.33975,0.036813,0.037516,0.037281,0.036111,0.050864,0.050396,0.049927,0.048522,0.049225,0.16046,0.16046,0.15929,0.16233,0.16327,0.171,0.16912,0.16889,0.17006,0.17638 0.32017,0.30259,-0.1579,-0.1579,-0.16493,0.31138,-0.14208,-0.14736,-0.15263,-0.16845,0.30083,0.2938,-0.1456,-0.15263,-0.1579,0.30962,0.28677,-0.14384,-0.14736,-0.15263,0.13034,0.033676,-0.096387,-0.084084,-0.11748 -0.26249,-0.26351,0.12988,0.12948,0.12968,-0.26189,-0.26371,0.13008,0.13008,0.13049,-0.26209,-0.26229,0.12968,0.12948,0.13008,-0.26209,-0.26472,0.13797,0.12846,0.26135,-0.2633,0.13595,0.13999,0.13837,0.25508 -0.044906,-0.045259,-0.041728,-0.042081,-0.040315,-0.045259,-0.042787,-0.042787,-0.041375,-0.042081,-0.036784,-0.042081,-0.0442,-0.039962,-0.04314,-0.015242,-0.036784,-0.043493,-0.04314,-0.045965,-0.01277,-0.043493,-0.045965,-0.057266,0.97886 0.097001,0.14109,-0.021707,-0.10989,-0.04884,0.025776,0.025776,0.015602,-0.11667,-0.092931,0.029168,0.018993,-0.079364,-0.10989,-0.11328,0.035951,-0.025098,-0.092931,-0.1065,-0.11667,0.91439,0.01221,-0.10989,-0.1065,-0.065798 0.28615,0.28806,-0.066021,-0.14447,-0.14447,0.28672,0.28729,-0.066402,-0.14218,-0.14523,0.28863,0.29283,-0.14829,-0.14466,-0.14581,0.29436,-0.14409,-0.14848,-0.14543,-0.14657,0.29512,-0.14466,-0.14848,-0.14733,-0.14657 -0.17137,-0.17178,-0.17395,0.29121,0.28674,-0.17164,-0.17232,0.18942,0.28511,0.31249,-0.17178,-0.17096,-0.17124,0.18956,0.31073,-0.17164,-0.17083,-0.17164,0.11664,0.14958,-0.17083,-0.17056,-0.17191,0.11664,0.15432 -0.26588,-0.26588,-0.26701,-0.26588,-0.26363,-0.26814,-0.26814,-0.26588,-0.26475,0.15947,0.17413,0.1888,0.17413,0.15834,0.13859,0.13859,0.13803,0.13803,0.13972,0.1369,0.14254,0.13972,0.14254,0.1448,0.14085 -0.034749,-0.068184,-0.075551,0.0020854,-0.0018814,-0.031349,-0.074985,-0.074418,-0.040983,-0.047783,-0.017182,-0.04155,-0.059117,-0.049483,-0.042683,-0.0052816,-0.022282,-0.047783,-0.054584,-0.03985,-0.033616,-0.037583,-0.033049,-0.042683,0.97453 -0.10093,-0.15578,-0.01865,0.11848,0.25561,-0.32034,-0.073502,0.0087764,0.14591,0.22819,-0.21063,-0.26549,0.11848,0.25561,0.14591,-0.10093,-0.29291,0.0087764,0.28304,0.28304,-0.18321,-0.26549,-0.21063,0.063629,0.28304 -0.22342,-0.16878,-0.090728,-0.0095536,-0.017359,-0.20781,-0.19844,-0.090728,-0.0033094,0.32451,-0.20468,-0.19844,-0.067312,0.29797,0.29329,-0.18907,-0.16097,0.0091789,0.29017,0.28861,-0.11727,-0.16097,-0.0064315,0.29329,0.31827 0.29946,0.29871,0.29365,0.29253,0.29197,-0.084938,-0.085687,0.28233,0.27793,0.28401,-0.084469,-0.14532,-0.14579,-0.14673,-0.14691,-0.1471,-0.14776,-0.14729,-0.14794,-0.14813,-0.14832,-0.14841,-0.14841,-0.1486,-0.14878 0.31095,0.29874,-0.079919,-0.14099,-0.14972,0.30921,0.2935,0.23417,-0.13576,-0.14448,0.27256,0.18706,-0.017101,-0.15495,-0.18113,0.23766,-0.093879,-0.13576,-0.16717,-0.24744,0.16438,-0.093879,-0.15146,-0.15495,-0.25965 -0.17816,-0.17916,-0.18001,0.22599,0.22613,-0.17688,-0.17859,0.23495,0.22684,0.22329,-0.17603,-0.17688,-0.17375,0.22641,0.22314,-0.17646,-0.17674,-0.17745,0.22386,0.22386,-0.17646,-0.17646,-0.17873,0.22485,0.22243 -0.1509,-0.15123,-0.15156,-0.15221,-0.15221,-0.15058,-0.1509,-0.15123,-0.15123,-0.15156,-0.1496,-0.15004,-0.15036,-0.15069,-0.15101,0.043398,0.29165,0.29784,0.31488,0.31032,0.042638,0.043181,0.30543,0.31542,0.30055 0.30267,0.15495,0.15683,0.11449,-0.24023,0.23587,0.18694,-0.25058,-0.25811,-0.21106,0.28385,0.21611,-0.12544,-0.15743,-0.25717,0.12672,0.1446,-0.13297,-0.15837,-0.19789,0.16718,0.19917,0.12202,-0.20918,-0.21295 -0.33545,0.032368,0.06915,0.032368,0.12432,-0.28028,-0.0044139,0.050759,0.10593,0.14271,-0.46419,0.06915,0.06915,0.087541,0.1795,-0.40902,0.013977,0.14271,0.12432,0.1795,-0.40902,-0.022805,0.1795,0.16111,0.16111 -0.33487,0.062883,0.21441,0.10076,0.11971,-0.4864,-0.088643,0.11971,0.15759,0.11971,-0.33487,-0.069702,0.11971,0.15759,0.13865,-0.27805,0.006061,0.10076,0.19547,0.043943,-0.41064,-0.01288,0.11971,0.13865,0.10076 -0.35312,-0.28915,-0.24117,-0.19319,-0.11323,-0.22518,-0.24117,-0.097235,-0.033265,0.030706,-0.1772,-0.081243,-0.049257,0.046699,0.062691,-0.017272,0.094677,0.078684,0.17464,0.23861,0.17464,0.20663,0.28659,0.38254,0.33457 0.39568,0.34856,-0.12578,-0.13206,-0.13206,0.38312,0.28888,-0.10693,-0.10379,-0.12578,0.35799,-0.066094,-0.12578,-0.12264,-0.14463,0.2983,-0.11636,-0.12264,-0.13206,-0.13206,0.094115,-0.10693,-0.12264,-0.12892,-0.1195 -0.25712,-0.14999,-0.096421,0.11785,0.33212,-0.17677,-0.042854,-0.01607,0.091064,0.38568,-0.20356,-0.1232,-0.042854,0.064281,0.43925,-0.23034,-0.069637,-0.23034,-0.096421,0.38568,-0.1232,-0.042854,-0.069637,-0.042854,0.1982 0.17359,0.13707,0.2101,0.084915,0.069267,0.20488,0.20488,0.12143,0.043188,0.26747,0.14229,0.13186,0.084915,0.11621,0.33528,-0.1811,-0.20718,-0.1811,-0.22282,-0.24369,-0.26455,-0.26977,-0.23326,-0.25412,-0.26977 -0.20892,-0.26508,-0.29317,-0.37741,-0.26508,-0.20892,0.015725,0.015725,-0.040437,-0.068518,-0.012356,-0.012356,-0.068518,-0.040437,-0.040437,0.043806,0.15613,-0.040437,0.071887,0.15613,0.3527,0.32462,0.38078,0.15613,0.26845 -0.046221,-0.045719,-0.040695,-0.041197,-0.046221,-0.041197,-0.03969,-0.037178,-0.03768,-0.043207,-0.040695,-0.037178,-0.03768,-0.037178,-0.040192,-0.042202,-0.038685,-0.03768,-0.039188,-0.045719,-0.044714,-0.040695,-0.038183,-0.040695,0.97969 -0.15065,-0.14905,-0.14506,0.26179,0.26099,-0.15384,-0.14905,-0.14746,0.26179,0.25381,-0.15145,-0.15464,-0.14666,0.27455,0.26897,-0.15384,-0.14905,-0.14427,0.27455,0.27057,-0.15384,-0.15065,-0.14267,-0.15703,0.27216 0.19731,0.20441,-0.1596,-0.16196,-0.17499,0.19968,0.19021,-0.15664,-0.16551,-0.18031,0.19672,0.18311,-0.16315,-0.17143,-0.18446,0.20382,0.18784,-0.18031,-0.18209,-0.18978,0.31273,0.20915,0.35475,-0.18031,-0.18919 0.016618,-0.048295,-0.048295,-0.02233,-0.048295,-0.21707,-0.16514,-0.12619,-0.20409,-0.17812,-0.1911,-0.12619,-0.16514,-0.16514,-0.12619,-0.02233,-0.02233,0.016618,0.016618,0.0036351,0.31522,0.36715,0.45803,0.45803,0.22434 0.93018,0.032943,0.048054,0.029165,0.034832,0.034832,0.038609,0.036721,0.014054,0.00083112,0.010276,0.0064979,-0.021836,-0.048281,-0.089837,-0.070948,-0.097393,-0.10306,-0.099282,-0.095504,-0.12573,-0.11817,-0.1125,-0.11628,-0.11817 -0.38902,-0.40476,-0.39295,-0.38902,-0.41657,0.083282,0.07541,0.067538,0.063603,0.063603,0.1069,0.1069,0.12658,0.10296,0.10296,0.11083,0.11477,0.11477,0.1187,0.11477,0.10296,0.10296,0.1069,0.087217,0.1187 -0.043197,-0.096828,-0.055694,-0.047362,-0.035907,-0.040593,-0.09058,-0.057256,-0.0458,-0.041114,-0.010914,-0.07548,-0.061421,-0.059859,-0.044238,0.030742,-0.0458,-0.040593,-0.059859,0.042718,0.040114,-0.054131,-0.056735,-0.0156,0.96539 0.31353,0.37429,0.28315,0.22239,0.28315,0.19201,0.10086,-0.020659,0.16163,0.10086,0.10086,-0.08142,-0.05104,-0.08142,-0.05104,-0.23332,-0.14218,-0.1118,-0.14218,0.0097218,-0.14218,-0.23332,-0.23332,-0.23332,-0.38523 0.189,-0.14979,-0.15397,-0.15954,-0.15026,0.19457,0.19271,-0.15907,-0.1549,-0.15954,0.33566,0.32684,-0.12102,-0.12009,-0.15722,0.32545,0.3338,-0.12288,-0.11916,-0.13541,0.3584,0.002896,-0.12102,-0.11452,-0.16093 -0.038637,-0.030872,-0.036774,-0.047644,-0.059757,-0.036774,-0.035842,-0.039569,-0.046402,-0.057272,-0.035221,-0.036152,-0.040811,-0.043606,-0.050129,-0.032736,-0.033978,-0.040501,-0.043606,-0.046712,-0.032115,-0.033668,-0.039258,-0.041122,0.97916 0.23507,-0.089985,-0.11103,-0.12506,-0.13442,0.26079,-0.064262,-0.10869,-0.12506,-0.13442,0.3707,-0.047892,-0.11103,-0.12506,-0.12974,0.40811,-0.064262,-0.10402,-0.12974,-0.12506,0.39642,0.41747,-0.11103,-0.12506,-0.12272 0.13674,0.15422,0.15983,0.36646,0.35585,0.14423,0.14298,0.16233,0.35273,0.24286,0.14423,-0.16415,-0.16603,-0.17165,-0.17789,-0.15604,-0.16353,-0.17414,-0.1654,-0.18101,-0.16415,-0.16977,-0.17352,-0.17227,-0.16291 0.060947,0.073071,0.093276,0.12379,0.12217,0.061756,0.079132,0.093478,0.096105,0.098933,0.078526,0.077516,0.13712,0.1353,0.094892,0.094892,0.1353,0.077112,0.12621,0.12823,-0.3967,-0.39751,-0.39792,-0.39751,-0.39812 0.31468,-0.039599,-0.02201,-0.032061,-0.13005,0.33729,-0.044624,-0.0597,-0.054674,-0.099901,0.35488,-0.0798,-0.064725,-0.06975,-0.06975,0.40765,-0.10241,-0.0798,-0.084826,-0.089851,0.44785,-0.10241,-0.11498,-0.11246,-0.40895 0.20241,0.12306,0.055046,-0.025059,-0.084761,0.21601,0.13213,0.039176,-0.025815,-0.078715,0.19107,0.13515,0.025573,-0.042441,-0.47773,0.19032,0.11021,0.02255,-0.044708,-0.48151,0.19183,0.12608,0.018016,-0.029594,-0.48831 0.33001,0.32113,0.33889,0.37886,0.36406,-0.068146,-0.040023,-0.045944,-0.069626,0.36998,-0.10219,-0.082947,-0.084428,-0.13327,-0.11403,-0.13475,-0.081467,-0.15103,-0.15251,-0.10663,-0.1614,-0.15251,-0.15843,-0.14511,-0.11847 0.051665,0.089913,0.12816,0.17229,-0.3779,0.039896,0.07226,0.089913,0.14287,-0.41909,0.051665,0.078145,0.11934,0.14287,-0.40143,0.060491,0.092856,0.11934,0.11934,-0.40143,0.054607,0.086971,0.11639,0.14287,-0.37201 -0.14915,-0.14932,-0.14865,-0.14983,0.26175,-0.14915,-0.14815,-0.15016,0.27031,0.26863,-0.15016,-0.14983,-0.1515,0.26679,0.27031,-0.15016,-0.14966,-0.14983,0.26528,0.26695,-0.1505,-0.14983,-0.15402,0.26494,0.26494 0.34134,-0.11526,-0.15287,-0.13215,-0.085334,0.30757,-0.089171,-0.14289,-0.13061,-0.10452,0.30067,-0.089171,-0.13752,-0.13368,-0.090706,0.35131,-0.093776,-0.081497,-0.10145,-0.023943,0.60532,-0.04543,-0.072289,-0.062313,-0.021641 -0.090351,-0.1807,-0.1807,0.067763,0.42917,-0.13553,-0.13553,-0.15811,-0.022588,0.29364,-0.11294,-0.090351,-0.11294,0.022588,0.45175,-0.067763,-0.13553,-0.13553,-0.045175,0.3614,-0.067763,-0.1807,-0.067763,-0.067763,0.3614 0.15026,0.1494,0.14991,0.1494,0.14905,0.14991,0.14991,0.1494,0.14991,0.14991,0.15095,0.15043,0.14991,0.15026,0.14957,0.15163,-0.26865,-0.26969,-0.26039,-0.26091,-0.27038,-0.26814,-0.27055,-0.26934,-0.26177 0.091832,0.34003,0.15388,0.27798,0.1849,0.21593,0.12286,0.21593,0.12286,0.15388,-0.032265,0.1849,-0.032265,-0.032265,0.091832,-0.24943,-0.12534,-0.063289,-0.032265,-0.12534,-0.24943,-0.21841,-0.28046,-0.40456,-0.31148 -0.04632,-0.037441,-0.028095,-0.042114,-0.026226,-0.044918,-0.041179,-0.042114,-0.040245,-0.030431,-0.041179,-0.038843,-0.040712,-0.041179,-0.041179,-0.045853,-0.041179,-0.041647,-0.040245,-0.041647,-0.050526,-0.044451,-0.043049,-0.048656,0.97943 -0.066023,-0.032601,-0.039051,-0.045501,-0.049605,-0.050191,-0.029669,-0.035533,-0.043155,-0.039051,-0.060746,-0.029083,-0.028496,-0.044328,-0.041396,-0.044328,-0.033187,-0.03436,-0.039051,-0.043155,-0.035533,-0.039051,-0.035533,-0.040223,0.97885 -0.052081,-0.071466,-0.090851,-0.08762,-0.097313,0.36147,-0.081159,-0.090851,-0.08762,-0.10054,0.49716,-0.071466,-0.090851,-0.097313,-0.10701,0.47778,-0.058543,-0.10054,-0.097313,-0.094082,0.48101,-0.061774,-0.071466,-0.097313,-0.11024 0.2232,0.31183,-0.11694,-0.12772,-0.15647,0.23398,0.32621,-0.10257,-0.14928,-0.15407,0.26752,0.32261,-0.098978,-0.15288,-0.15407,0.30585,-0.11335,-0.14569,-0.15168,-0.15288,0.31782,-0.091792,-0.14329,-0.14449,-0.15288 -0.26826,-0.26957,-0.26695,-0.26552,-0.26504,-0.2679,0.1704,-0.26492,-0.26564,-0.26552,0.15087,0.1511,0.14848,0.1467,0.1455,0.15087,0.15075,0.14991,0.14574,0.14503,0.15277,0.15087,0.14991,0.1455,0.14491 0.33975,0.3437,-0.13753,-0.13878,-0.14085,0.34516,0.34329,-0.14002,-0.13961,-0.13961,0.34536,0.0041806,-0.13691,-0.13836,-0.14085,0.34744,0.0025184,-0.13753,-0.13919,-0.13794,0.0039728,0.0079208,-0.14002,-0.13961,-0.13649 0.14666,0.15282,0.19745,-0.18276,-0.18424,0.15049,0.14432,0.19512,-0.18339,-0.18594,0.32178,0.26971,-0.18382,-0.18616,-0.18807,0.32497,0.25611,-0.18573,-0.18807,-0.19019,0.13476,0.12987,-0.18658,-0.18871,-0.19041 -0.26039,-0.22709,-0.21044,-0.21044,-0.24374,-0.16049,-0.16049,-0.26039,-0.19379,-0.17714,-0.093899,-0.093899,0.12253,0.05594,0.05594,0.23908,0.22243,0.27237,0.35562,0.20578,0.15583,0.32232,0.072588,0.10589,0.10589 -0.10297,-0.10042,-0.092788,-0.11145,0.39678,-0.10127,-0.097031,-0.096182,-0.092788,0.40017,-0.10297,-0.10467,-0.09194,-0.10467,0.40272,-0.10042,-0.10127,-0.090243,-0.11655,0.39932,-0.10127,-0.10127,-0.092788,-0.096182,0.40017 -0.27767,-0.29397,-0.28124,-0.11539,-0.27767,-0.018129,-0.29397,-0.2887,-0.020166,-0.018299,0.027193,0.026684,0.025666,0.025666,0.025156,0.039245,0.040264,0.039755,0.039245,0.039245,0.30863,0.31084,0.31288,0.31186,0.31288 0.36677,0.37323,-0.11671,-0.10975,-0.11124,0.35284,-0.11373,-0.1187,-0.11472,-0.10577,0.35732,-0.11572,-0.11472,-0.10975,-0.10477,0.36329,-0.11025,-0.11472,-0.1187,-0.10328,0.31951,-0.11273,-0.11771,-0.11771,-0.10229 0.041556,-0.095656,-0.11526,-0.23287,-0.31127,0.17877,0.080759,-0.056453,-0.17406,-0.35048,0.15917,0.11996,0.041556,-0.21327,-0.25247,0.37478,0.17877,0.13956,-0.056453,-0.19366,0.31598,0.31598,0.17877,0.041556,-0.11526 -0.41444,-0.41444,-0.37223,-0.34058,-0.41444,0.039249,0.018147,0.0075966,0.039249,0.12366,0.092004,0.092004,0.060351,0.12366,0.11311,0.13421,0.18696,0.10255,0.11311,0.10255,0.13421,0.081453,0.13421,0.12366,0.13421 -0.1787,-0.16537,0.050677,-0.0026672,0.22405,-0.16803,-0.16537,-0.12536,0.29873,0.27472,-0.17604,-0.18404,-0.098687,0.12536,0.56545,-0.18137,-0.18137,-0.034674,0.12803,0.21871,-0.18404,-0.18404,-0.10669,0.11736,0.13336 -0.3094,-0.1812,-0.35214,-0.3735,-0.3735,-0.052991,-0.11709,-0.052991,-0.095726,-0.031624,0.13932,0.032479,0.032479,0.032479,0.13932,0.032479,0.13932,0.032479,0.032479,0.032479,0.35299,0.26752,0.35299,0.13932,0.18205 -0.24762,-0.24918,0.13624,0.17867,0.17568,-0.24696,-0.24762,0.13813,0.17701,0.17889,-0.24718,-0.24785,0.13868,0.17867,0.17878,-0.2474,-0.24829,0.17701,0.21556,0.23517,-0.24674,-0.12388,0.2293,0.0078435,0.007068 -0.14781,-0.14942,-0.15198,0.28818,0.2869,-0.14781,-0.1491,-0.15134,0.28978,0.29842,-0.14781,-0.1491,-0.15102,0.24432,0.24816,-0.14781,-0.14813,-0.14942,0.24688,0.2456,-0.14813,-0.14717,-0.15198,-0.15646,0.24624 -0.085928,-0.085928,-0.084508,-0.085928,-0.085928,-0.083087,-0.084863,-0.083442,-0.084508,-0.083442,-0.36222,-0.081667,-0.080246,-0.082022,-0.083087,-0.07634,-0.075985,-0.078115,-0.077405,-0.079181,0.38747,0.38533,0.38533,0.3832,0.38249 -0.11712,-0.11612,-0.11662,-0.10581,0.40307,-0.095248,-0.11411,-0.11662,-0.11788,0.3993,-0.090471,-0.089214,-0.089214,-0.10128,0.39955,-0.091729,-0.088711,-0.089214,-0.090723,0.39729,-0.098768,-0.089466,-0.088963,-0.089969,0.39804 0.14747,0.3027,-0.2018,-0.0077615,-0.2018,0.18628,0.3027,0.10866,-0.12418,-0.16299,0.22508,-0.0077615,-0.085377,-0.12418,-0.24061,0.26389,0.031046,0.031046,-0.27941,-0.31822,0.22508,0.34151,-0.046569,-0.12418,-0.24061 0.44656,0.44377,0.45867,0.46165,0.065025,-0.091678,-0.091678,-0.09287,-0.09287,-0.093665,-0.093267,-0.094062,-0.094062,-0.094062,-0.093665,-0.093665,-0.094856,-0.094459,-0.095253,-0.094062,-0.094062,-0.094062,-0.093665,-0.094658,-0.095055 -0.29487,-0.17549,-0.085955,0.0035815,0.18265,-0.20534,-0.17549,-0.1158,0.15281,0.18265,-0.26503,-0.32472,0.12296,0.093118,0.2125,-0.17549,-0.17549,0.15281,0.12296,0.27219,-0.29487,0.033427,0.24235,0.27219,0.24235 -0.023241,-0.04099,-0.041924,-0.04099,-0.041924,-0.040056,-0.039589,-0.042391,-0.041457,-0.042391,-0.037253,-0.042391,-0.042858,-0.042391,-0.044259,-0.040523,-0.041924,-0.041924,-0.043792,-0.049864,-0.034451,-0.03772,-0.042391,-0.042858,0.97955 0.94709,0.042611,-0.010988,0.0091118,-0.014338,0.035911,-0.064586,-0.077986,0.049311,-0.0076378,0.049311,-0.11484,-0.088036,-0.014338,-0.061237,-0.024387,-0.047837,-0.077986,-0.098086,-0.084686,-0.071286,-0.098086,0.015812,-0.088036,-0.10479 -0.51351,-0.11913,0.12112,0.093925,0.080326,-0.38658,0.098458,0.080326,0.13472,0.14379,-0.33672,-0.042067,0.048594,0.15739,0.19819,-0.31858,0.021396,0.062194,0.20272,0.18912,-0.20526,-0.13273,0.089392,0.15285,0.18005 0.32189,0.32189,0.36694,0.41843,0.32618,0.25109,-0.081438,-0.059984,-0.072857,0.0086673,-0.085729,-0.10289,-0.09002,-0.09002,-0.072857,-0.10075,-0.13936,-0.098601,-0.059984,-0.051403,-0.26165,-0.27452,-0.10289,-0.029949,-0.2402 0.97521,-0.030697,-0.040023,-0.056011,-0.075996,-0.045352,-0.048017,-0.056011,-0.062673,-0.069334,-0.034694,-0.046685,-0.062673,-0.052014,-0.056011,-0.042688,-0.029364,-0.050682,-0.018706,-0.0093796,-0.024035,-0.034694,-0.0080472,-0.024035,0.0026114 -0.1736,-0.14664,-0.1736,-0.1736,-0.011861,-0.14664,-0.11969,-0.22751,-0.038818,0.069009,-0.20056,-0.14664,-0.092731,0.015096,-0.1736,-0.011861,-0.011861,-0.038818,-0.011861,-0.011861,0.4464,0.4464,0.31162,0.28466,0.33858 0.18477,0.13099,0.070044,-0.094883,-0.19958,0.17474,0.12956,0.014112,-0.0662,-0.21822,0.3497,0.16255,0.04638,-0.071937,-0.17089,0.34827,-0.062615,0.042078,-0.081259,-0.18093,0.24573,-0.054727,-0.0030977,-0.08341,-0.61117 0.19252,0.20054,0.20807,-0.22482,-0.22281,0.16142,0.15941,0.17295,-0.22332,-0.22532,0.11126,0.081662,0.16694,-0.2193,-0.22281,0.1248,0.22362,-0.21529,-0.22081,-0.22683,0.188,0.18098,0.27227,-0.2188,-0.22432 -0.1932,-0.1932,-0.1932,-0.17315,-0.21324,-0.07295,-0.1932,-0.07295,-0.13307,-0.1932,0.067338,-0.07295,-0.052908,-0.092991,-0.21324,0.30783,0.30783,0.10742,0.0072148,-0.07295,0.36795,0.34791,0.388,0.1475,0.087379 0.43979,0.35367,0.43979,0.26755,0.35367,-0.13435,0.066601,-0.019521,-0.048228,-0.048228,-0.10564,0.0091863,-0.22047,-0.076935,-0.19176,-0.16306,-0.076935,-0.13435,-0.019521,-0.048228,-0.10564,-0.24918,-0.16306,-0.076935,-0.048228 -0.16513,-0.16213,-0.17312,0.18338,0.19137,-0.16213,-0.16912,-0.17711,0.17939,0.1754,-0.16313,-0.17112,-0.17711,0.16541,0.18538,-0.20507,-0.16513,-0.16912,0.18338,0.30621,-0.19309,-0.1851,0.28325,0.28424,0.30022 0.29686,0.28098,-0.12174,-0.13076,-0.14429,0.29862,0.28254,-0.12801,-0.13194,-0.14174,0.29784,0.28137,-0.13154,-0.13978,-0.14154,0.29627,-0.14115,-0.14076,-0.14174,-0.14037,0.29666,-0.14115,-0.13997,-0.13625,-0.13841 0.26056,0.11465,0.041689,-0.093801,-0.66703,0.20845,0.11465,0.010422,-0.093801,-0.3752,0.21887,0.12507,0.010422,-0.11465,-0.11465,0.19802,0.10422,0.010422,-0.020845,-0.14591,0.21887,0.16676,0.010422,-0.062534,-0.12507 0.48397,0.37992,0.20156,-0.021404,-0.14032,0.24615,0.082644,-0.065996,-0.12545,-0.21464,0.3056,-0.0065402,-0.065996,-0.19977,-0.28896,0.12724,-0.021404,-0.065996,-0.15518,-0.25923,0.17183,-0.0065402,-0.0065402,-0.15518,-0.19977 0.28769,0.1905,0.24755,0.2074,0.12711,0.47574,0.26868,0.21163,0.1419,0.057387,-0.025017,-0.05671,-0.19194,-0.20461,-0.13911,-0.19828,-0.19405,-0.21518,-0.21095,-0.19405,-0.0038877,-0.12432,-0.12432,-0.16658,-0.16658 -0.17484,-0.17716,-0.17832,0.34247,0.18299,-0.1644,-0.17542,-0.17542,0.27984,0.24562,-0.17832,-0.17426,-0.176,0.23286,0.18531,-0.17948,-0.1702,-0.17078,0.23344,0.18473,-0.1818,-0.16962,0.16849,0.21952,0.17081 -0.037242,-0.043952,-0.043952,-0.040597,-0.023821,-0.039758,-0.042274,-0.043952,-0.039758,-0.033887,-0.039758,-0.043952,-0.038081,-0.042274,-0.056534,-0.033048,-0.038081,-0.039758,-0.042274,-0.053179,-0.037242,-0.042274,-0.043113,-0.040597,0.97936 -0.28062,-0.042439,0.022519,0.044171,0.087476,-0.32392,-0.12905,0.0008661,0.10913,0.10913,-0.38888,-0.020786,0.23904,0.15243,0.13078,-0.43218,-0.085744,0.17409,0.17409,0.17409,-0.32392,0.0008661,0.17409,0.21739,0.21739 0.36113,0.35162,0.34591,0.35605,0.35986,0.35732,-0.10306,-0.10433,-0.09545,-0.10179,-0.087841,-0.091645,-0.1056,-0.10877,-0.1056,-0.1094,-0.12082,-0.12906,-0.12589,-0.11574,-0.11891,-0.12589,-0.12779,-0.12779,-0.12652 -0.19257,-0.19351,-0.19327,0.20386,0.21908,-0.20334,-0.19257,-0.19421,0.19964,0.2172,-0.18812,-0.18812,-0.19327,0.20971,0.21158,-0.18906,-0.18672,0.20268,0.21392,0.20503,-0.19327,-0.18906,0.1966,0.21041,0.20737 0.15577,0.22386,0.22219,-0.22712,-0.2221,0.1407,0.14907,-0.2221,-0.22377,-0.22377,0.15633,0.21996,0.24228,-0.22601,-0.22266,0.15968,0.16023,0.16526,-0.22601,-0.22042,0.14907,0.15688,0.16135,-0.22656,-0.2221 -0.098366,-0.1004,-0.095107,-0.10611,0.41611,-0.088182,-0.091034,-0.10203,-0.10611,0.40959,-0.10122,-0.092663,-0.1004,-0.10325,0.39982,-0.093478,-0.096329,-0.10488,-0.10611,0.38801,-0.098773,-0.10855,-0.10285,-0.10285,0.38515 -0.018177,-0.021493,-0.034761,-0.012648,-0.26363,-0.018177,-0.013754,-0.015965,-0.028127,-0.24815,-0.020388,-0.012648,-0.0082259,-0.031444,-0.0038034,-0.019282,-0.023705,-0.02481,-0.019282,-0.0071202,0.92714,-0.034761,-0.021493,-0.01486,-0.010437 -0.21531,-0.18461,-0.19484,-0.19484,-0.20508,-0.20508,-0.21531,-0.21531,-0.17438,-0.18461,0.020058,-0.03111,-0.03111,0.030291,0.020058,0.10193,0.10193,0.13263,0.16333,0.17356,0.51126,0.43963,0.18379,0.081458,0.091692 0.17443,0.1418,0.1418,0.13364,-0.20086,0.15403,0.16627,0.12956,0.11732,-0.25797,0.14587,0.13772,0.17851,-0.18047,-0.3518,0.101,0.092844,0.15811,-0.28245,-0.35995,0.092844,0.10508,0.10916,-0.33956,-0.30692 0.13806,-0.018685,0.22342,-0.20492,-0.22509,0.18772,0.0045937,0.20945,-0.21423,-0.22664,0.19858,0.18772,0.20634,-0.22354,-0.22975,0.21721,0.2079,0.21255,-0.20957,-0.22664,0.20169,0.20324,-0.18629,-0.20492,-0.2282 -0.35714,-0.20159,-0.2327,-0.17048,-0.24826,-0.20159,-0.15493,-0.077153,-0.077153,-0.13937,-0.046043,-0.10826,0.0006222,0.047287,0.0006222,0.23395,0.031732,-0.030488,0.14062,0.23395,0.35839,0.28061,0.047287,0.26506,0.40505 -0.044072,-0.044293,-0.044404,-0.04374,-0.04374,-0.04385,-0.044293,-0.044625,-0.044072,-0.043961,-0.043961,-0.043961,-0.044072,-0.04385,-0.044072,-0.043519,-0.044846,-0.043519,-0.04374,-0.044735,-0.04385,-0.045178,0.036461,-0.042855,0.97675 -0.32058,-0.42856,-0.40456,-0.38057,-0.42856,0.039353,0.075346,0.039353,0.087344,0.039353,0.11134,0.075346,0.11134,0.12334,0.087344,0.075346,0.15933,0.099341,0.039353,0.13533,0.12334,0.13533,0.12334,0.15933,0.12334 0.45129,0.2503,0.19355,0.1397,0.047254,0.45389,0.25089,0.19477,0.142,0.1152,-0.14899,-0.14899,-0.14929,-0.14925,-0.14879,-0.14941,-0.14933,-0.14946,-0.14929,-0.14912,-0.1495,-0.14933,-0.14946,-0.14929,-0.14933 0.20687,0.20712,0.22965,-0.18995,-0.18874,0.19743,0.21874,-0.18898,-0.18947,-0.19068,0.20203,0.21148,-0.18923,-0.1902,-0.19238,0.19646,0.20857,-0.1868,-0.19383,-0.19722,0.19985,0.20736,0.21099,-0.20086,-0.19819 -0.22226,-0.2158,-0.21321,-0.20804,-0.23972,-0.23131,-0.23455,-0.22226,-0.2145,-0.24942,0.26201,0.24714,0.22516,0.037009,0.034423,0.042182,0.24779,0.22387,0.047354,0.038302,0.27818,0.2465,0.21999,0.055113,0.046061 0.26794,0.23872,0.27378,0.19637,0.099965,0.010867,0.22704,0.23726,0.21243,0.080977,-0.0037392,0.048843,-0.16295,0.23872,0.1876,-0.22575,-0.20385,-0.17463,-0.21553,-0.198,-0.2316,-0.23452,-0.22429,-0.22429,-0.22137 -0.16779,-0.16927,-0.16964,0.21264,0.18594,-0.16927,-0.16927,-0.17706,0.21041,0.19299,-0.28755,-0.17112,-0.18225,0.20596,0.20967,-0.29089,-0.17372,0.20596,0.20708,0.21152,-0.17149,-0.16816,0.20819,0.21264,0.20448 0.11894,0.22301,0.40142,0.5055,0.26762,0.13381,0.17841,0.074338,0.044603,0.19328,-0.23788,-0.14868,-0.044603,-0.014868,-0.11894,-0.14868,-0.20815,-0.14868,-0.16354,-0.089205,-0.16354,-0.14868,-0.19328,-0.17841,-0.13381 0.36108,0.23854,0.1977,-0.047382,-0.16992,0.27939,0.034311,-0.088229,-0.047382,-0.21077,0.27939,-0.047382,-0.088229,-0.088229,-0.29246,0.15685,0.27939,-0.047382,-0.33331,-0.16992,0.1977,0.034311,-0.047382,-0.0065355,-0.37416 0.19951,0.20003,-0.18885,-0.19171,-0.19119,0.20029,0.19821,-0.18937,-0.19015,-0.19274,0.19925,0.20314,-0.193,-0.19041,-0.19274,0.19743,0.2021,0.24361,-0.19196,-0.19171,0.19691,0.20444,0.24854,-0.19404,-0.1956 -0.21638,-0.21533,0.11975,0.12158,0.12289,-0.21323,-0.28171,0.1187,0.1187,0.12631,-0.21349,-0.21192,0.11738,0.12289,0.268,-0.21192,-0.21113,0.24727,0.24674,0.25908,-0.21087,-0.21192,-0.21008,0.17301,0.24569 -0.20984,-0.1376,0.18232,0.19264,0.16856,-0.2064,-0.15824,0.16168,0.25456,0.21672,-0.21328,-0.172,0.0688,0.28208,0.25112,-0.24768,-0.20296,-0.11352,0.16856,0.28552,-0.22016,-0.22016,-0.19952,-0.11696,0.18576 -0.18323,-0.17207,-0.18494,0.19864,0.24326,-0.19353,-0.17808,-0.18151,0.16517,0.23983,-0.21755,-0.19524,-0.1798,0.15659,0.16432,-0.19867,-0.17808,0.21666,0.18062,0.22868,-0.21584,-0.20211,0.22696,0.22696,0.23297 0.33916,0.2841,0.20279,0.16043,0.091821,0.32561,0.27902,0.20109,0.15874,0.082504,-0.1767,-0.18178,-0.15891,0.16297,0.093515,-0.19025,-0.18432,-0.17839,-0.18093,-0.18347,-0.19364,-0.19364,-0.18856,-0.18517,-0.18601 -0.07306,-0.077683,-0.091089,-0.13917,-0.14888,-0.076296,-0.084617,-0.085542,-0.094788,-0.14795,-0.08323,-0.081844,-0.083693,-0.083693,-0.081844,-0.08508,-0.08323,-0.084155,-0.082306,-0.084617,0.30001,0.68371,0.32821,0.32821,0.21263 -0.15326,-0.096786,-0.062034,0.17689,0.33328,-0.17064,-0.16629,0.063945,0.32893,0.25508,-0.15326,-0.1967,-0.16195,0.14648,0.4636,-0.17932,-0.17932,-0.14892,0.029192,0.29418,-0.18367,-0.17064,-0.12719,-0.031625,0.09001 -0.14985,-0.1488,-0.14985,-0.15037,0.24479,-0.15142,-0.14985,-0.14775,0.26526,0.25791,-0.15037,-0.14932,-0.15037,0.2726,0.27208,-0.15037,-0.1488,-0.15195,0.27103,0.27155,-0.14932,-0.14932,-0.15142,0.27234,0.27155 -0.12599,-0.15153,-0.15156,-0.15169,0.28148,-0.15128,-0.15153,-0.1516,0.26536,0.26574,-0.15125,-0.15153,-0.15147,0.26492,0.26409,-0.15163,-0.15141,-0.15169,0.26223,0.2639,-0.15141,-0.15166,-0.15172,0.26662,0.2646 0.26779,0.10226,0.10226,-0.13684,-0.50468,0.10226,0.12065,0.10226,-0.026485,-0.50468,0.21261,0.13905,0.10226,-0.081662,-0.35755,0.12065,0.028692,0.12065,-0.026485,-0.19202,0.13905,0.15744,0.12065,-0.026485,-0.081662 0.28151,0.42711,0.40285,0.42711,0.23297,-0.033975,0.087364,-0.058243,-0.058243,0.063096,-0.0097071,-0.13105,-0.082511,-0.10678,-0.082511,-0.17958,-0.058243,-0.17958,-0.058243,0.087364,-0.22812,-0.15531,-0.20385,-0.13105,-0.25239 -0.18654,-0.24725,-0.29658,-0.27381,-0.18654,-0.34971,-0.29279,-0.20172,0.079078,-0.17895,-0.16377,0.071489,0.15117,0.17394,0.17774,0.12082,0.13979,0.17774,0.18533,0.17774,0.17394,0.17774,0.2043,0.17394,0.19291 -0.22507,-0.22778,0.17447,0.17701,0.17803,-0.22575,-0.22643,0.17549,0.17769,0.17837,-0.22524,-0.22405,0.17599,0.17803,0.17837,-0.22575,-0.22524,-0.22507,0.17837,0.17837,-0.22694,-0.22456,0.17498,0.17837,0.17837 0.95714,0.026559,-0.032045,-0.068753,-0.094513,0.00015456,-0.0037094,-0.044925,-0.046213,-0.078413,0.00015456,-0.033333,0.0065946,-0.060381,-0.086141,-0.052653,-0.030757,0.064555,-0.085497,-0.10417,-0.043637,-0.014657,0.010459,-0.078413,-0.10739 0.1912,0.22975,-0.19428,-0.078639,-0.34848,0.1912,0.15265,-0.11719,-0.078639,-0.078639,0.42249,0.075555,-0.11719,-0.0015419,-0.27138,0.037006,0.15265,0.037006,-0.15574,-0.15574,0.42249,0.1912,-0.078639,-0.19428,-0.23283 0.17403,0.15838,0.15838,0.033179,0.04883,0.23664,0.080131,0.12708,0.06448,0.033179,0.14273,0.12708,0.095781,0.017529,0.06448,0.06448,0.04883,0.095781,0.12708,0.017529,-0.45199,-0.38939,-0.38939,-0.40504,-0.27983 -0.2122,-0.19363,-0.19363,0.010647,0.19944,-0.19363,-0.18125,-0.18125,0.16849,0.22111,-0.19363,-0.2122,-0.088394,0.1654,0.23349,-0.20291,-0.17196,0.035407,0.23968,0.23968,-0.19363,-0.14101,0.33563,0.26754,0.24277 0.090952,0.21276,-0.071462,-0.11207,-0.23388,0.13156,0.21276,0.21276,-0.11207,-0.43689,0.13156,0.37518,0.0097448,-0.11207,-0.39629,0.21276,0.050348,0.050348,0.0097448,-0.23388,0.13156,0.21276,0.0097448,-0.11207,-0.23388 -0.44396,0.012163,0.17941,0.11859,0.11859,-0.35273,-0.033449,0.1642,0.10339,0.042571,-0.26151,-0.033449,0.22502,0.11859,0.11859,-0.39834,-0.063857,0.13379,0.11859,0.11859,-0.38314,-0.033449,0.088183,0.11859,0.22502 0.37747,0.44211,0.28052,0.2482,0.21588,-0.010342,0.18357,0.11893,0.054294,0.086612,0.021976,-0.04266,-0.04266,-0.1073,-0.1073,-0.04266,-0.17193,-0.17193,0.021976,-0.13961,-0.26889,-0.26889,-0.26889,-0.26889,-0.13961 -0.26146,-0.26638,0.1344,0.13989,0.18583,-0.26146,-0.26493,0.13786,0.13786,0.18438,-0.26262,-0.26551,0.12428,0.12775,0.18178,-0.26406,0.10608,0.12862,0.18698,0.13382,-0.26724,-0.27187,0.14075,0.19883,0.13642 -0.068068,-0.070469,-0.062664,-0.066567,-0.074071,-0.066267,-0.062664,-0.062664,-0.066867,-0.075872,-0.068368,-0.061764,-0.064766,-0.064766,-0.07287,-0.060563,-0.061764,-0.065366,0.15676,0.15616,-0.060563,-0.063265,-0.065066,0.15916,0.9132 -0.053031,0.020275,-0.054104,-0.059646,-0.053746,-0.053746,-0.050528,-0.047309,-0.049097,-0.047488,-0.06054,-0.059646,-0.050885,0.019918,0.020275,-0.053031,-0.062149,-0.062328,0.020275,0.01956,-0.051958,-0.066083,-0.065725,-0.067335,0.96807 -0.1883,-0.1699,-0.14899,0.24247,0.25,-0.19081,-0.17157,-0.15735,0.23076,0.25836,-0.18663,-0.17074,0.21403,0.23745,0.25753,-0.18412,-0.15903,-0.11302,0.23327,0.26338,-0.18328,-0.16906,-0.12473,-0.11804,0.24833 0.20285,0.062927,-0.03902,0.21485,0.19686,0.18886,0.15888,0.078919,0.18886,0.18286,0.18886,0.20685,0.18886,0.15888,0.18286,-0.23292,-0.23492,-0.23292,-0.21093,-0.24291,-0.24091,-0.23492,-0.24491,-0.24691,-0.24091 0.93811,0.045152,0.0067115,0.007231,-0.016145,0.040477,0.030087,-0.020301,-0.024976,-0.019262,0.039438,0.021257,-0.027573,-0.026015,-0.11588,-0.13251,-0.11484,-0.026015,-0.024456,-0.10757,-0.12056,-0.11588,-0.013028,-0.11588,-0.10757 -0.10346,-0.10825,-0.10552,-0.11304,-0.11168,-0.10141,-0.10141,-0.10141,-0.10141,-0.11304,-0.087719,-0.084297,-0.084981,-0.087719,-0.10072,-0.067186,-0.039808,-0.048706,-0.041861,-0.081559,0.48106,0.466,0.44615,0.4263,-0.034332 0.48505,0.29358,0.35741,0.29358,0.29358,0.10212,0.0063823,0.0063823,0.10212,0.0063823,0.0063823,0.0063823,0.0063823,-0.18509,-0.31273,-0.18509,-0.12126,-0.12126,-0.12126,-0.18509,-0.18509,-0.12126,-0.12126,-0.18509,-0.12126 -0.036769,-0.038928,-0.041088,-0.043247,-0.041808,-0.038208,-0.039648,-0.039648,-0.041808,-0.046127,-0.03245,-0.035329,-0.038928,-0.041808,-0.043967,-0.036769,-0.041808,-0.041808,-0.046846,-0.047566,-0.041088,-0.046127,-0.035329,-0.042527,0.97963 -0.066344,-0.090152,-0.038569,-0.0068249,0.12809,-0.070312,-0.078248,-0.090152,-0.066344,-0.030633,-0.070312,-0.082216,-0.07428,-0.082216,-0.046505,-0.078248,-0.078248,-0.022697,0.001111,0.10825,-0.10602,-0.082216,0.024919,0.064599,0.93358 0.10659,0.072126,0.060783,0.071035,0.10943,0.11575,0.076707,0.062528,0.12034,0.11401,0.12688,0.079979,0.068636,0.12339,0.12208,0.12252,0.090668,0.09045,0.13124,0.12339,-0.39928,-0.39797,-0.39666,-0.39666,-0.39797 0.028376,0.11173,0.11173,0.1136,0.12979,0.02677,0.1116,0.11173,0.11253,0.12792,0.025165,0.10584,0.11267,0.11936,0.12926,0.025566,0.10504,0.112,0.12043,0.13153,-0.39389,-0.39523,-0.39482,-0.39416,-0.39456 0.16693,0.1365,0.096387,0.061113,0.030681,0.17454,0.13512,0.1033,0.06388,0.037597,0.17523,0.12267,0.095695,0.062497,0.029298,0.15933,0.12544,0.08947,0.061113,0.024456,-0.39329,-0.38638,-0.38914,-0.38914,-0.39329 0.041377,0.018509,-0.11919,-0.14692,-0.15909,0.037485,0.023861,-0.10556,-0.14108,-0.15811,0.40241,0.038945,-0.10167,-0.13573,-0.15325,0.40387,0.22822,-0.1153,-0.1367,-0.15227,0.41165,0.41311,-0.1114,-0.13281,-0.15033 0.072563,0.12609,0.17962,0.1142,0.14394,0.084458,0.07851,0.16178,0.1142,0.16178,0.096353,0.1142,0.17367,0.1142,0.14394,0.066615,0.048772,0.13204,-0.058288,-0.29025,-0.34378,-0.32594,-0.34378,-0.40326,-0.36162 -0.23143,-0.26051,0.17561,0.11746,0.23376,-0.23143,-0.37681,0.17561,0.17561,0.14654,-0.31866,-0.14421,0.11746,0.20469,0.20469,-0.20236,-0.11514,0.11746,0.11746,0.059312,-0.20236,-0.26051,0.17561,0.11746,0.20469 -0.15003,-0.14936,-0.14969,-0.14869,-0.1507,-0.14769,-0.14769,-0.14869,-0.14735,-0.14903,-0.14836,-0.14769,-0.14535,-0.14735,-0.14769,0.30715,0.29044,0.26939,-0.1507,0.25235,0.30515,0.27073,0.27942,0.26037,0.14106 -0.038023,-0.036135,-0.043687,-0.041799,-0.037079,-0.038967,-0.036135,-0.042743,-0.050295,-0.037079,-0.035191,-0.040855,-0.039911,-0.038967,-0.046519,-0.035191,-0.040855,-0.039911,-0.045575,-0.048407,-0.036135,-0.042743,-0.038967,-0.048407,0.97957 -0.23546,-0.17723,-0.164,0.20259,0.20126,-0.22752,-0.17723,0.20259,0.19597,0.19068,-0.22884,-0.1812,0.192,0.18671,0.19465,-0.23811,-0.21826,-0.21296,0.18803,0.19068,-0.23546,-0.19046,0.18406,0.18009,0.17744 -0.22166,-0.37488,-0.40042,-0.29827,-0.32381,-0.11951,-0.017365,0.059245,-0.093975,-0.19612,0.16139,0.084782,0.059245,-0.017365,0.0081718,0.21247,0.16139,0.21247,0.11032,0.11032,0.26354,0.13586,0.16139,0.31461,0.0081718 0.35007,0.35177,0.35518,0.35518,0.36028,0.36028,-0.084028,-0.084028,-0.11127,-0.11807,-0.10616,-0.10616,-0.11127,-0.12659,-0.11807,-0.11127,-0.11127,-0.11127,-0.12148,-0.12659,-0.11978,-0.11127,-0.11807,-0.11807,-0.11807 -0.30505,-0.35952,-0.25058,-0.49571,-0.414,0.049026,-0.11439,0.049026,0.049026,-0.087158,0.13074,0.13074,0.18521,0.049026,0.076263,0.15797,0.1035,0.18521,0.1035,0.076263,0.18521,0.15797,0.18521,0.1035,0.049026 -0.37831,-0.2777,0.1583,0.057686,0.1583,-0.17708,-0.076467,-0.0093907,0.057686,0.22538,-0.17708,-0.042929,0.024147,0.1583,0.35953,-0.24416,-0.21062,0.024147,0.024147,0.1583,-0.14354,-0.2777,-0.0093907,0.19184,0.42661 0.11707,0.091096,0.09383,0.086995,0.095197,0.070591,0.071958,0.081527,0.063756,0.14851,0.06649,0.069224,0.10613,0.12664,0.13894,0.078793,0.074692,0.14851,0.128,0.12527,-0.39828,-0.40649,-0.41332,-0.39828,-0.36684 -0.25486,-0.20245,0.0054772,0.12381,0.13226,-0.27176,-0.20076,0.14072,0.13396,0.13396,-0.336,-0.18555,0.15086,0.14579,0.14748,-0.36643,0.11367,0.15424,0.16438,0.15424,-0.41884,0.051121,0.16946,0.161,0.15424 0.34568,0.346,0.34439,0.34364,0.40768,0.3445,-0.10939,-0.11165,-0.11219,-0.11252,-0.11155,-0.11209,-0.11219,-0.11262,-0.11252,-0.11241,-0.11241,-0.11241,-0.11262,-0.11262,-0.11241,-0.11219,-0.11273,-0.11262,-0.11273 -0.39684,-0.4004,-0.39803,-0.39981,-0.4004,0.084768,0.082396,0.084175,0.083582,0.083582,0.091886,0.091886,0.08892,0.091886,0.0907,0.10019,0.10375,0.10019,0.10078,0.10019,0.11976,0.12154,0.12569,0.1251,0.12451 0.47504,-0.079367,-0.079367,-0.096041,-0.11688,0.55007,-0.016841,-0.083536,-0.091872,-0.11688,0.52506,-0.079367,-0.096041,-0.096041,-0.10855,0.1499,-0.079367,-0.079367,-0.11688,-0.10021,0.079034,-0.07103,-0.091872,-0.096041,-0.083536 -0.038615,-0.14497,-0.12043,-0.14497,0.2559,-0.12043,-0.12043,-0.12043,-0.10406,0.33771,-0.12043,-0.12043,-0.12043,0.059558,0.41952,-0.12043,-0.15315,-0.14497,-0.014071,0.41952,-0.14497,-0.12043,-0.10406,0.16591,0.41952 -0.1662,-0.31073,-0.1662,-0.093942,-0.1662,-0.1662,-0.2746,-0.1662,-0.20234,-0.2746,-0.021679,0.050584,0.086716,-0.021679,-0.1662,0.19511,0.12285,0.15898,0.12285,0.19511,0.050584,0.3035,0.4119,0.3035,0.19511 -0.13307,-0.1795,-0.14185,-0.14812,0.27853,-0.16193,-0.17699,-0.13683,0.2961,0.28983,-0.16569,-0.14812,-0.16569,0.30237,0.28481,-0.17071,-0.13558,-0.10922,0.26849,0.28355,-0.11299,-0.14562,-0.13809,0.16057,0.20575 -0.021605,-0.066614,-0.13413,-0.14538,-0.17914,0.16969,-0.066614,-0.066614,-0.13413,-0.12288,0.33847,0.012153,-0.021605,-0.14538,-0.12288,0.48475,0.09092,0.00090019,-0.14538,-0.17914,0.51851,0.29346,-0.055362,-0.12288,-0.17914 -0.0092927,0.0015128,0.012318,0.0069155,-0.047112,-0.14976,-0.14976,-0.19299,-0.18758,-0.17137,-0.16057,-0.16597,-0.17137,-0.17137,-0.17137,-0.0092927,-0.0092927,-0.025501,-0.057917,-0.041709,0.41212,0.36349,0.39051,0.34188,0.36349 0.3712,0.48577,0.25663,0.31392,0.42849,-0.029788,-0.14436,0.027496,-0.05843,0.027496,-0.173,-0.23028,-0.14436,-0.11571,-0.14436,-0.087072,-0.14436,-0.20164,-0.087072,-0.14436,-0.05843,-0.05843,-0.087072,-0.029788,0.027496 -0.022811,0.44778,0.45473,0.44778,0.44314,-0.020493,-0.01122,-0.01122,-0.0065836,-0.018174,-0.10395,-0.10858,-0.10395,-0.10395,-0.10163,-0.12481,-0.12481,-0.1109,-0.1109,-0.11786,-0.11786,-0.1109,-0.12249,-0.11786,-0.12249 0.23949,0.15662,0.073753,-0.36821,-0.25772,0.21187,0.16353,-0.0091155,-0.27153,-0.14723,0.17043,0.11519,-0.0022098,-0.05055,-0.22319,0.14281,0.16353,0.14281,0.073753,-0.237,0.17043,0.17734,0.09447,-0.029833,-0.49942 -0.33058,-0.091524,0.079229,0.21583,0.31828,-0.33058,-0.15982,0.045079,-0.091524,0.28413,-0.22813,-0.22813,-0.12567,0.21583,0.11338,-0.33058,0.010928,-0.023222,0.11338,0.31828,-0.091524,-0.12567,0.14753,0.079229,0.21583 -0.044959,-0.05776,-0.05392,-0.039838,-0.043678,-0.042398,-0.041118,-0.041118,-0.039838,-0.047519,-0.029597,-0.030877,-0.035998,-0.042398,-0.047519,-0.028317,-0.032157,-0.041118,-0.042398,-0.042398,-0.032157,-0.042398,-0.048799,-0.030877,0.97916 0.24473,-0.095448,-0.12256,-0.14228,-0.14413,0.28479,0.23056,-0.13427,-0.14167,-0.14167,0.21022,-0.12626,-0.13735,-0.1429,-0.14598,0.39572,0.20653,-0.13612,-0.13489,-0.14413,0.36306,0.34827,-0.1238,-0.12996,-0.14044 0.21177,0.23164,-0.14505,-0.14783,-0.14465,0.40766,0.23283,-0.14981,-0.14584,-0.14743,0.19031,0.25866,-0.14505,-0.14664,-0.14505,0.20183,0.39892,-0.14544,-0.14425,-0.14346,0.19667,-0.14306,-0.14465,-0.14584,-0.14624 -0.095287,-0.094577,-0.10097,-0.10381,0.39961,-0.089606,-0.098127,-0.098837,-0.10239,0.39961,-0.094577,-0.096707,-0.10168,-0.1102,0.40458,-0.095997,-0.098837,-0.10381,-0.1102,0.39748,-0.097417,-0.098127,-0.10381,-0.10452,0.39819 -0.40115,0.090826,0.091795,0.092689,0.089707,-0.40047,0.10566,0.10499,0.10201,0.093882,-0.39965,0.092913,0.10693,0.10089,0.094702,-0.39891,0.089409,0.10603,0.099697,0.11617,-0.39831,0.089186,0.10164,0.11409,0.11528 0.10723,0.10954,0.1158,-0.36367,-0.36136,0.10658,0.11777,0.1158,0.11481,-0.3607,0.10526,0.10822,0.11613,0.10822,-0.35774,0.10855,0.11382,0.11283,0.10855,-0.35247,0.11382,0.12041,0.11678,0.11448,-0.33864 -0.3373,-0.19575,-0.23619,-0.35752,-0.41819,-0.013751,-0.013751,-0.013751,-0.1553,-0.19575,0.20869,0.16825,0.026693,-0.054195,-0.074417,0.24913,0.18847,0.1278,0.046915,0.067137,0.3098,0.20869,0.16825,0.22891,0.067137 0.11105,0.11964,0.14686,-0.34449,-0.35022,0.11248,0.099589,0.12251,0.12967,-0.32444,0.10675,0.10818,0.10245,0.11105,-0.34879,0.10962,0.11105,0.10532,0.10675,-0.36741,0.10389,0.11391,0.10245,0.10675,-0.39463 0.91862,-0.082782,-0.032712,-0.057747,-0.082782,0.15088,-0.057747,-0.057747,-0.057747,-0.082782,0.17591,-0.057747,-0.032712,-0.082782,-0.057747,0.092462,-0.032712,-0.057747,-0.082782,-0.10782,-0.032712,-0.057747,-0.082782,-0.057747,-0.082782 0.33219,0.33105,0.33409,0.39985,0.39795,0.33371,-0.097301,-0.11174,-0.11821,-0.11326,-0.10984,-0.1087,-0.11136,-0.11288,-0.11288,-0.11174,-0.11174,-0.11326,-0.11364,-0.11288,-0.11326,-0.11364,-0.11212,-0.11593,-0.11441 0.38448,0.073938,0.21442,-0.13309,-0.13679,0.244,-0.051757,-0.1146,-0.099817,-0.14048,0.42515,-0.040666,-0.13309,-0.12939,-0.14048,0.38078,-0.040666,-0.15157,-0.15897,-0.13309,0.37339,-0.13679,-0.16266,-0.15527,-0.036969 0.19909,0.2,-0.24172,-0.19361,-0.18994,0.20825,0.20367,0.2,-0.18903,-0.1904,0.21192,0.20734,-0.18948,-0.18765,-0.18444,0.21375,0.211,-0.18948,-0.18628,-0.18719,0.21604,0.21375,0.20917,-0.18307,-0.18169 0.15724,0.16743,-0.21841,-0.2203,-0.21959,0.16293,0.17216,0.17193,-0.21888,-0.21959,0.16814,0.17785,0.18779,-0.20822,-0.1978,0.22806,0.22948,0.20343,-0.1959,-0.19567,0.23019,0.22735,-0.19519,-0.19709,-0.19733 0.30073,0.051008,0.045184,-0.16231,-0.16013,0.30146,0.044455,0.044455,-0.16595,-0.16523,0.30874,0.042999,-0.16268,-0.16923,-0.16486,0.3932,0.31093,-0.17069,-0.17178,-0.1645,0.018245,0.31238,-0.1736,-0.17287,-0.16996 0.28974,0.29298,0.31298,0.5,0.4119,0.28596,-0.10808,-0.10916,-0.11241,-0.11024,-0.1043,-0.11024,-0.11187,-0.11241,-0.11078,-0.10862,-0.11295,-0.11241,-0.11078,-0.10862,-0.11511,-0.1097,-0.11241,-0.10916,-0.1043 -0.22139,-0.21225,-0.16348,-0.21428,-0.25695,-0.19904,-0.14215,-0.096431,-0.19599,-0.24374,0.15044,0.23374,-0.051731,-0.14824,-0.23663,0.13723,0.18701,0.15653,0.20225,0.12809,0.14434,0.18396,0.24187,0.26727,0.34956 -0.25851,-0.041753,0.15789,0.175,0.10655,-0.29273,0.089439,0.22063,0.175,0.1693,-0.28703,-0.21858,0.19782,0.18641,0.19211,-0.28703,-0.2528,-0.0018253,0.1807,0.18641,-0.30414,-0.2528,-0.1102,0.095143,0.175 0.44626,0.40757,0.40204,0.084234,0.39375,-0.048418,-0.037363,-0.0069642,0.020671,0.037253,-0.048418,-0.012491,-0.0014371,0.015144,0.0096172,-0.21423,-0.18383,-0.13685,-0.098162,-0.059472,-0.21976,-0.217,-0.19765,-0.15067,-0.18383 -0.042313,-0.042313,-0.10108,0.19276,0.19276,-0.15985,-0.012929,0.075224,0.19276,0.28091,-0.18924,-0.30677,-0.012929,0.19276,0.19276,-0.33616,-0.30677,-0.012929,0.075224,0.19276,-0.30677,-0.30677,0.075224,0.19276,0.28091 0.31164,-0.18637,-0.18811,-0.18928,-0.2189,0.31484,0.31149,-0.030825,-0.18768,-0.22137,0.31077,0.31077,-0.031115,-0.033729,-0.24461,0.14999,0.14898,-0.032277,-0.034891,-0.2449,0.14854,0.14738,-0.031406,-0.034601,-0.24432 -0.13115,-0.14024,-0.15386,0.28211,0.35022,-0.11753,-0.12207,-0.12661,0.1822,0.30481,-0.12661,-0.14932,-0.15386,0.1822,0.31844,-0.15386,-0.13115,-0.13569,-0.08574,0.35022,-0.13569,-0.14478,-0.15386,-0.12661,0.31844 0.42762,0.39351,0.35257,0.14108,0.10015,0.34575,0.26388,0.10015,-0.063583,-0.077228,0.011461,-0.070406,-0.11816,-0.14545,-0.11816,-0.13181,-0.11816,-0.17274,-0.16592,-0.10452,-0.17956,-0.16592,-0.17956,-0.17274,-0.15227 -0.041029,-0.052503,-0.089218,-0.12364,-0.13282,0.48675,-0.073155,-0.082334,-0.093807,-0.13282,0.44315,-0.063976,-0.086923,-0.10528,-0.14659,0.43168,-0.020377,-0.063976,-0.11446,-0.12593,0.44315,-0.011198,-0.043324,-0.093807,-0.10758 0.94783,0.0022095,0.0043089,0.0040465,0.0068018,0.0022095,0.003128,0.0047025,0.0045713,0.0052273,0.0020783,0.0035216,0.0047025,0.0048337,0.0065394,-0.099739,-0.099477,-0.10118,-0.10053,-0.10066,-0.10092,-0.10079,-0.10158,-0.10079,-0.10105 -0.26317,-0.25989,-0.26153,-0.26071,-0.2517,-0.273,-0.2689,-0.2689,-0.25497,0.12683,0.17763,0.17271,0.17599,0.15305,0.13503,0.21614,0.072756,0.17763,0.14076,0.12683,0.23662,0.077672,0.098975,0.12355,0.15059 -0.20211,-0.20579,-0.20872,0.23059,0.23132,-0.19954,-0.20689,-0.21203,0.23206,0.23389,-0.20983,-0.20248,0.21994,0.23206,0.23389,-0.19991,-0.20505,-0.016617,0.23426,0.23389,-0.19807,-0.019923,-0.017352,-0.015148,0.23757 -0.10063,-0.10116,-0.10156,-0.10156,-0.10196,-0.096255,-0.095858,-0.095725,-0.096255,-0.09546,-0.083,-0.082602,-0.08353,-0.083,-0.086711,-0.078626,-0.079686,-0.078626,-0.075444,-0.056887,0.47611,0.47598,0.47638,0.39645,-0.050392 0.05268,-0.019395,-0.071812,-0.13733,-0.18975,0.046128,-0.019395,-0.058708,-0.13733,-0.1701,0.22959,0.00026209,-0.058708,-0.11768,-0.17665,0.44581,0.072336,-0.058708,-0.11113,-0.20941,0.57686,0.38029,0.0068143,-0.098021,-0.17665 0.12705,0.1284,-0.16724,-0.17808,-0.17808,0.13382,0.12739,-0.16893,-0.17842,-0.17808,0.13044,0.29163,-0.16453,-0.17842,-0.17706,0.29028,0.2852,-0.16589,-0.17198,-0.1713,0.294,0.294,0.28892,-0.15945,-0.15369 -0.14189,-0.1696,-0.1696,-0.18544,-0.1894,-0.02708,-0.02708,-0.02708,-0.031039,-0.06271,-0.019162,-0.0033256,0.0045924,0.00063344,-0.019162,-0.011244,-0.011244,-0.0033256,-0.0033256,-0.0033256,0.9112,0.056059,0.075854,0.067936,-0.011244 -0.13112,-0.13112,-0.06781,-0.011536,0.36128,-0.13112,-0.11002,-0.10298,-0.060776,0.54417,-0.11002,-0.13112,-0.06781,-0.039673,0.32611,-0.13112,-0.15222,-0.081879,-0.053742,0.27687,-0.12408,-0.13112,-0.11705,-0.039673,0.41755 -0.37216,0.14116,0.1925,0.17966,0.154,-0.42349,0.089832,0.14116,0.16683,0.154,-0.35933,-0.064166,0.12833,0.17966,0.12833,-0.33366,-0.1155,0.076999,0.12833,0.076999,-0.28233,-0.20533,0.064166,0.064166,0.089832 0.41533,0.027591,-0.083803,-0.16092,-0.31088,0.39176,-0.015252,-0.10094,-0.10737,-0.11594,0.37248,-0.030248,-0.10951,-0.12236,-0.14593,0.50316,-0.073092,-0.073092,0.0018851,-0.12022,0.085431,-0.066665,-0.060238,0.053298,-0.1545 -0.037882,-0.036535,-0.041924,-0.041924,-0.050007,-0.041924,-0.032494,-0.047313,-0.041924,-0.045966,-0.037882,-0.033841,-0.044618,-0.037882,-0.052701,-0.045966,-0.047313,-0.037882,-0.03923,-0.050007,-0.040577,-0.043271,-0.023064,-0.027105,0.97923 -0.36039,-0.36158,-0.36158,-0.36107,-0.36107,0.12775,0.11941,0.11907,-0.19802,-0.19802,0.12281,0.11975,0.11924,0.12689,0.12553,0.1206,0.11787,0.11958,0.124,0.12655,0.12349,0.12519,0.12043,0.12179,0.12179 0.25336,0.23759,0.19981,0.20128,0.20494,0.253,0.24309,0.20788,0.20054,0.21411,-0.156,-0.15673,0.25483,-0.19745,-0.19671,-0.1505,-0.16957,-0.18461,-0.18828,-0.18388,-0.19561,-0.18498,-0.17214,-0.15306,-0.18094 -0.36968,-0.36243,-0.35155,-0.34067,-0.32616,-0.26812,-0.17744,0.029308,0.083716,0.10911,0.10548,0.13087,0.13087,0.11273,0.12724,0.14175,0.14538,0.14538,0.14901,0.14175,0.13812,0.15263,0.11999,0.11273,0.11999 0.59708,-0.027543,-0.065171,-0.11409,-0.080222,0.15307,-0.05012,-0.072697,-0.15548,-0.15548,0.21704,-0.0049669,0.010084,-0.15924,-0.20816,0.29982,0.010084,-0.057646,-0.17053,-0.18558,0.34497,0.28853,-0.072697,-0.14795,-0.19311 -0.054337,-0.055415,-0.04679,-0.048946,0.029756,-0.048946,-0.056493,-0.054337,-0.020915,0.026521,-0.054337,-0.054337,-0.055415,-0.051102,0.014662,-0.047868,-0.058649,-0.060805,-0.05218,-0.062961,-0.0015093,-0.050024,-0.054337,-0.05218,0.97094 0.50006,0.031201,-0.072989,-0.099741,-0.1096,0.48879,-0.022302,-0.084253,-0.11241,-0.111,0.35222,-0.033566,-0.091293,-0.11241,-0.11523,0.44937,-0.072989,-0.10256,-0.1096,-0.12649,-0.042014,-0.070173,-0.092701,-0.099741,-0.14057 0.043487,-0.081271,-0.063449,-0.18821,-0.18821,0.39994,-0.027803,-0.18821,-0.081271,-0.17038,0.48905,-0.045626,-0.081271,-0.11692,-0.027803,0.45341,-0.063449,-0.17038,-0.081271,-0.045626,0.39994,0.025665,-0.027803,-0.063449,-0.099094 0.26902,0.26636,0.26104,0.28498,0.22911,0.25838,0.26104,0.25838,-0.055549,-0.026285,0.23177,-0.0050015,-0.12472,-0.1593,-0.146,-0.13536,-0.14068,-0.16728,-0.16994,-0.1593,-0.20187,-0.19389,-0.22581,-0.20985,-0.19921 -0.046793,-0.046793,-0.042961,-0.042961,-0.035296,-0.045835,-0.042003,-0.041045,-0.041045,-0.031464,-0.03817,-0.034338,-0.036254,-0.046793,-0.030506,-0.040087,-0.03817,-0.035296,-0.040087,-0.060207,-0.037212,-0.036254,-0.040087,-0.049667,0.97932 -0.19129,-0.19317,-0.19317,0.19075,0.21425,-0.18988,-0.19035,-0.19458,0.19592,0.21847,-0.18848,-0.19223,-0.19082,0.21143,0.21988,-0.19176,-0.19693,0.2072,0.21378,0.22599,-0.18895,-0.19458,0.20344,0.19874,0.19639 -0.16653,-0.14197,-0.10513,-0.0068774,0.47209,-0.17881,-0.080564,-0.080564,-0.03144,0.36156,-0.15425,-0.19109,-0.043721,0.017685,0.25103,-0.15425,-0.14197,-0.043721,-0.019159,0.27559,-0.092845,-0.19109,-0.043721,-0.0068774,0.49665 0.15404,0.023938,-0.086263,-0.14749,-0.16738,0.14179,0.016285,-0.067896,-0.14289,-0.15973,0.12955,0.074447,-0.070957,-0.11994,-0.1582,0.57494,0.065264,-0.081671,-0.13218,-0.14902,0.60096,0.020877,-0.054121,-0.123,-0.14136 0.36297,0.42849,0.13366,0.23193,0.26469,0.0026207,0.068139,0.16642,0.13366,0.13366,-0.030138,0.068139,0.0026207,0.068139,-0.062897,-0.12841,-0.22669,-0.16117,-0.030138,-0.16117,-0.16117,-0.35773,-0.25945,-0.25945,-0.22669 0.32633,0.39294,-0.089844,-0.088811,-0.088811,0.38313,-0.088811,-0.085197,-0.084164,-0.17349,0.33924,-0.093975,-0.089844,-0.086746,-0.082615,0.35008,-0.091909,-0.088811,-0.17556,-0.17091,0.30774,-0.079517,-0.09036,-0.16058,-0.1895 0.26138,-0.10695,-0.052651,-0.13483,-0.099608,0.27312,0.29366,-0.067325,-0.089336,-0.15243,0.27312,0.28779,-0.13483,-0.14363,-0.15977,0.32301,-0.13042,-0.15537,-0.16417,-0.19206,0.34502,0.23496,-0.14216,-0.17591,-0.19059 0.31954,0.25134,0.29069,0.35625,0.66748,-0.091795,-0.093107,-0.091358,-0.092232,-0.091795,-0.095292,-0.094855,-0.093981,-0.093981,-0.096604,-0.096604,-0.095729,-0.096604,-0.094855,-0.093544,-0.095292,-0.097041,-0.093981,-0.093544,-0.093107 0.28925,0.29121,-0.15828,-0.19165,-0.20932,0.28532,0.30299,-0.17202,-0.19165,-0.25054,0.30299,0.28532,-0.20343,-0.2368,-0.2368,0.14007,0.14007,-0.064068,-0.16614,-0.11314,0.11063,-0.0032191,0.012484,0.012484,0.024261 -0.19364,-0.19583,-0.20021,-0.18624,-0.18268,-0.19364,-0.19336,-0.19199,-0.19254,-0.18898,0.19464,0.19601,-0.1898,-0.19336,-0.19473,0.2056,0.20696,0.20587,0.20642,0.20751,0.21299,0.21518,0.21436,0.21627,0.21518 0.15333,0.1495,0.15429,0.15046,0.15142,0.14758,0.1495,0.14566,0.1495,0.14758,0.14662,0.15142,0.1495,0.15046,0.14758,0.15525,-0.26855,-0.26183,-0.26855,-0.27718,-0.26567,-0.26279,-0.26375,-0.26375,-0.26759 0.27541,0.32604,0.17416,0.12353,0.14884,0.047589,0.19947,0.12353,0.047589,0.12353,0.12353,0.12353,0.047589,0.022276,0.12353,-0.053664,-0.1296,-0.053664,-0.053664,-0.053664,-0.38274,-0.3068,-0.3068,-0.23086,-0.45868 -0.0017233,-0.057115,-0.07558,-0.020187,-0.07558,0.010586,-0.050961,-0.081734,-0.038651,-0.050961,0.059824,-0.069425,-0.081734,-0.081734,-0.087889,0.43526,-0.06327,-0.07558,-0.081734,-0.069425,0.84147,-0.057115,-0.032497,-0.094044,-0.1002 0.31384,-0.1031,0.010613,-0.027291,-0.046243,0.29489,-0.065195,-0.12205,-0.141,-0.17891,0.3707,-0.141,-0.1031,-0.1031,-0.141,0.27594,-0.046243,-0.084146,-0.1031,-0.141,0.61707,-0.027291,-0.084146,-0.141,-0.084146 0.36146,0.36114,0.33906,0.35724,0.36796,-0.10907,-0.1081,-0.10712,-0.10842,0.34783,-0.11037,-0.11264,-0.11199,-0.11362,-0.11362,-0.11167,-0.11297,-0.11492,-0.11459,-0.11589,-0.11264,-0.11264,-0.11394,-0.11427,-0.11621 -0.029687,-0.041624,-0.061346,-0.052004,-0.03332,-0.030206,-0.030206,-0.027092,-0.04889,-0.035396,-0.026573,-0.035396,-0.044738,-0.053561,-0.035396,-0.026573,-0.036953,-0.061346,-0.05927,-0.031244,-0.02813,-0.043181,-0.053042,-0.053042,0.97822 -0.31924,-0.40694,-0.42886,-0.36309,-0.38501,-0.05613,0.053498,-0.034204,0.09735,0.0096473,0.11928,0.20698,0.16313,0.09735,0.1412,0.16313,0.1412,0.075424,0.11928,0.11928,0.1412,0.053498,0.031573,0.1412,0.11928 0.12612,-0.10965,-0.10995,-0.10995,-0.074121,0.12702,-0.11176,-0.11086,-0.099113,-0.072013,0.52478,-0.11296,-0.11116,-0.10303,-0.069604,0.51575,-0.10965,-0.072013,-0.10122,-0.068701,0.50612,-0.058162,-0.064485,-0.065088,-0.066292 0.28501,0.28501,-0.12542,-0.12607,-0.1265,0.28935,0.28501,-0.12694,-0.1265,-0.1265,0.28849,0.28827,-0.12868,-0.12737,-0.12694,0.29392,-0.12824,-0.12781,-0.12694,-0.1265,0.29348,-0.12824,-0.12781,-0.12824,-0.27382 -0.14802,-0.095533,-0.20051,0.21941,0.21941,-0.095533,-0.20051,0.0094483,0.24566,0.24566,-0.14802,-0.14802,-0.095533,0.19317,0.24566,-0.20051,-0.095533,-0.14802,0.35064,0.19317,-0.25301,-0.25301,-0.25301,0.24566,0.16692 0.23159,0.22331,-0.17441,-0.17636,-0.17928,0.23159,0.22331,-0.17344,-0.17782,-0.17977,0.235,0.22136,-0.17246,-0.17685,-0.18318,0.23598,0.22623,-0.17636,-0.1788,-0.17733,0.23452,0.22623,-0.17149,-0.18221,0.19065 0.29837,-0.032335,0.077899,-0.032335,-0.32629,0.26162,0.077899,-0.10583,0.0044094,-0.2528,0.22488,0.37186,-0.10583,-0.14257,-0.21606,0.37186,-0.032335,-0.06908,-0.032335,-0.39978,0.15139,0.041154,0.11464,-0.06908,-0.17931 -0.18947,-0.18947,-0.18947,-0.18947,-0.1938,-0.19047,-0.18947,-0.18947,-0.19047,0.067535,-0.18847,-0.19414,-0.19047,-0.1868,0.21821,0.22821,0.22087,0.21321,0.21587,0.21854,0.21754,0.21721,0.21321,0.21821,0.22287 -0.23496,-0.23613,0.14418,0.41739,0.13667,-0.23379,-0.2378,0.13867,0.14168,0.14185,-0.23462,-0.23613,0.12714,0.14051,0.137,-0.23529,-0.23713,0.15003,0.12915,0.1253,-0.23513,-0.23663,0.15204,0.14987,0.12614 -0.18975,-0.19074,-0.18876,-0.18478,-0.18577,-0.1808,-0.18229,-0.17981,-0.17881,-0.18229,0.25465,-0.12513,-0.12463,-0.11916,-0.11469,0.22433,0.23626,0.25018,0.24322,-0.10127,0.22333,0.25117,0.25614,0.2462,0.24322 -0.062373,-0.19651,-0.23004,0.2059,0.3065,-0.045606,-0.17974,-0.19651,0.18913,0.2562,-0.062373,-0.16298,-0.21328,0.054996,0.3065,-0.095907,-0.19651,-0.17974,0.18913,0.32327,-0.14621,-0.12944,-0.19651,0.13883,0.32327 0.24823,0.23387,0.24105,0.097397,-0.17555,0.25901,0.23028,0.16204,-0.11449,-0.20787,0.26978,0.19796,-0.078579,-0.20428,-0.21505,0.23387,0.039936,-0.17555,-0.21505,-0.22582,0.18718,-0.16477,-0.1935,-0.21505,-0.21505 -0.083148,-0.11513,-0.13911,-0.12312,-0.12312,0.04877,-0.075153,-0.11513,-0.083148,-0.12312,0.37657,-0.015191,-0.047171,-0.083148,-0.083148,0.56045,0.036777,-0.043173,-0.075153,-0.099138,0.60442,0.072755,-0.075153,-0.099138,-0.099138 -0.027148,-0.098056,-0.077797,0.043761,0.8744,-0.10819,-0.098056,-0.10819,-0.10819,0.297,-0.067667,-0.037278,-0.067667,-0.017018,0.18558,-0.0068882,-0.057537,-0.057537,-0.057537,-0.057537,-0.077797,-0.037278,-0.077797,-0.077797,-0.077797 0.88937,0.21326,0.2442,0.021035,-0.054089,-0.031994,-0.04746,-0.040832,-0.065136,-0.085022,-0.056298,-0.058508,-0.062927,-0.069555,-0.09607,-0.020946,-0.062927,-0.087232,-0.082813,-0.09386,0.0011489,-0.078394,-0.091651,-0.076184,-0.10712 0.095263,-0.011375,-0.011375,0.059717,-0.2602,0.2019,0.30854,-0.011375,-0.011375,-0.33129,0.2019,0.095263,-0.1891,-0.082467,-0.15356,0.30854,0.2019,-0.011375,-0.15356,-0.47347,0.30854,0.2019,-0.011375,-0.11801,-0.15356 -0.26482,-0.26246,0.092484,0.067575,0.23133,-0.26347,-0.26414,0.092147,0.33753,0.23217,-0.26532,-0.14499,0.093662,0.17074,0.23301,-0.26498,-0.14566,-0.14616,0.17428,0.23301,-0.26482,0.091979,0.096018,0.073298,0.067575 0.15877,0.21801,0.12915,0.24763,0.18839,0.15877,0.15877,0.010663,0.099525,0.12915,0.010663,0.069905,0.010663,0.099525,0.040284,-0.048578,-0.048578,0.099525,0.040284,0.069905,-0.31516,-0.40402,-0.46327,-0.28554,-0.3744 0.24037,0.22255,0.20671,0.21067,0.31363,0.20671,0.22849,0.26017,0.002772,0.28591,-0.13781,-0.17741,-0.14969,-0.14771,0.22057,-0.16949,-0.18137,-0.17345,-0.16949,-0.17345,-0.18929,-0.18533,-0.17345,-0.18929,-0.18137 -0.094736,-0.094096,-0.094416,-0.093457,-0.094416,-0.095056,-0.095375,-0.095056,-0.094096,-0.094416,-0.094416,-0.093777,-0.094096,-0.092817,-0.094096,-0.092817,-0.095056,-0.092498,-0.094736,-0.094096,0.67746,0.30048,0.30271,0.30144,0.30144 0.19524,0.22578,0.24799,0.40846,0.39791,0.22189,0.15637,0.25021,0.14582,-0.13627,-0.19735,-0.14293,0.0042201,0.00033317,-0.14793,-0.18124,-0.15792,-0.15681,-0.15459,-0.15459,-0.18402,-0.16792,-0.15181,-0.15403,-0.16681 -0.1095,-0.24382,-0.24419,-0.01038,0.21533,-0.10442,-0.10368,-0.10368,0.22328,0.2294,-0.2059,-0.2059,-0.1039,0.2294,0.22947,-0.2056,-0.1042,-0.10597,0.2333,0.23197,-0.20568,-0.1056,-0.10545,0.44089,0.23484 -0.1483,-0.14962,-0.15093,0.34987,0.39907,-0.14896,-0.14896,-0.14215,0.34855,0.40258,-0.14918,-0.14984,-0.15181,0.15614,0.15548,-0.14874,-0.14896,-0.14984,0.15372,0.15306,-0.14874,-0.14852,-0.14874,0.060588,0.054218 0.1925,0.18429,0.19865,0.20891,0.21301,0.18429,0.19455,0.20686,0.20891,0.22737,0.19455,-0.10495,0.19865,-0.099817,-0.12033,-0.1111,-0.12341,-0.24033,-0.23931,-0.26803,-0.11315,-0.19008,-0.27008,-0.26597,-0.26597 -0.1477,-0.1441,-0.14725,0.27415,0.27881,-0.14815,-0.15505,-0.16767,0.2755,0.27821,-0.1462,-0.13839,-0.16676,0.27505,0.27655,-0.1456,-0.1444,-0.1501,0.27355,0.2764,-0.1528,-0.1474,-0.14259,-0.145,0.18092 0.1961,0.20209,0.20408,-0.187,-0.21095,0.18014,0.20009,0.1981,-0.22092,-0.21693,0.18812,0.18812,-0.21494,-0.20696,-0.22092,0.18014,0.1981,0.19411,-0.20895,-0.19897,0.18213,0.18413,-0.21095,-0.19897,-0.19897 0.12361,0.094029,0.089313,0.14848,0.1429,0.089313,0.12918,0.1249,0.15491,-0.0067225,0.073021,0.10089,0.11718,0.15577,-0.0067225,0.073878,0.085025,0.1309,0.14719,-0.023443,-0.38829,-0.38872,-0.39043,-0.39172,-0.38443 0.33161,0.38551,-0.10923,-0.13549,-0.15622,0.22658,0.29015,-0.10232,-0.14792,-0.14792,0.22935,0.30674,-0.12858,-0.14378,-0.15898,0.28325,-0.094028,-0.13134,-0.12858,-0.16313,0.24731,-0.12167,-0.13134,-0.1424,-0.1576 -0.21546,-0.1787,0.31917,0.24566,0.28242,-0.16868,-0.12858,0.091956,0.07859,0.18552,-0.1787,-0.10853,0.045176,0.005079,0.28576,-0.28563,-0.24887,-0.081798,-0.01497,0.31249,-0.29231,-0.25555,-0.01497,0.098639,0.22227 0.97103,-0.03071,-0.035585,-0.050209,-0.045334,-0.064833,-0.072145,-0.052646,-0.035585,-0.047772,-0.020961,-0.023398,-0.0087744,-0.0014624,-0.10627,0.00097493,-0.064833,-0.016086,-0.035585,-0.084332,-0.0014624,-0.035585,-0.018524,-0.042897,-0.07702 -0.094153,-0.10001,-0.088298,-0.082442,0.41526,-0.11172,-0.11172,-0.141,-0.10586,0.39184,-0.12343,-0.082442,-0.10586,-0.053166,0.35085,-0.11172,-0.11757,-0.082442,-0.070732,0.4094,-0.12343,-0.10586,-0.10001,-0.076587,0.42111 -0.044886,-0.042281,-0.035117,-0.037071,-0.029907,-0.045537,-0.04684,-0.033814,-0.038373,-0.014276,-0.042932,-0.042932,-0.043583,-0.044886,-0.023394,-0.043583,-0.044235,-0.044886,-0.040978,-0.058563,-0.04684,-0.047491,-0.042932,-0.043583,0.97892 -0.33672,-0.094474,-0.033914,0.20833,0.17805,-0.27616,-0.15503,0.14777,0.20833,0.087207,-0.33672,-0.27616,0.20833,0.056927,0.17805,-0.2156,-0.064194,-0.033914,0.17805,0.14777,-0.27616,-0.064194,0.14777,0.026647,0.39001 -0.031638,-0.036523,-0.034352,-0.040323,-0.063666,-0.033266,-0.031638,-0.045209,-0.041409,-0.04738,-0.032181,-0.035981,-0.045209,-0.042495,-0.03978,-0.034352,-0.037609,-0.043038,-0.043038,-0.04738,-0.040866,-0.034895,-0.04358,-0.053352,0.97916 0.12916,0.12858,0.12761,0.12858,-0.26849,0.13264,0.13225,0.13264,0.13167,-0.27874,0.13767,0.13786,0.13709,-0.29248,-0.29306,0.14425,0.14308,0.14386,-0.2946,-0.3006,0.14792,0.14792,0.14734,-0.29422,-0.30795 -0.21348,-0.21068,-0.1336,0.19561,0.17867,-0.21683,-0.13043,0.19319,0.19412,0.18798,-0.22614,-0.22931,0.193,0.19244,0.19207,-0.22744,-0.21292,0.18816,0.18965,0.19151,-0.23582,-0.22279,-0.22074,0.18909,0.19468 -0.37196,-0.048494,-0.051911,0.26155,0.29109,-0.1625,-0.046296,-0.051179,-0.053864,0.29109,-0.27846,-0.046052,-0.050447,-0.053376,0.29841,-0.27822,-0.044832,-0.048249,-0.052155,0.29011,-0.27431,-0.044832,-0.04532,0.28938,0.28084 0.48122,0.090619,-0.026561,-0.26092,-0.26092,0.2078,0.090619,-0.026561,-0.14374,-0.26092,0.2078,0.012499,-0.026561,0.12968,-0.26092,0.32498,-0.10468,0.090619,-0.065621,-0.1828,0.24686,0.2078,-0.1828,-0.065621,-0.22186 -0.017757,0.016254,-0.030288,-0.010597,-0.041028,-0.080409,-0.035658,-0.049978,-0.053559,-0.058929,-0.08936,-0.005227,-0.024918,-0.042818,-0.066089,-0.060719,-0.071459,-0.019547,0.0037233,-0.005227,-0.060719,-0.08757,-0.033868,-0.044608,0.97035 -0.26165,-0.26968,0.16023,0.14726,0.1454,-0.26721,-0.26598,0.15529,0.12749,0.17382,-0.26351,-0.26968,0.14355,0.12255,0.18617,-0.26227,-0.26474,0.15838,0.1522,0.13676,-0.26968,0.13305,0.12934,0.16146,0.16146 0.31436,0.14049,0.070939,-0.17248,-0.10293,0.24481,0.14049,0.070939,0.036165,-0.20725,0.21004,0.21004,0.070939,-0.033383,-0.4159,0.036165,-0.068158,0.10571,-0.17248,-0.24203,0.31436,0.036165,0.036165,-0.17248,-0.45067 0.96778,-0.059551,-0.066624,-0.080228,0.0024813,-0.035064,-0.046491,-0.054653,-0.045947,0.0024813,-0.019284,-0.036153,-0.044859,-0.063359,-0.05683,-0.066624,-0.049212,-0.066624,-0.05683,-0.061183,0.077572,-0.032888,-0.049756,-0.029079,-0.029079 -0.0034611,-0.0047622,0.00044239,0.0095505,0.010852,-0.0021599,-0.0041117,0.0023941,0.0082493,0.014755,-0.0073645,-0.00020818,0.0082493,-0.075675,-0.12317,-0.011268,0.00044239,-0.088687,-0.094542,-0.13748,0.94378,-0.086735,-0.091289,-0.12512,-0.14268 -0.026342,0.039927,-0.032555,-0.065689,-0.049122,-0.069831,-0.061547,-0.073973,-0.069831,0.041998,-0.047051,-0.053264,-0.051193,-0.061547,-0.018058,-0.042909,-0.034625,-0.049122,-0.040838,-0.013916,-0.057405,-0.057405,-0.047051,-0.028413,0.96976 -0.075854,-0.1362,-0.057711,-0.066388,-0.061261,0.0085509,-0.12949,-0.052978,-0.042329,-0.047851,-0.048639,-0.051795,-0.010775,-0.036412,-0.022213,-0.062444,0.027483,-0.018269,-0.003676,-0.018664,-0.061261,0.01565,-0.019453,0.010917,0.96106 -0.11167,-0.097294,-0.097294,-0.098321,0.45817,-0.11578,-0.10859,-0.10448,-0.097294,0.45715,-0.080866,-0.074706,-0.078813,-0.098321,0.40992,-0.10859,-0.10859,-0.10243,-0.11372,0.35344,-0.071625,-0.1014,-0.10859,-0.099347,0.29903 -0.19468,-0.19525,-0.19695,-0.19411,-0.19411,-0.18901,-0.19071,-0.19128,-0.19355,-0.19241,0.19436,0.19777,-0.1805,-0.19071,-0.19241,0.20344,0.20457,0.20968,0.20571,0.22385,0.19209,0.20514,0.20968,0.21365,0.23576 -0.069488,-0.14967,-0.14967,-0.14967,-0.096214,-0.20312,-0.25657,0.01069,-0.12294,-0.17639,-0.14967,0.01069,-0.042762,-0.042762,-0.069488,0.064143,-0.14967,-0.069488,0.01069,0.01069,0.49176,0.41158,0.41158,0.17105,0.30468 -0.1268,-0.14101,-0.26752,-0.26895,-0.50349,-0.11542,-0.081309,-0.1268,-0.14101,-0.13248,0.23568,-0.04435,-0.067094,-0.10121,-0.094102,0.2371,0.22858,0.21862,0.1902,0.10206,0.26269,0.23426,0.16177,0.19446,0.14613 0.21321,-0.14573,-0.23547,-0.14573,-0.18162,0.26705,0.12348,-0.18162,-0.073942,-0.19957,0.41063,0.087582,-0.14573,-0.073942,-0.23547,0.37474,0.24911,-0.0021537,-0.055995,-0.18162,0.12348,0.30295,0.033741,-0.16368,-0.16368 -0.12687,-0.13098,-0.13015,-0.15563,-0.1585,-0.12769,-0.14166,-0.14618,-0.14248,-0.12687,-0.13508,-0.1585,-0.15481,-0.15481,-0.12769,0.056801,0.062965,0.068306,0.27622,0.27786,0.064197,0.055158,0.4229,0.41921,0.41427 -0.036921,-0.035414,-0.042949,-0.039181,-0.048223,-0.036167,-0.039935,-0.043702,-0.038428,-0.044456,-0.038428,-0.038428,-0.037674,-0.044456,-0.042949,-0.03466,-0.039181,-0.039181,-0.045963,-0.048223,-0.03466,-0.039181,-0.037674,-0.053498,0.97954 -0.20112,-0.25302,0.11029,0.22707,0.23356,-0.084341,-0.266,-0.064878,0.22707,0.2141,-0.097316,-0.24005,-0.12327,0.22058,0.25302,-0.16868,-0.23356,-0.1038,0.20112,0.22058,-0.025951,-0.28546,-0.20112,0.22058,0.22058 0.14171,0.18022,0.1032,0.14171,0.14171,0.14171,0.14171,0.14171,0.1032,0.026186,0.16739,0.051859,0.14171,0.1032,0.064695,-0.076505,-0.025159,0.090368,0.051859,-0.025159,-0.55145,-0.42309,-0.41025,-0.23054,-0.19203 -0.14976,-0.16618,-0.21544,0.14582,0.32644,-0.16618,-0.13334,-0.21544,0.16224,0.27718,-0.067653,-0.1826,-0.21544,0.2115,0.2936,-0.084074,-0.1826,-0.16618,0.1294,0.27718,-0.0019705,-0.14976,-0.23186,0.24434,0.26076 -0.19113,-0.19168,-0.19187,0.16436,0.21352,-0.19141,-0.19214,-0.19205,0.20874,0.21049,-0.19205,-0.19251,-0.19131,0.21076,0.21021,-0.19223,-0.19223,0.21159,0.21279,0.21601,-0.19223,-0.19251,0.21251,0.21131,0.21306 0.13585,0.13825,0.14065,-0.2874,-0.29521,0.13465,0.13705,0.13645,-0.28801,-0.29521,0.13705,0.13645,0.13705,-0.28801,-0.29341,0.13705,0.13645,0.13705,0.13825,-0.29341,0.13705,0.13645,0.13945,0.13705,-0.29161 0.35526,-0.076045,-0.11182,-0.114,-0.11696,0.35417,0.35411,-0.11223,-0.11413,-0.11683,0.35693,-0.11069,-0.11264,-0.11458,-0.11689,0.35714,-0.11165,-0.11349,-0.11492,-0.11761,0.35622,-0.11199,-0.11413,-0.11587,-0.11737 0.16545,-0.12788,-0.17244,-0.28754,-0.1613,0.23229,0.21373,-0.079609,-0.18729,-0.16501,0.25086,0.24714,0.21373,-0.10931,-0.13902,0.25086,0.236,-0.12417,-0.191,-0.18357,0.25828,0.26571,0.050349,-0.21328,-0.24298 0.2434,0.23525,-0.21277,-0.1476,-0.057998,0.25969,0.26783,-0.26164,-0.13131,-0.07429,0.23525,0.21081,-0.26164,-0.16389,-0.041707,0.2434,0.22711,-0.24535,-0.1476,-0.066144,0.2434,0.17008,-0.24535,-0.18019,-0.098727 -0.045742,-0.048567,-0.03538,-0.041032,-0.021251,-0.052335,-0.052335,-0.046684,-0.041032,-0.034438,-0.050451,-0.048567,-0.045742,-0.049509,-0.046684,-0.0448,-0.048567,-0.046684,-0.0448,-0.053277,0.045629,-0.029728,-0.046684,-0.046684,0.97534 -0.25977,0.057529,0.091631,0.15835,0.14501,-0.29239,0.10349,0.13315,0.14946,0.15539,-0.27311,-0.26867,0.17318,0.14353,0.1539,-0.30425,-0.27015,0.14353,0.1539,0.15094,-0.32797,-0.31463,0.10349,0.14501,0.14946 0.23008,0.35247,0.23008,0.29127,0.1077,0.1077,0.16889,0.16889,0.1077,0.35247,0.01591,-0.19826,-0.075878,0.046506,-0.10647,-0.075878,-0.19826,-0.045282,-0.075878,-0.19826,-0.29005,-0.22886,-0.13707,-0.35124,-0.19826 0.28453,0.28453,0.40162,0.28453,0.43089,0.079621,-0.037469,0.050348,0.079621,0.16744,-0.15456,-0.12529,-0.2131,-0.037469,-0.066741,-0.2131,-0.18383,-0.066741,-0.12529,-0.0081962,-0.18383,-0.24237,-0.15456,-0.24237,-0.0081962 0.13373,0.13424,0.13475,0.13424,-0.29093,0.13321,0.13373,0.13193,0.13014,-0.29273,0.13783,0.13321,0.13296,-0.29042,-0.29221,0.14527,0.13783,0.14296,-0.29221,-0.29042,0.14655,0.1445,0.14475,-0.28991,-0.29298 0.29887,0.26969,0.26969,0.32806,0.26969,0.13348,0.21131,0.04592,0.18213,0.084836,-0.051369,-0.32378,-0.080555,0.13348,-0.080555,-0.13893,-0.14866,-0.10974,-0.080555,-0.051369,-0.27513,-0.15839,-0.22649,-0.22649,-0.27513 -0.040034,-0.012905,-0.017304,-0.040034,-0.042233,-0.035634,-0.031235,-0.042233,-0.042966,-0.053965,-0.034168,-0.037834,-0.047366,-0.051765,-0.05983,-0.033435,-0.034901,-0.0437,-0.050299,-0.059097,-0.037834,-0.035634,-0.046632,-0.047366,0.9784 -0.11044,-0.1291,-0.10857,0.25731,0.27691,-0.1319,-0.1319,-0.071235,-0.056301,0.27598,-0.1319,-0.29804,-0.082435,0.16117,0.24518,-0.1319,-0.28498,-0.092703,0.27691,0.26198,-0.1347,-0.28498,-0.097369,0.26011,0.26291 -0.2583,0.096902,0.085111,0.098867,0.17158,-0.26174,-0.25977,0.18042,0.18828,0.10722,-0.26567,-0.26616,0.17354,0.176,0.12048,-0.26616,-0.27206,0.16912,0.16372,0.14505,-0.26076,-0.26763,0.16765,0.16814,0.16617 -0.1833,-0.19787,0.19853,0.20739,0.21309,-0.18457,-0.19217,0.19789,0.20739,0.21626,-0.18774,-0.19977,-0.1814,0.20802,0.20992,-0.19217,-0.19597,-0.2042,0.20676,0.21372,-0.19217,-0.19217,-0.19343,0.20612,0.21182 -0.14382,-0.11398,-0.054306,0.01283,0.27392,-0.18112,-0.10652,-0.069225,-0.017008,0.42311,-0.11398,-0.13636,-0.10652,-0.031927,0.2217,-0.15874,-0.10652,-0.11398,0.0053709,0.40819,-0.1662,-0.11398,-0.12144,-0.031927,0.54246 0.20964,0.30778,0.19001,-0.045539,0.091863,0.13112,0.26852,0.19001,0.11149,0.032976,0.13112,0.15075,0.13112,0.15075,0.22926,-0.16331,-0.12405,-0.2222,-0.20257,-0.26146,-0.28108,-0.26146,-0.26146,-0.24183,-0.26146 -0.37037,-0.20793,0.04734,0.14016,0.18658,-0.4864,-0.16151,0.11696,0.04734,0.25619,-0.27754,-0.06869,0.16337,0.14016,0.04734,-0.27754,0.024134,0.14016,0.093752,0.20978,-0.25434,0.04734,0.11696,0.11696,0.20978 -0.090297,-0.089227,-0.089762,-0.089227,0.41332,-0.095114,-0.091903,-0.092438,-0.091903,0.39244,-0.10903,-0.096719,-0.099395,-0.087621,0.3812,-0.12776,-0.10207,-0.099395,-0.10154,0.38977,-0.12455,-0.11278,-0.10314,-0.10261,0.41974 -0.1723,-0.11145,0.2684,0.27209,0.27578,-0.18152,-0.12804,-0.10038,0.25365,0.25918,-0.19442,-0.17045,-0.14832,0.23152,0.23521,-0.16676,-0.19258,-0.13542,-0.017407,0.2389,-0.20733,-0.21471,-0.18152,-0.0026552,0.29053 0.22978,0.22545,0.21729,0.192,0.20714,0.045864,0.045864,0.21879,0.19349,0.20947,0.044366,0.1895,0.188,0.19483,-0.23042,-0.21661,-0.21511,-0.21195,-0.21461,-0.22843,-0.21461,-0.21511,-0.21644,-0.21544,-0.2231 -0.05366,-0.2453,-0.41299,-0.29322,-0.38904,0.018206,-0.12553,-0.19739,-0.077616,-0.2453,0.13798,0.11403,-0.077616,0.11403,0.018206,0.11403,0.16194,0.16194,0.018206,0.11403,0.20985,0.20985,0.23381,0.32963,0.16194 0.20535,0.01717,0.018137,0.017492,0.17745,0.20664,0.19793,0.19116,0.18455,0.17794,0.20793,0.20019,0.19164,0.18552,0.17745,-0.23535,-0.23503,-0.23567,-0.23583,-0.23486,-0.23567,-0.23615,-0.23696,-0.23519,-0.23583 0.20965,0.20892,0.20437,0.20055,0.20473,0.20364,0.20255,0.087018,0.084471,0.083925,0.081014,0.081014,0.082106,0.083197,0.08156,0.08065,0.07974,-0.28159,-0.28159,-0.28414,-0.28196,-0.28159,-0.28123,-0.28305,-0.28396 -0.15002,-0.15123,-0.15524,0.22331,0.21128,-0.15604,-0.15002,-0.14682,0.27143,0.24457,-0.15644,-0.15163,-0.14882,0.28346,0.27584,-0.14521,-0.14842,-0.14762,0.28547,0.31153,-0.14802,-0.14722,-0.14361,-0.14321,0.28266 -0.093945,-0.089867,-0.091436,-0.093004,0.3889,-0.091122,-0.091122,-0.091749,-0.092063,0.40145,-0.092063,-0.090808,-0.09771,-0.092063,0.4005,-0.094887,-0.09269,-0.11999,-0.13254,0.40521,-0.096142,-0.091749,-0.12971,-0.13097,0.39956 0.42856,-0.08845,-0.10486,-0.1084,-0.095988,0.39752,-0.081799,-0.077365,-0.11151,-0.08712,0.40018,-0.091554,-0.080026,-0.095988,-0.087563,0.55537,-0.08579,-0.098205,-0.10353,-0.08712,0.10221,-0.095988,-0.10441,-0.093328,-0.10486 -0.035054,0.16353,0.18857,0.21015,-0.37955,0.092729,0.14108,0.089275,0.1972,-0.39336,0.076324,0.079778,0.059056,0.065963,-0.38991,0.083231,0.074597,0.074597,0.055603,-0.38991,0.10223,0.074597,0.078051,0.064237,-0.383 -0.41729,0.07092,0.096615,0.14801,0.14801,-0.3916,0.019529,0.045224,0.096615,0.22509,-0.41729,-0.0061669,0.07092,0.12231,0.12231,-0.26312,0.07092,0.045224,0.1737,0.14801,-0.41729,-0.0061669,0.07092,0.1737,0.07092 0.97597,-0.026372,-0.054469,-0.036827,-0.069497,-0.021798,-0.076032,-0.077338,-0.025718,-0.019184,-0.059043,-0.030292,-0.034213,-0.028332,-0.024412,-0.068191,-0.053162,-0.030292,-0.026372,-0.025718,-0.050548,-0.046628,-0.03944,-0.027679,-0.024412 0.2763,0.45341,0.23202,0.38699,0.51983,-0.05579,-0.07793,-0.05579,-0.05579,-0.05579,-0.21076,-0.10007,-0.10007,-0.16649,-0.07793,-0.18862,-0.05579,-0.14435,-0.011512,-0.07793,-0.05579,-0.05579,-0.16649,0.010627,-0.16649 0.34962,0.36265,0.35711,0.35679,0.35516,0.35386,-0.10953,-0.11214,-0.10823,-0.10497,-0.11149,-0.11214,-0.11344,-0.11279,-0.11214,-0.11084,-0.11344,-0.11344,-0.11344,-0.11279,-0.11474,-0.11474,-0.11605,-0.11409,-0.11474 -0.24388,-0.16067,0.19329,0.18528,0.11008,-0.24292,-0.24676,0.097276,0.096636,0.094716,-0.24388,-0.24708,0.10624,0.10112,0.094716,-0.24196,-0.25252,0.19649,0.18304,0.18176,-0.24324,-0.24996,0.26945,0.27297,0.18977 0.94484,0.14032,-0.033125,-0.0028638,-0.08922,-0.050101,-0.050101,-0.036078,-0.038292,-0.10989,-0.062649,-0.04272,0.079802,-0.05453,-0.085529,-0.053792,-0.053792,0.0096837,-0.063387,-0.089958,-0.058958,-0.044935,-0.029435,-0.017625,-0.10767 0.12906,0.12906,0.3409,0.16165,0.19424,0.21054,0.17795,0.30831,0.16165,0.16165,0.031287,-0.033895,-0.066486,0.14536,0.014992,-0.29462,-0.27833,-0.099077,-0.066486,-0.0013036,-0.31092,-0.26203,-0.26203,-0.21315,-0.27833 -0.1325,-0.14373,-0.11379,0.3466,0.3597,-0.15683,-0.1587,-0.16806,-0.091328,0.27361,-0.15309,-0.16244,-0.12127,-0.050155,0.24928,-0.20923,-0.13811,-0.059513,0.16506,0.32975,-0.20174,-0.078228,-0.057641,0.086462,0.3859 0.10945,0.10163,0.10545,0.12308,-0.35334,0.11127,0.10599,0.10381,0.11708,-0.35443,0.11327,0.10508,0.10763,0.12399,-0.35661,0.11381,0.11345,0.11708,0.12163,-0.35734,0.11236,0.11327,0.11527,-0.35443,-0.35843 0.29139,0.28184,-0.10603,-0.12751,-0.15734,0.29258,0.29258,-0.12035,-0.13825,-0.1645,0.29258,-0.13109,-0.12989,-0.13825,-0.14899,0.2902,0.29497,-0.13467,-0.14183,-0.15973,0.29139,-0.11319,-0.1287,-0.1478,-0.13944 -0.2664,-0.26778,0.13598,0.13632,0.13735,-0.26537,-0.26571,0.1401,0.13907,0.13838,-0.26675,-0.26022,0.15625,0.16072,0.16037,-0.26881,-0.26468,0.14938,0.159,0.159,-0.27224,0.15041,0.15144,0.16209,0.16209 -0.095711,-0.10028,-0.032953,-0.014697,-0.023825,-0.10028,-0.080877,-0.021543,-0.0021452,-0.023825,-0.091147,-0.035236,-0.012415,-0.027248,-0.026107,-0.086583,-0.020402,-0.024966,-0.032953,-0.036377,0.022958,-0.013556,-0.028389,-0.058056,0.9666 -0.10412,-0.049889,-0.17642,0.23932,0.31163,-0.12219,-0.15834,-0.10412,0.27548,0.34778,-0.15834,-0.21257,-0.14027,0.11279,0.058566,-0.15834,-0.1945,-0.21257,0.16702,0.23932,-0.14027,-0.21257,-0.12219,0.11279,0.40201 0.50527,0.45208,0.43536,0.4308,-0.025105,-0.057019,-0.078295,-0.069177,-0.075256,-0.082854,-0.085893,-0.091972,-0.091972,-0.091972,-0.096531,-0.098051,-0.095012,-0.096531,-0.096531,-0.096531,-0.088933,-0.098051,-0.099571,-0.11021,-0.098051 0.036214,0.030386,-0.0084708,-0.060927,-0.068699,0.0537,0.016786,0.016786,-0.045385,-0.06287,0.042043,0.0090148,0.028443,-0.045385,-0.16973,0.018729,0.010958,-0.010414,-0.11727,-0.19693,0.90661,0.018729,-0.027899,-0.18527,-0.18915 -0.37683,-0.4012,-0.39307,-0.39307,-0.39692,0.073874,0.073018,0.073874,0.073018,0.073874,0.075584,0.076439,0.075584,0.075584,0.074729,0.094399,0.095254,0.095254,0.096109,0.093116,0.22567,0.22567,0.094826,0.09953,0.095682 0.53188,0.23014,-0.15169,-0.18149,-0.09395,0.3121,0.22083,-0.12189,-0.18149,-0.080911,0.22828,0.23573,-0.18149,-0.11258,-0.13679,0.23573,-0.062285,-0.11071,-0.11258,-0.16659,0.2171,-0.10885,-0.1312,-0.14424,-0.13306 0.3154,0.39195,0.21333,0.13677,0.21333,0.13677,0.3154,0.13677,0.11126,0.0091863,-0.016331,-0.016331,0.060221,-0.041849,-0.016331,-0.16944,-0.16944,-0.14392,-0.092884,-0.067366,-0.24599,-0.45013,-0.19495,-0.24599,-0.16944 -0.19028,-0.19756,-0.16844,0.23931,0.21625,-0.19756,-0.19514,-0.17087,0.21382,0.18834,-0.20727,-0.19756,-0.16601,0.19926,0.20533,-0.21213,-0.18057,0.21504,0.21261,0.19562,-0.2097,-0.19756,0.22839,0.19077,0.18591 -0.078055,-0.010766,-0.21263,-0.21263,-0.24628,-0.21263,-0.21263,-0.078055,-0.010766,-0.078055,-0.010766,0.022878,-0.078055,-0.17899,-0.21263,-0.010766,0.022878,-0.010766,0.022878,-0.010766,0.35932,0.35932,0.35932,0.29203,0.42661 0.25503,0.23963,0.25118,0.26273,0.25118,0.043275,0.054826,0.031725,0.054826,0.047126,0.035575,0.012474,0.039425,0.031725,0.031725,0.035575,0.035575,0.035575,0.035575,0.031725,-0.36869,-0.36099,-0.37254,-0.35329,-0.36099 0.6924,0.31251,0.29919,0.28511,0.27864,-0.094782,-0.09364,-0.09364,-0.09364,-0.094782,-0.092117,-0.092117,-0.094782,-0.092498,-0.093259,-0.090976,-0.091737,-0.094021,-0.092879,-0.092879,-0.091737,-0.094401,-0.094782,-0.094782,-0.094401 -0.1808,-0.24149,-0.24941,-0.21115,-0.24017,-0.18476,-0.194,-0.22434,-0.19927,-0.18344,0.19653,-0.19004,-0.19004,0.18861,0.18334,0.19917,0.19653,0.19389,0.18597,0.18597,0.19125,0.19389,0.19653,0.19125,0.18597 0.5324,0.21441,-0.058146,-0.10357,-0.19443,0.47183,0.062992,-0.10357,-0.10357,-0.13386,0.4264,-0.012719,-0.16414,-0.058146,-0.13386,0.1387,-0.012719,-0.058146,-0.17928,-0.17928,-0.043004,-0.027862,-0.027862,-0.11871,-0.13386 0.1466,0.1466,-0.12816,-0.14825,-0.13821,0.15299,0.14478,-0.13729,-0.16559,-0.15099,0.18312,0.13656,-0.13182,-0.1665,-0.13638,0.17764,0.13291,-0.1446,-0.15007,-0.13638,0.49257,0.49166,-0.16194,-0.17107,-0.13821 0.23362,0.26571,-0.11938,-0.055196,-0.21565,0.073167,0.23362,-0.11938,-0.24774,-0.24774,0.13735,-0.11938,-0.023105,-0.087287,-0.21565,0.39408,0.16944,0.16944,-0.023105,-0.24774,0.2978,0.16944,0.041076,-0.11938,-0.34401 0.35826,0.38272,-0.11919,-0.1201,-0.096993,0.36324,-0.10922,-0.121,-0.11013,-0.1056,0.36822,-0.10877,-0.11557,-0.11647,-0.10877,0.36007,-0.11013,-0.11647,-0.11194,-0.11285,0.29756,-0.1201,-0.10922,-0.10651,-0.11104 0.40989,-0.037939,-0.076981,-0.079277,-0.11143,0.46271,0.0056955,-0.095353,-0.10684,-0.11602,0.4673,-0.033346,-0.095353,-0.11143,-0.12291,0.46271,-0.051719,-0.12291,-0.1298,-0.13439,-0.049422,-0.028753,-0.079277,-0.10913,-0.11602 0.33792,0.26676,0.2835,0.41328,0.25838,0.06581,-0.0095449,-0.059781,0.33792,0.22489,-0.10165,-0.16863,-0.16444,-0.12258,-0.11839,-0.080713,-0.16863,-0.16863,-0.17281,-0.072341,-0.093272,-0.12676,-0.16863,-0.21468,-0.177 0.18725,0.19263,0.0016142,0.0016142,-0.34814,0.10116,0.19129,0.024483,0.006995,-0.35352,0.11058,0.17649,0.1321,-0.31316,-0.3589,0.059458,0.22626,0.16438,0.10788,-0.34545,0.050041,0.13479,0.11058,0.052732,-0.31316 -0.11052,-0.13074,-0.1387,0.273,0.33855,-0.13319,-0.13442,-0.12768,0.24788,0.25584,-0.16811,-0.15892,-0.13993,0.24911,0.25584,-0.1626,-0.16444,-0.13993,0.25033,0.25217,-0.17056,-0.16505,-0.1626,-0.17791,0.26258 0.1894,0.16131,0.15234,0.15653,0.25693,0.17625,0.15414,0.14876,0.15175,0.25394,0.17266,0.17565,-0.21758,0.14816,0.1631,-0.21818,-0.22057,-0.22714,-0.22774,-0.22714,-0.22117,-0.22296,-0.22356,-0.22714,-0.22774 -0.37791,-0.37772,-0.37732,-0.37732,-0.37673,0.017639,0.018425,0.018228,0.017835,0.018425,0.013903,0.0060394,0.089986,0.21483,0.15329,0.072096,0.078387,0.085268,0.21286,0.15014,0.069344,0.070916,0.19104,0.19222,0.19615 0.27861,0.28724,0.28379,0.28206,0.2648,-0.09425,-0.073536,0.31486,0.32522,0.28033,-0.13913,-0.14086,-0.13223,-0.11151,-0.10461,-0.14431,-0.14949,-0.15294,-0.14604,-0.13913,-0.15467,-0.16157,-0.16502,-0.15294,-0.15467 -0.40414,0.082583,0.085174,0.083101,0.17381,-0.40051,0.076881,0.088284,0.071697,0.081546,-0.3974,0.090358,0.09606,0.090876,0.14634,-0.39326,0.079473,0.10487,0.12094,0.13027,-0.39067,0.068587,0.090876,0.12405,0.10021 0.43675,-0.021906,-0.069826,-0.136,-0.136,0.4436,-0.017342,-0.090362,-0.14056,-0.14969,-0.01506,-0.01506,-0.053852,-0.14285,-0.15197,0.44816,-0.031034,-0.017342,-0.12915,-0.14513,0.44132,-0.0082148,-0.02647,-0.12459,-0.14741 0.96341,-0.034204,-0.039685,-0.078055,-0.01776,-0.012278,-0.078055,-0.05613,-0.061611,0.02061,0.0041659,-0.028723,-0.067092,-0.050648,-0.0067969,-0.012278,-0.061611,-0.050648,-0.028723,-0.10546,-0.045167,-0.023241,0.053498,-0.078055,-0.10546 -0.086493,-0.12173,-0.16017,0.048052,0.37801,-0.089697,-0.11212,-0.16338,0.028831,0.38441,-0.096104,-0.10251,-0.14416,-0.016017,0.39082,-0.073679,-0.0929,-0.13454,-0.14095,0.38762,-0.086493,-0.099307,-0.14095,-0.15056,0.39402 -0.076007,-0.066871,-0.00031321,-0.044685,0.010127,-0.073396,-0.023804,-0.015974,-0.042075,0.040144,-0.079922,-0.056431,-0.047295,-0.018584,0.07799,-0.079922,-0.076007,-0.079922,-0.068176,0.06755,-0.078617,-0.076007,-0.074702,-0.070786,0.95368 -0.28911,-0.32599,-0.030976,-0.14161,-0.25224,-0.14161,-0.10473,-0.21536,-0.14161,-0.14161,0.042777,-0.10473,-0.21536,0.042777,0.0059002,0.19028,0.11653,0.079653,0.11653,0.042777,0.41154,0.15341,0.22716,0.30091,0.37467 -0.39855,0.097108,0.093375,0.097938,0.096279,-0.40146,0.097108,0.09379,0.095034,0.095034,-0.40021,0.10001,0.097108,0.097938,0.10416,-0.39814,0.10167,0.097523,0.10001,0.10997,-0.40104,0.097938,0.10582,0.10831,0.11328 -0.39935,0.092597,0.091327,0.095455,0.097679,-0.39268,0.087516,0.10625,0.093232,0.097043,-0.40189,0.097996,0.10244,0.10403,0.098949,-0.40189,0.1053,0.1034,0.092597,0.11006,-0.40316,0.10022,0.10562,0.10054,0.11673 -0.20454,-0.22394,-0.090599,-0.099084,0.19427,-0.20515,-0.21485,-0.086356,0.19184,0.18457,-0.20212,-0.20636,0.19305,0.19184,0.17245,-0.22758,-0.21364,0.20396,0.1882,0.19245,-0.24212,-0.20939,0.19972,0.17669,0.3367 -0.37511,0.066196,0.024823,0.066196,0.10757,-0.40269,0.079987,0.13515,0.079987,0.12136,-0.44406,0.079987,0.052405,0.13515,0.10757,-0.37511,0.038614,0.13515,0.10757,0.13515,-0.37511,0.12136,0.14894,0.10757,0.12136 -0.38994,0.082869,0.09464,0.088755,0.082869,-0.4076,0.090716,0.082869,0.096602,0.090716,-0.39779,0.080907,0.088755,0.09464,0.09464,-0.39386,0.090716,0.09464,0.10053,0.11622,-0.39779,0.098564,0.10249,0.1123,0.20254 0.11746,0.14256,0.067265,-0.03313,-0.20882,0.092363,0.16766,0.16766,-0.20882,-0.30922,0.14256,0.11746,0.16766,0.067265,-0.28412,0.067265,0.31825,0.067265,-0.0080316,-0.30922,0.16766,0.19276,-0.0080316,-0.18372,-0.51001 0.082192,0.25869,0.18317,0.069057,-0.32171,0.10518,0.091222,0.18399,0.094506,-0.3135,0.087117,0.09861,0.18399,-0.2626,-0.33074,0.082192,0.087117,0.20944,-0.10662,-0.36604,0.071519,0.079729,0.20205,-0.11401,-0.35454 -0.39897,0.077331,0.089168,0.087048,0.093408,-0.39826,0.086341,0.11655,0.10595,0.088991,-0.40003,0.086871,0.12574,0.10772,0.10789,-0.39967,0.12503,0.095175,0.11054,0.11019,-0.39932,0.090228,0.085635,0.094645,0.11178 0.070593,0.16472,0.070593,0.11766,0.070593,0.094124,0.023531,0.070593,0.11766,0.14119,0.11766,0.21178,0.11766,0.16472,0.14119,-0.023531,0,0.094124,0.047062,0.094124,-0.42356,-0.42356,-0.44709,-0.3765,-0.23531 0.26935,0.039315,-0.12798,-0.044334,-0.023422,0.39482,0.039315,-0.23254,-0.023422,-0.023422,0.33209,-0.0025095,-0.1489,-0.21163,-0.0025095,0.39482,0.039315,-0.19072,-0.16981,-0.065246,0.37391,0.039315,-0.16981,-0.21163,-0.27437 -0.24486,0.10653,0.094197,0.11269,0.069538,-0.31268,0.10036,0.11886,0.13119,0.11269,-0.44213,0.094197,0.094197,0.11269,0.11269,-0.46063,-0.059921,0.12502,0.11269,0.11269,-0.46063,0.014056,0.11269,0.11269,0.13119 0.29824,-0.13697,-0.13697,-0.13764,-0.13683,0.29945,-0.1371,-0.13724,-0.13697,-0.1371,0.29405,0.27485,-0.13697,-0.13778,-0.13737,0.29418,0.27606,-0.13805,-0.1371,-0.13764,0.29594,0.29878,-0.13602,-0.13724,-0.13656 -0.18619,-0.25385,-0.21885,-0.20018,-0.15119,-0.12786,-0.17452,-0.17685,-0.16985,-0.12319,-0.097526,-0.10453,0.072794,-0.099859,0.016799,-0.04853,0.054129,0.14979,0.25011,0.14746,0.098459,0.39244,0.12646,0.4251,0.39944 -0.262,-0.25666,-0.26413,-0.2652,-0.26413,0.13749,-0.24384,-0.25986,-0.27268,-0.28336,0.14711,0.12468,0.12147,0.13963,0.28383,0.1642,0.13108,0.13108,0.12574,0.14711,0.17061,0.14711,0.13749,0.13429,0.12895 0.13708,0.14079,0.13832,-0.28495,-0.293,0.13708,0.13522,0.13522,-0.29052,-0.293,0.1346,0.13584,0.1346,-0.29238,-0.29176,0.13522,0.13832,0.13522,0.13708,-0.2899,0.13894,0.13832,0.14017,0.14017,-0.29671 -0.017177,-0.11628,-0.12288,-0.1361,-0.1394,0.032373,-0.070031,-0.046907,-0.15261,-0.12619,-0.070031,-0.089851,-0.036997,-0.089851,-0.11628,0.065406,0.13147,0.0092493,0.025766,-0.063424,0.89124,0.022463,0.15129,0.075316,-0.010571 -0.1385,0.012866,0.16423,0.27775,0.35343,-0.19526,-0.081736,0.069627,0.22099,0.31559,-0.30878,-0.081736,0.012866,0.069627,0.22099,-0.3277,-0.19526,-0.043895,0.069627,0.16423,-0.27094,-0.2331,-0.25202,0.012866,0.16423 0.20984,0.17384,0.19827,0.19955,0.1867,0.20727,0.18798,0.17512,0.19955,0.18541,0.19698,0.19184,0.18027,-0.21061,-0.19261,-0.18232,-0.19518,-0.19261,-0.21318,-0.20675,-0.22604,-0.22604,-0.19775,-0.23118,-0.21833 0.19145,0.11278,-0.036269,-0.1729,-0.1936,0.30531,0.33843,-0.081812,-0.235,-0.24535,0.41709,-0.11286,-0.14599,-0.15841,-0.20602,0.32601,0.0072041,-0.14392,-0.16255,-0.065251,0.32601,0.065168,-0.067321,-0.061111,-0.0010765 0.09588,0.15798,0.1083,0.14556,0.12072,0.1704,0.1704,0.14556,0.1704,0.14556,0.1083,0.1083,0.1704,0.14556,0.1083,-0.21461,-0.20219,-0.14009,0.058621,0.12072,-0.31397,-0.30155,-0.37607,-0.37607,-0.32639 0.16561,0.092974,0.020338,-0.01598,-0.37916,0.16561,0.12929,0.16561,-0.19757,-0.16125,0.12929,0.12929,0.12929,-0.01598,-0.48811,0.20193,0.27456,0.056656,0.12929,-0.34284,0.056656,0.020338,0.12929,-0.052298,-0.34284 -0.39615,0.095254,0.11039,0.13508,0.10242,-0.4065,0.096847,0.10242,0.11835,0.092865,-0.40013,0.088086,0.091272,0.096847,0.097643,-0.40252,0.092068,0.092068,0.099236,0.10879,-0.39217,0.089679,0.091272,0.096051,0.10083 0.077676,0.092131,0.077676,0.058401,0.072857,0.092131,0.10659,0.09695,0.09695,0.09695,0.09695,0.10659,0.11141,0.10659,0.087313,0.11622,0.11622,0.12586,0.13068,0.12586,-0.38009,-0.38009,-0.409,-0.409,-0.41382 0.97569,-0.045934,-0.040206,-0.040206,-0.0044101,-0.047723,-0.058104,-0.046292,-0.049513,-0.013001,-0.060968,-0.062042,-0.058462,-0.042354,0.004181,-0.059894,-0.060968,-0.052019,-0.021592,-0.014433,-0.051661,-0.053451,-0.038416,-0.035195,-0.023024 -0.39695,0.10396,0.10108,0.10396,0.10108,-0.40777,0.10685,0.10541,0.10252,0.10252,-0.39623,0.10685,0.10685,0.10252,0.10252,-0.39839,0.092416,0.09386,0.09819,0.099634,-0.39983,0.083755,0.088807,0.095303,0.10108 -0.10265,-0.065957,-0.046385,-0.043939,-0.07085,-0.10021,-0.065957,-0.053725,-0.053725,-0.068404,-0.046385,-0.065957,-0.068404,-0.046385,-0.061064,0.4527,-0.075743,-0.053725,-0.053725,-0.039046,0.84169,0.022116,-0.068404,-0.046385,-0.019474 -0.19272,-0.37568,-0.19272,-0.25371,-0.10124,-0.0097579,-0.070745,-0.13173,-0.070745,-0.22321,-0.10124,-0.070745,0.020736,-0.040251,-0.19272,0.051229,0.11222,0.051229,0.2037,0.081723,0.35616,0.41715,0.38666,0.14271,0.2037 0.21375,0.21375,0.18648,0.022901,0.050165,0.35006,0.15922,0.13196,0.050165,0.077428,0.26827,0.13196,0.10469,0.10469,0.10469,-0.058889,-0.19521,-0.086152,-0.22247,-0.11342,-0.24973,-0.38605,-0.33152,-0.30426,-0.22247 0.18569,0.19281,0.2035,0.19281,0.18213,0.17856,0.2035,0.2035,0.20706,0.19638,-0.22046,-0.15633,0.10375,0.21063,0.21063,-0.22402,-0.22759,-0.2169,-0.20265,-0.1207,-0.2169,-0.22759,-0.22759,-0.22046,-0.20977 -0.28672,0.10872,0.14509,0.20417,0.16327,-0.28217,0.085997,0.13599,0.16327,0.16327,-0.30035,-0.22763,0.14509,0.11781,0.13599,-0.31399,-0.30035,0.085997,0.13145,0.16327,-0.29126,-0.30035,0.058725,0.15872,0.13599 0.39546,-0.13365,-0.13479,-0.13411,-0.13456,0.19911,-0.13181,-0.13502,-0.13411,-0.13433,0.31279,0.20072,-0.13433,-0.13456,-0.13525,0.31256,0.32795,-0.13411,-0.13502,-0.13456,0.33782,0.19842,-0.13479,-0.13479,-0.13502 0.087242,0.090384,0.11484,-0.35907,-0.36064,0.084325,0.10946,0.11237,0.10833,-0.35907,0.091506,0.12651,0.11484,0.10676,-0.35099,0.11484,0.12292,0.11731,0.11821,-0.35076,0.12561,0.12786,0.12943,0.12853,-0.35076 -0.38423,0.068872,0.10637,0.090746,0.090746,-0.39673,0.10325,0.10012,0.10012,0.096996,-0.40298,0.12824,0.10012,0.096996,0.10637,-0.41548,0.075122,0.10325,0.11262,0.090746,-0.39673,0.11887,0.10012,0.10012,0.10637 0.41861,0.38208,0.14465,-0.037989,-0.12931,0.43687,0.16291,-0.0014611,-0.11105,-0.22063,0.23597,0.071595,-0.019725,-0.20237,-0.27542,0.071595,-0.0014611,-0.074517,-0.14757,-0.22063,0.016803,0.035067,-0.14757,-0.14757,-0.23889 0.2947,0.29174,-0.13851,-0.13332,-0.14813,0.291,0.29396,-0.12962,-0.13332,-0.14739,0.291,0.2947,-0.1311,-0.13406,-0.14887,0.28877,-0.13777,-0.13332,-0.1348,-0.13406,0.28581,-0.13555,-0.13851,-0.13406,-0.13925 0.2112,0.11649,0.14017,0.18752,0.021783,0.11649,0.14017,0.16384,0.092813,0.2112,-0.0018941,0.021783,0.021783,0.14017,0.18752,0.11649,-0.025571,0.045459,-0.025571,-0.025571,-0.35705,-0.45175,-0.30969,-0.35705,-0.38072 -0.26606,-0.26697,0.13324,0.14846,0.15211,-0.26514,-0.26788,0.12563,0.14024,0.13689,-0.26393,-0.26606,0.13294,0.14146,0.14298,-0.26606,-0.26636,0.14541,0.14815,0.14633,-0.26423,0.15485,0.15181,0.20628,0.18589 0.17751,0.17829,0.18063,0.17207,0.15963,0.18218,0.17829,0.1814,0.17751,0.16196,0.19151,-0.22925,0.17907,0.18529,0.17518,-0.21914,-0.23081,-0.22147,-0.23003,-0.22225,-0.22147,-0.23003,-0.22303,-0.22147,-0.23158 -0.20052,-0.20052,-0.27318,-0.24896,-0.15209,-0.055216,0.017437,-0.1763,-0.24896,-0.12787,-0.030999,-0.10365,-0.006781,-0.055216,-0.10365,0.18696,0.16274,0.2354,0.065872,-0.12787,0.3807,0.35648,0.35648,0.28383,0.065872 0.3187,-0.11017,-0.11279,-0.11129,-0.11148,0.38021,-0.11241,-0.11409,-0.11036,-0.11222,0.38582,-0.1126,-0.1126,-0.11148,-0.11148,0.33198,-0.11297,-0.11241,-0.11335,-0.11129,0.33198,0.38171,-0.11316,-0.11279,-0.11148 -0.16143,-0.14855,-0.16143,-0.13953,0.25736,-0.15886,-0.14726,-0.17045,0.26895,0.28957,-0.13953,-0.14082,-0.17819,0.27797,0.26509,-0.11891,-0.14211,-0.15241,0.25349,0.27282,-0.14855,-0.13695,-0.14984,0.25607,0.25349 0.17986,-0.17718,-0.018186,-0.26923,-0.31107,0.17428,0.17149,0.096176,-0.23575,-0.29712,0.17428,0.18265,0.12407,-0.21065,-0.27759,0.21333,0.18544,0.17428,-0.13534,-0.26644,0.18544,0.18822,0.18544,0.13802,-0.17439 0.20445,0.20852,0.20852,0.20903,0.20191,0.17849,0.18613,0.18307,0.20852,0.17493,0.17951,0.17493,0.17289,-0.20579,-0.21699,-0.17271,-0.21801,-0.22106,-0.21088,-0.21394,-0.17475,-0.21496,-0.21394,-0.21394,-0.21394 0.037973,0.033028,-0.090581,-0.16475,-0.10047,0.047861,0.033028,-0.12519,-0.19194,-0.14744,0.22586,0.11461,-0.068331,-0.21172,-0.18947,0.38408,0.38408,-0.05597,-0.18205,-0.17711,0.40138,0.38655,-0.023832,-0.15733,-0.16227 -0.3938,0.098667,0.097801,0.095205,0.11338,-0.39553,0.10559,0.10126,0.095205,0.1004,-0.39726,0.097801,0.10992,0.090877,0.09607,-0.40505,0.094339,0.099532,0.09607,0.12723,-0.40678,0.090012,0.096936,0.091743,0.1004 0.25983,0.26702,0.26237,0.26829,0.27294,0.26322,-0.14941,0.26533,0.26787,0.27294,-0.15067,-0.14898,-0.15025,-0.15067,-0.14941,-0.14898,-0.14983,-0.15067,-0.14941,-0.15025,-0.14983,-0.15067,-0.15067,-0.14941,-0.15067 0.12826,0.13224,0.13522,-0.29841,-0.30239,0.13522,0.13224,0.13721,-0.29543,-0.29443,0.13821,0.14019,0.13821,-0.27951,-0.28349,0.14119,0.13821,0.13721,0.13622,-0.29244,0.13522,0.14318,0.14218,0.14119,-0.28548 0.14102,0.18656,0.19472,-0.15456,-0.15843,0.14746,0.2046,0.29526,-0.15585,-0.15585,0.13544,0.20718,0.20718,-0.15198,-0.29075,0.12684,0.20289,-0.1537,-0.15198,-0.2972,0.14575,0.20632,-0.15113,-0.28044,-0.29935 -0.25322,-0.25215,0.14712,0.14766,0.14533,-0.25322,-0.25143,0.14032,0.1439,0.14158,-0.22209,-0.21744,0.13907,0.14247,0.13585,-0.22174,-0.21995,0.13979,0.44067,0.13299,-0.22192,-0.22138,0.11421,0.11242,0.11117 -0.12017,-0.15551,-0.049482,0.16258,0.32163,-0.17319,-0.12017,0.038879,0.074223,0.55137,-0.26155,-0.17319,-0.03181,0.16258,0.35698,-0.2262,-0.17319,-0.12017,0.12724,0.18026,-0.17319,-0.1025,-0.17319,0.0035344,0.074223 0.30003,-0.13401,-0.1418,-0.14354,-0.12881,0.29743,-0.13487,-0.13141,-0.14267,-0.13401,0.2957,0.29397,-0.12361,-0.1444,-0.1444,0.28444,0.29657,-0.11668,-0.15047,-0.15133,0.26884,0.29223,-0.11581,-0.1392,-0.1522 0.28695,-0.13275,-0.1351,-0.13589,-0.13667,0.29559,-0.13353,-0.13667,-0.13746,-0.14139,0.28852,0.27949,-0.13589,-0.13864,-0.13903,0.29794,0.28341,-0.13667,-0.14021,-0.13353,0.29598,0.30383,-0.13864,-0.14139,-0.13824 0.21016,0.13232,0.095791,0.052375,0.025901,0.19162,0.14185,0.09685,0.048668,0.022725,0.19798,0.11644,0.10479,0.061905,0.022195,0.12809,0.10691,0.095261,0.060846,0.020607,-0.38814,-0.38602,-0.38549,-0.38814,-0.38549 -0.11522,-0.11268,-0.10249,-0.097394,-0.099941,-0.10504,-0.11013,-0.11268,-0.11013,-0.10249,-0.10249,-0.092301,-0.10249,-0.099941,-0.10504,0.0044826,-0.00061126,-0.033721,-0.056644,-0.066831,0.49604,0.51132,0.54188,0.017217,0.1573 0.20465,0.15157,0.045415,-0.1203,-0.17855,0.61116,0.35612,-0.086636,-0.1669,-0.19021,0.1697,0.10497,-0.052976,-0.16561,-0.18762,0.1205,0.11662,-0.119,-0.16561,-0.18114,0.1205,0.10497,-0.13972,-0.16949,-0.18244 0.15938,0.092716,-0.23011,-0.23,-0.27705,0.17376,0.16564,0.164,-0.23062,-0.27746,0.17663,0.16831,0.16369,-0.23083,-0.27725,0.17735,0.16513,0.16318,-0.22754,-0.22774,0.17663,0.16431,0.16451,0.16133,-0.22795 0.14594,0.22195,0.22195,0.031924,-0.23411,0.14594,0.22195,0.069928,0.031924,-0.23411,0.14594,0.069928,0.050926,-0.12009,-0.1581,0.10793,0.08893,0.069928,-0.12009,-0.34812,0.25995,0.08893,0.050926,-0.23411,-0.57615 0.32033,0.31741,-0.081032,-0.1146,-0.10876,0.32033,0.31741,-0.11314,-0.13357,-0.1146,0.31741,-0.10292,-0.13066,-0.15255,-0.14087,0.32909,-0.10584,-0.15109,-0.15109,-0.1292,0.3145,-0.11022,-0.11606,-0.15985,-0.12044 -0.24234,-0.18446,-0.10728,0.047079,0.18214,-0.20375,-0.26163,0.10496,0.14355,0.18214,-0.24234,-0.20375,0.27861,0.12426,0.12426,-0.26163,-0.20375,0.25932,0.18214,0.18214,-0.26163,-0.22304,0.22073,0.18214,0.18214 -0.30343,-0.21419,-0.18444,-0.15469,-0.15469,-0.21419,-0.18444,-0.065446,-0.065446,-0.18444,0.053547,-0.12494,-0.095194,-0.095194,-0.18444,0.11304,0.17254,0.26178,0.23204,0.26178,0.49977,0.20229,0.11304,0.17254,0.14279 0.050343,0.19019,0.050343,-0.19438,-0.19438,0.19019,0.19019,0.19019,0.085304,-0.36919,0.15523,0.19019,0.19019,0.050343,-0.36919,0.12027,0.19019,0.085304,-0.019578,-0.36919,0.12027,0.085304,-0.019578,-0.29926,-0.29926 -0.33577,-0.23608,-0.29589,-0.39559,-0.41553,-0.036687,-0.036687,0.023129,-0.17626,-0.13638,0.1627,0.12282,0.18264,0.082946,0.023129,0.24246,0.18264,0.20258,0.14276,0.082946,0.18264,0.24246,0.1627,0.023129,0.0031902 0.3539,0.21074,0.15347,-0.07559,-0.47645,0.268,0.15347,-0.018325,-0.16149,-0.36192,0.268,0.15347,0.038941,-0.018325,-0.27602,0.096206,0.15347,0.038941,-0.018325,-0.19012,-0.046958,0.010308,0.096206,-0.13286,-0.21875 0.31691,0.31002,-0.13919,-0.13635,-0.14811,0.2934,0.2938,-0.13716,-0.13757,-0.14243,0.28083,0.29542,-0.12784,-0.13757,-0.13797,0.27596,-0.13635,-0.13513,-0.14,-0.14324,0.26299,-0.12986,-0.13554,-0.12743,-0.13757 0.97666,-0.058645,-0.044538,-0.039111,-0.021748,-0.062986,-0.060816,-0.049964,-0.043452,-0.025004,-0.054305,-0.058645,-0.046708,-0.023918,-0.021748,-0.058645,-0.052134,-0.039111,-0.0326,-0.014151,-0.058645,-0.047793,-0.034771,-0.022833,-0.0043843 -0.17131,0.058946,0.081971,0.12802,0.17407,-0.14828,0.058946,0.12802,0.15105,0.1971,-0.37854,-0.079208,0.081971,0.1971,0.22012,-0.28644,-0.28644,-0.010131,0.081971,0.1971,-0.42459,-0.30946,-0.056182,0.1971,0.1971 0.33771,0.30807,-0.073099,-0.14298,-0.20651,0.34195,0.34618,-0.062511,-0.11757,-0.21498,0.34195,0.33983,-0.070982,-0.14722,-0.1938,0.03278,-0.02863,-0.070982,-0.1451,-0.21074,0.020075,-0.018042,-0.062511,-0.11757,-0.18533 -0.19014,-0.19014,-0.25526,-0.2227,-0.51572,-0.12502,-0.092465,-0.2227,0.070326,-0.059907,-0.059907,0.0052093,-0.027349,-0.059907,-0.059907,0.26568,0.20056,0.168,0.168,0.037768,0.33079,0.20056,0.20056,0.23312,0.20056 -0.16858,-0.049303,-0.0095425,0.18926,0.30854,-0.36738,-0.2481,0.18926,0.069978,0.1495,-0.2481,-0.12882,0.10974,0.22902,0.30854,-0.12882,-0.2481,-0.12882,0.22902,0.22902,-0.32762,-0.12882,0.069978,-0.0095425,0.10974 0.11478,0.026033,0.011242,-0.16626,-0.32897,0.11478,0.0852,0.20353,-0.062716,-0.37334,0.14437,0.026033,0.21832,0.11478,-0.41771,0.23312,0.11478,0.12957,0.23312,-0.28459,0.15916,0.026033,0.055616,-0.00355,-0.37334 0.26638,0.26638,0.26638,-0.031545,-0.10164,0.16123,0.2138,0.16123,-0.031545,-0.24184,0.23133,0.17875,0.038555,-0.36452,-0.31194,0.12618,0.1437,0.038555,-0.31194,-0.25937,0.05608,-0.01402,-0.04907,-0.22432,-0.20679 0.55261,0.35344,0.33533,0.35344,0.11805,0.19048,0.081841,0.027522,-0.026798,-0.13544,-0.18976,-0.13544,-0.06301,-0.15354,-0.099223,-0.18976,-0.099223,-0.11733,-0.026798,-0.13544,-0.081117,-0.15354,-0.13544,-0.13544,-0.13544 0.69154,0.48528,0.33527,0.13478,0.068427,-0.078697,-0.065715,-0.048407,-0.071485,-0.061388,-0.080139,-0.091678,-0.084466,-0.087351,-0.084466,-0.094563,-0.097448,-0.091678,-0.090236,-0.094563,-0.10033,-0.10178,-0.096005,-0.096005,-0.09889 0.24267,0.20286,-0.17393,-0.18009,0.20368,0.2398,0.22133,-0.17968,-0.17968,-0.17804,0.24432,0.20491,-0.1805,-0.17722,-0.18009,0.24308,0.19876,-0.17475,-0.17475,-0.17516,0.2398,0.23611,-0.1727,-0.17557,-0.17516 0.34164,-0.1251,-0.12931,-0.13019,-0.13063,0.44808,-0.1251,-0.13063,-0.12864,-0.12931,0.44676,-0.020422,-0.13063,-0.13329,-0.12908,0.43967,-0.12687,-0.12842,-0.014226,-0.01666,0.2343,-0.12798,-0.01998,-0.017767,-0.016217 0.22691,0.26317,0.32763,-0.16793,-0.32908,0.17453,0.15036,0.13424,-0.0067686,-0.29282,0.12216,0.15439,0.069781,-0.1921,-0.30491,0.069781,0.069781,0.11007,0.0053182,-0.41369,0.03755,0.03755,0.025463,0.053665,-0.32505 -0.38968,0.067603,0.071336,0.071336,0.067603,-0.38781,0.074136,0.06667,0.068536,0.091867,-0.39248,0.065737,0.073203,0.06947,0.14319,-0.40181,0.06947,0.11333,0.14413,0.17492,-0.39248,0.071336,0.091867,0.19732,0.17119 0.13575,0.13227,0.12879,-0.36723,-0.40726,0.13401,0.12879,0.12183,0.11661,-0.4003,0.11139,0.11313,0.10268,0.10443,-0.33938,0.10094,0.10094,0.097463,0.099204,-0.31153,0.10268,0.10268,0.093983,0.092242,-0.29413 -0.20979,-0.20856,-0.20979,-0.21019,-0.21182,-0.20652,-0.20856,-0.20734,-0.20775,-0.20856,0.18816,0.18979,0.18979,-0.20489,-0.20408,0.19142,0.19142,0.19305,0.19142,0.19142,0.19305,0.19631,0.19305,0.19468,0.19428 0.17156,0.17767,0.20211,0.65829,0.53813,-0.048388,-0.076899,-0.11967,-0.1105,-0.010712,-0.099301,-0.12578,-0.099301,-0.080972,-0.038205,-0.10847,-0.11559,-0.11661,-0.086064,-0.056534,-0.1105,-0.12578,-0.11967,-0.039224,-0.059589 -0.037836,-0.040321,-0.035351,-0.040321,-0.044462,-0.037008,-0.039493,-0.041149,-0.042806,-0.044462,-0.033695,-0.037008,-0.041977,-0.040321,-0.053573,-0.040321,-0.034523,-0.028725,-0.042806,-0.062685,-0.037008,-0.038664,-0.040321,-0.044462,0.9793 0.97693,-0.03456,-0.035866,-0.03456,-0.038476,-0.07241,-0.042391,-0.043697,-0.03195,-0.033255,-0.052833,-0.050222,-0.043697,-0.020204,-0.025424,-0.059358,-0.048917,-0.038476,-0.028035,-0.014983,-0.059358,-0.046307,-0.024119,-0.020204,-0.077631 0.1786,0.1786,0.2145,0.19492,0.18513,0.16228,0.17207,0.1786,0.21777,0.20471,-0.21307,-0.098831,0.12964,0.14923,0.17207,-0.26529,-0.25224,-0.18043,-0.075984,0.054573,-0.25876,-0.26203,-0.26203,-0.26203,-0.26203 -0.1954,-0.19162,0.21011,0.21388,0.20916,-0.20011,-0.18314,0.21294,0.20916,0.19973,-0.19917,-0.18031,-0.15579,0.20068,0.20351,-0.19728,-0.19351,-0.19162,0.20445,0.19879,-0.19823,-0.202,-0.20671,0.21859,0.21388 -0.09736,-0.19344,0.2229,0.15885,0.2229,-0.28952,-0.065334,-0.16141,0.28696,0.12682,-0.28952,-0.19344,0.030745,0.15885,0.38303,-0.25749,-0.12939,0.030745,0.19088,0.15885,-0.28952,-0.12939,-0.09736,-0.033307,0.25493 -0.26294,-0.29565,-0.23024,-0.26294,-0.23024,-0.16483,-0.32835,-0.034012,-0.066717,-0.099421,-0.066717,0.031396,-0.13212,0.096804,0.096804,0.096804,0.16221,0.19492,0.26033,0.16221,0.19492,0.031396,0.22762,0.19492,0.42385 -0.17098,-0.17628,-0.17435,-0.1782,-0.17868,-0.17483,-0.17531,-0.15894,-0.1729,-0.17579,0.13819,0.03947,-0.17098,-0.17724,-0.17531,0.13675,0.14012,0.13675,0.13434,0.13241,0.14927,0.1589,0.18683,0.44833,0.45844 0.38415,0.16422,-0.092373,-0.055717,-0.34896,-0.019061,-0.019061,0.017595,-0.20234,-0.20234,0.31084,-0.019061,-0.092373,-0.20234,-0.20234,0.27419,0.017595,0.12756,-0.092373,-0.16568,0.45747,0.16422,0.090907,-0.092373,-0.20234 -0.20816,-0.21016,-0.20616,-0.20916,-0.20766,-0.20766,-0.20416,-0.20616,-0.20816,-0.20466,-0.20616,-0.20317,0.17133,0.17233,0.16833,0.24323,0.17532,0.18531,0.17782,0.16534,0.27219,0.21577,0.1888,0.18331,0.16234 -0.21642,-0.21699,-0.21899,-0.22069,-0.22098,-0.21443,-0.21472,-0.21728,-0.21728,-0.21756,0.24079,0.23681,0.23937,0.093038,-0.21585,0.23994,0.23852,0.24051,0.084782,0.10727,0.10613,0.11268,0.25731,0.088483,0.10556 -0.18267,-0.1784,-0.19336,0.3132,0.30892,-0.18267,-0.19692,-0.18196,0.13651,0.33742,-0.17127,-0.096466,0.12439,0.12368,0.34169,-0.11998,-0.17769,-0.17769,0.098746,0.12154,-0.098604,-0.17555,-0.17982,0.098034,0.30892 0.32243,0.32243,-0.083092,-0.10838,-0.10228,0.3137,0.31719,-0.10402,-0.11536,-0.12408,0.31545,-0.093557,-0.12757,-0.12495,-0.1389,0.31545,-0.10577,-0.13542,-0.13629,-0.14588,0.3294,-0.1328,-0.14501,-0.15199,-0.16071 -0.26574,-0.19269,0.23274,0.25637,0.34661,-0.21847,-0.14327,-0.035839,0.26067,0.29505,-0.24425,-0.14327,-0.11534,0.20266,0.21555,-0.19484,-0.20343,-0.078811,0.10382,0.19836,-0.21632,-0.16476,-0.012204,0.18117,-0.063771 -0.48004,-0.35577,-0.267,-0.24925,-0.30251,-0.16049,-0.053969,-0.036216,-0.071721,-0.071721,0.17682,0.070301,0.12356,0.14131,0.017043,0.31884,0.17682,0.12356,0.14131,-0.018463,0.19457,0.23008,0.17682,0.088054,0.088054 0.38126,0.066775,0.065142,0.063918,-0.25149,0.37861,0.066979,0.067591,0.064734,-0.25179,0.38065,0.067999,0.066367,-0.2519,-0.25281,0.062489,0.056877,0.053612,-0.25281,-0.25414,0.062693,0.059326,0.056265,-0.252,-0.25434 0.35403,0.11695,0.085071,-0.14902,-0.17692,0.362,0.34606,-0.12512,-0.14604,-0.16895,0.18469,0.28032,-0.14604,-0.16994,-0.16098,0.16476,-0.15699,-0.15301,-0.16596,-0.15201,0.22553,0.21557,-0.15699,-0.16197,-0.14504 0.096104,0.043106,0.13144,0.025439,0.096104,0.11377,0.060772,0.11377,0.11377,0.16677,0.1491,0.13144,0.11377,0.1491,0.18444,0.078438,0.025439,-0.027559,0.078438,0.078438,-0.50455,-0.36322,-0.36322,-0.29255,-0.39855 0.12493,-0.1236,-0.13263,-0.13443,-0.13804,0.30846,-0.11578,-0.13985,-0.13564,-0.13804,0.30786,0.30786,-0.13624,-0.13865,-0.13985,0.30305,0.31267,-0.13744,-0.13564,-0.13744,0.31628,0.31508,-0.13564,-0.13804,-0.13925 -0.28575,-0.2589,0.17665,0.16706,0.19455,-0.26593,-0.25996,0.15853,0.14767,0.14724,-0.26763,-0.26529,0.13787,0.14468,0.13723,-0.26316,-0.26231,0.13787,0.13637,0.13808,-0.2655,0.14255,0.14596,0.13787,0.14426 0.18385,0.10974,0.04871,-0.0065102,-0.098059,0.18676,0.12137,0.063242,-0.015229,-0.086434,0.18676,0.1112,0.060335,-0.025401,-0.50204,0.18821,0.10974,0.042897,-0.026854,-0.47879,0.18531,0.11556,0.054523,-0.032667,-0.49623 0.29323,0.29671,-0.13637,-0.13683,-0.14054,0.28976,0.29485,-0.13568,-0.13591,-0.14123,0.29069,0.29277,-0.13475,-0.13591,-0.13869,0.28745,-0.13591,-0.13591,-0.13683,-0.13846,0.28675,-0.13614,-0.13753,-0.13521,-0.14031 -0.025809,-0.039419,-0.045468,-0.044964,-0.039923,0.00015122,-0.041183,-0.04698,-0.046476,-0.038915,-0.032362,-0.042695,-0.04698,-0.047232,-0.046224,-0.038915,-0.044207,-0.045972,-0.047232,-0.0495,-0.031858,-0.043199,-0.045972,-0.047232,0.97856 -0.21007,-0.18301,-0.20306,0.20694,0.20293,-0.19203,-0.181,-0.19103,0.20293,0.20394,-0.181,-0.18702,-0.20506,0.21396,0.231,-0.18902,-0.19704,0.20594,0.20193,0.21998,-0.19303,-0.18301,0.19792,0.19792,0.20995 -0.2284,0.094808,0.14611,0.19228,0.22819,-0.20788,-0.19762,0.13585,0.19741,0.25385,-0.25405,-0.18736,-0.16684,0.20767,0.25385,-0.23866,-0.16684,-0.14119,0.19228,0.26411,-0.21814,-0.16171,-0.13606,-0.12579,0.26411 0.28128,0.097588,0.086589,0.090988,-0.1653,0.28128,0.29558,-0.1598,-0.1752,-0.1675,0.28348,0.27908,-0.1675,-0.1697,-0.1774,0.28238,0.15699,-0.1708,-0.1686,-0.1829,0.24608,-0.151,-0.1708,-0.1774,-0.1774 -0.1811,-0.089874,-0.089874,-0.092518,0.43548,-0.098688,-0.096044,-0.087229,-0.08767,0.43239,-0.09384,-0.096044,-0.086788,-0.08767,0.43944,-0.078415,-0.090314,-0.087229,-0.084144,0.33984,-0.17273,-0.096925,-0.086788,-0.088992,0.32573 -0.42409,-0.23015,-0.14395,0.22239,0.22239,-0.27325,-0.18705,0.071544,0.22239,0.11464,-0.23015,-0.18705,0.028445,0.15774,0.11464,-0.23015,-0.10085,0.17929,0.22239,0.13619,-0.23015,-0.036203,0.28704,0.15774,0.13619 0.58633,0.57104,0.19677,0.20765,0.17877,-0.087289,-0.086661,-0.086661,-0.086034,0.14716,-0.087708,-0.087289,-0.088127,-0.087708,-0.087499,-0.088755,-0.088336,-0.088964,-0.089383,-0.088964,-0.13439,-0.13439,-0.13104,-0.13083,-0.12769 -0.092117,-0.11806,-0.070645,-0.089433,0.21834,-0.26569,-0.19232,-0.075118,0.23265,0.23623,-0.29074,-0.21201,0.22192,0.21476,0.16555,-0.28895,-0.229,0.16913,0.19866,0.22192,-0.24332,-0.2129,0.16555,0.16555,0.17003 -0.20631,-0.20694,-0.20694,-0.20821,-0.20631,-0.20758,-0.20821,-0.20758,-0.20947,-0.20884,0.16177,0.18576,0.18734,-0.21073,-0.20821,0.18323,0.19617,0.19712,0.19617,0.19365,0.17976,0.20754,0.2129,0.2047,0.18923 0.47997,-0.086555,-0.0085932,-0.10561,-0.10388,0.52328,0.017394,-0.050173,-0.093485,-0.12467,0.53194,-0.020721,-0.10735,-0.095218,-0.1368,0.10922,-0.06923,-0.11774,-0.10908,-0.1368,0.076299,0.012197,-0.12467,-0.12467,-0.13507 0.0024008,0.0084028,-0.17166,-0.15065,-0.12964,0.11044,0.038413,-0.027609,-0.14765,-0.14765,0.49757,0.044415,-0.093632,-0.13565,-0.13565,0.47956,0.080427,-0.081628,-0.15365,-0.14765,0.50657,0.047416,-0.069624,-0.093632,-0.12964 -0.20522,-0.22844,-0.17869,0.19275,0.1828,-0.20854,-0.24171,0.21597,0.16954,0.17286,-0.20854,-0.23176,0.18612,0.18944,0.17617,-0.20854,-0.23176,-0.065932,0.18612,0.17617,-0.22181,-0.23176,0.23255,0.18944,0.19275 -0.41458,0.083358,0.12024,0.1018,0.064916,-0.35925,0.0095899,0.083358,0.12024,0.1018,-0.37769,0.028032,0.13868,0.24934,0.1018,-0.35925,0.064916,0.15713,0.1018,0.064916,-0.41458,-0.045736,0.1018,0.15713,0.12024 0.10149,0.099785,0.10064,0.10021,-0.36793,0.10489,0.10404,0.10531,-0.3454,-0.35815,0.11424,0.11424,0.11254,0.11169,-0.35348,0.11764,0.11764,0.11722,0.11764,-0.35985,0.12275,0.12275,0.1253,0.1236,-0.3488 0.96662,-0.032406,-0.03829,-0.037702,-0.052999,-0.054764,-0.051234,-0.03829,-0.04535,-0.047704,-0.050645,0.040549,0.037019,-0.074768,-0.048292,-0.035937,-0.04888,0.035842,-0.055941,-0.04888,-0.11419,-0.05241,-0.044762,-0.057117,-0.049469 -0.13534,-0.15419,-0.1515,-0.13264,-0.15689,-0.089543,-0.10301,-0.097624,-0.10032,-0.10032,-0.07338,-0.07338,-0.078767,-0.078767,-0.078767,-0.027585,-0.027585,-0.03836,-0.035666,-0.032972,0.39534,0.42767,0.46269,0.50579,-0.024891 -0.19764,0.037985,0.28075,0.25933,0.28789,-0.21192,-0.090536,0.15223,0.16651,0.18793,-0.27618,-0.1905,0.030845,0.13795,0.16651,-0.2619,-0.30474,-0.061976,0.13795,0.18079,-0.23334,-0.30474,-0.16908,0.13795,0.13795 0.51015,0.11,0.13865,0.13371,0.13239,0.11395,0.10078,0.13239,0.13931,0.12877,0.10967,0.13437,0.13239,0.12713,0.12811,-0.2256,-0.22626,-0.22922,-0.22889,-0.22691,-0.22659,-0.22066,-0.23054,-0.22691,-0.23021 0.24077,0.28702,-0.14556,-0.14116,-0.14204,0.25399,0.30068,-0.14689,-0.14468,-0.1438,0.29716,0.30244,-0.1438,-0.14645,-0.14556,0.043858,0.30861,-0.14689,-0.14601,-0.14556,0.29672,-0.14909,-0.15085,-0.14733,-0.14556 0.13034,0.14816,0.14431,-0.29022,-0.29166,0.13371,0.13082,0.13757,-0.29118,-0.2907,0.13419,0.13467,0.13901,-0.29889,-0.2907,0.13564,0.14046,0.14142,0.13805,-0.28925,0.13467,0.13564,0.14142,0.13178,-0.28925 -0.21832,-0.11662,-0.014916,0.12068,0.42578,-0.32002,-0.014916,-0.11662,0.18848,0.12068,-0.32002,-0.15052,-0.11662,0.15458,0.018984,-0.15052,-0.11662,0.052884,0.086784,0.45968,-0.28612,-0.082716,0.052884,0.12068,0.22238 0.14361,0.15042,0.15241,0.14701,0.13481,0.14645,0.15354,0.15439,0.149,0.14191,0.16319,0.14758,0.15212,0.15156,0.14219,0.16859,-0.2654,-0.26312,-0.26852,-0.2688,-0.2654,-0.26596,-0.26653,-0.26823,-0.26681 0.43751,0.34922,-0.013733,-0.10202,-0.09221,0.47675,0.26093,-0.033353,-0.11183,-0.09221,0.34922,0.0058857,-0.14126,-0.11183,-0.14126,0.1236,-0.13145,-0.16088,-0.13145,-0.15107,-0.043162,-0.13145,-0.13145,-0.12164,-0.16088 0.20322,0.13349,-0.1056,-0.11224,-0.0092978,0.43567,-0.11556,-0.14544,-0.1222,-0.13216,0.39914,-0.098955,-0.13548,-0.13216,-0.14876,0.54857,-0.0026565,-0.12552,-0.15541,-0.15873,0.12685,0.13349,-0.032542,-0.095634,-0.15208 -0.16272,-0.25179,-0.13302,-0.2221,-0.45964,-0.10333,-0.014252,-0.25179,-0.043945,-0.19241,-0.13302,0.10452,0.01544,0.074825,-0.19241,0.1639,0.1936,0.13421,0.1639,0.01544,0.28267,0.28267,0.25298,0.25298,0.22329 0.23646,0.26774,0.3303,0.36157,0.11135,0.20518,0.17391,-0.013762,0.23646,0.080072,0.048794,-0.013762,0.017516,-0.04504,0.017516,-0.23271,-0.20143,-0.1076,-0.13887,-0.17015,-0.20143,-0.13887,-0.42038,-0.26399,-0.13887 -0.090889,-0.119,-0.090889,0.13399,0.53221,-0.10963,-0.12837,-0.095574,-0.025299,0.48536,-0.081519,-0.10026,-0.119,-0.10494,0.43383,-0.10494,-0.10494,-0.10026,-0.095574,0.28391,-0.095574,-0.10963,-0.10494,-0.10026,0.012181 -0.40009,0.089327,0.090947,0.090518,0.088755,-0.39966,0.11759,0.098667,0.10281,0.098524,-0.39985,0.10181,0.099239,0.12202,0.095379,-0.39952,0.097809,0.10057,0.097905,0.094807,-0.39947,0.098762,0.10658,0.098048,0.10853 0.28983,0.29026,-0.14033,-0.13694,-0.13864,0.29153,0.28899,-0.1327,-0.13694,-0.13779,0.29365,0.29577,-0.13694,-0.13694,-0.13609,0.29534,-0.13694,-0.13779,-0.13694,-0.13864,0.28687,-0.13525,-0.13609,-0.13694,-0.14033 -0.082804,-0.18428,-0.16398,-0.021919,0.38398,-0.12339,-0.082804,-0.20457,-0.0016236,0.40428,-0.16398,-0.1031,-0.12339,-0.082804,0.44487,-0.16398,-0.14369,-0.12339,-0.042214,0.3231,-0.021919,-0.042214,-0.082804,0.059262,0.34339 0.11908,-0.0839,-0.13465,-0.16848,-0.13465,0.085253,-0.0839,-0.0839,-0.11773,-0.11773,0.28824,0.11908,-0.0839,-0.13465,-0.23614,0.38973,0.23749,-0.033154,-0.0839,-0.20231,0.45739,0.40664,-0.13465,-0.15156,-0.11773 0.13759,0.13519,0.13599,-0.29178,-0.29259,0.13499,0.13519,0.13418,-0.29319,-0.29319,0.13499,0.13559,0.13599,-0.29199,-0.29199,0.13759,0.1388,0.1392,0.1412,-0.28998,0.139,0.1382,0.139,0.1396,-0.28757 0.95073,0.00020117,-0.0048281,-0.0023135,-0.047577,0.037921,-0.050091,-0.085296,-0.024945,-0.080267,-0.037518,-0.070208,-0.040033,-0.012372,-0.014887,-0.035004,0.0077451,-0.10793,-0.1205,-0.057635,-0.035004,0.047979,-0.11296,-0.1381,0.032891 0.69225,0.29577,0.29395,0.29122,0.29532,-0.097067,-0.093881,-0.096157,-0.093426,-0.082501,-0.089784,-0.098888,-0.095247,-0.088874,-0.099799,-0.097067,-0.097978,-0.091605,-0.093881,-0.089784,-0.09115,-0.092971,-0.092515,-0.092515,-0.093426 -0.17636,-0.17787,0.24552,0.24461,0.19797,-0.17727,-0.17878,-0.17636,0.24067,0.20433,-0.17636,-0.17818,-0.17999,0.24279,0.20706,-0.17697,-0.17727,-0.1809,0.2434,0.20251,-0.17273,-0.17333,-0.17424,0.24007,0.20766 -0.37911,-0.034464,0.062467,0.084007,0.067852,-0.36295,0.067852,0.10555,0.11093,0.10016,-0.35218,0.094777,0.10555,0.10555,0.1217,-0.37911,0.11632,0.10555,0.10555,0.11093,-0.48681,0.11632,0.14863,0.13786,0.12709 -0.26607,-0.23812,0.041363,0.12521,0.1811,-0.15427,-0.40581,-0.042481,0.12521,0.1811,-0.26607,-0.23812,0.09726,0.237,0.26495,-0.014533,-0.21017,-0.014533,0.2929,0.20905,-0.15427,-0.18222,0.013415,0.237,0.1811 0.23108,0.22557,0.22007,0.22007,0.22777,0.22777,0.22117,0.22777,0.22337,0.22227,-0.19154,-0.19154,-0.20915,-0.22016,0.22667,-0.16843,-0.16073,-0.15963,-0.17393,-0.18934,-0.19264,-0.15743,-0.15963,-0.15412,-0.14532 0.12577,0.12689,0.12577,-0.29866,-0.29977,0.133,0.133,0.133,-0.29199,-0.29699,0.13522,0.13577,0.13744,-0.28921,-0.29144,0.14022,0.14189,0.14133,0.13911,-0.28866,0.14633,0.148,0.14411,0.14411,-0.27422 0.19777,-0.016036,-0.069488,-0.096214,-0.096214,0.19777,-0.042762,-0.042762,-0.22984,-0.14967,0.35813,-0.016036,-0.042762,-0.25657,-0.096214,0.38486,0.037417,-0.12294,-0.17639,-0.042762,0.57194,0.11759,-0.096214,-0.25657,-0.016036 0.35849,0.35581,0.35658,0.3562,0.35505,-0.11043,-0.11043,-0.1089,-0.1089,0.35314,-0.11349,-0.1112,-0.1112,-0.1089,-0.1089,-0.11617,-0.11349,-0.11349,-0.11425,-0.11272,-0.11425,-0.1177,-0.11272,-0.11464,-0.11349 -0.074629,-0.088198,-0.090137,-0.082383,0.40998,-0.082383,-0.11437,-0.1134,-0.074629,0.36733,-0.08626,-0.1134,-0.12212,-0.10952,0.37315,-0.10177,-0.10564,-0.11824,-0.09789,0.41773,-0.08626,-0.11727,-0.11243,-0.10177,0.42452 0.18606,0.427,-0.081514,-0.082782,-0.20579,0.15562,0.20128,-0.073906,-0.086587,-0.20579,0.22156,0.18733,0.23805,-0.17662,-0.22735,0.1683,0.18733,-0.21974,-0.12209,-0.23496,0.18733,0.18479,-0.19945,-0.23622,-0.19184 -0.2868,-0.29568,-0.1852,0.18864,0.19554,-0.32626,-0.15167,-0.15068,0.18765,0.17976,-0.22466,-0.20099,0.17187,0.18864,0.17976,-0.21479,-0.21085,0.18272,0.17384,0.18666,-0.15068,0.011087,0.20639,0.17384,0.17187 0.18962,0.26577,0.056353,0.037315,-0.19114,0.34193,0.17058,-0.095953,0.018277,-0.28634,0.2277,0.11347,-0.00076153,0.056353,-0.24826,0.28481,-0.0198,-0.11499,-0.076915,-0.38153,0.26577,-0.13403,-0.038838,-0.057876,-0.38153 -0.17447,-0.17395,-0.17655,0.20108,0.18372,-0.17344,-0.17447,0.21715,0.22052,0.18476,-0.17447,-0.17499,-0.17655,0.22493,0.1902,-0.17473,-0.17395,-0.17473,0.22545,0.36074,-0.17629,-0.17551,-0.17836,0.22052,0.22337 -0.24781,-0.14203,-0.13769,-0.13075,0.19006,-0.2374,-0.17237,-0.12468,0.19179,0.21781,-0.23307,-0.12729,0.20133,0.21347,0.22127,-0.25128,-0.19838,0.20567,0.2126,0.21954,-0.24781,-0.20359,0.16318,0.20567,0.21174 0.12314,0.11762,0.119,0.11624,-0.2755,0.1494,0.15078,0.15423,0.1494,-0.28241,0.14387,0.14387,0.14525,-0.28932,-0.29623,0.13765,0.13489,0.14387,-0.29346,-0.29692,0.13282,0.1342,0.13282,-0.29623,-0.29899 -0.13299,-0.13299,-0.15561,-0.053831,0.46073,-0.13865,-0.14996,-0.13299,-0.042522,0.27413,-0.12168,-0.16127,-0.1443,0.042296,0.30806,-0.10472,-0.13865,-0.13865,0.059259,0.42115,-0.12734,-0.1443,-0.099067,0.27978,0.27413 0.39672,0.0034953,0.0034953,0.0034953,-0.25866,0.17826,0.22195,0.0034953,-0.12758,-0.25866,0.26565,0.047187,0.0034953,0.0034953,-0.12758,0.13457,-0.12758,0.0034953,-0.25866,-0.25866,0.44041,0.090879,0.0034953,0.0034953,-0.38973 -0.44407,-0.35194,-0.42103,-0.3289,-0.35194,0.039616,-0.029482,-0.052514,0.10871,0.016583,0.039616,0.13175,0.15478,0.13175,0.17781,0.016583,0.062648,0.17781,0.13175,0.15478,0.13175,0.085681,0.13175,0.15478,0.13175 -0.44691,-0.39083,-0.3628,-0.22261,-0.06841,-0.18056,-0.18056,-0.12448,-0.11047,0.085793,0.0016822,0.0016822,0.0016822,0.085793,0.15588,0.12785,0.14187,0.1699,0.14187,0.18392,0.25401,0.14187,0.21196,0.12785,0.25401 -0.0214,-0.027972,-0.025343,-0.026657,-0.031915,-0.0214,-0.03323,-0.027972,-0.027972,-0.0214,-0.049003,-0.04506,-0.04506,-0.043745,-0.039802,-0.060834,-0.059519,-0.054261,-0.04506,-0.042431,-0.063462,-0.063462,-0.052947,-0.047689,0.9776 0.26299,0.26323,0.23648,0.2311,0.23313,-0.14556,0.26478,0.28807,0.29189,0.3196,-0.14759,-0.14795,-0.14795,-0.14795,-0.14842,-0.15022,-0.14986,-0.15034,-0.1501,-0.15093,-0.15069,-0.15069,-0.15069,-0.15093,-0.15141 0.052524,-0.13732,-0.26388,-0.21642,-0.18478,0.19491,0.13163,-0.15314,-0.21642,-0.21642,0.24237,0.17909,-0.026578,-0.21642,-0.21642,0.25819,0.24237,-0.010758,-0.08986,-0.21642,0.33729,0.35311,0.21073,0.036703,-0.07404 0.0023726,-0.014575,-0.018811,-0.044232,-0.061179,-0.006101,-0.044232,-0.044232,-0.054824,-0.061179,-0.023048,-0.056942,-0.048469,-0.067534,-0.059061,-0.03364,-0.048469,-0.050587,-0.052706,-0.059061,-0.052706,-0.048469,0.0087278,-0.035758,0.97472 0.18703,0.11887,0.18703,0.18703,0.11887,0.15977,0.15977,0.077976,0.11887,0.050712,0.15977,0.11887,0.077976,0.077976,0.077976,-0.044714,0.077976,0.03708,-0.099243,-0.099243,-0.26283,-0.18104,-0.29009,-0.46731,-0.54911 0.21394,0.21217,0.21971,0.22992,0.22903,0.22282,0.22149,0.22903,0.22903,0.22726,-0.16331,-0.16908,-0.24275,0.22504,-0.1531,-0.15621,-0.15931,-0.1571,-0.16065,-0.14422,-0.15399,-0.15798,-0.23565,-0.24985,-0.15621 -0.035698,-0.038804,-0.040875,-0.02431,-0.033627,-0.040875,-0.035698,-0.034663,-0.028451,-0.045016,-0.030521,-0.028451,-0.031557,-0.033627,-0.055369,-0.031557,-0.032592,-0.035698,-0.033627,-0.05744,-0.076076,-0.094712,-0.030521,-0.047087,0.97685 0.28262,0.20458,0.18947,-0.20642,-0.21523,0.17688,0.17814,0.17563,-0.2297,-0.1825,0.17374,0.17374,-0.22467,-0.22844,-0.19634,0.17814,0.17877,0.17563,-0.21837,-0.16991,0.20332,0.18821,-0.21523,-0.21711,-0.17495 0.37325,0.35592,0.18697,0.070006,0.0050252,0.30394,0.17831,0.14365,0.039682,0.03535,0.087335,0.091667,0.074338,0.07867,0.026686,-0.17259,-0.15093,-0.098945,-0.09028,-0.051292,-0.31122,-0.30255,-0.31122,-0.31122,-0.25057 -0.14034,-0.14992,-0.15631,-0.13395,-0.11158,-0.13714,-0.14673,-0.13714,-0.086017,-0.073236,-0.13075,-0.10519,-0.098799,-0.066846,-0.044479,-0.031697,-0.054064,0.019427,0.0098415,0.022623,0.15683,0.23032,0.26227,0.43482,0.66807 0.1304,0.055456,0.1304,-0.20684,-0.31925,0.28028,0.1304,-0.094425,-0.16937,-0.28178,0.31775,0.16787,0.092926,-0.094425,-0.1319,0.24281,0.017986,0.017986,-0.056955,-0.094425,0.16787,0.20534,-0.019485,0.055456,-0.54407 -0.50572,0.00037488,0.10347,0.084723,0.1597,-0.48697,0.028491,0.10347,0.075351,0.16907,-0.40262,0.037863,0.11284,0.14096,0.14096,-0.29016,0.019119,0.075351,0.094095,0.14096,-0.19644,0.037863,0.12221,0.10347,0.13158 -0.39818,0.10651,0.09433,0.097374,0.10499,-0.3997,0.092807,0.098897,0.10346,0.10423,-0.39513,0.10651,0.11184,0.11564,0.10118,-0.38447,0.11032,0.11412,0.1263,0.11336,-0.39209,-0.067048,0.11032,0.11108,0.11336 -0.15036,-0.13974,-0.10786,0.30225,0.25125,-0.14399,-0.14611,-0.11636,0.281,0.27038,-0.15461,-0.13974,-0.13336,0.29163,0.28525,-0.16099,-0.13336,-0.14611,-0.086613,0.31288,-0.15886,-0.15036,-0.13974,-0.11211,0.32563 -0.27945,-0.28754,-0.11497,-0.23901,-0.19587,-0.25519,-0.20665,-0.19317,-0.13924,0.044113,-0.20126,-0.012511,0.027935,0.033327,0.025238,0.23016,0.13579,0.10343,0.21129,0.017149,0.31914,0.29757,0.29488,0.33802,0.046809 0.15699,-0.060297,-0.14178,-0.15536,-0.15536,0.31996,-0.046717,-0.1961,-0.15536,-0.1961,0.29279,0.061927,-0.16894,-0.1961,-0.18252,0.34712,0.17057,-0.060297,-0.1961,-0.25042,0.3607,0.26563,0.17057,0.11625,-0.10104 0.59042,0.44109,0.057508,0.33275,0.38546,-0.080113,-0.0098385,-0.0069103,-0.03912,-0.044976,-0.12111,-0.11818,-0.10354,-0.047904,-0.068401,-0.13575,-0.13575,-0.12111,-0.10939,-0.091826,-0.11232,-0.12403,-0.11525,-0.11232,-0.10939 0.14036,0.13522,0.13908,0.1365,-0.28886,0.14423,0.15581,0.14616,0.13522,-0.28822,0.1365,0.13264,0.13393,-0.28951,-0.29208,0.13007,0.13522,0.13779,-0.29272,-0.29272,0.13264,0.12749,0.13264,-0.29465,-0.29272 0.16787,0.15611,-0.2187,-0.21366,-0.22374,0.19476,0.15443,-0.1834,-0.22878,-0.20861,0.20821,0.16955,-0.14979,-0.21198,-0.22542,0.23846,0.17796,0.17796,-0.1834,-0.22374,0.26704,0.18468,0.17796,0.19981,-0.20357 -0.095532,-0.096297,-0.095276,-0.09617,-0.095532,-0.095404,-0.095404,-0.095532,-0.096042,-0.09617,-0.095914,-0.095276,-0.095404,-0.09617,-0.09617,-0.09617,-0.095404,-0.095787,-0.09617,-0.096297,0.12973,0.46258,0.45926,0.45429,0.41026 -0.15308,-0.17028,-0.11869,-0.027934,-0.0088273,-0.15691,-0.1378,-0.07379,0.26631,0.24529,-0.17506,-0.16264,-0.13207,0.26631,0.25962,-0.1741,-0.16837,-0.14257,0.25771,0.30357,-0.12442,-0.17028,-0.17506,0.32172,0.35134 0.31483,0.31811,0.33121,0.31155,0.33449,-0.045612,-0.13081,0.065797,0.22636,0.305,-0.091486,-0.1603,-0.13081,-0.13081,0.036306,-0.14719,-0.15047,-0.16357,-0.14391,-0.19307,-0.14064,-0.15047,-0.14391,-0.15374,-0.16685 0.12376,0.12376,0.10849,0.17532,-0.3087,0.11995,0.11804,0.1104,0.1104,-0.30489,0.14286,0.1314,0.11231,0.095124,-0.31252,0.14668,0.13522,0.11804,-0.28197,-0.34785,0.12949,0.11804,0.11422,-0.31252,-0.36503 0.37754,0.44355,0.34454,0.11353,0.44355,-0.051483,0.080525,0.11353,-0.051483,0.047523,-0.15049,-0.051483,-0.051483,0.014521,-0.084485,-0.2495,-0.084485,-0.11749,-0.18349,-0.084485,-0.15049,-0.11749,-0.18349,-0.11749,-0.2495 0.27105,0.25578,-0.082178,-0.16237,-0.1681,0.26914,0.25578,-0.12609,-0.15282,-0.17383,0.27678,0.26914,-0.13946,-0.1681,-0.16428,0.2615,0.26532,-0.14137,-0.15855,-0.16046,-0.15473,0.26532,-0.14328,-0.12609,-0.1681 -0.38726,0.090194,0.086182,0.088188,0.086182,-0.4003,0.095209,0.091197,0.088188,0.090194,-0.38726,0.093203,0.089191,0.091197,0.091197,-0.40932,0.11126,0.10323,0.10123,0.10022,-0.41133,0.13032,0.11728,0.12129,0.13032 -0.019554,0.44325,0.45805,0.44147,0.46396,-0.032574,-0.023105,-0.021329,-0.012452,-0.097674,-0.097674,-0.093531,-0.095307,-0.10063,-0.103,-0.10655,-0.10478,-0.10951,-0.1101,-0.11247,-0.10714,-0.11484,-0.11484,-0.11365,-0.11602 -0.084617,-0.082516,-0.087418,-0.085317,-0.086017,-0.088818,-0.092319,-0.088118,-0.087418,-0.087418,-0.086017,-0.087418,-0.086017,-0.088118,-0.088818,-0.079715,-0.083917,-0.082516,-0.074813,-0.080415,0.62542,0.62542,0.18708,0.14436,0.12545 0.36457,-0.09558,-0.1021,-0.10486,-0.15626,0.35905,-0.094577,-0.094827,-0.097335,-0.15777,0.36231,0.36507,-0.095078,-0.091818,-0.15601,0.36131,-0.094326,-0.090815,-0.15827,-0.1673,0.178,0.17825,-0.086803,-0.15601,-0.1688 0.04571,0.0452,0.044945,0.047155,0.086777,0.1292,0.13099,0.13278,0.086522,0.086012,0.13031,0.13244,0.13125,0.086097,0.086352,0.13091,0.13405,0.13788,0.086352,0.086522,-0.39557,-0.39549,-0.39574,-0.3954,-0.39523 -0.26774,-0.26703,0.1516,0.16025,0.1636,-0.26474,-0.26597,0.14648,0.15548,0.15778,-0.26597,-0.26562,0.14118,0.14789,0.15389,-0.26615,-0.26703,0.14312,0.13977,0.13571,-0.26721,0.13765,0.18038,0.14506,0.13765 -0.08075,-0.14025,-0.14875,-0.136,-0.14025,0.051,-0.119,-0.14875,-0.14025,-0.119,0.05525,-0.017,-0.03825,-0.119,-0.136,0.102,0.05525,0.068,0.0255,-0.0084999,0.87549,0.089249,0.07225,0.05525,0.0425 0.13665,0.13642,0.13665,0.13642,-0.29038,0.13728,0.1372,0.13642,0.13642,-0.29147,0.13735,0.13735,0.1372,-0.29186,-0.29201,0.13767,0.13735,0.13735,-0.29139,-0.29155,0.13837,0.13837,0.1379,-0.29186,-0.29186 -0.20752,-0.20005,0.16462,0.16649,0.16238,-0.20827,-0.20155,-0.20677,0.16686,0.2236,-0.20229,-0.20267,-0.20976,0.17582,0.21315,-0.2064,-0.20827,0.16649,0.29191,0.2068,-0.20976,-0.212,0.16836,0.15417,0.21464 0.19777,0.25371,0.14184,0.14184,0.11947,0.1754,0.1754,0.16422,0.13066,0.097097,0.1754,0.19777,0.13066,0.018793,-0.014766,-0.20493,0.052352,0.052352,-0.22731,-0.32798,-0.30561,-0.23849,-0.23849,-0.29442,-0.37273 0.018153,0.10962,0.16239,0.16239,0.1835,0.15887,0.15184,0.16942,0.16239,0.16239,0.14128,0.15184,0.15535,0.15887,0.16239,-0.24569,-0.25273,-0.25625,-0.19996,0.15535,-0.27032,-0.28087,-0.29495,-0.28439,-0.28087 0.35693,0.35348,0.35348,0.35538,0.35917,0.35693,-0.11271,-0.11271,-0.11251,-0.11271,-0.11224,-0.11237,-0.11278,-0.11278,-0.11258,-0.11082,-0.11292,-0.11292,-0.11292,-0.11292,-0.11082,-0.11231,-0.11231,-0.11204,-0.11204 -0.20235,-0.18507,0.20725,0.19573,0.22192,-0.18873,-0.19083,-0.19659,0.18578,0.28739,-0.18716,-0.18664,-0.19921,0.19259,0.21616,-0.19083,-0.1924,0.18787,0.18264,0.21616,-0.18716,-0.18768,-0.19135,0.18159,0.21092 -0.06585,-0.11993,-0.15333,-0.22332,-0.067441,-0.17083,-0.1756,-0.21378,-0.15015,-0.084938,-0.19787,-0.1581,-0.12629,-0.11834,-0.081756,0.28408,0.28726,0.19501,-0.041992,-0.086528,0.36202,0.35088,0.16479,0.29839,0.29362 0.075064,0.056146,0.086414,0.063713,0.078847,0.10911,0.10911,0.10911,0.11668,0.12425,0.13938,0.11668,0.12425,0.13938,0.12046,-0.083841,0.078847,0.078847,0.13938,0.16208,-0.42813,-0.41678,-0.39787,-0.34868,-0.35247 -0.12305,-0.13021,-0.12782,-0.12782,-0.12544,-0.12186,-0.12544,-0.12305,-0.13021,-0.13021,-0.06701,-0.075357,-0.11947,-0.12186,-0.12067,0.36105,-0.078934,-0.09205,-0.083703,-0.07178,0.34435,0.34316,0.38251,0.44451,0.22035 0.1057,0.17805,-0.19358,-0.28237,-0.28402,0.092546,0.11557,-0.2462,-0.29553,-0.22975,0.22739,0.15174,0.12543,-0.19687,-0.21002,0.28494,0.15174,0.11063,-0.042294,-0.19522,0.3392,0.23067,0.17805,-0.047227,-0.068604 -0.40067,0.098463,0.094265,0.095441,0.092922,-0.39916,0.097455,0.10367,0.096952,0.096448,-0.40251,0.10165,0.10854,0.097623,0.09712,-0.39832,0.10249,0.10518,0.098631,0.096952,-0.39899,0.10535,0.10417,0.10266,0.10367 0.19195,0.19072,-0.11851,-0.1354,-0.14185,0.44038,0.19011,-0.13171,-0.13325,-0.13908,0.31386,-0.12772,-0.13294,-0.13601,-0.13847,0.3154,-0.12803,-0.13171,-0.13663,-0.13601,0.31018,0.3154,-0.13294,-0.13294,-0.13478 0.22443,-0.1532,-0.18301,-0.19295,-0.14127,0.26816,0.21847,-0.14724,-0.18898,-0.19693,0.26816,0.22841,-0.091586,-0.19295,-0.14127,0.26418,0.23835,-0.1532,-0.2009,-0.15121,0.23835,0.22642,0.25425,-0.16512,-0.12935 -0.010306,0.4302,0.42189,0.46136,0.49461,-0.053941,-0.099653,-0.080953,-0.053941,8.3114e-05,-0.099653,-0.11835,-0.10381,-0.10381,-0.097576,-0.095498,-0.11628,-0.1142,-0.11004,-0.11835,-0.10589,-0.12251,-0.078875,-0.058097,-0.066408 0.00022991,-0.15768,-0.15103,-0.14982,-0.15042,-0.16403,-0.16645,-0.17008,-0.1716,-0.16343,-0.15224,-0.15617,-0.15859,-0.15859,-0.15829,-0.013383,0.25494,0.27188,0.27219,0.27945,-0.013383,0.25797,0.36627,0.274,0.27824 0.36823,0.34799,0.34673,0.34673,0.34673,0.37645,-0.093384,-0.097811,-0.091487,-0.1016,-0.11109,-0.11235,-0.11235,-0.11615,-0.11488,-0.11615,-0.11488,-0.11868,-0.11741,-0.11741,-0.11994,-0.11868,-0.11868,-0.12247,-0.11741 -0.19102,-0.19167,-0.19037,-0.19167,-0.19167,-0.19037,-0.19037,-0.18972,-0.18972,-0.19362,-0.18843,-0.19102,-0.18972,0.19107,0.19756,0.1794,0.19496,0.19042,0.19302,0.25627,0.18459,0.19626,0.19464,0.19529,0.3059 -0.3979,0.099305,0.097495,0.1321,0.084601,-0.39925,0.095685,0.14138,0.088673,0.084375,-0.3979,0.09659,0.14025,0.093649,0.13097,-0.39948,0.091161,0.090709,0.086185,0.089578,-0.39835,0.089804,0.086185,0.085054,0.089125 0.10637,0.10264,0.10077,0.095178,-0.43442,0.095178,0.098908,0.1101,0.098908,-0.56868,0.095178,0.095178,0.087719,0.095178,-0.18267,0.093313,0.091448,0.08026,0.095178,-0.30761,0.095178,0.10264,0.087719,0.085854,-0.4195 0.10942,0.090412,0.094798,0.11527,0.23661,0.12696,0.10649,0.11234,0.12989,0.26293,0.13427,0.12989,0.11234,0.31264,0.27317,-0.24878,-0.23854,-0.22392,-0.20784,-0.18737,-0.23562,-0.24147,-0.24878,-0.25901,-0.25609 0.35568,0.35489,0.35608,0.35648,0.35806,0.35409,-0.11696,-0.10862,-0.11259,-0.11339,-0.11299,-0.11458,-0.1122,-0.11498,-0.11061,-0.11339,-0.11736,-0.10941,-0.10902,-0.11458,-0.11021,-0.11061,-0.11021,-0.1118,-0.1118 0.28526,0.27507,0.27613,0.18509,0.23676,-0.14636,0.27261,0.33236,0.2814,0.23922,-0.14952,-0.15163,-0.14952,-0.14987,-0.14706,-0.15022,-0.14917,-0.14917,-0.15022,-0.14811,-0.14882,-0.14882,-0.14776,-0.14882,-0.14882 -0.25131,-0.19259,-0.25131,0.012918,-0.25131,-0.10452,-0.13388,-0.25131,-0.13388,-0.10452,-0.10452,0.012918,-0.10452,0.012918,-0.016441,-0.10452,0.15971,0.071636,0.071636,-0.016441,0.36523,0.39458,0.39458,0.24779,0.27715 -0.22446,-0.22475,-0.22359,-0.22242,-0.223,-0.22446,-0.22504,-0.22125,-0.22359,-0.22475,0.20215,0.19137,-0.22184,0.19253,0.19894,0.20098,0.19108,0.19253,0.1902,0.18904,0.091418,0.12843,0.19312,0.19253,0.10482 -0.38187,0.11708,0.11523,0.10597,0.11153,-0.41149,0.11153,0.10875,0.10597,0.10597,-0.4013,0.10134,0.10042,0.10042,0.10042,-0.41149,0.09579,0.093939,0.091162,0.088385,-0.39112,0.085608,0.086533,0.088385,0.082831 -0.12721,-0.098716,-0.093017,-0.075918,0.39145,-0.12151,-0.14431,-0.12151,-0.018923,0.50544,-0.12151,-0.10442,-0.064519,0.032374,0.48264,-0.093017,-0.13291,-0.12721,-0.058819,0.35155,-0.15001,-0.13291,-0.058819,-0.058819,0.14067 0.8691,0.21876,-0.058321,-0.074882,-0.083162,0.21112,-0.052588,-0.065964,-0.083162,-0.085073,0.20475,-0.075519,-0.079341,-0.081251,-0.078704,-0.049403,-0.07106,-0.061505,-0.086347,-0.072334,-0.051951,-0.069786,-0.06469,-0.076156,-0.082525 -0.15654,-0.15654,0.094785,0.13069,0.38201,-0.30015,-0.12064,-0.084732,0.094785,0.2743,-0.55148,-0.12064,0.058882,0.022978,0.31021,-0.12064,0.022978,-0.012925,0.13069,0.2025,-0.15654,-0.15654,-0.012925,0.022978,0.2025 -0.40433,0.10054,0.098861,0.098861,0.099699,-0.39427,0.10473,0.097183,0.10389,0.098861,-0.40182,0.098022,0.10222,0.10054,0.099699,-0.40182,0.10305,0.098861,0.099699,0.099699,-0.39762,0.098861,0.098022,0.10054,0.098022 0.13382,0.14752,0.14005,0.13008,-0.2874,0.14192,0.14192,0.13506,0.13569,-0.29799,0.13569,0.13569,0.13382,-0.29487,-0.29487,0.12945,0.13631,0.13132,-0.29674,-0.29176,0.12821,0.15251,0.14192,-0.29612,-0.2712 0.20889,0.21623,0.22601,0.20156,0.182,0.21623,0.22356,0.21378,0.20156,0.182,0.19178,0.22112,-0.15784,-0.17007,-0.20674,-0.16029,-0.1774,-0.2043,-0.21163,-0.23119,-0.16029,-0.1774,-0.18963,-0.20919,-0.22875 -0.22895,-0.30476,-0.22895,-0.096281,-0.15314,-0.17209,-0.13419,-0.13419,-0.077328,0.13115,-0.17209,-0.096281,-0.058375,-0.020469,-0.077328,-0.058375,-0.058375,0.03639,0.03639,0.15011,0.26383,0.32068,0.37754,0.37754,0.37754 -0.20755,-0.20655,-0.20735,-0.20575,-0.20595,-0.20735,-0.20735,-0.20695,-0.20615,-0.20535,-0.20675,0.1448,0.1472,-0.20595,0.18937,0.19316,0.1498,0.1496,0.23953,0.18937,0.19716,0.20675,0.23993,0.24273,0.18957 -0.35137,-0.27996,-0.20854,-0.31566,-0.27996,-0.12522,-0.17283,-0.029995,-0.25615,-0.13712,0.10094,0.31519,-0.029995,0.065228,0.14855,0.27948,0.041422,0.12474,0.11284,0.24377,0.089033,0.27948,0.077131,0.12474,0.18426 -0.25452,-0.0010672,-0.0010672,0.038951,0.13233,-0.22784,-0.094443,-0.027746,0.092309,0.13233,-0.33455,-0.094443,0.052291,0.012272,0.17235,-0.32121,-0.041086,0.012272,0.092309,0.25238,-0.34789,-0.067764,-0.027746,0.3591,0.49249 0.35768,0.35725,0.35484,0.35484,0.3555,-0.11098,-0.11186,-0.11142,-0.11055,0.35528,-0.1123,-0.11186,-0.1123,-0.11186,-0.11142,-0.11339,-0.11317,-0.11317,-0.11361,-0.11273,-0.11317,-0.11273,-0.11317,-0.11252,-0.11317 0.20327,0.20391,0.25399,0.27068,0.61225,0.11017,0.11852,0.027993,0.071652,0.088987,0.011942,-0.033001,-0.0452,-0.019518,-0.017592,-0.10427,-0.1781,-0.14407,-0.16719,-0.16398,-0.21855,-0.22818,-0.21791,-0.21598,-0.21983 -0.39882,-0.39603,-0.39975,-0.4044,-0.39975,0.092219,0.092219,0.089429,0.088499,0.085709,0.10245,0.10059,0.097799,0.094079,0.094079,0.10803,0.10431,0.10431,0.10338,0.098729,0.11361,0.11175,0.10803,0.10617,0.10338 0.19173,0.18989,0.18866,0.18928,0.18928,0.1954,0.19479,0.19418,0.18928,0.1905,-0.19913,-0.17524,0.1954,0.19357,0.19418,-0.20709,-0.20954,-0.21077,-0.21322,-0.21199,-0.21077,-0.21138,-0.21322,-0.21689,-0.21689 -0.40154,0.10329,0.1009,0.092157,0.097722,-0.40393,0.10329,0.096132,0.1009,0.1017,-0.39359,0.10329,0.1017,0.097722,0.096132,-0.39836,0.1009,0.1009,0.096927,0.098517,-0.40234,0.10329,0.1017,0.10329,0.099312 -0.19147,-0.19616,0.20568,0.20512,0.20512,-0.19222,-0.19409,0.20681,0.20625,0.20681,-0.19053,-0.19222,-0.19184,0.20925,0.20869,-0.19071,-0.19128,-0.19109,0.21019,0.20981,-0.1924,-0.1909,-0.19297,0.21207,0.21207 -0.20164,-0.20164,-0.20348,-0.2302,-0.22928,-0.20993,-0.21454,-0.2044,-0.19888,-0.19611,0.19541,0.19541,0.19541,-0.20533,-0.20072,0.19449,0.19265,0.19173,0.19081,0.18989,0.19173,0.19357,0.18989,0.18804,0.18712 -0.15989,-0.078878,0.021318,-0.10659,-0.11938,-0.1002,-0.027714,-0.095933,-0.1471,-0.1407,-0.0042637,0.0063955,-0.1876,-0.18121,-0.18121,0.049032,0.017055,-0.1471,-0.12365,-0.15989,0.46474,0.41997,0.34109,0.31978,0.32191 -0.26086,-0.22598,-0.22598,-0.26086,-0.36548,-0.051613,-0.016739,-0.36548,-0.15624,-0.016739,-0.051613,-0.051613,0.12276,-0.016739,0.087882,0.1925,0.087882,0.087882,0.15763,0.087882,0.1925,0.332,0.29713,0.087882,0.332 0.34355,0.34524,0.34355,0.34468,0.34355,0.051251,0.058009,0.34468,-0.13967,-0.14136,-0.078847,-0.11039,-0.13348,-0.13686,-0.13798,-0.096306,-0.12728,-0.13348,-0.13517,-0.13686,-0.11489,-0.13967,-0.13573,-0.13686,-0.13967 0.96965,-0.049964,-0.015803,-0.017288,-0.017288,-0.049964,-0.058132,-0.017288,-0.012832,-0.021744,-0.052191,-0.052191,-0.038824,-0.0024358,-0.017288,-0.081896,-0.089322,-0.050706,-0.0046637,-0.0083768,-0.082639,-0.090065,-0.089322,-0.045508,-0.003921 0.089613,0.098131,0.15989,0.21313,-0.38741,0.090039,0.094298,0.096002,0.10622,-0.38827,0.096854,0.099835,0.10537,0.24678,-0.38827,0.081521,0.070873,0.05554,0.060225,-0.38827,0.084076,0.026151,0.029985,0.037225,-0.38954 -0.40336,0.097326,0.095163,0.091378,0.093541,-0.4012,0.097866,0.095704,0.095704,0.097326,-0.4012,0.10165,0.10057,0.095704,0.097326,-0.39579,0.10598,0.10273,0.10273,0.10273,-0.39795,0.10868,0.10706,0.10598,0.10435 -0.22768,-0.22768,-0.22671,-0.228,-0.22704,-0.22542,-0.22929,-0.22639,-0.22961,-0.22478,0.098728,0.10614,0.10549,0.10839,0.34587,0.09615,0.092928,0.10904,0.10807,0.34136,0.098084,0.09615,0.11097,0.11097,0.34426 0.14485,0.15021,0.22338,0.20375,0.21267,0.15021,0.15377,0.2091,0.19839,0.21624,0.15913,0.17162,0.18947,-0.17284,-0.13,0.04312,-0.19604,-0.2353,-0.2353,-0.22816,-0.21746,-0.23352,-0.2585,-0.26207,-0.25672 -0.39877,0.11315,0.10961,0.11346,0.12532,-0.39929,0.11512,0.11065,0.117,0.12355,-0.39918,0.081619,0.086821,0.092128,0.09629,-0.39929,0.083492,0.086301,0.090775,0.094625,-0.3995,0.089631,0.083284,0.089839,0.093376 0.023724,0.172,-0.087482,0.023724,-0.23576,0.20907,0.023724,0.060792,-0.30989,-0.23576,0.20907,0.023724,0.097861,-0.19869,-0.27282,0.2832,0.2832,0.023724,-0.013345,-0.19869,0.2832,0.32027,0.060792,-0.30989,-0.23576 -0.080358,0.020089,-0.080358,0.25447,0.12054,-0.34822,-0.080358,0.020089,-0.013393,0.32143,-0.31474,-0.18081,0.087054,-0.013393,0.32143,-0.14732,-0.18081,-0.013393,0.22098,0.1875,-0.41518,-0.14732,0.053572,0.12054,0.28795 0.30559,0.30842,-0.12041,-0.15107,-0.1547,0.28703,-0.1196,-0.11799,-0.13292,-0.15147,0.30115,0.25516,-0.11799,-0.143,-0.14784,0.28179,0.30842,-0.13655,-0.14825,-0.14461,0.27856,-0.12283,-0.12485,-0.14784,-0.14421 0.33038,-0.14141,-0.13507,-0.13738,-0.13392,0.25261,-0.11376,-0.13911,-0.13507,-0.13219,0.29121,0.2889,-0.13911,-0.14083,-0.1368,0.29236,0.29466,-0.13911,-0.13738,-0.14602,0.2866,0.29121,-0.13968,-0.13853,-0.14256 0.33363,0.21275,0.27319,0.21275,0.21275,0.36385,0.15231,-0.029012,0.15231,0.09187,0.15231,-0.059232,-0.089453,0.0012088,-0.059232,0.0012088,-0.11967,-0.18011,-0.089453,-0.24055,-0.301,-0.24055,-0.27078,-0.27078,-0.21033 0.16206,0.12465,0.10742,0.089606,-0.32315,0.14721,0.12762,0.10386,-0.31246,-0.3184,0.15434,0.12643,0.11039,-0.32018,-0.32018,0.16741,0.12643,0.10802,0.090794,-0.3184,0.16562,0.1294,0.10089,0.089606,-0.31899 0.30003,0.15078,0.15843,-0.14772,-0.025258,0.35743,0.13165,0.15843,-0.10945,-0.20129,0.29238,0.25028,-0.13624,-0.14006,-0.25104,0.26559,-0.094142,-0.20895,-0.16303,-0.17833,0.25411,-0.1018,-0.15537,-0.15537,-0.25104 0.36089,-0.098269,-0.14554,-0.15004,-0.13428,0.29112,-0.097144,-0.13428,-0.13991,-0.14328,0.31813,-0.094893,-0.10615,-0.14441,-0.14554,0.30124,0.33838,-0.098269,-0.12078,-0.14779,0.30012,0.32263,-0.1039,-0.10277,-0.12528 -0.17901,-0.20013,-0.21655,-0.2189,-0.21655,-0.16494,-0.1708,-0.18723,-0.19426,-0.21069,0.21163,0.21867,-0.18957,-0.16728,-0.17432,0.21045,0.20693,0.23626,0.20224,0.19638,0.21045,0.20107,0.20459,0.20224,0.18934 -0.40131,0.10265,0.10317,0.098002,0.1011,-0.39821,0.10265,0.10265,0.095418,0.10162,-0.40079,0.10162,0.10214,0.095418,0.098002,-0.39976,0.10214,0.10214,0.095418,0.099553,-0.39976,0.098519,0.1011,0.094901,0.10162 0.29513,0.29513,0.29513,0.4065,0.35081,0.044548,0.044548,0.12807,0.10023,0.15592,-0.28956,-0.094664,-0.20603,-0.011137,-0.17819,-0.17819,-0.094664,-0.066822,-0.12251,-0.23388,-0.17819,-0.15035,-0.23388,-0.011137,-0.066822 -0.17987,-0.19305,-0.20184,0.19639,0.20957,-0.18207,-0.19159,-0.19744,0.20005,0.20151,-0.19086,-0.19525,-0.19012,0.20517,0.21103,-0.18646,-0.2033,0.21176,0.21469,0.22494,-0.19598,-0.18866,0.20371,0.20664,0.21103 -0.1675,-0.16883,-0.16772,-0.16816,-0.16661,0.021885,0.034717,0.036045,-0.031213,-0.029885,-0.011522,-0.014841,-0.031213,-0.029443,-0.012186,0.02631,0.023213,-0.026124,0.035602,0.036709,0.91902,-0.025461,-0.027894,-0.024576,-0.030328 -0.11581,-0.16736,-0.12918,0.22689,0.25648,-0.15113,-0.19886,-0.14063,0.22116,0.26316,-0.18836,-0.14731,-0.095765,0.0073313,0.2813,-0.13872,-0.10054,-0.12727,-0.0079422,0.33094,-0.14636,-0.098629,-0.08431,-0.077628,0.52854 0.44455,0.17716,0.15294,-0.11551,-0.13025,0.43297,0.18137,-0.12393,-0.13235,-0.099716,0.43613,-0.096558,-0.14498,-0.14077,-0.12603,0.16242,-0.10814,-0.12288,-0.1513,-0.13235,0.1761,-0.1134,-0.13551,-0.14604,-0.14393 -0.20621,-0.20576,-0.21073,0.17611,0.18152,-0.20667,-0.20621,0.17611,0.18107,0.18084,-0.20667,-0.20824,0.17723,0.18017,0.21468,-0.20644,-0.20712,-0.21095,0.17881,0.2255,-0.20734,-0.2096,0.17926,0.22302,0.21761 0.020002,-0.12064,-0.15189,-0.15189,-0.19877,0.098137,-0.089385,-0.12064,-0.073759,-0.089385,0.31691,0.066883,-0.13627,-0.089385,-0.089385,0.52006,0.11376,-0.011251,-0.13627,-0.15189,0.56694,0.1919,-0.042505,-0.12064,-0.12064 -0.20756,-0.20814,-0.20949,0.18803,0.19423,-0.20717,-0.20756,-0.20969,0.18668,0.19365,-0.2064,-0.20756,0.18416,0.18455,0.19752,-0.20698,-0.20988,0.18493,0.19326,0.20081,-0.20736,-0.20969,0.195,0.1952,0.19946 -0.29666,-0.18616,-0.1167,0.12958,0.16115,-0.2493,-0.072493,0.10748,0.13273,0.19904,-0.17353,0.025385,0.16747,0.17378,0.17378,-0.25562,-0.32508,0.19272,0.17378,0.16747,-0.32508,-0.32192,0.17694,0.18325,0.15799 -0.40737,0.097499,0.094555,0.090876,0.095291,-0.39338,0.10118,0.097499,0.096027,0.093819,-0.39853,0.10118,0.099707,0.099707,0.094555,-0.40369,0.1078,0.10191,0.099707,0.097499,-0.39633,0.11148,0.11001,0.10559,0.10339 -0.40287,0.10169,0.098699,0.10169,0.096455,-0.401,0.099821,0.10019,0.096455,0.09047,-0.39913,0.10207,0.10655,0.10169,0.098325,-0.39689,0.10244,0.10281,0.10057,0.099073,-0.39988,0.099073,0.10207,0.099447,0.10019 -0.13086,-0.13107,-0.13065,-0.13107,-0.13192,-0.13044,-0.13044,-0.13129,-0.13086,-0.13086,-0.13065,-0.13022,-0.1315,-0.13065,-0.1315,-0.13107,-0.13065,0.17075,0.17117,0.18011,0.3777,0.39025,0.3826,0.16841,0.38472 0.21338,0.14074,0.20348,0.19687,-0.21919,0.20348,0.19357,0.20348,-0.19938,-0.25056,0.20348,0.19357,-0.11518,-0.2258,-0.26047,0.22329,0.14569,-0.13334,-0.2291,-0.2357,0.17376,0.1589,-0.1449,-0.25552,-0.18452 -0.25864,-0.15322,-0.29378,-0.18836,-0.32893,-0.2235,-0.18836,0.12792,-0.32893,-0.047793,-0.012651,-0.15322,-0.012651,0.022491,0.057632,0.12792,0.16306,0.12792,0.16306,0.16306,0.33877,0.30362,0.23334,0.1982,0.16306 0.070997,0.066982,0.16476,-0.35366,-0.34936,0.066696,0.15931,0.16734,0.07071,-0.34764,0.065549,0.16419,0.17508,0.078452,-0.34678,0.16046,0.16935,0.074724,0.070423,-0.34363,0.16677,0.063255,0.068416,0.064688,-0.34707 -0.4084,0.074298,0.13156,0.13629,0.13724,-0.41077,0.12919,0.089442,0.082817,0.093701,-0.41882,0.068619,0.075245,0.081397,0.11594,-0.37338,0.068619,0.077138,0.079031,0.13677,-0.37386,0.08187,0.08187,0.11736,0.12683 0.2118,0.20649,-0.14527,-0.18775,-0.19439,0.19455,0.19322,-0.13863,-0.15456,-0.30854,0.17065,0.17463,0.17331,-0.19837,-0.3258,0.15871,0.16932,0.15871,0.16667,-0.26872,0.1441,0.1441,0.15472,-0.23023,-0.26872 0.31861,0.25655,0.32216,-0.1708,-0.16548,0.22108,0.29911,-0.15306,-0.17789,-0.19208,0.20513,0.24768,-0.14242,-0.17789,-0.18498,0.17143,0.19271,-0.10873,-0.17789,-0.18676,0.15016,-0.050218,-0.15129,-0.16725,-0.17789 0.95106,-0.074065,-0.071474,-0.066292,-0.079246,-0.0032472,-0.049019,-0.055065,-0.072337,-0.088746,0.060661,0.1263,-0.040383,-0.042974,-0.087019,0.020934,-0.012747,-0.058519,-0.064565,-0.06111,-0.036065,-0.030883,-0.021383,-0.07061,-0.073201 0.29242,0.2888,0.29025,0.29025,0.2946,0.28952,0.2917,0.29242,-0.10772,-0.11642,-0.13237,-0.14179,-0.15194,-0.14179,-0.14179,-0.13237,-0.15121,-0.14614,-0.14034,-0.13309,-0.14251,-0.13237,-0.13382,-0.14396,-0.14034 -0.19431,-0.33391,-0.27807,-0.36182,-0.11056,0.0011167,0.0011167,-0.16639,-0.27807,-0.19431,0.0011167,0.0011167,0.0011167,0.029035,-0.082639,0.029035,0.19655,0.084873,0.33614,0.16863,0.25238,0.36406,0.19655,0.16863,0.16863 0.20238,0.21839,0.22453,0.39336,0.24097,0.21883,0.21861,0.3892,0.23746,-0.15919,-0.13923,-0.14011,-0.14099,-0.14187,-0.1559,-0.14055,-0.14055,-0.14165,-0.14165,-0.16291,-0.13901,-0.13989,-0.14077,-0.15743,-0.16204 -0.22309,-0.23023,-0.23023,-0.23329,-0.23023,-0.21188,-0.22411,-0.23023,-0.23125,-0.23329,0.034871,0.20821,0.22146,0.22656,0.21637,0.026714,0.0073413,0.21637,0.2388,0.23064,0.023655,0.0012236,0.20617,0.20107,0.2184 -0.39898,0.10383,0.10383,0.099977,0.097407,-0.40181,0.1028,0.098692,0.096892,0.095607,-0.39898,0.1028,0.099206,0.095607,0.09535,-0.3995,0.10383,0.10178,0.099206,0.09715,-0.40053,0.1064,0.10049,0.099977,0.098949 -0.11557,-0.11649,-0.11374,-0.11282,-0.11282,-0.11282,-0.11466,-0.11374,-0.11282,-0.11374,-0.11098,-0.1119,-0.11098,-0.11098,-0.11282,0.35481,-0.10823,-0.11098,-0.11007,-0.10915,0.35849,0.35573,0.35711,0.35573,0.35344 -0.20852,-0.2077,-0.20832,-0.20914,-0.2077,-0.2077,-0.20893,-0.20811,-0.20811,-0.20811,0.19116,0.19075,0.19157,-0.20648,-0.20914,0.19177,0.19259,0.19157,0.19198,0.19055,0.19423,0.1928,0.19321,0.19341,0.19239 0.20799,0.24093,0.24325,-0.19752,-0.19103,0.20335,0.21356,-0.19659,-0.19288,-0.19195,0.20103,0.19824,-0.19938,-0.19288,-0.18685,0.19778,0.19732,-0.19474,-0.19288,-0.18731,0.19917,0.19546,0.19546,-0.19381,-0.17571 0.16022,0.16022,0.15034,0.15363,0.15363,0.14705,0.1668,0.16022,0.17009,0.15692,0.15363,0.14376,0.14047,0.15692,0.041732,-0.13599,-0.16561,-0.14916,-0.32359,-0.10308,-0.18536,-0.18536,-0.070168,-0.45524,-0.44207 0.29958,0.28762,0.30356,0.30356,0.23584,0.14421,0.10836,0.064536,0.040634,-0.066926,0.092422,0.044618,0.024699,-0.011154,-0.050992,-0.035057,-0.0071707,-0.031073,-0.066926,-0.07091,-0.32587,-0.32985,-0.29798,-0.31392,-0.3418 0.9705,-0.070117,-0.075917,-0.0051509,-0.057356,-0.090999,-0.094479,-0.056196,-0.0028307,-0.022553,-0.019072,-0.039954,-0.061996,-0.037634,-0.014432,0.0018098,-0.012112,-0.052715,-0.039954,-0.024873,-0.079398,-0.026033,-0.051555,-0.0051509,-0.031833 0.15166,0.1522,0.15126,0.14322,0.13678,0.15019,0.15032,0.15327,0.14308,0.14215,0.15086,0.15166,0.15877,0.14751,0.13866,0.17686,-0.26763,-0.26562,-0.26629,-0.26856,-0.26615,-0.26548,-0.26602,-0.26602,-0.26669 -0.17662,-0.17558,-0.17714,0.23162,0.21253,-0.17714,-0.17623,-0.17675,0.2289,0.21538,-0.17688,-0.17623,-0.17753,0.22643,0.21603,-0.17714,-0.17584,-0.17675,0.21084,0.21058,-0.17714,-0.17688,0.29828,0.21291,0.21032 -0.25763,0.0070583,0.18351,0.20557,0.1394,-0.23557,0.0070583,0.22763,0.18351,0.18351,-0.30174,-0.14734,0.18351,0.24969,0.18351,-0.38997,-0.19146,-0.059113,0.11734,0.18351,-0.30174,-0.23557,-0.12528,0.073229,0.11734 -0.22621,-0.22021,-0.21422,-0.21062,-0.2298,-0.20343,-0.20583,-0.22381,-0.21662,-0.20703,0.10229,0.12627,0.22098,0.23777,-0.21782,0.12986,0.23417,0.23777,0.23057,0.077113,0.23177,0.23417,0.23537,0.047141,0.030356 -0.045321,-0.051986,-0.048177,0.011806,-0.042941,-0.041513,-0.04913,-0.044845,-0.050082,-0.043893,0.049415,-0.046273,-0.047225,-0.046273,-0.047701,-0.047225,-0.045797,-0.04913,-0.049606,-0.050558,-0.048654,-0.041989,-0.045797,-0.051034,0.97393 -0.13864,-0.14051,-0.14286,0.26761,0.26175,-0.13958,-0.14263,-0.14662,0.26808,0.26292,-0.13887,-0.15272,-0.16117,0.26949,0.26362,-0.14122,-0.15952,-0.16164,0.27231,0.26574,-0.14732,-0.16046,-0.16257,-0.16187,0.26667 0.34591,0.31946,0.47814,0.24013,0.21368,0.13434,0.1079,0.055007,-0.02433,0.13434,-0.050776,-0.050776,-0.050776,-0.02433,0.0021157,-0.26234,-0.28879,-0.077222,-0.077222,-0.26234,-0.15656,-0.15656,-0.15656,-0.2359,-0.15656 -0.39842,0.098657,0.10136,0.098657,0.098657,-0.39797,0.10317,0.10046,0.10136,0.098657,-0.40112,0.10678,0.095951,0.097755,0.095951,-0.39842,0.10587,0.10136,0.096853,0.098657,-0.40383,0.10633,0.09956,0.097755,0.095951 -0.24,-0.21183,-0.15549,0.26704,0.1262,-0.21183,-0.25409,0.11211,0.11211,0.21071,-0.31042,-0.22592,0.15437,0.16845,0.22479,-0.31042,-0.15549,0.15437,0.16845,0.14028,-0.29634,0.14028,0.069859,0.15437,0.16845 -0.18791,-0.19525,-0.19525,-0.19525,-0.19892,-0.10343,-0.16587,-0.18056,-0.18423,-0.18056,0.27855,-0.09792,-0.11261,-0.16587,-0.17689,0.24182,0.24917,0.20142,0.23631,-0.072209,0.24733,0.23815,0.27488,0.22713,0.21795 -0.14958,-0.14977,-0.14995,-0.14958,-0.1505,-0.14958,-0.14903,-0.15013,-0.14885,-0.1494,-0.1505,-0.1505,-0.15087,-0.14885,-0.14995,0.055625,0.30026,0.3065,0.30705,0.30851,0.023716,0.019498,0.30631,0.3098,0.3098 0.072651,0.078025,0.083399,0.072651,0.079816,0.076234,0.076234,0.094146,0.1246,0.12101,0.078025,0.081607,0.11206,0.12997,0.14251,0.088772,0.083399,0.10668,0.13534,0.14967,-0.37873,-0.40023,-0.40023,-0.4056,-0.40202 -0.23702,0.148,0.15535,0.13512,0.15658,-0.25786,-0.24744,0.16762,0.14738,0.15474,-0.27564,-0.23211,0.15106,0.15229,0.1529,-0.28545,-0.2738,0.14187,0.14555,0.14616,-0.2879,-0.29649,0.14003,0.14493,0.15413 -0.16443,-0.14853,-0.13263,-0.072993,0.30469,-0.17238,-0.1366,-0.1207,-0.08492,0.32855,-0.14853,-0.1366,-0.1366,0.018447,0.31662,-0.1366,-0.1207,-0.1207,0.28482,0.3365,-0.1366,-0.1207,-0.1366,0.31662,0.3206 0.97169,-0.048289,-0.054412,-0.048289,-0.048289,-0.053392,-0.052371,-0.059005,-0.059005,-0.058494,-0.054923,-0.055433,-0.055433,-0.057474,-0.057474,-0.051861,-0.048289,-0.04982,-0.037064,-0.015124,0.011409,-0.027369,-0.04931,0.025696,0.032329 -0.15384,-0.16017,-0.16198,-0.15565,0.26818,-0.14119,-0.14571,-0.14933,0.28083,0.26999,-0.13939,-0.15204,-0.16017,0.27451,0.26637,-0.13939,-0.15113,-0.15204,0.26276,0.26005,-0.13939,-0.15204,-0.14481,0.26456,0.25101 -0.13575,-0.14382,-0.14187,-0.1466,0.082862,-0.14549,-0.14465,-0.14382,0.092597,0.29369,-0.14521,-0.14493,-0.14549,0.319,0.2898,-0.14465,-0.14354,-0.14604,0.319,0.2884,-0.14437,-0.14577,-0.14604,0.29258,0.33013 0.1696,0.16552,-0.24943,-0.24331,-0.25555,0.17368,0.16552,0.15327,-0.23923,-0.24807,0.1696,0.16347,0.15055,-0.24399,-0.24127,0.1696,0.16552,0.15055,-0.24195,-0.23855,0.17504,0.16552,0.15667,0.15395,-0.24671 0.26207,0.2567,0.2558,0.27731,0.2549,0.24325,0.22174,0.22711,0.2307,-0.13772,0.21188,-0.1449,-0.16103,-0.18344,-0.16551,-0.13862,-0.16551,-0.16013,-0.16103,-0.16193,-0.16731,-0.17806,-0.16731,-0.16551,-0.18344 -0.28513,-0.064818,-0.08112,-0.069475,0.43869,-0.27675,-0.078325,-0.086709,0.10612,0.44055,-0.26929,-0.057365,0.11078,0.10612,0.29895,-0.27954,-0.057365,0.099602,0.10519,0.10426,-0.2842,-0.069475,-0.065749,0.10519,0.10985 -0.14014,-0.023856,-0.02147,-0.019243,-0.018924,-0.13967,-0.13967,-0.012561,-0.0095385,-0.015584,-0.1376,-0.010016,-0.011766,-0.012402,-0.013675,-0.13585,-0.011607,-0.011925,-0.012243,-0.012561,-0.011288,-0.010016,-0.0095385,-0.0076296,0.94877 -0.40097,-0.40097,-0.40097,-0.39984,-0.39644,0.091859,0.095258,0.095258,0.090726,0.089593,0.10319,0.095258,0.098657,0.091859,0.09979,0.10092,0.09979,0.10092,0.09979,0.10432,0.10885,0.10545,0.10885,0.10885,0.10999 -0.18909,-0.16353,-0.13478,0.14002,0.12564,-0.16673,-0.16673,-0.15554,0.13842,0.15919,-0.16513,-0.16034,-0.16353,0.14321,0.16238,-0.16513,-0.16833,-0.14276,0.13203,0.49149,-0.15554,-0.15235,0.14641,0.15919,0.45155 0.97617,-0.060546,-0.04902,-0.024872,-0.033654,-0.062192,-0.055057,-0.047923,-0.022677,-0.029263,-0.036946,-0.051765,-0.039142,-0.029263,-0.027068,-0.084145,-0.051216,-0.036398,-0.017738,-0.027068,-0.078108,-0.030361,-0.038044,-0.017738,-0.02597 -0.29604,-0.29604,-0.29604,-0.43309,-0.38741,0.038985,-0.0067005,-0.052385,-0.14376,-0.098071,0.23695,0.16081,0.17604,0.08467,0.0085279,0.23695,0.19127,0.19127,0.08467,0.023756,0.23695,0.19127,0.08467,0.08467,-0.021929 0.22408,0.20604,0.19521,0.18619,0.17626,0.21776,0.20423,0.1898,0.18077,0.17175,-0.21351,-0.17471,0.19431,0.17536,0.16904,-0.21712,-0.19275,-0.2099,-0.21531,-0.19185,-0.21712,-0.22072,-0.2126,-0.2126,-0.2126 -0.27597,-0.028685,-0.0039565,0.2186,0.54006,-0.17705,-0.10287,-0.0039565,0.070228,0.24333,-0.10287,-0.20178,-0.10287,-0.0039565,0.31751,-0.3007,-0.10287,-0.15233,0.094956,0.26805,-0.15233,-0.10287,-0.10287,-0.078141,0.24333 0.39196,0.35802,0.34605,0.34854,0.36301,-0.099561,0.3201,-0.13399,-0.129,-0.084591,-0.098064,-0.10355,-0.1305,-0.1315,-0.094072,-0.10206,-0.10755,-0.12252,-0.13399,-0.11204,-0.097565,-0.10455,-0.12351,-0.12252,-0.096567 -0.41149,0.038948,0.03763,0.10122,0.10748,-0.40226,0.052128,0.1065,0.10386,0.1032,-0.39567,0.11935,0.1088,0.10386,0.10518,-0.39172,0.13253,0.11144,0.1032,0.10353,-0.38546,0.12923,0.11869,0.10386,0.095952 0.33809,0.017118,0.12411,-0.089872,-0.26819,0.30243,0.12411,-0.054208,-0.26819,-0.054208,0.2311,0.19544,-0.12554,-0.018545,-0.41084,0.30243,-0.054208,-0.089872,-0.12554,-0.30385,0.12411,0.2311,0.12411,-0.1612,-0.089872 0.15159,0.14872,0.15159,0.15303,0.15591,0.15735,0.15447,0.15735,0.15878,0.15735,0.17029,0.1631,0.16741,0.16526,-0.060551,0.17604,-0.22164,-0.23314,-0.23099,-0.33023,-0.2389,-0.24609,-0.24825,-0.25184,-0.32663 0.96679,-0.053626,-0.049976,-0.038572,0.065887,-0.058187,-0.053626,-0.051801,-0.047239,0.069992,-0.056363,-0.053626,-0.049976,-0.049064,-0.039485,-0.058187,-0.056363,-0.049976,-0.044503,-0.049976,-0.060468,-0.049976,-0.049064,-0.039941,-0.042678 -0.048764,-0.048447,-0.057345,-0.10692,-0.10756,0.45814,-0.051625,-0.059888,-0.10756,-0.10661,0.46291,-0.051307,-0.1047,-0.10947,-0.10661,0.45464,-0.054485,-0.10851,-0.10788,-0.10661,0.44384,-0.054803,-0.10978,-0.10597,-0.1047 -0.14445,-0.1535,-0.16116,0.2732,0.27389,-0.14375,-0.1535,-0.15768,0.27459,0.26763,-0.15002,-0.15141,-0.15559,0.27459,0.26484,-0.13749,-0.14027,-0.14793,0.26902,0.25371,-0.14584,-0.14793,-0.14793,-0.15976,0.24675 -0.14799,-0.10129,-0.10129,-0.0026983,0.090705,-0.10648,-0.13243,-0.15318,0.044003,0.25676,-0.1428,-0.11686,-0.13243,0.075138,0.44875,-0.13243,-0.12724,-0.11686,0.069949,0.53178,-0.1428,-0.16356,-0.16875,0.080327,0.39167 0.041156,0.19998,0.42096,0.31737,0.15164,0.02044,0.14474,0.32428,0.15855,0.11712,-0.048614,-0.0071816,0.082589,0.089494,0.034251,-0.20053,-0.16601,-0.17982,-0.12457,-0.048614,-0.26268,-0.30412,-0.2834,-0.24197,-0.23506 -0.2582,-0.1769,0.13203,0.03447,0.083248,-0.2582,-0.20942,0.03447,0.099507,0.083248,-0.2582,-0.030568,0.083248,0.31088,0.16454,-0.22568,-0.20942,-0.014308,0.050729,0.47347,-0.20942,-0.1769,-0.046827,0.1808,0.3434 0.25858,0.25778,-0.16384,-0.16223,-0.16263,0.25135,0.25939,-0.16223,-0.16464,-0.16103,0.25215,-0.16545,-0.16223,-0.16464,-0.16103,0.263,0.26903,-0.16223,-0.15902,-0.15982,0.26501,0.18423,0.17619,-0.16424,-0.16143 0.14511,-0.11714,-0.11714,-0.20456,-0.20456,0.27624,-0.11714,-0.0078675,-0.07343,-0.095285,0.36366,-0.029722,-0.13899,-0.11714,-0.24826,0.31995,0.057695,-0.11714,-0.07343,-0.11714,0.60405,0.14511,-0.07343,0.013987,-0.07343 -0.15014,-0.17564,-0.18791,0.26912,0.18036,-0.16147,-0.18508,-0.17469,0.24834,0.22285,-0.18508,-0.1813,-0.16714,0.21907,0.21152,-0.19358,-0.18602,-0.13692,0.20207,0.20396,-0.19358,-0.18508,0.29367,0.20396,0.20868 0.30965,0.30965,0.392,0.3371,0.36455,-0.10212,-0.019765,0.035137,0.14494,0.17239,-0.23937,-0.15702,-0.15702,-0.23937,0.062588,-0.047216,-0.10212,-0.047216,-0.15702,-0.18447,-0.18447,-0.18447,-0.12957,-0.047216,-0.12957 0.33841,0.27677,0.076435,0.091845,0.1689,0.21513,0.18431,0.061025,0.030204,0.091845,0.18431,0.18431,0.076435,0.045614,0.014794,-0.016027,-0.016027,-0.17013,-0.1239,-0.077668,-0.30882,-0.26259,-0.32423,-0.40128,-0.33964 -0.16402,-0.16748,-0.15882,-0.15363,-0.16402,-0.1441,-0.14064,-0.14324,-0.13371,-0.13458,-0.12332,-0.11726,-0.11899,-0.12332,-0.12072,0.28716,-0.1086,-0.1086,0.28976,0.28543,0.29323,0.29063,0.29063,0.29582,0.29236 0.23632,0.23477,0.29571,-0.16806,-0.16671,0.26987,0.30111,-0.16864,-0.1671,-0.16864,0.3067,0.23632,-0.16999,-0.16941,-0.17115,0.089376,0.23246,-0.16999,-0.17076,-0.17577,0.092654,0.095546,-0.17076,-0.17577,-0.17809 0.2188,0.1972,0.1972,0.18279,0.17199,0.2188,0.1972,0.18639,0.13958,0.049551,0.1936,0.13958,0.12878,-0.054881,-0.19172,0.10357,-0.0080665,-0.18812,-0.23134,-0.27095,-0.28895,-0.26014,-0.27095,-0.27095,-0.28895 -0.031559,0.30934,0.31988,0.31988,0.30934,-0.1159,0.25311,0.25311,0.25311,0.24256,-0.10185,-0.073732,-0.070218,-0.073732,-0.066703,-0.18619,-0.14051,-0.13523,-0.13523,-0.12996,-0.20728,-0.19498,-0.18971,-0.20201,-0.20552 0.87574,0.068664,0.0016467,-0.044308,-0.09122,0.11653,0.10696,-0.028032,-0.078774,-0.11803,0.087812,0.076323,-0.052925,-0.10558,-0.15824,0.048559,0.046644,-0.051967,-0.1142,-0.18217,0.0045189,0.0026041,-0.057712,-0.16015,-0.1927 -0.20438,-0.20335,-0.20464,-0.2031,-0.20412,-0.20464,-0.20489,-0.20464,-0.20232,-0.20258,-0.20412,-0.20335,0.11871,0.11485,0.22795,0.22615,0.22563,0.11768,0.11794,0.2336,0.24285,0.24054,0.21998,0.11845,0.24183 0.18633,0.18593,0.18593,-0.1626,-0.23109,0.18808,0.18767,0.18808,-0.23311,-0.23257,0.18955,0.18968,0.18942,-0.23445,-0.23364,0.19116,0.19103,0.19049,-0.2323,-0.23445,-0.095437,-0.095437,0.19277,-0.23498,-0.23605 0.14457,-0.11015,-0.10939,-0.10864,-0.10898,-0.10864,-0.1085,-0.10905,-0.10933,-0.10905,-0.10919,-0.10919,-0.10919,-0.10939,-0.10933,-0.10912,-0.1096,-0.10946,-0.1096,-0.10987,0.37804,0.37537,0.39407,0.44746,0.33617 0.2365,0.21351,-0.23916,-0.25611,-0.25127,0.23529,0.18204,-0.23432,-0.23553,-0.23553,0.21714,0.16872,0.15057,-0.21496,-0.22101,0.16751,0.15057,0.13604,-0.1496,-0.19922,0.17356,0.14573,0.13604,0.13604,-0.21254 0.13227,0.13037,0.1449,-0.29125,-0.29204,0.11663,0.13195,0.14332,-0.28951,-0.29267,0.11695,0.17364,0.14142,-0.28714,-0.29267,0.1179,0.14395,0.14079,0.13795,-0.29299,0.13921,0.13985,0.14016,0.13779,-0.29078 0.60451,0.12927,-0.085626,-0.093891,-0.11455,0.60451,-0.036036,-0.064964,-0.093891,-0.11455,0.3235,-0.036036,-0.085626,-0.093891,-0.10216,-0.048433,-0.048433,-0.060831,-0.093891,-0.11455,-0.023638,-0.060831,-0.081494,-0.093891,-0.11455 0.21493,0.21035,0.20926,0.2028,-0.23912,0.21523,0.21692,0.21005,-0.2418,-0.24051,0.20817,0.023404,0.026785,-0.24399,-0.25165,0.20588,0.020521,0.022112,-0.2605,-0.25781,0.20558,0.019029,0.023703,-0.23067,-0.26865 -0.07739,-0.096652,-0.10005,-0.11988,-0.14141,0.2648,0.29653,-0.13518,-0.16237,-0.14594,0.27273,0.28293,-0.14537,-0.15047,-0.14537,0.31296,0.29086,-0.14084,-0.15217,-0.15727,0.31409,0.28406,-0.13688,-0.15217,-0.15954 0.35502,0.34878,0.35448,0.36071,0.35502,-0.10147,-0.10689,-0.11339,-0.10309,0.36098,-0.11448,-0.11502,-0.11719,-0.11285,-0.11556,-0.11367,-0.11231,-0.11312,-0.11231,-0.11367,-0.11339,-0.11367,-0.11448,-0.11367,-0.11475 -0.2287,-0.22945,-0.2287,-0.2287,-0.22794,-0.22542,-0.22693,-0.22491,-0.22592,-0.22491,0.24311,0.24664,0.17474,0.11191,0.060442,0.38642,0.29988,0.16363,0.099044,0.077598,0.091727,0.092484,0.092484,0.091223,0.040258 -0.042743,-0.053675,-0.053675,-0.029078,-0.045476,-0.023613,-0.045476,-0.050942,-0.037277,-0.029078,-0.015414,-0.048209,-0.031811,-0.026346,-0.072805,-0.026346,-0.031811,-0.026346,-0.056408,-0.083737,-0.026346,-0.048209,-0.02088,-0.050942,0.97664 -0.048363,-0.042522,-0.049823,-0.046902,0.054583,-0.065155,-0.062965,-0.074647,-0.081217,0.018078,-0.062965,-0.069536,-0.069536,-0.047632,-0.035951,-0.047632,-0.065155,-0.057854,-0.069536,0.14439,0.95043,-0.049823,-0.062965,-0.069536,0.012237 -0.19548,-0.19548,-0.095396,-0.021047,0.15911,-0.19262,-0.12113,-0.098256,-0.023906,0.18198,-0.19548,-0.12685,-0.10683,-0.018187,0.25347,-0.19548,-0.11541,-0.10969,0.25347,0.42219,-0.18118,-0.10397,0.036145,0.40503,0.38502 0.075848,0.21212,0.091469,0.074518,0.064215,0.072524,0.21013,0.093464,0.068536,0.057567,0.088146,0.07053,0.092467,0.081831,0.073854,0.073854,0.19716,0.084822,0.096787,0.075848,-0.3928,-0.3928,-0.39114,-0.39081,-0.38815 -0.39646,0.096478,0.11249,0.10919,0.11013,-0.39646,0.10637,0.10825,0.10637,0.10919,-0.40117,0.10354,0.094595,0.088474,0.11107,-0.40305,0.10731,0.091299,0.087533,0.094124,-0.40117,0.098361,0.089416,0.088945,0.085179 -0.11425,-0.11501,-0.114,-0.1135,-0.1135,-0.114,-0.11249,-0.11375,-0.11249,-0.113,-0.11098,-0.11149,-0.11149,-0.11048,-0.11249,0.35321,-0.10947,-0.11098,-0.11149,-0.11048,0.35673,0.35573,0.35774,0.35522,0.35673 0.97462,-0.076139,-0.074386,-0.077891,-0.06124,-0.06124,-0.0516,-0.058611,-0.048095,-0.0516,-0.01304,-0.017422,-0.037579,-0.040208,-0.047219,-0.036702,-0.052477,-0.021804,-0.014793,-0.033197,-0.036702,-0.027062,-0.01304,-0.010411,-0.012164 -0.22295,-0.17845,0.19989,0.19478,0.18792,-0.22359,-0.17861,0.19095,0.18585,0.1841,-0.21338,-0.21099,-0.17893,0.18505,0.18441,-0.2212,-0.21354,0.19351,0.18936,0.19829,-0.22104,-0.2137,-0.21657,0.1951,0.20371 0.33887,0.20598,0.20598,0.27243,0.30565,0.039867,0.10631,0.07309,0.30565,0.2392,0.039867,-0.22591,-0.059801,0.0066446,-0.059801,-0.25914,-0.12625,-0.25914,0.039867,-0.12625,-0.25914,-0.22591,-0.15947,-0.15947,-0.25914 -0.20942,-0.211,-0.20879,-0.20785,-0.20879,-0.2069,-0.20722,-0.21005,-0.20753,-0.20942,0.19957,0.18917,0.19453,-0.20375,-0.20659,0.19043,0.18507,0.18948,0.19074,0.1939,0.19295,0.1857,0.18507,0.192,0.2087 0.35575,0.35619,0.3559,0.35619,0.35634,-0.11065,-0.11181,-0.11444,-0.11648,0.35502,-0.11181,-0.11167,-0.11225,-0.11196,-0.11225,-0.1124,-0.11181,-0.11181,-0.1124,-0.11152,-0.11167,-0.11342,-0.11283,-0.1121,-0.1121 0.36472,0.15267,0.19508,-0.27142,-0.22901,0.11026,0.15267,-0.22901,0.025446,-0.14419,0.2799,0.067855,0.025446,-0.14419,-0.39865,0.15267,0.2799,-0.016964,-0.14419,-0.27142,0.19508,0.067855,0.11026,-0.14419,-0.1866 -0.11354,-0.11417,-0.11574,-0.11292,-0.11512,-0.11103,-0.11386,-0.11354,-0.11292,-0.11417,-0.11071,-0.11103,-0.11134,-0.11103,-0.11197,0.35767,-0.11103,-0.1104,-0.11009,-0.11071,0.35893,0.35704,0.35515,0.35421,0.35233 -0.16239,-0.036295,-0.028878,-0.022079,-0.01528,-0.056074,-0.027642,-0.016516,-0.012189,-0.017134,-0.070291,-0.018988,-0.016516,-0.016516,-0.014043,-0.072763,-0.059783,-0.018988,-0.011571,-0.014661,-0.073999,-0.067818,-0.062874,-0.052984,0.96627 -0.22298,-0.18345,-0.10437,0.21191,0.093305,-0.26252,-0.064839,0.17238,0.093305,0.25145,-0.38113,-0.26252,-0.064839,0.21191,0.21191,-0.26252,0.053769,-0.14391,0.33052,0.21191,-0.14391,-0.14391,0.014233,0.13284,0.25145 -0.26491,-0.27803,0.15619,0.1575,0.16143,-0.25901,-0.26425,0.14831,0.15028,0.14897,-0.26097,-0.26688,0.147,0.14897,0.14438,-0.26491,-0.2695,0.14831,0.14766,0.147,-0.27081,0.14635,0.15291,0.15028,0.14372 0.95437,-0.0096401,-0.032963,-0.15346,0.052554,-0.025189,-0.025189,-0.025189,-0.025189,0.079764,-0.071834,-0.0096401,-0.048511,-0.017414,-0.032963,-0.071834,-0.048511,-0.099044,-0.06406,-0.087383,-0.025189,-0.017414,-0.040737,-0.083496,-0.071834 0.18032,0.1505,-0.27986,-0.26708,-0.26708,0.18458,0.16754,0.039712,-0.27134,-0.27986,0.15902,0.16754,0.14624,-0.22873,-0.27986,0.15902,0.16328,0.16754,0.03119,-0.31395,0.15902,0.1718,0.14624,0.1505,-0.15629 -0.34341,-0.031219,-0.0028381,0.13907,0.096495,-0.37179,-0.031219,0.13907,0.28097,0.082305,-0.38598,-0.087981,0.16745,0.12488,0.2384,-0.38598,-0.0028381,0.13907,0.11069,0.11069,-0.30084,-0.0596,0.21002,0.025543,0.13907 0.011587,-0.060833,-0.081525,-0.11256,-0.15395,0.2392,-0.01945,-0.11256,-0.11256,-0.071179,0.49784,-0.060833,-0.091871,-0.050488,-0.13325,0.61165,-0.01945,-0.060833,-0.15395,-0.050488,0.37369,-0.050488,-0.10222,-0.12291,-0.11256 0.12706,0.12791,0.12735,0.12692,0.12749,0.12918,0.16735,0.16735,0.16651,0.16693,0.12763,0.16693,0.16651,0.16609,0.16651,-0.26483,-0.26512,-0.26469,-0.26624,0.1651,-0.26653,-0.26624,-0.26653,-0.26624,-0.26638 -0.0076677,-0.018489,-0.032402,-0.040132,-0.046315,-0.016943,-0.026218,-0.0092136,-0.03704,0.0031536,-0.00303,-0.06332,-0.075687,-0.035494,-0.016943,-0.043223,-0.11433,-0.10197,-0.021581,-0.0014841,-0.098876,-0.11124,-0.049407,0.0031536,0.9647 -0.37096,-0.20059,0.037937,0.049295,0.0095409,-0.29713,-0.21762,0.10041,0.10041,0.094728,-0.28577,-0.2233,0.16288,0.14584,0.13448,-0.2517,-0.14947,0.23103,0.18559,0.22535,-0.1438,-0.10972,0.25942,0.25942,0.25374 -0.207,-0.21108,0.18515,0.18865,0.19799,-0.207,-0.20583,0.18398,0.18982,0.19682,-0.207,-0.20641,0.18398,0.19098,0.19857,-0.20466,-0.20991,-0.21342,0.18982,0.19915,-0.20466,-0.20641,-0.214,0.19565,0.19682 -0.19419,-0.19419,-0.19619,-0.19419,-0.18319,-0.19219,-0.19819,-0.19719,-0.19219,-0.1762,-0.18419,-0.20718,-0.18619,0.20362,0.19962,0.22661,0.21062,0.20862,0.20162,0.19363,0.22761,0.21562,0.20862,0.20262,0.19663 0.15445,0.15989,-0.14312,-0.14521,-0.27286,0.14734,0.15403,0.16701,0.18333,-0.27747,0.15906,0.15822,0.1645,-0.26324,-0.267,0.17119,0.16366,0.16031,-0.26073,-0.26491,0.15403,0.15696,0.1645,-0.25989,-0.26407 -0.2423,-0.21458,-0.22214,0.17094,0.15582,-0.25993,-0.19946,0.23141,0.18354,0.15582,-0.25238,-0.20702,0.20621,0.17094,0.14826,-0.25993,-0.22718,0.21629,0.15582,0.14826,-0.2423,-0.12387,0.18606,0.1785,0.14322 -0.13501,-0.1984,-0.27763,-0.29348,-0.087473,-0.11917,-0.1984,-0.23009,-0.1984,0.0076064,-0.024087,-0.087473,-0.11917,-0.087473,0.16607,0.19777,-0.0082402,-0.024087,0.0076064,0.10269,0.32454,0.29285,0.32454,0.34039,0.32454 0.10475,0.10634,0.10159,0.087352,-0.31445,0.10871,0.10713,0.10634,0.094076,-0.31761,0.14391,0.10634,0.13758,0.098426,-0.31801,0.15261,0.15181,0.13046,-0.32473,-0.31682,0.21311,0.14944,0.1269,-0.3192,-0.31603 -0.14549,0.058348,-0.11821,-0.096994,-0.090175,0.018186,0.045466,-0.13791,-0.10457,-0.087143,0.02046,0.018186,0.030311,-0.068957,0.076535,0.14701,-0.053044,-0.065168,-0.086386,-0.082597,0.91463,-0.048497,-0.062895,-0.076535,-0.0045466 -0.099062,-0.1158,-0.10743,0.038989,0.49079,-0.10743,-0.090695,-0.086512,-0.0028447,0.48661,-0.12416,-0.10325,-0.099062,-0.073962,0.49079,-0.10743,-0.11998,-0.094878,-0.082328,0.29836,-0.11998,-0.090695,-0.11161,-0.099062,0.030622 -0.14501,-0.15037,-0.1517,-0.15973,-0.16307,-0.13231,-0.13632,-0.15037,-0.139,-0.16508,-0.12361,-0.12896,-0.15839,-0.12027,-0.14033,0.050264,0.065646,0.35522,0.32379,0.3151,-0.025975,0.067652,0.35388,0.33583,0.32312 -0.080406,-0.088219,-0.071477,0.037904,0.020046,-0.074825,-0.081522,-0.085987,0.028975,0.054646,-0.087103,-0.084871,-0.0938,0.043485,0.060226,-0.071477,-0.081522,-0.084871,0.049065,0.063575,-0.077058,-0.077058,-0.088219,-0.065896,0.93639 0.076523,0.083772,0.088605,-0.34663,-0.35327,0.083772,0.1031,0.10552,0.10612,-0.35387,0.094645,0.10552,0.10612,0.10491,-0.35508,0.10733,0.11126,0.17317,0.094041,-0.35418,0.11307,0.11518,0.17317,0.17287,-0.35569 0.084859,0.12464,0.084859,0.058341,0.12464,0.12464,0.12464,0.098119,0.11138,0.15116,0.12464,0.12464,0.16442,-0.021215,0.031822,0.12464,0.084859,0.084859,0.084859,0.058341,-0.43225,-0.33944,-0.31292,-0.40573,-0.45877 -0.18886,-0.18835,-0.19288,0.1971,0.20112,-0.19036,-0.18785,-0.19087,0.20263,0.20413,-0.18835,-0.19087,-0.1984,0.22072,0.20263,-0.18936,-0.19489,0.18252,0.20866,0.17599,-0.19137,-0.19941,0.2182,0.2574,0.22072 0.2234,0.22725,0.28657,0.28292,0.28414,0.24182,-0.14912,0.2809,0.28191,0.28414,-0.15155,-0.15135,-0.15236,-0.15014,-0.14953,-0.14649,-0.14852,-0.14831,-0.14831,-0.14771,-0.15014,-0.15054,-0.14912,-0.14933,-0.15054 -0.039085,-0.035481,-0.025872,-0.036082,-0.020467,-0.042088,-0.022269,-0.03428,-0.0547,-0.0547,-0.040286,-0.045091,-0.046292,-0.059504,-0.063108,-0.010258,-0.052297,-0.059504,-0.029476,-0.069714,-0.0096571,-0.047493,-0.061906,-0.016864,0.97647 0.13447,0.13796,0.1395,-0.29248,-0.29829,0.13447,0.12983,0.13292,-0.28977,-0.29287,0.13486,0.14183,0.14299,-0.28745,-0.29171,0.1337,0.13486,0.14725,0.14338,-0.29209,0.13176,0.13176,0.13292,0.14725,-0.28706 0.14238,0.17254,0.17254,-0.098939,-0.24976,0.11221,0.11221,0.021718,0.051883,-0.37042,0.051883,0.23287,0.2027,-0.068775,-0.1291,0.11221,0.051883,0.14238,-0.1291,-0.40058,0.14238,0.2027,0.11221,-0.068775,-0.52124 0.33066,0.33593,0.22347,0.21975,0.21975,-0.14611,0.33407,0.33995,0.17359,0.17112,-0.14704,-0.14642,-0.14859,-0.14673,-0.14921,-0.14828,-0.14704,-0.14704,-0.14704,-0.14859,-0.14642,-0.14704,-0.14797,-0.1427,-0.14208 -0.20658,-0.20721,-0.20752,-0.21003,-0.21066,-0.20689,-0.20689,-0.20878,-0.20783,-0.20909,0.18305,0.19059,0.19593,-0.20626,-0.20909,0.18116,0.18462,0.20159,0.20253,0.19185,0.18116,0.18556,0.19907,0.20693,0.19279 0.14241,0.018643,-0.23663,-0.2289,-0.15541,0.40349,0.012841,-0.17088,-0.109,-0.27338,0.30873,0.2217,-0.041309,-0.10706,-0.26758,0.1927,0.19076,-0.049044,-0.029705,-0.095458,0.24298,0.22364,0.080529,0.08633,-0.36041 0.33575,0.22283,-0.078291,-0.15357,-0.078291,0.26047,0.26047,-0.26649,0.034629,-0.19121,0.33575,-0.040651,0.034629,-0.11593,-0.19121,0.29811,0.26047,-0.078291,-0.22885,-0.15357,0.10991,0.034629,-0.15357,-0.15357,-0.30413 0.24065,-0.17493,-0.17587,-0.17601,-0.17695,0.24226,0.23662,-0.17439,-0.17587,-0.17614,0.24253,0.23259,-0.17345,-0.17345,-0.17426,0.24858,0.22963,0.22896,-0.17238,-0.17345,0.25154,0.23675,0.05087,-0.17117,-0.17265 0.1567,0.20693,0.072994,0.089736,0.1567,0.19019,0.1567,0.039511,0.056252,0.25715,0.10648,0.22367,0.12322,0.022769,0.24041,-0.094424,-0.044198,-0.044198,-0.12791,-0.094424,-0.41252,-0.36229,-0.2451,-0.31207,-0.36229 -0.19214,-0.19214,-0.1908,-0.19169,-0.19102,-0.19282,-0.19304,-0.19125,-0.19326,-0.19125,-0.1908,-0.19282,-0.19483,0.20382,0.20517,0.20674,0.20718,0.20651,0.20606,0.20562,0.21211,0.21189,0.21077,0.21122,0.21077 0.29374,0.29628,-0.13753,-0.13965,-0.13288,0.29078,0.29459,-0.13753,-0.14092,-0.135,0.28951,0.29247,-0.13669,-0.13753,-0.13203,0.28782,-0.13923,-0.13753,-0.1388,-0.13373,0.28697,-0.13838,-0.13838,-0.13542,-0.14092 -0.27818,-0.21974,-0.19636,-0.18467,-0.12623,-0.24311,-0.1613,-0.13792,-0.12623,-0.044415,-0.13792,-0.091167,-0.056103,0.0023376,0.037402,-0.056103,0.037402,0.11922,0.16597,0.31792,0.084154,0.15428,0.28285,0.37636,0.48155 0.15207,0.1492,0.091504,0.091081,-0.29093,0.14565,0.14709,0.14886,-0.28806,-0.29085,0.1432,0.14456,0.14591,0.14633,-0.29127,0.1432,0.14228,0.14253,-0.29186,-0.29127,0.14253,0.13991,0.10941,-0.29068,-0.29042 -0.19107,-0.1916,-0.19531,0.20428,0.20375,-0.19107,-0.19195,-0.1939,0.2057,0.20534,-0.19036,-0.19195,-0.19443,0.21065,0.21029,-0.19125,-0.19178,0.21047,0.20923,0.20888,-0.19107,-0.19213,0.21029,0.20994,0.20905 -0.39941,0.10414,0.095161,0.099136,0.098252,-0.39971,0.10458,0.096707,0.095971,0.10075,-0.40022,0.10414,0.095382,0.094941,0.097884,-0.39971,0.10753,0.10046,0.10318,0.096854,-0.40052,0.1073,0.10407,0.1037,0.089421 0.32352,-0.11458,-0.11419,-0.11654,-0.11967,0.32587,0.3247,-0.096947,-0.10949,-0.11693,0.48066,-0.10557,-0.10674,-0.10322,-0.11497,0.33175,-0.11262,-0.1087,-0.10596,-0.1138,0.32705,-0.1138,-0.11497,-0.11262,-0.11223 0.22198,0.22198,0.22795,0.21004,0.16946,0.21482,0.21959,0.22198,0.21124,0.16946,0.22079,-0.17791,-0.15523,-0.17433,0.17781,-0.18149,-0.20059,-0.18268,-0.19701,-0.18984,-0.20059,-0.20656,-0.20417,-0.19462,-0.22207 -0.027884,-0.020909,-0.035679,-0.019267,-0.095582,-0.18913,-0.024191,-0.024191,-0.074247,-0.013523,-0.021729,-0.013523,-0.079991,-0.011472,-0.013113,-0.017626,-0.02337,-0.084504,-0.013523,-0.013523,-0.021729,-0.080812,-0.017626,-0.02296,0.96011 0.19659,-0.047152,-0.127,-0.1375,-0.11019,0.2176,-0.013532,-0.13961,-0.1291,-0.14591,0.2176,-0.030342,-0.1249,-0.1291,-0.16902,0.26173,0.27224,-0.084974,-0.14591,-0.17323,0.46345,0.47185,-0.059759,-0.16482,-0.16902 0.93743,0.10521,0.1187,0.10791,-0.014837,-0.06879,-0.024279,-0.048558,-0.017535,-0.043162,-0.074185,-0.059348,-0.067441,-0.071488,-0.074185,-0.074185,-0.063395,-0.070139,-0.075534,-0.06879,-0.066092,-0.064744,-0.064744,-0.072837,-0.084976 -0.40019,0.11728,0.11648,0.11447,0.11287,-0.39899,0.11047,0.10927,0.10927,0.10687,-0.39699,0.10207,0.10047,0.099667,0.097666,-0.39939,0.092063,0.092863,0.089261,0.089662,-0.40179,0.087661,0.084059,0.084459,0.080457 0.37056,0.21355,0.056527,-0.10049,-0.10049,0.37056,0.025123,0.025123,0.025123,-0.1319,0.37056,0.025123,-0.069088,-0.1947,-0.037684,0.30776,-0.1633,-0.25751,-0.1319,-0.22611,0.27635,-0.10049,-0.10049,-0.22611,-0.22611 0.3445,0.24105,0.13759,-0.13397,-0.2245,0.33157,0.26691,0.047072,-0.17277,-0.15984,0.33157,0.24105,0.12466,-0.082246,-0.2245,0.12466,0.085867,-0.13397,-0.13397,-0.2245,-0.082246,-0.082246,-0.17277,-0.1857,-0.26329 -0.10953,-0.10647,-0.097316,-0.0026863,0.43994,-0.12174,-0.10647,-0.11258,0.0064715,0.45215,-0.12479,-0.10647,-0.097316,-0.06679,0.43688,-0.12174,-0.10647,-0.10037,-0.082053,0.45215,-0.12174,-0.10037,-0.11868,-0.069843,0.085838 0.12228,0.14734,0.022051,-0.17841,-0.32876,0.047108,0.12228,0.047108,-0.15335,-0.35381,0.14734,0.12228,0.047108,-0.15335,-0.40393,0.12228,0.29769,0.14734,-0.07818,-0.40393,0.22251,0.14734,0.19745,0.14734,-0.053122 -0.27429,0.032956,0.17194,0.1736,0.17567,-0.27658,-0.27928,0.17277,0.17443,0.1736,-0.27679,-0.26931,0.17256,0.17401,0.17464,-0.27596,-0.27637,0.17214,0.17339,0.16882,-0.27658,-0.032067,-0.038299,0.16965,-0.0046451 0.92228,-0.048814,-0.065432,-0.067509,-0.056084,0.086204,-0.061277,-0.068548,-0.067509,-0.060239,0.091397,-0.031158,-0.067509,-0.068548,-0.056084,0.087243,0.064393,-0.065432,-0.069586,-0.16514,0.094513,-0.060239,-0.060239,-0.061277,-0.1454 -0.30808,-0.28742,-0.27709,-0.222,-0.21512,-0.27021,-0.222,-0.16692,0.067207,-0.11527,-0.27709,0.053435,0.15673,0.1705,0.11885,0.11197,0.14984,0.18427,0.14984,0.15673,0.18427,0.19116,0.21526,0.21526,0.23591 -0.1159,-0.37459,-0.21937,-0.47807,-0.1159,0.013452,-0.090026,-0.1935,-0.21937,-0.064157,-0.038287,0.039322,-0.012417,-0.064157,-0.012417,0.091061,0.22041,0.22041,0.065191,0.11693,0.32389,0.16867,0.32389,0.24628,0.16867 0.23744,0.22184,0.21838,-0.17492,-0.21477,0.22704,0.22184,-0.1524,-0.17146,-0.20784,0.2461,0.21838,0.24437,-0.19225,-0.18359,0.24783,0.22531,-0.15933,-0.21477,-0.19571,0.058978,0.06071,-0.17666,-0.20784,-0.17666 -0.26188,-0.2624,0.13444,0.13392,0.13496,-0.26033,-0.26707,0.14481,0.14222,0.14429,-0.26344,-0.26603,0.14948,0.15156,0.14844,-0.26914,-0.27433,0.15467,0.15674,0.15363,-0.27329,0.15986,0.16297,0.16193,0.16401 0.28473,-0.13722,-0.14099,-0.1394,-0.14,0.2879,-0.13841,-0.13861,-0.1396,-0.13881,0.29087,0.29028,-0.13722,-0.13801,-0.13702,0.29345,0.29286,-0.13563,-0.13524,-0.13524,0.29603,0.29603,-0.13306,-0.13385,-0.13385 0.069369,0.060672,0.06763,0.062411,0.06763,0.090243,0.090243,0.083285,0.081545,0.083285,0.11286,0.1059,0.11633,0.10764,0.11459,0.13721,0.13721,0.13373,0.13025,0.13373,-0.38115,-0.40202,-0.40898,-0.39506,-0.39854 0.40367,-0.13251,-0.14045,-0.13075,-0.14045,0.30622,-0.12545,-0.13692,-0.14221,-0.14045,0.28329,0.28109,-0.13692,-0.13604,-0.13516,0.25154,0.26521,-0.13648,-0.13471,-0.13692,0.25022,0.2705,-0.13471,-0.13427,-0.13736 -0.3234,0.083392,0.083392,0.13424,0.23594,-0.3234,0.032543,0.083392,0.15966,0.18509,-0.34882,0.0071188,0.10882,0.10882,0.057967,-0.45052,0.0071188,0.13424,0.0071188,0.13424,-0.45052,-0.018306,0.10882,0.083392,0.15966 0.26825,0.41948,-0.15975,-0.18353,-0.21016,0.21214,0.1855,-0.16926,-0.19779,-0.2016,0.20072,0.1427,-0.16546,-0.19304,-0.20921,0.20262,0.1779,-0.16546,-0.17497,-0.19114,0.16173,0.15507,0.1389,0.1427,-0.18638 -0.11294,-0.11271,-0.11338,-0.11428,-0.11472,-0.1116,-0.11271,-0.11338,-0.11428,-0.11517,-0.11003,-0.10981,-0.11204,-0.11182,-0.11361,0.35808,-0.11026,-0.11026,-0.1116,-0.1107,0.36009,0.3525,0.35585,0.35451,0.35429 0.15044,0.14592,0.14139,0.13913,0.13008,0.15723,0.15949,0.15723,0.14139,0.13686,0.12329,0.14365,0.12329,0.13008,0.13008,-0.27952,-0.275,-0.25915,0.098394,0.1165,-0.30441,-0.30441,-0.3112,-0.3112,-0.27952 -0.21882,-0.21847,-0.20901,-0.19715,-0.19242,-0.21923,-0.20291,-0.20812,-0.20188,-0.20881,0.19473,0.17951,0.18856,-0.21073,-0.20901,0.19508,0.19981,0.18822,0.1937,0.1913,0.19124,0.18609,0.19919,0.19288,0.19624 -0.20731,-0.20731,-0.20831,0.2011,0.19547,-0.20831,-0.20632,-0.20963,0.19746,0.19514,-0.20698,-0.20897,0.20143,0.19116,0.19182,-0.20698,-0.21228,0.18255,0.18884,0.19249,-0.20665,-0.20831,0.18354,0.18288,0.19348 -0.016619,-0.019445,-0.027924,-0.033577,-0.037816,-0.037816,-0.025098,-0.03923,-0.049122,-0.053361,-0.043469,-0.03923,-0.043469,-0.044882,-0.060427,-0.043469,-0.027924,-0.042056,-0.056188,-0.059014,-0.046295,-0.03923,-0.037816,-0.054774,0.97825 -0.10066,-0.051892,-0.10652,-0.13578,-0.13188,0.30706,0.30706,-0.10652,-0.15724,-0.14163,0.29536,0.30316,-0.13188,-0.16114,-0.14943,0.27585,0.29536,-0.14553,-0.16504,-0.14943,0.26414,0.26414,-0.13578,-0.16894,-0.17284 0.68098,-0.09228,-0.097022,-0.10103,-0.088633,0.29872,-0.098481,-0.098481,-0.1003,-0.086079,0.29763,-0.095927,-0.098481,-0.10103,-0.089362,0.29508,-0.09301,-0.089727,-0.09301,-0.096292,0.30711,-0.093739,-0.089362,-0.088268,-0.088997 -0.14466,-0.080653,-0.20867,0.015363,-0.11266,-0.048648,-0.20867,-0.11266,-0.11266,-0.20867,-0.11266,-0.24068,-0.24068,-0.11266,-0.11266,0.047368,0.015363,-0.048648,0.17539,0.14338,0.2714,0.36742,0.36742,0.36742,0.33542 -0.11241,-0.11241,-0.11383,-0.11525,-0.11667,-0.11383,-0.11099,-0.11241,-0.11525,-0.11383,-0.10957,-0.11004,-0.11099,-0.11193,-0.11288,-0.10909,-0.10957,-0.11193,-0.11241,0.35091,0.35943,0.35754,0.35706,0.35659,0.35375 0.46357,0.055737,-0.046221,-0.11419,-0.25014,0.1577,0.25965,0.19168,-0.046221,-0.28412,0.29364,0.1577,-0.11419,-0.18217,-0.14818,0.12371,-0.046221,-0.14818,-0.25014,-0.14818,0.1577,0.25965,0.055737,-0.11419,-0.28412 -0.18069,-0.18322,0.28712,0.28205,0.27726,-0.17815,-0.17055,-0.17844,0.20572,0.19558,-0.18125,-0.17168,-0.17506,0.18263,0.18122,-0.17337,-0.17478,-0.17252,0.18291,0.18713,-0.16999,-0.17055,-0.17393,0.19277,0.27979 -0.1396,-0.13452,-0.12943,-0.12842,-0.12943,-0.083686,-0.077586,-0.078603,-0.081653,-0.082669,-0.072503,-0.061321,-0.053188,-0.056238,-0.050138,-0.071487,0.071853,0.074902,0.058637,0.049488,0.90647,0.077952,0.075919,0.068803,0.046438 0.36454,0.34958,0.34963,0.35394,0.3547,0.36279,-0.1115,-0.11237,-0.11196,-0.11295,-0.11237,-0.11214,-0.11208,-0.1122,-0.11208,-0.11243,-0.11249,-0.11243,-0.11243,-0.11255,-0.11261,-0.11261,-0.11278,-0.11261,-0.11261 0.27472,0.27472,0.30515,0.295,0.29703,-0.10458,-0.09444,0.295,0.28081,0.30109,-0.12487,-0.14515,-0.14921,-0.13906,-0.09444,-0.13906,-0.14515,-0.14515,-0.15326,-0.15326,-0.13906,-0.15326,-0.13704,-0.15935,-0.14718 -0.39618,0.11259,0.10284,0.089443,0.090255,-0.39659,0.10893,0.095939,0.093909,0.087818,-0.40024,0.10365,0.097563,0.095533,0.084164,-0.40065,0.11015,0.10284,0.10284,0.089443,-0.4043,0.11137,0.11299,0.11868,0.087006 -0.17401,-0.17401,-0.1791,0.18779,0.18474,-0.17045,-0.17452,-0.1791,0.18677,0.18677,-0.17299,-0.17503,-0.18012,0.20255,0.21018,-0.17299,-0.17757,0.19339,0.21171,0.24173,-0.16994,-0.17859,-0.15671,0.39489,0.2346 0.55406,0.060807,-0.036225,-0.084742,-0.13326,0.53788,0.020377,-0.060484,-0.10091,-0.109,0.37616,0.052721,-0.036225,-0.092828,-0.10091,0.20636,-0.06857,-0.092828,-0.15752,-0.12517,-0.044312,-0.084742,-0.14943,-0.14943,-0.18177 -0.11458,-0.061535,-0.19415,0.018036,0.3098,-0.19415,-0.061535,-0.16763,0.071084,0.36285,-0.22068,-0.22068,-0.088059,0.15066,0.33632,0.018036,-0.14111,-0.16763,-0.0084876,0.36285,-0.22068,-0.14111,-0.14111,0.23023,0.28327 -0.20641,-0.21378,0.18849,0.20038,0.20662,-0.20698,-0.21888,0.18849,0.19755,0.20322,-0.20585,-0.21491,-0.18262,0.19642,0.19642,-0.20641,-0.21321,0.18395,0.18792,0.18622,-0.20188,-0.21548,-0.20924,0.18112,0.17885 0.26485,0.079535,-0.24602,-0.34619,-0.3562,0.20976,0.15466,-0.090754,-0.20595,-0.32615,0.22979,0.15466,0.10959,-0.025643,-0.22097,0.2348,0.22478,0.0094159,-0.055694,-0.27607,0.14965,0.1196,0.14965,0.089552,-0.030652 0.96181,0.012192,0.036052,0.032473,0.0026484,-0.062369,-0.062966,-0.066545,0.034859,-0.041492,-0.061773,-0.065948,-0.064755,-0.059387,-0.059387,-0.06058,-0.064755,-0.068334,-0.062966,-0.062369,0.036648,-0.05879,-0.067738,-0.065352,-0.061176 0.40295,0.022809,0.022809,-0.091234,-0.12925,0.25089,-0.12925,0.022809,-0.05322,-0.091234,0.28891,-0.091234,0.098837,-0.28131,-0.31932,0.36494,0.022809,-0.091234,-0.12925,-0.28131,0.40295,-0.015206,0.060823,-0.12925,-0.12925 -0.29107,-0.05844,0.10071,0.1381,0.14636,-0.30803,-0.31455,0.12723,0.13201,0.18245,-0.30933,-0.31368,0.12897,0.13201,0.12984,-0.29759,0.12679,0.14375,0.17332,0.12592,-0.28237,-0.12497,0.18419,0.18767,0.14071 -0.1998,-0.18434,0.24974,0.19896,0.20063,-0.19838,-0.18589,-0.18708,0.19551,0.19896,-0.19659,-0.18969,-0.19207,0.19492,0.19956,-0.18589,-0.19136,0.13748,0.137,0.25414,-0.1866,-0.18815,-0.18839,0.25319,0.25414 0.1437,0.12243,0.20907,0.22204,0.23916,0.11725,0.1214,0.22619,0.23605,0.25317,-0.25576,0.0077818,0.12658,0.12503,0.13385,-0.23812,-0.2376,-0.24383,-0.011932,-0.018676,-0.25472,-0.25576,-0.2568,-0.25576,-0.25472 0.16874,0.083849,-0.00024141,-0.10445,-0.32171,0.20093,0.094309,0.039591,-0.073066,-0.34384,0.20053,0.10799,0.032348,-0.053351,-0.13945,0.21059,0.13012,0.046833,-0.020761,-0.11531,0.25565,0.16029,0.079825,0.013036,-0.65244 0.32851,0.3125,-0.049161,-0.087567,-0.12597,0.38292,0.26449,-0.13238,-0.17398,-0.15478,0.36051,0.20048,-0.13238,-0.14198,-0.15478,0.34771,-0.093969,-0.11317,-0.13558,-0.13238,-0.052361,-0.12277,-0.11637,-0.13558,-0.14198 -0.39617,0.063575,0.077677,0.070626,0.0671,-0.39899,0.067805,0.13127,0.086844,0.079088,-0.39829,0.070626,0.24479,0.10306,0.086844,-0.38207,0.06428,0.11716,0.10588,0.10588,-0.39265,0.081203,0.098831,0.1214,0.12422 -0.23859,-0.23937,-0.23911,0.22154,0.24288,-0.23911,-0.24145,0.12472,0.12759,0.23767,-0.23937,-0.23911,0.11952,0.12394,0.12264,-0.24275,-0.23755,0.11718,0.11848,0.23741,-0.24041,0.1255,0.12394,0.11952,0.23429 -0.2182,-0.21636,-0.21793,-0.2245,-0.22686,-0.21846,-0.21741,-0.21662,-0.22791,-0.22818,-0.21715,0.15366,0.15024,0.17729,0.36427,0.18149,0.16548,0.15208,0.14631,0.14315,0.18018,0.16863,0.15366,0.14709,0.14604 0.13449,0.13449,0.13184,-0.21773,-0.21826,0.13555,0.13449,0.13184,-0.21773,-0.218,0.13714,0.13237,0.1329,-0.21773,-0.218,0.1382,0.3008,0.30769,-0.2172,-0.21747,0.13767,0.3061,-0.21747,-0.218,-0.218 0.049564,0.035536,0.032029,0.062422,-0.39932,0.02034,0.022678,0.06476,0.070605,-0.37944,0.022678,0.018002,0.056578,0.089308,-0.36425,0.2401,0.25764,0.09866,0.068267,-0.35022,0.25998,0.26465,0.056578,0.060084,-0.35723 0.039586,0.040258,0.0066425,-0.090171,-0.19505,-0.051849,0.040258,0.0066425,-0.11505,-0.17892,0.0046255,0.02345,0.016055,-0.069329,-0.21186,0.026812,0.02345,0.019416,-0.017561,-0.17623,0.88132,0.054377,0.10749,-0.024284,-0.16009 -0.19111,-0.19278,-0.19362,0.2258,0.22099,-0.19194,-0.19236,-0.1955,0.21116,0.21555,-0.19111,-0.19236,0.20301,0.20364,0.20991,-0.18902,-0.19027,-0.19613,0.2028,0.20907,-0.19069,-0.18985,0.19611,0.19548,0.20322 0.15106,0.22119,0.22119,0.18028,0.22995,0.23872,0.26501,0.20366,0.20219,0.25333,0.29131,-0.16158,-0.1645,-0.17911,-0.17035,-0.15866,-0.18496,-0.1981,-0.17911,-0.16742,-0.16304,-0.20833,-0.19664,-0.17911,-0.14697 -0.1978,-0.20135,-0.18835,-0.16709,-0.18127,-0.21434,-0.19662,-0.19544,-0.1919,-0.18304,0.20144,-0.20253,0.17487,-0.19662,-0.17123,0.20558,0.19436,0.21739,0.23393,0.22979,0.15183,0.22093,0.21621,0.22211,0.21916 0.33169,0.29584,0.28389,0.032978,-0.14625,0.36753,0.28389,0.09272,-0.1104,-0.14625,0.24805,0.14051,-0.038713,-0.22989,-0.18209,0.14051,-0.014816,-0.1582,-0.20599,-0.1582,-0.050661,-0.12235,-0.20599,-0.21794,-0.22989 0.29085,-0.13678,-0.13704,-0.13835,-0.1373,0.28717,-0.13888,-0.13835,-0.1373,-0.1373,0.29374,0.29505,-0.13809,-0.13757,-0.13599,0.29164,0.29032,-0.13757,-0.13783,-0.13678,0.2919,0.29164,-0.13467,-0.13651,-0.13599 -0.25214,-0.19323,0.12096,0.31733,0.25842,-0.2325,-0.2325,0.0031419,0.19951,0.25842,-0.19323,-0.25214,0.042415,0.31733,0.062052,-0.17359,-0.25214,0.1406,0.1406,0.10133,-0.2325,-0.25214,0.1406,0.062052,0.10133 0.041563,0.086741,-0.05331,-0.1143,-0.13463,0.48656,0.037046,-0.07364,-0.12785,-0.15722,0.49786,0.0031624,-0.098487,-0.13463,-0.14818,0.50689,0.032528,-0.091711,-0.12559,-0.15722,0.13192,-0.03298,-0.089452,-0.12785,-0.15722 -0.11164,-0.11082,-0.11466,-0.11219,-0.11548,-0.11054,-0.11164,-0.11082,-0.11274,-0.11301,-0.1067,-0.11054,-0.11219,-0.11383,-0.1163,0.33885,-0.11164,-0.11301,-0.11274,-0.1089,0.33556,0.33556,0.34763,0.3501,0.4217 -0.22519,-0.22772,0.20729,0.17027,0.16122,-0.22393,-0.22666,0.2035,0.16837,0.16606,-0.22456,-0.22603,0.2136,0.16963,0.1709,-0.22414,-0.22456,0.17279,0.16627,0.17005,-0.22288,-0.22393,-0.22751,0.16921,0.16795 0.25916,0.21081,0.13828,0.11411,0.11411,0.16246,0.089932,0.11411,0.041581,0.017406,0.065757,0.089932,0.089932,0.089932,0.13828,0.041581,0.017406,0.065757,-0.079295,0.041581,-0.22435,-0.29687,-0.29687,-0.51445,-0.49027 0.074419,0.12098,0.10884,0.10398,-0.35477,0.074015,0.11855,0.11126,0.099523,-0.35517,0.076849,0.078468,0.11531,0.10641,-0.35517,0.12463,0.10074,0.18658,0.11046,-0.35558,0.13272,0.10479,0.17038,-0.35234,-0.34586 0.18952,0.092824,-0.0038677,-0.0038677,-0.0038677,0.18952,-0.0038677,0.060593,-0.068329,-0.068329,0.44736,0.092824,-0.0038677,-0.068329,-0.32617,0.22175,0.092824,-0.19725,-0.29394,-0.32617,0.31844,0.22175,-0.036098,-0.19725,-0.32617 -0.068748,-0.083759,-0.12129,-0.05749,0.15266,-0.10627,-0.095017,-0.098769,-0.023717,0.34779,-0.10252,-0.10627,-0.10627,-0.10627,0.44536,-0.091264,-0.095017,-0.12504,-0.083759,0.44911,-0.12129,-0.10252,-0.10627,-0.10627,0.51291 0.35247,0.24757,-0.10211,-0.10211,-0.20701,0.35247,-0.03217,-0.10211,-0.10211,-0.31191,0.24757,0.28254,-0.03217,-0.10211,0.0027974,0.35247,-0.10211,-0.067138,-0.03217,-0.17204,0.2126,-0.067138,-0.067138,-0.10211,-0.34688 -0.024417,-0.022385,-0.026449,-0.028887,-0.024823,-0.022385,-0.022791,-0.024417,-0.023604,-0.021166,-0.047988,-0.050833,-0.049614,-0.05124,-0.043924,-0.053272,-0.054491,-0.053678,-0.054897,-0.058149,-0.055304,-0.054084,-0.052459,-0.056117,0.97737 -0.37034,-0.18119,-0.18006,-0.45869,-0.18044,-0.17987,-0.17968,-0.18062,-0.18044,-0.17987,0.19805,0.20313,0.19654,0.33068,0.12966,0.12175,0.12231,0.12307,0.11986,0.12363,0.12081,0.12156,0.12081,0.11968,0.11968 0.49857,0.5041,0.55262,0.11894,0.12362,-0.092999,-0.094702,-0.093851,-0.094276,-0.092999,-0.095553,-0.094702,-0.094276,-0.096404,-0.09683,-0.088318,-0.089595,-0.090446,-0.094276,-0.092574,-0.076402,-0.076402,-0.080232,-0.084062,-0.078955 0.040155,0.080742,-0.016668,-0.18714,-0.31972,0.053684,0.059095,0.05639,-0.15467,-0.28725,0.13215,0.10509,0.029331,-0.1709,-0.33054,0.30803,0.23768,0.19709,-0.05455,-0.30078,0.22686,0.12404,0.40544,0.0022729,-0.23584 -0.44755,-0.095658,0.11261,0.08388,0.10542,-0.42601,0.026428,0.11979,0.14133,0.08388,-0.38292,0.16288,0.098243,0.08388,0.10542,-0.38292,0.08388,0.14133,0.10542,0.10542,-0.28956,0.11979,0.13415,0.12697,0.08388 -0.44723,0.044576,0.10736,0.10213,0.11782,-0.39491,0.0812,0.11259,0.065504,0.091663,-0.41583,0.11259,0.10213,0.10213,0.10213,-0.40014,0.10736,0.11259,0.10213,0.11259,-0.32689,0.086431,0.13352,0.096895,0.091663 -0.18597,-0.19311,-0.1574,-0.17168,0.17825,-0.18597,-0.18597,-0.17883,0.11398,0.24967,-0.1574,-0.17168,-0.17168,0.16397,0.29252,-0.17168,-0.16454,0.049705,0.24967,0.3068,-0.16454,-0.12883,0.21396,0.25681,0.31394 0.17072,0.24495,0.24495,-0.1633,-0.38598,0.059382,0.13361,0.096495,-0.1633,-0.27464,0.096495,0.096495,-0.1633,-0.31175,-0.1633,0.28206,0.28206,0.20784,-0.12619,-0.23753,0.17072,0.13361,0.059382,-0.089072,-0.20041 0.10794,0.23345,0.22449,0.23345,0.22,0.10346,0.098975,0.13484,0.11691,0.11242,0.12587,0.067597,0.11691,0.10346,0.067597,-0.34032,0.058632,0.072079,-0.11619,-0.16101,-0.34032,-0.34032,-0.30894,-0.31342,-0.27756 0.3535,0.35254,0.3564,0.35833,0.34964,0.35447,-0.11987,-0.12373,-0.091854,-0.080261,-0.14692,-0.13436,-0.12277,-0.12663,-0.066736,-0.11987,-0.12953,-0.12953,-0.11214,-0.10441,-0.12953,-0.12567,-0.10634,-0.091854,-0.062872 -0.11092,-0.11205,-0.11205,-0.11318,-0.11468,-0.11092,-0.11205,-0.11205,-0.11243,-0.11393,-0.11243,-0.11243,-0.11017,-0.11168,-0.1128,-0.11318,-0.11205,-0.11205,-0.11355,0.34356,0.37248,0.36722,0.35821,0.34882,0.34431 -0.20801,-0.050228,-0.051426,-0.052324,-0.17792,-0.04948,-0.050228,-0.051126,-0.052623,-0.17658,-0.050228,-0.050078,-0.050977,-0.17538,-0.17553,-0.048581,-0.04933,-0.050977,-0.17418,-0.17418,0.39933,0.41026,0.36759,0.36759,0.37463 -0.22478,-0.22205,0.033068,0.034976,0.13446,-0.22314,-0.22396,0.027071,0.028434,0.02271,-0.2256,-0.2256,0.025436,0.2285,0.2424,-0.22396,-0.22451,0.2533,0.2315,0.23586,-0.2256,-0.22805,0.26121,0.24894,0.2394 -0.07931,-0.049827,-0.20707,-0.1825,-0.17759,0.25483,0.045994,-0.059655,-0.12354,-0.16776,0.34574,0.053365,-0.032628,-0.19479,-0.12845,0.3654,0.1369,-0.025257,-0.1997,-0.1997,0.38505,0.3654,0.17621,-0.13091,-0.17022 -0.042192,-0.11754,-0.15521,-0.11754,-0.11754,-0.15521,-0.11754,-0.15521,-0.19288,-0.19288,0.033151,-0.15521,0.033151,-0.042192,-0.11754,-0.0045206,-0.19288,-0.042192,-0.11754,0.14617,0.3722,0.40987,0.25918,0.40987,0.3722 -0.16902,-0.1745,-0.1745,-0.17606,-0.17919,-0.17684,-0.17528,-0.18153,-0.18153,-0.17528,-0.17137,-0.18544,-0.18622,0.13035,0.13269,0.13191,0.12175,0.128,0.12878,0.12722,0.11706,0.38673,0.39767,0.36563,0.13895 -0.11312,-0.11512,-0.11525,-0.11258,-0.11058,-0.11405,-0.11418,-0.11205,-0.11151,-0.11111,-0.11458,-0.11205,-0.11125,-0.11165,-0.11058,0.35477,-0.11151,-0.11111,-0.11178,-0.11125,0.35664,0.35331,0.35357,0.35531,0.36171 -0.19079,-0.19108,-0.19223,-0.1928,-0.19309,-0.19252,-0.19223,-0.19194,-0.19194,-0.1928,0.19372,0.21759,-0.19021,-0.19252,-0.19252,0.19832,0.21616,0.21616,0.20551,0.19401,0.21644,0.21529,0.21644,0.21069,0.19631 -0.37093,0.085284,0.090457,0.090457,0.073905,-0.38438,0.098733,0.08425,0.12356,0.11011,-0.41024,0.1308,0.10908,0.090457,0.11218,-0.41335,0.11632,0.090457,0.077008,0.14632,-0.41231,0.098733,0.085284,0.10494,0.07287 -0.096991,-0.14633,-0.10404,0.086277,0.60084,-0.096991,-0.12519,-0.10404,-0.040601,0.54445,-0.13224,-0.11109,-0.075845,-0.040601,0.34003,-0.12519,-0.096991,-0.096991,-0.068796,0.17086,-0.12519,-0.082894,-0.054699,-0.075845,0.058082 -0.037202,-0.038755,-0.048071,-0.057387,-0.024781,-0.034097,-0.034097,-0.068256,-0.074466,-0.024781,-0.034097,-0.030991,-0.048071,-0.076019,-0.072914,-0.027886,-0.027886,-0.015465,-0.060492,-0.060492,-0.012359,-0.012359,-0.012359,-0.04186,0.97514 -0.032974,-0.06133,-0.11905,-0.15956,-0.2102,0.34679,-0.036012,-0.096775,-0.15146,-0.19197,0.35692,-0.017783,-0.068419,-0.11905,-0.16969,0.36907,0.0014583,-0.046139,-0.08766,-0.1383,0.45414,0.39237,-0.020821,-0.077533,-0.11602 0.20962,0.21104,0.20677,0.20535,0.20606,0.21176,0.20677,0.20677,0.20606,0.20677,0.21176,0.2082,-0.18062,-0.1735,-0.19558,-0.18561,-0.20056,-0.20056,-0.19415,-0.19059,-0.19344,-0.19771,-0.19985,-0.19629,-0.18846 0.15557,0.16523,0.17811,0.12337,-0.25332,0.16523,0.16523,0.17489,0.055763,-0.26298,0.15879,0.17811,0.15235,-0.25332,-0.28229,0.14269,0.16845,0.0783,-0.27263,-0.26298,0.16523,0.14913,-0.25332,-0.25332,-0.28229 0.27052,0.28605,0.29025,0.27345,0.27849,-0.081338,-0.081338,0.28857,0.27933,0.28605,-0.084697,-0.084697,-0.086376,-0.087216,-0.088895,-0.085537,-0.21444,-0.21402,-0.089315,-0.088895,-0.22451,-0.22116,-0.21738,-0.21192,-0.090995 -0.20247,-0.027222,-0.028736,-0.034793,-0.031764,-0.20701,-0.024951,-0.028358,-0.03025,-0.03025,-0.0329,-0.020031,-0.029872,-0.037442,-0.029115,-0.023437,-0.02268,-0.029872,-0.040092,0.11396,-0.04312,-0.023816,-0.033657,-0.041606,0.93949 -0.016377,-0.06978,-0.17659,-0.15878,-0.22999,0.10823,-0.016377,-0.12318,-0.22999,-0.24779,0.21504,0.0014241,-0.10538,-0.14098,-0.15878,0.42865,0.25064,-0.016377,0.0014241,-0.14098,0.48205,0.33964,0.12603,-0.016377,-0.10538 -0.41187,-0.38916,-0.39992,-0.40709,-0.38916,0.093646,0.098426,0.10918,0.088865,0.08289,0.10201,0.099621,0.1044,0.08767,0.093646,0.094841,0.11396,0.10321,0.08528,0.11038,0.088865,0.098426,0.11396,0.10082,0.12711 -0.29052,-0.1962,-0.070429,0.1811,0.1025,-0.29052,-0.30624,0.1811,0.21254,0.1025,-0.16475,-0.25908,0.22827,0.21254,0.11822,-0.24336,-0.21192,0.11822,0.25971,0.11822,-0.1962,-0.13331,0.21254,0.21254,0.1025 -0.27904,-0.23031,0.13676,0.12701,0.12214,-0.28716,-0.24655,0.15625,0.16274,0.11077,-0.26929,-0.2498,0.14325,0.16924,0.17249,-0.26279,0.13676,0.14325,0.1595,0.15625,-0.29365,-0.26929,0.13026,0.17899,0.18223 0.31371,0.23554,0.07921,0.23554,0.23554,0.23554,0.23554,0.15738,0.07921,0.15738,0.07921,0.0010422,0.0010422,-0.077125,-0.077125,0.0010422,-0.077125,-0.077125,-0.15529,-0.077125,-0.23346,-0.15529,-0.33768,-0.44191,-0.33768 0.19131,0.18677,0.19853,0.20788,0.20788,0.17956,0.18437,0.18303,0.19425,0.2012,0.18624,0.18811,0.18757,-0.20699,-0.20726,-0.20539,-0.20726,-0.20966,-0.20939,-0.20886,-0.20619,-0.20779,-0.20966,-0.20859,-0.20966 -0.20736,-0.20736,-0.20736,-0.20816,-0.20696,-0.20414,-0.20776,-0.20092,-0.20535,-0.20736,0.1924,0.19199,0.1936,-0.20575,-0.20535,0.20607,0.20728,0.20768,0.19682,0.092659,0.21814,0.21894,0.21974,0.21411,0.11438 0.040911,0.039237,0.25768,-0.26793,-0.26291,0.034215,0.17817,0.19156,-0.25621,-0.26793,0.1924,0.17399,0.18236,-0.2537,-0.25537,0.16646,0.17399,0.13632,0.11456,-0.25537,0.19408,0.14469,0.10452,-0.25286,-0.25286 0.16858,0.17175,0.14638,-0.27856,-0.32137,0.15272,0.17651,0.13053,-0.28331,-0.27221,0.15272,0.17334,0.11943,0.12894,-0.25319,0.12577,0.11626,0.10674,0.11626,-0.32454,0.098814,0.10991,0.11784,-0.25477,-0.32454 0.24358,0.22891,-0.17651,-0.17699,-0.18314,0.23175,0.22229,-0.17651,-0.17651,-0.18456,0.22465,0.22749,-0.16705,-0.17841,0.20242,0.22513,0.22371,-0.16989,-0.17368,-0.19023,0.22418,0.22607,-0.17131,-0.17557,-0.17983 -0.2651,-0.2649,-0.2651,-0.26428,-0.26612,-0.26204,-0.26347,-0.26469,-0.26449,0.19873,0.093369,0.14126,0.13983,0.18426,0.19934,0.096426,0.13576,0.13902,0.17815,0.17774,0.13046,0.12842,0.13066,0.13005,0.17672 0.25044,0.25001,-0.13071,-0.13241,-0.14286,0.27432,0.2741,-0.13113,-0.13454,-0.14606,0.27133,-0.12687,-0.12922,-0.14051,-0.14648,0.44208,-0.12666,-0.1273,-0.13241,-0.14648,0.26963,0.26643,-0.12772,-0.13177,-0.1452 0.12207,0.12885,0.1153,0.12038,-0.30471,0.12207,0.11699,0.11869,0.12546,-0.33181,0.12377,0.12546,0.12207,0.12716,-0.32334,0.12885,0.12716,0.12546,-0.30132,-0.3335,0.12546,0.13054,0.13562,-0.29286,-0.35383 -0.26598,0.14249,0.15472,0.13466,0.13417,-0.26598,-0.265,0.15374,0.14493,0.14004,-0.26793,-0.26304,0.15227,0.15521,0.15814,-0.2738,-0.26793,0.15129,0.15325,0.17184,-0.25766,-0.27087,0.15521,0.14934,0.14689 0.40113,0.27661,0.12336,0.037163,-0.096929,0.33408,0.22872,0.046741,0.018007,-0.10651,0.20957,0.065897,-0.058617,-0.11609,-0.20229,0.1521,-0.029883,-0.087351,-0.20229,-0.37469,0.14252,0.018007,-0.17355,-0.25018,-0.35553 -0.30998,-0.061698,0.20418,0.15139,0.10838,-0.31389,-0.065608,0.1944,0.15139,0.096653,-0.30998,-0.25915,0.19831,0.15139,0.11229,-0.30998,-0.030419,0.20613,0.15139,0.10252,-0.30998,-0.28261,0.18267,0.14553,0.096653 -0.060108,-0.060108,0.023375,-0.14359,-0.14359,-0.087935,-0.087935,-0.17142,-0.14359,-0.087935,-0.19925,-0.14359,-0.03228,-0.087935,-0.03228,0.023375,-0.087935,-0.11576,-0.14359,-0.14359,0.41296,0.38513,0.35731,0.35731,0.41296 -0.032539,-0.081426,-0.1264,-0.14596,-0.15769,0.4094,-0.054049,-0.11858,-0.13031,-0.1264,0.46611,-0.063827,-0.067737,-0.11076,-0.10685,0.49348,-0.069693,-0.069693,-0.081426,-0.083381,0.43091,-0.050138,-0.085337,-0.016895,-0.020806 -0.069255,-0.069834,-0.066068,0.072105,0.07645,-0.071572,-0.068386,-0.068965,-0.067806,0.077609,-0.070703,-0.071282,-0.069834,-0.067227,0.083692,-0.067517,-0.070124,-0.072731,-0.068965,0.088906,-0.07331,-0.071862,-0.074469,-0.073889,0.93504 0.16651,0.26372,0.030397,-0.31311,-0.32283,0.32692,0.29937,0.032018,-0.30663,-0.29691,0.28641,0.015814,-0.0036295,0.0060924,-0.31959,0.25724,0.010953,-0.058721,-0.052239,-0.065202,0.17947,0.09359,-0.084646,-0.073304,-0.071683 -0.20976,-0.2157,0.18752,0.18996,0.18857,-0.20801,-0.20661,0.20255,0.18892,0.18752,-0.20871,-0.21011,0.18962,0.18822,0.19346,-0.20696,-0.20591,-0.20696,0.18752,0.20955,-0.20556,-0.20486,-0.20801,0.18717,0.19661 0.55949,0.51715,0.06549,-0.10388,-0.089767,0.376,0.19252,-0.10388,-0.047424,-0.075653,0.15018,-0.03331,-0.10388,-0.13211,-0.16034,-0.03331,-0.10388,-0.089767,-0.13211,-0.16034,-0.03331,-0.089767,-0.089767,-0.10388,-0.17445 -0.11435,-0.11335,-0.11335,-0.11234,-0.11301,-0.11402,-0.11167,-0.11368,-0.11268,-0.11167,-0.11067,-0.11167,-0.11201,-0.11469,-0.11234,0.36144,-0.10599,-0.11469,-0.11167,-0.11134,0.35809,0.36044,0.35609,0.34705,0.35207 0.16528,0.12745,0.081727,0.056503,0.059656,0.14637,0.1306,0.070692,0.058079,0.061232,0.15267,0.12114,0.080151,0.058079,0.054926,0.211,0.15267,0.069115,0.051773,0.045467,-0.38966,-0.38493,-0.40227,-0.38808,-0.38966 -0.29421,-0.19785,-0.26209,-0.26209,-0.16573,-0.16573,-0.19785,-0.037258,0.02698,-0.26209,-0.037258,-0.005139,-0.10149,-0.10149,0.059098,0.25181,-0.037258,0.15545,0.02698,0.28393,0.18757,0.34817,0.25181,0.34817,0.18757 0.27502,0.26614,0.24393,0.066269,0.32832,0.18175,0.16843,0.16398,-0.027005,0.28391,0.061827,0.0085279,-0.044771,-0.10695,0.23061,-0.20023,-0.22244,-0.20911,-0.22688,-0.20911,-0.20023,-0.20467,-0.20467,-0.21355,-0.20911 -0.40011,-0.40011,-0.40011,-0.3998,-0.39886,0.098458,0.099086,0.10097,0.092179,0.091865,0.10725,0.099086,0.099714,0.095946,0.089981,0.11635,0.10599,0.10066,0.094377,0.091237,0.11573,0.10568,0.096574,0.099714,0.098144 -0.15618,-0.050654,0.019699,0.12523,0.23076,-0.36724,-0.29689,-0.050654,0.12523,0.23076,-0.36724,0.019699,-0.015478,0.12523,0.26593,-0.050654,-0.08583,0.054875,0.1604,0.1604,-0.29689,-0.19136,0.019699,-0.050654,0.44182 -0.19112,-0.074583,-0.10372,-0.016315,0.012819,-0.16198,-0.22025,-0.13285,-0.13285,-0.10372,-0.13285,-0.13285,-0.13285,0.041953,-0.10372,-0.13285,-0.13285,0.041953,0.012819,-0.074583,0.27502,0.44983,0.36243,0.42069,0.36243 0.96094,-0.062534,-0.073422,-0.083403,0.01459,0.026385,-0.051646,-0.067978,-0.08431,0.050884,7.2587e-05,-0.042572,-0.065256,-0.024426,0.048162,-0.056182,-0.067978,-0.0707,-0.032592,-0.056182,-0.034406,-0.065256,-0.082495,-0.062534,-0.017167 -0.092532,-0.092532,-0.094228,-0.094652,-0.092956,-0.094228,-0.094228,-0.091684,-0.092956,-0.09338,-0.09126,-0.094228,-0.09338,-0.092956,-0.09126,-0.090836,-0.094228,-0.098044,-0.088716,-0.092956,0.69948,0.29372,0.29203,0.28864,0.28736 -0.39932,-0.39895,-0.39858,-0.40079,-0.39932,0.10167,0.10314,0.099094,0.09468,0.080334,0.10057,0.10461,0.1002,0.093944,0.079231,0.10498,0.10167,0.11565,0.097622,0.08953,0.099094,0.10057,0.14029,0.10057,0.08953 -0.041862,-0.054591,-0.061149,0.21736,-0.049576,-0.046876,-0.050734,-0.048805,-0.053048,-0.052277,-0.046876,-0.046105,-0.051891,-0.051119,-0.048033,-0.050734,-0.042247,-0.049962,-0.050734,-0.051891,0.94527,-0.053048,-0.047648,-0.05922,-0.054205 -0.25566,-0.26141,0.060893,0.05226,0.078159,-0.28731,-0.23264,-0.20674,0.3055,0.13859,-0.28156,-0.082994,0.14722,0.29974,0.3055,-0.18947,-0.14343,0.095426,0.19615,0.25082,-0.1722,-0.1722,0.078159,0.13859,0.13859 0.28116,-0.14227,-0.15542,-0.11891,-0.098471,0.29138,-0.13789,-0.13789,-0.15104,-0.1598,0.28554,0.28554,-0.11453,-0.14227,-0.13789,0.29138,0.29576,-0.14227,-0.14227,-0.1598,0.30014,0.29576,-0.12913,-0.11453,-0.14227 0.19819,0.2021,0.20492,0.18001,0.17656,0.20586,0.20148,0.18361,0.17954,0.17938,0.20524,0.18879,0.19035,-0.20577,-0.20749,-0.20796,-0.21016,-0.20843,-0.20671,-0.20749,-0.20984,-0.20953,-0.20859,-0.20671,-0.20734 -0.38247,0.073776,0.025239,0.034947,0.064069,-0.36306,0.073776,0.064069,0.093191,0.083483,-0.39218,0.083483,0.11261,0.1029,0.11261,-0.45042,0.12231,0.14173,0.16114,0.11261,-0.38247,0.1029,0.14173,0.14173,0.12231 0.6083,0.57309,0.17538,0.17662,0.17926,-0.094506,-0.092921,-0.091689,-0.088168,0.15391,-0.09741,-0.097762,-0.095386,-0.095386,-0.095562,-0.10155,-0.10172,-0.099259,-0.097674,-0.098115,-0.10436,-0.10428,-0.10428,-0.10357,-0.10296 0.97276,-0.063285,-0.054429,-0.041147,-0.021961,-0.045574,-0.050002,-0.076567,-0.050002,-0.017533,-0.02934,-0.069188,-0.063285,-0.024912,-0.045574,-0.030816,-0.075091,-0.016057,0.0001771,-0.021961,-0.058857,-0.088374,-0.014581,-0.0012988,-0.013106 -0.37956,-0.40275,-0.39889,-0.41048,-0.40662,0.091991,0.11132,0.088126,0.088126,0.088126,0.10359,0.10359,0.10359,0.10359,0.095857,0.10745,0.10359,0.095857,0.088126,0.10745,0.10745,0.10359,0.095857,0.10359,0.10745 -0.39471,-0.40313,-0.38945,-0.40839,-0.38735,0.14298,0.11246,0.10404,0.078791,0.05459,0.13561,0.12088,0.10194,0.085104,0.055642,0.13456,0.12509,0.10931,0.079843,0.057746,0.1293,0.12088,0.10615,0.072478,0.055642 -0.16098,-0.11816,0.22434,0.22434,0.22434,-0.2252,-0.011131,0.13872,0.22434,0.22434,-0.2466,-0.053945,0.031682,0.16012,0.26716,-0.28942,-0.26801,-0.075351,0.095902,0.20294,-0.20379,-0.37504,-0.20379,0.010275,0.20294 -0.065357,-0.070065,-0.052805,0.40693,0.85464,-0.070588,-0.068495,-0.066403,-0.068495,-0.074772,-0.070588,-0.069018,-0.069018,-0.066926,-0.066403,-0.05019,-0.056466,-0.068495,-0.063788,-0.066403,0.12293,-0.043913,-0.041821,-0.053328,-0.061173 -0.233,-0.2502,0.14425,0.19011,0.16145,-0.23414,-0.23644,0.14654,0.18667,0.15227,-0.21809,-0.21809,-0.21465,0.17177,0.17062,-0.21694,-0.21121,0.1947,0.17062,0.18782,-0.21236,-0.22726,0.22566,0.18667,0.18323 -0.37375,-0.37375,-0.37203,-0.37117,-0.37232,0.12017,0.10095,-0.14572,-0.14486,0.092062,0.12906,0.12447,0.12562,0.14713,0.093209,0.11845,0.12533,0.11931,0.15689,0.09493,0.11329,0.13251,0.12906,0.13623,0.09493 0.21092,0.2188,0.20529,-0.20266,-0.20941,0.21655,0.20192,-0.20322,-0.20153,-0.21054,0.070247,0.19573,-0.2021,-0.20153,-0.20998,0.20754,0.19967,0.18054,-0.20547,-0.21054,0.17772,0.20192,0.18898,-0.2066,-0.21223 0.15784,-0.12924,-0.13314,-0.13184,-0.13314,0.15741,-0.13112,-0.1317,-0.13401,-0.13358,0.35569,0.15741,-0.13141,-0.13285,-0.13271,0.35786,0.34947,-0.12996,-0.1317,-0.13329,0.35685,0.35323,-0.12982,-0.13271,-0.13358 -0.40433,-0.40433,-0.30291,-0.28601,-0.2691,-0.15078,-0.015551,-0.032455,0.035159,-0.015551,-0.10007,-0.049358,0.13658,0.08587,0.068966,0.0013523,0.10277,0.15348,0.27181,0.20419,0.068966,0.20419,0.238,0.238,0.2211 -0.20804,-0.18748,-0.24915,-0.25258,-0.15665,-0.25943,-0.25258,-0.11896,-0.20461,-0.2423,0.34701,0.15514,0.15856,-0.0058931,-0.19091,0.32302,0.18255,0.16542,0.12088,0.059205,0.15514,0.19968,0.1757,0.15514,0.13116 -0.29135,-0.2398,-0.058694,-0.057372,0.31145,-0.27152,-0.1618,-0.09042,-0.06266,0.30748,-0.13669,-0.11554,-0.052084,-0.037543,0.30219,-0.11421,-0.11686,-0.081167,0.30484,0.29955,-0.101,-0.078523,-0.063981,0.30219,0.30352 0.12055,0.12055,0.35041,0.40149,0.17163,0.018389,0.17163,0.12055,0.19717,0.35041,0.043929,-0.10931,-0.058232,0.043929,0.043929,-0.18593,-0.13485,-0.083772,-0.16039,-0.21147,-0.28809,-0.26255,-0.18593,-0.21147,-0.26255 -0.1882,-0.19186,-0.18881,-0.18699,-0.1943,-0.19247,-0.19613,-0.1943,-0.19674,-0.19247,-0.19491,-0.19674,-0.18333,0.20567,0.20932,0.21542,0.21054,0.20384,0.19652,0.19896,0.21176,0.21481,0.20811,0.21237,0.20993 -0.097284,-0.097029,-0.098303,-0.099323,-0.098558,-0.095245,-0.097029,-0.097539,-0.097029,-0.098558,-0.093207,-0.093971,-0.094991,-0.094991,-0.09601,-0.089639,-0.091423,-0.092952,-0.091933,-0.092952,0.11703,0.43327,0.43327,0.43531,0.48908 0.95126,-0.068139,-0.063659,-0.063659,-0.049581,0.062405,-0.0579,-0.069419,-0.05534,-0.049581,0.066885,-0.066219,-0.069419,-0.05726,-0.048301,-0.063659,-0.069419,-0.069419,-0.066219,-0.045742,-0.063019,-0.070698,-0.05854,0.070724,0.073924 -0.40825,-0.40371,-0.39387,-0.3969,-0.38781,0.078519,0.092146,0.087604,0.084575,0.11183,0.12394,0.082304,0.08609,0.089875,0.11334,0.15952,0.09366,0.089118,0.092146,0.098959,0.14892,0.095931,0.078519,0.091389,0.092146 0.91884,0.050028,-0.054993,-0.074088,0.054802,0.040481,-0.01203,-0.11228,-0.050219,0.035707,0.092992,-0.045446,-0.1075,-0.01203,0.0070651,0.069123,-0.15047,-0.14569,-0.088409,-0.016803,-0.01203,-0.15047,-0.1075,-0.093183,-0.035898 -0.22047,-0.082029,-0.073376,0.22947,0.47175,-0.20317,-0.15125,-0.038765,0.065069,0.50636,-0.20317,-0.13395,-0.05607,0.0044995,0.38522,-0.11664,-0.11664,-0.082029,-0.012806,0.17756,-0.1599,-0.13395,-0.11664,-0.0041534,0.065069 -0.092837,-0.092837,-0.1052,-0.11447,0.36455,-0.086656,-0.10211,-0.10211,-0.11138,0.38618,-0.095927,-0.092837,-0.095927,-0.11138,0.41091,-0.083566,-0.1052,-0.095927,-0.12065,0.42327,-0.089746,-0.089746,-0.095927,-0.11138,0.41091 0.13319,0.15308,0.18401,0.22378,0.25913,0.1111,0.14203,0.17296,0.24367,0.2746,-0.21813,-0.11428,0.064695,0.19064,0.26797,-0.22696,-0.20487,-0.20487,-0.20266,-0.18277,-0.21592,-0.22475,-0.20929,-0.20929,-0.20708 0.14003,0.14391,0.13575,0.13809,-0.29202,0.13614,0.13459,0.13614,0.14236,-0.29358,0.12954,0.13614,0.13575,-0.28853,-0.29474,0.13692,0.13265,0.13342,-0.29397,-0.28853,0.13614,0.13847,0.14586,-0.29707,-0.28348 -0.1333,-0.067956,-0.19864,-0.11696,-0.084292,-0.21498,-0.14963,-0.16597,-0.18231,-0.1333,-0.051621,-0.051621,-0.1333,-0.11696,-0.19864,0.3241,0.25876,0.046393,-0.051621,-0.11696,0.40578,0.34044,0.34044,0.27509,0.17708 -0.26692,-0.35589,-0.26692,-0.34318,-0.39402,0,-0.038131,-0.01271,0.038131,0,-0.025421,-0.050841,-0.025421,0.063551,-0.050841,0.050841,0.050841,0.1271,0.050841,0.050841,0.15252,0.29234,0.29234,0.27963,0.38131 -0.35855,0.01353,0.01353,0.047356,0.18266,-0.49385,0.01353,0.01353,0.18266,0.14883,-0.32472,0.01353,-0.087946,0.25031,0.21648,-0.25707,-0.087946,0.11501,0.14883,0.11501,-0.2909,-0.087946,0.11501,0.25031,0.14883 -0.050071,-0.14518,-0.1333,-0.10272,-0.11461,0.41191,-0.11631,-0.1316,-0.094231,-0.094231,0.43229,-0.03988,-0.10782,-0.10272,-0.08404,0.45947,-0.021197,-0.10272,-0.080643,-0.063658,0.50023,-0.0025137,-0.08404,-0.077246,-0.055166 0.29888,0.27531,0.24077,-0.05197,-0.063483,0.27586,0.22049,0.21885,-0.23014,-0.23452,0.28682,0.056027,0.063154,-0.24055,-0.257,0.056027,0.045611,0.061509,-0.26193,-0.25536,-0.0048242,0.0099774,0.0066882,-0.25207,-0.26413 0.19928,0.21538,0.19674,0.2014,0.20818,0.19039,0.13957,0.21707,0.20521,0.21072,0.13787,0.1438,0.21876,-0.20728,-0.21194,-0.20474,-0.20474,-0.20728,-0.20558,-0.20897,-0.20643,-0.20558,-0.20558,-0.20812,-0.20812 -0.39965,-0.40147,-0.40066,-0.39924,-0.39782,0.090109,0.094168,0.093153,0.10005,0.096806,0.10005,0.093762,0.092138,0.095589,0.0964,0.10452,0.11061,0.096806,0.093762,0.10066,0.11771,0.11304,0.11223,0.096806,0.10046 0.01879,-0.039026,-0.053479,0.1019,0.32955,-0.07516,-0.11491,-0.089614,0.054925,0.38736,-0.11852,-0.1655,-0.14743,0.026017,0.29341,-0.17634,-0.23777,-0.17272,0.076606,0.36207,-0.24861,-0.29197,-0.13298,0.062152,0.35123 0.13268,0.15051,0.15224,0.14059,-0.29188,0.12736,0.14994,0.15569,0.1403,-0.29231,0.12462,0.13297,0.12923,-0.29131,-0.2916,0.12621,0.13225,0.12606,-0.29102,-0.29102,0.12764,0.15598,0.12563,-0.28973,-0.29102 0.30944,0.27551,0.3773,0.24158,0.3773,0.0040716,0.17372,0.038001,0.071931,0.17372,-0.063788,-0.13165,-0.16558,0.038001,0.071931,-0.13165,-0.19951,-0.3013,-0.23344,-0.16558,-0.13165,-0.063788,-0.23344,-0.13165,-0.19951 -0.21233,-0.16191,0.20181,0.20721,0.20361,-0.21413,-0.17091,-0.18172,0.20001,0.19101,-0.17091,-0.16011,0.22162,0.20541,0.20181,-0.22673,-0.17992,-0.17992,0.20901,0.20181,-0.22493,-0.22493,-0.17812,0.23602,0.20721 -0.26138,0.15233,0.14825,0.15006,0.14325,-0.2641,-0.27273,0.1428,0.14915,0.14552,-0.2641,-0.26865,0.1428,0.1546,0.14371,-0.2641,-0.27182,0.14007,0.16823,0.15097,-0.26456,-0.26683,0.14643,0.14552,0.17459 0.56983,0.061809,-0.044028,-0.17103,-0.086363,0.20998,-0.0016934,-0.1287,-0.086363,-0.1287,0.42166,-0.0016934,-0.23454,-0.1922,-0.14987,0.37932,-0.0016934,-0.1287,-0.044028,-0.1922,0.10414,0.12531,-0.044028,-0.1287,-0.10753 -0.15606,-0.15833,-0.15719,-0.15265,-0.13506,-0.15606,-0.15265,-0.13846,-0.12995,-0.12654,-0.13108,-0.122,-0.12427,-0.12371,-0.12711,-0.11803,-0.1186,0.2838,0.28097,0.29743,0.28437,0.29686,0.29572,0.29572,0.29289 -0.14654,-0.15126,-0.15651,0.033038,0.01151,-0.14549,-0.14916,-0.14916,0.24727,0.24044,-0.14759,-0.14811,-0.15336,0.24412,0.23887,-0.14969,-0.15336,-0.15651,0.25987,0.24989,-0.14601,-0.15704,-0.14864,0.25724,0.4762 0.14432,0.42538,0.43219,0.12899,0.13148,0.14458,0.42289,0.12572,0.12978,0.13187,-0.14696,-0.14604,-0.14643,-0.1467,-0.14827,-0.14735,-0.14735,-0.14827,-0.14774,-0.14853,-0.14853,-0.14866,-0.14892,-0.14853,-0.14892 -0.24512,-0.24512,-0.20886,-0.39016,-0.42642,-0.1726,-0.063818,-0.1726,-0.063818,-0.027558,0.22627,-0.10008,0.044963,0.11748,0.11748,0.19,0.081223,0.081223,0.081223,0.081223,0.19,0.33505,0.29879,0.19,0.081223 0.29742,0.2468,0.12026,-0.036646,-0.18343,0.2873,0.181,-0.021461,-0.22392,-0.19355,0.10002,0.044339,-0.12775,-0.0822,-0.27454,0.27717,0.059524,-0.22899,-0.072077,-0.15306,0.49988,-0.051831,-0.18343,-0.12775,-0.15306 0.10874,-0.03434,-0.095661,0.0065409,0.0065409,0.21094,-0.095661,-0.05478,-0.05478,-0.1161,0.39491,-0.1161,-0.13654,-0.13654,-0.13654,0.53799,-0.095661,-0.15698,-0.15698,-0.1161,0.45623,0.21094,-0.15698,-0.17742,-0.095661 -0.39556,-0.39881,-0.39864,-0.40137,-0.40017,0.12338,0.10954,0.098437,0.085793,0.076736,0.12441,0.10749,0.098779,0.086305,0.074857,0.12219,0.11108,0.097583,0.08921,0.077591,0.12663,0.11228,0.10151,0.089894,0.080837 -0.37187,0.092221,0.098453,0.10469,0.10926,-0.37187,0.098038,0.099699,0.093883,0.1105,-0.37187,0.096376,0.097622,0.093052,0.11258,-0.37312,0.089728,0.10011,0.093883,0.11632,-0.49735,0.083911,0.094714,0.093883,0.10718 -0.19943,-0.19969,-0.20128,-0.20101,-0.20181,-0.19837,-0.20022,-0.19969,-0.19969,-0.20049,-0.19969,0.086843,0.0012782,0.0044473,0.087899,0.08473,0.087635,0.32848,0.3269,0.085787,0.085259,0.088956,0.3269,0.32901,0.27725 0.15509,0.15226,0.1353,-0.31844,-0.33257,0.15509,0.20598,0.11127,-0.27744,-0.2732,0.18619,0.23849,0.084415,0.073107,-0.27603,0.23566,-0.01029,-0.0018093,0.061799,-0.2831,0.29503,-0.0060498,-0.028666,0.0080853,-0.29017 0.17705,0.13191,0.087559,0.0638,0.018658,0.16755,0.13191,0.10261,0.056672,0.029746,0.17071,0.13428,0.1034,0.055088,0.021034,0.17784,0.13508,0.089143,0.0638,0.024994,-0.39712,-0.39395,-0.39078,-0.38603,-0.37494 0.95527,0.018517,0.0092752,-0.0075277,-0.07894,0.025238,-0.02433,-0.0083678,-0.071378,-0.095742,-0.089862,0.023558,-0.02097,-0.042814,-0.07978,-0.10834,-0.098263,0.04036,-0.051215,-0.030211,-0.10582,-0.088181,-0.033572,-0.035252,-0.0016467 -0.041004,-0.04264,-0.028732,-0.062275,-0.050003,-0.04264,-0.047549,-0.045912,-0.068001,-0.056548,-0.015642,-0.039367,-0.065547,0.052261,-0.02546,-0.036913,-0.051639,-0.081091,0.01381,-0.05573,-0.052457,-0.060638,-0.047549,-0.019733,0.971 0.29945,-0.14131,-0.13691,-0.13946,-0.14601,0.29818,-0.13946,-0.13804,-0.13577,-0.14657,0.29462,0.28367,-0.14615,-0.14558,-0.14416,0.25637,0.2878,-0.14473,-0.14188,-0.12781,0.30827,0.29988,-0.11231,-0.11529,-0.12681 0.2045,0.20923,0.21028,0.21133,0.2129,0.20293,0.20398,0.20923,0.21028,0.21448,0.20293,0.20555,-0.19297,-0.1851,-0.19192,-0.19665,-0.19245,-0.1893,-0.19297,-0.19665,-0.18982,-0.18982,-0.1893,-0.19612,-0.19455 -0.35223,-0.28319,0.074564,0.13105,0.14988,-0.35851,-0.2016,0.14361,0.16871,0.13105,-0.35223,-0.15766,0.15616,0.15616,0.13105,-0.28947,0.087117,0.14988,0.14988,0.10595,-0.27692,0.14361,0.17499,0.13105,0.087117 0.22484,0.075574,0.076482,-0.28019,-0.2814,0.22484,0.069518,0.22182,-0.2808,-0.2814,0.088896,0.083446,0.22484,-0.2808,-0.2814,0.087685,0.087382,0.087988,0.088593,-0.28261,0.16187,0.23817,0.11917,0.087685,-0.28019 0.2093,0.23821,0.12257,0.2093,0.32494,-0.021971,0.15148,0.035847,0.26712,0.2093,0.035847,0.12257,0.093665,0.064756,-0.021971,-0.16652,-0.16652,-0.021971,-0.05088,-0.1087,-0.4267,-0.22433,-0.22433,-0.33997,-0.31106 0.28517,0.38849,0.078526,0.044084,-0.059239,0.28517,0.21629,-0.09368,-0.12812,-0.197,0.18185,0.25073,0.0096435,-0.12812,-0.30033,0.18185,-0.12812,-0.16256,-0.16256,-0.26588,0.25073,0.044084,-0.12812,-0.23144,-0.23144 0.12087,0.11876,0.11982,0.11824,-0.35808,0.11666,0.11929,0.11718,-0.35703,-0.3544,0.11086,0.11297,0.11191,0.11244,-0.35334,0.11086,0.10717,0.1077,0.1077,-0.35545,0.10612,0.10506,0.10506,0.10612,-0.3565 0.20004,0.20544,0.21083,0.20295,0.20793,0.20585,0.20585,0.20876,0.21457,0.21208,0.21125,0.21125,-0.18484,-0.18152,-0.17903,-0.18526,-0.1919,-0.19398,-0.19522,-0.18941,-0.19149,-0.19564,-0.20353,-0.20353,-0.20145 0.20538,0.20818,0.35376,0.054201,-0.16697,0.22218,0.22218,0.037403,-0.11378,-0.20897,0.29217,0.0598,-0.13337,-0.13617,-0.28736,0.28377,0.020605,-0.13617,-0.14737,-0.25656,0.28657,-0.082981,-0.13897,-0.18097,-0.25656 -0.1941,-0.19061,-0.19177,-0.18945,-0.19294,-0.20226,-0.19294,-0.18013,-0.19061,-0.19177,-0.18595,-0.18945,0.20533,-0.1976,0.19136,0.24609,0.21115,0.19368,0.18786,0.18786,0.26006,0.22513,0.19601,0.19019,0.19485 -0.067356,-0.068651,-0.06563,-0.06563,-0.067788,-0.06822,-0.066925,-0.069946,-0.064767,-0.06563,-0.067788,-0.06822,-0.068651,-0.066493,-0.064336,-0.051389,-0.047937,-0.052252,-0.059157,-0.065199,0.085844,0.085844,0.084118,0.083686,0.94247 -0.10375,-0.12132,-0.12571,-0.054142,-0.049263,-0.10847,-0.078539,-0.12522,-0.059835,-0.046172,-0.073009,-0.079515,-0.073497,-0.056094,-0.045359,-0.037389,-0.048612,-0.0086008,0.1721,0.15958,-0.041943,-0.045034,-0.0092514,0.16332,0.89572 0.31837,0.15811,0.15811,0.29166,0.23824,0.21153,0.13141,0.26495,0.077989,0.29166,0.024572,-0.16239,-0.082262,-0.0021367,-0.055554,-0.32264,-0.21581,-0.16239,-0.082262,-0.13568,-0.0021367,-0.10897,-0.26922,-0.26922,-0.29593 0.050704,-0.12434,-0.11227,-0.11227,-0.088128,0.098993,-0.11227,-0.1002,-0.11227,-0.088128,0.52152,-0.082092,-0.082092,-0.094164,-0.094164,0.50945,-0.082092,-0.070019,-0.1002,-0.082092,0.52756,0.074848,-0.10624,-0.070019,-0.070019 -0.29075,-0.29043,-0.29075,-0.29139,-0.29235,-0.015227,-0.016186,-0.017145,-0.019382,-0.018743,-0.012351,-0.013949,-0.015547,-0.015547,-0.019063,-0.01299,-0.013309,-0.016825,-0.013949,-0.015866,0.33796,0.33733,0.34244,0.3386,0.33541 0.13384,0.15008,0.19881,0.16632,-0.044829,0.19881,0.15008,0.23129,0.16632,-0.012344,0.16632,0.19881,0.21505,0.16632,0.0038982,-0.1098,0.0038982,-0.028586,-0.12604,-0.22349,-0.25598,-0.33719,-0.27222,-0.38592,-0.35343 0.30341,0.30694,-0.12131,-0.12405,-0.12131,0.31165,0.29949,-0.12601,-0.1268,-0.12484,0.33243,-0.12013,-0.12405,-0.12366,-0.12601,0.34067,-0.12484,-0.12405,-0.1264,-0.12601,0.34773,-0.12797,-0.12758,-0.12523,-0.12209 -0.40597,-0.40336,-0.39292,-0.41901,-0.36422,0.14454,0.11062,0.10801,0.087142,0.029743,0.13671,0.11323,0.10541,0.081924,0.087142,0.12106,0.11062,0.10541,0.074097,0.081924,0.12628,0.10801,0.10019,0.081924,0.071488 -0.14774,-0.15369,-0.15666,-0.15836,0.29691,-0.15114,-0.15369,-0.15709,0.28842,0.27738,-0.14987,-0.15284,-0.15624,0.29054,0.27568,-0.15029,-0.15454,-0.15326,0.29606,0.27823,-0.15072,-0.15284,0.014915,0.009819,0.27101 -0.12085,-0.11365,-0.11245,-0.11245,-0.10524,-0.11965,-0.11005,-0.11245,-0.10644,-0.10885,-0.12205,-0.11965,-0.10164,-0.11485,-0.098042,-0.11365,-0.11245,-0.10524,-0.12445,0.34728,0.37008,0.35928,0.35688,0.34968,0.35088 0.27893,0.29068,-0.13313,-0.13728,-0.13451,0.28515,0.30244,-0.14074,-0.13935,-0.13728,0.28999,0.29829,-0.13382,-0.14143,-0.12967,0.29483,-0.13659,-0.13935,-0.13935,-0.13175,0.29137,-0.14281,-0.1359,-0.14143,-0.13728 -0.40262,0.11077,0.10442,0.094048,0.085687,-0.39994,0.11512,0.10575,0.09639,0.086356,-0.39894,0.11679,0.10776,0.0994,0.091707,-0.39994,0.1091,0.10642,0.0994,0.090035,-0.39693,0.098396,0.096724,0.094048,0.090035 -0.29567,-0.17783,0.089985,0.17569,0.3578,-0.22068,-0.1564,0.17569,0.12212,0.02571,-0.29567,-0.05999,0.1864,0.13284,0.28281,-0.26353,-0.1564,0.17569,0.12212,0.12212,-0.26353,-0.34923,0.079273,0.11141,0.079273 -0.11312,-0.11312,-0.11312,-0.11241,-0.11241,-0.11241,-0.11241,-0.11348,-0.11169,-0.11564,-0.11169,-0.11312,-0.11312,-0.11241,-0.11205,-0.11061,-0.11241,-0.10846,-0.11169,0.3544,0.35691,0.35835,0.35583,0.35512,0.35476 0.34712,-0.092278,-0.11362,-0.12073,-0.11964,0.34766,-0.090089,-0.11471,-0.118,-0.11964,0.36244,0.35259,-0.11526,-0.12183,-0.11526,0.36134,-0.11635,-0.11745,-0.11526,-0.10705,0.36244,-0.11307,-0.11471,-0.10651,-0.10213 -0.094906,-0.11925,-0.041342,-0.057168,-0.042559,-0.05595,-0.068124,-0.075428,-0.10464,-0.094906,-0.085167,-0.082732,-0.080297,-0.066906,-0.070559,-0.057168,-0.06082,-0.053515,-0.042559,0.070656,0.90212,0.13031,0.23622,0.047526,-0.03282 0.29709,0.30337,-0.12089,-0.12717,-0.13032,0.12215,-0.13136,-0.14289,-0.15965,-0.14184,0.13576,0.30128,-0.14498,-0.16593,-0.16279,0.33166,0.13367,-0.13241,-0.16279,-0.16384,0.3369,0.34318,-0.1146,-0.14079,-0.16279 -0.1542,-0.1542,-0.18154,-0.07218,-0.20888,-0.18154,-0.18154,-0.20888,-0.20888,-0.18154,-0.12686,-0.044839,-0.18154,-0.044839,-0.09952,0.11921,0.31059,0.22857,0.28325,0.36527,0.064524,0.17389,0.064524,0.39261,0.22857 -0.19662,-0.19662,-0.24837,-0.30011,-0.48121,-0.015523,-0.093138,-0.015523,-0.11901,-0.24837,0.13971,0.087964,-0.015523,0.010349,0.03622,0.13971,0.19145,0.13971,0.010349,-0.041395,0.39842,0.29494,0.21732,0.087964,0.21732 -0.21927,-0.1196,-0.019934,-0.31894,-0.1196,-0.019934,-0.21927,-0.21927,-0.019934,-0.1196,-0.086379,-0.053156,-0.086379,0.013289,-0.086379,0.11296,-0.15282,0.013289,-0.086379,0.046512,0.41196,0.41196,0.27907,0.37874,0.27907 -0.15649,-0.15786,-0.12208,0.0058896,0.25221,-0.15649,-0.15786,-0.10007,0.0086417,0.36092,-0.15236,-0.15511,-0.11796,0.45311,0.35954,-0.15511,-0.14685,-0.1441,0.01965,0.29486,-0.14273,-0.1386,-0.054658,0.0031374,0.30037 0.90625,-0.079387,-0.082832,-0.088191,-0.085894,0.16788,0.17133,-0.080536,-0.088957,-0.090488,0.02932,0.02932,-0.075942,-0.087426,-0.09355,0.022813,0.019368,-0.077091,-0.084363,-0.095464,0.012861,0.012861,-0.079387,-0.088191,-0.094315 -0.39924,-0.39865,-0.39953,-0.39943,-0.39963,0.084077,0.097526,0.096937,0.093894,0.092029,0.13002,0.10204,0.10106,0.097526,0.091047,0.11962,0.097919,0.090752,0.089869,0.090752,0.12845,0.1205,0.088494,0.090065,0.093894 -0.19377,-0.21569,-0.14993,-0.19377,-0.10609,-0.19377,-0.19377,-0.21569,-0.08417,-0.14993,-0.08417,-0.12801,-0.062251,0.0035071,-0.018412,-0.040331,0.069265,0.0035071,0.20078,0.26654,0.20078,0.15694,0.28846,0.26654,0.57341 -0.22514,-0.24476,0.17332,0.15235,0.14558,-0.22649,-0.22379,0.17873,0.14017,0.1537,-0.21973,-0.22785,0.28088,0.13882,0.27344,-0.21634,-0.21837,0.13611,0.14829,0.2085,-0.21634,-0.21634,-0.2089,0.14829,0.16588 -0.10547,-0.13659,0.04286,-0.080575,-0.098208,-0.088873,-0.13036,-0.10754,0.040785,-0.017302,-0.075389,-0.077463,0.0034437,0.038711,0.0013692,-0.072277,-0.077463,0.032487,0.032487,0.015891,-0.068128,-0.084724,0.035599,0.04286,0.93387 0.32742,0.33836,0.10493,0.095424,0.084489,0.32219,0.37306,0.36498,0.089244,0.086867,-0.16843,-0.1632,-0.16415,-0.16558,0.047408,-0.16558,-0.1632,-0.16272,-0.16225,-0.15844,-0.15084,-0.15131,-0.15131,-0.15417,-0.15321 -0.16457,-0.080028,-0.27728,-0.27728,-0.41818,-0.051849,-0.051849,-0.051849,-0.27728,-0.2491,0.1454,-0.051849,0.0045086,0.032688,-0.080028,0.1454,0.25812,0.032688,0.032688,0.11722,0.20176,0.39901,0.2863,0.22994,0.1454 0.32073,0.30429,0.18192,0.16274,0.14721,0.32438,0.18922,0.0979,0.075982,0.080548,0.3253,-0.10575,-0.10667,0.047671,0.011142,-0.2053,-0.19343,-0.20895,-0.15416,-0.1642,-0.22265,-0.22356,-0.22813,-0.2263,-0.22995 0.19574,0.19574,0.11552,0.048669,0.048669,0.30271,0.2626,0.15563,0.11552,0.11552,0.24923,0.20911,0.10215,0.062039,-0.018184,-0.044925,-0.15189,-0.21874,-0.29896,-0.21874,-0.058295,-0.17863,-0.32571,-0.31234,-0.35245 0.20004,0.33629,0.19357,0.193,0.18901,0.19928,0.19795,0.19224,0.19034,0.18616,0.19947,0.19719,-0.1886,-0.18898,-0.1905,-0.1905,-0.19088,-0.19107,-0.19107,-0.19069,-0.1905,-0.1905,-0.19069,-0.19088,-0.18974 -0.036682,0.4538,0.45797,0.44824,0.44963,-0.04224,-0.036682,-0.060303,-0.025566,-0.060303,-0.11171,-0.10199,-0.061692,-0.070029,-0.045019,-0.127,-0.12422,-0.10754,-0.097818,-0.097818,-0.12422,-0.12422,-0.12839,-0.10893,-0.11727 0.1431,0.14428,0.12032,-0.31211,-0.3147,0.1929,0.1269,0.11962,-0.31,-0.31446,0.18562,0.11915,0.13089,0.022136,-0.31446,0.16002,0.14874,0.1579,-0.31188,-0.31517,0.13747,0.12901,0.12102,0.017673,0.016029 -0.031434,-0.045508,-0.038471,-0.040817,-0.049027,-0.040817,-0.032606,-0.030261,-0.031434,-0.045508,-0.046681,-0.030261,-0.026742,-0.029088,-0.076004,-0.045508,-0.030261,-0.037298,-0.020878,-0.088905,-0.037298,-0.047854,-0.032606,-0.04199,0.97726 0.19883,-0.1771,-0.17612,-0.17821,-0.17489,0.19858,0.19562,-0.17747,-0.17563,-0.17587,0.26208,0.19624,-0.1776,-0.17612,-0.17661,0.26122,0.26085,0.19747,-0.17538,-0.17636,0.24137,0.26023,0.19686,-0.17587,-0.17612 0.18107,0.10548,0.12077,-0.19432,-0.2198,0.10378,0.13521,-0.17394,-0.17563,-0.2198,0.13266,0.35942,-0.1544,-0.17054,-0.2198,0.33564,0.29742,-0.16035,-0.1527,-0.18753,0.18956,0.19296,0.22269,-0.16035,-0.18753 0.41035,-0.070059,-0.09508,-0.10509,-0.1226,0.52544,-0.080068,-0.10008,-0.10008,-0.1126,0.052544,-0.065055,-0.087574,-0.097582,-0.1201,0.43036,-0.04754,-0.09508,-0.09508,-0.1151,0.43287,-0.04754,-0.085072,-0.10259,-0.10759 -0.24103,-0.21758,0.040328,0.15756,0.18101,-0.38171,-0.31137,0.18101,0.15756,0.15756,-0.31137,-0.030012,0.20445,0.20445,0.063775,-0.26448,0.063775,0.11067,0.087221,0.11067,-0.38171,-0.030012,0.13411,0.11067,0.20445 0.11036,0.10088,-0.21438,-0.22988,-0.24625,0.18185,0.12242,-0.21352,-0.23505,-0.23247,0.24646,0.1965,0.094855,-0.23075,-0.21782,0.18272,0.27402,0.11983,0.10002,-0.19801,0.18788,0.33432,0.1362,-0.18079,-0.1894 -0.17577,-0.15978,-0.17843,0.14667,0.16354,-0.16777,-0.15178,-0.16511,0.15644,0.49397,-0.15534,-0.15534,-0.16422,0.15999,0.25503,-0.16599,-0.18109,0.20085,0.18308,0.22394,-0.18642,-0.18198,-0.16866,0.19019,0.18397 -0.25682,-0.25621,0.25379,0.16487,0.25968,-0.25845,-0.25703,0.16568,0.16101,0.1537,-0.26027,-0.26027,0.1537,0.1537,0.14984,-0.26433,-0.26129,0.15472,0.15512,0.15979,-0.25845,0.044471,0.071271,0.073504,0.058277 -0.35421,-0.20332,0.1739,0.12675,0.098455,-0.39193,0.070163,0.10789,0.15504,0.12675,-0.39193,0.023011,0.10789,0.15504,0.12675,-0.39193,0.089024,0.070163,0.15504,0.089024,-0.34478,0.14561,0.089024,0.098455,0.070163 -0.11863,-0.090381,-0.10921,0.03201,0.56865,-0.13745,-0.090381,-0.090381,-0.071552,0.50275,-0.10921,-0.10921,-0.090381,-0.052722,0.32387,-0.10921,-0.071552,-0.10921,-0.10921,0.33328,-0.080967,-0.12804,-0.090381,-0.10921,0.11674 -0.3871,-0.023056,-0.053393,0.0072809,0.37133,-0.1444,-0.08373,-0.023056,0.15897,0.15897,-0.023056,0.0072809,0.037618,0.1893,0.28031,-0.32643,-0.23542,0.067955,0.037618,0.1893,-0.3871,-0.23542,-0.023056,0.15897,0.28031 0.41702,0.22581,0.051311,-0.063786,-0.24571,0.41702,0.27037,0.0086137,-0.10648,-0.21787,0.43744,-0.034083,-0.054504,-0.12319,-0.25128,0.047598,-0.054504,-0.047078,-0.093488,-0.24014,0.025321,-0.047078,-0.050791,-0.05636,-0.21415 0.28997,-0.13743,-0.13862,-0.13894,-0.13215,0.29137,-0.13689,-0.13862,-0.13916,-0.13344,0.29008,0.28932,-0.13808,-0.13948,-0.13765,0.29083,0.29655,-0.13916,-0.13927,-0.13495,0.28727,0.29676,-0.13894,-0.13894,-0.13042 0.019793,-0.23648,-0.23685,-0.23667,-0.23667,0.019062,-0.23612,-0.23813,-0.23849,-0.23502,0.01961,0.021072,0.020159,0.02089,0.020341,0.019793,0.020707,0.020707,0.020159,0.020159,0.31501,0.3183,0.3353,0.3437,0.33968 -0.18952,-0.18824,0.18174,0.2035,0.1715,-0.20872,-0.18696,-0.19592,0.2035,0.16381,-0.22153,-0.2036,-0.20744,0.1715,0.1843,-0.22665,-0.20872,0.17918,0.17662,0.20734,-0.22281,-0.22793,0.19198,0.21246,0.24063 -0.24564,-0.24599,-0.24669,-0.24634,-0.24582,-0.24651,-0.24616,0.04683,-0.24529,-0.24477,0.046656,0.048224,0.05014,0.048746,0.33425,0.13776,0.046308,0.048921,0.21493,0.22364,0.32188,0.13811,0.1409,0.14281,0.22311 -0.11112,-0.12727,-0.11112,-0.072356,0.11176,-0.10789,-0.11435,-0.12081,-0.027134,0.42832,-0.11112,-0.10466,-0.10466,-0.043284,0.33142,-0.10466,-0.11112,-0.11435,-0.056205,0.48323,-0.11435,-0.10466,-0.11112,0.0051683,0.51231 0.25196,0.25529,-0.1562,-0.14121,-0.17953,0.35858,0.28195,-0.13121,-0.14787,-0.17619,0.34192,0.3186,-0.15953,-0.13788,-0.14954,0.083699,0.3286,-0.11455,-0.12122,-0.17619,0.040383,-0.10789,-0.11122,-0.11122,-0.13954 0.11441,0.11441,0.174,0.15414,-0.0047672,0.11441,0.13428,0.15414,0.19386,0.094549,0.11441,0.094549,0.13428,0.13428,0.094549,0.015096,-0.044494,0.015096,0.015096,0.015096,-0.54107,-0.42189,-0.22326,-0.42189,-0.22326 0.14186,0.33781,0.38026,0.35087,0.29209,-0.054081,-0.018158,0.040626,0.11574,0.42925,-0.12266,-0.09327,-0.063878,-0.063878,-0.047549,-0.16185,-0.14879,-0.10633,-0.13899,-0.12266,-0.20757,-0.22063,-0.19451,-0.16512,-0.15858 -0.16895,-0.17103,-0.17242,-0.17554,-0.17659,-0.16721,-0.16825,-0.17068,-0.17346,-0.17172,-0.16547,-0.1679,-0.16756,0.179,-0.048796,0.14671,0.14706,0.16129,0.32277,-0.055741,0.17935,0.15331,0.33805,0.33353,0.36027 0.069941,0.12753,0.22699,0.25317,0.18511,0.02806,0.072559,0.21129,0.26888,0.22438,-0.11067,-0.1002,0.1825,0.26626,0.24794,-0.2049,-0.21799,-0.18396,-0.2049,-0.18396,-0.23631,-0.21799,-0.22846,-0.23893,-0.23631 0.24862,0.14023,0.0098642,-0.081238,-0.15977,0.2282,0.11196,0.020859,-0.089092,-0.17705,0.2549,0.11824,-0.0089846,-0.63099,-0.1959,0.26589,0.14181,0.020859,-0.08438,-0.18334,0.24547,0.11824,0.02243,-0.12993,-0.2069 0.10275,0.10674,0.12068,-0.36854,-0.33667,0.10541,0.1147,0.12134,-0.31477,-0.31079,0.15254,0.12267,0.1313,0.046333,-0.31012,0.14922,0.14125,0.1698,0.039031,-0.29286,0.12665,0.15586,0.14922,0.15984,-0.28158 -0.057008,-0.068212,-0.06149,0.081927,0.13347,-0.072694,-0.057008,-0.06149,-0.034599,-0.063731,-0.06149,-0.065971,-0.077176,-0.06149,-0.039081,-0.052526,-0.074935,-0.074935,-0.01219,-0.039081,-0.039081,-0.063731,-0.01219,-0.016672,0.95139 0.20345,0.14837,0.20345,0.51561,0.66251,-0.14543,-0.053618,-0.053618,-0.053618,-0.016893,-0.14543,-0.1087,-0.035256,-0.035256,-0.07198,-0.12707,-0.14543,-0.1087,-0.07198,-0.090342,-0.035256,-0.1087,-0.12707,-0.16379,-0.035256 0.23204,0.22625,0.21853,-0.16839,-0.17997,0.23011,0.22142,0.21564,-0.17322,-0.17611,0.22818,0.22239,-0.17997,-0.17901,-0.17611,0.23204,0.21853,-0.18094,-0.17418,-0.1819,0.23493,-0.15199,-0.19155,-0.18094,-0.18576 0.17667,0.15084,0.18097,0.26706,0.24124,0.15514,0.15084,0.14223,0.24985,0.24554,0.12501,0.10349,0.11209,-0.094531,-0.20215,0.099181,-0.20215,-0.25381,-0.2452,-0.23228,-0.20215,-0.21506,-0.2495,-0.25811,-0.2452 -0.13388,-0.1686,-0.14802,0.26601,0.2943,-0.17374,-0.16988,-0.14416,0.28144,-0.036157,-0.17888,-0.15831,-0.14159,0.29301,0.20043,-0.18403,-0.1866,-0.15959,0.29815,0.20043,-0.18403,-0.14416,-0.0040117,0.149,0.33287 -0.1384,-0.14076,-0.13517,-0.1455,-0.14722,-0.13969,-0.069517,-0.13581,-0.14033,-0.1455,-0.069517,-0.069517,-0.070163,-0.1399,-0.14076,0.16855,0.15542,-0.070163,-0.069086,-0.069302,0.16898,0.15542,0.45741,0.45225,0.47829 -0.031893,-0.26163,-0.085948,0.23838,0.17081,-0.18054,-0.19406,-0.004865,0.23838,0.19784,-0.05892,-0.2346,-0.24811,0.23838,0.21136,-0.072434,-0.27514,-0.12649,0.2519,0.2519,-0.18054,-0.30217,0.0086488,0.23838,0.21136 -0.40342,-0.40141,-0.3984,-0.39137,-0.38937,0.16307,0.092826,0.061215,0.066734,0.07125,0.16257,0.094833,0.072254,0.07677,0.08831,0.13798,0.0853,0.088812,0.090317,0.098345,0.13247,0.09684,0.10085,0.10487,0.098345 0.22996,0.13966,0.26006,0.32026,0.35036,-0.040936,0.19986,0.13966,0.13966,0.049364,0.049364,0.049364,0.019264,-0.040936,0.13966,-0.10114,-0.16133,-0.16133,-0.040936,-0.10114,-0.40213,-0.31183,-0.16133,-0.34193,-0.22153 -0.19489,-0.1991,-0.19997,0.18122,0.18631,-0.19313,-0.19857,-0.19997,0.22069,0.19841,-0.18384,-0.1791,-0.19541,0.21455,0.21139,-0.18313,-0.18191,0.21578,0.21332,0.21385,-0.20278,-0.18296,0.21753,0.21227,0.20946 0.028862,0.089205,0.26147,0.13769,0.14748,0.024735,0.15058,0.1413,0.10468,0.062901,0.040208,0.028862,0.13201,0.0825,0.059807,0.057744,0.060322,0.12737,0.11499,0.084047,-0.38735,-0.38477,-0.38735,-0.39148,-0.3858 0.33736,0.049019,-0.059111,-0.1312,-0.16724,0.30132,0.1211,-0.023068,-0.023068,-0.49163,0.19319,0.085062,-0.16724,-0.059111,-0.20328,0.19319,-0.023068,0.049019,0.19319,-0.31141,0.30132,0.15715,0.012976,-0.059111,-0.27537 -0.11194,-0.11303,-0.11303,-0.11238,-0.1126,-0.11194,-0.11303,-0.11216,-0.11238,-0.1126,-0.11194,-0.11281,-0.11172,-0.11281,-0.11194,-0.11325,-0.11172,-0.11172,-0.11238,0.35371,0.35458,0.35458,0.35546,0.35721,0.35983 -0.13908,-0.095067,-0.11267,-0.10387,0.11619,-0.11267,-0.11267,-0.18309,-0.086264,0.39787,-0.13908,-0.086264,-0.14788,-0.051054,0.37146,-0.14788,-0.14788,-0.086264,0.1338,0.38027,-0.10387,-0.10387,-0.13028,0.22182,0.46829 -0.19668,0.12504,0.15185,0.14113,0.15185,-0.34145,0.11968,0.12504,0.15721,0.14649,-0.35754,-0.11625,0.11968,0.11968,0.14649,-0.33609,-0.25566,0.15185,0.12504,0.15185,-0.35754,-0.29856,0.06606,0.12504,0.13577 0.21143,0.21172,0.20994,0.20845,0.20338,0.20845,0.20397,0.20248,0.21172,0.21441,0.20427,0.20755,-0.19165,-0.19046,-0.19315,-0.19016,-0.19225,-0.19076,-0.19285,-0.19434,-0.19225,-0.19106,-0.19255,-0.19255,-0.19374 -0.12777,-0.1388,-0.14947,0.32875,0.32732,-0.13773,-0.14342,-0.1484,0.32946,0.33408,-0.13986,-0.12919,-0.13204,-0.002875,0.36539,-0.13702,-0.13132,-0.12919,-0.0057215,0.26932,-0.13737,-0.1388,-0.13204,-0.13559,0.24228 -0.17672,-0.17682,-0.17806,0.25245,0.25216,-0.17558,-0.1773,-0.17711,0.25092,0.19573,-0.17519,-0.17711,-0.17845,0.25389,0.19659,-0.17386,-0.17491,-0.17787,0.19688,0.19631,-0.17472,-0.17529,0.27703,0.19994,0.19707 0.19262,0.19089,0.18859,0.19089,0.19377,0.56552,0.18859,0.19205,0.19205,0.19492,-0.15151,-0.15093,-0.15093,-0.1423,-0.15439,-0.15093,-0.15324,-0.15093,-0.15266,-0.15611,-0.15324,-0.15324,-0.15554,-0.15784,-0.15611 0.21242,0.21742,0.21372,0.20329,0.20677,0.21285,0.21177,0.21372,0.20285,0.20372,-0.2028,-0.19823,-0.19867,0.19742,0.19981,-0.20063,-0.19867,-0.19932,-0.17737,-0.17758,-0.20106,-0.19823,-0.1878,-0.17845,-0.17693 0.23676,-0.041264,-0.055896,0.024583,-0.077845,0.23676,-0.033948,-0.12174,-0.026631,-0.041264,0.26602,0.024583,-0.14369,-0.14369,-0.099794,0.40503,-0.0046824,-0.16564,-0.16564,-0.14369,0.63915,-0.077845,-0.18759,-0.13638,-0.16564 0.27235,0.2181,0.19097,0.10959,0.16385,0.055338,0.0010851,0.13672,0.10959,0.028212,0.10959,0.055338,0.082465,0.082465,0.028212,0.028212,0.028212,0.028212,0.10959,0.028212,-0.35156,-0.51432,-0.29731,-0.35156,-0.35156 -0.20211,-0.20211,-0.023778,-0.053499,0.4815,-0.20211,-0.20211,-0.17239,0.09511,0.30316,-0.29127,0.0059444,-0.023778,0.12483,0.39233,-0.26155,-0.053499,0.065388,0.0059444,0.18428,-0.17239,0.0059444,-0.11294,0.065388,0.24372 -0.13906,-0.12254,-0.072997,-0.072997,0.19125,-0.15557,-0.09777,-0.081255,-0.048224,0.24079,-0.13906,-0.09777,-0.089512,-0.072997,0.33163,-0.10603,-0.072997,-0.081255,-0.06474,0.46375,-0.09777,-0.10603,-0.1308,0.0013212,0.62064 0.24117,-0.16399,-0.16454,-0.16343,-0.16231,0.24033,0.23335,-0.16371,-0.16343,-0.16231,0.23838,0.2395,-0.16315,-0.16343,-0.16175,0.24564,0.2395,-0.16147,-0.16399,-0.16399,0.26716,0.25794,0.24536,-0.16203,-0.16482 0.21981,0.22032,-0.1801,-0.17289,-0.17753,0.22238,0.21981,-0.21927,-0.21257,-0.21257,0.22135,0.22084,0.22187,-0.22082,-0.21257,0.13787,0.22444,0.21774,-0.20948,-0.20432,0.14457,0.20177,-0.14403,-0.13991,-0.1667 0.28196,0.28252,-0.14009,-0.14343,-0.14009,0.29588,0.28976,-0.14009,-0.13898,-0.1412,0.29143,0.3009,-0.13731,-0.13898,-0.13564,0.29421,-0.14009,-0.1412,-0.13953,-0.13007,0.29366,-0.14176,-0.14065,-0.13953,-0.10167 0.049098,0.18971,0.1813,-0.22331,-0.22812,0.1853,0.19452,0.39162,-0.22011,-0.23693,0.090761,0.097571,0.34595,-0.22411,-0.23653,0.094767,0.087156,0.095969,-0.22291,-0.22492,0.090761,0.086755,0.08996,-0.22692,-0.22732 0.21008,0.091794,0.091794,0.020819,-0.073814,0.091794,0.23374,0.18643,-0.097472,-0.476,0.16277,0.091794,0.21008,-0.050155,-0.3104,0.091794,0.16277,-0.050155,-0.12113,-0.28674,0.11545,0.16277,0.16277,-0.1921,-0.42869 -0.069771,-0.076301,-0.07527,-0.077848,0.87575,-0.073552,-0.075614,-0.075786,-0.07802,0.32377,-0.076129,-0.076301,-0.076301,-0.0013748,-0.065303,-0.076817,-0.078535,-0.077504,0.10827,-0.063584,-0.077332,-0.077848,0.10706,-0.0039525,-0.061694 0.071327,0.043022,0.014718,-0.26832,-0.24002,0.043022,0.12794,-0.1268,-0.013586,-0.32493,0.21285,0.12794,0.071327,-0.04189,-0.32493,0.26946,0.21285,0.21285,-0.04189,-0.32493,0.15624,0.24115,0.21285,0.071327,-0.38154 -0.095745,-0.095554,-0.097275,-0.097849,0.25344,-0.095172,-0.096319,-0.097849,-0.098614,0.25497,-0.094598,-0.096319,-0.097275,-0.098231,0.48426,-0.094598,-0.097275,-0.097275,-0.099188,0.48426,-0.097275,-0.097084,-0.097084,-0.098614,0.46227 0.37317,0.37317,0.12522,-0.091743,-0.21572,0.31118,0.28019,0.063229,0.0012398,-0.18473,0.2182,0.12522,0.032234,-0.12274,-0.18473,0.18721,0.0012398,-0.24672,-0.12274,-0.27771,0.063229,-0.12274,-0.15373,-0.21572,-0.21572 -0.1902,-0.1902,-0.19411,0.20449,0.20275,-0.18759,-0.19324,-0.19759,0.20362,0.20492,-0.1902,-0.19281,-0.19237,0.20666,0.20753,-0.1902,-0.19237,0.2071,0.20753,0.20884,-0.19194,-0.19455,0.22711,0.20971,0.2071 -0.40241,-0.39682,-0.40017,-0.39682,-0.40352,0.10322,0.097644,0.093179,0.10322,0.096527,0.09876,0.097644,0.097644,0.10434,0.099876,0.097644,0.10211,0.093179,0.10211,0.10211,0.10322,0.10322,0.10211,0.10211,0.099876 -0.18242,-0.18538,-0.18408,-0.21179,-0.2153,-0.18205,-0.1863,-0.1863,-0.1863,-0.21161,0.19587,-0.18649,-0.1863,-0.1887,0.20825,0.19642,0.19772,0.20123,0.22321,0.22358,0.19661,0.19532,0.19716,0.22764,0.23004 -0.39659,0.092166,0.20388,0.14802,0.14802,-0.36866,-0.1592,0.064237,0.12009,0.14802,-0.39659,0.078201,0.10613,0.12009,0.10613,-0.32677,0.092166,0.14802,0.12009,0.14802,-0.34073,-0.1592,0.078201,0.10613,0.12009 -0.32801,-0.37033,-0.4444,-0.40208,-0.37033,0.084648,0.12697,0.11639,-0.031743,-0.042324,0.14813,0.084648,0.14813,0.13755,0.12697,0.095229,0.095229,0.17988,0.084648,0.042324,0.095229,0.17988,0.12697,0.12697,-0.010581 0.33294,0.32436,-0.11656,-0.11726,-0.11401,0.32714,0.31693,-0.11309,-0.11448,-0.10636,0.32273,-0.11332,-0.11471,-0.11262,-0.098241,0.29467,-0.11309,-0.11424,-0.11193,-0.21444,0.30441,-0.11262,-0.11239,-0.11262,-0.2112 -0.047092,-0.019965,0.039713,-0.14475,-0.317,-0.024034,-0.026747,0.088541,-0.12169,-0.2641,0.35303,0.25808,0.085829,-0.1339,-0.23698,0.3476,0.2079,0.06684,-0.14475,-0.25597,0.33946,0.24723,0.060058,-0.11084,-0.24647 0.31816,0.35095,0.35586,0.37431,0.36488,-0.11011,-0.10888,-0.11216,-0.11093,0.36898,-0.11052,-0.11052,-0.11216,-0.11216,-0.11585,-0.11421,-0.11503,-0.11339,-0.11175,-0.11462,-0.10888,-0.10929,-0.11175,-0.11503,-0.11585 0.31973,0.30823,-0.12573,-0.1252,-0.12485,0.32148,0.30875,-0.12468,-0.12416,-0.12503,0.32496,-0.12625,-0.12416,-0.12468,-0.12451,0.32984,-0.12346,-0.12451,-0.12451,-0.12451,0.33141,-0.12398,-0.12503,-0.12468,-0.12451 -0.097963,-0.28714,-0.29072,-0.097963,-0.098163,-0.097963,-0.28754,-0.097565,-0.097764,-0.097565,-0.095571,-0.28833,-0.095372,-0.096169,-0.096369,0.068286,0.22078,0.27998,0.27899,0.27799,0.064897,0.29513,0.2138,0.22178,0.30052 0.24327,0.17082,-0.22766,-0.24778,0.082272,0.2312,0.19497,-0.026404,-0.25986,-0.21558,0.21912,0.199,0.082272,-0.17131,-0.30413,0.23522,0.18692,0.013846,0.021896,-0.25583,0.15472,0.17082,0.058122,-0.30816,-0.24778 0.26044,0.26044,0.26044,0.13701,0.10615,0.10615,0.22959,0.16787,0.22959,0.22959,0.044436,0.075294,-0.14071,-0.14071,0.16787,-0.20243,-0.23329,-0.14071,-0.017281,-0.048139,-0.23329,-0.20243,-0.29501,-0.29501,-0.32586 0.34507,0.015633,-0.11942,-0.11328,-0.041661,0.24072,0.40441,-0.094863,-0.17262,-0.11737,0.22639,0.40032,-0.17467,-0.19922,-0.086678,0.27755,0.054511,-0.21764,-0.19922,-0.12351,0.13022,0.056557,-0.11737,-0.22173,-0.15216 -0.39163,-0.40321,-0.39328,-0.40487,-0.40652,0.1032,0.098238,0.10155,0.099893,0.096583,0.10486,0.091618,0.10155,0.094928,0.094928,0.10155,0.096583,0.099893,0.10155,0.098238,0.098238,0.10155,0.10155,0.10651,0.10651 -0.2757,-0.184,-0.3191,-0.21184,-0.31991,0.067369,-0.15534,-0.17335,-0.18973,-0.06773,0.17791,0.15989,-0.1578,-0.15943,-0.17008,0.26306,0.21557,0.15989,0.14679,0.17381,0.25815,0.20984,0.17463,0.18282,0.19428 0.082156,-0.02408,0.082156,-0.16573,-0.34279,0.2238,0.082156,0.11757,-0.059492,-0.27196,0.25922,0.082156,-0.30738,0.046744,-0.27196,0.33004,0.11757,0.082156,-0.094904,-0.13032,0.40086,0.2238,-0.094904,-0.13032,-0.23655 -0.23606,-0.34308,-0.34308,-0.35837,-0.40423,-0.19019,-0.083171,-0.12904,-0.037305,0.14616,0.0085617,0.10029,0.054428,0.054428,0.25318,0.054428,0.16145,0.11558,0.16145,0.11558,0.11558,0.20732,0.16145,0.16145,0.25318 -0.28289,-0.12859,0.025717,0.10287,0.12859,-0.36004,-0.20574,0.10287,0.10287,0.10287,-0.36004,0,0.025717,0.12859,0.10287,-0.33432,-0.025717,0.18002,0.12859,0.10287,-0.36004,0.077152,0.12859,0.30861,0.30861 -0.35759,-0.2235,-0.42464,-0.35759,-0.31289,-0.067049,-0.067049,-0.15645,-0.1341,0.02235,0.20115,0.067049,0.067049,0.1341,0.089398,0.24584,0.20115,0.1341,0.11175,0.26819,0.20115,0.067049,0.089398,0.02235,0.1788 -0.097003,0.18664,0.18664,0.1857,0.1857,0.18915,0.18758,0.18632,0.18601,0.18601,0.19856,0.19699,0.19605,0.19166,-0.099513,-0.22972,-0.23067,-0.22784,-0.22816,-0.22157,-0.22502,-0.22533,-0.22878,-0.22502,-0.22439 -0.19705,-0.19886,0.097749,0.090153,0.24099,-0.19524,0.097026,0.094132,0.0916,0.38097,-0.19922,-0.19379,-0.19922,0.24207,0.24243,-0.19596,-0.1956,-0.19994,0.22941,0.23375,-0.19379,-0.19488,-0.20211,0.097749,0.2276 0.16731,0.16731,0.27308,-0.14843,-0.18553,0.19888,0.16494,0.25414,-0.15869,-0.195,0.1681,0.18152,0.17126,-0.20447,-0.2321,0.16415,0.18231,-0.21552,-0.2171,-0.22973,0.17283,0.20204,-0.21394,-0.23052,-0.23683 -0.19058,-0.19289,-0.19058,0.21248,0.21709,-0.18959,-0.1919,0.21248,0.20852,0.2072,-0.18992,-0.19091,-0.20179,0.20457,0.20654,-0.18992,-0.19058,-0.19882,0.20984,0.20984,-0.19058,-0.18926,0.19303,0.2072,0.20852 -0.075436,-0.06888,-0.10166,-0.057954,0.34195,-0.055768,-0.075436,-0.10166,-0.064509,0.37473,-0.10166,-0.092918,-0.11477,-0.077621,0.32884,-0.12133,-0.11259,-0.13662,-0.075436,0.45122,-0.13444,-0.13662,-0.14974,-0.11259,0.47088 -0.15738,-0.14183,-0.095177,-0.017418,0.49579,-0.14183,-0.14183,-0.064073,-0.03297,0.43358,-0.20404,-0.017418,-0.14183,-0.017418,0.30917,-0.12628,-0.03297,-0.079625,-0.12628,0.34027,-0.20404,-0.12628,-0.0018662,-0.017418,0.30917 -0.28262,0.071638,0.18972,0.17004,0.13068,-0.36134,0.012596,0.111,0.15036,0.071638,-0.42038,0.012596,0.012596,0.15036,0.071638,-0.36134,-0.16453,0.071638,0.15036,0.18972,-0.42038,0.071638,0.051957,0.17004,0.15036 -0.4786,-0.45678,-0.39859,-0.34768,-0.26039,-0.0058188,0.023275,0.11056,0.066917,0.11056,0.088737,0.13965,0.10328,0.1542,0.10328,0.088737,0.13238,0.1251,0.11783,0.11783,0.081464,0.11056,0.096011,0.081464,0.096011 -0.14751,-0.14841,-0.1535,0.12796,0.43697,-0.14751,-0.14691,-0.15889,0.12856,0.4714,-0.14601,-0.14901,-0.1541,0.3148,0.14683,-0.14871,-0.14721,-0.1541,0.16749,0.14144,-0.14811,-0.14721,-0.14931,0.16599,0.14503 0.06502,0.22757,0.30145,0.39751,0.43445,-0.075364,0.0059109,0.13152,0.23496,0.30884,-0.10492,-0.11969,-0.16403,-0.067975,0.06502,-0.18619,-0.14925,-0.1788,-0.14925,-0.15664,-0.14925,-0.15664,-0.17142,-0.14925,-0.19358 -0.21065,-0.20887,0.1075,0.10814,0.11948,-0.20505,-0.18924,0.10508,0.11005,0.49194,-0.18542,-0.18988,-0.19001,0.19545,0.19265,-0.18911,-0.19204,-0.19154,0.19265,0.19622,-0.19064,-0.1937,0.13873,0.19137,0.18691 -0.2317,-0.24311,-0.23333,-0.2317,-0.24148,-0.23659,-0.23496,-0.21865,-0.2317,-0.23659,0.2525,0.25087,0.25087,0.24761,0.25087,0.16772,0.13023,0.14979,0.15305,0.1612,0.063386,0.058495,0.061755,0.065016,0.076428 -0.14503,-0.02956,0.109,-0.0064663,0.22447,-0.28359,0.039721,0.20138,0.15519,0.29375,-0.35287,0.039721,0.016628,0.15519,0.17828,-0.35287,-0.14503,0.062815,0.109,0.1321,-0.42215,-0.30669,0.016628,0.1321,0.17828 -0.064075,-0.07325,-0.038386,-0.12279,-0.087929,0.029505,0.024001,-0.093434,-0.10995,-0.075084,0.049689,-0.10444,-0.075084,-0.098938,0.053359,-0.10628,-0.095268,-0.040221,-0.060405,0.02767,0.92678,-0.010863,-0.043891,0.068038,0.12125 -0.00036608,-0.12849,-0.12849,-0.15595,-0.22917,0.25589,-0.055278,-0.15595,-0.18341,-0.18341,0.27419,0.19183,-0.1468,-0.1651,-0.18341,0.32911,0.23759,0.17352,-0.18341,-0.17425,0.30165,0.28335,0.22843,0.02709,-0.22917 0.090571,-0.050946,-0.20819,-0.25536,-0.28681,0.090571,-0.0037738,-0.098118,-0.12957,-0.20819,0.18491,0.090571,0.090571,-0.098118,-0.22391,0.27926,0.24781,0.090571,-0.019498,-0.25536,0.48367,0.32643,0.12202,-0.06667,-0.19246 -0.22341,-0.22852,-0.22814,-0.22814,-0.22,-0.22284,-0.22776,-0.22322,-0.21545,-0.21545,0.33134,0.24232,0.17187,0.088911,0.035879,0.3177,0.1516,0.13664,0.073948,0.024705,0.33153,0.14914,0.089479,0.069024,0.018834 0.056091,0.0088234,-0.21176,-0.25903,-0.33781,0.16638,0.071847,-0.054201,-0.22752,-0.3063,0.16638,0.16638,0.15063,-0.054201,-0.35357,0.18214,0.1979,0.16638,0.024579,-0.3063,0.26092,0.22941,0.18214,0.16638,-0.085713 0.35614,-0.12571,-0.1251,-0.12051,-0.11501,0.35767,0.35706,-0.11837,-0.11348,-0.11592,0.35278,-0.10798,-0.10094,-0.098497,-0.11929,0.35644,-0.10859,-0.10798,-0.10217,-0.11868,0.354,-0.10859,-0.10736,-0.10125,-0.11868 -0.39454,0.11683,0.10752,0.099201,0.070588,-0.39654,0.11151,0.10452,0.077907,0.068591,-0.3992,0.10918,0.10719,0.08689,0.072251,-0.40053,0.10253,0.085892,0.09787,0.1368,-0.40286,0.10852,0.095874,0.10852,0.12548 0.22694,0.25261,0.14992,0.45798,0.43231,0.22694,0.047236,0.021564,0.14992,0.12425,-0.10679,-0.13247,-0.20948,-0.029779,0.021564,-0.26083,-0.15814,-0.13247,-0.13247,-0.13247,-0.18381,-0.26083,-0.10679,-0.081123,-0.18381 0.29793,0.25726,0.20736,0.10699,-0.27459,0.098917,0.11478,0.11882,0.10959,-0.28613,0.10122,0.11218,0.11738,-0.28497,-0.28382,0.10382,0.10324,0.10526,-0.28497,-0.28324,0.10324,0.10324,0.10238,-0.28295,-0.28295 0.3068,0.38453,0.3068,0.25497,0.22906,0.099502,0.20315,0.15133,-0.0041459,-0.0041459,0.021766,-0.081882,0.099502,-0.030058,-0.081882,-0.05597,-0.18553,-0.26327,-0.05597,-0.081882,-0.26327,-0.31509,-0.31509,-0.23735,-0.081882 0.091546,0.122,0.13106,-0.29861,-0.29531,0.10266,0.13394,0.12941,-0.28749,-0.29408,0.13188,0.13435,0.13599,-0.00805,-0.2949,0.13352,0.12447,0.00059264,-0.0031113,-0.29408,0.15781,0.12776,0.42449,-0.011754,-0.29408 0.41575,-0.13322,-0.13155,-0.13488,-0.13405,0.40575,-0.12239,-0.13072,-0.13655,-0.13322,0.24081,-0.09823,-0.10823,-0.11739,-0.13488,0.2733,0.24747,-0.1024,-0.10323,-0.13405,0.32411,0.29995,-0.11073,-0.11572,-0.12572 0.84021,-0.037108,-0.048166,-0.055539,-0.092401,0.29957,-0.028507,-0.078885,-0.070284,-0.12066,0.28113,-0.011304,-0.061682,-0.10592,-0.12066,-0.0088469,-0.050624,-0.030964,-0.12189,-0.035879,-0.021134,-0.045709,-0.13541,-0.11083,-0.028507 0.12788,0.10774,0.073337,0.049842,0.022152,0.13124,0.10271,0.073337,0.048164,-0.42509,0.13375,0.10774,0.078372,0.053199,-0.4167,0.12788,0.10271,0.069142,0.045647,-0.40159,0.12788,0.097671,0.071659,0.045647,-0.55431 -0.13734,-0.13581,-0.13734,-0.13603,-0.13603,-0.017571,-0.018227,-0.018227,-0.019976,-0.020194,-0.019757,-0.019538,-0.019976,-0.020413,-0.019538,-0.020631,-0.019757,-0.019538,-0.016042,-0.019976,-0.019757,-0.016916,-0.017571,0.080776,0.94536 -0.27126,-0.15368,0.17849,0.17261,0.30488,-0.26832,-0.19777,0.26961,0.17261,0.17261,-0.25656,-0.22422,0.25491,0.15791,0.16673,-0.20365,-0.20953,-0.1331,0.15497,0.13733,-0.18013,-0.17425,-0.15074,0.14909,0.13145 -0.097909,-0.097237,-0.097909,-0.12426,-0.22918,0.32462,-0.08918,-0.08364,-0.10026,-0.23019,0.31841,0.27359,-0.083976,-0.12628,-0.15566,0.31606,0.27476,0.073487,-0.12729,-0.23858,0.31455,0.26352,0.076173,-0.12225,-0.23137 0.37119,0.3049,0.017676,-0.092796,-0.087273,0.3988,0.31595,-0.081749,-0.12041,-0.14251,0.37119,0.17786,-0.12041,-0.14803,-0.20327,0.19443,-0.0044189,-0.13146,-0.1646,-0.15356,-0.14251,-0.11489,-0.14251,-0.14251,-0.15908 0.13988,0.12072,0.082396,0.063234,-0.042156,0.082396,0.091977,0.063234,0.072815,-0.20503,0.10156,0.10156,0.11114,0.072815,-0.39665,0.082396,0.10156,0.10156,0.053653,-0.50204,0.11114,0.072815,0.091977,0.044072,-0.61701 -0.1276,-0.10415,-0.049415,0.0053168,0.020954,-0.08069,-0.08069,-0.057234,-0.025959,0.028773,-0.11197,-0.088509,-0.049415,-0.065053,0.075686,-0.11978,-0.065053,-0.088509,-0.072872,0.40408,-0.10415,-0.088509,-0.065053,0.075686,0.83411 -0.1238,-0.12675,-0.1302,-0.1302,-0.1302,-0.12282,-0.1238,-0.12823,-0.12823,-0.12823,-0.10115,-0.111,-0.11986,-0.12134,-0.11937,-0.10755,-0.111,-0.10903,0.26609,0.20652,0.46104,0.41328,0.35815,0.26461,0.20308 -0.4002,-0.39965,-0.4002,-0.40007,-0.39951,0.097459,0.098432,0.094124,0.098015,0.098432,0.097459,0.098154,0.098849,0.10913,0.10079,0.096347,0.10038,0.099127,0.10079,0.099683,0.1115,0.10677,0.09468,0.099266,0.10024 0.0076339,0.26153,-0.21987,-0.21913,-0.2162,0.0061677,0.19433,0.19017,-0.21767,-0.21693,0.19115,0.20166,0.18675,-0.21742,-0.21767,0.19213,0.20068,0.18602,-0.21889,-0.21693,0.19164,0.1997,0.187,-0.21791,-0.21791 -0.18466,-0.18386,-0.18599,-0.18759,-0.18839,-0.18439,-0.18706,-0.18599,-0.18599,-0.18812,-0.18492,-0.18492,-0.18572,0.14168,0.2078,0.1814,0.14275,0.13901,0.19713,0.2078,0.42802,0.18567,0.187,0.19314,0.2062 -0.19907,-0.19907,-0.20382,-0.19703,-0.20178,-0.17871,-0.17939,-0.18889,-0.18617,-0.19228,0.18104,-0.18142,-0.1916,0.22245,-0.19228,0.18104,0.19326,0.2048,0.22109,0.23534,0.19326,0.19462,0.2048,0.22109,0.23874 -0.35538,0.092579,0.075988,0.10087,0.12576,-0.40516,0.075988,0.10087,0.13406,0.16724,-0.38027,0.067692,0.075988,0.051101,0.15894,-0.41345,0.075988,0.075988,0.10087,0.13406,-0.42175,0.11747,0.051101,0.075988,0.11747 0.38052,0.23204,0.0067585,-0.15708,-0.22108,0.43428,0.1834,0.070759,-0.087963,-0.23388,0.057959,0.070759,-0.057242,-0.11356,-0.24412,0.47012,0.060519,-0.077723,-0.14428,-0.20572,-0.062362,-0.00092161,-0.036762,-0.12892,-0.19548 0.054223,-0.066272,-0.096396,-0.12652,-0.12652,0.11447,-0.12652,-0.066272,-0.036149,-0.15664,0.26509,0.054223,-0.18677,-0.21689,-0.12652,0.44583,0.20484,-0.096396,-0.12652,-0.12652,0.50608,0.35546,-0.0060248,-0.096396,-0.21689 -0.2679,0.15059,0.1476,0.14893,0.14096,-0.26541,-0.26724,0.18929,0.15159,0.14943,-0.26691,-0.26624,0.1486,0.15059,0.14993,-0.26657,-0.26674,0.14544,0.14627,0.14428,-0.26425,-0.26657,0.14295,0.14594,0.14544 -0.19221,-0.19201,-0.19261,-0.19281,-0.19281,-0.19121,-0.19221,-0.19221,-0.19161,-0.19221,0.21267,0.21028,-0.19201,-0.19141,-0.19221,0.21387,0.21028,0.20648,0.20269,0.1983,0.21646,0.21207,0.20828,0.20589,0.2003 0.17536,0.21166,0.18419,0.21951,0.21951,0.16653,0.15967,0.20283,0.20087,0.22245,0.12827,-0.23763,0.16948,0.18419,-0.11305,-0.24352,-0.24156,-0.20821,-0.21115,-0.12188,-0.25529,-0.25137,-0.21311,-0.23273,-0.11501 0.14256,0.12614,0.13361,0.14555,-0.27626,0.13211,0.12913,0.13734,0.14555,-0.28746,0.13435,0.1351,0.13435,-0.28597,-0.29716,0.13211,0.13809,0.13958,-0.28597,-0.30164,0.13734,0.14107,0.14704,-0.29269,-0.30388 -0.39887,0.12426,0.097577,0.10313,0.10116,-0.39815,0.10259,0.098293,0.097577,0.10188,-0.39941,0.096144,0.096861,0.097398,0.098114,-0.39833,0.096144,0.096682,0.097398,0.073758,-0.40173,0.13393,0.10976,0.10313,0.070713 -0.40935,-0.40004,-0.39259,-0.39632,-0.40004,0.080545,0.11221,0.11035,0.095447,0.095447,0.095447,0.1029,0.10849,0.095447,0.091721,0.095447,0.11221,0.1029,0.10662,0.095447,0.08427,0.095447,0.10849,0.10662,0.1029 0.32395,0.32395,0.32147,0.31403,0.31403,0.31403,0.31899,-0.043048,-0.071565,-0.088923,-0.12612,-0.12984,-0.1348,-0.12984,-0.12984,-0.1348,-0.13108,-0.1348,-0.1348,-0.14596,-0.13728,-0.141,-0.141,-0.13852,-0.13728 -0.036772,0.25327,0.25819,-0.18753,-0.20228,0.074658,0.26311,-0.13837,-0.1695,-0.20719,0.25,0.25163,-0.11051,-0.16131,-0.20228,0.24836,0.25655,-0.097403,-0.17442,-0.19572,0.25983,0.25491,-0.11543,-0.1695,-0.20228 0.12656,0.35029,0.094604,0.22245,0.22245,0.38225,0.12656,0.25441,0.19049,0.25441,-0.097161,-0.12912,0.030682,-0.12912,-0.12912,-0.16108,-0.32089,-0.225,-0.0652,-0.12912,-0.12912,-0.19304,-0.097161,-0.225,-0.225 0.12835,0.17365,0.1208,0.052849,0.075498,0.1661,0.18875,0.1359,-0.20384,-0.21139,0.1661,0.20384,-0.045299,-0.27934,-0.27934,0.23404,0.20384,-0.1208,-0.27934,-0.28689,0.22649,0.22649,-0.030199,-0.27934,-0.28689 0.36978,0.18594,0.36978,0.50109,0.29099,-0.050424,0.18594,0.028364,0.002101,-0.076687,-0.050424,-0.050424,0.028364,-0.050424,-0.050424,-0.12921,-0.31305,-0.12921,-0.12921,-0.12921,-0.12921,-0.208,-0.12921,-0.12921,-0.208 -0.3336,-0.15197,-0.091421,0.10535,0.12048,-0.25792,-0.28819,0.029666,0.10535,0.13562,-0.31846,-0.24278,0.12048,0.13562,0.12048,-0.28819,-0.091421,0.2113,0.16589,0.16589,-0.22764,0.15075,0.2113,0.22643,0.28698 -0.39786,-0.40042,-0.4001,-0.40106,-0.40042,0.097818,0.097178,0.097498,0.095898,0.096538,0.097818,0.098458,0.099738,0.099098,0.099738,0.1007,0.10038,0.10262,0.10006,0.10038,0.10326,0.10358,0.1039,0.1023,0.10294 -0.10963,-0.10511,-0.10511,-0.10209,-0.096056,-0.096056,-0.090022,-0.091531,-0.087005,-0.090022,-0.08248,-0.07343,-0.08248,-0.08248,-0.085497,-0.085497,-0.091531,-0.085497,-0.093039,-0.08248,0.45602,0.45452,0.45753,0.45753,-0.0085678 -0.34372,-0.095158,-0.081538,0.15454,0.26804,-0.33578,-0.10991,-0.1031,0.18292,0.21924,-0.32897,-0.10197,-0.10537,0.17384,0.24875,-0.10651,-0.1224,-0.099698,-0.086078,0.35317,-0.11672,-0.1031,0.24534,0.22037,0.17384 0.37899,0.48852,0.36073,0.26945,0.086897,0.19643,0.17818,0.050386,-0.022637,-0.09566,0.03213,0.013874,-0.09566,-0.18694,-0.11392,-0.11392,-0.059149,-0.09566,-0.15043,-0.11392,-0.18694,-0.20519,-0.24171,-0.18694,-0.18694 0.057639,0.060594,0.071679,0.065028,0.056161,0.076113,0.079807,0.12858,0.12858,0.12045,0.090892,0.079068,0.10198,0.14705,0.13301,0.076113,0.088675,0.13966,0.14779,0.1308,-0.38647,-0.40347,-0.38795,-0.38795,-0.41382 0.24016,-0.05463,-0.054198,-0.05204,-0.048012,0.24117,-0.055206,-0.053479,-0.053911,-0.047868,0.43683,0.23498,-0.053911,-0.21073,-0.21015,0.27152,0.23786,-0.21245,-0.2113,-0.21044,0.26605,0.23469,-0.21289,-0.21159,-0.21044 -0.16041,-0.15349,-0.15781,-0.14137,-0.13877,-0.16647,-0.15695,-0.15089,-0.1431,-0.14223,-0.15868,-0.13964,-0.14916,-0.13877,-0.12146,0.37972,0.3425,0.34163,0.098401,0.097535,0.35548,0.35375,0.088013,0.081954,0.080223 -0.17702,-0.17702,-0.17648,-0.17702,-0.17666,-0.17684,-0.17558,-0.1754,-0.17666,-0.17739,-0.17739,-0.1754,-0.1745,0.07982,0.073499,0.33775,0.33666,0.19488,0.19397,0.073318,0.3298,0.34552,0.05941,0.19542,0.073318 0.14594,0.15567,0.1654,0.13621,0.11675,0.15567,0.14594,0.14594,0.12648,0.12648,0.14594,0.13621,0.10702,0.1654,0.12648,-0.25296,-0.19459,-0.18486,-0.077835,0.12648,-0.37945,-0.38918,-0.35999,-0.34053,-0.048647 0.14646,0.14313,0.15277,-0.29153,-0.28521,0.14446,0.1418,0.15443,-0.29186,-0.29385,0.14778,0.14081,0.13848,-0.2902,-0.29419,0.14646,0.14047,0.13948,0.13682,-0.28953,0.08099,0.087636,0.14346,0.13914,-0.2882 -0.021508,-0.025447,-0.14165,-0.14165,-0.1515,0.37438,-0.025447,-0.11408,-0.13377,-0.1712,0.3409,-0.035295,-0.098322,-0.11802,-0.17711,0.33499,0.35862,-0.082565,-0.094383,-0.18498,0.33105,0.33696,-0.086504,-0.094383,-0.17907 -0.11342,-0.11743,-0.11476,-0.12143,-0.12143,-0.10675,-0.11209,-0.11076,-0.10542,-0.11476,-0.062717,-0.062717,-0.057379,-0.052042,-0.065386,-0.06672,-0.07873,-0.060048,-0.06672,-0.069389,0.45503,0.45236,0.45503,0.45637,-0.038698 0.088287,0.086795,-0.096443,-0.098361,-0.098574,0.086369,0.084878,-0.098787,-0.097295,-0.097508,0.084665,0.084665,-0.097295,-0.098574,-0.099426,0.086156,0.085304,-0.096656,-0.099,-0.099,0.88665,-0.10113,-0.097722,-0.099639,-0.098361 -0.39985,-0.39991,-0.39968,-0.39979,-0.40008,0.10756,0.10467,0.10276,0.097154,0.093918,0.10652,0.10507,0.10507,0.093918,0.092243,0.10374,0.10906,0.093225,0.093341,0.09282,0.10432,0.10467,0.10218,0.093918,0.093167 -0.28447,-0.27701,0.12545,0.11949,0.1493,-0.2636,-0.28148,0.14334,0.13737,0.15377,-0.25465,-0.2636,0.15079,0.15228,0.16271,-0.25614,-0.2785,0.15377,0.15377,0.15675,-0.23528,0.16271,0.15973,0.15824,0.15526 -0.13584,-0.21089,-0.26718,-0.22966,-0.22966,-0.17337,-0.24842,-0.13584,-0.19213,-0.0045031,-0.15461,-0.098317,0.01426,0.051785,0.1456,-0.0045031,-0.023266,0.12684,0.1456,0.20189,0.20189,0.12684,0.25818,0.37075,0.46457 -0.20248,-0.16683,-0.2203,0.047055,0.011407,-0.16683,-0.14901,-0.18465,0.13617,0.26094,-0.20248,-0.16683,-0.059888,0.27876,0.31441,-0.13118,-0.095535,-0.077712,0.35006,0.35006,-0.18465,-0.077712,-0.14901,0.27876,0.20747 0.012477,-0.025443,-0.17712,-0.17712,-0.18768,0.30298,-0.024124,-0.024783,-0.17778,-0.18636,0.46884,-0.024124,-0.023464,-0.17976,-0.18075,0.4662,-0.022145,-0.020167,-0.018189,-0.18042,0.45103,-0.026762,-0.017529,-0.01621,-0.011594 -0.10091,0.090546,0.097115,0.11495,0.11025,-0.39184,-0.084014,0.26041,0.10462,0.16187,-0.40123,-0.093399,0.11213,0.17595,0.15718,-0.39559,-0.097153,0.14216,0.12715,0.11495,-0.42375,-0.11029,0.11213,0.10838,0.10838 -0.054327,-0.050705,-0.052968,-0.05659,-0.14849,0.45634,-0.052516,-0.055685,-0.057496,-0.15619,0.45227,-0.047536,-0.052063,-0.055685,-0.15438,0.44548,-0.048441,-0.050252,-0.13808,-0.15709,0.43597,-0.048441,-0.049347,-0.14487,-0.15891 -0.41827,-0.41484,-0.40455,-0.3874,-0.37025,0.05844,0.089305,0.10302,0.085876,0.092735,0.10302,0.10302,0.10302,0.1236,0.10645,0.10302,0.096165,0.10302,0.10988,0.10302,0.099594,0.10988,0.092735,0.10645,0.10302 0.37229,0.36793,0.36609,0.32708,0.32708,0.37091,-0.1048,-0.11283,-0.11788,-0.12407,-0.097913,-0.1048,-0.11008,-0.11696,-0.1227,-0.099749,-0.10549,-0.11191,-0.11696,-0.12499,-0.099749,-0.10549,-0.1126,-0.11834,-0.12407 -0.17056,-0.1027,-0.12047,-0.18026,0.30125,-0.17703,-0.1334,-0.12532,0.32064,0.25116,-0.17541,-0.15117,-0.1334,0.25278,0.23823,-0.16895,-0.15764,-0.15441,0.24631,0.23339,-0.12855,-0.17218,-0.12855,0.28994,0.24631 -0.20106,-0.13641,-0.16874,-0.21722,-0.20106,-0.20106,-0.15257,-0.16874,-0.20106,-0.20106,0.10603,0.10603,0.0090509,-0.13641,-0.16874,0.21916,0.25149,0.13835,0.057538,0.0090509,0.38079,0.44543,0.203,0.25149,-0.023274 0.28128,-0.061491,-0.076906,-0.044395,-0.17668,0.28464,-0.054765,-0.062052,-0.050841,-0.4065,0.28548,0.28464,-0.056166,-0.03963,-0.039069,0.28688,0.27679,-0.058969,-0.17192,-0.1792,0.35807,-0.030942,-0.19069,-0.1778,-0.17976 0.13746,0.13746,0.049344,-0.17975,-0.28549,0.10221,0.11983,0.31368,-0.215,-0.35598,0.031721,0.20795,0.13746,-0.0035245,-0.40885,0.066966,0.066966,0.19032,0.11983,-0.3736,0.19032,0.049344,0.13746,0.014098,-0.25024 -0.22114,-0.078284,-0.12114,-0.078284,0.33599,-0.10685,-0.12114,-0.10685,-0.10685,0.40742,-0.078284,-0.092569,-0.035428,-0.078284,0.4217,-0.14971,-0.035428,-0.092569,-0.078284,0.39313,-0.078284,-0.10685,-0.092569,-0.10685,0.40742 -0.13531,-0.15663,-0.18861,-0.22415,-0.23481,0.13474,0.010376,-0.1211,-0.18506,-0.20638,0.2982,0.22358,0.021036,-0.14597,-0.18861,0.30175,0.28754,0.14185,-0.10689,-0.19572,0.2982,0.28399,0.26977,-0.028711,-0.15308 0.096306,0.093159,-0.20268,-0.22471,-0.23573,0.10417,0.10024,-0.18931,-0.22471,-0.22471,0.1923,0.10968,0.098667,-0.21134,-0.22471,0.19859,0.19466,0.10732,-0.18695,-0.21606,0.34887,0.37956,0.18994,0.11912,-0.19167 -0.086928,-0.20056,-0.21476,0.055111,0.33919,-0.12954,-0.17215,-0.20056,0.19715,0.29658,-0.072724,-0.14374,-0.18635,0.21135,0.32498,-0.05852,-0.10113,-0.20056,0.097723,0.25396,-0.072724,-0.18635,-0.25737,0.23976,0.26817 0.23923,0.21444,0.20204,0.15866,-0.033468,0.28881,0.21444,0.14007,-0.058258,-0.2132,0.24543,0.17725,0.040905,-0.15122,-0.27518,0.19585,0.078091,-0.16982,-0.2132,-0.28757,0.11528,-0.11404,-0.23179,-0.27518,-0.28757 0.20381,0.20319,0.20043,0.19613,0.2035,0.20642,0.2035,0.20074,0.25954,0.20826,0.2058,0.20289,-0.19002,-0.19033,-0.19079,-0.19232,-0.19232,-0.19109,-0.1914,-0.19232,-0.19324,-0.19232,-0.19278,-0.19263,-0.19263 0.87571,0.11292,0.050472,-0.0049725,-0.066253,0.10825,0.081404,0.017789,-0.049911,-0.098936,0.086072,0.037632,-0.0096414,-0.082594,-0.13921,0.067397,0.021291,-0.04816,-0.098936,-0.15146,-0.15846,-0.15555,-0.075007,-0.13512,-0.18473 -0.14134,-0.18341,0.0129,0.32139,0.44759,-0.14134,-0.14134,-0.085255,0.30737,0.3915,-0.16939,-0.12732,-0.15537,0.0129,0.34944,-0.12732,-0.099278,-0.099278,-0.043189,0.19519,-0.18341,-0.14134,-0.12732,-0.099278,0.026923 -0.45184,-0.4203,-0.36774,-0.29415,-0.2153,-0.27838,-0.099661,0.031749,0.079056,0.11585,0.11059,0.094825,0.14213,0.12636,0.13162,0.13162,0.13162,0.13162,0.11585,0.13162,0.13688,0.12111,0.13688,0.12111,0.13688 0.16646,0.083538,-0.14401,-0.17101,-0.17487,0.19924,0.12211,-0.1633,-0.17679,-0.17679,0.13175,0.10668,0.083538,-0.14787,-0.18065,0.1761,0.10668,0.14332,-0.16908,-0.18451,0.65049,0.16453,-0.072662,-0.17679,-0.19608 -0.39561,-0.39682,-0.39622,-0.39713,-0.39622,0.09085,0.089635,0.093281,0.079304,0.087812,0.099966,0.09085,0.10574,0.08052,0.079304,0.089635,0.093889,0.088116,0.096016,0.089635,0.098447,0.095712,0.087204,0.12336,0.22272 0.19589,0.19868,0.19746,0.19868,0.22738,0.19746,0.19952,0.19916,0.17567,0.17724,-0.20082,-0.21208,0.17688,0.1753,0.17494,-0.21269,-0.21208,-0.2053,-0.20373,-0.20591,-0.21208,-0.21136,-0.20833,-0.20458,-0.2053 -0.31733,-0.012205,-0.050345,0.025935,0.1785,-0.20291,-0.050345,0.064075,0.1785,0.40734,-0.20291,-0.050345,-0.24105,0.1785,0.1785,-0.24105,-0.20291,0.064075,0.14036,0.25478,-0.20291,-0.35547,0.025935,0.25478,0.1785 -0.01977,0.44924,0.4715,0.43588,0.46853,-0.064295,-0.067264,-0.071716,-0.06578,-0.085074,-0.093979,-0.089527,-0.093979,-0.093979,-0.093979,-0.093979,-0.098432,-0.093979,-0.10288,-0.098432,-0.10288,-0.098432,-0.099916,-0.098432,-0.098432 0.081035,0.11083,0.51898,0.50706,0.50706,-0.0023834,-0.032176,0.033367,-0.058989,-0.020259,-0.061968,-0.09176,-0.13347,-0.12453,-0.073885,-0.061968,-0.10964,-0.12453,-0.13645,-0.11559,-0.079843,-0.12453,-0.14539,-0.13645,-0.12453 -0.2458,-0.14669,-0.014537,0.21673,0.11762,-0.21277,-0.047575,0.051539,0.11762,0.34888,-0.21277,-0.21277,0.051539,0.11762,0.28281,-0.14669,-0.080613,-0.27884,0.28281,0.21673,-0.41099,0.018501,-0.14669,0.11762,0.21673 0.43375,-0.027007,-0.12509,-0.12737,-0.13649,0.0026459,-0.074907,-0.11824,-0.12281,-0.13193,0.4269,-0.054378,-0.1114,-0.10912,-0.08175,0.47252,0.01177,-0.072626,-0.12053,-0.090873,0.46112,-0.015602,-0.08403,-0.099997,-0.10456 0.3162,0.31975,-0.094679,-0.13849,-0.14086,0.31028,-0.091127,-0.12073,-0.13731,-0.1527,0.30554,-0.095864,-0.10889,-0.12783,-0.1598,0.31265,0.36356,-0.088759,-0.14323,-0.1527,0.30081,-0.07455,-0.11599,-0.12902,-0.15625 -0.22372,-0.23323,0.19396,0.18226,0.19323,-0.22372,-0.21787,0.20347,0.19762,0.1808,-0.21714,-0.20763,0.20201,0.20421,0.19762,-0.19666,-0.18203,-0.20324,0.19616,0.19177,-0.19885,-0.18642,-0.20251,0.17714,0.17275 -0.076417,-0.30308,-0.076417,0.31215,0.34453,-0.1088,-0.076417,-0.076417,0.24739,0.215,-0.23832,-0.17356,-0.076417,0.27977,0.15024,-0.1088,-0.17356,-0.17356,0.085484,0.215,-0.23832,-0.20594,-0.17356,0.27977,0.15024 0.21887,0.17414,0.11931,0.064472,0.025512,0.19578,0.13373,0.086117,0.035613,-0.40882,0.16837,0.099103,0.048599,0.012525,-0.41315,0.13806,0.084674,0.035613,-0.014891,-0.43335,0.10199,0.051485,0.00098122,-0.046637,-0.47809 0.31869,-0.11196,-0.081009,-0.12065,-0.14959,0.31691,-0.12888,-0.13089,-0.14091,-0.14603,0.31557,-0.11753,-0.11463,-0.14113,-0.14091,0.31869,0.31914,-0.089025,-0.12465,-0.14091,0.32359,0.32582,-0.11797,-0.12042,-0.12131 -0.14742,-0.13763,-0.13568,-0.14742,-0.15721,-0.15525,-0.1435,-0.1435,-0.12785,-0.14155,-0.13176,-0.12002,-0.14155,-0.13763,-0.12002,-0.11415,-0.12589,0.28317,0.28904,0.26556,0.30666,0.30275,0.3047,0.291,0.28513 -0.41323,-0.36105,-0.38714,-0.41323,-0.38714,0.030262,0.056349,0.13461,0.13461,0.030262,0.10852,0.056349,0.1607,0.056349,0.056349,0.10852,0.056349,0.10852,0.056349,0.13461,0.13461,0.10852,0.1607,0.13461,0.13461 0.21032,0.21032,0.20832,0.20672,0.20352,0.20872,0.20912,0.21113,0.20712,0.20272,0.20872,0.21113,-0.19091,-0.19051,-0.18931,-0.19211,-0.19291,-0.19211,-0.19371,-0.19371,-0.19371,-0.19251,-0.19211,-0.19211,-0.19211 -0.20636,-0.20618,-0.2069,-0.2069,-0.20726,-0.20582,-0.20618,-0.20582,-0.20708,-0.20654,0.22822,0.22048,0.16663,-0.20491,-0.20564,0.23146,0.22336,0.17419,0.14952,0.13601,0.23434,0.2239,0.19724,0.15294,0.13727 0.16568,0.16568,0.15885,0.16226,0.14519,0.18446,0.14007,0.10934,0.11958,0.12812,0.13324,0.14861,0.16056,0.11275,0.12641,0.20324,-0.22871,-0.24408,-0.23213,-0.23896,-0.38749,-0.23896,-0.25091,-0.27993,-0.26286 -0.14693,-0.14693,-0.065601,0.029277,0.069938,-0.14693,-0.14693,-0.11982,0.042831,0.13771,-0.20114,-0.10626,-0.079155,-0.011385,0.32746,-0.22825,-0.16048,-0.092709,0.35457,0.35457,-0.20114,-0.17403,-0.052047,0.39523,0.36813 -0.28373,-0.068783,-0.19161,-0.0073696,0.26899,-0.34514,-0.09949,-0.038076,0.3304,0.3304,-0.25302,-0.1302,0.054044,0.11546,0.36111,-0.31444,-0.1609,0.054044,0.20758,0.054044,-0.09949,-0.038076,-0.038076,0.14616,0.14616 0.18023,0.13927,0.057346,-0.065539,-0.22938,0.22119,0.22119,0.098308,-0.14746,-0.43419,0.22119,0.18023,0.098308,-0.14746,-0.14746,0.30312,-0.1065,-0.1065,0.098308,-0.31131,0.098308,0.22119,0.098308,-0.27035,-0.27035 -0.095311,-0.12984,-0.026245,-0.16438,-0.026245,-0.19891,-0.16438,-0.095311,-0.16438,-0.026245,0.0082879,-0.23344,-0.095311,-0.19891,0.0082879,0.11189,-0.026245,-0.12984,-0.095311,-0.095311,0.38815,0.28455,0.42268,0.42268,0.31908 -0.20746,-0.20772,-0.20733,-0.20899,-0.20975,-0.20772,-0.20784,-0.20721,-0.20899,-0.20988,-0.20644,-0.20822,0.19274,0.1963,0.19783,0.1827,0.18995,0.18995,0.19071,0.19567,0.18766,0.1883,0.18944,0.19211,0.20418 -0.40814,-0.39833,-0.39833,-0.39538,-0.39833,0.097325,0.095362,0.095362,0.10125,0.097325,0.098306,0.099288,0.10027,0.095362,0.093399,0.10027,0.095362,0.11205,0.093399,0.092417,0.10714,0.098306,0.11205,0.088491,0.12579 -0.1904,-0.19358,0.21307,0.21228,0.20803,-0.19093,-0.19199,0.21307,0.21307,0.21228,-0.19172,-0.19279,-0.19172,0.21387,0.20724,-0.19119,-0.19199,-0.19172,0.21148,0.16904,-0.19172,-0.19279,-0.19332,0.21148,0.21095 -0.18649,-0.0435,-0.0021073,0.32151,0.37043,-0.24294,-0.1451,-0.13757,-0.054789,0.31774,-0.22412,-0.14886,-0.051026,0.16346,0.23496,-0.22412,-0.16768,0.24249,0.16723,0.18228,-0.23165,-0.22788,-0.16015,0.088204,0.1597 0.26352,0.20372,-0.18836,-0.18916,-0.19123,0.060068,0.20303,-0.18859,-0.18893,-0.1902,0.22407,0.22085,0.21832,-0.18939,-0.19031,0.22154,0.22016,-0.18962,-0.18962,-0.19031,0.21016,0.20912,0.21096,-0.18985,-0.18997 -0.2224,-0.37977,-0.23989,-0.2224,-0.1175,-0.25737,-0.16995,-0.16995,-0.16995,0.092319,-0.16995,-0.1175,0.0048957,0.039865,0.12729,0.039865,0.12729,0.12729,0.26717,0.30213,0.12729,0.21471,0.17974,0.30213,0.28465 -0.25459,-0.31353,-0.19566,-0.28602,-0.2762,0.089186,-0.17209,-0.19173,-0.17209,-0.25459,0.18937,-0.10922,0.10097,0.17759,-0.17209,0.15205,0.14615,0.17759,0.17169,0.2208,0.18348,0.15205,0.15205,0.2208,0.26402 -0.40047,-0.39705,-0.40389,-0.38884,-0.40595,0.12099,0.11209,0.098407,0.09088,0.084036,0.12167,0.10799,0.098407,0.09088,0.081983,0.11688,0.11209,0.098407,0.088827,0.07993,0.11825,0.10525,0.096354,0.09088,0.081983 0.25051,0.20125,0.17841,0.1696,0.24741,0.25122,0.1865,0.18293,0.17151,0.21077,0.24908,0.17841,-0.17519,-0.17567,-0.17709,-0.21326,-0.21112,-0.17471,-0.17519,-0.17757,-0.21207,-0.21231,-0.20945,-0.18518,-0.17876 -0.19199,-0.1901,-0.18558,0.18511,0.18398,-0.18784,-0.19312,-0.19425,0.1968,0.19793,-0.19048,-0.1901,-0.20632,0.20698,0.20623,-0.19086,-0.19387,0.21566,0.21566,0.21566,-0.18332,-0.19689,0.22395,0.2232,0.22357 -0.39129,-0.40969,-0.40049,-0.38976,-0.40816,0.096365,0.096365,0.1025,0.10403,0.096365,0.10097,0.10097,0.10557,0.099432,0.096365,0.099432,0.094832,0.1025,0.096365,0.099432,0.11017,0.099432,0.10097,0.096365,0.10097 -0.1143,-0.11305,-0.12304,-0.14051,-0.148,-0.11555,-0.11055,-0.10431,-0.096822,-0.10306,-0.11055,-0.1118,-0.10431,-0.10306,-0.098071,0.37755,-0.12429,-0.10431,-0.10306,-0.10057,0.38005,0.36132,0.34884,0.33261,0.32887 -0.39093,-0.39002,-0.39048,-0.39229,-0.39274,0.1194,0.076382,0.079552,0.058722,0.075023,0.13163,0.089061,0.045137,0.06325,0.071401,0.12755,0.090872,0.043326,0.041515,0.08725,0.096306,0.21042,0.21132,0.12936,0.10898 -0.17266,-0.17322,0.17311,0.17226,0.16373,-0.17095,-0.1718,-0.17322,0.19188,0.17027,-0.17209,-0.17152,-0.17521,0.18761,0.1805,-0.16924,-0.17266,-0.17664,0.33377,0.17368,-0.17123,-0.16981,-0.17322,0.33888,0.32779 -0.055186,-0.068581,-0.1177,-0.099836,0.18145,-0.010537,-0.059651,-0.086441,-0.023932,0.060901,-0.081976,0.0073225,-0.099836,-0.090906,-0.0016074,0.025182,0.047507,-0.086441,-0.13109,-0.059651,0.92263,0.016252,-0.068581,-0.041792,-0.077511 0.1542,0.11483,0.14795,0.14169,0.033557,0.15837,0.1329,0.14401,-0.28947,-0.29294,0.15073,0.14725,0.14586,-0.28877,-0.29039,0.14586,0.14887,0.11715,-0.2897,-0.28738,0.15582,0.15744,0.11923,-0.28854,-0.28854 -0.25945,-0.22796,-0.22638,0.19565,0.20352,-0.19646,-0.17442,0.21769,0.21612,0.24131,-0.16339,-0.16339,-0.19174,0.24604,0.1925,-0.19017,-0.18072,-0.17284,0.17675,0.18305,-0.17127,-0.1571,0.17675,0.18777,0.23816 -0.40896,0.10747,0.10445,0.10747,0.071233,-0.39386,0.11049,0.11754,0.10747,0.047073,-0.3999,0.10445,0.10848,0.10143,0.051099,-0.4009,0.10546,0.10747,0.1115,0.10345,-0.38882,0.097407,0.10546,0.11754,0.10546 0.033551,0.0077901,-0.089071,-0.11174,-0.14884,0.063434,0.0036684,-0.057128,-0.18593,-0.17975,0.41275,0.0088206,-0.081858,-0.14678,-0.1849,0.3705,0.38596,-0.13441,-0.1509,-0.14575,0.35093,0.35917,-0.10556,-0.13235,-0.14162 0.12171,0.29407,0.049889,-0.18711,-0.17993,0.088192,0.1624,0.14325,-0.20626,-0.21105,0.16719,0.16719,0.20549,-0.22302,-0.24935,0.14086,0.24858,-0.20387,-0.2709,-0.26132,0.11452,0.1624,0.30843,-0.14162,-0.23977 0.11927,0.1524,0.13584,0.11927,-0.013253,0.1524,0.2021,0.11927,0.069576,-0.19548,0.21867,0.11927,0.069576,-0.11265,-0.328,0.16897,0.16897,-0.013253,-0.26174,-0.44396,0.13584,0.069576,0.05301,-0.24517,-0.46053 0.26342,0.26648,0.060118,-0.020594,-0.26334,0.058589,0.055226,0.057977,-0.021205,-0.27129,0.057977,0.056449,0.057366,-0.041994,-0.26976,0.27076,0.27321,0.056449,-0.13188,-0.26915,0.28635,0.27749,-0.27037,-0.26915,-0.26915 0.12413,0.12413,0.12413,0.15344,-0.24226,0.11681,0.10948,0.13146,0.11681,-0.2276,0.094822,0.10948,0.14612,0.032535,-0.34851,0.10948,0.13146,0.1681,-0.26424,-0.37416,0.12413,0.12413,0.15711,-0.34851,-0.39248 -0.27396,-0.26733,0.18338,0.15466,0.12814,-0.28722,-0.24524,0.15466,0.14803,0.13698,-0.29606,-0.20547,0.16128,0.13698,0.13698,-0.32699,-0.13919,0.14803,0.12372,0.13035,-0.31594,0.20768,0.15024,0.12814,0.12814 0.18391,0.16881,-0.20889,-0.22568,-0.23743,0.18056,0.18559,-0.20721,-0.22904,-0.2475,0.18727,0.17216,0.17552,-0.22568,-0.23911,0.18559,0.17552,0.17216,-0.21057,-0.22064,0.18056,0.17384,0.17048,0.16713,-0.22736 0.25387,0.23014,0.13284,0.22288,-0.052574,0.2466,0.23063,0.14446,0.26984,-0.054026,0.24709,0.23789,0.14301,-0.057899,-0.056931,-0.21523,-0.21475,-0.21572,-0.20555,-0.20555,-0.21669,-0.21523,-0.2162,-0.21765,-0.21523 0.090519,0.0903,-0.21811,-0.22073,-0.2227,0.090519,0.092706,0.22832,-0.22183,-0.22358,0.10342,0.23182,0.2281,-0.22226,-0.22314,0.23663,0.2316,0.22569,-0.2017,-0.22161,0.086363,0.234,0.2281,-0.20214,-0.22029 -0.13704,-0.025101,0.023924,0.28866,0.34912,-0.23427,-0.1305,0.023924,0.26414,0.3001,-0.23917,-0.037357,0.00268,0.023107,0.31562,-0.28411,-0.28003,-0.045528,0.012485,0.33441,-0.29964,-0.11171,-0.067589,-0.059418,0.013302 -0.27565,-0.23665,0.12458,-0.10664,0.19237,-0.27286,-0.24593,0.12458,0.18123,0.18773,-0.26915,-0.25243,0.13108,0.14594,0.19516,-0.27286,-0.23386,0.1283,0.14966,0.19609,-0.24036,0.1413,0.12923,0.18401,0.19516 0.13193,0.12201,0.13855,0.13855,0.09556,0.13689,0.14351,0.14351,0.15177,0.15343,0.15838,0.17492,0.16996,0.165,0.18153,-0.27147,-0.25659,-0.17723,0.16996,-0.24502,-0.29958,-0.30123,-0.30784,-0.24336,-0.27312 -0.20884,-0.20058,0.25791,0.19183,0.25791,-0.14688,-0.18406,0.21661,0.20009,0.20422,-0.17167,-0.18819,0.02247,0.19183,0.24139,-0.24189,-0.25015,-0.2295,-0.022966,0.22487,-0.25015,-0.1758,-0.11384,0.18769,0.18769 -0.21125,-0.21686,-0.20565,-0.21826,-0.20284,-0.21686,-0.20985,-0.22106,-0.18742,-0.21125,-0.20845,0.22465,0.20223,0.19241,-0.18462,0.18821,0.18961,0.18541,0.18541,0.19241,0.18541,0.18961,0.18541,0.184,0.18961 0.46883,0.47288,0.45264,0.40408,-0.024931,-0.069451,-0.081592,-0.020884,-0.012789,-0.11802,-0.069451,-0.081592,-0.069451,-0.10183,-0.14635,-0.081592,-0.069451,-0.081592,-0.11802,-0.17468,-0.057309,-0.069451,-0.093734,-0.10183,-0.15444 0.2581,-0.095308,-0.15188,-0.16445,-0.15473,0.25838,-0.095594,-0.1593,-0.16616,-0.064453,0.26124,0.2601,-0.1633,-0.16359,-0.068453,0.2801,0.34752,-0.16445,-0.1593,-0.09588,0.27495,0.35152,-0.16616,-0.16159,-0.097308 -0.38243,0.033341,0.034167,0.14777,0.1486,-0.3793,0.032846,0.034167,0.1514,0.1514,-0.3793,0.17072,0.0092336,0.15289,0.16907,-0.37864,0.0077475,0.0093987,0.14876,0.15487,-0.3826,0.0079126,0.0089033,0.17551,0.15355 -0.035076,-0.2264,-0.21843,-0.27423,-0.24234,0.068557,-0.1706,-0.21843,-0.26626,-0.13871,0.16422,-0.082906,-0.15465,-0.15465,-0.019132,0.23596,0.060585,0.012755,0.060585,0.16422,0.34757,0.24394,0.23596,0.27582,0.33162 -0.26986,0.1534,0.17037,0.1589,0.16074,-0.26573,-0.26848,0.15111,0.15248,0.15248,-0.26527,-0.2639,0.13781,0.14148,0.12176,-0.26573,-0.26344,0.1534,0.14423,0.13643,-0.27077,-0.26436,0.14836,0.15615,0.15844 -0.13735,-0.091105,-0.11423,-0.079543,0.26152,-0.096886,-0.091105,-0.11423,-0.073763,0.45229,-0.091105,-0.091105,-0.091105,-0.091105,0.43495,-0.13157,-0.13157,-0.096886,-0.085324,0.34823,-0.13157,-0.05642,-0.091105,-0.073763,0.46385 0.23923,0.24868,0.2324,-0.15467,-0.15948,0.23847,0.26925,-0.15214,-0.15501,-0.15661,0.29548,0.26672,-0.15459,-0.15619,-0.15577,0.29666,-0.10458,-0.15416,-0.15678,-0.15914,0.30029,-0.10314,-0.15256,-0.1561,-0.15627 0.084236,0.21131,0.099684,0.13955,0.11613,0.088223,0.2138,0.20882,0.13407,0.11613,0.077758,0.21579,0.18988,0.14453,0.14702,0.040882,-0.28103,-0.27954,-0.27256,0.038889,-0.28602,-0.28602,-0.28851,-0.28602,-0.28701 0.13606,0.13028,0.040009,0.027009,-0.38463,0.0053441,0.011121,0.045064,0.056619,-0.34997,0.10645,0.12234,0.14761,0.10428,-0.32902,0.21477,0.19455,0.13028,0.14689,-0.32469,0.15556,0.14472,0.14039,-0.31097,-0.36008 -0.22083,-0.22083,-0.22365,-0.21047,-0.16999,-0.21988,-0.23024,-0.22742,-0.23306,-0.19729,-0.21612,0.10491,0.29979,0.15481,0.12469,0.10303,0.11527,0.28661,0.12845,0.12186,0.10397,0.29415,0.28285,0.12657,0.1228 -0.20761,-0.2091,0.19732,0.15207,0.19604,-0.20761,-0.20697,-0.21188,0.18174,0.2033,-0.20654,-0.20761,-0.2091,0.19732,0.20564,-0.20782,-0.20654,0.1843,0.19689,0.1986,-0.20996,-0.20441,0.18963,0.19497,0.19732 0.86891,-0.055035,-0.080142,-0.085164,-0.10023,0.21612,-0.070099,-0.10023,-0.10023,-0.085164,0.28642,-0.060057,-0.055035,-0.055035,-0.080142,0.075523,-0.044992,-0.090185,-0.050014,-0.060057,0.00020086,-0.065078,-0.060057,-0.080142,-0.070099 -0.38711,0.052787,0.1261,0.1261,0.19942,-0.20382,-0.057186,0.016129,0.30939,0.23608,-0.42376,-0.16716,0.016129,0.016129,0.19942,-0.20382,-0.057186,0.1261,0.016129,0.1261,-0.31379,-0.20382,-0.020528,0.27273,0.19942 0.047299,-0.057127,-0.1677,-0.1677,-0.21991,0.16401,0.038085,-0.097055,-0.15234,-0.1892,0.23158,0.059584,-0.035628,-0.14005,-0.1892,0.32065,0.081084,-0.035628,-0.12163,-0.14927,0.67386,0.25001,0.019657,-0.057127,-0.10627 0.17122,0.1673,0.16485,0.13789,0.12564,0.40306,0.40061,0.40306,0.1575,0.15161,-0.14689,-0.14836,-0.14836,-0.14836,-0.15032,-0.15228,-0.15326,-0.15375,-0.15228,-0.15277,-0.15522,-0.15473,-0.15522,-0.15424,-0.15669 -0.1639,-0.1639,-0.091763,-0.12062,0.36994,-0.03405,-0.091763,-0.091763,-0.12062,0.34108,-0.12062,-0.077335,-0.048478,-0.077335,0.38436,-0.048478,-0.091763,-0.14948,-0.062907,0.47093,-0.10619,-0.12062,-0.10619,-0.077335,0.39879 0.12003,0.17642,0.13981,0.1042,-0.36475,0.18335,0.18137,0.18829,-0.15996,-0.18469,0.17246,0.18829,0.19324,-0.16688,-0.1936,0.17246,0.19423,-0.17282,-0.18271,-0.36277,0.18236,0.20313,-0.20349,-0.20052,-0.20745 -0.28797,-0.1435,0.12135,0.21766,0.025041,-0.43243,-0.1435,0.16951,0.12135,0.12135,-0.28797,-0.1435,0.14543,0.12135,0.025041,-0.26389,-0.095347,0.16951,0.19358,0.19358,-0.28797,-0.1435,0.31397,0.16951,0.12135 -0.39634,-0.39816,-0.39861,-0.40088,-0.40224,0.084232,0.093316,0.080144,0.098313,0.11921,0.097858,0.092408,0.084232,0.073784,0.12193,0.1024,0.098767,0.10331,0.11603,0.081506,0.10785,0.10149,0.11103,0.11421,0.11421 0.12155,0.12155,0.19996,0.14115,0.10194,0.16075,0.10194,0.12155,0.10194,0.16075,0.023525,0.10194,0.16075,0.082337,0.19996,-0.23133,-0.13331,0.082337,0.082337,0.023525,-0.46658,-0.42737,-0.36856,-0.25093,-0.21172 -0.10974,-0.10974,-0.11087,-0.11313,-0.11426,-0.11143,-0.11143,-0.11256,-0.11822,-0.1137,-0.10521,-0.112,-0.1086,-0.11765,-0.1086,0.36654,-0.10295,-0.10974,-0.12275,-0.12218,0.3541,0.35353,0.3524,0.35636,0.35183 0.075722,0.10354,0.13364,0.39587,0.40134,0.078002,0.27684,0.26863,0.27319,0.26954,-0.15367,-0.1482,-0.14318,-0.14546,-0.14546,-0.15732,-0.15641,-0.15276,-0.15139,-0.14911,-0.15641,-0.15641,-0.15458,-0.15276,-0.15321 0.051619,-0.093666,-0.10221,-0.1193,-0.15562,0.35928,-0.085119,-0.10648,-0.11503,-0.1364,0.41483,-0.0723,-0.10221,-0.12571,-0.14281,0.39774,-0.063754,-0.089392,-0.11076,-0.13426,0.39774,0.39133,-0.055208,-0.080846,-0.12144 -0.48477,-0.33976,-0.33976,-0.38119,-0.29832,0.15745,0.033147,-0.0082867,-0.0082867,-0.070437,0.19888,0.11601,0.15745,0.033147,0.053864,0.26103,0.15745,0.11601,0.01243,0.033147,0.15745,0.15745,0.11601,0.053864,0.11601 -0.12647,-0.093483,-0.094548,-0.071134,-0.074327,-0.12222,-0.09774,-0.078584,-0.07007,-0.089226,-0.11583,-0.10413,-0.059427,-0.083905,-0.092419,-0.10519,-0.11477,-0.075391,-0.053042,-0.054106,0.48547,0.47482,0.43438,0.42587,-0.044528 0.85319,0.02133,-0.02133,-0.085319,-0.14931,0.23463,0.085319,-0.02133,-0.14931,-0.14931,0.063989,0.085319,-0.085319,-0.085319,-0.085319,0.085319,0.02133,-0.085319,-0.085319,-0.14931,0.085319,-0.02133,-0.063989,-0.14931,-0.14931 0.26603,0.17365,0.23365,-0.20204,-0.2022,0.17556,0.17429,0.23365,-0.20267,-0.20204,0.26285,0.17556,0.17873,-0.20204,-0.19918,0.17905,0.17714,-0.20188,-0.19855,-0.20172,0.23619,-0.12442,-0.12696,-0.20108,-0.20156 0.069463,0.23456,0.26822,0.26129,0.038507,0.069463,0.067433,0.24759,0.26619,0.038845,0.061005,0.067095,0.25063,0.27448,0.038169,-0.22453,-0.22572,-0.22487,-0.22487,-0.22504,-0.22555,-0.22555,-0.22572,-0.22589,-0.22521 0.014681,-0.045957,-0.07468,-0.047553,0.0051064,0.0035106,-0.065106,-0.057127,-0.03,-0.026808,0.016276,-0.066702,-0.044361,-0.017234,-0.04117,0.0082978,-0.066702,-0.058723,-0.065106,-0.01883,-0.031596,-0.066702,-0.090638,-0.10021,0.96733 -0.27806,-0.23563,-0.17199,-0.1048,0.1816,-0.24978,-0.20381,-0.15784,0.057847,0.24879,-0.21442,-0.18613,-0.087124,0.17807,0.24525,-0.21088,-0.097732,0.17453,0.24879,0.26646,-0.16491,0.043704,0.21343,0.25939,0.24525 -0.049189,-0.055671,-0.055671,-0.059206,-0.053314,0.0050203,0.0073772,-0.046243,-0.059206,-0.058028,0.0073772,0.0073772,-0.050957,-0.054492,-0.054492,-0.050368,-0.052135,-0.055671,-0.055671,-0.059206,-0.017371,-0.0014613,-0.056849,-0.054492,0.97254 -0.1695,-0.15003,-0.1695,-0.18248,-0.18248,-0.1111,-0.15652,-0.15652,-0.16301,-0.078651,-0.11759,-0.11759,-0.15652,-0.11759,-0.020247,-0.072161,-0.033225,0.22635,0.27826,0.29773,-0.013757,0.3172,0.3756,0.35613,0.3172 0.51945,0.35891,-0.087051,-0.092997,-0.11678,0.47188,0.0080867,-0.087051,-0.081105,-0.14057,0.35891,-0.045428,-0.10489,-0.11084,-0.11084,0.20431,-0.087051,-0.11678,-0.12867,-0.11084,-0.033536,-0.098943,-0.10489,-0.13462,-0.12867 -0.0091405,-0.017787,-0.014081,-0.017787,-0.020257,-0.014081,-0.017787,-0.021492,-0.022728,-0.040021,-0.010376,-0.017787,-0.043726,-0.048667,-0.049902,-0.072136,-0.074606,-0.063489,-0.059784,-0.047432,-0.084488,-0.074606,-0.072136,-0.058549,0.97284 -0.2075,-0.20593,-0.20201,-0.18711,-0.16201,-0.21142,-0.19024,-0.19338,-0.13691,-0.12671,-0.19652,0.053679,0.074855,0.077208,-0.092205,-0.18554,0.068581,0.077208,0.24348,0.28113,0.24348,0.28113,0.25995,0.26466,0.37211 0.35374,0.35016,0.34933,0.34933,0.36005,0.37236,-0.11247,-0.11181,-0.11164,-0.11214,-0.11231,-0.11247,-0.11197,-0.11264,-0.11264,-0.11231,-0.11214,-0.11231,-0.11264,-0.11297,-0.11214,-0.11231,-0.11247,-0.11247,-0.11314 -0.32012,-0.25505,0.1516,0.1028,0.16787,-0.30385,-0.20626,0.1028,0.26546,0.086536,-0.33639,-0.092392,0.2492,0.1028,0.2004,-0.10866,-0.18999,0.18413,0.298,0.1028,-0.28759,-0.14119,-0.011061,0.1028,0.13533 -0.15969,-0.15292,-0.11911,-0.058248,0.32496,-0.15292,-0.14616,-0.12137,-0.022181,0.32947,-0.14616,-0.13714,-0.1146,-0.0018935,0.33398,-0.1394,-0.13714,-0.098824,0.00036067,0.33849,-0.13264,-0.13038,-0.10784,0.41739,0.33398 -0.11585,-0.10792,-0.072266,0.054516,0.06244,-0.084152,-0.088114,-0.044532,0.050554,0.010935,-0.10792,-0.10396,-0.04057,0.022821,-0.0049128,-0.11189,-0.099999,-0.016799,0.04263,-0.028684,-0.099999,-0.096037,0.006973,0.038669,0.93407 0.12201,0.11312,0.10517,0.10555,0.10214,0.12769,0.11009,0.10744,0.10612,0.10404,0.13128,0.1116,0.1099,0.11217,0.10177,-0.23676,0.10669,0.10612,0.11123,0.10366,-0.42258,-0.42068,-0.42201,-0.29617,-0.29958 -0.10036,-0.093785,-0.089234,-0.10339,-0.089234,-0.061418,-0.065464,-0.067992,-0.071027,-0.061923,-0.0037627,-0.14385,-0.054843,-0.065969,-0.074061,-0.15498,-0.15144,-0.16661,-0.15599,-0.14385,0.53789,0.43522,0.34267,0.32851,0.2749 -0.19296,-0.19296,-0.19152,-0.19392,-0.19296,-0.18912,-0.19248,-0.18912,-0.19488,-0.192,0.21792,0.21216,-0.19056,-0.18912,-0.19584,0.2136,0.20928,0.2064,0.20256,0.20016,0.21552,0.20832,0.2064,0.20448,0.20064 -0.39469,-0.39487,-0.39487,-0.39539,-0.39539,0.086814,0.082811,0.092904,0.10265,0.098995,0.085073,0.085247,0.084551,0.099343,0.10143,0.17695,0.086814,0.084551,0.064539,0.059319,0.17382,0.18113,0.085769,0.084203,0.058275 0.31577,0.18331,0.11109,0.10561,0.095344,0.31303,0.18057,0.11862,0.10972,0.1039,0.30721,0.18365,0.12786,0.11177,-0.21236,-0.21852,-0.21578,-0.21544,-0.21647,-0.21578,-0.21715,-0.21715,-0.21681,-0.21647,-0.20552 0.26181,-0.074707,-0.10275,-0.12518,-0.13079,0.36557,-0.046664,-0.12378,-0.12799,-0.13921,0.42025,-0.024229,-0.12378,-0.13079,-0.12939,0.42306,-0.055077,-0.12939,-0.10275,-0.12378,0.17207,0.41184,-0.094337,-0.12939,-0.14061 0.19058,0.22438,0.19058,0.32575,0.15679,0.021627,0.15679,0.021627,-0.045956,0.15679,0.123,0.123,0.15679,0.021627,0.123,-0.012165,0.021627,-0.045956,-0.14733,-0.045956,-0.38387,-0.2825,-0.38387,-0.35008,-0.31629 -0.14851,-0.1489,-0.15085,0.26852,0.26793,-0.1489,-0.15065,-0.1528,0.26891,0.26832,-0.14929,-0.1487,-0.15397,0.27866,0.27144,-0.14831,-0.15026,-0.14929,-0.15007,0.25819,-0.14968,-0.14929,-0.15007,0.25896,0.25857 -0.39965,-0.39995,-0.40025,-0.39985,-0.40015,0.097422,0.10302,0.10172,0.10432,0.10022,0.095121,0.10282,0.10202,0.099523,0.10012,0.097122,0.098823,0.099523,0.098022,0.098523,0.10402,0.10282,0.10112,0.097422,0.096122 0.20021,0.22778,-0.19063,-0.18935,-0.19255,0.1938,0.19658,-0.18978,-0.18999,-0.19448,0.18547,0.19637,-0.18892,-0.19084,-0.19405,0.1859,0.19081,0.27308,-0.18871,-0.19362,0.18846,0.19124,0.25641,-0.19042,-0.19277 -0.029863,-0.083188,-0.016531,0.22344,0.34342,-0.10985,-0.13651,-0.0031996,0.11678,0.30342,-0.16318,-0.083188,-0.16318,0.063458,0.34342,-0.13651,-0.17651,-0.22983,-0.029863,0.33009,-0.17651,-0.2165,-0.22983,-0.12318,0.38341 0.17771,0.2397,0.17771,0.17771,0.34302,0.095053,0.11572,0.11572,0.21903,0.17771,-0.13225,0.074389,-0.049593,0.13638,0.19837,-0.2149,-0.13225,-0.15291,-0.33888,0.012398,-0.25623,-0.13225,-0.25623,-0.33888,-0.25623 0.15554,0.11868,0.081822,0.072608,0.023465,0.17704,0.13096,0.097179,0.051108,0.014251,0.18318,0.14018,0.10025,0.048037,0.023465,0.17704,0.14325,0.10025,0.072608,0.029608,-0.4096,-0.40039,-0.3666,-0.38503,-0.37889 -0.090491,-0.10654,-0.098083,-0.10069,-0.10025,-0.088539,-0.10719,-0.10806,-0.10719,-0.10719,-0.10763,-0.10633,-0.10784,-0.10806,-0.10958,-0.10654,-0.10806,-0.10784,0.083464,0.080644,0.51531,0.40101,0.58386,0.087802,0.12402 -0.3806,-0.0086781,0.053308,0.053308,0.14629,-0.25662,-0.19464,0.053308,0.14629,0.14629,-0.3806,0.084301,0.11529,0.053308,0.27026,-0.3806,0.11529,0.084301,0.084301,0.14629,-0.31861,-0.10166,-0.039671,0.27026,0.23927 -0.13287,-0.089905,-0.084534,-0.095276,0.33169,-0.17047,-0.16778,-0.033513,-0.033513,0.44985,-0.15167,-0.16509,-0.065737,-0.079164,0.32901,-0.13019,-0.13556,-0.11139,-0.071108,0.32632,-0.10333,-0.049625,-0.022772,-0.036198,0.49281 0.093596,0.15648,0.12168,0.11621,-0.35633,0.090947,0.11338,0.11744,0.11285,-0.35633,0.10243,0.11868,0.11338,0.11232,-0.35598,0.077168,0.11674,0.11232,-0.35386,-0.35457,0.11621,0.11956,0.1185,0.10066,-0.35351 -0.1175,-0.16858,-0.17348,0.4402,0.4381,-0.1315,-0.16648,-0.16648,0.18479,0.17919,-0.1343,-0.16298,-0.16928,0.17289,0.17079,-0.1336,-0.15739,-0.15599,0.18059,0.1589,-0.14689,-0.15739,-0.16438,0.19179,0.18899 -0.39548,-0.40414,-0.41063,-0.38791,-0.40089,0.10212,0.10644,0.099952,0.097789,0.099952,0.10752,0.099952,0.10212,0.10212,0.095625,0.11401,0.099952,0.093462,0.10103,0.094543,0.10861,0.095625,0.093462,0.093462,0.091298 -0.2054,-0.23284,-0.22598,-0.20369,-0.1574,-0.21055,-0.15397,-0.099101,-0.090529,-0.080241,-0.073383,-0.040806,-0.071668,-0.068239,-0.071668,0.053494,0.35869,0.027776,0.020918,0.020918,0.3484,0.34497,0.36211,0.041492,0.40669 -0.44717,0.038225,0.098899,0.12924,0.1444,-0.29548,0.053393,0.15957,0.15957,0.11407,-0.40166,0.0078876,0.12924,0.11407,0.068562,-0.46234,0.08373,0.20508,0.08373,0.053393,-0.32582,0.038225,0.08373,0.08373,0.08373 0.08723,0.08723,0.11106,0.099146,-0.02002,0.08723,0.093188,0.08723,0.093188,-0.21069,0.081271,0.081271,0.08723,0.099146,-0.46689,0.1349,0.075313,0.1349,0.069355,-0.51456,0.1051,0.11702,0.11106,-0.10344,-0.52648 0.12733,0.17945,-0.25103,-0.24138,-0.30123,0.13891,0.19104,0.22965,-0.16223,-0.27034,0.14278,0.19876,0.20841,-0.11204,-0.23945,0.16401,0.2142,0.24702,-0.15451,-0.2298,0.18525,0.1949,-0.10818,-0.14293,-0.20856 -0.2853,-0.24867,0.16443,0.14204,0.14408,-0.27513,-0.25071,0.15629,0.15018,0.15425,-0.28123,-0.25478,0.15629,0.14204,0.14611,-0.28123,-0.25681,0.14204,0.13797,0.15222,-0.26088,0.18681,0.12983,0.13594,0.15425 0.29189,0.22695,0.14134,0.046877,-0.03135,0.32436,0.23137,0.15905,0.071968,-0.028398,0.32436,0.22842,0.12658,0.07492,-0.049061,-0.16861,-0.16566,-0.18928,-0.17747,-0.21585,-0.23946,-0.24241,-0.24684,-0.24832,-0.24537 0.55945,0.45884,0.41514,0.36534,-0.056425,-0.069637,-0.054392,-0.045246,-0.044229,-0.041181,-0.083865,-0.082849,-0.070653,-0.070653,-0.066588,-0.10927,-0.10927,-0.097077,-0.093012,-0.093012,-0.13163,-0.12757,-0.12553,-0.11334,-0.11334 0.1835,-0.11362,-0.13738,-0.11362,-0.042309,0.33799,-0.089846,-0.17304,-0.13738,-0.0066553,0.32611,-0.089846,-0.16115,-0.066077,-0.066077,0.46872,-0.054193,-0.1255,-0.066077,0.0052292,0.55191,-0.1255,-0.1255,-0.13738,-0.042309 -0.11573,-0.11645,-0.11502,-0.11716,-0.11716,-0.11217,-0.10932,-0.11288,-0.11146,-0.11217,-0.10647,-0.10647,-0.10861,-0.10505,-0.11217,-0.11146,-0.12072,-0.10505,-0.11929,0.35734,0.34951,0.34737,0.35948,0.35877,0.36233 0.20945,0.17965,0.15979,0.1631,-0.14813,0.20283,0.1631,0.17303,-0.20607,-0.23753,0.19952,0.18296,0.17469,-0.23256,-0.26236,0.1631,0.1631,-0.20442,-0.25243,-0.22428,0.17303,0.15648,-0.22097,-0.21104,-0.26401 0.2349,0.29515,0.243,0.49373,0.52885,-0.10959,0.23922,-0.10823,-0.11175,-0.10796,-0.10499,-0.10769,-0.10499,-0.10634,-0.10661,-0.10526,-0.10526,-0.10769,-0.10553,-0.10742,-0.10634,-0.10851,-0.10742,-0.1058,-0.10742 -0.12788,0.11705,0.10416,0.12994,0.12994,-0.3019,0.078376,0.11705,0.12349,0.12994,-0.32768,-0.02475,0.1106,0.11705,0.11705,-0.49526,-0.0054141,0.078376,0.1106,0.13638,-0.53394,-0.14721,0.097712,0.14928,0.11705 0.17041,0.15814,0.16581,0.17655,-0.33125,0.15814,0.15354,0.13052,0.1566,-0.34966,0.15507,0.15507,0.095238,0.12592,-0.34506,0.050749,0.055351,0.044612,0.070692,-0.42176,-0.039765,-0.039765,-0.035162,-0.039765,-0.42023 0.13506,0.13727,0.14057,-0.29324,-0.29682,0.13341,0.13754,0.14746,-0.29021,-0.29269,0.13396,0.13313,0.13368,-0.29021,-0.29159,0.13231,0.13286,0.13313,0.15379,-0.28856,0.13313,0.13148,0.12955,0.15296,-0.288 0.15009,0.14816,0.14651,0.15037,0.14816,0.15009,0.14926,0.14789,0.14899,0.1523,0.15257,0.15037,0.15009,0.15147,0.15037,-0.26661,-0.26579,-0.25724,0.15313,-0.26717,-0.26827,-0.2691,-0.2691,-0.26882,-0.26772 -0.086581,-0.09578,-0.091181,-0.09233,-0.094055,-0.089456,-0.09348,-0.09348,-0.096355,-0.09578,-0.089456,-0.09233,-0.096355,-0.09463,-0.09578,-0.084857,-0.086581,-0.098654,-0.095205,-0.084282,0.23364,0.23537,0.25721,0.44751,0.67287 0.15198,0.15695,-0.19139,-0.18361,-0.17957,0.1526,0.1554,-0.18517,-0.18268,-0.17957,0.1498,0.15353,0.27669,-0.18268,-0.17957,0.28665,0.28913,0.053072,-0.18175,-0.17957,0.29909,0.28011,-0.21067,-0.18299,-0.18579 0.0019409,-0.02431,-0.037037,-0.041014,-0.033855,-0.01715,-0.014764,-0.029878,-0.036242,-0.036242,-0.041014,-0.023514,-0.047378,-0.049765,-0.0020364,-0.023514,-0.041014,-0.052151,-0.053742,-0.044992,-0.19852,-0.040219,-0.045787,-0.032264,0.96446 -0.14108,-0.14355,-0.13737,-0.13613,-0.14108,-0.14108,-0.13737,-0.13737,-0.13861,-0.14108,-0.13861,-0.14355,-0.13366,-0.13737,-0.13737,0.29918,0.28805,0.293,-0.12129,-0.125,0.28805,0.293,0.28929,0.293,0.28805 -0.16865,-0.14657,-0.15209,-0.13002,0.16247,-0.16313,-0.14657,-0.13554,-0.08035,0.28387,-0.14105,-0.14657,-0.13554,0.041058,0.30043,-0.15761,-0.13554,-0.030683,0.25076,0.37769,-0.15761,-0.13002,-0.014127,0.3501,0.40528 -0.10012,-0.033492,-0.042293,-0.033492,-0.02092,-0.041035,-0.022177,-0.041035,-0.0096051,0.050741,-0.00080462,-0.046064,-0.073723,-0.0020618,-0.053608,-0.025949,-0.033492,-0.076237,-0.072466,-0.024692,-0.042293,-0.046064,-0.083781,-0.092581,0.96725 0.18019,0.18019,0.038532,0.038532,-0.15979,0.35019,-0.046465,0.038532,-0.13146,-0.15979,0.52018,-0.018133,-0.13146,-0.18813,-0.38645,0.23686,-0.018133,0.038532,-0.074797,-0.15979,0.18019,0.12353,0.038532,-0.30146,-0.18813 -0.14462,-0.13603,-0.10809,-0.18545,-0.19619,-0.087675,-0.11024,-0.099494,-0.14677,-0.1833,-0.082303,-0.089824,-0.087675,-0.20586,-0.179,0.17771,0.14441,0.15837,0.14118,-0.18975,0.42161,0.14978,0.32921,0.36252,0.34748 0.23344,0.21889,0.22896,-0.16511,-0.17406,0.25807,0.23456,-0.13936,-0.16511,-0.17182,0.248,0.2771,-0.14831,-0.14496,-0.16511,0.23792,0.25695,-0.18526,-0.15055,-0.13824,0.248,-0.16511,-0.1875,-0.15839,-0.18302 0.3667,0.35236,0.34211,0.34416,0.33801,0.38719,-0.11278,-0.084094,-0.098437,-0.11893,-0.096388,-0.11893,-0.10458,-0.11893,-0.13327,-0.10458,-0.12917,-0.12917,-0.11278,-0.11483,-0.096388,-0.11073,-0.11893,-0.11278,-0.11483 0.2719,0.26727,0.43066,0.25336,0.51409,0.26727,-0.079216,-0.12673,-0.022434,0.0076945,-0.046769,-0.11977,-0.14759,-0.11977,-0.11746,0.011171,-0.080375,-0.16844,-0.15801,-0.14527,-0.088486,-0.14411,-0.15801,-0.14759,-0.15338 -0.27828,-0.093254,-0.13026,-0.31529,-0.16727,-0.16727,-0.35229,-0.20427,-0.20427,-0.20427,0.017763,0.091774,0.20279,0.017763,-0.019243,0.20279,0.12878,0.12878,-0.019243,0.2398,0.31381,0.16578,0.38782,0.12878,0.12878 0.086687,0.099722,0.11225,0.1308,-0.35698,0.083178,0.10022,0.12128,0.1283,-0.35648,0.086186,0.10624,0.12178,0.1293,-0.35547,0.10674,0.10975,0.12378,0.1288,-0.35196,0.11025,0.11977,0.12579,-0.35698,-0.35297 -0.011189,0.33644,0.31232,0.29736,0.297,-0.011189,-0.009862,0.3286,0.31606,0.3052,-0.14327,-0.14363,-0.14363,-0.14279,-0.14496,-0.14375,-0.14436,-0.1446,-0.14387,-0.14399,-0.14411,-0.14423,-0.14496,-0.14399,-0.1446 -0.10001,-0.10593,-0.090396,-0.098903,0.052004,-0.10445,-0.10149,-0.089286,0.049045,0.053113,-0.10593,-0.091875,-0.091875,0.046825,0.047195,-0.10593,-0.091875,0.042387,0.046455,0.044606,-0.10001,-0.11888,0.050524,0.050154,0.91454 -0.031341,-0.022864,-0.022057,0.19875,0.19997,-0.28243,-0.023672,-0.030534,0.20562,0.20319,-0.28606,-0.28202,0.1818,0.18907,0.19512,-0.28525,-0.28848,0.18503,0.19512,0.20521,-0.28687,-0.28848,-0.016405,-0.01358,0.20118 0.097704,0.16839,0.15837,0.2085,0.095698,0.053585,0.20349,0.19998,0.19948,0.10472,0.072135,0.051078,0.2085,0.20399,0.089682,-0.28533,-0.28633,-0.2733,0.048571,0.093693,-0.28533,-0.28232,-0.28433,-0.28633,-0.2743 0.34779,-0.1286,-0.12354,-0.12932,-0.12787,0.33119,-0.1286,-0.12138,-0.1286,-0.13076,0.31531,-0.11705,-0.1156,-0.12499,-0.12715,0.31603,0.30593,-0.12066,-0.12282,-0.12643,0.31387,0.31314,-0.12138,-0.12066,-0.12787 0.0024318,0.0014417,-0.13916,-0.14451,-0.12748,0.0016397,0.31076,-0.14292,-0.14609,-0.13738,0.31948,0.31156,-0.14233,-0.14292,-0.16074,0.31552,0.3068,-0.14391,-0.1447,-0.16154,0.31532,0.30185,-0.14352,-0.14668,-0.16292 -0.079894,-0.096067,-0.071808,-0.079894,0.13035,-0.11224,-0.079894,-0.10415,-0.087981,0.32443,-0.11224,-0.12033,-0.12841,-0.063721,0.53468,-0.12033,-0.11224,-0.096067,-0.039462,0.35677,-0.12841,-0.12033,-0.12033,0.0090568,0.5185 -0.40537,0.097831,0.079138,0.071054,0.089242,-0.40638,0.10743,0.092274,0.080148,0.085201,-0.40183,0.114,0.10238,0.088232,0.0948,-0.39021,0.1236,0.10693,0.0948,0.10591,-0.39122,0.1332,0.12107,0.10541,0.10238 -0.39738,-0.39355,-0.40503,-0.4012,-0.4012,0.11159,0.088629,0.088629,0.088629,0.10776,0.10394,0.10394,0.10394,0.096282,0.10011,0.10394,0.096282,0.088629,0.10776,0.11542,0.10394,0.096282,0.10394,0.10776,0.080975 0.55057,0.085561,-0.03844,-0.13144,-0.16244,0.45756,0.20956,-0.13144,-0.069441,-0.22444,0.27156,0.20956,-0.10044,-0.10044,-0.25544,0.11656,-0.0074401,0.02356,-0.10044,-0.19344,-0.0074401,-0.0074401,-0.13144,-0.10044,-0.16244 0.21446,0.21446,0.17533,0.17533,0.17533,0.12315,0.12315,0.12315,0.13619,0.17533,0.018785,0.057921,0.057921,0.12315,0.12315,-0.26821,-0.13776,-0.085577,-0.0073054,0.018785,-0.45084,-0.45084,-0.33344,-0.25517,-0.046441 -0.086185,-0.085407,-0.086185,-0.089295,-0.087999,-0.086444,-0.086444,-0.088777,-0.088777,-0.088777,-0.087222,-0.086703,-0.087222,-0.087222,-0.087999,-0.08463,-0.085667,-0.088258,-0.087481,-0.08774,0.17533,0.6201,0.61336,0.16523,0.17041 -0.11452,-0.082469,-0.11452,-0.22134,-0.18929,0.099134,0.035039,-0.0076914,-0.14656,-0.24271,0.19528,0.19528,0.099134,-0.10383,-0.24271,0.3021,0.29142,0.10982,-0.15725,-0.22134,0.34483,0.33415,0.23801,-0.14656,-0.25339 -0.19139,-0.19229,-0.1926,-0.19199,-0.1929,-0.19049,-0.19184,-0.19169,-0.1926,-0.19214,-0.19094,-0.19214,-0.1932,0.20679,0.21355,0.22227,0.22167,0.20604,0.19928,0.19898,0.19101,0.22407,0.21626,0.20138,0.19492 -0.20887,-0.20823,-0.20929,-0.20865,-0.20823,-0.2078,-0.20823,-0.20844,-0.20632,-0.20802,-0.20717,-0.20823,0.19848,0.19254,0.19976,0.18638,0.19148,0.19785,0.19551,0.19742,0.18362,0.18108,0.18935,0.19084,0.19318 -0.42792,0.08626,0.097772,0.097772,0.097772,-0.44711,0.082423,0.090097,0.097772,0.11696,-0.42792,0.078586,0.10161,0.11696,0.12463,-0.27827,0.08626,0.090097,0.10928,0.10161,-0.39723,0.093934,0.090097,0.10928,0.10928 -0.042909,-0.14562,-0.19126,0.21957,0.26521,-0.20268,-0.065733,-0.17985,0.19674,0.33369,-0.15703,0.0027389,-0.099969,0.23098,0.32227,-0.12279,-0.35103,-0.099969,0.0027389,0.2538,-0.19126,-0.20268,-0.088557,-0.0086731,0.32227 0.13072,0.1156,0.11948,0.12801,0.52538,0.13383,0.11522,0.12607,0.12491,0.12956,0.13266,0.12142,0.11018,0.11056,0.13266,-0.22284,-0.224,-0.22555,-0.22594,-0.22749,-0.22632,-0.22594,-0.22516,-0.22516,-0.22787 0.10814,0.095661,0.11077,-0.29384,-0.31092,0.12325,0.099602,0.10354,-0.27808,-0.27414,0.13967,0.12193,0.11799,-0.27348,-0.26691,0.36628,0.13704,0.1134,0.12193,-0.27545,0.14033,0.11471,0.11274,0.13179,-0.28596 0.15173,-0.056997,-0.05312,-0.12485,-0.13648,0.15238,0.15561,-0.066691,-0.14165,-0.17009,0.33332,0.40376,-0.007884,-0.17009,-0.20692,0.10391,0.34754,0.030243,-0.19917,-0.29029,0.10004,0.31846,-0.0027142,-0.1591,-0.31096 -0.20805,-0.20687,0.18833,0.18291,0.18103,-0.20805,-0.20757,-0.20663,0.19422,0.19492,-0.20922,-0.20593,-0.20569,0.19516,0.19657,-0.20993,-0.20852,0.19186,0.18762,0.19987,-0.21111,-0.20993,0.19422,0.19327,0.19751 -0.23465,-0.21436,0.1842,0.23789,0.22835,-0.25255,-0.22391,0.2188,0.18181,0.17107,-0.24778,-0.22868,-0.20601,0.14004,0.14004,-0.24778,-0.19408,0.16749,0.15556,0.14601,-0.19885,-0.21078,0.18539,0.15675,0.14601 0.23533,0.23799,0.2359,0.24445,0.24359,0.234,0.24958,0.2377,-0.090425,-0.09185,0.23315,0.062765,0.06229,0.062005,-0.09052,-0.18255,-0.18312,-0.18293,-0.18331,-0.18331,-0.18312,-0.1835,-0.18312,-0.29917,-0.30183 -0.3466,0.10876,0.10546,0.10546,0.14506,-0.3961,0.08896,0.09556,0.10546,0.09226,-0.3862,0.11206,0.09886,0.09226,0.085661,-0.4093,0.10876,0.09556,0.085661,0.09556,-0.45219,0.10876,0.085661,0.08896,0.085661 0.23078,0.29489,0.29489,0.25215,0.67952,0.017095,-0.047011,-0.0042737,-0.0042737,0.059832,-0.17522,-0.17522,-0.15385,-0.06838,-0.11112,-0.089749,-0.15385,-0.11112,-0.089749,-0.06838,-0.089749,-0.13249,-0.13249,-0.19659,-0.025642 -0.28054,-0.0065751,0.17607,0.26739,0.1578,-0.20748,-0.33533,0.12127,0.2126,0.084746,-0.28054,-0.15269,0.10301,0.19433,0.2126,-0.097896,-0.28054,0.1578,0.084746,0.13954,-0.31707,-0.26227,-0.043104,0.13954,0.2126 -0.19093,-0.18975,-0.18935,0.34522,0.34325,-0.20317,-0.18935,-0.19172,0.1415,0.34601,-0.20041,-0.19764,0.1336,0.14308,0.13913,-0.2008,-0.2012,0.12729,0.12334,0.14624,-0.20514,-0.20396,0.13005,0.12058,0.12413 0.051276,0.04993,0.067162,0.11778,0.10001,0.056392,0.057738,0.07147,0.12182,0.1089,0.0642,0.069855,0.12721,0.1334,0.10217,0.15736,0.15494,0.1544,0.12074,0.087895,-0.39514,-0.39568,-0.39407,-0.39407,-0.39568 -0.20605,-0.18757,-0.18473,-0.17904,-0.17975,-0.20392,-0.19539,-0.17762,-0.20677,-0.18473,-0.20108,-0.20534,-0.18402,0.20907,0.20907,0.20907,0.21191,0.20623,0.20765,0.20765,0.20765,0.20765,0.20907,0.20623,0.2048 0.17485,0.17264,0.13409,0.127,0.11105,0.17264,0.16909,0.17175,0.13808,0.099974,0.17618,0.17042,0.17264,0.12833,0.0951,-0.25758,0.17042,-0.26866,-0.26556,-0.25758,-0.266,-0.26954,-0.26556,-0.26644,-0.26733 0.24084,0.15294,0.19689,0.28479,0.28479,0.26281,0.15294,0.10899,0.087018,0.30676,0.04307,0.065044,-0.17667,-0.1547,-0.00087897,0.087018,-0.17667,-0.22062,-0.22062,-0.22062,-0.13272,-0.22062,-0.33049,-0.2426,-0.17667 -0.16644,-0.13386,0.14046,0.1352,0.17094,-0.18641,-0.12545,-0.10128,0.19931,0.17829,-0.18325,-0.16118,-0.10022,0.21718,0.38639,-0.21479,-0.1307,-0.10548,-0.11389,0.41687,-0.22845,-0.09497,-0.10128,-0.083408,0.38639 -0.39638,-0.39834,-0.39346,-0.39736,-0.39687,0.088677,0.10185,0.11259,0.1326,0.052078,0.089653,0.10917,0.12284,0.14577,0.059886,0.090629,0.11454,0.13992,0.061838,0.055982,0.11844,0.12479,0.12674,0.080381,0.05403 0.14321,0.16519,-0.065615,-0.10683,-0.11507,0.16519,0.18717,-0.027147,-0.087597,-0.1453,0.35204,0.18168,-0.057372,-0.11233,-0.15354,0.34929,0.18168,-0.13431,-0.13431,-0.16178,0.46469,-0.22773,-0.20575,-0.18377,-0.27169 -0.4027,0.11817,0.084973,0.095186,0.1054,-0.4027,0.090079,0.079866,0.090079,0.10285,-0.39249,0.12072,0.079866,0.095186,0.11561,-0.4027,0.13093,0.087526,0.097739,0.10029,-0.39504,0.11561,0.077313,0.10029,0.10795 -0.3144,-0.14467,0.24089,0.15917,0.062779,-0.29763,-0.14886,0.25346,0.15498,0.092115,-0.28506,-0.18029,0.25346,0.1466,0.062779,-0.28506,-0.19705,0.21155,0.1424,0.064874,-0.2662,-0.18867,0.24718,0.13821,0.077447 -0.11927,-0.11891,-0.12073,0.22852,0.38123,-0.11891,-0.11854,-0.11854,-0.12512,0.38744,-0.11854,-0.11854,-0.11818,-0.1295,0.3542,-0.11854,-0.11854,-0.11781,-0.12621,0.35237,-0.12037,-0.11818,-0.12512,0.10541,0.36041 0.4933,0.45469,0.11105,-0.097455,-0.10132,0.50874,0.24232,-0.11676,-0.12448,-0.085872,0.13035,-0.089733,-0.12448,-0.10518,-0.074288,-0.1129,-0.10132,-0.12448,-0.085872,-0.070427,-0.12062,-0.1129,-0.097455,-0.093594,-0.10132 -0.14279,-0.14238,-0.14238,-0.14238,-0.14445,-0.13782,-0.14155,-0.1403,-0.1403,-0.1403,-0.1316,-0.13491,-0.13367,-0.13243,-0.13367,0.29462,0.29172,0.29213,-0.12372,-0.12704,0.29213,0.29089,0.28965,0.28965,0.29089 0.11155,0.11175,0.11155,0.11155,0.11196,0.11319,0.11278,0.11257,0.11278,0.11278,0.25189,0.25066,0.24922,0.24881,0.24799,-0.23387,-0.23551,-0.23919,-0.23899,-0.23571,-0.23673,-0.23817,-0.23735,-0.23817,-0.23735 0.20988,0.20988,0.17402,0.19793,0.20988,-0.017211,0.20988,0.22183,0.19793,0.17402,-0.12478,-0.10088,0.078406,0.20988,0.15012,-0.30406,-0.2443,-0.17259,-0.041115,0.066454,-0.29211,-0.29211,-0.28016,-0.25625,-0.18454 -0.097804,-0.095919,-0.08367,-0.092621,-0.091208,-0.098746,-0.080372,-0.084141,-0.094035,-0.097333,-0.092621,-0.085555,-0.086026,-0.084141,-0.088852,0.098181,-0.087439,-0.085084,0.12174,-0.080372,0.87364,0.15848,0.14953,0.10713,0.097238 -0.30578,-0.30364,-0.015469,0.17816,0.17415,-0.30578,-0.020558,-0.014666,0.16638,0.17147,-0.30257,-0.016005,0.12969,0.15727,0.17227,-0.30525,0.13504,0.12406,0.15888,0.15781,-0.30444,-0.30471,0.14094,0.16316,0.16959 0.35711,0.35365,0.088831,0.085756,0.34904,0.097286,0.090368,0.087293,0.35941,0.35518,-0.14639,-0.14562,-0.14831,-0.14793,-0.14524,-0.1487,-0.1487,-0.14985,-0.14985,-0.14716,-0.14985,-0.14947,-0.14947,-0.1487,-0.1487 0.11397,0.11059,0.11659,-0.26166,-0.26391,0.11322,0.11172,0.1104,-0.26203,-0.26278,0.10909,0.10834,0.10834,0.10947,-0.38543,0.11359,0.11434,0.11622,0.11941,-0.38524,0.1586,0.15822,0.15804,0.15785,-0.38693 0.39146,0.35231,-0.13049,-0.15441,-0.17181,0.39146,0.30447,-0.13266,-0.16528,-0.15658,0.36318,-0.097864,-0.10874,-0.12614,-0.093515,0.26967,-0.10221,-0.097864,-0.10874,-0.089165,0.050019,-0.034796,-0.11091,-0.095689,-0.14571 0.31452,0.063907,0.25187,0.095235,0.2832,0.095235,0.12656,0.15789,0.095235,0.15789,0.03258,0.25187,0.12656,-0.061401,0.03258,-0.030074,-0.061401,-0.030074,-0.15538,-0.12406,-0.28069,-0.34335,-0.34335,-0.31202,-0.34335 0.097246,0.10496,-0.052387,-0.11101,-0.1326,0.083362,0.35795,-0.0601,-0.12952,-0.16191,0.36412,0.33326,-0.12952,-0.16345,-0.18042,0.32401,0.30241,-0.16037,-0.16037,-0.17579,0.26539,-0.11872,-0.16191,-0.165,-0.16962 0.56921,0.22043,0.22301,0.55888,0.21526,-0.056012,0.086084,0.0085774,-0.068929,-0.089598,-0.066346,-0.12577,-0.11027,-0.1361,-0.1206,-0.13093,-0.13093,-0.1361,-0.1206,-0.10252,-0.13093,-0.10768,-0.10768,-0.10252,-0.037927 0.12747,0.13212,0.51677,0.43911,0.56689,-0.053075,-0.12476,-0.13206,-0.059049,-0.052743,-0.11547,-0.11779,-0.12277,-0.054734,-0.054734,-0.04876,-0.051416,-0.12576,-0.12277,-0.049424,-0.053407,-0.054403,-0.12443,-0.1324,-0.1324 -0.068239,-0.069748,-0.065221,-0.067233,-0.068742,-0.062202,-0.069245,-0.063208,-0.064214,-0.067233,0.32115,-0.069245,-0.065724,-0.069245,-0.067233,0.32015,-0.071761,-0.062202,-0.069245,-0.065724,0.8338,-0.075785,-0.061699,-0.065724,-0.066227 -0.2262,-0.14304,-0.17868,-0.2262,-0.1668,-0.1668,-0.19056,-0.24996,-0.17868,-0.17868,0.070807,-0.024236,-0.024236,-0.047997,-0.13116,0.4391,0.15397,0.094568,0.11833,0.17773,0.48662,0.18961,0.094568,0.13021,0.17773 -0.27766,-0.31363,-0.20573,-0.20573,-0.2417,-0.31363,-0.025896,0.046037,-0.20573,-0.20573,-0.025896,-0.025896,-0.061862,0.046037,0.1899,0.15394,0.1899,-0.061862,0.11797,0.11797,0.1899,0.36974,0.22587,0.26184,0.26184 0.34336,-0.10655,-0.11213,-0.10878,-0.10265,0.34448,-0.10655,-0.11826,-0.11882,-0.10488,0.40135,0.35117,-0.11547,-0.12384,-0.11659,0.34838,-0.11269,-0.1099,-0.1138,-0.11715,0.34336,-0.11213,-0.11046,-0.11157,-0.1099 0.041324,0.06813,0.065896,0.14073,-0.38644,0.060311,0.10164,0.083766,0.090467,-0.43335,0.037974,0.08935,0.079298,0.092701,-0.34065,0.039091,0.10834,0.091584,0.083766,-0.3507,0.065896,0.36969,0.11839,0.07148,-0.38867 -0.39888,-0.39888,-0.39949,-0.4003,-0.40172,0.10015,0.10157,0.096695,0.10482,0.099334,0.10502,0.097507,0.10339,0.096898,0.096086,0.10055,0.098116,0.094055,0.096086,0.12085,0.094462,0.095274,0.095274,0.096492,0.10664 0.64515,-0.10457,-0.17302,-0.22192,-0.17302,0.21162,0.1399,-0.062194,-0.16976,-0.15672,0.3746,0.087749,-0.10457,-0.12087,-0.12087,0.25073,0.022557,-0.062194,-0.10457,-0.12413,0.21162,-0.045896,-0.055675,-0.068713,-0.075232 -0.063017,-0.063017,-0.063017,0.1455,0.53935,-0.063017,-0.063017,-0.063017,-0.016681,0.44668,-0.13252,-0.063017,-0.13252,-0.016681,0.44668,-0.13252,-0.13252,-0.13252,-0.063017,0.215,-0.20203,-0.13252,-0.20203,-0.13252,0.075991 -0.40057,0.10847,0.12873,0.11037,0.097072,-0.39804,0.11607,0.13696,0.1072,0.10784,-0.39867,0.1243,0.093907,0.093273,0.098339,-0.39614,0.090741,0.086942,0.09264,0.074279,-0.40057,0.085043,0.081877,0.090741,0.069214 -0.19572,0.10438,0.10438,0.10438,0.10438,-0.28705,0.026095,0.14352,0.14352,0.14352,-0.3001,-0.013048,0.065238,0.14352,0.10438,-0.49581,-0.013048,0.10438,0.22181,0.14352,-0.53495,-0.091334,0.10438,0.065238,0.10438 0.93043,0.0058314,0.00084256,-0.12942,-0.13053,0.016641,0.0063857,0.0013969,-0.12998,-0.12776,0.016086,0.0147,0.0036141,-0.12748,-0.13192,0.0058314,0.0052771,0.0030598,0.0083258,-0.12887,0.0019512,0.00028824,0.0038913,0.0077715,-0.12637 -0.090187,-0.090187,0.03648,0.061814,0.31515,-0.26752,-0.014187,0.03648,0.061814,0.34048,-0.24219,-0.24219,-0.064854,-0.090187,0.39115,-0.36885,0.03648,-0.014187,0.087147,0.26448,-0.21685,-0.11552,-0.064854,-0.090187,0.34048 -0.20655,-0.20619,-0.20677,0.19552,0.19321,-0.20677,-0.20669,0.19632,0.19646,0.19365,-0.20684,-0.20669,0.19473,0.193,0.193,-0.20972,-0.21023,-0.21023,0.19343,0.19473,-0.20994,-0.21081,0.17835,0.17987,0.19516 -0.2392,-0.26319,-0.30366,0.19854,0.19105,-0.20472,-0.22421,0.23602,0.18205,0.16856,-0.21222,-0.20772,0.14757,0.13858,0.18205,-0.21971,-0.18373,0.13858,0.18056,0.16706,-0.22421,-0.16275,0.1086,0.22403,0.18205 -0.1137,-0.10432,-0.080868,-0.13247,0.40697,-0.10901,-0.080868,-0.080868,-0.13247,0.42573,-0.09025,-0.057414,-0.09025,-0.14654,0.39759,-0.10432,-0.080868,-0.09494,-0.12308,0.36475,-0.099631,-0.062105,-0.10432,-0.099631,0.3929 0.38302,0.37425,0.33041,0.1638,0.10242,0.24272,0.23395,0.058575,-0.020343,-0.04665,0.18134,0.076113,-0.081725,-0.099262,-0.090493,0.014731,-0.16941,-0.18695,-0.15187,-0.17818,-0.20449,-0.27464,-0.24833,-0.23956,-0.16941 0.45558,-0.089746,-0.093636,-0.093344,-0.092663,0.45558,-0.092274,-0.093052,-0.092663,-0.091302,0.45578,-0.091885,-0.093441,-0.09208,-0.092469,0.45451,-0.092274,-0.092469,-0.091885,-0.09208,0.022665,-0.092274,-0.092274,-0.092274,-0.090038 -0.42962,-0.4432,-0.37531,-0.32099,-0.22595,-0.063004,0.018467,0.099937,-0.022269,-0.035847,0.23572,0.14067,0.12709,0.07278,0.018467,0.20856,0.18141,0.11352,0.099937,-0.022269,0.2493,0.18141,0.11352,0.032045,0.045624 -0.11922,-0.18196,-0.15059,0.06902,-0.18196,-0.21333,-0.15059,-0.056471,-0.087844,-0.18196,-0.21333,-0.24471,-0.18196,-0.18196,-0.056471,0.037647,-0.025098,0.19451,0.16314,0.32,0.16314,0.32,0.32,0.32,0.32 -0.31039,-0.43454,-0.31039,-0.21727,-0.37246,0.031039,-0.062077,-0.15519,-0.15519,-0.093116,0.062077,0.31039,0.093116,0.093116,0.093116,0.15519,0.12415,0.15519,0.062077,0.27935,0.21727,0.062077,0.093116,0.12415,0.15519 -0.20136,-0.20718,-0.21315,-0.21362,-0.21409,-0.19885,-0.20372,-0.20529,-0.21111,-0.20875,0.1953,0.19923,-0.20372,0.18917,-0.21598,0.20096,0.19735,0.1865,0.18477,0.18336,0.18949,0.20615,0.18729,0.1854,0.19184 -0.22449,-0.2237,-0.22569,-0.22529,-0.22688,-0.2229,-0.2241,-0.2241,-0.22688,-0.22529,0.11023,0.28814,0.021875,0.26307,0.096701,0.10387,0.11899,0.018293,0.28735,0.086353,0.10068,0.12217,0.034611,0.30406,0.29292 -0.11735,-0.11656,-0.11382,-0.1146,-0.11147,-0.11656,-0.11656,-0.11264,-0.11264,-0.10873,-0.11264,-0.11147,-0.11108,-0.10755,-0.10755,-0.11264,-0.11186,-0.11108,-0.10755,0.36813,0.33875,0.34502,0.34972,0.365,0.36774 -0.2246,-0.22754,0.18659,0.17727,0.16992,-0.2246,-0.22754,-0.23587,0.17972,0.16992,-0.21774,-0.22754,0.18659,0.17776,0.16992,-0.21774,-0.2197,0.18463,0.1758,0.16845,-0.24126,-0.21627,0.18708,0.17825,0.16845 0.21319,0.17864,-0.22163,-0.2383,-0.25498,0.19175,0.18579,-0.20852,-0.24903,-0.24426,0.16435,0.18818,0.18341,-0.22282,-0.20614,0.17745,0.17388,0.17864,-0.21805,-0.19899,0.15958,0.16792,0.18222,0.12623,-0.20852 -0.2,-0.21472,-0.04789,0.14838,0.15329,-0.15584,-0.19019,-0.15093,0.040432,0.21708,-0.12149,-0.11168,-0.13131,0.025711,0.44769,-0.11168,-0.10186,-0.12149,-0.042983,0.49185,-0.06261,-0.11168,-0.14112,0.089499,0.40353 -0.41057,-0.39491,-0.39752,-0.3923,-0.40361,0.092332,0.094942,0.10016,0.10712,0.10886,0.090592,0.094942,0.096682,0.10364,0.10712,0.094942,0.096682,0.10364,0.10538,0.10886,0.087112,0.093202,0.098422,0.10538,0.10886 -0.085527,-0.12625,0.0672,0.30138,0.32175,-0.1568,-0.18735,-0.065164,0.1792,0.36247,-0.16698,-0.20771,-0.065164,-0.0040727,0.42356,-0.1568,-0.20771,-0.12625,-0.095709,0.27084,-0.11607,-0.085527,-0.18735,-0.12625,0.24029 0.19411,0.17446,0.1693,0.18281,0.18158,0.19215,0.17323,0.19141,0.1978,0.23048,-0.20812,-0.1833,0.19289,0.22704,0.18257,-0.21082,-0.1919,-0.20591,-0.22065,-0.19411,-0.22237,-0.20198,-0.19657,-0.2263,-0.22778 -0.38433,0.066393,0.072597,0.069313,0.064568,-0.38615,0.044131,0.055444,0.040481,0.17844,-0.38944,0.04632,0.051065,0.059094,0.055444,-0.39272,0.081721,0.17552,0.17406,0.17552,-0.38944,0.087196,0.09048,0.17844,0.17588 0.1678,0.18053,-0.24546,-0.25152,-0.2497,0.17144,0.17932,0.17992,-0.24365,-0.2497,0.16053,0.1781,0.14356,-0.24243,-0.24728,0.16417,0.14841,0.15205,-0.22971,-0.24304,0.1569,0.14235,0.16296,0.15811,-0.24365 0.39218,0.10008,-0.14207,-0.20399,-0.15933,0.38827,0.097321,-0.14529,-0.15427,-0.20123,0.094329,0.38758,-0.14437,-0.15266,-0.19478,0.094789,0.38413,-0.015468,-0.14805,-0.15035,0.092257,0.091797,-0.015468,-0.14276,-0.15266 0.41034,-0.13795,-0.13901,-0.13497,-0.080337,0.24664,-0.13753,-0.13816,-0.1354,-0.13838,0.24175,0.24409,-0.13838,-0.13731,-0.13668,0.24303,0.24218,-0.13795,-0.13838,-0.1371,0.40928,0.24239,-0.13689,-0.1371,-0.13816 0.34075,-0.062163,-0.062163,-0.20606,-0.11972,0.31197,-0.033384,0.024175,-0.1485,-0.062163,0.19685,-0.1485,-0.0046047,-0.062163,-0.11972,0.51342,-0.0046047,-0.11972,-0.1485,-0.090943,0.48464,-0.090943,-0.17728,-0.17728,-0.033384 0.23589,0.19326,0.079579,0.19326,0.15063,0.19326,0.17905,0.051158,0.20747,0.093789,0.036947,-0.062526,0.051158,0.13642,0.065368,-0.24726,0.051158,0.065368,0.051158,0.022737,-0.38937,-0.34674,-0.34674,-0.36095,-0.3041 -0.19837,-0.19961,-0.19156,-0.18165,-0.18041,-0.1928,-0.19652,-0.19961,-0.18598,-0.1866,-0.20581,0.20561,0.20747,-0.1897,-0.18846,0.20623,0.20747,0.20685,0.20809,0.20747,0.20995,0.21243,0.21057,0.20809,0.20685 0.038356,-0.09863,-0.18425,-0.15,-0.18425,-0.030137,-0.15,-0.16712,-0.18425,-0.18425,-0.030137,-0.030137,-0.04726,-0.20137,-0.16712,0.1411,0.0041096,-0.013014,0.0041096,-0.064384,0.60342,0.29521,0.3637,0.26096,0.17534 -0.39783,-0.39927,-0.39999,-0.39783,-0.40107,0.1086,0.10176,0.080164,0.086283,0.1104,0.092042,0.075845,0.097441,0.10932,0.1104,0.074405,0.1068,0.10608,0.11328,0.1158,0.072966,0.10716,0.097441,0.114,0.1158 0.51643,0.42495,0.036136,-0.055348,-0.066784,0.3792,0.081879,-0.04963,-0.083937,-0.11824,0.32203,0.024701,-0.089655,-0.095373,-0.1697,0.16193,-0.021041,-0.12968,-0.16399,-0.15827,-0.04963,-0.15255,-0.17542,-0.18114,-0.18686 0.095427,-0.026395,-0.11268,-0.20913,-0.29288,0.12334,0.16649,0.11065,0.10812,-0.27511,0.18679,0.18679,0.12334,-0.23958,-0.25481,0.16395,0.20963,0.18933,-0.22943,-0.25989,0.20456,0.1335,0.33653,-0.18628,-0.25227 0.91487,0.01652,-0.0056616,-0.040518,-0.070093,0.037117,0.012295,-0.016224,-0.050553,-0.2523,0.045567,0.01071,-0.027315,-0.053721,-0.228,0.038701,0.012295,-0.024674,-0.057946,-0.086465,0.032364,-0.0040772,-0.032068,-0.068509,-0.10231 0.38939,-0.14484,-0.14799,-0.14589,-0.13697,0.31539,0.31959,-0.14431,-0.13959,-0.14799,0.33901,0.18735,-0.12437,-0.12752,-0.13382,0.3495,0.1821,-0.127,-0.12647,-0.11912,0.18997,-0.13277,-0.1291,-0.12805,-0.1165 0.25406,0.23669,0.21436,0.1573,0.19699,0.26646,0.22925,0.22925,0.14489,0.11264,0.12752,0.23669,-0.11313,-0.12554,-0.26696,-0.16276,-0.14043,-0.20245,-0.23222,-0.262,-0.095768,-0.18012,-0.14291,-0.23222,-0.24959 -0.24401,-0.061368,0.1578,0.12127,0.30392,-0.39012,-0.13442,-0.061368,0.23086,0.048218,-0.24401,-0.24401,0.011689,0.1578,0.37697,-0.17095,-0.097896,0.1578,0.011689,0.30392,-0.24401,-0.17095,-0.061368,0.19433,0.048218 0.18922,0.20141,0.20648,0.22933,0.11561,0.19252,0.20344,0.21207,0.21384,0.12069,0.18846,0.19836,0.20902,-0.20599,-0.2037,-0.20421,-0.20624,-0.20751,-0.20675,-0.21005,-0.20573,-0.20802,-0.20852,-0.20776,-0.20599 0.44865,0.44728,0.45127,0.066681,0.45589,-0.084113,-0.084742,-0.083588,-0.083903,-0.084008,-0.085582,-0.085792,-0.13826,-0.085582,-0.085582,-0.085896,-0.085582,-0.14162,-0.085267,-0.085162,-0.085582,-0.085582,-0.085792,-0.14256,-0.085582 0.18977,0.18836,0.18789,-0.060717,-0.061186,0.18789,0.18789,0.18789,0.18765,0.18601,0.18671,0.18742,0.18742,0.18601,0.18578,-0.23091,-0.22974,-0.23068,-0.23044,-0.22974,-0.23303,-0.23256,-0.23232,-0.23303,-0.23232 0.13411,0.13197,-0.18466,-0.18509,-0.17675,0.1309,0.25619,0.12877,0.1277,-0.17974,0.25683,0.25533,-0.19236,-0.19193,-0.19,0.25448,0.25512,-0.19214,-0.19129,-0.19022,0.25533,0.25362,-0.19236,-0.19,-0.1838 -0.13024,-0.13024,-0.28528,-0.28528,-0.25427,0.086824,-0.3473,-0.099228,-0.099228,-0.19225,0.055816,-0.099228,-0.068219,-0.099228,-0.13024,0.3659,0.14884,0.24187,0.024807,0.14884,0.27288,0.24187,0.24187,0.24187,0.14884 -0.21427,-0.2114,-0.20281,0.41307,0.28703,-0.22573,-0.2114,-0.18276,0.15812,0.29276,-0.19422,-0.19995,-0.18849,0.15812,0.15239,-0.18562,-0.10542,0.01776,0.15526,0.18677,-0.19422,0.037812,0.13807,0.15526,0.16385 -0.20319,-0.14162,0.21902,0.40374,0.34216,-0.18999,-0.15481,0.016712,0.34216,0.29379,-0.19439,-0.1768,-0.093237,0.16185,0.15745,-0.19879,-0.19439,-0.10203,0.038702,0.13106,-0.20759,-0.168,-0.1768,-0.0008796,0.095876 0.11998,0.12225,0.015372,-0.25524,-0.28253,0.12453,0.1268,0.17001,-0.25524,-0.30527,0.12225,0.11998,0.16773,-0.20976,-0.3462,0.1268,0.11998,0.16091,0.20866,-0.29617,0.1268,0.1268,0.17228,0.15409,-0.33483 0.16275,0.16252,0.16252,0.16308,-0.25498,0.16275,0.16286,0.16263,-0.22817,-0.25464,0.16196,0.16218,0.16218,-0.24045,-0.25723,0.16376,0.16455,-0.22997,-0.22963,-0.25892,0.16489,0.16432,0.16466,-0.23673,-0.2569 -0.19061,-0.19276,0.2073,0.21089,0.21664,-0.19061,-0.18917,-0.19851,0.21161,0.20011,-0.19061,-0.18989,-0.19528,0.20442,0.20766,-0.18953,-0.19168,-0.19133,0.19867,0.22168,-0.19168,-0.19528,0.21161,0.19184,0.21449 -0.18138,-0.18161,-0.1815,-0.18161,-0.18228,-0.17981,-0.18048,-0.18071,-0.1806,-0.18093,0.035106,0.034207,0.034544,-0.17891,-0.18003,0.033419,0.034656,0.035556,0.37418,0.37474,0.18052,0.18513,0.18749,0.33066,0.32964 0.057399,-0.023646,-0.0451,-0.12138,-0.14045,0.028795,0.0097255,-0.061785,-0.076088,-0.10231,-0.014111,-0.0045767,-0.030797,-0.083239,-0.14998,0.0073418,-0.0093441,0.014493,-0.049867,-0.18097,0.88931,-0.011728,-0.002193,0.24571,-0.14521 0.23238,0.10256,0.070103,-0.092173,-0.579,0.10256,0.10256,0.10256,0.037648,-0.2869,0.037648,0.19992,-0.059718,-0.059718,-0.2869,0.26483,0.10256,0.13501,0.037648,-0.38427,0.23238,0.13501,0.037648,-0.059718,-0.12463 -0.11254,-0.10118,-0.10392,0.15157,0.27579,-0.11019,-0.11528,-0.11254,0.1598,0.28676,-0.11372,-0.129,-0.13018,-0.13331,0.41216,-0.11254,-0.12391,-0.13449,-0.13213,0.42391,-0.059641,-0.13958,-0.13723,-0.13684,0.42822 0.28274,0.28517,0.2876,0.2876,0.2876,-0.098488,-0.12641,0.29974,0.29488,0.29731,-0.13248,-0.11063,-0.098488,-0.11913,-0.11548,-0.13977,-0.13734,-0.15312,-0.16041,-0.13855,-0.14341,-0.15555,-0.16283,-0.16041,-0.17012 -0.19213,-0.19322,-0.19788,0.21412,0.21467,-0.19185,-0.19322,0.21165,0.21193,0.21083,-0.19158,-0.19185,0.20836,0.20836,0.20727,-0.19075,-0.19103,-0.1924,0.20398,0.20425,-0.18938,-0.19075,-0.19158,0.20206,0.20014 0.15828,0.14808,-0.27005,-0.30065,-0.34144,0.15828,0.14808,-0.020193,-0.29555,-0.32105,0.18377,0.16338,0.097089,-0.19357,-0.32614,0.18887,0.15828,0.13788,0.08689,-0.19357,0.18887,0.16338,0.15828,0.091989,0.030799 -0.19563,-0.20662,0.28411,0.14861,0.15044,-0.21943,-0.18464,0.21636,0.10283,0.19805,-0.21211,-0.18281,0.16875,0.16875,0.18706,-0.23225,-0.23591,-0.18098,0.20354,0.20903,-0.21577,-0.23408,-0.16084,0.21086,0.2127 0.080252,-0.11505,-0.16832,-0.22158,-0.25709,0.15127,0.026987,-0.097297,-0.20383,-0.36362,0.16903,0.080252,-0.0085223,-0.13281,-0.27485,0.39984,0.20454,0.080252,-0.026277,-0.16832,0.38208,0.27556,0.20454,0.0092325,-0.026277 0.0023208,0.060341,0.2717,0.27087,0.27087,0.010333,0.065867,0.27225,0.27115,0.26977,0.0083991,0.00066309,-0.0037575,0.27419,0.10869,-0.21374,-0.21484,-0.21733,-0.21263,-0.21374,-0.21567,-0.2165,-0.2165,-0.21622,-0.2165 -0.20109,-0.20697,-0.20278,-0.20968,-0.22702,-0.20579,-0.20476,-0.2055,-0.20902,-0.21064,0.18177,-0.20395,0.18787,0.19639,-0.20946,0.17869,0.18647,0.1936,0.19845,0.19235,0.19896,0.19184,0.19969,0.2008,0.18978 0.090704,0.046712,0.044712,0.016717,-0.21524,0.1107,0.074707,0.068708,-0.0072787,-0.18325,0.14269,0.088704,0.096703,0.030714,-0.16125,0.15469,0.1227,0.1287,0.034714,-0.60917,0.18069,0.15269,0.14669,0.0047192,-0.56118 -0.1694,-0.20342,-0.27145,-0.23743,-0.1694,-0.20342,-0.1694,-0.18641,-0.11838,-0.016328,-0.13538,-0.08436,-0.016328,0.00068032,0.08572,-0.067352,0.068712,0.11974,0.11974,0.18777,0.15375,0.17076,0.22178,0.35785,0.56194 -0.15246,-0.15522,-0.17805,0.28474,0.29217,-0.14641,-0.14751,-0.17035,0.28117,0.28584,-0.10431,-0.094133,-0.16815,0.28144,0.29217,-0.1167,-0.10569,-0.16485,-0.087255,0.2974,-0.11725,-0.15219,-0.16182,-0.091657,0.29905 -0.26732,-0.17821,-0.20792,-0.25247,-0.20792,-0.19306,-0.13366,-0.17821,-0.22277,-0.13366,0.089107,0.044553,0,-0.059404,0,0.029702,0.074256,0.13366,0.17821,0.22277,0.23762,0.13366,0.17821,0.11881,0.59404 0.10164,-0.0013411,-0.030079,-0.044448,-0.02529,0.15911,-0.0205,-0.13066,-0.10432,0.0082382,0.14953,0.017818,-0.13066,-0.12348,-0.13066,0.14714,-0.0013411,-0.10911,-0.12587,-0.13545,0.87278,-0.077976,-0.10671,-0.058817,-0.09953 -0.20747,-0.20774,0.1841,0.18455,0.18609,-0.20765,-0.20865,-0.20856,0.18501,0.18464,-0.20856,-0.20856,-0.20883,0.19127,0.19926,-0.20847,-0.20811,0.19517,0.19644,0.19962,-0.20838,-0.20638,0.19481,0.19662,0.1998 -0.11941,-0.095794,-0.086347,-0.02494,-0.02494,-0.086347,-0.076899,-0.034387,-0.02494,-0.020217,-0.039111,-0.020217,-0.02494,-0.020217,-0.039111,0.003401,-0.020217,-0.02494,-0.048558,-0.09107,-0.0060461,-0.029664,-0.0060461,-0.0060461,0.96701 -0.27448,-0.3363,-0.27448,-0.36721,-0.27448,-0.027201,-0.058111,0.034619,-0.058111,-0.027201,-0.15084,0.0037092,0.0037092,0.0037092,-0.027201,0.034619,0.034619,0.034619,0.15826,0.18917,0.43645,0.18917,0.15826,0.2819,0.31281 -0.18972,-0.22288,-0.15655,-0.18972,-0.12338,0.075621,-0.057048,-0.057048,-0.02388,-0.12338,-0.15655,-0.057048,-0.057048,-0.090215,-0.02388,0.0092868,-0.057048,-0.15655,-0.12338,0.042454,0.53996,0.47363,0.37413,0.24146,0.10879 0.49149,-0.10879,-0.11045,-0.11003,-0.11003,0.32804,-0.11003,-0.11211,-0.11335,-0.10837,0.32555,0.32057,-0.11211,-0.11335,-0.10962,0.32306,-0.11335,-0.11045,-0.11335,-0.11169,0.3214,-0.10879,-0.11128,-0.11418,-0.10879 0.19792,0.19602,0.19792,0.19792,0.19792,0.1859,0.18969,0.19412,0.18969,0.19412,0.1802,-0.18299,0.18716,-0.20766,0.18779,-0.20513,-0.21842,-0.20893,-0.21905,-0.2064,-0.20766,-0.21399,-0.20829,-0.20956,-0.20829 -0.3728,-0.036245,0.0932,0.35209,0.11909,-0.24336,-0.088023,-0.062134,0.24853,0.0932,-0.34691,-0.088023,0.041422,0.24853,0.14498,-0.19158,-0.19158,0.041422,0.19676,0.067311,-0.3728,-0.1398,0.11909,0.19676,0.17087 -0.15058,-0.11638,-0.11112,-0.1006,0.015152,-0.11901,-0.11375,-0.1006,-0.095334,-0.090073,-0.07955,-0.069028,-0.07955,-0.058505,-0.034829,-0.013784,-0.058505,-0.042721,0.096702,0.065134,0.04672,0.04672,0.10196,0.1651,0.89641 0.19353,0.19665,0.19275,-0.1611,-0.16304,0.19782,0.22935,-0.16499,-0.1611,-0.16304,0.25076,0.31616,-0.15721,-0.16071,-0.16227,0.26321,0.28618,-0.15721,-0.15993,-0.16188,0.29825,-0.16343,-0.15915,-0.16304,-0.16655 0.10598,0.29922,0.29806,-0.15875,-0.17845,0.29613,0.29729,-0.15179,-0.16222,-0.17884,0.29188,0.29613,-0.15565,-0.17845,-0.17652,0.12917,0.13149,-0.15759,-0.18039,-0.17845,0.11449,0.10908,-0.15836,-0.18348,-0.16995 -0.15335,-0.37333,0.003771,0.25517,0.22374,0.003771,-0.18478,-0.18478,0.12947,0.22374,-0.090503,-0.27905,0.003771,0.12947,0.22374,-0.18478,-0.18478,-0.090503,0.25517,0.25517,-0.18478,-0.27905,0.003771,0.25517,0.22374 -0.069639,-0.062246,-0.10291,-0.16574,-0.080728,-0.040068,0.10039,-0.073335,-0.11769,-0.12508,0.14844,0.16323,-0.073335,-0.11399,-0.13987,0.13366,0.10039,0.033858,-0.054853,-0.13248,0.86184,-0.021587,0.0042877,-0.032676,-0.13987 -0.21864,-0.23837,0.14518,0.10792,0.11449,-0.29535,-0.23837,0.18682,0.12326,0.10573,-0.24933,-0.19453,0.18901,0.44105,0.10354,-0.2822,-0.0981,0.10573,0.16929,0.13641,-0.25809,-0.21426,0.12764,0.11449,0.11669 0.42241,0.087841,0.08373,-0.2308,-0.25238,0.43783,0.081674,0.081674,-0.22874,-0.2529,0.099662,0.086814,0.080646,-0.22514,-0.24313,0.10172,0.08373,0.079618,-0.2236,-0.24313,0.10275,0.08116,0.08373,0.14386,-0.23902 -0.13987,-0.11471,0.061382,0.26263,0.41357,-0.11471,-0.16503,-0.11471,0.18716,0.36326,-0.11471,-0.16503,-0.16503,0.061382,0.3381,-0.13987,-0.064401,-0.13987,-0.11471,0.31295,-0.11471,-0.2405,-0.13987,-0.16503,0.21232 0.22474,0.22402,-0.1763,-0.17821,-0.17833,0.2233,0.22222,-0.17726,0.23157,-0.17761,0.22773,0.2227,-0.1763,-0.17809,-0.17773,0.22558,0.22737,-0.1763,-0.17761,-0.17761,0.22366,0.22893,-0.1763,-0.17654,-0.17761 0.36881,0.36881,-0.10603,-0.086444,-0.2651,0.35549,0.2262,0.19486,-0.048049,-0.27763,0.11415,0.054599,0.092211,0.0036671,-0.2745,0.083591,0.042062,-0.022974,-0.2651,-0.25883,0.064002,0.054599,-0.00025074,-0.1695,-0.24864 0.19325,0.32174,0.19325,0.21895,0.11616,0.19325,0.29604,0.11616,0.11616,-0.012335,0.19325,0.039061,0.14185,-0.038033,-0.11513,-0.012335,-0.11513,-0.038033,-0.19222,-0.19222,-0.19222,-0.19222,-0.26932,-0.34641,-0.42351 0.16172,0.10633,0.14095,0.1271,0.10633,0.15479,0.12018,0.12018,0.099412,0.099412,0.16864,0.1271,0.057875,0.099412,0.099412,0.030183,-0.039045,0.1271,-0.0044306,-0.12212,-0.37134,-0.19827,-0.19135,-0.44749,-0.5721 0.17868,0.17598,0.019433,-0.1614,-0.14791,0.17868,0.18408,-0.083132,-0.20999,-0.22078,0.18678,0.18678,-0.20729,-0.28016,-0.28286,0.18678,0.17058,0.18138,-0.26937,-0.27477,0.19487,0.18948,0.19757,0.16518,-0.25857 -0.24002,-0.53404,-0.49394,-0.19993,-0.15984,0.053992,-0.10638,-0.01283,-0.093016,-0.066287,0.08072,0.027263,0.013899,0.00053457,0.013899,0.17427,0.16091,0.13418,0.13418,0.10745,0.21436,0.25446,0.17427,0.21436,0.14754 -0.15146,-0.047809,0.24047,0.23399,0.25019,-0.2292,-0.19357,0.094711,0.22104,0.22751,-0.23892,-0.2292,-0.20976,0.19512,0.23399,-0.23892,-0.2292,-0.19681,-0.064005,0.23723,-0.17737,-0.10935,-0.060766,0.22428,0.2178 0.50717,0.14536,0.14432,0.15059,0.15164,0.15164,0.1485,0.14502,0.14606,0.081229,0.15059,0.1485,0.15373,0.086109,-0.20355,-0.21017,-0.21191,-0.21052,-0.21087,-0.21052,-0.20877,-0.20947,-0.20947,-0.21226,-0.21296 -0.090295,-0.153,-0.19245,-0.17343,-0.16145,-0.12552,-0.18682,-0.14032,-0.12623,-0.079022,-0.086068,-0.086772,-0.122,-0.13327,-0.079022,-0.086772,-0.092409,-0.093113,0.28875,0.26621,0.36203,0.35357,0.33596,0.30778,0.29368 0.11452,0.19879,0.20301,0.22407,0.23566,0.17667,0.13243,0.19774,0.22197,0.23145,0.19353,0.10399,-0.17516,0.22829,-0.19201,-0.24152,-0.1741,-0.21097,-0.20886,-0.2036,-0.22466,-0.19201,-0.21308,-0.20992,-0.21624 0.32109,-0.10974,-0.11338,-0.12902,-0.13932,0.32169,0.30775,-0.1061,-0.12962,-0.13714,0.3229,-0.11908,-0.11992,-0.12914,-0.13835,0.32666,-0.095437,-0.12077,-0.1278,-0.14077,0.3286,0.31284,-0.1198,-0.12732,-0.13883 0.93512,-0.0064437,-0.0078325,-0.0060966,-0.0067909,-0.0047078,-0.0078325,-0.0074853,-0.0081797,-0.0078325,-0.0074853,-0.008874,-0.0067909,-0.0064437,-0.16059,-0.0081797,-0.0095684,-0.0067909,-0.15053,-0.15851,-0.010957,-0.0099156,-0.0085268,-0.15851,-0.16025 -0.084717,-0.1311,-0.0074205,0.19355,0.58004,-0.17747,-0.17747,-0.084717,0.1008,0.37906,-0.1311,-0.084717,-0.14655,-0.0074205,0.37906,-0.17747,-0.1311,-0.1311,-0.053799,0.23993,-0.084717,-0.1311,-0.1311,-0.10018,0.1008 -0.26122,-0.26141,-0.26122,-0.26141,-0.26141,0.23963,-0.26223,-0.2611,-0.26173,-0.26116,0.18654,0.18629,0.14153,0.102,0.071292,0.18629,0.18553,0.15578,0.1071,0.070851,0.18598,0.18528,0.15464,0.11795,0.07621 -0.18837,-0.1807,-0.1945,-0.19756,-0.19297,-0.19297,-0.20216,-0.20676,-0.19143,-0.18377,-0.2037,-0.17304,0.21786,-0.18683,0.1964,0.23012,0.21633,0.2056,0.20406,0.19487,0.22093,0.20866,0.2102,0.19487,0.19487 0.36402,-0.11528,-0.11041,-0.11275,-0.11333,0.37921,-0.11587,-0.10983,-0.11197,-0.11314,0.35564,0.34902,-0.11061,-0.11217,-0.11509,0.34824,-0.11236,-0.11139,-0.11197,-0.11333,0.33812,-0.11314,-0.10924,-0.11119,-0.11119 -0.20284,-0.20369,-0.20352,-0.2042,-0.20454,-0.2025,-0.20352,-0.20335,-0.20335,-0.20403,0.065819,0.17022,0.23263,-0.20216,-0.20352,0.066159,0.17022,0.23331,0.23314,0.23263,0.17073,0.17039,0.23263,0.23297,0.23042 -0.23648,-0.24789,-0.25204,-0.2593,-0.25411,-0.23959,-0.24581,-0.24478,-0.25204,0.10677,0.15551,0.16173,0.20736,-0.20537,0.14099,0.15966,0.16795,0.19492,0.15136,0.15758,0.1887,0.17418,0.15966,0.15551,0.15551 -0.15545,-0.1459,-0.054047,-0.065181,0.36745,-0.15545,-0.14829,-0.13477,0.28236,0.27917,-0.15385,-0.15823,-0.13477,0.27599,0.2756,-0.1467,-0.14789,-0.13119,0.27599,0.2756,-0.14829,-0.14829,-0.14073,-0.13835,0.2752 0.40194,0.1387,-0.17586,-0.18979,-0.17146,0.39974,0.38287,-0.18833,-0.18319,-0.17586,0.35721,0.16143,-0.148,-0.148,-0.15606,0.028714,0.15263,-0.10474,-0.10987,-0.12527,0.038246,0.025781,0.027981,-0.10474,-0.13407 0.30713,0.033445,0.30999,0.30505,0.023568,0.30687,0.30817,0.30921,0.30635,0.024088,-0.12588,-0.12822,-0.129,-0.13056,-0.1316,-0.15733,-0.15655,-0.15733,-0.15837,-0.15837,-0.15837,-0.15993,-0.15967,-0.16097,-0.16175 -0.128,-0.10517,-0.12419,-0.05951,-0.074729,-0.10897,-0.093754,-0.11278,-0.02907,0.088884,-0.082339,-0.093754,-0.10136,-0.040485,0.058444,-0.074729,-0.0519,-0.067119,0.0051747,0.13835,-0.10517,0.081274,0.096494,0.085079,0.89934 0.19509,0.19551,0.19551,0.19509,0.19593,0.19256,0.19256,0.19151,0.19067,0.19151,-0.20714,-0.20819,0.18772,0.18772,0.18646,-0.20819,-0.20819,-0.20671,-0.20798,-0.20777,-0.20945,-0.20861,-0.20924,-0.20861,-0.20777 -0.32812,-0.2259,-0.14924,0.0040887,0.055197,-0.17479,-0.17479,-0.14924,0.0040887,0.18297,-0.30256,-0.12368,-0.021465,0.18297,0.20852,-0.17479,-0.14924,0.055197,0.20852,0.33629,-0.12368,-0.021465,0.15741,0.36185,0.36185 0.58225,-0.10627,-0.12619,-0.12287,-0.10848,0.54018,-0.086341,-0.11401,-0.12398,-0.13394,0.4151,-0.0033208,-0.050919,-0.1273,-0.10959,0.078592,-0.0099624,-0.024352,-0.10848,-0.10405,0.08302,-0.016604,-0.016604,-0.095196,-0.11069 0.089269,0.14613,0.14613,0.089269,-0.45089,0.060839,0.14613,0.10348,0.060839,-0.57883,0.1177,0.075054,0.1177,0.018195,-0.42246,0.0039801,0.14613,0.13191,0.046624,-0.28032,0.060839,0.075054,0.089269,0.089269,-0.081308 0.32301,0.32301,0.32301,0.13226,0.32301,0.13226,0.036879,0.13226,0.036879,0.036879,0.036879,0.036879,-0.058498,-0.058498,0.13226,-0.058498,-0.18567,-0.058498,-0.058498,-0.058498,-0.18567,-0.28104,-0.31284,-0.37642,-0.31284 0.25187,0.24064,0.2289,-0.15189,-0.15189,0.25187,0.2386,-0.1672,-0.14729,-0.15036,0.25085,0.23962,-0.17026,-0.17231,-0.15036,0.25187,0.24269,-0.17537,-0.17486,-0.15189,0.24983,-0.16924,-0.17282,-0.17435,-0.16669 -0.20156,-0.14542,-0.38403,-0.48228,-0.53843,-0.033125,0.0089832,0.0089832,-0.047162,-0.019089,0.10724,0.12127,-0.005053,0.051092,0.12127,0.079164,0.10724,0.16338,0.10724,0.13531,0.16338,0.12127,0.17742,0.20549,0.17742 -0.12878,-0.1907,-0.24184,-0.30376,-0.30914,-0.007645,-0.058791,-0.12878,-0.19877,-0.23646,0.18079,0.062345,0.0031226,-0.064175,-0.15032,0.29654,0.21848,0.062345,0.046193,-0.0022612,0.42845,0.36922,0.22924,0.062345,0.062345 -0.021696,0.2752,-0.13589,-0.13018,-0.27863,0.14959,0.32088,-0.084501,-0.31859,-0.11876,0.33229,0.26378,-0.17585,-0.1416,-0.12447,0.28091,0.13817,-0.09592,-0.17585,-0.14731,0.10962,0.30375,0.075366,-0.17585,-0.12447 0.15323,0.13356,0.12409,-0.27234,-0.30367,0.10951,0.092023,0.071618,-0.26651,-0.30149,0.089836,0.075262,0.069432,0.069432,-0.29201,0.22173,0.22392,0.086922,-0.26213,-0.29201,0.18748,0.1904,0.1853,0.18748,-0.28108 0.4508,0.086935,0.44945,0.45318,0.45046,-0.084817,-0.090248,-0.092963,-0.093981,-0.096357,-0.094321,-0.09466,-0.094321,-0.092624,-0.095339,-0.095679,-0.094321,-0.095679,-0.095339,-0.096357,-0.095,-0.095339,-0.097376,-0.097376,-0.098733 -0.26172,-0.26994,-0.31291,-0.32239,-0.33313,0.13261,0.12249,-0.23645,-0.31923,-0.23581,0.1345,0.10733,0.087106,0.080155,0.087738,0.17747,0.10227,0.082051,0.14651,0.16231,0.16041,0.19517,0.18379,0.16041,0.16926 -0.25483,-0.25255,-0.25628,-0.022948,0.17513,-0.25732,-0.25276,-0.034148,0.1799,0.17762,-0.25856,-0.2513,-0.034563,0.18073,0.18093,-0.25607,-0.026474,0.18114,0.18114,0.30061,-0.036222,-0.030829,0.17948,0.18612,0.30206 0.5279,0.34226,-0.090955,-0.089852,-0.085912,0.5279,0.17821,-0.092846,-0.086542,-0.088433,0.33296,-0.096155,-0.092846,-0.097731,-0.089221,-0.097889,-0.09647,-0.098362,-0.10372,-0.1034,-0.098046,-0.096628,-0.097731,-0.10214,-0.10435 0.16232,0.16468,-0.27604,-0.28076,-0.29138,0.16645,0.16881,0.1576,-0.28135,-0.28607,0.17058,0.16645,0.15937,-0.2725,-0.2843,0.16291,0.16173,0.16645,-0.006419,-0.26129,0.15819,0.15701,0.16645,-0.021168,-0.027658 0.20229,0.20893,0.18607,0.18979,0.14114,0.20016,0.21664,0.18527,0.1874,0.13715,0.22435,0.21478,0.19351,-0.20368,-0.21112,-0.20421,-0.20581,-0.21325,-0.20767,-0.2066,-0.20607,-0.20607,-0.2074,-0.20767,-0.20793 -0.31923,-0.31505,0.028306,0.10786,0.22929,-0.31714,-0.28783,0.086927,0.12671,0.22929,-0.31505,0.099489,0.072272,0.16439,0.18323,-0.31714,0.08274,0.078552,0.084833,0.15811,-0.31505,0.078552,0.10996,0.11624,0.14974 -0.13007,-0.13007,-0.0041959,-0.0041959,0.39442,-0.13007,-0.0041959,-0.13007,-0.067135,0.37344,-0.067135,-0.13007,-0.13007,-0.067135,0.52029,-0.067135,-0.13007,-0.21399,-0.067135,0.3105,-0.21399,-0.13007,-0.067135,-0.0041959,0.28952 -0.4002,-0.39949,-0.39949,-0.39949,-0.4002,0.11304,0.10803,0.10534,0.096926,0.091553,0.11645,0.11072,0.10266,0.096209,0.089583,0.097463,0.10122,0.096389,0.10337,0.093344,0.10122,0.099433,0.092986,0.091732,0.091195 0.77794,0.25487,-0.030433,-0.070059,-0.062134,0.41338,0.032969,-0.046283,-0.10176,-0.093834,0.12015,-0.054208,-0.062134,-0.10968,-0.070059,-0.054208,-0.10176,-0.077984,-0.077984,-0.13346,-0.046283,-0.085909,-0.10968,-0.077984,-0.13346 0.95127,-0.039374,-0.089852,-0.014134,0.074204,-0.026754,-0.064613,-0.020444,0.0047955,-0.0078242,-0.058303,0.017415,0.023725,0.0047955,-0.033064,-0.064613,-0.051993,-0.033064,-0.083543,-0.070923,-0.070923,-0.070923,-0.026754,-0.064613,-0.1845 -0.20774,-0.21013,-0.20672,-0.20877,-0.20911,-0.20843,-0.20535,-0.20877,-0.21013,-0.20945,0.20305,-0.2057,-0.20706,0.19247,0.18735,0.19725,0.19861,0.19418,0.18872,0.18224,0.19657,0.19588,0.19281,0.18462,0.1836 -0.038243,-0.078927,-0.099269,-0.038243,-0.038243,-0.038243,-0.099269,-0.099269,-0.099269,-0.058585,-0.1603,-0.099269,-0.058585,-0.11961,-0.099269,-0.18064,-0.18064,-0.18064,-0.099269,-0.058585,0.30757,0.30757,0.42962,0.51099,0.3686 0.19389,0.19367,0.19307,0.1921,0.19375,0.19158,0.19173,0.19255,0.1921,0.19143,-0.20622,-0.20577,0.1921,0.19024,0.18957,-0.20622,-0.20637,-0.20577,-0.20696,-0.20853,-0.20644,-0.20696,-0.20823,-0.21308,-0.21726 -0.093032,-0.096676,-0.10275,-0.10761,-0.11611,-0.0055868,-0.014088,-0.03595,-0.096676,-0.093032,-0.0031578,0.00048581,-0.0055868,-0.0055868,-0.078458,-0.0031578,-0.0031578,-0.00072871,-0.0055868,-0.057811,-0.010445,-0.0080159,-0.014088,-0.00072871,0.95753 -0.19174,-0.1919,-0.19023,-0.19073,-0.19123,-0.19274,-0.19224,-0.19174,-0.1919,-0.1929,-0.19257,-0.19224,-0.19357,0.21442,0.21626,0.20741,0.2064,0.21626,0.22044,0.18318,0.21041,0.20808,0.21927,0.21209,0.18151 -0.15529,-0.20997,-0.082383,-0.10061,0.35505,-0.082383,-0.13706,-0.082383,-0.0094777,0.30037,-0.027704,-0.20997,-0.13706,-0.0094777,0.44618,-0.064157,-0.19174,-0.082383,-0.027704,0.42795,-0.064157,-0.15529,-0.064157,-0.0094777,0.37328 0.32022,0.31931,-0.1215,-0.12391,-0.12782,0.32202,0.31841,-0.1209,-0.12301,-0.12602,0.32082,-0.1221,-0.1212,-0.1203,-0.12692,0.32142,-0.12602,-0.12632,-0.12301,-0.12812,0.32262,-0.12752,-0.12752,-0.12903,-0.12361 -0.26752,-0.23171,0.12238,0.22582,0.21787,-0.28343,-0.25161,-0.1601,0.21389,0.21389,-0.29537,-0.29537,-0.12031,0.17012,0.18206,-0.23569,0.022917,0.12238,0.17012,0.15421,-0.21978,0.090553,0.1383,0.15421,0.16217 0.13548,0.1267,0.13052,-0.29495,-0.29037,0.13815,0.13052,0.13242,-0.28693,-0.29838,0.14196,0.14006,0.13471,0.13166,-0.29037,0.1412,0.14196,0.14463,-0.29037,-0.29113,0.14158,0.14273,0.14273,0.13471,-0.28922 0.08237,0.0064458,0.00024792,0.00024792,-0.37008,0.19703,0.076172,0.042084,0.026589,-0.33599,0.20323,0.18309,0.08237,0.057578,-0.36233,-0.11751,0.19238,0.1366,-0.058632,-0.37937,0.13195,0.20013,0.18773,0.18618,-0.36853 -0.14974,-0.15007,-0.15307,0.25609,0.35846,-0.15141,-0.15007,-0.15207,0.25375,0.25242,-0.14941,-0.15074,-0.14707,-0.14907,0.25375,-0.14807,-0.15007,-0.14407,0.25409,0.25309,-0.14807,-0.15007,-0.14507,0.25275,0.25375 0.83704,0.062278,-0.040133,-0.028259,-0.010449,0.34131,-0.013417,-0.060912,-0.031228,-0.093565,0.15281,-0.11731,-0.0059962,0.0073617,-0.066849,-0.1277,-0.15145,-0.089112,0.060794,-0.059428,-0.13661,-0.1277,-0.13215,-0.08466,-0.08466 0.96782,-0.081575,-0.081257,-0.078397,-0.070452,-0.024369,-0.080304,-0.084435,-0.07935,-0.070769,-0.018331,-0.012928,-0.030726,0.025208,0.015992,-0.012928,-0.036764,-0.03295,-0.011339,-0.015153,-0.057739,-0.048841,-0.038035,-0.028501,-0.013882 -0.20524,-0.20617,-0.20571,-0.2094,-0.20986,-0.20894,-0.20524,-0.2094,-0.21032,-0.20617,0.20539,0.20908,0.216,-0.2034,-0.20894,0.2077,0.20724,0.21693,0.16986,0.15787,0.20954,0.20724,0.16525,0.15833,0.15833 -0.28257,-0.28425,0.16774,0.17205,0.052167,-0.28257,0.037878,0.039664,0.17036,0.12918,-0.28289,0.010141,0.16721,0.17015,0.17509,-0.28331,-0.2853,0.16585,0.16942,0.13212,-0.28373,-0.28352,0.16585,0.169,0.17425 -0.21239,-0.21552,-0.20613,-0.20378,-0.19595,-0.21317,-0.21161,-0.21083,-0.203,-0.19517,-0.21396,-0.17639,0.23218,0.1453,0.13904,0.24627,0.23218,0.24157,0.12964,0.13434,0.23531,0.23218,0.21339,0.1406,0.13591 0.56385,0.011766,-0.033487,-0.056114,-0.11494,0.54575,-0.0018101,-0.06969,-0.083266,-0.12399,0.44619,-0.024437,-0.092316,-0.083266,-0.14209,0.070595,-0.033487,-0.074215,-0.096842,-0.16472,-0.0063354,-0.033487,-0.11947,-0.13304,-0.15115 -0.057167,-0.1671,-0.084651,-0.24956,-0.19459,-0.057167,-0.0021987,-0.057167,-0.057167,-0.1671,-0.1671,-0.13962,-0.057167,-0.1671,-0.1671,0.13522,0.05277,0.13522,-0.084651,-0.13962,0.46503,0.46503,0.3551,0.27264,0.13522 0.30293,-0.11467,-0.12482,-0.094366,-0.12409,0.31381,-0.061016,-0.12409,-0.13134,-0.13932,0.30946,0.32613,-0.11829,-0.12409,-0.14512,0.34716,-0.12844,-0.13134,-0.13787,-0.14004,0.34136,0.29423,-0.12627,-0.13569,-0.13424 -0.19064,-0.19288,0.21044,0.2092,0.20945,-0.19188,-0.19238,-0.19213,0.20647,0.20647,-0.19064,-0.19139,-0.19238,0.20721,0.20647,-0.19114,-0.19213,-0.19387,0.20796,0.20721,-0.19337,-0.19312,0.20994,0.2092,0.20796 -0.3491,-0.19797,-0.08463,-0.19797,-0.38688,-0.08463,-0.08463,-0.23576,-0.08463,-0.0090675,0.066495,-0.12241,-0.08463,0.028714,0.028714,-0.0090675,0.028714,0.10428,-0.046849,0.14206,0.29318,0.29318,0.29318,0.33096,0.36875 0.15138,-0.067641,-0.11173,-0.13449,-0.14729,0.24525,-0.070486,-0.080441,-0.12026,-0.14871,0.3889,-0.074752,-0.10035,-0.088975,-0.12738,0.41876,-0.091819,-0.10604,-0.094664,-0.13022,0.41876,0.42587,-0.094664,-0.10889,-0.15013 0.33856,0.36925,-0.23701,-0.1196,-0.09734,0.38998,0.17586,-0.11653,-0.14032,-0.15029,0.42681,0.1774,-0.12113,-0.15336,-0.15029,0.075331,0.15898,-0.11653,-0.14569,-0.14339,0.079935,-0.11806,-0.11499,-0.14185,-0.12574 -0.095547,-0.13585,-0.1505,-0.15783,-0.1505,-0.1102,-0.12119,-0.12852,-0.14317,-0.14317,0.061988,-0.069902,-0.13585,-0.14684,-0.17248,0.34775,0.16457,-0.0039567,-0.084556,-0.13951,0.42835,0.42835,0.38439,0.21586,0.058325 0.15228,0.15466,0.15704,0.13894,0.13484,0.15004,0.15281,0.1577,0.16087,0.13246,0.10087,0.10246,0.10352,0.15704,0.16061,0.10048,0.10035,-0.27736,-0.2767,-0.32692,-0.27842,-0.2775,-0.27789,-0.2771,-0.32507 -0.20793,-0.020042,0.042588,0.13653,0.042588,-0.30188,-0.17662,-0.051356,0.13653,0.19916,-0.36451,-0.1453,0.073903,0.32442,0.13653,-0.20793,-0.11399,0.011273,0.29311,0.23048,-0.33319,-0.051356,0.042588,-0.082671,0.38705 0.056829,-0.17946,-0.17946,-0.15243,-0.12239,0.15695,-0.15042,-0.15443,-0.14742,-0.10437,0.24706,0.091872,-0.1324,-0.12139,-0.096358,0.42428,0.18799,-0.095356,-0.10337,-0.091351,0.58147,0.28811,-0.044294,-0.086345,-0.073329 -0.05587,-0.092627,-0.099978,-0.12203,-0.15879,0.047049,-0.048519,-0.12203,-0.15144,-0.14409,0.22348,0.010292,-0.048519,-0.092627,-0.11468,0.41462,0.098508,-0.041168,-0.099978,-0.16614,0.70132,0.23818,0.047049,-0.063222,-0.15879 -0.069958,-0.070511,-0.070511,-0.069958,-0.06959,-0.068854,-0.068854,-0.068854,-0.069222,-0.06959,-0.06775,-0.067382,-0.067382,-0.06775,-0.06775,-0.065357,-0.065357,-0.065909,-0.064068,-0.0637,0.10085,0.10637,0.11742,0.10564,0.92803 0.15582,0.15699,0.15113,-0.24942,-0.25528,0.17104,0.16285,-0.2342,-0.24356,-0.24474,0.17573,0.16753,0.15582,-0.23771,-0.2623,0.1769,0.1605,0.1523,-0.24356,-0.24356,0.17456,0.16167,0.16519,0.15933,-0.23302 0.16288,0.18404,0.19462,0.19893,0.22404,0.16683,0.17597,0.19534,0.19642,0.2,-0.20388,-0.20442,0.1835,0.19785,0.2131,-0.20711,-0.20675,-0.20746,-0.20711,-0.20746,-0.20962,-0.20998,-0.2098,-0.20998,-0.20998 -0.13722,-0.13775,-0.13686,-0.13651,-0.13474,-0.13863,-0.13739,-0.13686,-0.13651,-0.1351,-0.1381,-0.13722,-0.13686,-0.13863,-0.13474,-0.13792,-0.12909,0.24502,0.24714,0.30086,0.24732,0.30298,0.31429,0.31677,0.34575 0.18927,-0.049402,-0.14672,-0.17685,-0.17453,0.29122,0.29586,-0.15599,-0.1838,-0.17685,0.30049,0.21707,-0.16063,-0.14904,-0.14672,0.29354,0.31903,-0.16758,-0.16526,-0.14672,-0.054037,0.34684,0.0015757,-0.072574,-0.12819 -0.39085,-0.39085,-0.38955,-0.38955,-0.38568,0.13207,0.13336,0.12625,0.034465,0.019598,0.14305,0.12948,0.1088,0.034465,0.029294,0.15146,0.13918,0.13659,0.046746,0.031233,0.16245,0.1437,0.15016,0.057734,0.036404 -0.10674,-0.054415,-0.12767,-0.10674,0.24905,-0.085809,-0.096273,-0.06488,-0.075344,0.3537,-0.096273,-0.10674,-0.13813,-0.10674,0.34323,-0.096273,-0.13813,-0.096273,-0.06488,0.40602,-0.12767,-0.1172,-0.096273,-0.023022,0.57345 0.17775,0.17455,0.17722,-0.22956,-0.22689,0.17615,0.17508,0.18043,-0.22929,-0.22529,0.17348,0.17669,0.17989,-0.22769,-0.22582,0.17402,0.17829,0.17936,-0.22635,-0.22502,-0.21353,0.17829,0.18043,-0.22635,-0.22582 0.19539,-0.0037582,-0.0043605,-0.0049628,-0.32618,0.1976,-0.0033567,-0.0029552,-0.0041597,-0.32517,0.19539,0.17713,-0.0021521,-0.0021521,-0.32778,0.17813,0.17411,0.17472,-0.32497,-0.32758,0.18957,0.18355,0.17753,0.1428,-0.32638 -0.15305,-0.17223,-0.13893,-0.10159,-0.087465,-0.15507,-0.14801,-0.14902,-0.077375,-0.096547,0.051785,0.041694,0.062885,-0.10866,0.021513,0.041694,0.039676,0.047749,0.081048,-0.021876,0.88628,0.041694,0.041694,0.061876,-0.0097677 0.32817,0.28544,0.34953,-0.24869,-0.3021,0.24271,0.15725,0.19998,-0.21664,-0.27005,0.17861,0.1252,0.13588,-0.1205,-0.23801,0.029056,0.061104,0.082469,-0.18459,-0.24869,-0.0029911,-0.035039,-0.013674,-0.10982,-0.18459 -0.18687,-0.17513,-0.16339,0.17882,0.15785,-0.18352,-0.17177,-0.16339,0.22411,0.19476,-0.21203,-0.19358,0.22243,0.21656,0.21489,-0.21036,-0.20616,0.21908,0.21069,0.2174,-0.21203,-0.20029,-0.20868,0.20985,0.22076 0.1603,0.19959,0.08172,0.0031431,-0.27188,0.19959,0.19959,-0.036145,-0.31117,-0.27188,0.1603,0.39603,-0.15401,-0.036145,-0.15401,0.19959,0.1603,0.08172,-0.27188,-0.27188,0.27816,-0.075434,0.08172,-0.15401,-0.1933 -0.19059,-0.1918,0.2307,0.21776,0.21716,-0.18879,-0.19391,0.21596,0.21596,0.20603,-0.19059,-0.19059,-0.1927,0.21295,0.20242,-0.1921,-0.1918,-0.1918,0.20994,0.20603,-0.19059,-0.1924,-0.19511,0.20693,0.15096 -0.19332,-0.072495,-0.29401,-0.41483,-0.21346,-0.022151,-0.042289,-0.32421,-0.36449,-0.14298,0.018124,0.088605,0.078536,0.11881,0.098673,0.088605,0.11881,0.15909,0.10874,0.10874,0.33025,0.31012,0.2195,0.14902,0.088605 -0.37455,-0.37879,-0.37549,-0.38091,-0.47918,0.092541,0.089713,0.088063,0.092776,0.089713,0.12954,0.11469,0.10267,0.093955,0.088063,0.10715,0.12412,0.10008,0.092541,0.090891,0.10173,0.093248,0.088063,0.10692,0.10244 -0.081424,-0.083236,-0.082511,-0.080699,-0.071641,-0.077076,-0.082149,-0.08396,-0.087584,0.069307,-0.07454,-0.081786,-0.084685,0.07438,0.074018,0.0073482,-0.07454,-0.083598,-0.083598,0.073293,0.92623,-0.078163,-0.077438,0.073656,0.070394 0.014048,0.095092,0.17614,0.095092,0.17614,0.095092,0.095092,0.17614,0.095092,0.17614,0.2842,0.095092,0.095092,0.17614,0.2842,-0.22909,-0.066997,-0.039982,-0.094011,-0.066997,-0.39117,-0.33714,-0.36416,-0.31013,-0.22909 0.45935,0.46073,0.46766,0.43648,-0.063867,-0.058323,-0.066639,-0.065253,-0.070797,-0.07149,-0.065946,-0.06456,-0.069411,-0.074262,-0.074955,-0.10198,-0.10683,-0.099903,-0.1006,-0.10198,-0.11099,-0.11168,-0.11446,-0.11446,-0.11584 -0.17095,-0.16924,-0.16584,-0.16584,-0.16187,-0.16754,-0.163,-0.15733,-0.15733,-0.15847,-0.1596,-0.1562,-0.15506,-0.16471,0.19611,-0.16414,0.25398,0.21654,0.20973,0.21086,0.29539,0.27157,0.26589,0.26079,0.25625 0.2298,-0.17246,-0.1751,-0.17984,-0.18459,0.22875,0.22664,-0.17563,-0.17826,-0.18195,0.2298,0.22506,-0.17457,-0.17774,-0.17774,0.23033,0.22348,0.21873,-0.17352,-0.17932,0.22822,0.22506,0.21557,-0.17246,-0.17826 -0.14706,-0.14943,-0.13696,0.26329,0.26032,-0.14706,-0.14765,-0.15418,-0.16487,0.27576,-0.15181,-0.153,-0.15478,0.26982,0.26804,-0.15062,-0.15181,-0.15537,0.26863,0.26566,-0.15122,-0.15181,-0.13103,0.25735,0.26982 -0.16053,-0.1631,-0.15968,0.20913,0.20956,-0.16224,-0.16481,-0.15712,0.083062,0.20956,-0.16566,-0.16652,-0.16652,0.081353,0.21084,-0.16823,-0.17165,0.085626,0.40016,0.21426,-0.17079,-0.17165,-0.17763,0.40187,0.22067 0.42066,0.32418,0.17946,-0.013507,-0.22255,0.32418,0.27594,0.034733,-0.14215,-0.22255,0.17946,0.13121,0.13121,-0.14215,-0.22255,0.13121,0.082974,-0.14215,-0.17431,-0.17431,-0.061748,-0.093909,-0.14215,-0.19039,-0.27079 0.35494,0.35494,0.35612,0.35317,0.35671,-0.13009,-0.12773,-0.13068,0.34903,-0.044427,-0.12477,-0.12418,-0.12773,-0.072784,-0.079873,-0.12418,-0.12477,-0.12241,-0.097597,-0.097597,-0.12241,-0.123,-0.11473,-0.11591,-0.12005 -0.2168,-0.11324,0.093903,0.23199,0.30104,-0.32037,-0.14776,-0.078712,0.26652,0.30104,-0.32037,0.024857,-0.11324,-0.0096664,0.12843,-0.2168,-0.25133,-0.0096664,0.093903,0.093903,-0.28585,-0.0096664,0.024857,0.33556,0.19747 -0.23388,-0.23691,-0.23631,-0.236,-0.23358,0.039223,-0.23024,-0.23691,-0.23661,-0.23752,0.28778,0.039829,0.041648,0.041951,0.03892,0.28535,0.28262,0.041042,0.041648,0.041951,0.28444,0.28202,0.28262,0.045588,0.041345 -0.14577,-0.14595,-0.14571,-0.14571,-0.14559,-0.14553,-0.14565,-0.14571,-0.14546,-0.14571,-0.1454,-0.14565,-0.14595,-0.14553,-0.14565,-0.066984,0.29299,0.29377,0.29317,0.29323,-0.066923,0.29329,0.29311,0.29317,0.26612 0.048709,-0.12995,-0.2522,-0.29921,-0.34153,0.17565,0.058112,-0.12525,-0.24749,-0.29451,0.22737,0.17095,0.044007,-0.17227,-0.2522,0.25088,0.22737,0.17565,0.062814,-0.13465,0.25088,0.23677,0.18035,0.13334,0.0063942 -0.18217,0.14277,0.16571,0.18737,0.22815,-0.18727,-0.17071,0.15297,0.181,0.20012,-0.23187,-0.20766,-0.18855,0.18228,0.22815,-0.22932,-0.22932,-0.18727,0.18355,0.22178,-0.22932,-0.23697,-0.19874,0.19375,0.21159 0.14377,0.14377,0.072361,-0.14187,-0.57032,0.096164,0.00095212,0.16757,0.00095212,-0.47511,0.11997,0.024755,0.14377,0.072361,-0.18947,0.14377,0.16757,0.14377,0.072361,-0.33229,0.024755,0.14377,0.14377,0.072361,-0.18947 0.96965,-0.063035,-0.05771,-0.046615,0.0084141,-0.068804,-0.067473,-0.05771,-0.047059,0.011077,-0.07413,-0.05771,-0.058153,-0.051053,0.011077,-0.071467,-0.033302,-0.060372,-0.047946,0.018177,-0.032414,-0.039071,-0.054603,-0.045284,0.015515 -0.078757,-0.080778,-0.082041,-0.08583,-0.10528,0.44012,-0.079515,-0.08103,-0.08482,-0.10958,0.44341,-0.082293,-0.081536,-0.082799,-0.10377,0.4472,-0.081788,-0.082041,-0.083557,-0.089114,0.49797,-0.081788,-0.077746,-0.079262,-0.11539 0.25613,0.21015,0.24463,0.23697,0.087522,0.24463,0.21398,0.22164,0.07411,0.058782,0.081774,-0.1424,0.23505,0.22931,-0.16156,-0.1673,-0.21137,-0.20562,-0.20371,-0.2267,-0.1903,-0.1903,-0.21904,-0.2267,-0.24969 0.31948,0.32369,-0.12322,-0.12795,-0.13006,0.32053,0.32053,-0.1248,-0.1248,-0.12848,0.31684,-0.12532,-0.12532,-0.1248,-0.12953,0.32158,-0.12638,-0.12269,-0.1248,-0.12638,0.32211,-0.11795,-0.11901,-0.12164,-0.12164 0.092209,0.088963,0.061919,0.056511,0.039203,0.10303,0.075982,0.066246,0.0749,-0.43352,0.11709,0.0868,0.097617,0.088963,-0.46814,0.10627,0.1106,0.099781,0.077064,-0.46706,0.10735,0.10627,0.09329,0.0749,-0.45624 -0.15491,-0.071722,-0.072229,0.30008,0.29298,-0.14882,-0.14984,-0.0702,-0.076794,0.29095,-0.16302,-0.16049,-0.15643,-0.072229,0.28385,-0.16404,-0.1681,-0.1686,0.2874,0.27979,-0.16454,-0.1686,-0.1681,0.28587,0.27776 0.32289,-0.12561,-0.12719,-0.12167,-0.1264,0.32289,-0.12719,-0.12719,-0.12719,-0.12167,0.3221,-0.094871,-0.12955,-0.12009,-0.1264,0.31816,0.31974,-0.13428,-0.12482,-0.12246,0.31816,0.31974,-0.13192,-0.1264,-0.12876 -0.26143,-0.26143,-0.16139,-0.36146,-0.16139,-0.22808,-0.22808,-0.16139,0.03868,-0.0947,-0.02801,0.17206,0.0053352,-0.12805,-0.061355,0.10537,0.10537,0.20541,0.10537,0.10537,0.17206,0.23875,0.13872,0.47217,0.2721 0.89733,0.11403,0.08671,0.13225,0.10493,0.00018216,0.013844,0.032061,0.032061,0.032061,-0.081791,-0.11367,-0.086345,-0.086345,-0.081791,-0.086345,-0.090899,-0.095453,-0.12733,-0.090899,-0.12278,-0.077237,-0.10001,-0.10001,-0.10456 0.031404,0.045424,0.16985,-0.24373,-0.22095,0.054186,0.073463,0.041919,-0.2192,-0.33661,0.14181,0.055939,0.048929,0.048929,-0.36991,0.27149,0.1348,0.096245,0.078721,-0.33136,0.2785,0.25572,0.14181,0.11377,-0.36115 0.13397,0.13655,0.22318,0.2315,0.23162,0.25424,0.2526,0.2546,0.25659,0.2376,-0.17422,-0.17539,-0.1782,-0.17574,0.24428,-0.17457,-0.17469,-0.17492,-0.17515,-0.17551,-0.17527,-0.17574,-0.17551,-0.17609,-0.17574 0.43823,0.33357,0.20527,-0.1256,-0.15598,0.29643,-0.098586,-0.064823,-0.15598,-0.18299,0.43148,-0.071576,-0.098586,-0.11884,-0.15261,0.23228,-0.071576,-0.071576,-0.14248,-0.16949,0.15801,0.029711,-0.064823,-0.16611,-0.21338 0.30091,-0.10763,-0.12172,-0.12397,-0.14144,0.23498,-0.11158,-0.11214,-0.13073,-0.14088,0.25471,0.0084527,-0.13693,-0.13806,-0.13581,0.27443,0.24907,-0.087344,-0.11496,-0.13242,0.36346,0.47448,-0.073256,-0.10819,-0.24344 0.26952,-0.093247,-0.094777,-0.088655,-0.087124,0.26492,-0.094777,-0.094777,-0.094777,-0.096308,0.27411,-0.088655,-0.091716,-0.097839,-0.096308,0.30166,-0.093247,-0.093247,-0.088655,-0.094777,0.72259,-0.065695,-0.099369,-0.085594,-0.093247 -0.1352,-0.13214,-0.13826,-0.11227,-0.12297,-0.10462,-0.11227,-0.11838,-0.099269,-0.10921,-0.10156,-0.10539,-0.11227,-0.10003,-0.099269,-0.10539,-0.10462,-0.11685,0.34876,-0.10233,0.36405,0.36405,0.35258,0.35181,0.35105 0.30669,0.30516,0.37749,0.38236,0.38211,-0.11192,-0.10935,-0.11089,-0.11217,0.3739,-0.11243,-0.11115,-0.11038,-0.11192,-0.11423,-0.11166,-0.11423,-0.11243,-0.11089,-0.11063,-0.11243,-0.11192,-0.11089,-0.11166,-0.11653 0.62494,-0.0047321,-0.10014,-0.10777,-0.10395,0.6135,-0.035262,-0.11159,-0.12304,-0.10395,0.15937,-0.065792,-0.10014,-0.11922,-0.10395,0.1441,0.018165,-0.096321,-0.11159,-0.10014,0.11739,0.0067166,-0.10014,-0.10777,-0.088689 -0.020085,-0.018966,-0.031268,-0.036859,-0.038537,-0.017289,-0.022321,-0.025117,-0.024558,-0.017289,-0.063698,-0.023999,-0.021762,-0.018407,-0.013375,-0.091096,-0.026794,-0.017289,-0.02344,-0.013934,-0.1006,-0.095011,-0.096129,-0.11011,0.96793 -0.15903,-0.16043,-0.15903,-0.16183,0.3068,-0.15693,-0.15973,-0.16043,0.16876,0.32671,-0.15833,-0.15763,-0.16113,0.17785,0.1747,-0.15903,-0.15973,-0.16183,0.1768,0.28443,-0.16043,-0.16113,0.17785,0.30854,0.29421 -0.0018002,0.25587,0.50727,0.50847,0.51013,-0.088398,-0.088398,-0.088583,-0.088122,-0.088029,-0.088952,-0.088675,-0.089505,-0.088306,-0.088952,-0.08932,-0.089505,-0.089413,-0.08932,-0.08932,-0.089413,-0.089689,-0.08932,-0.089044,-0.089689 0.3214,0.32503,-0.12108,-0.12335,-0.12516,0.31732,0.31777,-0.12562,-0.12335,-0.1229,0.31868,-0.12516,-0.12562,-0.12562,-0.1238,0.32593,-0.12516,-0.12698,-0.12652,-0.12562,0.31868,-0.11836,-0.12516,-0.12698,-0.12834 -0.11288,-0.1133,-0.11337,-0.11316,-0.11358,-0.11211,-0.11232,-0.11239,-0.11274,-0.11274,-0.11134,-0.11169,-0.11134,-0.11176,-0.1119,0.3821,-0.11008,-0.11071,-0.11127,-0.11113,0.39084,0.36769,0.35202,0.33166,0.30557 -0.022762,-0.022085,-0.0031163,-0.031569,-0.022762,-0.093895,0.030079,-0.022085,-0.041731,-0.057313,-0.038344,-0.09796,-0.06612,-0.060022,-0.05257,-0.091863,-0.079669,-0.070862,-0.064087,-0.049183,0.062597,0.055822,-0.075604,-0.043764,0.95887 0.14568,0.11928,0.10545,0.045107,0.011164,0.15574,0.1394,0.10294,0.048879,0.0086494,0.17837,0.14065,0.12431,0.051393,0.0086494,0.20603,0.157,0.12557,0.047622,0.0011063,-0.38862,-0.38862,-0.38359,-0.38108,-0.38108 -0.24547,-0.22977,-0.20882,-0.19835,-0.16693,-0.22977,-0.20882,-0.17391,-0.19137,-0.091878,-0.17042,-0.11806,-0.12853,0.22753,0.22404,-0.065697,0.25546,0.23451,0.19786,0.19611,0.21182,0.19961,0.20833,0.21357,0.25895 0.23642,-0.080131,-0.2077,-0.27857,-0.28329,0.175,0.028537,-0.12738,-0.25967,-0.29747,0.16083,0.3073,0.10886,-0.20297,-0.24077,0.175,0.25532,0.18918,-0.028159,-0.18407,0.16083,0.24587,0.18445,0.066335,-0.10375 0.045627,0.029832,-0.12466,-0.11577,-0.47806,0.32302,0.33042,-0.10936,-0.10936,-0.12565,0.32499,0.32549,-0.10886,-0.11726,-0.12713,0.31611,0.13743,-0.10442,-0.11232,-0.12663,0.15718,0.10782,-0.1059,-0.11183,-0.12071 0.13533,0.10767,0.09089,-0.30812,-0.30843,0.1462,0.12445,0.13409,0.1316,-0.30626,0.15273,0.13005,0.1375,0.12849,-0.2873,0.15304,0.15118,0.13222,-0.27829,-0.2786,0.15211,0.15584,0.16112,-0.27891,-0.2786 0.18502,0.18502,0.18502,0.16412,0.14322,0.14322,0.16412,0.10142,0.059629,0.10142,0.094458,0.094458,0.12232,0.038731,0.059629,0.059629,0.0039009,0.024799,-0.037895,-0.17721,-0.19811,-0.19811,-0.26777,-0.50461,-0.54641 -0.39549,-0.3987,-0.39824,-0.39549,-0.40099,0.059407,0.084144,0.113,0.11942,0.11759,0.059865,0.089641,0.11117,0.11942,0.12125,0.059407,0.084144,0.11484,0.12079,0.11896,0.060323,0.084144,0.11392,0.11896,0.1185 0.13016,0.14473,0.13515,0.057302,0.13848,0.037735,0.078535,0.071874,0.066878,0.126,0.042315,0.068127,0.066878,0.13141,0.1235,0.051474,0.06438,0.12142,0.1439,0.16763,-0.39316,-0.39316,-0.39191,-0.3969,-0.39274 -0.22009,-0.22009,-0.22009,-0.2209,-0.21886,-0.21764,-0.22009,-0.21846,-0.21927,-0.22049,0.10903,0.093554,0.095184,0.10129,0.18357,0.11025,0.11107,0.11025,0.11433,0.1852,0.56157,0.087037,0.10577,0.11311,0.11474 -0.076601,-0.076806,-0.077215,-0.07742,-0.069428,-0.076806,-0.076601,-0.076601,-0.070862,-0.070042,-0.073526,0.14556,0.14761,-0.073936,-0.071887,0.1429,0.14638,-0.073936,-0.074346,-0.070657,0.89751,-0.073731,-0.075371,-0.074551,-0.069632 -0.39917,0.13052,0.11694,0.11807,0.093171,-0.40369,0.13618,0.085248,0.11354,0.10449,-0.3754,0.10449,0.088643,0.081853,0.11354,-0.40143,0.084116,0.060348,0.094302,0.10223,-0.41162,0.10675,0.060348,0.11354,0.082984 0.2089,0.14826,0.13795,0.19146,0.19146,0.22119,0.20137,0.16332,0.2093,0.19027,0.23031,0.1986,0.19463,-0.20649,-0.20055,-0.20847,-0.20808,-0.20649,-0.20768,-0.2061,-0.20768,-0.20966,-0.20927,-0.20768,-0.20887 -0.1328,-0.13483,-0.13787,0.29134,0.31284,-0.13371,-0.13736,-0.13645,0.29093,0.28779,-0.13665,-0.13686,-0.13686,0.16466,0.31416,-0.13533,-0.13462,-0.13736,-0.13706,0.3242,-0.13665,-0.1328,-0.13675,-0.13594,0.32399 0.18795,0.12005,0.076513,0.061015,0.032235,0.19385,0.09939,0.077989,0.054374,0.012309,0.19459,0.12153,0.09201,0.067657,0.029283,0.19311,0.15326,0.08463,0.058801,0.018951,-0.38619,-0.38988,-0.38915,-0.38767,-0.3766 0.22232,0.21358,0.19955,0.1969,0.20185,0.22197,0.21151,0.20806,0.20001,0.20277,-0.19213,-0.19213,-0.19156,0.21013,0.2084,-0.19213,-0.19213,-0.19248,-0.19236,-0.19236,-0.19179,-0.19167,-0.19213,-0.19167,-0.19248 -0.13692,-0.20031,-0.13692,-0.23201,-0.20031,-0.10523,0.021553,-0.23201,-0.041838,-0.10523,-0.10523,-0.10523,-0.041838,-0.041838,-0.041838,0.14833,-0.073533,-0.041838,0.053248,-0.073533,0.49698,0.52867,0.30681,0.18003,0.18003 0.11144,0.11818,0.12855,0.12958,-0.35617,0.1161,0.095368,0.11922,0.13425,-0.35721,0.10003,0.093813,0.11559,0.13995,-0.35358,0.092776,0.095886,0.10314,0.13943,-0.35203,0.097442,0.095368,0.10418,-0.35928,-0.35203 -0.41685,-0.25402,-0.22688,-0.25402,-0.0097699,-0.1726,-0.14546,-0.14546,-0.25402,-0.0097699,0.098785,-0.091186,-0.1726,-0.0097699,-0.0097699,0.1802,0.1802,0.26162,0.1802,0.26162,0.1802,0.28876,0.098785,0.1802,0.26162 -0.266,-0.26372,-0.11538,0.15162,0.16988,-0.26144,-0.2021,-0.18385,0.18814,0.18357,-0.266,-0.23862,0.15162,0.17901,0.18814,-0.24318,-0.21123,0.15162,0.18357,0.18814,-0.19982,0.17901,0.16532,0.17901,0.1927 -0.26556,0.02471,0.26119,0.21689,0.2446,-0.26447,0.024892,0.024163,0.02398,0.24788,-0.26192,-0.2094,0.02471,0.024892,0.2519,-0.20758,-0.20904,-0.21232,0.21051,0.21506,-0.20576,-0.20831,-0.19336,0.2147,0.22765 0.048214,-0.17822,-0.23744,-0.22351,-0.23048,0.13182,0.016861,-0.15035,-0.20261,-0.25835,0.21543,0.22936,0.18756,-0.1608,-0.20958,0.24678,0.29904,0.12834,-0.1399,-0.18171,0.35826,0.25375,0.17014,0.0029263,-0.11552 -0.38838,0.049656,0.04443,0.038729,0.035404,-0.38838,0.045381,0.068185,0.19076,0.19218,-0.38838,0.054882,0.067235,0.18553,0.18981,-0.37745,0.056308,0.071511,0.050132,0.19171,-0.38078,0.07056,0.071035,0.070085,0.17983 0.25112,-0.26265,0.05066,-0.24406,-0.44718,0.24847,0.15952,0.049332,-0.027666,-0.3569,0.24979,0.12235,0.04535,-0.054218,-0.32239,0.24847,0.13695,0.028091,-0.043597,-0.12325,0.24847,0.15288,0.051987,-0.044925,-0.11661 -0.39507,-0.39652,-0.39796,-0.39796,-0.39776,0.12042,0.12042,0.12764,0.060778,0.06119,0.1198,0.12496,0.13011,0.063047,0.060571,0.084922,0.075016,0.12413,0.11938,0.061397,0.098748,0.074397,0.11464,0.11629,0.12743 0.5948,0.055647,-0.016985,-0.14549,-0.17901,0.58641,0.044473,-0.056094,-0.11755,-0.19018,0.10034,0.044473,-0.0533,-0.1399,-0.17901,0.11431,0.055647,-0.016985,-0.10638,-0.19577,0.091963,0.055647,-0.056094,-0.12314,-0.16783 0.23812,0.18668,0.17945,0.19231,0.19338,0.2333,0.18695,0.18802,0.17194,0.19257,-0.20583,-0.20583,0.18668,0.18641,0.1548,-0.2061,-0.20797,-0.20905,-0.20797,-0.20851,-0.2069,-0.20797,-0.20797,-0.20851,-0.20797 0.20453,0.18894,0.17778,0.1624,-0.20671,0.20601,0.19147,0.17694,-0.20565,-0.2086,0.20327,0.19126,-0.20734,-0.2086,-0.20818,0.20474,0.18937,-0.20776,-0.20839,-0.20818,0.20706,0.19147,-0.20945,-0.20713,-0.20924 0.45306,0.099956,-0.11734,-0.19882,-0.22599,0.2086,0.045632,-0.19882,-0.17166,-0.1445,0.15428,-0.090177,-0.0086918,-0.063016,-0.090177,0.48022,0.15428,0.045632,-0.11734,-0.28031,0.15428,0.15428,0.15428,-0.22599,-0.17166 0.11221,0.077949,0.057011,0.032648,-0.45806,0.11564,0.092415,0.064625,0.036835,-0.45349,0.13201,0.10003,0.079853,0.052063,-0.45158,0.13962,0.10917,0.080614,0.060438,-0.4493,0.14305,0.12059,0.093938,0.064625,0.047114 0.27795,0.036953,0.19762,-0.12371,-0.24421,0.31812,0.27795,0.036953,-0.0032133,-0.28438,0.11729,-0.0032133,-0.12371,-0.083546,-0.24421,0.15745,0.077119,0.15745,-0.20404,-0.32454,0.31812,-0.083546,0.19762,-0.20404,-0.24421 -0.072143,-0.073549,-0.06652,-0.05668,-0.074955,-0.074955,-0.077766,-0.069332,-0.080578,-0.067926,-0.053869,-0.058086,-0.052463,-0.073549,-0.053869,-0.031376,-0.022942,-0.048246,0.14153,-0.094635,-0.035594,-0.021536,0.04594,0.13731,0.93578 0.36016,0.23068,0.064623,0.0055166,-0.17462,0.31512,0.1378,-0.019815,-0.10988,-0.18869,0.33201,0.036477,0.064623,-0.14366,-0.21402,0.38267,0.19691,-0.073292,-0.070478,-0.2478,-0.095809,-0.11551,-0.17743,-0.24217,-0.25343 0.26713,-0.14927,-0.14358,-0.17202,-0.20956,0.28078,0.24893,-0.15723,-0.14699,-0.19364,0.24665,0.20456,0.18749,-0.096932,-0.16633,0.3024,0.23983,-0.016155,-0.065076,-0.20843,0.34563,-0.14585,-0.08783,-0.16064,-0.20387 -0.042232,-0.025151,-0.053441,-0.018212,-0.01501,-0.015543,-0.012874,-0.012874,-0.013408,-0.013408,-0.011273,-0.010206,-0.024617,-0.013942,-0.0096718,-0.083865,-0.012341,-0.096676,-0.099878,-0.010206,-0.086534,-0.095608,-0.093473,-0.094541,0.96499 0.30909,0.36997,-0.084793,-0.02392,-0.10628,0.36818,-0.091955,-0.099116,-0.084793,-0.11523,0.43263,-0.13671,-0.13492,-0.12955,-0.10807,0.2894,-0.15283,-0.15641,-0.12955,-0.12776,0.327,-0.066889,-0.14209,-0.14925,-0.056147 0.13552,0.24367,0.10442,0.077558,0.067662,0.24014,0.23378,0.084627,-0.26033,-0.26245,0.22954,0.062007,0.07049,-0.26952,-0.27305,0.226,0.045042,0.045042,-0.28295,-0.28153,0.23024,0.055645,0.049283,-0.28365,-0.28719 0.056822,0.025254,0.10417,0.056822,-0.24307,0.056822,0.088389,0.041038,0.0094703,-0.17994,0.13574,0.10417,0.041038,0.041038,-0.27464,0.11996,0.072605,0.072605,0.13574,-0.59031,0.24623,0.088389,0.18309,0.11996,-0.51139 -0.31886,-0.26765,-0.13109,0.0011949,0.24017,-0.31886,-0.1823,0.0011949,-0.020142,0.24017,-0.26765,-0.084153,0.035334,0.022532,0.26577,-0.18657,0.13348,0.065206,0.09081,0.39806,-0.28045,0.07374,0.099345,0.11215,0.27858 0.33881,0.24718,-0.14039,-0.14906,-0.14163,0.28371,0.306,-0.14782,-0.14287,-0.1373,0.22365,-0.11563,-0.13977,-0.14349,-0.14597,0.32024,-0.12491,-0.12863,-0.14225,-0.13792,0.27256,0.32519,-0.12739,-0.1243,-0.12801 0.96841,-0.012957,-0.0056336,-0.065913,-0.053519,-0.092954,-0.010704,-0.011267,0.0033802,-0.068166,-0.090137,-0.062533,-0.017464,0.0050702,-0.044505,-0.072673,-0.085631,-0.018591,-0.018027,-0.027041,-0.07887,-0.07042,-0.029295,-0.021408,-0.019154 -0.27523,-0.26826,-0.15896,-0.11711,-0.20431,-0.23803,-0.22756,-0.15431,0.014278,-0.10199,-0.11129,-0.11362,-0.12524,0.013115,-0.03223,0.2224,0.23868,0.30495,0.28286,-0.034555,0.21659,0.27239,0.32355,0.28286,-0.008976 0.22128,0.23547,0.23547,-0.16171,-0.21845,0.27802,0.30639,0.16454,-0.14752,-0.19008,0.2071,0.2071,0.15036,-0.14752,-0.23263,0.2071,0.03688,0.0085109,-0.13334,-0.23263,0.093619,-0.21845,-0.17589,-0.23263,-0.261 0.12004,0.086054,0.074467,0.061335,0.11309,0.11155,0.075239,0.052837,0.18725,0.10923,0.091461,0.070604,0.045113,0.096868,0.1015,0.1185,0.065197,0.051292,0.22664,0.10382,-0.38979,-0.38979,-0.40138,-0.38979,-0.39134 0.20482,0.25026,0.15673,0.21964,0.21647,0.58111,0.15806,0.15739,0.15723,0.15506,-0.15016,-0.14966,-0.15016,-0.151,-0.15116,-0.15066,-0.15066,-0.15066,-0.1505,-0.15083,-0.151,-0.15,-0.14867,-0.1505,-0.15116 -0.18138,-0.17763,-0.17763,0.32126,0.32477,-0.18279,-0.18091,-0.17857,0.31915,0.31353,-0.18044,-0.18138,-0.17904,0.1559,0.15519,-0.18138,-0.18185,-0.17716,0.15473,0.15496,-0.022345,-0.18232,0.15566,0.15566,0.15402 -0.50174,0.014251,0.10025,0.075679,0.17396,-0.26832,0.087965,0.026537,0.10025,0.17396,-0.50174,0.038822,0.026537,0.087965,0.13711,-0.35432,0.051108,0.087965,0.10025,0.17396,-0.25603,0.026537,0.075679,0.14939,0.17396 0.45681,-0.071496,-0.069169,-0.073824,-0.087788,0.46729,-0.092442,-0.09477,-0.084297,-0.055205,0.46845,-0.065678,-0.092442,-0.092442,-0.09477,0.4347,-0.084297,-0.09477,-0.11106,-0.11106,-0.054041,-0.090115,-0.09477,-0.10408,-0.10873 0.2912,0.24394,0.22984,-0.19213,-0.19527,0.24603,0.24185,0.23114,-0.1903,-0.17438,0.21939,0.22723,-0.17255,-0.17255,-0.1715,0.21861,0.14811,-0.16994,-0.17176,-0.16968,0.1643,-0.1715,-0.17124,-0.16889,-0.16994 -0.13644,-0.13274,-0.010609,-0.057488,-0.11917,0.32494,0.14606,0.0029608,-0.055021,-0.28201,0.36072,0.17937,-0.0019738,-0.061189,-0.28695,0.32865,0.17937,-0.019245,-0.096965,-0.28571,0.34098,0.151,0.0078954,-0.19319,-0.28325 0.070899,-0.093889,-0.075803,-0.051687,0.0086012,-0.027572,-0.085851,-0.079822,-0.055707,0.01463,-0.063745,-0.075803,0.048793,-0.043649,0.036736,-0.079822,-0.059726,0.032717,-0.069774,0.024678,-0.083841,-0.057716,-0.079822,-0.10193,0.9491 -0.20836,-0.20869,-0.20701,-0.20757,-0.21026,-0.2078,-0.20657,-0.20634,-0.20634,-0.21048,0.20512,0.20243,-0.2059,-0.20679,0.16889,0.20489,0.20635,0.21227,0.16822,0.16654,0.20478,0.21015,0.20668,0.16923,0.16654 -0.098619,-0.10406,-0.10896,-0.10732,-0.11168,-0.077402,-0.082298,-0.069242,-0.070874,-0.068698,-0.080122,-0.077402,-0.062714,-0.06217,-0.060538,0.62655,0.18427,-0.063802,-0.07577,-0.069242,0.63471,0.19188,-0.059994,-0.06217,-0.064346 0.24344,0.13211,0.13211,-0.090547,-0.27609,0.31766,0.095,0.13211,-0.3132,-0.27609,0.13211,0.13211,-0.016328,-0.090547,-0.38742,0.20633,-0.053438,0.095,0.057891,-0.38742,0.095,0.13211,0.24344,-0.12766,-0.12766 -0.18169,-0.30122,-0.30122,-0.27134,-0.12192,-0.1518,-0.18169,-0.18169,-0.24145,-0.092039,0.14702,0.027492,0.11714,-0.0023906,-0.0023906,0.11714,0.087258,0.11714,0.11714,0.027492,0.47573,0.11714,0.3562,0.29644,0.027492 0.23531,0.23299,0.16208,-0.20915,-0.20892,0.28629,0.15768,0.16301,-0.20822,-0.20799,0.28953,0.15606,0.15189,-0.20822,-0.20915,0.15768,0.15837,0.1549,-0.2073,-0.20915,0.15003,-0.20174,-0.19409,-0.19641,-0.19548 -0.16669,-0.18622,-0.18427,-0.094439,0.20044,-0.19989,-0.16865,-0.12764,0.26488,0.2063,-0.21747,-0.19403,-0.15302,0.25902,0.21801,-0.2038,-0.15302,-0.11983,0.2766,0.23168,-0.16083,-0.084675,0.26488,0.25121,0.24145 0.108,0.10888,0.10888,0.10923,-0.35617,0.11045,0.10975,0.11045,0.11062,-0.35564,0.1129,0.11237,0.11237,-0.35442,-0.35652,0.11395,0.11465,0.11447,0.11447,-0.35617,0.11605,0.11605,0.11587,0.11587,-0.35634 -0.10452,-0.10636,-0.10636,-0.10882,-0.1082,-0.10452,-0.10452,-0.10636,-0.10391,-0.10514,-0.091642,-0.097776,-0.097776,-0.092869,-0.092869,0.059255,0.08195,0.10771,0.088084,-0.078761,0.87569,0.091151,0.1255,0.086244,0.094832 -0.092382,-0.093111,-0.092382,-0.094567,-0.094324,-0.092868,-0.09214,-0.091897,-0.093353,-0.091654,-0.091654,-0.092382,-0.092868,-0.091897,-0.092625,-0.088741,-0.088256,-0.092625,-0.090683,-0.091169,0.15569,0.15374,0.50764,0.51153,0.51298 0.2407,0.24706,0.34171,0.1009,0.098893,0.24606,0.24405,0.34305,0.098559,0.099897,0.031667,0.042035,0.10491,-0.20781,-0.20647,0.038021,-0.2048,-0.20981,-0.21082,-0.20446,-0.2058,-0.20613,-0.20613,-0.20613,-0.20914 -0.43177,0.017177,0.056216,0.095254,0.15381,-0.54888,0.036696,0.15381,0.17333,0.056216,-0.35369,0.056216,0.036696,0.13429,0.15381,-0.29513,0.017177,0.13429,0.095254,0.17333,-0.23657,-0.0023423,0.075735,0.056216,0.19285 0.16533,0.29153,0.16533,0.51239,0.25998,0.070674,0.13378,0.10222,0.22843,0.22843,-0.21328,-0.11863,-0.05553,-0.15018,-0.087081,-0.24484,-0.21328,-0.15018,-0.023979,-0.05553,-0.087081,-0.24484,-0.18173,-0.087081,-0.24484 -0.16856,-0.24121,0.085733,0.013078,0.12206,-0.31387,-0.20489,0.19471,0.12206,0.19471,-0.24121,0.049405,0.12206,0.085733,0.12206,-0.38652,-0.20489,0.12206,0.19471,0.19471,-0.3502,-0.13223,0.26737,0.12206,0.23104 -0.1404,-0.13656,-0.13561,-0.13561,-0.13369,-0.13177,-0.13273,-0.13081,-0.13561,-0.12889,-0.11929,-0.11162,-0.099142,-0.085708,-0.084748,-0.12505,-0.10874,-0.10586,0.26549,0.23191,0.46796,0.40367,0.31827,0.26165,0.23287 -0.11237,-0.11409,-0.10721,-0.11065,-0.11122,-0.11008,-0.10663,-0.10549,-0.10721,-0.10491,-0.1118,-0.1095,-0.10262,-0.11065,-0.10835,-0.10721,-0.1118,0.29731,-0.11753,-0.10663,0.43732,0.43674,0.44248,0.22846,0.23362 -0.34382,-0.34382,-0.16381,0.038703,0.19621,-0.29882,-0.27632,0.016201,0.12871,0.19621,-0.34382,-0.11881,0.083706,0.17371,0.26372,-0.18631,0.12871,0.083706,0.19621,0.21871,-0.14131,0.083706,0.061204,0.15121,0.19621 -0.25606,-0.094922,-0.19374,0.27297,0.020614,-0.19221,-0.10404,-0.0858,0.27905,0.31705,-0.16181,-0.15573,-0.11012,0.26689,0.26385,-0.13901,-0.16029,-0.091881,0.26993,0.30033,-0.14357,-0.14813,-0.15573,-0.088841,0.29121 -0.034157,-0.009759,-0.10735,-0.22934,-0.15614,0.16102,-0.009759,-0.15614,-0.18054,-0.20494,0.18542,0.087831,-0.034157,-0.10735,-0.10735,0.30741,0.25861,0.063434,-0.082952,-0.22934,0.50259,0.3806,0.11223,-0.20494,-0.20494 0.10286,0.34776,-0.060409,-0.14204,-0.14204,0.26612,-0.019592,0.10286,-0.019592,-0.30531,0.22531,0.18449,0.14367,-0.22368,-0.38694,0.22531,-0.10123,0.14367,-0.22368,-0.18286,0.30694,0.10286,-0.019592,-0.060409,-0.26449 0.2791,-0.0219,-0.19835,-0.19316,-0.20873,0.30505,-0.078986,-0.19835,-0.18278,-0.1698,0.44776,0.04297,-0.078986,-0.099744,-0.29176,0.16493,0.15455,-0.063417,-0.073796,-0.22429,0.25834,0.29467,0.16493,0.035186,-0.063417 0.2461,0.30526,0.23131,0.068624,-0.079273,0.33484,0.29047,0.083414,0.024255,-0.1828,0.2461,0.14257,-0.020114,-0.19759,-0.24196,0.17215,-0.0053243,-0.15322,-0.25675,-0.28633,0.039045,-0.079273,-0.19759,-0.22717,-0.25675 0.31013,0.32728,0.32538,0.31966,0.30823,0.31966,0.31204,-0.076676,-0.078582,-0.063338,-0.082392,-0.14337,-0.14146,-0.13384,-0.11288,-0.12241,-0.16242,-0.16242,-0.10716,-0.10716,-0.15289,-0.16242,-0.16433,-0.15289,-0.095731 0.32697,0.32652,-0.12517,-0.12472,-0.12463,0.32201,0.32201,-0.12499,-0.12472,-0.12472,0.31571,-0.12428,-0.12481,-0.1249,-0.12446,0.3158,-0.12357,-0.12463,-0.1249,-0.12463,0.3158,-0.12499,-0.12481,-0.12508,-0.12481 -0.12783,-0.085593,-0.085593,0.1115,0.57606,-0.17006,-0.085593,-0.085593,-0.0011262,0.61829,-0.085593,-0.043359,-0.12783,-0.085593,0.30858,-0.12783,-0.043359,-0.085593,-0.043359,0.041107,-0.12783,-0.085593,-0.085593,-0.09967,0.027029 -0.36646,0.081327,0.096455,0.15092,0.15092,-0.34225,0.099481,0.11158,0.15999,0.16302,-0.35436,-0.13349,0.12671,0.099481,0.15092,-0.35133,-0.28477,0.13276,0.14184,0.12369,-0.3483,0.078302,0.11763,0.13276,0.063174 0.73088,0.089758,-0.064587,-0.10021,-0.13582,0.45781,0.018521,-0.064587,-0.064587,-0.13582,0.2441,-0.028969,-0.064587,-0.13582,-0.10021,0.13725,-0.064587,-0.10021,-0.064587,-0.064587,-0.052715,-0.064587,-0.13582,-0.13582,-0.10021 0.18501,0.1999,0.14927,0.091193,-0.25875,0.18798,0.19543,0.19096,-0.22896,-0.25726,0.16118,0.20585,0.20139,-0.23045,-0.26172,0.088214,0.098638,0.18501,-0.2245,-0.25726,-0.1828,0.12395,0.14778,-0.24683,-0.26321 0.33785,-0.1892,-0.21302,-0.22791,-0.19516,0.30956,0.11006,0.044546,-0.18474,-0.19962,0.31403,0.032635,0.008814,-0.070095,-0.12816,0.26192,-0.001608,-0.022452,-0.11029,0.054968,0.48673,0.0058363,-0.0045856,-0.20111,-0.21898 -0.21053,-0.19501,-0.25046,-0.24159,-0.22384,-0.23937,-0.22828,-0.17726,-0.17283,-0.14178,-0.12847,0.029012,0.20424,0.19536,0.055628,0.037884,0.32623,0.19536,0.16653,-0.0086946,0.37946,0.29074,0.17318,0.151,0.013486 0.21723,0.2482,-0.13911,-0.13529,-0.1372,0.26923,0.33347,-0.13147,-0.13491,-0.13644,0.28147,0.30403,-0.13147,-0.13414,-0.13605,0.31588,-0.13758,-0.13338,-0.1372,-0.14064,0.34685,-0.13414,-0.13644,-0.13682,-0.14408 0.088845,-0.13583,-0.13059,-0.13204,-0.13379,0.30565,-0.13729,-0.13233,-0.13437,-0.13292,0.3141,0.31265,-0.1335,-0.13437,-0.13233,0.31789,0.31352,-0.13437,-0.13612,-0.13496,0.30886,0.31877,-0.13379,-0.13583,-0.13583 -0.25601,-0.2674,-0.21046,-0.18768,-0.13074,-0.16491,-0.15352,-0.15352,-0.10796,-0.085186,-0.096574,-0.096574,-0.062409,-0.016855,0.09703,-0.028243,0.040087,0.028699,0.2223,0.19953,0.085641,0.17675,0.25647,0.33619,0.57535 -0.21014,-0.2874,0.021632,0.17615,0.09889,-0.36466,0.060261,-0.094254,0.2534,0.060261,-0.36466,-0.094254,0.060261,0.17615,0.21478,-0.36466,-0.094254,0.060261,0.21478,0.17615,-0.24877,0.060261,0.060261,0.13752,0.29203 0.46214,0.30583,0.1365,-0.0067731,-0.11098,0.38398,0.26676,0.11045,-0.045849,-0.13703,0.26676,0.12348,-0.09795,-0.124,-0.20215,0.071378,-0.084925,-0.084925,-0.20215,-0.2803,-0.084925,-0.1761,-0.1761,-0.1761,-0.13703 -0.10016,-0.11077,-0.11873,-0.17579,-0.19437,0.282,0.27802,-0.10546,-0.1665,-0.21825,0.2674,0.27935,-0.132,-0.16783,-0.17712,0.26873,0.28333,-0.12404,-0.13068,-0.11873,0.31517,0.32314,-0.072291,-0.085561,-0.09883 0.11257,0.11615,0.11496,-0.28911,-0.34052,0.11974,0.11615,0.11376,0.12572,-0.35247,0.12213,0.11854,0.12691,0.13289,-0.34291,0.1305,0.1305,0.1293,-0.24608,-0.32976,0.1305,0.1305,0.1305,0.13289,-0.33335 0.089854,0.10006,0.11095,-0.378,-0.40079,0.085091,0.091215,0.10414,0.10414,-0.38208,0.14498,0.094958,0.10517,0.10483,-0.38004,0.146,0.11707,0.10312,0.094278,-0.38038,0.14191,0.15995,0.093597,0.087813,-0.15785 0.10725,0.10401,0.44442,0.20788,0.21176,0.10757,0.45445,0.20917,0.20529,0.21403,-0.15,-0.14935,-0.1487,-0.1487,-0.14773,-0.15323,-0.15129,-0.15129,-0.15129,-0.15,-0.15323,-0.15323,-0.15259,-0.15323,-0.15194 0.080391,0.13716,0.12867,0.13448,-0.28616,0.079497,0.12107,0.12688,0.13046,-0.28169,0.19974,0.083968,0.079497,-0.28929,-0.28527,0.20869,0.086203,0.086203,-0.28929,-0.28527,0.20734,0.19974,0.19572,-0.28482,-0.28393 -0.2727,0.030913,0.16892,0.33453,0.30692,-0.2175,-0.13469,0.19652,0.14132,0.19652,-0.2175,-0.2451,0.0033121,0.19652,0.22412,-0.3555,-0.16229,0.030913,0.0033121,0.14132,-0.3279,-0.1899,0.11372,0.0033121,0.030913 0.17682,0.16691,0.15204,0.16939,-0.17999,0.15947,0.15452,0.15947,-0.17751,-0.2122,0.14213,0.15204,0.14708,-0.24194,-0.26672,0.13717,0.16195,0.14213,-0.1899,-0.30884,0.16195,0.23133,-0.26424,-0.27415,-0.29893 0.22103,0.22328,0.21877,-0.17619,-0.17594,0.22729,0.22554,0.21902,-0.17669,-0.17644,0.2293,0.22504,-0.17719,-0.17544,-0.1787,0.23331,0.22053,-0.17719,-0.17769,-0.1787,0.23832,-0.1797,-0.17669,-0.17769,-0.17719 0.19225,0.17665,0.1595,0.10553,0.077452,0.18352,0.16262,0.16074,0.13142,0.069654,0.17353,0.1648,0.15794,0.1205,0.072461,-0.28504,-0.28504,-0.28379,0.11146,0.0787,-0.29128,-0.28941,-0.28972,-0.28722,-0.28722 0.46609,0.26167,-0.010903,-0.010903,-0.044974,0.2276,-0.010903,-0.044974,-0.28347,-0.18126,0.2276,0.12538,-0.11312,-0.18126,-0.2494,0.36388,-0.010903,0.12538,0.023168,-0.21533,0.12538,-0.044974,-0.010903,-0.18126,-0.35161 -0.17401,-0.18293,-0.18293,-0.17877,-0.17312,-0.17639,-0.17877,-0.17728,-0.17698,-0.16598,0.021905,0.023391,-0.1755,-0.17639,0.025472,0.029931,0.31563,0.29541,0.030823,0.025769,0.034688,0.33139,0.3293,0.34001,0.31533 -0.40048,-0.39859,-0.39954,-0.40048,-0.40048,0.099255,0.10335,0.10713,0.10524,0.10713,0.096421,0.099255,0.10429,0.10429,0.1065,0.094216,0.098625,0.1002,0.099255,0.10114,0.093272,0.095161,0.096735,0.094531,0.093586 0.25415,0.24551,0.25739,0.24929,0.29841,0.25091,0.26009,-0.16256,0.26063,0.30003,-0.10696,-0.10588,-0.16364,-0.1604,-0.16526,-0.10696,-0.13341,-0.14907,-0.1577,-0.16094,-0.23651,-0.13395,-0.11182,-0.16094,-0.1604 -0.06808,0.055834,0.048545,0.059479,0.15788,-0.25638,-0.26124,0.081346,0.099568,0.2988,-0.26853,-0.23208,0.102,0.13844,0.29759,-0.28675,-0.2661,0.12022,0.29759,0.16395,-0.29282,-0.28068,0.12994,0.089849,0.071627 0.17697,0.19208,0.22229,0.22795,0.23173,0.16375,0.20057,0.21946,0.22323,0.22135,0.16375,-0.13554,0.20907,-0.18086,-0.22712,-0.263,-0.12232,-0.1667,-0.13082,-0.21296,-0.26111,-0.13932,-0.22901,-0.16387,-0.21957 -0.388,-0.39001,-0.40411,-0.40511,-0.38095,0.15777,0.12555,0.10339,0.071171,0.047004,0.1628,0.12857,0.097352,0.073185,0.047004,0.15173,0.12353,0.094331,0.06815,0.04499,0.15475,0.1195,0.090303,0.062108,0.04499 -0.021822,0.075008,0.067923,0.15058,0.33952,-0.27925,-0.24619,0.075008,0.19782,0.32535,-0.30287,-0.27453,0.093902,0.098625,0.3041,-0.27453,-0.16589,0.065561,0.086817,0.070285,-0.29814,-0.25091,0.0065183,0.070285,0.086817 0.31023,0.51047,0.0087849,-0.1527,-0.14732,0.32422,0.33391,-0.12256,-0.14624,-0.14301,0.36406,0.041083,-0.10426,-0.15163,-0.14947,0.056155,0.015244,-0.13332,-0.15593,-0.15486,0.015244,0.017398,-0.12148,-0.14947,-0.16455 0.18107,0.14265,0.081796,0.044091,0.0145,0.19396,0.13955,0.089671,0.052921,0.015454,0.19205,0.14026,0.079171,0.050296,0.013545,0.19467,0.14527,0.086092,0.042659,0.018318,-0.38379,-0.38427,-0.38236,-0.38427,-0.38331 0.18656,0.23615,0.087392,-0.2628,-0.35887,0.18346,0.12458,-0.058262,-0.33098,-0.34337,0.23615,0.13698,0.019214,-0.29069,-0.22561,0.23615,0.10909,0.059501,0.081194,-0.27829,0.18656,0.087392,0.081194,0.096689,0.0006198 0.11503,0.11734,0.057096,0.022338,0.029289,0.11966,0.11271,0.052461,0.040875,-0.44342,0.11503,0.11271,0.054779,0.064047,-0.46891,0.11503,0.11271,0.077951,0.080268,-0.43879,0.11271,0.10807,0.094171,0.098805,-0.46196 -0.10815,-0.25352,0.066288,0.21166,0.32795,-0.25352,-0.1663,-0.07908,0.12444,0.24073,-0.25352,-0.25352,0.0081406,0.21166,0.21166,0.037214,-0.19538,-0.07908,0.0081406,0.32795,-0.1663,-0.10815,-0.2826,0.12444,0.29888 -0.054749,-0.054749,-0.054749,-0.18061,-0.14914,0.086843,0.039646,-0.023284,-0.18061,-0.24354,0.18124,0.13404,-0.086214,-0.086214,-0.21207,0.33856,0.22844,0.039646,-0.070481,-0.25927,0.52735,0.37003,0.039646,-0.086214,-0.24354 0.32194,-0.11084,-0.11555,-0.12654,-0.13124,0.31984,-0.095137,-0.11869,-0.13386,-0.13386,0.32089,0.3188,-0.13124,-0.13543,-0.13491,0.32298,0.31984,-0.13177,-0.13438,-0.1281,0.31775,-0.10351,-0.11084,-0.13491,-0.13124 0.16704,-0.039692,-0.081039,-0.16373,-0.28777,0.24973,-0.081039,-0.20508,-0.16373,-0.039692,0.53916,0.0016539,-0.081039,-0.16373,-0.081039,0.49781,0.12569,-0.081039,-0.081039,-0.039692,0.29108,-0.081039,-0.081039,-0.081039,-0.039692 0.2066,0.028712,-0.13982,-0.1523,-0.13982,0.58424,-0.033706,-0.1367,-0.12109,-0.15854,0.56239,-0.018101,-0.086762,-0.11485,-0.1523,0.22533,0.041196,0.0099869,-0.11485,-0.14606,0.081768,0.038075,0.0099869,-0.13358,-0.13982 -0.14441,-0.14568,-0.14441,-0.25873,-0.24853,-0.14483,-0.14398,-0.14058,-0.13846,-0.12698,-0.13336,-0.095535,-0.074711,-0.078961,-0.08576,0.39106,0.39829,0.082955,0.09103,0.09443,0.38936,0.39361,0.08253,0.087205,0.09443 -0.19007,-0.19441,-0.19043,0.22146,0.19289,-0.18754,-0.19152,0.22797,0.25111,0.25256,-0.18826,-0.19224,0.17409,0.24966,0.25183,-0.18898,-0.18862,-0.19115,0.17445,0.17409,-0.18935,-0.19079,-0.19224,0.15203,0.15347 -0.071379,-0.079411,-0.09079,-0.092129,-0.092798,0.45874,-0.084766,-0.094806,-0.090121,-0.094806,0.45339,-0.079411,-0.088113,-0.088782,-0.090121,0.46008,-0.08008,-0.09079,-0.092129,-0.089451,0.46008,-0.078072,-0.085435,-0.088113,-0.09079 0.35945,0.35945,0.22952,0.20863,0.093783,0.37453,0.29448,0.038098,0.11002,0.069421,-0.1626,-0.16492,-0.057031,-0.14868,-0.15564,-0.062832,-0.11156,-0.17072,-0.15564,-0.19276,0.040418,-0.11504,-0.17768,-0.18696,-0.31574 0.15204,0.14381,0.14009,-0.26266,-0.26611,0.15443,0.14593,0.14673,-0.2669,-0.26717,0.1616,0.15443,0.14248,-0.2677,-0.26637,0.16532,0.14779,0.13744,-0.26558,-0.26903,0.17275,0.15018,0.14726,-0.26664,0.13585 0.30925,-0.18485,0.018602,-0.12672,-0.18485,0.57083,-0.12672,-0.15579,-0.15579,-0.068593,0.30925,-0.010463,-0.039528,-0.039528,-0.068593,0.30925,-0.039528,-0.039528,-0.097658,-0.12672,0.36738,-0.097658,-0.068593,-0.21392,-0.039528 0.36194,0.32892,0.26287,0.46101,0.26287,0.1638,0.064726,0.13077,-0.034345,0.064726,-0.23249,-0.13342,-0.10039,-0.10039,-0.26551,-0.13342,-0.16644,-0.19946,-0.19946,-0.16644,-0.034345,-0.034345,-0.16644,-0.10039,-0.034345 -0.14708,-0.14489,-0.14708,0.3822,0.2224,-0.14708,-0.14626,-0.14681,0.35616,0.23556,-0.14845,-0.14818,-0.15119,0.22679,0.23117,-0.14927,-0.14626,-0.149,0.23336,0.23528,-0.14489,-0.14845,-0.14626,-0.15284,0.24104 -0.035841,-0.1014,-0.013987,0.07343,0.4231,-0.07955,-0.1014,-0.057695,-0.013987,0.4231,-0.16697,-0.013987,-0.16697,-0.057695,0.40124,-0.12326,-0.1014,-0.18882,-0.1014,0.37939,-0.12326,-0.1014,-0.23253,-0.16697,0.24826 0.1367,0.13734,0.1427,0.14775,-0.2976,0.13337,0.13294,0.13702,0.15011,-0.29728,0.12897,0.13047,0.14034,-0.2976,-0.28129,0.13219,0.13562,0.13766,-0.29781,-0.28161,0.13498,0.13541,0.13766,-0.29706,-0.28097 0.33495,-0.1229,-0.1229,-0.12591,-0.12772,0.33254,-0.1232,-0.1229,-0.12441,-0.12832,0.33224,0.33194,-0.1232,-0.12411,-0.12651,0.33104,-0.11869,-0.12351,-0.12351,-0.12501,0.33374,0.24019,-0.12441,-0.12411,-0.12531 0.1506,0.1908,0.29464,0.32814,0.35828,0.1707,0.34488,0.38843,0.023314,-0.11737,-0.11402,-0.12407,-0.14082,-0.13747,-0.14417,-0.15087,-0.14752,-0.15757,-0.14752,-0.15087,-0.14417,-0.14082,-0.14752,-0.14082,-0.14417 0.18027,0.1817,0.17669,0.15739,0.15882,0.02585,0.16954,0.15453,0.15882,0.15596,0.045153,0.16382,0.16454,0.16883,0.14452,-0.26726,-0.26797,0.15596,-0.24724,-0.24581,-0.26583,-0.26726,-0.26583,-0.26654,-0.26868 0.88872,-0.089593,-0.089593,-0.050975,-0.07672,0.16786,-0.063848,-0.050975,-0.038103,-0.10247,0.11637,0.0005149,-0.063848,-0.038103,-0.10247,0.21935,-0.038103,-0.10247,-0.07672,-0.11534,0.039132,-0.063848,-0.089593,-0.07672,-0.10247 -0.40252,-0.33098,-0.47405,-0.30713,-0.33098,-0.092522,-0.092522,0.098245,0.050553,0.074399,0.21747,0.098245,0.12209,0.0028615,0.12209,0.050553,0.14594,0.16978,0.074399,0.12209,0.19363,0.098245,0.19363,0.12209,0.074399 0.40277,0.39991,-0.026196,-0.17204,-0.18062,0.38561,0.39991,-0.017616,-0.1749,-0.18634,0.13109,0.16255,-0.029055,-0.18062,-0.18348,0.019561,0.022421,-0.071952,-0.1749,-0.18634,0.0081218,0.005262,-0.011897,-0.16347,-0.17776 -0.31534,-0.28509,-0.28459,0.18064,0.17839,-0.30334,-0.028849,0.049649,0.18214,0.17164,-0.28459,-0.031349,0.045399,0.18164,0.1514,-0.28734,-0.032099,0.18314,0.18139,0.17664,-0.32184,-0.027349,0.17964,0.18164,0.1584 -0.07207,-0.073494,-0.074919,-0.086313,-0.097708,-0.09201,-0.09201,-0.096283,-0.09201,-0.096283,-0.096283,-0.090586,-0.099132,-0.099132,-0.096283,-0.08204,-0.084889,-0.084889,-0.084889,-0.10768,0.45777,0.4592,0.45208,0.4592,-0.029341 0.40097,0.19832,0.18085,-0.12662,-0.11964,0.22278,0.19133,0.05856,-0.15108,0.0026555,0.24374,0.079524,-0.16506,-0.1965,-0.17205,0.33459,-0.13711,-0.20699,-0.20349,-0.19301,0.32061,0.0061495,-0.20349,-0.18602,-0.17903 0.42442,-0.040229,-0.050286,-0.10661,-0.10057,0.42844,-0.012069,-0.10862,-0.11063,-0.092527,0.45057,-0.010057,-0.09655,-0.11666,-0.10258,0.50286,-0.032183,-0.11264,-0.1227,-0.10862,-0.066378,-0.094539,-0.10258,-0.11264,-0.10661 -0.077426,-0.1191,-0.15615,-0.16078,-0.15152,-0.026488,-0.086688,-0.12373,-0.15615,-0.16541,0.089281,0.01982,-0.068165,-0.1191,-0.15615,0.3625,0.17727,0.02445,-0.10984,-0.13763,0.52457,0.43659,0.32082,-0.012596,-0.12836 -0.19391,-0.14113,0.11438,0.11859,0.10903,-0.20539,-0.13769,0.029851,0.029851,0.10826,-0.19965,-0.13654,0.022966,0.032911,0.35919,-0.19659,-0.13654,-0.12889,0.032528,0.49765,-0.21304,-0.13807,-0.12927,0.016081,0.48541 -0.28404,0.13308,0.13975,0.14309,0.13308,-0.29739,0.079686,0.14642,0.14642,0.11973,-0.3441,0.056327,0.11973,0.1264,0.11305,-0.36746,-0.20729,0.12974,0.13308,0.14642,-0.38081,-0.32742,0.079686,0.13975,0.12307 -0.20855,-0.20707,0.19552,0.20546,0.17941,-0.20734,-0.20868,-0.20694,0.18237,0.17915,-0.20801,-0.20882,0.18264,0.20519,0.18049,-0.20842,-0.20734,0.17941,0.20707,0.20761,-0.20721,-0.20761,-0.20922,0.21217,0.17874 -0.02206,-0.049984,-0.077908,-0.10583,-0.13376,-0.063946,-0.001117,-0.056965,-0.09187,-0.13376,-0.015079,0.005864,-0.015079,-0.063946,-0.09187,-0.001117,-0.015079,-0.001117,-0.09187,0.12454,0.026807,0.019826,-0.036022,-0.049984,0.94132 0.45724,0.22276,0.31069,0.19345,0.13483,0.25207,0.16414,0.31069,0.076207,-0.011724,-0.15828,0.046897,-0.18759,-0.099656,-0.099656,-0.18759,-0.24621,-0.070345,-0.2169,-0.24621,-0.041035,-0.2169,-0.18759,-0.070345,-0.12897 0.3622,0.26924,0.14529,-0.10261,-0.089333,0.38433,0.29359,0.1962,-0.13139,-0.10925,0.30687,0.13643,-0.14024,-0.18451,-0.13803,0.047898,-0.011864,-0.17344,-0.23099,-0.2,0.027977,-0.007437,-0.18451,-0.23763,-0.22878 -0.17215,-0.17252,-0.17121,0.17947,0.18413,-0.17308,-0.17215,-0.17345,0.18469,0.18357,-0.17382,-0.17345,-0.17475,0.33618,0.18823,-0.17308,-0.17364,-0.17438,0.28662,0.18749,-0.17271,-0.17364,0.28196,0.11537,0.29631 0.39777,0.37432,0.39107,0.37097,0.38102,-0.10815,-0.13161,-0.12156,-0.12156,-0.10145,-0.14501,-0.13161,-0.14166,-0.15506,-0.15171,-0.12156,-0.12826,-0.14166,-0.12826,-0.14501,0.04932,0.0024124,0.0024124,0.015814,-0.01099 0.18313,0.11046,0.11046,0.066857,-0.034882,0.11046,0.13953,0.11046,0.037788,-0.25289,0.13953,0.13953,0.12499,-0.078484,-0.25289,0.13953,0.19766,0.066857,-0.16569,-0.4709,0.066857,0.13953,0.081391,-0.12209,-0.58717 0.91808,0.021236,0.024721,0.026464,0.027626,0.027626,0.022979,0.027626,0.029368,-0.039754,0.02356,0.025883,0.032853,0.029368,-0.046143,-0.12688,-0.12224,-0.11352,-0.047305,-0.047305,-0.1356,-0.1385,-0.14024,-0.13966,-0.14024 0.1866,0.22095,0.20391,0.20062,0.21079,0.22398,0.2215,0.20089,0.20089,0.21601,-0.19404,-0.19294,0.19292,-0.18442,0.21683,-0.19102,-0.19212,-0.19239,-0.19212,-0.19184,-0.19267,-0.19239,-0.19294,-0.19322,-0.19377 0.086037,-0.10234,-0.16646,-0.1197,-0.07428,0.09806,0.060653,-0.016833,-0.08764,-0.14375,0.46545,0.14081,-0.13039,-0.1531,-0.15177,0.46545,-0.10234,-0.15177,-0.13039,-0.14375,0.47347,0.21162,-0.10367,-0.101,-0.12238 0.21932,0.24103,0.24972,-0.18892,-0.20412,0.17154,0.17806,-0.17589,-0.24537,-0.13246,0.15634,0.14983,-0.12594,-0.26926,-0.1672,0.16069,0.15852,0.18457,-0.23886,-0.23235,0.15852,0.15852,0.2584,-0.23452,-0.23017 0.94077,-0.090112,-0.099784,-0.091724,-0.086888,-0.069155,-0.073991,-0.087694,-0.086888,-0.065931,0.08318,-0.054647,-0.069961,-0.058677,-0.073185,0.063836,0.054164,-0.054647,-0.043363,-0.053035,0.072702,0.05094,-0.0078989,-0.044975,-0.053035 0.31463,0.33664,-0.12368,-0.11986,-0.12416,0.3175,0.31941,-0.12368,-0.12656,-0.12321,0.31846,-0.12129,-0.12799,-0.1256,-0.12703,0.31941,-0.12464,-0.12656,-0.12416,-0.12464,0.31846,-0.1189,-0.12703,-0.12703,-0.12847 0.18164,-0.16539,-0.17861,-0.1734,-0.17461,0.18565,0.17924,-0.17781,-0.17461,-0.1718,0.24736,0.24736,-0.17861,-0.17901,-0.17661,0.24616,0.24816,0.21891,-0.17581,-0.17661,0.24616,0.24656,0.22372,-0.19104,-0.17701 -0.37696,-0.38299,-0.41518,-0.40914,-0.41317,0.10983,0.10379,0.11586,0.10581,0.10178,0.10178,0.089714,0.10782,0.095748,0.10178,0.10178,0.091725,0.095748,0.093737,0.089714,0.081667,0.10178,0.10379,0.095748,0.10782 -0.24934,-0.24792,-0.25015,0.16836,0.19597,-0.25157,-0.24913,-0.24995,0.20652,0.20084,-0.24548,-0.025671,-0.02628,0.20287,0.20429,-0.24508,-0.026889,0.062416,0.20652,0.20571,-0.24345,0.059371,0.19292,0.20063,0.20449 -0.15524,-0.091614,-0.1007,-0.1007,-0.055259,-0.091614,-0.1007,-0.091614,-0.082526,0.0083616,-0.1007,-0.073437,-0.073437,-0.064348,0.23558,-0.055259,-0.082526,-0.037082,0.01745,0.47189,-0.10979,-0.073437,-0.073437,0.1356,0.74455 -0.10059,-0.087,-0.093797,0.055735,0.61988,-0.11419,-0.087,-0.10059,-0.032625,0.45675,-0.12778,-0.10739,-0.087,-0.059813,0.28003,-0.10059,-0.13458,-0.12778,-0.080203,0.348,-0.10739,-0.12778,-0.087,-0.10059,0.10331 0.11088,0.029084,-0.18904,-0.37082,-0.41626,0.19268,0.083616,-0.043626,-0.27084,-0.37082,0.23812,0.15632,0.074527,-0.12542,-0.23449,0.1745,0.16541,0.14724,0.074527,-0.12542,0.16541,0.18359,0.18359,0.1745,-0.0072709 0.15129,0.1516,-0.23335,-0.24354,-0.2616,0.14187,0.15777,0.16117,-0.24076,-0.25342,0.13524,0.16024,0.17305,-0.23613,-0.25018,0.15577,0.15793,0.16503,-0.23706,-0.24539,0.15993,0.19929,0.20578,0.16672,-0.24123 0.18769,0.20744,0.24696,0.14817,-0.029635,0.16793,0.16793,0.16793,-0.15805,-0.23708,0.14817,0.15805,0.098783,-0.32598,-0.25683,0.088904,0.10866,0.15805,-0.27659,-0.29635,0.049391,0.088904,0.049391,-0.3655,-0.29635 -0.12698,0.065413,-0.0067337,0.089462,0.18566,-0.12698,-0.15103,0.065413,0.11351,0.16161,-0.19913,-0.19913,-0.12698,0.11351,0.16161,-0.27127,-0.27127,-0.12698,0.25781,0.32995,-0.34342,-0.27127,0.18566,0.11351,0.37805 0.28848,0.28299,-0.14048,-0.14127,-0.14244,0.2877,0.28652,-0.13813,-0.14009,-0.13539,0.28613,-0.13421,-0.13735,-0.13892,-0.13735,0.29632,-0.13343,-0.13186,-0.13617,-0.13774,0.30456,0.29907,-0.13539,-0.1346,-0.13695 -0.083956,-0.081522,-0.080711,-0.078278,-0.074627,0.25187,-0.081522,-0.082333,-0.079089,-0.074627,0.24862,-0.082333,-0.082333,-0.082333,-0.079089,0.6104,-0.083956,-0.083956,-0.083145,-0.0799,0.60189,-0.086389,-0.085578,-0.084767,-0.082333 -0.43329,0.15957,0.079931,0.080899,0.087812,-0.38877,0.10108,0.10095,0.098458,0.099564,-0.39002,0.10274,0.10316,0.099288,0.097767,-0.3914,0.1033,0.10067,0.096108,0.097075,-0.39043,0.098735,0.097214,0.094587,0.095002 -0.10393,-0.059641,-0.10393,-0.081785,-0.12607,-0.0079719,-0.081785,-0.12607,-0.17036,-0.081785,0.080604,-0.059641,-0.059641,-0.081785,-0.081785,0.50134,-0.059641,-0.059641,-0.081785,-0.081785,0.69326,0.33157,-0.030116,-0.0079719,-0.059641 -0.098806,-0.19118,-0.21501,-0.23885,-0.25375,0.014422,-0.11966,-0.16734,-0.17926,-0.20608,0.14255,-0.030274,-0.1137,-0.13158,-0.16734,0.33027,0.26769,0.24982,-0.06603,-0.10775,0.27365,0.26174,0.27663,0.23492,0.23492 0.39463,0.39852,0.39268,0.39658,-0.095545,0.11842,0.11647,0.1262,0.11064,0.12037,-0.12667,-0.12083,-0.1325,-0.11305,-0.1325,-0.13056,-0.1325,-0.12861,-0.14806,-0.1325,-0.13445,-0.13639,-0.14028,-0.16752,-0.20253 -0.18845,-0.19044,-0.20092,0.21517,0.19621,-0.19044,-0.19393,0.21068,0.22614,0.19671,-0.19044,-0.18994,-0.19194,0.19721,0.20469,-0.19044,-0.19144,-0.19842,0.20569,0.2022,-0.18994,-0.18944,0.21467,0.2002,0.22664 -0.40838,-0.23235,0.14904,0.17837,0.32506,-0.20302,-0.26169,-0.085666,0.20771,0.32506,-0.115,-0.17368,-0.20302,0.14904,0.23705,-0.23235,-0.056328,0.031685,-0.056328,0.26639,-0.056328,-0.056328,-0.026991,0.09036,0.20771 -0.40344,-0.40626,-0.40907,-0.37808,-0.40062,0.11495,0.11495,0.10649,0.089591,0.083956,0.10649,0.10649,0.11495,0.098043,0.10931,0.089591,0.089591,0.10086,0.095225,0.10368,0.10649,0.095225,0.083956,0.095225,0.092408 0.21276,0.21276,0.21096,0.21456,0.21637,0.21276,0.21997,0.21997,0.21997,0.22358,0.23259,-0.17657,-0.16575,-0.19099,-0.1964,0.0054795,-0.17116,-0.21262,-0.22884,-0.23244,-0.11889,-0.1982,-0.22343,-0.046792,-0.23965 -0.24512,-0.25246,-0.25531,-0.27651,-0.25898,-0.24186,-0.25735,-0.28059,-0.27937,0.14833,0.25841,0.12713,0.12305,0.12794,0.14262,0.29796,0.11856,0.12305,0.12427,0.13365,0.11856,0.11326,0.12305,0.12957,0.13813 0.10874,0.11044,0.14612,0.14952,-0.28205,0.13423,0.14102,0.16141,-0.27525,-0.26675,0.16141,0.14952,0.14612,-0.27695,-0.31433,0.175,0.13593,0.11894,0.11724,-0.30074,0.16481,0.10534,0.093449,-0.29054,-0.31263 -0.37784,-0.37721,-0.37721,-0.37815,-0.37753,0.11795,0.15432,0.091293,-0.0096837,-0.0087429,0.11669,0.11669,0.12359,-0.0024711,-0.012506,0.12861,0.11419,0.16342,0.11983,-0.011879,0.22018,0.16028,0.16091,0.16436,-0.019091 -0.090886,0.10167,0.2172,0.17869,0.2172,-0.26419,-0.03312,0.15944,0.14018,0.27497,-0.34121,-0.26419,-0.013864,0.082414,0.19795,-0.32195,-0.090886,0.0053916,0.2172,0.14018,-0.39898,-0.24493,-0.090886,0.12092,0.10167 0.35502,0.35502,0.35605,0.35399,0.35399,-0.10391,0.36017,-0.12763,-0.095664,-0.1101,-0.11526,-0.10495,-0.099789,-0.10804,-0.1132,-0.12145,-0.12042,-0.11216,-0.11938,-0.1101,-0.11526,-0.11938,-0.1132,-0.11216,-0.11216 0.2824,0.30728,-0.1157,-0.13228,-0.1779,0.29691,-0.12606,-0.13228,-0.13436,-0.15924,0.29691,-0.1468,-0.12192,-0.12814,-0.14265,0.29069,0.28862,-0.12606,-0.13436,-0.1468,0.28447,0.28033,-0.13021,-0.13436,-0.1385 -0.047516,-0.10001,-0.12487,-0.14697,-0.16907,0.40555,-0.058567,-0.10001,-0.13316,-0.16631,0.38345,-0.025416,-0.097243,-0.11382,-0.15526,0.37516,0.051936,-0.053042,-0.12211,-0.14144,0.38345,0.39173,-0.030941,-0.08343,-0.12211 -0.40615,-0.38834,-0.38763,-0.40045,-0.39974,0.077668,0.071967,0.071255,0.12042,0.11615,0.16246,0.077668,0.054154,0.11044,0.086931,0.093344,0.089068,0.06983,0.10617,0.074817,0.12256,0.16104,0.12683,0.11757,0.071967 -0.43692,0.037993,0.097357,0.12704,0.12704,-0.25883,0.067675,0.21609,0.097357,0.097357,-0.4666,0.008311,0.097357,0.097357,0.15672,-0.43692,0.037993,0.097357,0.15672,0.067675,-0.31819,0.067675,0.067675,0.15672,0.037993 0.21444,0.20292,-0.28697,-0.27121,-0.27363,0.25021,0.21019,-0.29122,-0.27727,-0.095383,0.25263,0.23384,-0.055973,-0.073556,-0.091745,0.2781,0.2781,-0.062036,-0.071737,-0.080832,0.28234,-0.04991,-0.060217,-0.077194,-0.083863 0.34687,0.065481,-0.070462,-0.07268,-0.06761,0.35068,0.35987,-0.069828,-0.069511,-0.067293,0.35891,0.34941,-0.068244,-0.19151,-0.20102,0.063579,0.064847,-0.19626,-0.1988,-0.20324,0.064847,0.064847,-0.20545,-0.2045,-0.20292 -0.36514,0.034648,-0.065299,-0.031983,0.26786,-0.23188,-0.031983,0.067964,0.13459,0.13459,-0.29851,-0.16525,0.067964,0.23454,0.40112,-0.29851,-0.098614,-0.16525,0.13459,0.30117,-0.065299,-0.26519,0.067964,0.034648,0.20123 -0.087252,-0.34488,-0.43076,-0.44794,-0.44794,0.10168,0.067328,-0.01855,-0.087252,-0.052901,0.18756,0.084504,0.032977,0.10168,0.032977,0.17038,0.067328,0.15321,0.11885,0.050153,0.25626,0.18756,0.11885,0.084504,0.10168 0.10814,0.19861,0.19137,0.19137,0.22033,-0.029387,0.21309,0.21309,0.20585,0.24566,-0.2031,0.053851,0.21671,0.17328,0.12261,-0.26824,-0.22481,-0.098148,-0.10539,-0.27548,-0.27548,-0.23929,-0.21034,-0.14158,-0.28272 0.085128,-0.14736,-0.0042922,-0.16525,-0.1116,0.19243,-0.075829,-0.12948,-0.1116,-0.12948,0.19243,-0.093713,-0.093713,-0.075829,-0.057944,0.47858,-0.022176,-0.057944,-0.022176,-0.075829,0.71107,0.013592,-0.057944,-0.14736,-0.093713 -0.14649,-0.22552,-0.12014,0.037939,0.077458,-0.186,-0.2387,-0.2387,0.051112,0.20919,-0.14649,-0.22552,0.024766,0.13015,0.23554,-0.10697,-0.25187,0.13015,0.26188,0.28823,-0.22552,-0.14649,0.13015,0.32775,0.35409 0.28116,0.26207,-0.10934,-0.12149,-0.10587,0.39311,0.2855,-0.12409,-0.11976,-0.10413,0.27856,-0.12149,-0.13451,-0.12062,-0.10847,0.27596,-0.13364,-0.13017,-0.13017,-0.1267,0.43476,-0.14145,-0.12236,-0.1293,-0.12757 0.16787,0.19495,0.086645,0.059568,0.059568,0.1408,0.19495,0.1408,-0.075814,-0.021661,0.2491,0.11372,0.19495,0.086645,0.086645,0.059568,0.032492,0.11372,-0.048738,0.0054153,-0.37366,-0.3195,-0.3195,-0.42781,-0.40073 0.32274,0.42235,0.25633,0.32274,0.22313,0.15672,0.12352,0.05711,0.023907,0.05711,0.023907,-0.009297,-0.10891,-0.20852,0.12352,-0.009297,-0.24172,-0.075704,-0.20852,-0.24172,-0.20852,-0.17532,-0.27493,-0.14211,-0.20852 -0.26307,0.14931,0.17907,0.19182,0.19182,-0.22906,-0.067511,0.11104,0.21733,0.22583,-0.23331,-0.20781,-0.17379,0.12805,0.22158,-0.21206,-0.21206,-0.1993,0.16631,0.22158,-0.21631,-0.22906,-0.1993,0.20883,0.23008 0.13893,0.13735,0.13261,-0.29513,-0.2888,0.13972,0.13577,0.13419,-0.27853,-0.29118,0.13577,0.13498,0.13656,0.13735,-0.29671,0.14288,0.13814,0.13577,0.13656,-0.29118,0.13814,0.13735,0.13972,-0.28564,-0.30462 0.29276,0.2955,-0.12833,-0.14479,-0.14022,0.29184,0.2923,-0.13702,-0.13519,-0.14159,0.29047,-0.13107,-0.13336,-0.13519,-0.14022,0.29093,-0.13519,-0.13656,-0.1393,-0.13839,0.28544,0.29276,-0.14022,-0.13839,-0.13702 -0.20958,-0.20213,0.20407,0.17984,0.17798,-0.21517,-0.21331,-0.19281,0.17798,0.18543,-0.21704,-0.21331,0.21525,0.18543,0.18543,-0.21331,-0.20772,0.21152,0.18171,0.19661,-0.20772,-0.21331,-0.18909,0.19289,0.20034 0.10866,0.10646,0.10841,0.11061,-0.25147,0.10304,0.10841,0.1089,-0.25342,-0.25342,0.10475,0.11257,0.10841,-0.25049,-0.25269,0.1299,0.12868,0.12917,-0.25342,-0.25245,0.12648,0.25906,0.41947,-0.25245,-0.25318 0.30618,0.2638,0.30561,0.23287,0.31248,0.29301,0.3016,0.30847,-0.1268,-0.11936,-0.13768,-0.1331,-0.14456,-0.1268,-0.11077,-0.14112,-0.14112,-0.14627,-0.14685,-0.13768,-0.13997,-0.13768,-0.14456,-0.14914,-0.14055 0.13298,0.13298,0.070256,0.070256,-0.43157,0.13298,0.038892,-0.023837,0.16435,-0.21202,0.22708,0.13298,0.070256,0.19571,-0.36884,0.10162,0.070256,0.0075274,0.13298,-0.43157,0.13298,0.0075274,0.070256,0.0075274,-0.43157 -0.14435,-0.10759,-0.081646,0.35945,0.33783,-0.1357,-0.12273,-0.10111,-0.083808,0.34648,-0.14219,-0.13786,-0.094619,-0.077321,0.34864,-0.1357,-0.13354,-0.08597,-0.083808,0.36161,-0.14651,-0.12921,-0.096781,-0.081646,0.3681 -0.18862,-0.32121,0.0019889,0.15116,0.035138,-0.23005,-0.28807,-0.0062983,0.18431,0.11801,-0.22177,-0.25492,0.22574,0.15116,0.14287,-0.20519,-0.24663,0.22574,0.20088,0.15945,-0.18033,-0.15547,0.28376,0.1926,0.22574 0.74168,0.14968,-0.050216,-0.097444,-0.19739,0.18812,0.15737,-0.074379,-0.11502,-0.14907,0.17824,0.045339,-0.074379,-0.1293,-0.15566,0.20899,-0.024954,-0.079871,-0.13918,-0.17762,0.19252,0.0014059,-0.088658,-0.14028,-0.16993 -0.26591,-0.26748,0.14957,0.14576,0.14823,-0.26636,-0.26546,0.14397,0.1424,0.14778,-0.26793,-0.26994,0.14151,0.14397,0.15182,-0.26725,0.13344,0.1377,0.15473,0.15495,-0.2621,-0.26457,0.19126,0.15585,0.15406 -0.18962,-0.13731,-0.098081,0.30078,0.4479,-0.16674,-0.14712,-0.12097,0.075196,0.2877,-0.17328,-0.1602,-0.065387,-0.026155,0.38252,-0.1602,-0.14712,-0.085004,-0.035963,0.10789,-0.10789,-0.085004,-0.088273,-0.042502,0.43483 0.17296,0.17846,-0.065891,-0.17571,-0.18669,0.28827,-0.013727,-0.1208,-0.14551,-0.15924,0.2718,-0.093346,-0.1208,-0.14276,-0.15649,0.31573,0.041182,-0.13178,-0.11256,-0.16747,0.37338,0.49144,-0.13178,-0.13727,-0.071382 0.16755,0.12846,0.031398,-0.075434,-0.15686,0.20533,0.13041,0.058107,-0.036349,-0.37118,0.20207,0.13953,0.014462,-0.055892,-0.15556,0.18578,0.14214,0.026187,-0.072829,-0.13602,0.21184,0.13041,0.047032,-0.062406,-0.69819 0.22273,0.21607,0.21607,-0.076817,-0.19996,0.2427,0.21607,0.22938,-0.22992,-0.22659,0.2427,-0.080145,-0.18665,-0.21328,-0.22992,0.25601,-0.0035945,-0.17334,-0.15337,-0.16668,0.26267,0.25601,-0.060175,-0.19331,-0.16668 -0.14707,-0.14828,-0.14734,0.16501,0.24998,-0.14693,-0.14747,-0.14788,0.24661,0.24607,-0.14734,-0.14747,-0.14788,0.36063,0.24647,-0.14693,-0.14882,-0.14653,0.35941,0.24539,-0.14788,-0.14761,-0.14869,-0.1495,0.24404 -0.060832,-0.053496,-0.060445,-0.061218,-0.059287,0.089355,-0.058129,-0.063148,-0.054268,-0.059287,-0.055426,-0.05311,-0.063148,-0.06392,-0.052338,-0.061218,-0.057357,-0.052724,-0.053882,-0.060832,-0.055426,0.089355,0.093216,-0.063148,0.95071 0.28885,0.29168,0.29309,0.29168,0.29733,0.28743,0.29026,0.28743,-0.14524,-0.10707,-0.15231,-0.13959,-0.12403,-0.13393,-0.13252,-0.15797,-0.11414,-0.12403,-0.13959,-0.14383,-0.16787,-0.1509,-0.12545,-0.13252,-0.13676 0.63877,0.36975,-0.060692,-0.10374,-0.071453,0.48812,0.089961,-0.060692,-0.10374,-0.10374,0.14377,0.057679,-0.060692,-0.1145,-0.14678,-0.017648,-0.082213,-0.092974,-0.12526,-0.092974,-0.10374,-0.092974,-0.13602,-0.1145,-0.10374 -0.39709,0.12553,0.078018,0.09052,0.10802,-0.39959,0.13803,0.080518,0.083019,0.10302,-0.39209,0.11803,0.083019,0.095521,0.093021,-0.40209,0.11803,0.083019,0.085519,0.10552,-0.40209,0.13803,0.083019,0.083019,0.10052 -0.27185,0.1101,0.10517,0.14707,0.13844,-0.31498,-0.28171,0.13474,0.1483,0.15692,-0.30882,-0.26939,0.1138,0.14953,0.15199,-0.2965,-0.27309,0.1138,0.14337,0.15323,-0.30635,0.11749,0.12735,0.13844,0.17294 -0.14098,-0.063785,-0.051597,-0.044826,0.21181,-0.25744,-0.06988,-0.057691,-0.067171,0.24295,-0.27302,-0.26557,0.20368,0.21181,0.2504,-0.27505,-0.27166,0.21519,0.21587,0.26598,-0.25135,-0.098996,-0.080036,0.22196,0.22941 -0.091415,-0.092822,-0.093023,-0.094833,-0.094632,-0.088197,-0.087393,-0.090409,-0.092219,-0.092822,-0.084779,-0.085583,-0.087393,-0.0888,-0.089806,-0.079148,-0.078746,-0.079148,-0.082567,-0.083974,0.49053,0.44489,0.45213,0.44348,-0.073317 -0.11441,-0.25249,-0.21304,-0.27222,-0.31167,0.0039451,0.0039451,-0.27222,-0.31167,-0.11441,0.082848,0.1223,-0.015781,-0.17359,-0.055232,0.22093,0.14203,0.28011,0.082848,0.0039451,0.26038,0.29983,0.22093,0.31956,0.063122 0.089093,0.22811,-0.14429,-0.18894,-0.20416,0.1033,0.21796,0.25754,-0.19503,-0.20924,0.10634,0.24333,0.23014,-0.17677,-0.21127,0.27276,0.2687,-0.17474,-0.2001,-0.2133,0.19767,0.1997,-0.075293,-0.20822,-0.2133 0.97219,-0.068269,-0.06979,-0.037846,0.019957,-0.078917,-0.054578,-0.068269,-0.024156,-0.024156,-0.081959,-0.022635,-0.024156,-0.027198,-0.034804,-0.086522,-0.022635,-0.0089443,-0.037846,-0.033282,-0.054578,-0.015029,-0.024156,-0.048494,-0.04393 -0.034613,-0.089679,-0.014947,0.04012,0.12665,-0.066079,-0.081812,0.020453,0.063719,0.24858,-0.26274,-0.12901,0.032253,0.020453,0.50425,-0.30601,-0.18408,-0.073946,0.047986,0.26432,-0.29028,-0.27454,-0.081812,0.10699,0.41378 -0.13098,-0.13246,-0.13836,-0.14204,-0.14425,-0.12656,-0.13541,-0.13983,-0.14204,-0.14204,-0.13688,-0.14057,-0.14057,-0.1472,-0.14204,-0.12877,-0.1214,0.29438,0.29364,0.29143,0.28627,0.29217,0.29217,0.29217,0.28922 -0.19802,-0.20863,0.27461,0.23153,0.19969,-0.20301,-0.20051,0.20781,0.20656,0.1922,-0.19802,-0.18054,-0.17492,0.17659,0.18596,-0.18803,-0.18803,-0.18678,0.17846,0.20531,-0.18428,-0.18553,-0.19053,0.20781,0.22029 -0.39411,0.18251,0.16385,0.093703,0.10019,-0.39776,0.10465,0.090864,0.10506,0.099785,-0.39898,0.088837,0.093703,0.090053,0.088837,-0.39817,0.08762,0.087215,0.086809,0.087215,-0.39776,0.079105,0.082349,0.087215,0.087215 0.43717,-0.037125,-0.0064149,-0.1156,-0.3954,0.35528,0.031119,-0.040537,-0.054185,-0.30327,0.28362,0.014058,-0.043949,-0.057598,-0.38517,0.30409,-0.037125,-0.040537,-0.020064,-0.033712,0.2768,-0.023476,-0.064422,-0.037125,-0.0064149 -0.25931,-0.2233,-0.1747,-0.1729,-0.41053,-0.2215,-0.2071,-0.1999,-0.1585,0.030533,0.20336,-0.14769,-0.12069,0.041334,0.043134,0.20156,0.23036,0.27357,0.26277,0.11514,0.14575,0.16735,0.21776,0.15835,0.20516 0.17459,0.20519,0.17949,0.1905,0.18438,0.1752,0.23273,0.19356,0.19295,0.1905,-0.21153,-0.19807,0.19111,0.18132,0.20213,-0.20357,-0.19745,-0.20602,-0.20663,-0.22499,-0.20541,-0.20908,-0.20786,-0.20724,-0.21581 0.29426,0.1658,0.074451,-0.1111,-0.33092,0.30283,0.17437,0.057322,-0.073994,-0.32806,0.29141,0.17722,0.085869,-0.073994,-0.28524,-0.099686,0.18293,0.088724,-0.12823,-0.29666,-0.1111,0.19435,0.094433,-0.039737,-0.30522 0.14255,0.13871,0.15065,-0.30349,-0.31543,0.12634,0.11014,0.12037,-0.30605,-0.30605,0.12378,0.11696,0.11994,0.11867,-0.36021,0.11867,0.11867,0.12122,0.12037,-0.36191,0.11611,0.12378,0.12506,0.12506,-0.28388 -0.33572,-0.3692,-0.22411,-0.27992,-0.23527,-0.034376,-0.034376,0.077234,-0.034376,-0.16831,-0.012054,-0.16831,0.077234,0.077234,-0.12366,0.088395,-0.00089287,0.088395,0.077234,0.043751,0.24465,0.32277,0.31161,0.33394,0.27813 -0.068255,-0.068255,-0.078158,-0.071226,-0.068255,-0.047458,-0.060332,-0.018737,-0.0068532,-0.062313,0.050587,0.047616,0.048606,-0.0038822,-0.059342,0.0089924,-0.052409,-0.057361,-0.071226,-0.051419,-0.065284,-0.059342,-0.05439,-0.091033,0.95973 -0.39838,0.12461,0.11706,0.076271,0.067811,-0.39717,0.12189,0.079896,0.073551,0.070832,-0.39838,0.1231,0.11525,0.076271,0.073854,-0.39627,0.12491,0.12068,0.088356,0.075062,-0.39838,0.13035,0.12673,0.1234,0.078688 -0.066287,-0.066287,-0.093016,-0.1732,-0.14647,-0.10638,-0.10638,-0.10638,-0.13311,-0.18657,0.14754,-0.052923,-0.052923,-0.14647,-0.14647,0.40146,0.32128,0.013899,-0.10638,-0.10638,0.48165,0.42819,0.21436,-0.066287,-0.14647 0.37198,0.13414,0.039006,0.039006,-0.17505,0.58604,0.2055,-0.056131,-0.12748,-0.15127,0.30063,0.039006,0.039006,-0.19884,-0.12748,0.13414,-0.079915,-0.1037,-0.1037,-0.27019,0.11036,-0.079915,-0.12748,-0.19884,-0.19884 -0.0085947,-0.073055,-0.13752,-0.073055,-0.073055,-0.0085947,-0.0085947,-0.073055,-0.0085947,-0.13752,-0.0085947,0.055866,-0.073055,-0.073055,-0.073055,0.055866,-0.073055,-0.13752,-0.13752,-0.13752,0.82939,0.39965,0.055866,-0.0085947,-0.073055 -0.25487,0.14182,0.1914,0.14182,0.17487,-0.25487,0.050908,0.1914,0.15835,0.15008,-0.33752,-0.11438,0.14182,0.15008,0.12529,-0.30446,-0.2714,0.11702,0.15835,0.14182,-0.34578,-0.30446,-0.12264,0.13355,0.14182 0.043437,0.17918,0.31492,0.24705,0.11131,0.22442,0.088683,0.11131,0.17918,0.17918,0.13393,0.11131,-0.0018099,0.11131,0.17918,-0.11493,-0.13755,-0.1828,-0.27329,-0.34116,-0.092303,-0.16017,-0.25067,-0.25067,-0.40903 -0.14684,-0.14742,-0.14842,0.17542,0.17484,-0.14725,-0.14742,-0.1475,0.30876,0.26697,-0.14717,-0.14684,-0.14742,-0.14875,0.31092,-0.14717,-0.14684,-0.14775,0.31474,0.31324,-0.14684,-0.14767,-0.14709,0.18032,0.31316 -0.097008,-0.10391,-0.10561,-0.1065,0.22405,-0.097231,-0.10168,-0.10502,-0.070006,0.22457,-0.098195,-0.099308,-0.099085,-0.098788,0.57863,-0.098417,-0.098195,-0.098195,-0.066297,0.43754,-0.098343,-0.097008,-0.096489,-0.064962,0.43546 -0.20776,-0.20636,-0.2018,-0.21144,-0.21197,-0.21004,-0.20653,-0.19969,-0.20075,-0.21425,0.17006,0.17006,-0.19899,-0.20004,0.17182,0.32996,0.17006,0.16901,0.18654,0.18514,0.19356,0.17322,0.1911,0.189,0.17006 0.14242,0.047418,-0.2486,-0.31607,-0.40969,0.19474,0.14517,0.14517,-0.043453,-0.34636,0.17822,0.16996,0.18372,-0.032438,-0.35186,0.1672,0.24981,0.069448,-0.090265,-0.099903,0.20851,0.21126,0.039157,-0.084758,-0.12882 -0.020213,0.21362,-0.1867,-0.18877,-0.18393,0.22053,0.22053,-0.18739,-0.19188,-0.18393,0.2226,0.22537,-0.18739,-0.18566,-0.1867,0.22986,0.22882,0.22053,-0.18739,-0.18531,0.22433,0.22744,0.2157,-0.1867,-0.18739 -0.20631,-0.20356,-0.096104,0.31443,-0.10437,-0.19254,-0.19529,-0.14019,0.28963,0.28137,-0.1705,-0.16223,-0.11264,0.25657,0.29239,-0.15396,-0.15947,-0.087838,0.22902,0.2483,-0.12641,-0.12917,-0.1209,0.21249,0.23728 -0.22864,-0.22864,-0.22779,-0.22695,-0.22695,-0.22892,-0.22807,-0.22892,-0.22892,-0.22807,0.34633,0.34183,0.2926,0.12636,0.064192,0.13058,0.12973,0.13058,0.12383,0.044501,0.13142,0.13142,0.13058,0.12636,0.031561 0.116,0.11723,0.10983,0.1049,0.10736,0.11353,0.116,0.1086,0.1123,0.10366,0.11476,0.116,0.10613,0.1123,0.11353,0.11846,0.11846,0.10983,0.11476,-0.32312,-0.3626,-0.36383,-0.36383,-0.35766,-0.3626 0.18991,0.19618,0.18912,0.18834,0.18991,0.18834,0.18598,0.18991,0.20168,0.20011,0.18677,0.19226,-0.20403,-0.21109,0.19854,-0.20874,-0.21031,-0.20325,-0.20011,-0.20011,-0.21423,-0.22129,-0.21109,-0.20168,-0.21109 0.17914,0.41424,0.18939,0.18222,0.17761,0.18529,0.19297,0.17965,0.17914,0.19195,-0.18605,-0.18758,-0.18656,0.18017,0.18426,-0.18861,-0.18861,-0.18707,-0.18861,-0.18349,-0.18912,-0.18912,-0.18861,-0.18707,-0.18553 -0.16516,-0.16628,-0.16405,-0.088802,0.21441,-0.16628,-0.16906,-0.1646,0.23559,0.2289,-0.17018,-0.16851,-0.16516,0.25343,0.22556,-0.17129,-0.16739,-0.16906,0.28186,0.22445,-0.17185,-0.16739,0.26625,0.28241,0.22222 0.30919,0.28364,0.16865,0.16865,0.15587,0.15587,0.13032,0.20698,-0.010221,-0.022998,0.079214,0.16865,0.20698,0.079214,-0.035774,-0.12521,0.053661,-0.12521,-0.18909,-0.18909,-0.21465,-0.21465,-0.30408,-0.2913,-0.44462 0.59195,0.22832,-0.10404,-0.094655,-0.11968,0.2291,-0.086835,-0.11342,-0.098565,-0.12515,0.2205,-0.10091,-0.12124,-0.10404,-0.11499,0.5028,-0.099347,-0.097783,-0.098565,-0.11342,0.19234,-0.071976,-0.094655,-0.11733,-0.088399 -0.39813,-0.40338,-0.39918,-0.40023,-0.39603,0.096487,0.091236,0.099637,0.10909,0.11959,0.093336,0.084935,0.10279,0.11014,0.12274,0.11119,0.099637,0.078635,0.10594,0.11854,0.089136,0.099637,0.085986,0.083885,0.094387 0.15286,0.062792,-0.044435,-0.014411,-0.2546,0.097104,0.062792,0.12713,0.2172,-0.26318,0.2558,0.019901,0.097104,-0.061591,-0.29749,0.38447,0.002745,0.028479,-0.14308,-0.34896,0.35016,0.084237,0.037057,-0.18168,-0.3704 0.035685,0.25871,0.27899,0.33981,0.36009,0.11679,0.035685,0.15734,0.27899,0.11679,-0.12652,-0.0048661,-0.0048661,0.076235,-0.0048661,-0.24817,-0.20762,-0.045417,-0.085967,-0.12652,-0.32927,-0.20762,-0.085967,-0.28872,-0.28872 0.20912,0.20912,0.13799,0.24468,0.17355,0.17355,0.13799,0.13799,0.09057,0.055006,0.09057,0.09057,0.078715,0.007587,0.007587,0.13799,-0.016122,-0.063541,-0.063541,-0.17023,-0.08725,-0.31249,-0.38362,-0.43104,-0.45475 0.16598,0.16295,0.16295,0.052368,0.45267,0.16144,0.16598,0.064866,0.05767,0.17166,0.17772,0.16825,0.060321,0.058427,0.17318,-0.20894,-0.20781,-0.2044,-0.20553,-0.304,-0.20667,-0.20629,-0.20553,-0.20516,-0.3021 -0.13663,-0.13663,-0.099094,0.23873,0.23873,-0.39938,0.12612,0.013513,0.013513,0.35133,-0.24924,-0.13663,-0.061559,-0.061559,0.3138,-0.28677,-0.099094,0.088584,0.088584,0.3138,-0.17417,-0.17417,-0.13663,0.20119,0.16366 -0.24011,-0.1354,-0.093515,-0.091611,0.31009,-0.16967,-0.11255,-0.099226,-0.089707,0.30628,-0.17919,-0.11636,-0.091611,-0.063054,0.30248,-0.15063,-0.13349,-0.063054,0.34246,0.32913,-0.15253,-0.13349,-0.089707,0.312,0.30248 0.11367,0.12618,0.1368,0.092896,0.15096,0.11508,0.12854,0.12807,0.098089,0.14978,0.09266,0.094785,0.12382,0.097617,0.092896,0.08912,0.098325,0.097381,0.10092,-0.35228,-0.35558,-0.35629,-0.35204,-0.3544,-0.357 -0.083145,-0.086381,-0.0955,-0.094324,-0.091676,0.43607,-0.081086,-0.083439,-0.091088,-0.088146,0.44901,-0.081968,-0.085498,-0.086969,-0.094029,0.4649,-0.084616,-0.086969,-0.087263,-0.087558,0.48167,-0.087263,-0.085793,-0.086969,-0.081968 0.32041,-0.1241,-0.12568,-0.12615,-0.12425,0.32025,-0.12457,-0.12457,-0.1252,-0.12552,0.31836,-0.12473,-0.1241,-0.12568,-0.1252,0.32168,0.31851,-0.12267,-0.12473,-0.1252,0.325,0.32073,-0.12362,-0.12457,-0.12441 -0.16127,-0.17798,-0.1738,-0.16754,-0.1738,0.21143,-0.17902,-0.16963,-0.16649,-0.17902,-0.1738,-0.18006,-0.17798,-0.16963,-0.16754,0.26362,0.28972,0.24588,0.093457,0.080929,0.29494,0.25527,0.24692,0.23022,0.20516 -0.41414,-0.099337,-0.23925,-0.23925,-0.48409,0.075552,-0.099337,-0.20427,-0.20427,-0.064359,0.0055965,0.040574,0.0055965,0.11053,0.0055965,0.21546,0.25044,0.11053,0.25044,0.11053,0.21546,0.18049,0.18049,0.11053,0.18049 0.26975,0.26332,0.25501,-0.18108,-0.18203,0.27107,0.26994,0.25387,-0.17995,-0.18184,0.26767,0.26294,-0.18184,-0.17976,-0.18221,0.061252,0.05974,-0.18127,-0.1807,-0.18165,0.060874,0.05974,-0.18108,-0.18165,-0.18014 0.40703,0.12378,0.27188,0.27859,0.38738,0.29153,0.13145,-0.14364,0.12618,0.26852,-0.14892,-0.15083,-0.147,-0.13262,-0.14604,-0.14652,-0.14604,-0.14173,-0.13837,-0.14029,-0.14604,-0.13262,-0.14317,-0.14317,-0.13933 0.43205,0.30125,0.31846,0.0086741,0.22208,0.27716,0.28748,0.30125,-0.022305,-0.070494,-0.036073,-0.06361,-0.14278,-0.15655,-0.11868,-0.042957,-0.14966,-0.14966,-0.15999,-0.18408,-0.1531,-0.17376,-0.18408,-0.1772,-0.16343 0.31276,-0.13417,-0.1352,-0.14265,-0.1388,0.31456,0.28399,-0.12749,-0.14316,-0.14239,0.27731,0.27551,-0.13777,-0.14188,-0.14059,0.28117,0.30762,-0.12647,-0.13931,-0.14059,0.27654,-0.137,-0.13648,-0.13109,-0.13443 0.1267,0.14567,0.14202,-0.31777,-0.3309,0.12451,0.12159,0.1121,-0.31996,-0.32871,0.1267,0.11648,0.11867,0.11283,-0.32506,0.134,0.12232,0.11575,0.11356,-0.31266,0.13838,0.11867,0.12524,0.12743,-0.30755 0.11246,0.12719,0.13088,-0.31663,-0.3197,0.12719,0.12904,0.12351,-0.31663,-0.32032,0.14254,0.13579,0.11614,0.11246,-0.31909,0.12106,0.13517,0.12597,0.12719,-0.31786,0.11492,0.11983,0.12351,0.1186,-0.33321 0.32343,0.32413,-0.11492,-0.11908,-0.12117,0.31927,0.32066,-0.12926,-0.12001,-0.12093,0.3158,-0.12741,-0.1288,-0.12371,-0.12556,0.31742,-0.12787,-0.1288,-0.12695,-0.12718,0.3239,-0.12949,-0.1251,-0.12302,-0.12533 -0.12347,-0.13042,-0.17765,0.30162,0.31273,-0.15125,-0.13875,-0.14987,0.30857,0.31829,-0.14709,-0.13042,-0.13597,0.27245,0.24605,-0.13597,-0.12764,-0.13042,-0.099855,0.24744,-0.13181,-0.13736,-0.14987,-0.12208,0.31273 0.16839,0.23094,0.19673,-0.20987,-0.20987,0.18891,0.2065,0.19184,-0.2216,-0.20791,0.17132,0.185,0.19184,-0.20107,-0.20889,0.17718,0.18891,0.21237,-0.22844,-0.20694,0.17523,-0.13754,-0.20889,-0.23821,-0.20596 -0.35658,-0.063099,-0.026414,-0.026414,0.1937,-0.099784,-0.13647,0.010272,0.23038,0.083643,-0.28321,-0.13647,0.12033,0.083643,0.23038,-0.13647,-0.13647,-0.099784,0.1937,0.52387,-0.24653,-0.17316,-0.13647,0.083643,0.30376 -0.13023,-0.046028,0.038169,0.31883,0.37496,-0.10216,-0.092804,-0.0086068,0.18785,0.41238,-0.18636,-0.14894,-0.083449,0.05688,0.42174,-0.13958,-0.22378,-0.13023,-0.046028,0.20656,-0.18636,-0.177,-0.21442,-0.14894,0.047525 0.21814,0.20661,0.19508,0.1509,-0.33892,0.25847,0.16051,0.1778,0.1048,-0.41383,0.056781,0.0068383,0.033731,0.041414,-0.39847,0.068307,0.018364,-0.068076,0.016443,-0.3466,0.066386,0.087515,-0.039263,0.074069,-0.337 0.84208,-0.078882,-0.078452,-0.075446,0.029125,0.29088,-0.079096,0.034064,-0.078237,-0.079955,0.28637,-0.078667,0.033635,-0.073728,-0.082317,-0.084464,-0.086397,-0.079955,-0.077164,-0.078882,-0.08382,-0.082961,-0.079955,-0.078882,-0.078882 0.96298,0.013656,0.01556,-0.038379,-0.069473,-0.094222,-0.066935,0.0060411,-0.035841,-0.056147,-0.087876,-0.077088,-0.025688,-0.020611,-0.035206,-0.087241,-0.035841,-0.031399,-0.0060158,-0.037744,-0.089779,-0.079626,-0.058685,-0.016169,0.05173 0.18577,0.19154,0.0047751,-0.064541,-0.13386,0.18192,0.20887,0.022104,-0.062616,-0.13386,0.2185,0.11838,0.0028497,-0.1069,-0.13771,0.26279,0.12993,-0.014479,-0.08187,-0.15311,0.25508,0.11838,0.0067006,-0.53435,-0.48429 0.006726,0.006726,-0.065338,-0.017295,0.34302,-0.11338,-0.1374,-0.041317,0.24694,0.319,-0.20947,-0.18544,-0.23349,0.17487,0.34302,-0.16142,-0.16142,-0.25751,0.054768,0.24694,-0.23349,-0.18544,-0.16142,0.12683,0.29498 0.35673,-0.10492,-0.11017,-0.12853,-0.12853,0.37509,0.39346,-0.12066,-0.13377,-0.11541,0.35673,-0.068199,-0.097052,-0.11279,-0.097052,0.35411,-0.12328,-0.10754,-0.11804,-0.10754,0.28853,-0.11279,-0.11279,-0.11017,-0.11541 0.11725,0.13615,0.13436,-0.32021,-0.32028,0.11733,0.12179,0.12045,-0.32014,-0.31954,0.14165,0.12283,0.11948,0.11755,-0.32006,0.13994,0.12231,0.11948,0.11874,-0.32147,0.13875,0.11904,0.1174,0.11896,-0.32177 0.21603,-0.1023,-0.15142,-0.14778,-0.047732,0.20876,-0.047732,-0.15324,-0.13141,-0.13869,0.22149,0.22695,-0.1405,-0.14232,-0.16233,0.22149,0.2324,-0.12777,-0.1405,-0.12777,0.39612,0.48889,-0.10412,-0.15324,-0.19326 -0.11588,-0.11588,-0.086319,-0.027196,0.56403,-0.11588,-0.056758,-0.11588,-0.11588,0.57881,-0.071538,-0.14544,-0.086319,-0.11588,0.23885,-0.11588,-0.041977,-0.086319,-0.056758,0.22407,-0.056758,-0.14544,-0.1011,-0.056758,0.22407 -0.083994,-0.11929,-0.075171,-0.10164,0.3748,-0.10164,-0.10164,-0.092817,-0.15458,0.41009,-0.03988,-0.083994,-0.11929,-0.092817,0.32186,-0.092817,-0.10164,-0.11929,-0.092817,0.41891,-0.12811,-0.092817,-0.092817,-0.092817,0.4542 -0.28302,-0.28344,-0.28292,-0.28281,-0.2825,-0.044378,-0.043116,-0.04196,-0.28323,-0.28355,-0.045955,0.19364,0.19132,0.20068,0.20173,-0.045639,0.19269,0.19017,0.19921,0.20583,-0.045955,0.17482,0.18449,0.19521,0.11868 -0.33473,0.015162,-0.13063,0.04432,0.30674,-0.2181,-0.15978,0.16095,-0.15978,0.27758,-0.2181,-0.10147,0.015162,0.04432,0.30674,-0.18894,-0.15978,0.10263,0.19011,0.13179,-0.24726,-0.18894,-0.072311,0.19011,0.39421 0.28511,0.22041,0.22865,-0.15223,-0.14704,0.28572,0.22377,-0.14979,-0.15009,-0.14765,0.2961,0.22743,-0.1504,-0.14765,-0.15009,0.30373,-0.1504,-0.15009,-0.14765,-0.14735,0.31441,-0.14979,-0.14918,-0.14765,-0.14826 0.9569,-0.057507,-0.052553,-0.055305,0.10431,-0.06191,-0.055856,-0.053654,-0.055305,0.10211,-0.059158,-0.04815,-0.052553,-0.06136,-0.031087,-0.057507,-0.052553,-0.039894,-0.050351,-0.055856,-0.038793,-0.047599,-0.049251,-0.055856,-0.071267 0.92671,0.10429,0.11649,-0.042173,-0.03654,-0.019641,-0.032784,-0.06095,-0.080665,-0.049683,-0.064705,-0.083482,-0.077849,-0.085359,-0.038417,-0.083482,-0.087237,-0.079726,-0.069399,0.084571,-0.080665,-0.094748,-0.085359,-0.083482,0.10429 -0.2013,-0.20617,0.18813,0.17974,0.1838,-0.20374,-0.20617,-0.20861,0.18704,0.18813,-0.21158,-0.21023,-0.21131,0.19164,0.19327,-0.21023,-0.20915,0.19679,0.193,0.19976,-0.20834,-0.21023,0.20842,0.19462,0.19273 -0.26517,-0.28627,0.14823,0.14511,0.14589,-0.25033,-0.26986,0.14589,0.14823,0.14589,-0.26049,-0.26752,0.1326,0.15136,0.15058,-0.2683,0.14745,0.1412,0.15839,0.16386,-0.26127,-0.26752,0.14667,0.1412,0.18418 -0.095859,-0.093964,-0.096491,-0.10407,0.544,-0.095227,-0.094596,-0.095227,-0.10154,0.52758,-0.092069,-0.094596,-0.10407,-0.1047,0.28629,-0.092701,-0.094596,-0.099649,-0.094596,0.29008,-0.092701,-0.094596,-0.099649,-0.080068,0.27302 -0.38956,-0.39264,-0.38737,-0.39308,-0.39264,0.081753,0.078678,0.067258,0.070772,0.088781,0.20211,0.084828,0.067258,0.082632,0.086585,0.19728,0.067258,0.065062,0.15862,0.076043,0.19903,0.061108,0.068136,0.076921,0.075164 0.23573,0.4331,0.29212,0.20753,0.32032,0.038348,0.010151,0.17933,0.12294,0.15114,-0.07444,-0.07444,-0.046243,0.094742,0.010151,-0.24362,-0.21542,-0.35641,-0.18723,-0.07444,-0.13083,-0.30001,-0.13083,-0.13083,-0.13083 0.29871,0.25927,0.23297,0.21544,0.18915,0.26365,0.24612,0.24612,0.083968,-0.12639,0.28118,0.083968,-0.13515,-0.18774,-0.1746,-0.10448,-0.16583,-0.17898,-0.20966,-0.19213,-0.17021,-0.19213,-0.1746,-0.20089,-0.18774 0.21518,0.023239,0.016933,-0.21478,-0.21688,0.26595,0.26611,0.015801,-0.2185,-0.21785,0.054124,0.055094,0.014831,-0.21769,-0.21785,0.055256,0.2674,0.26482,-0.21672,-0.21818,0.051375,0.26611,0.33936,-0.21624,-0.21688 -0.19416,-0.21332,-0.19416,-0.24526,-0.13029,-0.091972,-0.18778,-0.16862,-0.18778,-0.27719,0.11241,-0.0089417,-0.0025548,-0.060037,-0.175,0.15712,0.099636,0.2657,0.3615,-0.0089417,0.061315,0.13157,0.24654,0.33595,0.37427 -0.13067,-0.1332,-0.1346,-0.12941,-0.12548,-0.084524,-0.12899,-0.11931,-0.12043,-0.11791,-0.079755,-0.079474,-0.11398,-0.11791,-0.11931,-0.076949,-0.076248,0.3478,-0.11861,-0.11959,0.34514,0.345,0.35089,0.36758,0.36997 -0.097814,-0.098793,-0.098304,-0.095858,-0.098793,-0.099771,-0.096836,-0.098793,-0.098304,-0.098793,-0.099771,-0.098793,-0.095858,-0.092435,-0.034724,-0.10222,-0.086566,-0.090478,-0.067492,-0.037169,0.41571,0.45973,0.46315,0.48271,-0.033746 -0.13862,-0.10822,-0.047422,-0.10822,-0.10822,-0.10822,-0.32101,-0.22981,-0.22981,-0.077821,-0.10822,-0.22981,-0.10822,-0.13862,0.013375,0.10457,0.074173,0.19577,-0.017023,0.043774,0.28696,0.37816,0.40856,0.22617,0.34776 0.29105,0.32458,0.32458,0.29105,0.12339,0.15692,0.089862,0.19045,0.15692,-0.01073,-0.077791,-0.01073,0.022801,0.056331,0.022801,-0.24544,-0.14485,0.056331,-0.31251,-0.14485,-0.14485,-0.31251,-0.24544,-0.31251,-0.14485 -0.15161,-0.16868,-0.10039,0.10449,0.61668,-0.16868,-0.11746,-0.11746,-0.032097,0.42888,-0.11746,-0.049171,-0.066244,0.053268,0.25815,-0.083317,-0.15161,-0.15161,-0.032097,0.30936,-0.10039,-0.16868,-0.066244,-0.066244,0.13863 0.29671,0.29671,0.30978,0.30891,0.28451,0.29671,-0.12231,0.31326,0.21395,-0.10401,-0.14931,-0.12231,-0.12318,-0.13625,-0.12666,-0.15628,-0.14409,-0.13102,-0.13538,-0.14322,-0.13886,-0.14757,-0.15018,-0.1467,-0.14322 0.042056,0.18549,0.19069,0.24321,-0.34699,0.048982,0.18347,0.24754,-0.018552,-0.34785,0.054177,0.18722,0.18001,-0.019417,-0.3516,0.046096,0.16269,0.15721,-0.017397,-0.37152,-0.011048,-0.0026783,-0.013645,-0.05405,-0.37411 0.84449,0.26939,0.16345,0.072644,0.012107,0.012107,0.027241,-0.018161,-0.033295,0.027241,0.027241,-0.048429,-0.048429,-0.10897,-0.10897,-0.018161,-0.063563,-0.093832,-0.2149,-0.10897,-0.078698,-0.19977,-0.093832,-0.10897,-0.10897 -0.049642,-0.049642,-0.049642,-0.16247,-0.23016,0.10831,-0.094772,-0.11734,-0.1399,-0.23016,0.176,-0.0045129,-0.027078,-0.1399,-0.1399,0.46935,0.10831,0.018052,-0.18503,-0.16247,0.51447,0.40165,0.085746,-0.0045129,-0.094772 -0.23756,-0.20461,-0.1639,0.17724,0.17336,-0.23756,-0.19686,0.23733,0.18499,0.17143,-0.22012,-0.20073,0.23539,0.1753,0.17336,-0.22787,-0.19686,-0.15809,0.1753,0.17143,-0.22981,-0.20267,0.24508,0.18306,0.17336 0.21249,-0.086193,-0.1502,-0.2142,-0.57689,0.19116,0.063151,-0.022188,-0.19287,-0.29954,0.19116,0.19116,0.041816,-0.043523,-0.17153,0.25516,0.19116,0.084486,0.041816,-0.1502,0.25516,0.14849,0.16983,0.020481,-0.1502 -0.16559,-0.055197,-0.11039,-0.055197,0.11039,-0.11039,-0.11039,-0.11039,-0.091995,0.12879,0,-0.11039,-0.11039,-0.055197,0.40478,-0.16559,-0.16559,-0.11039,0.036798,0.47837,-0.14719,-0.11039,-0.055197,0.091995,0.58877 -0.045547,-0.044743,-0.20546,-0.20626,-0.044743,-0.043538,-0.044342,-0.20747,-0.20867,-0.20908,-0.041931,-0.040324,-0.042333,-0.042333,-0.20988,-0.039922,-0.039922,-0.040324,-0.040726,-0.041931,0.32169,0.33294,0.31767,0.3229,0.54428 0.1396,0.12896,0.1273,-0.31905,-0.32718,0.13314,0.12573,0.12552,-0.31822,-0.32301,0.12969,0.12594,0.12448,0.12678,-0.31926,0.13293,0.11854,0.12292,0.1201,-0.31947,0.1176,0.11405,0.11541,0.11531,-0.3178 0.44705,-0.098767,-0.12043,-0.11393,-0.11393,0.47737,-0.092269,-0.11609,-0.1031,-0.098767,0.46438,-0.061946,-0.083605,-0.085771,-0.092269,0.43622,-0.070609,-0.081439,-0.090103,-0.081439,-0.055448,-0.064112,-0.064112,-0.066278,-0.070609 0.012403,-0.10327,-0.10522,0.38081,0.83768,-0.057585,-0.10036,-0.046892,0.073643,0.0075432,-0.11591,-0.10327,-0.11882,-0.11591,0.013376,-0.12174,-0.049808,-0.024535,0.0065711,0.024068,-0.14507,-0.13438,-0.027451,0.005599,0.0085152 -0.15203,-0.1505,-0.15814,-0.1612,-0.15661,-0.12604,-0.089344,-0.15203,-0.15814,-0.15355,-0.10616,-0.10005,-0.12909,-0.14438,-0.13521,0.3479,0.31732,-0.11686,-0.1031,0.21642,0.35707,0.32038,0.2898,0.24088,0.20266 0.035511,-0.03647,-0.089456,-0.10945,-0.14244,0.030512,-0.007478,-0.089456,-0.10445,-0.12645,0.52938,-0.00047987,-0.073461,-0.10345,-0.13245,0.52638,-0.018475,-0.065463,-0.094455,-0.12745,0.51838,-0.018475,-0.07546,-0.097454,-0.12745 -0.31158,-0.31158,-0.13784,-0.25367,-0.16679,-0.13784,-0.13784,-0.10888,-0.13784,-0.079922,0.0069498,-0.022008,-0.050965,-0.050965,-0.079922,-0.16679,0.23861,0.064865,0.32548,0.23861,0.26757,0.26757,0.35444,0.12278,0.26757 0.26912,0.072883,-0.15165,-0.13565,-0.1418,0.25558,0.22052,-0.20886,-0.21501,-0.14919,0.25927,0.21683,-0.21255,-0.20824,-0.23285,0.26297,0.22483,-0.22116,-0.2107,-0.24638,0.25866,0.048892,0.17992,0.043356,0.02121 -0.3022,0.11443,0.16203,0.13406,0.15908,-0.30318,-0.30514,0.15786,0.19932,0.15786,-0.29704,-0.30563,0.15418,0.16865,0.20963,-0.29606,-0.13535,-0.13265,0.16301,0.2003,-0.1378,-0.13535,0.10658,0.13504,0.12841 -0.28066,-0.046776,0.070165,0.0994,0.27481,-0.33913,0.070165,0.070165,0.27481,0.040929,-0.30989,-0.017541,0.011694,0.21634,0.15787,-0.48531,-0.017541,0.040929,0.0994,0.33328,-0.28066,-0.10525,-0.017541,0.070165,0.070165 0.21398,0.22101,-0.26511,-0.26403,-0.26565,0.16856,0.14206,0.090151,-0.26132,-0.26673,0.16423,0.10313,0.086366,-0.26241,-0.26132,0.16639,0.15882,0.11557,0.10583,-0.26511,0.16639,0.16477,0.1691,0.13449,-0.25916 0.57174,-0.063995,-0.062822,-0.063702,-0.10475,0.57203,-0.061943,-0.061943,-0.068101,-0.10622,0.30665,-0.062236,-0.067514,-0.10681,-0.10593,0.309,-0.063995,-0.10534,-0.10681,-0.094785,-0.065168,-0.10593,-0.10886,-0.1071,-0.065462 0.28349,0.11645,0.1069,0.11645,0.11645,0.25485,0.13077,0.083042,0.11645,0.11168,0.20713,0.1069,0.11168,0.092587,0.1069,-0.28921,-0.25581,-0.079224,0.016227,0.097359,-0.39421,-0.3608,-0.30353,-0.2749,-0.21763 0.1246,0.23327,0.088383,-0.31006,-0.2014,0.23327,0.23327,0.015938,-0.12895,-0.2014,0.5955,0.05216,0.015938,-0.12895,-0.2014,0.23327,-0.092729,-0.092729,-0.12895,-0.12895,0.1246,0.088383,-0.056507,-0.12895,-0.23762 -0.15203,-0.14477,-0.14888,0.4462,0.2363,-0.153,-0.14283,-0.14404,0.23993,0.23993,-0.15227,-0.14259,-0.14089,0.23969,0.24017,-0.15251,-0.14477,-0.14501,0.23945,0.24017,-0.15251,-0.14574,-0.14574,-0.14549,0.23122 -0.089992,-0.088881,-0.091104,-0.08814,-0.090733,-0.091474,-0.090363,-0.091474,-0.091104,-0.087769,-0.091844,-0.091104,-0.089622,-0.08851,-0.088881,-0.090363,-0.090733,-0.092956,-0.089622,-0.089251,0.45051,0.43791,0.45273,0.48681,-0.02405 0.15909,0.16221,-0.17011,-0.16889,-0.167,0.16072,0.21995,0.21737,-0.16944,-0.16835,0.21967,0.2194,-0.16944,-0.16767,-0.16686,0.22022,0.22239,0.21995,-0.16767,-0.26105,0.21574,0.22645,-0.25943,-0.16632,-0.26092 -0.48517,-0.0012903,0.14387,0.12774,0.12774,-0.45291,0.014839,0.095486,0.17613,0.079356,-0.42065,0.030968,0.14387,0.095486,0.030968,-0.34001,0.12774,0.16,0.047098,0.11162,-0.19484,0.063227,0.063227,0.12774,0.12774 -0.10795,-0.058515,-0.051774,-8.9885e-05,0.065077,-0.10121,-0.071998,-0.020314,0.051594,0.11002,-0.038291,-0.083233,-0.045032,0.022381,-0.067504,-8.9885e-05,-0.042785,-0.078739,-0.011326,-0.12818,0.93471,-0.013573,-0.047279,-0.045032,-0.17087 0.18867,0.18746,0.20553,0.18987,0.17542,0.19148,0.19469,0.20432,0.33159,0.1991,0.19951,0.20753,-0.18592,-0.18592,-0.18431,-0.18993,-0.18913,-0.18993,-0.19034,-0.19234,-0.18993,-0.19395,-0.19234,-0.19636,-0.19475 -0.18258,-0.17632,0.14921,0.15916,0.081456,-0.18074,-0.17779,0.13633,0.15032,0.14737,-0.26396,-0.17558,0.13559,0.12822,0.082929,-0.26911,-0.26617,0.26263,0.26263,0.14995,-0.26028,-0.26506,-0.1638,0.26595,0.26963 -0.12603,-0.2178,-0.064852,0.36341,0.14928,-0.064852,-0.27898,-0.18721,0.11869,0.17987,-0.27898,-0.15662,-0.15662,0.11869,0.33282,-0.12603,-0.18721,-0.064852,0.17987,0.27164,-0.034261,-0.18721,-0.12603,0.30223,0.24105 -0.13122,-0.1419,-0.16521,-0.16521,-0.14288,-0.12928,-0.16423,-0.16035,-0.15258,-0.14093,-0.12443,-0.12831,-0.13802,-0.15744,-0.1555,0.20664,0.23868,0.24354,0.45713,-0.13996,0.18723,0.24062,0.24257,0.26587,0.25519 0.38022,-0.038546,-0.20725,-0.21927,-0.22746,0.33217,-0.040184,-0.20835,-0.21271,-0.22418,0.3562,-0.03254,-0.028719,-0.0096092,-0.20016,0.37312,-0.037454,-0.023259,0.024787,-0.16358,0.19732,0.19131,0.152,0.02042,-0.15429 -0.1729,-0.17249,-0.17249,0.20304,0.32971,-0.17452,-0.17209,0.214,0.21725,0.309,-0.1729,-0.17209,-0.16925,0.23998,0.214,-0.17168,-0.17006,-0.16965,0.22212,0.22212,-0.17574,-0.16437,-0.17249,0.21644,0.01507 -0.063763,-0.063763,-0.042222,-0.063763,0.2809,-0.063763,-0.10685,-0.14993,-0.085305,0.45324,-0.12839,-0.14993,-0.063763,-0.085305,0.34553,-0.17147,-0.085305,-0.063763,-0.042222,0.32399,-0.14993,-0.085305,-0.19301,-0.063763,0.51786 -0.21566,-0.216,-0.2167,-0.21496,-0.21878,-0.21496,-0.21635,-0.2167,-0.21635,-0.21461,-0.21635,0.13311,0.13867,0.1425,0.35843,0.13033,0.1338,0.14354,0.14006,0.1418,0.13311,0.13415,0.14771,0.14389,0.35634 -0.1335,-0.3139,-0.19363,0.016838,0.46784,-0.19363,-0.1335,0.016838,0.19724,0.25737,-0.1335,-0.1335,-0.2237,0.10704,0.28744,-0.10343,-0.1335,-0.1335,0.046905,0.37764,-0.10343,-0.1335,0.016838,0.016838,0.25737 -0.17486,-0.17343,-0.17303,0.23459,0.20683,-0.17618,-0.17405,-0.17343,0.24089,0.2046,-0.17893,-0.17476,-0.17303,0.23134,0.20348,-0.18442,-0.17486,0.29468,0.22503,0.20266,-0.18635,-0.17842,-0.17638,0.22951,0.1985 -0.37923,-0.050763,0.29264,0.14333,0.09854,-0.37923,0.0089582,0.20305,0.08361,0.09854,-0.25979,-0.035833,0.18812,0.053749,0.1284,-0.40909,0.0089582,0.15826,0.06868,0.09854,-0.40909,-0.020903,0.15826,0.053749,0.09854 0.50129,0.49595,0.020308,-0.043823,-0.11508,0.49238,0.059499,-0.061637,-0.11508,-0.13824,0.12541,-0.011757,-0.091921,-0.10795,-0.16496,0.070188,0.013182,-0.099047,-0.14002,-0.17387,0.016745,-0.068763,-0.13467,-0.15605,-0.17208 0.37072,0.12373,-0.010987,-0.12026,-0.21382,0.36548,0.10802,-0.014729,-0.12026,-0.23103,0.37072,0.11325,-0.036434,-0.10903,-0.22804,0.36548,0.13271,-0.0064965,-0.11727,-0.22205,-0.24525,0.099783,-0.0094903,-0.12251,-0.24226 -0.094335,-0.097557,-0.10078,-0.10271,0.37154,-0.093369,-0.096913,-0.096268,-0.1011,0.37154,-0.093691,-0.096268,-0.096591,-0.098846,0.59933,-0.094658,-0.095624,-0.097879,-0.097235,0.29744,-0.094658,-0.093691,-0.098202,-0.096913,0.29744 -0.11009,-0.11009,-0.11009,-0.11009,-0.11116,-0.11009,-0.11197,-0.11116,-0.11009,-0.11009,-0.11009,-0.11009,-0.11009,-0.11009,-0.11009,0.38898,-0.11009,-0.10309,-0.10766,-0.10766,0.38844,0.39006,0.38683,0.38144,0.14806 -0.22296,0.18037,0.14004,0.11584,0.1239,-0.29556,0.10777,0.091637,0.091637,0.10777,-0.3359,0.059371,0.10777,0.1239,0.10777,-0.4811,0.043237,0.14004,0.10777,0.083571,-0.51336,-0.15843,0.099704,0.11584,0.059371 0.32332,-0.0012985,-0.0012985,0.063626,-0.098685,0.32332,-0.066223,-0.0012985,-0.16361,-0.13115,0.45317,0.12855,-0.16361,-0.19607,-0.19607,0.29086,0.031164,-0.098685,-0.16361,-0.033761,0.38825,-0.26099,-0.13115,-0.13115,-0.16361 -0.12145,-0.12181,-0.11615,-0.12357,0.18154,-0.12145,-0.12181,-0.11862,-0.12393,0.43327,-0.12145,-0.12074,-0.069833,-0.070187,0.4262,-0.11438,-0.06948,-0.068773,-0.07054,0.43327,-0.054277,-0.06948,-0.068066,-0.065591,0.45731 -0.097479,-0.096858,-0.10059,-0.10059,-0.10307,-0.094372,-0.096858,-0.098722,-0.10245,-0.10307,-0.090643,-0.092507,-0.094993,-0.097479,-0.10121,0.036148,-0.093129,-0.094372,-0.096858,-0.098722,0.031176,0.48116,0.48551,0.4911,0.32888 0.32176,0.30851,-0.13987,-0.13949,-0.14179,0.29258,0.28989,-0.13911,-0.13949,-0.14064,0.28624,0.27952,-0.13911,-0.14103,-0.13987,0.27625,0.27241,-0.13987,-0.14218,-0.14064,-0.088795,-0.13603,-0.13872,-0.14141,-0.13911 0.94026,-0.020574,-0.092011,-0.024146,0.029432,-0.0027146,-0.045577,-0.11701,-0.052721,-0.059865,0.022288,0.022288,-0.0098584,0.14016,-0.020574,-0.056293,-0.052721,-0.095583,-0.01343,-0.049149,-0.052721,-0.077724,-0.063436,-0.14559,-0.10273 0.32017,0.33919,-0.12432,-0.12324,-0.12566,0.31776,0.32392,-0.12539,-0.12753,-0.12753,0.31561,-0.1211,-0.12512,-0.12378,-0.12673,0.31561,-0.12458,-0.12378,-0.12271,-0.12324,0.31213,-0.12726,-0.12619,-0.12217,-0.12405 0.15857,0.13316,0.15857,0.082334,0.0060988,0.15857,0.13316,0.0060988,0.082334,0.056923,0.15857,0.082334,0.23481,0.10775,0.056923,0.0060988,0.10775,0.15857,-0.044725,0.031511,-0.32425,-0.32425,-0.45131,-0.29884,-0.47673 -0.20872,-0.20898,-0.20898,-0.20834,-0.20847,-0.20885,-0.20974,-0.20872,-0.2091,-0.20872,-0.14118,-0.14271,0.21713,0.21789,0.21687,-0.013096,0.21751,0.21751,0.21789,0.21776,-0.013223,0.21954,0.2198,0.2184,0.21852 -0.13601,-0.16533,-0.048074,-0.19464,-0.1067,-0.1067,-0.19464,-0.1067,-0.22396,-0.1067,-0.19464,-0.28258,-0.077388,-0.048074,-0.13601,0.098493,0.18643,0.098493,0.24506,0.06918,0.45026,0.39163,0.15712,0.36232,0.06918 0.26137,0.2729,0.20951,0.048172,0.11732,0.30747,0.24409,0.19223,0.059696,-0.10165,0.23256,0.2268,0.17494,-0.020974,-0.17079,-0.17079,-0.17079,-0.18808,-0.21113,-0.1996,-0.21689,-0.22841,-0.22841,-0.23418,-0.20536 -0.38067,-0.37673,-0.38263,-0.43279,-0.42197,0.09138,0.10613,0.10908,0.10023,0.11302,0.083513,0.10121,0.11203,0.13465,0.1022,0.08548,0.095314,0.097281,0.097281,0.095314,0.095314,0.095314,0.09138,0.093347,0.095314 0.64737,0.13483,0.031607,-0.03602,-0.10365,0.59042,0.052963,-0.050257,-0.053817,-0.092969,0.12415,-0.018224,-0.057376,-0.11788,-0.11077,0.024488,-0.03602,-0.071613,-0.13568,-0.18907,-0.025342,-0.057376,-0.092969,-0.14992,-0.20687 0.93477,0.0183,-0.017895,0.025539,0.042913,0.0516,-0.052643,-0.049747,0.0081657,0.022644,0.0023744,-0.096077,-0.051195,-0.022238,0.037122,-0.10911,-0.13227,-0.075808,-0.042508,0.0009266,-0.17281,-0.14386,-0.10187,-0.042508,-0.033821 0.16537,0.16537,0.16537,0.13541,0.25524,0.045536,0.075494,0.16537,0.10545,0.22528,0.045536,0.015578,0.19533,-0.01438,0.16537,-0.10425,0.13541,-0.074295,-0.10425,-0.044338,-0.46375,-0.25404,-0.31396,-0.284,-0.40383 0.14428,0.11387,0.25985,-0.18783,-0.25109,0.16618,0.12847,0.13942,-0.1927,-0.22555,0.15401,0.2489,0.2489,-0.20852,-0.22433,0.11022,0.14307,0.25985,-0.21095,-0.24623,-0.1854,0.16131,0.14307,-0.2146,-0.27421 -0.38488,-0.34578,-0.34277,-0.45105,-0.45105,0.054261,0.048245,0.066292,0.11141,0.15352,0.087347,0.072308,0.10239,0.12043,0.13246,0.10539,0.1084,0.10239,0.1084,0.12043,0.072308,0.099378,0.09637,0.11141,0.10239 0.79856,0.34831,-0.033333,-0.029045,-0.037621,0.35831,-0.049056,-0.066208,-0.094796,-0.071926,-0.066208,-0.06335,-0.08622,-0.097655,-0.036192,-0.060491,-0.054774,-0.093367,-0.08622,-0.087649,-0.06335,-0.069067,-0.083361,-0.089078,-0.08622 0.20305,-0.06159,-0.16985,-0.097678,-0.049561,0.22711,0.010586,-0.06159,-0.097678,0.10682,0.34741,-0.025502,-0.25406,-0.1458,-0.097678,0.35944,0.010586,-0.1458,-0.20594,-0.1458,0.58799,0.094791,-0.097678,-0.1458,-0.1458 0.17851,0.17967,0.17386,0.16921,-0.29063,0.12158,0.1212,0.17638,0.15856,-0.28888,0.11849,0.12062,0.12042,-0.28869,-0.29101,0.11326,0.11423,0.11403,-0.2883,-0.29121,0.11268,0.11268,0.1121,-0.28811,-0.29063 -0.33737,-0.33737,-0.3652,-0.33737,-0.3652,0.024495,-0.17035,0.024495,0.024495,-0.086846,0.024495,0.080166,0.108,0.21934,0.080166,0.21934,0.080166,0.080166,0.16367,0.080166,0.21934,0.13584,-0.031176,0.16367,0.30285 -0.2827,0.10238,0.10909,0.1099,0.1099,-0.2827,0.10299,0.10848,0.10889,0.10848,-0.28229,-0.28616,0.10828,0.10767,0.31617,-0.28005,-0.28453,0.10726,0.104,0.22341,-0.28188,-0.2829,0.10604,0.11092,0.21934 0.29189,0.35329,0.36011,0.36011,0.36693,-0.081046,-0.08332,0.3874,-0.074224,-0.087868,-0.12198,-0.085594,-0.096964,-0.11061,-0.11743,-0.1379,-0.096964,-0.14017,-0.13107,-0.11743,-0.13335,-0.12653,-0.14244,-0.1379,-0.096964 0.17564,0.16208,0.15975,-0.21407,-0.21407,0.17892,0.1684,0.35308,-0.21524,-0.20939,0.18289,0.17027,0.16582,-0.20963,-0.21594,0.18079,0.18009,0.1691,-0.21266,-0.21594,-0.044343,0.17728,-0.2295,-0.22856,-0.21477 -0.27846,-0.074908,-0.034197,0.29149,0.3322,-0.034197,-0.23775,0.047225,0.16936,0.16936,-0.19704,-0.27846,-0.11562,0.25078,0.25078,-0.27846,-0.074908,-0.034197,0.047225,0.21007,-0.19704,-0.11562,-0.034197,-0.15633,0.37291 -0.14498,-0.14485,-0.14535,-0.14535,-0.1417,-0.14485,-0.14624,-0.14498,-0.14409,-0.14296,-0.1451,-0.14472,-0.14233,-0.14309,-0.14372,0.29144,0.2898,0.28841,0.28791,-0.080075,0.2927,0.29535,0.28892,0.28917,-0.079318 0.26166,0.084063,-0.15273,0.11366,-0.034336,0.26166,0.26166,0.024864,-0.24153,-0.30073,0.23206,0.23206,0.054464,-0.15273,-0.093535,0.23206,0.054464,-0.12314,-0.12314,-0.15273,0.20246,0.20246,-0.15273,-0.30073,-0.38953 -0.2241,-0.22314,-0.2241,-0.22314,-0.22474,-0.21707,-0.22346,-0.22218,-0.22538,-0.22122,0.12141,0.12268,0.123,0.11949,0.12939,0.11789,0.11693,0.11214,0.12651,0.54865,0.10863,0.11183,0.10991,0.13003,0.13003 0.35998,0.24213,0.18856,-0.30427,-0.20785,0.42426,0.2207,0.059997,-0.15428,-0.12214,0.34927,0.049283,-0.10071,-0.089995,-0.15428,0.10285,0.070711,-0.13285,-0.22927,-0.19713,-0.014999,0.092138,-0.12214,-0.17571,-0.15428 -0.39931,-0.39889,-0.39931,-0.39945,-0.39945,0.10849,0.1164,0.11111,0.1056,0.10419,0.12071,0.11068,0.091333,0.10214,0.09783,0.10623,0.10433,0.09098,0.093028,0.093028,0.10581,0.10694,0.091545,0.068806,0.067253 -0.058187,-0.057307,-0.04675,0.48198,0.83212,-0.055548,-0.055108,-0.055108,-0.062146,-0.057307,-0.056867,-0.054668,-0.055108,-0.057747,-0.055987,-0.059506,-0.058627,-0.058627,-0.056867,-0.057747,-0.059506,-0.059946,-0.058187,-0.059067,-0.058187 -0.39651,-0.51492,-0.47263,-0.30347,-0.21043,-0.015901,-0.007443,0.077137,0.10251,0.11943,0.094053,0.10251,0.094053,0.11943,0.15326,0.10251,0.094053,0.11097,0.13634,0.1448,0.068679,0.12788,0.051763,0.13634,0.085595 0.96067,-0.031434,-0.025038,-0.021041,-0.013846,-0.067408,-0.057016,-0.017843,0.015733,0.04771,-0.080999,-0.074603,-0.023439,0.017332,0.021329,-0.073004,-0.084196,-0.082598,-0.038629,-0.0082502,-0.075403,-0.084196,-0.097787,-0.084996,-0.021041 0.26674,0.29805,0.26674,0.29805,0.32936,0.01628,-0.046335,0.20413,-0.015028,0.20413,-0.077643,0.01628,-0.077643,0.17282,0.01628,-0.17157,-0.17157,-0.10895,-0.077643,-0.015028,-0.3281,-0.3281,-0.23418,-0.23418,-0.20287 -0.25387,0.11635,0.11635,0.11635,0.089911,-0.38609,0.089911,0.010578,0.11635,0.16924,-0.49186,0.010578,0.19569,0.089911,0.11635,-0.41253,0.037022,0.089911,0.063466,0.11635,-0.38609,0.063466,0.11635,0.11635,0.089911 0.40755,0.28051,-0.10062,-0.27848,-0.20225,0.33133,0.2551,-0.10062,-0.049801,-0.27848,0.35674,-0.024392,-0.20225,-0.15143,-0.075209,0.12806,0.15347,-0.075209,-0.22766,-0.049801,0.17888,0.0010163,-0.12603,-0.12603,-0.024392 0.1997,0.041208,-0.07766,-0.15691,-0.19653,0.39781,0.1997,0.0015849,-0.038038,-0.038038,0.35819,-0.07766,0.16008,-0.15691,-0.23615,0.27894,-0.038038,-0.15691,-0.19653,-0.35502,0.1997,0.23932,-0.15691,0.041208,-0.23615 -0.53818,-0.42729,-0.35336,-0.3164,-0.26712,-0.020699,0.028584,0.065547,0.028584,0.11483,0.11483,0.11483,0.11483,0.13947,0.15179,0.11483,0.065547,0.18876,0.11483,0.13947,0.028584,0.053226,0.10251,0.13947,0.10251 0.31737,-0.12345,-0.12494,-0.1242,-0.1242,0.31812,-0.12444,-0.12593,-0.12494,-0.1242,0.3211,-0.12494,-0.12444,-0.12444,-0.1242,0.32457,0.32184,-0.12444,-0.12519,-0.12494,0.3201,0.32184,-0.12494,-0.12519,-0.12593 0.14002,0.14158,0.1619,0.21819,-0.2821,0.12595,0.11031,0.099368,0.13533,-0.26177,0.1322,0.11813,0.12282,-0.2821,-0.29773,0.17285,0.10093,0.12751,-0.27272,-0.33838,0.14783,0.12282,0.1322,-0.25239,-0.32274 0.19018,0.16716,0.13327,0.095551,0.087239,0.21384,0.13519,0.11985,-0.27849,-0.27721,0.14159,0.12944,0.13519,-0.28681,-0.28808,0.13008,0.13647,0.12624,-0.29448,-0.29895,0.13136,0.12624,0.11537,-0.29831,-0.29192 -0.23266,-0.23266,-0.20985,-0.11861,-0.16423,-0.27828,-0.25547,-0.3239,-0.27828,-0.20985,0.10949,0.26916,0.1323,0.10949,0.33759,0.041058,0.20073,0.086678,0.15511,0.10949,0.086678,0.22354,0.1323,0.17792,0.1323 0.12426,0.091898,0.10403,0.12426,0.075719,0.12021,0.083808,0.10403,0.083808,0.11212,0.14448,0.10403,0.10808,0.083808,0.16066,0.12426,0.087853,0.095943,0.099988,-0.22764,-0.19124,-0.33281,-0.2964,-0.46629,-0.51887 -0.19195,-0.2391,-0.23803,-0.23803,-0.23588,0.029877,-0.19945,-0.19516,-0.21231,-0.20588,0.0020146,0.013802,0.20348,-0.0044151,-0.20802,0.23884,0.0063011,0.17776,-0.0044151,0.33422,0.21634,0.2592,0.29992,0.24634,0.14454 -0.14029,-0.13371,-0.12714,0.24495,0.25021,-0.13569,-0.13634,-0.12846,0.241,0.2627,-0.13766,-0.13634,-0.14095,0.26335,0.38037,-0.13569,-0.13766,-0.13569,-0.13043,0.32975,-0.13371,-0.13766,-0.14226,-0.13963,0.33698 0.45928,0.28832,0.21062,-0.22835,-0.22721,0.27774,0.032014,0.032674,-0.22825,-0.22929,0.27538,0.029654,0.029465,-0.22995,-0.23118,0.075722,0.029842,0.029842,-0.22939,-0.23203,0.074306,0.074589,0.074306,0.074117,-0.23222 -0.19269,-0.19934,0.2182,0.23593,0.14108,-0.19047,-0.19313,0.21288,0.21687,0.1659,-0.1856,-0.1918,-0.19047,0.20889,0.22574,-0.18249,-0.18914,-0.19712,0.22086,0.22263,-0.18604,-0.19047,-0.19889,0.21332,0.20535 0.31465,-0.12461,-0.12428,-0.1252,-0.12625,0.32425,-0.12257,-0.12415,-0.12559,-0.12599,0.32879,-0.12428,-0.12375,-0.1248,-0.12625,0.32688,0.32399,-0.12336,-0.12428,-0.12599,0.30334,0.32254,-0.12303,-0.12408,-0.12599 0.005632,-0.003168,0.005632,-0.084569,-0.35737,0.12223,0.087033,0.080433,0.089233,-0.31777,0.14203,0.13323,0.13323,0.13323,-0.35737,0.15083,0.15083,0.15083,0.14203,-0.34637,0.19703,0.19483,0.18823,-0.30237,-0.33757 -0.29375,-0.17402,-0.014368,0.14528,0.2251,-0.33366,-0.1341,-0.05428,0.30493,0.10537,-0.21393,-0.21393,0.14528,0.14528,0.38475,-0.21393,0.065456,-0.21393,0.065456,0.2251,-0.29375,0.025544,-0.014368,0.18519,0.14528 0.21839,0.20519,0.1876,0.17807,0.16781,0.21912,0.20812,0.19053,0.1854,0.17807,-0.20824,-0.21264,0.19786,0.18247,0.17514,-0.20384,-0.20531,-0.20751,-0.20971,-0.21117,-0.20751,-0.20531,-0.20751,-0.20751,-0.20751 0.16755,0.18091,0.18379,0.18222,0.23563,0.17017,0.18248,0.183,0.18641,0.2304,-0.20558,-0.21291,0.1796,0.18222,0.22568,-0.20584,-0.20742,-0.20768,-0.2082,-0.20584,-0.20742,-0.20742,-0.2082,-0.20715,-0.20637 0.16773,0.52988,0.1582,0.34881,0.40599,0.05337,0.043839,0.0629,0.11055,0.1582,-0.022873,-0.1563,-0.11818,-0.16583,-0.080054,-0.089585,-0.16583,-0.16583,-0.1563,-0.022873,-0.089585,-0.20395,-0.23254,-0.20395,-0.16583 -0.40167,0.078053,0.092315,0.12991,0.21419,-0.16116,-0.14755,-0.15533,0.34644,0.21873,-0.15144,-0.15273,-0.16311,0.22521,0.25049,-0.13264,-0.15857,-0.16894,0.074163,0.28939,-0.15987,-0.1657,-0.17348,0.081942,0.29134 -0.27092,-0.058565,-0.092095,0.17242,0.064377,-0.29327,-0.25602,0.034573,0.11281,0.12399,-0.30817,-0.31935,0.038298,0.17614,0.17242,-0.30072,-0.017584,0.15006,0.17242,0.17614,-0.30072,0.15006,0.19104,0.22085,0.26183 -0.15205,0.12709,-0.132,-0.13868,-0.13709,0.39158,0.12549,-0.13709,-0.13582,-0.13837,0.3954,0.1274,-0.13646,-0.13614,-0.13709,0.39413,0.1239,-0.13455,-0.13709,-0.13614,0.39413,0.11849,-0.13709,-0.13455,-0.13741 0.2891,-0.13216,-0.13751,-0.13751,-0.13799,0.2891,0.29251,-0.13702,-0.13605,-0.14043,0.29348,-0.14043,-0.13751,-0.13751,-0.13751,0.29154,0.29251,-0.13605,-0.13848,-0.13799,0.29154,0.29251,-0.1341,-0.13702,-0.13702 -0.16673,-0.16673,-0.16312,-0.17035,-0.16492,-0.12514,-0.15407,-0.15407,-0.16492,-0.16131,-0.06908,-0.067272,-0.083547,-0.13599,-0.13237,0.36493,0.37578,0.37036,-0.072697,-0.099822,0.27813,0.23473,0.24196,0.20941,0.17686 0.20405,0.20763,0.20828,-0.20139,-0.20171,0.20536,0.20568,0.20828,-0.20269,-0.20204,0.20405,0.2047,-0.20041,-0.20301,-0.20204,0.2047,0.20405,-0.20106,-0.20236,-0.20366,0.2047,-0.039471,0.20568,-0.20334,-0.20399 0.028048,0.0012437,-0.16065,-0.1703,-0.18209,-0.012694,0.003388,-0.013766,-0.1435,-0.16816,-0.0073335,-0.016983,-0.029849,-0.14886,0.058068,-0.00090061,-0.021272,-0.037354,-0.034137,0.34541,-0.029849,-0.029849,-0.031993,-0.038426,0.84181 -0.11462,-0.11462,-0.11595,-0.11462,-0.11395,-0.11328,-0.11462,-0.11529,-0.11261,-0.10727,-0.11328,-0.11061,-0.11595,-0.11729,-0.10259,-0.10727,-0.11328,-0.11328,0.35449,-0.10459,0.36452,0.3585,0.35249,0.35249,0.35249 0.19107,0.066999,-0.15013,0.098018,-0.30522,0.16005,0.066999,0.19107,-0.15013,-0.24318,0.25311,0.098018,0.066999,-0.30522,-0.15013,0.25311,0.37718,-0.057074,-0.15013,-0.15013,0.16005,0.16005,0.066999,-0.15013,-0.39827 0.49888,0.1494,0.15493,0.14571,0.14294,0.49611,0.16046,0.16093,0.14571,0.14525,-0.14291,-0.14291,-0.14014,-0.13784,-0.14199,-0.14936,-0.14752,-0.15121,-0.1466,-0.14844,-0.15028,-0.15028,-0.15121,-0.15028,-0.14936 -0.17398,-0.1121,-0.1121,-0.10326,0.064712,-0.16514,-0.13862,-0.18282,-0.10326,0.1708,-0.1563,-0.13862,-0.094416,0.11775,0.3034,-0.14746,-0.13862,-0.10326,0.13544,0.43601,-0.13862,-0.1121,0.073552,0.31224,0.50673 0.29684,0.28236,0.28417,0.28236,0.2896,0.30227,0.29322,-0.11765,0.2896,-0.088689,-0.15204,-0.1629,-0.1448,-0.11765,-0.10136,-0.15204,-0.15385,-0.13575,-0.10679,-0.10679,-0.1629,-0.1629,-0.1629,-0.15204,-0.13937 0.12231,0.1417,0.035051,-0.14468,-0.24983,0.11783,0.13498,0.025356,-0.099934,-0.25431,0.11112,0.47207,0.01417,-0.14021,-0.27743,0.10515,0.46089,0.013424,-0.14766,-0.27221,0.10143,0.11932,0.020882,-0.12529,-0.28414 -0.17719,-0.17949,-0.1879,0.24575,0.2381,-0.17031,-0.17413,-0.19249,0.21363,0.21975,-0.16572,-0.17108,-0.18484,0.24269,0.23657,-0.17261,-0.16266,-0.18025,0.28246,0.27252,0.15168,-0.16343,-0.17413,0.13944,0.21363 -0.38236,-0.00057089,0.0094197,0.25062,0.12146,-0.37807,0.0058517,0.18782,0.26061,0.11432,-0.36951,0.053664,0.17997,0.13502,0.12859,-0.36523,0.061514,0.089345,0.1029,0.1186,-0.36095,-0.059087,0.079354,-0.004139,0.020838 -0.080369,-0.27444,-0.51418,-0.37719,-0.20595,0.022376,-0.20595,-0.27444,-0.091786,0.010959,0.12512,0.010959,-0.011873,0.033792,0.12512,0.1137,0.10229,0.15937,0.15937,0.17079,0.22787,0.1822,0.17079,0.17079,0.2507 0.20346,0.20939,0.1714,0.21937,-0.19,0.20559,0.20726,-0.19119,-0.1919,-0.19095,0.20749,0.20654,-0.19237,-0.19309,-0.19214,0.22412,0.2139,-0.19237,-0.19214,-0.19166,0.2177,0.20939,-0.19237,-0.19166,-0.1938 0.94395,0.084586,-0.06582,-0.075532,0.055202,-0.06856,0.080353,-0.065073,-0.071299,0.055949,-0.067812,-0.070054,-0.062832,-0.065073,0.056696,-0.068809,-0.066816,-0.065073,-0.063081,-0.06856,-0.064824,-0.064077,-0.06856,-0.066816,-0.068061 0.11459,0.080101,0.074352,0.078185,0.082018,0.087767,0.076269,0.078185,0.078185,0.078185,0.099264,0.082018,0.072436,0.082018,0.097348,0.12993,0.13376,0.14526,0.15484,0.15484,-0.38748,-0.41047,-0.35873,-0.37598,-0.44688 -0.099193,-0.11768,-0.11768,-0.11399,-0.13988,-0.091796,-0.10289,-0.10474,-0.11029,-0.12508,-0.030771,-0.052962,-0.10104,-0.099193,-0.10289,-0.017827,-0.012279,-0.030771,-0.0067312,-0.049263,0.6294,0.61461,0.18929,0.1486,0.045047 -0.19141,-0.19077,-0.19093,-0.19221,-0.19093,-0.19157,-0.19157,-0.19221,-0.19237,-0.19093,-0.19253,-0.19237,0.24032,0.18098,-0.19077,0.19841,0.2352,0.23056,0.18753,0.18993,0.19777,0.22209,0.23632,0.18274,0.18865 0.010809,-0.043879,-0.12108,-0.12752,-0.2948,0.017243,0.014026,-0.043879,-0.12108,-0.2755,0.21991,0.081581,0.014026,-0.014927,-0.31732,0.3518,0.2939,0.15557,0.017243,-0.31088,0.38719,0.26173,0.1234,-0.02136,-0.2562 0.14153,-0.11765,-0.12034,-0.12873,-0.14182,0.14119,-0.11832,-0.11849,-0.12571,-0.14065,0.14254,0.14254,-0.11849,-0.13041,-0.13746,0.3992,0.3997,-0.11899,-0.12974,-0.13645,0.40188,0.40088,-0.11866,-0.13108,-0.13645 -0.52029,-0.46575,-0.38394,-0.32259,-0.22715,0.025087,0.045539,0.045539,0.086442,0.079625,0.093259,0.10689,0.15461,0.15461,0.15461,0.12734,0.12053,0.079625,0.12734,0.10008,0.10008,0.086442,0.072807,0.086442,0.072807 -0.26188,-0.26327,0.17987,0.17709,0.17778,-0.25979,-0.26396,0.15797,0.15971,0.16006,-0.26361,-0.26327,0.15206,0.15172,0.15137,-0.2664,0.13781,0.13851,0.1392,0.13851,-0.27439,-0.27682,0.12391,0.12322,0.12461 0.48267,0.47193,0.46631,0.40578,-0.069067,-0.081343,-0.082366,-0.082366,-0.081684,-0.08032,-0.082366,-0.08373,-0.082707,-0.083048,-0.082707,-0.11902,-0.083048,-0.083389,-0.084071,-0.083048,-0.11919,-0.11169,-0.084412,-0.084071,-0.083048 0.16414,0.18257,0.1881,0.19105,0.23417,0.16451,0.18257,0.18441,0.19473,0.23638,0.16156,0.17778,-0.20187,-0.20298,0.22606,-0.20445,-0.20519,-0.20703,-0.20961,-0.21145,-0.20519,-0.20703,-0.21072,-0.21072,-0.21182 0.076936,-0.041575,-0.035294,-0.041156,-0.012261,0.035897,-0.028593,-0.041994,0.0032329,-0.011424,-0.097271,0.026265,-0.0332,0.01454,-0.017287,-0.10648,-0.092664,0.0090956,-0.091408,-0.09769,0.94964,-0.090989,-0.090989,-0.096433,-0.088896 0.077315,0.20762,0.055598,0.077315,-0.35704,0.16419,0.055598,0.12075,0.077315,-0.096427,0.12075,0.14247,0.20762,0.055598,-0.3136,0.077315,0.077315,0.16419,-0.031274,-0.48735,0.03388,0.12075,-0.0095558,-0.0095558,-0.53078 -0.039377,-0.19269,-0.28952,-0.33793,-0.40249,0.081659,0.00096829,-0.112,-0.20076,-0.36214,0.16235,0.15428,0.065521,-0.039377,-0.12007,0.21076,0.17849,0.122,0.057452,-0.031308,0.25111,0.25111,0.21883,0.21076,0.16235 -0.18883,-0.19788,-0.1944,-0.18466,-0.18535,-0.18744,-0.18744,-0.19579,-0.19649,-0.19161,-0.18813,-0.19649,-0.20136,0.22243,0.22521,0.19181,0.20016,0.2099,0.21895,0.22104,0.20016,0.19807,0.20225,0.20155,0.20433 -0.15107,-0.15187,-0.15107,-0.1516,-0.1516,-0.14973,-0.15053,-0.15026,-0.14999,-0.1508,-0.14892,-0.14839,-0.14839,-0.14732,-0.14839,0.1606,0.14882,0.13623,0.46557,0.46423,0.17747,0.15096,0.13543,0.14694,0.26368 0.33223,-0.12284,-0.12383,-0.1255,-0.12517,0.31358,-0.12483,-0.1245,-0.1235,-0.12617,0.31325,-0.12317,-0.12317,-0.12417,-0.1245,0.31891,0.32224,-0.12483,-0.12617,-0.12483,0.32357,0.32091,-0.12517,-0.12617,-0.12617 -0.093787,-0.094408,-0.095028,-0.094614,-0.090479,-0.094614,-0.094821,-0.094821,-0.094408,-0.094821,-0.094821,-0.093787,-0.094821,-0.095028,-0.095235,-0.093374,-0.093374,-0.093374,-0.094614,-0.094408,0.45356,0.44963,0.45604,0.077634,0.44777 -0.040611,0.018675,0.26323,0.56708,0.58931,-0.099898,-0.085076,-0.085076,0.055729,0.27805,-0.099898,-0.085076,-0.12954,-0.040611,-0.0332,-0.11472,-0.099898,-0.11472,-0.14436,-0.099898,-0.085076,-0.099898,-0.092487,-0.092487,-0.12954 0.24317,0.22692,0.19804,0.1872,0.17637,0.23956,0.21609,0.20526,0.19262,0.17095,-0.17572,0.22331,0.20706,-0.17933,-0.19558,-0.1703,-0.16669,-0.18294,-0.20641,-0.21905,-0.19016,-0.19197,-0.19919,-0.19558,-0.21364 0.27482,-0.13996,-0.14967,-0.13728,-0.13461,0.27884,-0.14498,-0.14867,-0.13059,-0.12992,0.29056,0.30094,-0.14934,-0.13394,-0.12758,0.28821,0.30027,-0.14766,-0.13862,-0.12289,0.28654,0.30931,-0.14699,-0.12021,-0.12657 0.34696,0.3498,0.34923,0.3481,0.34923,0.35149,-0.12423,-0.12197,-0.13443,-0.11121,0.074553,-0.086288,-0.11744,-0.12083,-0.1197,-0.1197,-0.1231,-0.1197,-0.1231,-0.12423,-0.12537,-0.12197,-0.1231,-0.1265,-0.1265 0.22182,-0.011925,-0.0014644,0.0093982,-0.28108,0.21297,-0.0079016,-0.003476,0.01141,-0.28067,0.21498,-0.01112,0.23631,0.015433,-0.28027,0.21378,0.21539,0.217,-0.28792,-0.28188,0.21458,0.23389,0.0033634,-0.28792,-0.2847 0.19626,0.48198,0.046996,-0.1641,-0.24939,0.1728,0.05979,-0.012708,-0.19182,-0.243,0.16427,0.085377,-0.021238,-0.17476,-0.21101,0.16001,0.10883,-0.038296,-0.11079,-0.18969,0.15787,0.4564,-0.15344,-0.1577,-0.17263 0.12676,0.20254,0.22003,0.25598,0.28415,0.061672,0.18894,0.22586,0.23558,0.31038,-0.19772,-0.19772,-0.20647,0.23558,-0.025765,-0.21327,-0.22687,-0.19287,-0.071427,-0.08017,-0.22396,-0.20841,-0.20355,-0.19092,-0.10834 0.20979,0.21429,0.21394,0.5577,0.55478,0.20851,-0.10206,-0.10314,-0.10417,-0.10457,-0.1016,-0.1016,-0.10432,-0.10386,-0.1016,-0.10181,-0.10171,-0.10417,-0.10483,-0.10288,-0.10242,-0.10201,-0.10263,-0.10452,-0.10509 -0.26117,0.15879,0.25388,0.20634,0.19841,-0.26117,-0.21363,0.18256,0.19049,0.19841,-0.28494,-0.18985,0.15879,0.15087,0.13502,-0.33248,-0.15816,0.11125,0.11125,0.095403,-0.30871,-0.28494,0.04786,0.024088,0.071631 -0.11408,-0.12841,-0.085414,0.08656,0.68847,-0.085414,-0.056751,-0.11408,0.00057325,0.48783,-0.1714,-0.11408,-0.11408,-0.04242,0.22987,-0.15707,-0.12841,-0.056751,-0.028089,0.14389,-0.11408,-0.085414,-0.11408,-0.028089,0.10089 0.28118,0.25997,0.26197,0.48126,0.3416,0.27117,0.26877,-0.0037456,-0.0073471,-0.1294,-0.1406,-0.1378,-0.1406,-0.1358,-0.137,-0.1414,-0.1382,-0.1382,-0.1338,-0.1286,-0.1374,-0.1262,-0.129,-0.1282,-0.1326 0.64116,0.013824,0.025093,-0.036889,-0.055671,0.60547,-0.018106,-0.051915,-0.096993,-0.080089,0.28617,-0.055671,-0.093237,-0.098871,-0.10638,-0.040645,-0.091358,-0.10263,-0.096993,-0.10826,-0.036889,-0.08948,-0.10263,-0.10263,-0.10638 0.16279,0.15626,0.15336,-0.30882,-0.30882,0.16207,0.16062,0.15408,-0.31027,-0.31027,0.16497,0.15771,0.15263,-0.30954,-0.31571,0.1657,0.15989,0.15626,0.02084,0.025922,0.1657,0.017935,0.012126,0.012852,-0.29829 -0.071789,-0.07953,-0.095013,-0.10275,-0.081466,0.47011,-0.075659,-0.095013,-0.099529,-0.095013,0.45463,-0.084046,-0.094368,-0.096948,-0.084046,0.45463,-0.084046,-0.087272,-0.091787,-0.072434,0.45205,-0.080175,-0.087272,-0.091787,-0.081466 0.28161,0.29406,-0.1394,-0.17024,-0.17187,0.27512,-0.11721,-0.11613,-0.167,-0.17241,0.26538,-0.11721,-0.11829,-0.12046,-0.16646,0.2551,0.30488,-0.11938,-0.11884,-0.12316,0.26213,0.37252,-0.12425,-0.12425,-0.12425 -0.32467,-0.43112,-0.21822,-0.37789,-0.32467,-0.031935,0.074514,-0.085159,0.047902,-0.21822,0.047902,0.18096,0.15435,0.074514,0.047902,0.10113,0.10113,0.047902,-0.058547,0.10113,0.20758,0.2608,0.2608,0.20758,0.15435 -0.35161,-0.35161,0.062919,0.13324,0.15545,-0.35161,-0.27018,0.11473,0.15175,0.15545,-0.36271,0.044413,0.12954,0.14804,0.13694,-0.3405,0.055517,0.12954,0.12214,0.13324,-0.15545,0.09993,0.13694,0.14064,0.13324 0.054768,0.054768,0.16578,-0.056248,-0.20427,0.054768,0.091774,0.2768,-0.056248,-0.16727,0.091774,0.31381,-0.019243,-0.16727,-0.3893,0.12878,0.16578,0.16578,-0.056248,-0.4263,0.2398,0.20279,0.017763,-0.093254,-0.3893 0.51863,0.43036,0.54288,0.30741,-0.037941,-0.087385,-0.087764,-0.087764,-0.087006,-0.082838,-0.088522,-0.088901,-0.088143,-0.088901,-0.088143,-0.087764,-0.089279,-0.088522,-0.089279,-0.088901,-0.088143,-0.088522,-0.088522,-0.088143,-0.088901 -0.1736,-0.1736,0.040776,0.0077944,0.0020731,-0.17226,-0.1763,-0.18202,0.01015,0.1791,-0.17495,-0.17495,-0.18168,0.24439,0.22588,-0.17226,-0.17529,0.014862,0.24641,0.4066,-0.17697,-0.1736,0.017554,0.3053,0.4066 0.15752,0.59666,0.22569,0.13533,0.10996,0.062399,0.081424,0.090936,0.1274,0.14484,0.040204,0.067155,0.067155,0.098862,0.11155,-0.20552,-0.20235,-0.20394,-0.20235,-0.20235,-0.21662,-0.21662,-0.22613,-0.21821,-0.22296 0.21422,0.26366,-0.25255,-0.22929,-0.18275,0.19532,0.19386,0.24621,-0.18566,-0.17257,0.2084,0.17496,0.23167,-0.20602,-0.18275,0.17205,0.15169,-0.14349,-0.15803,-0.19293,0.18368,0.23167,-0.1464,-0.19439,-0.22056 0.17024,0.17207,0.16698,-0.20375,-0.20395,0.17085,0.17167,0.16556,-0.20375,-0.20476,0.17798,0.24663,-0.2013,-0.207,-0.20476,0.16128,0.28574,0.26903,-0.20619,-0.20741,0.15435,0.15456,-0.20782,-0.20863,-0.20762 0.35316,0.35217,0.35117,0.35217,0.35366,-0.12067,-0.11817,-0.11668,-0.11967,0.35416,-0.11767,-0.12067,-0.12017,-0.12167,-0.12217,-0.12217,-0.11767,-0.12067,-0.11618,-0.11418,-0.12616,-0.11218,-0.10619,-0.12017,0.016637 -0.19115,-0.19131,-0.19131,-0.19222,-0.1881,-0.1907,-0.19115,-0.19268,-0.19192,-0.19222,0.26628,0.19447,-0.19176,-0.19237,-0.19222,0.19355,0.19325,0.19934,0.20087,0.19934,0.25591,0.19294,0.19309,0.19797,0.20209 0.87028,0.1095,-0.095467,-0.095887,-0.096487,0.10848,-0.095407,-0.095887,-0.096127,-0.096848,0.11124,0.11034,-0.096187,-0.096487,-0.096728,0.1098,0.10992,-0.096607,-0.096908,-0.097388,0.1098,-0.095947,-0.096427,-0.097148,-0.097448 -0.40237,-0.40684,-0.40237,-0.38003,-0.40684,0.10249,0.10696,0.10696,0.11366,0.10696,0.10026,0.10696,0.10472,0.10249,0.10026,0.086854,0.10696,0.10026,0.098023,0.098023,0.093555,0.089087,0.093555,0.086854,0.093555 -0.1075,-0.094881,-0.052824,-0.042309,-0.054927,-0.086469,-0.090675,-0.090675,-0.084366,-0.063338,0.050216,-0.046515,-0.1117,-0.061235,-0.050721,0.085965,-0.069646,-0.075955,0.024982,-0.046515,0.1154,-0.046515,-0.0086638,0.07545,0.93341 -0.19117,-0.18916,-0.18992,-0.18866,-0.19042,-0.19117,-0.18992,-0.19142,-0.18841,-0.18916,0.22527,0.22277,-0.18666,-0.18741,-0.18916,0.22853,0.22427,0.22502,0.22502,0.09606,0.22928,0.22753,0.23128,0.22928,0.098313 0.21129,0.21419,-0.1951,-0.19552,-0.20008,0.21005,0.21046,-0.1951,-0.19759,-0.19842,0.2088,0.20797,-0.19552,-0.19552,-0.19344,0.20507,0.20714,-0.18639,-0.19552,-0.19427,0.2059,0.20549,0.20424,0.20507,-0.15322 -0.032775,-0.23329,-0.21101,-0.010496,0.27418,-0.042677,-0.24319,-0.12932,0.242,0.30637,0.0043569,-0.23081,-0.12437,0.21725,0.2024,-0.11447,-0.20358,-0.13922,0.21477,0.19992,-0.21101,-0.17883,-0.13922,0.21477,0.36825 0.19714,0.21232,0.21509,0.18885,0.23119,0.21094,0.2068,0.21232,0.20312,0.19622,-0.19316,0.2091,-0.16785,0.21232,-0.19362,-0.195,-0.19362,-0.18441,-0.19454,-0.19638,-0.19408,-0.19868,-0.19546,-0.1927,-0.19592 -0.065634,-0.031802,-0.031802,-0.065634,-0.35321,0.035862,0.035862,0.035862,0.018946,-0.35321,0.12044,0.08661,0.10353,0.035862,-0.40396,0.25577,0.18811,0.18811,0.069694,-0.23479,0.23885,0.25577,0.15427,0.13736,-0.42087 -0.069642,-0.25618,-0.35982,-0.33909,-0.35982,0.033992,0.013265,-0.028188,-0.17328,-0.33909,0.19981,0.075445,0.096172,-0.028188,-0.1111,0.26199,0.096172,0.15835,0.013265,0.054719,0.26199,0.17908,0.26199,0.15835,0.19981 -0.41799,-0.018747,0.20691,0.17798,-0.012961,-0.3312,-0.024533,0.18377,0.12591,0.0043975,-0.36592,0.033328,0.18377,0.14905,0.033328,-0.37749,-0.012961,0.15484,0.1722,0.044901,-0.33699,-0.053464,0.19534,0.18956,0.096977 0.25219,0.23155,0.21091,0.20117,0.20857,0.2483,0.22415,0.20468,0.051236,0.20546,-0.22021,-0.21203,0.19767,0.045394,0.049289,-0.21515,-0.21359,-0.20424,0.037216,-0.20035,-0.2171,-0.2354,-0.20463,-0.228,-0.2171 0.11919,0.087148,0.35414,0.50366,0.5357,-0.030331,-0.051691,0.033748,0.20463,0.11919,-0.09441,-0.09441,-0.09441,-0.07305,-0.06237,-0.14781,-0.16917,-0.14781,-0.17985,-0.14781,-0.13713,-0.12645,-0.13713,-0.11577,-0.14781 0.12341,0.11116,0.14789,0.17238,0.31929,0.31929,0.28256,0.074436,0.098921,0.2948,-0.072477,-0.084719,-0.084719,0.16013,0.20911,-0.20715,-0.21939,-0.20715,-0.20715,-0.096962,-0.23163,-0.25612,-0.24387,-0.20715,-0.1949 0.14387,0.34728,-0.099954,-0.11612,-0.22119,0.35536,0.21527,-0.099954,-0.12824,-0.23332,0.31226,-0.082442,-0.11208,-0.13228,-0.18752,0.23682,-0.071665,-0.11612,-0.085136,-0.078401,0.49411,-0.06493,-0.086483,-0.067624,-0.12151 -0.19271,-0.04478,-0.036784,-0.068769,-0.032785,-0.032785,-0.028787,-0.028787,-0.052776,-0.17272,-0.028787,-0.040782,-0.040782,-0.0087961,-0.080764,-0.040782,-0.028787,-0.020791,0.10715,-0.04478,-0.064771,-0.032785,-0.024789,0.10715,0.93478 -0.080751,-0.086505,-0.087551,-0.09069,-0.093829,0.46069,-0.089121,-0.085459,-0.088598,-0.089644,0.46278,-0.08232,-0.087028,-0.087551,-0.089121,0.45651,-0.085459,-0.087028,-0.089121,-0.089121,0.45284,-0.084936,-0.086505,-0.084413,-0.088075 0.15421,0.20637,0.22163,0.22545,0.23011,0.14954,0.20509,0.22206,0.21697,0.23732,-0.17529,0.20679,0.21145,-0.19098,-0.1948,-0.18759,-0.19098,-0.19225,-0.19183,-0.19522,-0.19013,-0.19268,-0.19437,-0.1948,-0.19607 -0.17812,-0.13833,-0.13059,-0.13391,-0.13501,-0.1748,-0.13612,-0.13501,-0.13501,-0.13833,-0.17259,-0.12286,-0.13391,-0.14164,-0.14717,0.43528,0.19213,0.18992,-0.099646,0.20208,0.4817,0.19655,0.18771,0.18218,0.1855 0.42378,0.39422,-0.042634,-0.13296,-0.1461,0.39257,0.41228,-0.10504,-0.11489,-0.14446,0.34166,-0.036065,-0.093545,-0.11818,-0.13296,-0.0032189,-0.077122,-0.10176,-0.11982,-0.14446,-0.045919,-0.072195,-0.095187,-0.10668,-0.13132 0.24175,-0.17699,-0.17693,-0.17729,-0.17717,0.24036,0.22213,-0.17747,-0.17735,-0.17723,0.22304,0.2217,-0.17711,-0.17741,-0.17741,0.22249,0.22231,0.22134,-0.17711,-0.17705,0.22267,0.2211,0.22231,-0.17729,-0.17741 -0.20126,-0.12579,0.12579,0.15095,0.32705,-0.22642,-0.30189,0.15095,0.15095,0.025158,-0.25158,-0.22642,-0.025158,0.075473,0.10063,-0.25158,-0.15095,0.050315,0.35221,0.1761,-0.10063,-0.27674,-0.075473,0.22642,0.30189 0.32702,0.36431,0.32989,0.33276,0.36431,-0.13044,-0.1161,-0.11897,-0.0085469,0.36431,-0.13474,-0.14048,-0.10463,-0.045832,-0.037228,-0.16199,-0.15769,-0.15195,-0.04153,-0.1075,-0.16199,-0.15482,-0.14765,-0.025755,-0.13474 0.46151,0.33236,0.16015,-0.076632,-0.076632,0.41846,0.22473,0.0094713,-0.03358,-0.055106,0.33236,0.0094713,-0.098157,-0.14121,-0.14121,0.095574,-0.076632,-0.14121,-0.16273,-0.20579,-0.11968,-0.20579,-0.16273,-0.14121,-0.20579 -0.059106,0.4401,0.43511,0.47255,0.48004,-0.061602,-0.076578,-0.066594,-0.074082,-0.09405,-0.079074,-0.091554,-0.091554,-0.091554,-0.099042,-0.08157,-0.08157,-0.11402,-0.089058,-0.089058,-0.08157,-0.10403,-0.096546,-0.10653,-0.099042 0.072731,0.22101,0.1298,0.13498,-0.28997,0.12374,0.21972,0.13109,0.13801,-0.28003,0.11683,0.12893,0.22577,-0.28824,-0.28781,0.12331,0.11683,0.12677,-0.28824,-0.28695,0.099534,0.095211,0.089591,-0.28263,-0.28997 0.18947,0.17554,0.036223,0.0083592,0.036223,0.18947,0.16161,0.11981,0.078019,0.022291,0.23127,0.10588,0.078019,0.050155,-0.019505,0.14768,0.20341,0.078019,0.022291,-0.047369,-0.42353,-0.3678,-0.3678,-0.38174,-0.32601 0.082502,-0.10331,-0.14048,-0.22409,-0.23338,0.17541,0.017467,-0.084731,-0.12654,-0.19622,0.20328,-0.010406,-0.033632,-0.061505,-0.15441,0.35193,0.026757,-0.042923,-0.075441,-0.14977,0.50058,0.50058,0.026757,-0.061505,-0.18693 -0.13782,-0.13782,-0.053373,0.35199,0.47022,-0.13782,-0.12093,-0.13782,0.11553,0.36888,-0.13782,-0.1716,-0.13782,0.11553,0.30132,-0.15471,-0.13782,-0.13782,0.064858,0.30132,-0.087153,-0.087153,-0.15471,-0.20538,0.047968 -0.10241,-0.12362,-0.13952,-0.0229,0.41708,-0.049405,-0.15012,-0.12892,0.040711,0.58671,-0.049405,-0.12362,-0.15542,0.0036046,0.36937,-0.038803,-0.16602,-0.15542,-0.017599,0.19974,-0.065307,-0.13952,-0.18193,-0.054706,0.24745 0.25825,0.32186,0.099228,0.19464,0.41727,0.16284,0.099228,0.03562,0.099228,0.22644,-0.027987,0.03562,0.0038165,0.03562,0.0038165,-0.18701,-0.059791,-0.091595,-0.027987,-0.28242,-0.1552,-0.28242,-0.34603,-0.34603,-0.18701 0.26344,0.14676,0.18565,0.17269,-0.28107,0.23751,0.23751,0.081937,0.10787,-0.38479,0.094901,0.068972,0.10787,0.030078,-0.42369,0.1338,0.1338,0.0041487,-0.086604,-0.21625,-0.021781,0.056007,-0.086604,-0.17736,-0.38479 -0.15447,-0.1795,-0.17672,0.35154,0.40159,-0.16003,-0.1795,-0.17672,0.33208,0.17916,-0.20452,-0.19896,-0.10721,0.25423,0.14858,-0.1795,-0.17116,0.13746,0.13746,0.12356,-0.16838,-0.15725,-0.11555,0.15414,0.10966 -0.39099,-0.43367,-0.41233,-0.3483,-0.30562,-0.028172,0.035855,0.078539,0.014513,0.14257,0.035855,0.099882,0.057197,0.078539,0.20659,0.014513,0.057197,0.057197,0.078539,0.14257,0.078539,0.20659,0.20659,0.12122,0.20659 0.05726,0.082541,0.24212,0.1963,0.22948,0.066741,0.03356,0.16154,0.2437,0.22474,0.10308,0.02882,0.17102,0.1094,0.14258,0.03988,0.02092,-0.25243,-0.15604,-0.23347,-0.43097,-0.30299,-0.28403,-0.22715,-0.26665 -0.082167,-0.087673,-0.087912,-0.088391,-0.086955,0.45974,-0.088391,-0.087912,-0.087673,-0.086715,0.45855,-0.086236,-0.08863,-0.088151,-0.086715,0.45879,-0.087673,-0.088151,-0.087912,-0.086955,0.45591,-0.085758,-0.087194,-0.087194,-0.08863 -0.13479,-0.1094,-0.13842,-0.12028,-0.10215,-0.12028,-0.13842,-0.11303,-0.11303,-0.13842,-0.10215,-0.10215,-0.10215,-0.12391,-0.091264,-0.094891,-0.087637,-0.054991,0.03932,0.2751,0.046575,0.25333,0.47823,0.45647,0.43833 -0.10997,-0.12166,-0.12458,-0.071967,0.38842,-0.12166,-0.12166,-0.12604,-0.092428,0.33873,-0.11727,-0.12166,-0.12458,0.26857,0.38404,-0.1202,-0.11727,-0.1202,-0.073428,0.38988,-0.12166,-0.11581,-0.1202,-0.07489,0.3475 0.13712,0.13712,0.13085,0.12809,-0.2923,0.14025,0.13085,0.13085,-0.28953,-0.29193,0.1338,0.13288,0.12975,-0.28972,-0.29193,0.1432,0.14467,0.14357,0.14173,-0.29248,0.14467,0.14007,0.14228,-0.29156,-0.2923 0.18281,0.14708,0.13,-0.29088,-0.29215,0.1787,0.12684,0.13127,-0.29151,-0.29025,0.17079,0.11925,0.12937,-0.28898,-0.29309,0.17364,0.11988,0.12178,-0.28045,-0.28962,0.16384,0.12558,0.11388,0.091108,0.091108 0.039175,0.030584,0.056358,-0.061054,-0.31306,0.010538,0.021993,0.056358,-0.13265,-0.30161,0.021993,0.030584,0.13081,-0.12978,-0.35888,0.31695,0.31982,0.23104,-0.035281,-0.29015,0.26541,0.27973,0.19668,-0.1126,-0.27297 -0.13516,-0.12871,-0.01379,0.0094516,0.48591,-0.087389,-0.12483,0.005578,0.017199,0.49624,-0.10934,-0.13904,-0.13775,-0.093845,0.3103,-0.034449,-0.14678,-0.15324,-0.12742,0.2806,-0.10417,-0.13,-0.14291,-0.1145,0.31805 -0.30335,0.026378,-0.08353,0.31947,0.063014,-0.33998,-0.010258,-0.08353,-0.010258,0.2462,-0.19344,-0.19344,-0.046894,0.09965,0.31947,-0.1568,0.026378,-0.12017,0.09965,0.31947,-0.30335,-0.08353,-0.08353,0.09965,0.39274 -0.12619,-0.11583,-0.11324,0.30962,0.42905,-0.12451,-0.11629,-0.10425,-0.10243,0.34755,-0.12421,-0.11781,-0.099379,-0.10029,0.34344,-0.11994,-0.11903,-0.097704,-0.10029,0.34344,-0.12345,-0.12238,-0.097247,-0.10029,0.35167 -0.14048,-0.13351,-0.13816,-0.12887,-0.14512,-0.13351,-0.12655,-0.14048,-0.12655,-0.14512,-0.061557,-0.084769,-0.13351,-0.13119,-0.12655,-0.029061,-0.0662,0.24716,0.07307,0.03361,0.55587,0.48856,0.29358,0.17752,0.12181 -0.0014112,-0.028852,-0.099414,-0.099414,-0.083733,-0.013172,-0.036692,-0.056293,-0.087653,-0.083733,0.018189,-0.021012,-0.068053,-0.11117,-0.091574,-0.0053313,-0.0014112,-0.075893,-0.11901,-0.068053,0.018189,-0.017092,0.080911,0.11227,0.93941 0.23105,0.17154,-0.3398,-0.342,-0.34531,0.24262,0.16879,0.059135,-0.33098,-0.32602,0.24262,0.1462,0.02938,-0.021313,-0.11003,0.20901,0.15336,0.022217,-0.013599,-0.10617,0.23821,0.12856,0.027176,-0.029027,-0.10562 0.28828,-0.1367,-0.13583,-0.13648,-0.13451,0.29221,0.28828,-0.13517,-0.1367,-0.13626,0.2909,0.2909,-0.13976,-0.13539,-0.1402,0.29353,-0.13342,-0.13933,-0.13758,-0.13933,0.29724,0.2909,-0.13823,-0.13801,-0.13933 -0.17819,-0.09041,-0.11235,-0.1343,0.085143,-0.15624,-0.11235,-0.09041,-0.0026333,0.21681,-0.09041,-0.1343,-0.1343,-0.0026333,0.39236,-0.1343,-0.15624,-0.068466,-0.046522,0.52403,-0.024577,-0.09041,-0.024577,0.019311,0.54597 0.27458,0.27458,0.29198,0.33258,0.34998,0.32678,-0.018329,-0.13723,0.077374,0.31518,-0.15753,-0.13143,-0.14593,-0.14593,-0.13143,-0.14013,-0.14593,-0.16333,-0.14303,-0.08213,-0.18943,-0.11983,-0.099531,-0.14013,-0.15173 -0.075858,-0.075858,-0.14171,-0.11537,-0.13512,-0.075858,-0.095613,-0.095613,-0.13512,-0.12195,0.36533,-0.075858,-0.095613,-0.11537,-0.12195,0.45093,0.1151,-0.049518,-0.075858,-0.13512,0.53654,0.40484,-0.010009,-0.049518,-0.075858 -0.15194,-0.062212,-0.15194,-0.12203,-0.15194,-0.24167,-0.062212,-0.24167,-0.15194,-0.092121,-0.12203,0.057426,-0.032302,-0.12203,0.057426,-0.092121,-0.062212,0.057426,-0.032302,-0.062212,0.44625,0.50607,0.2967,0.17706,0.35652 0.45103,0.49482,0.42914,0.23209,0.056927,0.035032,0.078822,-0.008758,-0.11823,0.078822,-0.008758,-0.052548,-0.052548,-0.030653,-0.052548,-0.052548,-0.18392,-0.18392,-0.14013,-0.11823,-0.052548,-0.16202,-0.2496,-0.22771,-0.16202 -0.18814,-0.19421,0.19043,0.081851,0.080174,-0.23006,-0.14328,0.19148,0.19777,0.1963,-0.22922,-0.23425,-0.14097,0.19484,0.19442,-0.23132,-0.1395,-0.14181,0.33297,0.19504,-0.23111,-0.14034,-0.14349,0.33423,0.19819 -0.14485,-0.12766,-0.11665,0.29947,0.29397,-0.14898,-0.13935,-0.12972,0.29878,0.2981,-0.15036,-0.13866,-0.13316,0.28434,0.28296,-0.14141,-0.13041,-0.14623,-0.13385,0.28503,-0.13866,-0.13247,-0.14829,-0.12972,0.28778 -0.35069,-0.32283,-0.22534,-0.15571,-0.06518,-0.28105,-0.20445,-0.12089,-0.023398,0.046239,-0.21838,-0.11393,-0.0025069,0.081057,0.081057,-0.058216,0.074093,0.16462,0.14373,0.13677,0.28997,0.33175,0.30389,0.24122,0.24818 -0.17951,-0.21077,-0.20184,-0.17951,-0.19291,0.039297,-0.21077,-0.17058,-0.19738,-0.17951,0.20006,0.057159,-0.18398,-0.20184,-0.21077,0.21792,0.24918,0.24471,0.19559,-0.085738,0.21792,0.23131,0.24471,0.25364,0.25364 -0.18442,-0.19002,0.01377,0.01377,0.35155,-0.18183,-0.18786,0.015924,0.016355,0.00084444,-0.18226,-0.18355,0.015493,0.012477,0.35499,-0.18355,-0.1926,-0.011219,-0.00087891,0.35758,-0.18872,-0.19346,-0.0094957,0.37653,0.36059 0.28254,-0.023618,-0.12859,-0.10234,-0.058608,0.2563,-0.076102,-0.14608,0.0069979,-0.014871,0.30004,-0.11109,-0.1592,-0.076102,0.015745,0.50123,-0.1592,-0.19419,-0.11109,-0.014871,0.51872,-0.12859,-0.16358,-0.11984,-0.093597 0.35326,0.35301,0.39736,0.6437,0.093865,-0.089411,-0.089904,-0.090397,-0.089411,-0.089658,-0.09286,-0.091628,-0.091875,-0.09286,-0.092368,-0.093107,-0.093599,-0.092368,-0.093107,-0.092368,-0.093107,-0.092368,-0.093107,-0.093846,-0.093846 -0.16648,-0.17386,-0.21075,-0.31406,-0.3362,-0.070546,-0.092684,-0.085305,-0.24027,-0.26241,0.16559,0.18773,0.16559,-0.092684,-0.1222,0.26152,0.232,0.25414,0.13607,-0.070546,0.26152,0.28366,0.22463,0.11394,-0.048408 0.17993,0.18341,-0.24814,-0.24988,-0.2435,0.18167,0.1837,0.15443,-0.24814,-0.24292,0.17732,0.16472,0.15806,0.14878,-0.24336,0.17196,0.15574,0.14661,-0.24133,-0.24191,0.14661,0.14545,0.14705,-0.24292,-0.24336 -0.20906,-0.20925,-0.20915,-0.20896,-0.20915,-0.20848,-0.20887,-0.20877,-0.20887,-0.20953,-0.20982,0.03368,0.16253,0.2078,0.20656,0.036062,0.035395,0.16367,0.35275,0.20503,0.037969,0.16424,0.17406,0.17082,0.34932 0.29024,-0.13593,-0.13852,-0.13774,-0.138,0.28895,0.2918,-0.13697,-0.13722,-0.13697,0.29076,0.29439,-0.13541,-0.13774,-0.13645,0.28998,-0.13334,-0.13826,-0.13826,-0.138,0.29439,0.2918,-0.13671,-0.14085,-0.13593 0.086551,0.078571,0.09187,0.0094158,0.049313,0.09852,0.10118,0.089211,0.0027662,0.14906,0.10916,0.1065,0.077241,0.13576,0.11847,0.10517,0.11847,0.14507,0.14507,0.14906,-0.37094,-0.4002,-0.38956,-0.40818,-0.39754 0.066453,0.060475,0.055693,0.064062,-0.38071,0.062866,0.064062,0.063464,0.080801,-0.38789,0.068845,0.067051,0.093355,0.23743,-0.38729,0.080203,0.069442,0.090964,0.23384,-0.39267,0.094551,0.076616,0.084388,0.2189,-0.3849 -0.085677,-0.085152,-0.085385,-0.085677,-0.08521,0.4593,-0.084509,-0.085385,-0.085443,-0.085385,0.45779,-0.085152,-0.085268,-0.084685,-0.084451,0.45703,-0.084159,-0.085152,-0.08486,-0.10021,0.45831,-0.083984,-0.084451,-0.099862,-0.10237 0.20829,0.15694,0.1034,0.025283,-0.0074952,0.19737,0.15202,0.095756,0.029107,-0.022792,0.18262,0.16514,0.090839,0.03457,-0.014597,0.17552,0.16404,0.11214,0.035116,-0.0042174,-0.37734,-0.37516,-0.37516,-0.37625,-0.37516 -0.093735,-0.062753,0.018927,0.021744,0.10906,-0.082469,-0.099368,-0.06557,-0.079652,0.13722,-0.090919,-0.096552,-0.088102,-0.105,0.0048445,-0.099368,-0.090919,-0.12753,0.0048445,0.013294,-0.034587,-0.079652,-0.051487,0.12596,0.91178 -0.2768,-0.17131,-0.15021,-0.21351,-0.12912,-0.23461,-0.15021,-0.2979,-0.17131,-0.10802,-0.065825,-0.065825,-0.023629,0.018566,0.14515,-0.10802,0.060761,0.14515,0.18735,0.33503,0.16625,0.081859,0.31393,0.37723,0.33503 -0.15294,-0.15049,-0.1549,-0.15343,-0.081262,-0.10188,-0.11416,-0.1495,-0.14165,-0.061624,-0.10385,-0.12348,-0.057697,-0.05426,-0.14803,-0.0955,0.3655,-0.054751,-0.059169,-0.14607,0.35814,0.35077,0.35814,0.33801,0.33408 0.16197,-0.083736,-0.06891,-0.13951,-0.14587,0.42108,-0.091503,-0.080206,-0.14799,-0.13598,0.42461,-0.090797,-0.083736,-0.12539,-0.14375,0.41261,-0.086561,-0.046316,-0.13104,-0.14022,0.42179,-0.085855,-0.066085,-0.13104,0.18244 0.32367,0.031783,-0.03308,-0.21145,-0.16281,0.33988,0.047999,-0.13038,-0.29253,-0.065512,0.30745,0.031783,-0.081728,-0.2601,0.015567,0.40475,0.047999,-0.097944,-0.16281,0.015567,0.29124,0.11286,-0.097944,-0.34118,-0.03308 0.02152,0.0040037,0.0090083,0.024022,-0.26875,0.07657,0.04404,-0.0010009,-0.07607,-0.3238,0.15664,0.14163,0.061557,0.014013,-0.33881,0.22671,0.19418,0.18167,0.07657,-0.4314,0.27675,0.23422,0.23422,-0.26875,-0.26875 0.85437,0.29945,-0.17171,-0.1403,-0.15077,0.048163,-0.014658,-0.15077,-0.046069,0.048163,-0.025128,-0.056539,-0.046069,-0.046069,0.027223,0.069103,-0.12983,-0.077479,-0.1403,-0.067009,0.048163,-0.09842,-0.025128,0.048163,-0.056539 -0.35556,0.1232,0.15512,0.14714,0.13118,-0.3795,0.13916,0.13118,0.10724,0.1232,-0.41939,0.091283,0.099263,0.10724,0.10724,-0.41141,0.13118,0.067345,0.083304,0.051387,-0.40343,0.035428,0.051387,0.035428,0.051387 0.14312,0.14148,0.15194,0.093075,0.095741,0.13122,0.15419,0.1302,0.094305,0.093895,0.14394,0.15522,0.12712,0.1261,0.092664,-0.33497,0.10805,0.11092,0.097997,-0.13274,-0.34379,-0.34461,-0.34461,-0.34523,-0.34523 -0.38334,0.16971,0.098601,0.1302,0.1144,-0.41494,0.1144,0.1302,0.1381,0.1223,-0.38334,0.1144,0.074899,0.0907,0.1144,-0.38334,0.066998,0.066998,0.082799,0.1065,-0.41494,0.059097,0.059097,0.059097,0.066998 -0.069991,0.44911,0.42578,0.46369,0.47681,-0.077282,-0.090405,-0.080198,-0.017498,-0.024788,-0.10936,-0.093321,-0.0627,-0.074365,-0.046661,-0.11082,-0.11665,-0.10644,-0.087489,-0.080198,-0.12248,-0.11519,-0.11665,-0.11374,-0.099154 -0.18843,-0.055357,0.18417,0.21078,0.18417,-0.45456,-0.0021291,-0.028743,0.15755,0.15755,-0.42795,0.051099,0.15755,0.15755,0.15755,-0.26827,0.051099,0.077712,0.10433,0.13094,-0.42795,-0.10858,-0.028743,0.15755,0.051099 -0.13789,-0.13789,-0.13687,-0.13789,-0.13789,-0.13721,-0.13823,-0.13721,-0.13721,-0.13687,-0.13586,-0.1362,-0.13789,-0.13687,-0.13789,0.30255,0.29475,0.28086,-0.13654,-0.1345,0.31576,0.29374,0.28459,0.28425,0.27443 -0.30519,-0.38024,-0.23014,-0.18011,-0.50532,-0.030019,-0.055034,-0.1551,0.095059,-0.28018,0.14509,0.070044,0.14509,0.045028,0.14509,0.14509,0.095059,0.19512,0.12008,0.070044,0.14509,0.22014,0.17011,0.14509,0.17011 0.080463,0.083026,0.081424,0.084308,0.091037,0.084308,0.083026,0.083026,0.083347,0.068928,0.08623,0.36852,0.065083,0.087833,0.075657,0.08623,0.087512,0.079181,0.084628,0.075657,-0.38222,-0.38222,-0.38478,-0.3835,-0.3867 -0.1359,-0.1462,-0.15307,-0.15535,-0.1565,-0.11073,-0.11187,-0.12102,-0.13705,-0.14048,-0.11301,-0.11187,-0.11874,-0.11988,-0.1153,0.32298,0.32183,-0.083262,-0.10043,-0.10615,0.32183,0.32069,0.31497,0.31954,0.31497 -0.065513,-0.065513,-0.13885,-0.041068,0.32561,-0.089959,-0.1144,-0.1144,-0.041068,0.22783,-0.13885,-0.1144,-0.089959,-0.065513,0.57006,-0.13885,-0.065513,-0.089959,-0.1144,0.52117,-0.1144,-0.089959,-0.1144,-0.065513,0.22783 -0.14237,-0.14266,-0.14177,-0.14237,-0.13999,-0.14177,-0.14207,-0.14207,-0.14148,-0.1394,-0.14118,-0.14325,-0.14385,-0.14266,-0.14029,0.14924,0.16198,0.15932,0.42159,-0.14177,0.34691,0.15665,0.15576,0.35491,0.36261 -0.16424,-0.16424,-0.16088,-0.16391,0.26424,-0.16659,-0.16256,-0.16391,0.27264,0.27332,-0.16626,-0.15954,-0.15886,0.23668,0.26559,-0.16357,-0.16122,-0.15853,0.2266,0.22795,-0.16491,-0.16491,0.21921,0.23332,0.22459 -0.29971,0.11274,0.11828,0.12127,0.12809,-0.29501,0.11956,0.12255,0.12383,0.14857,-0.29715,-0.29715,0.13364,0.14003,0.14857,-0.29075,-0.28435,0.14857,0.15283,0.15112,-0.28648,-0.2771,0.15454,0.15454,0.14899 -0.21645,-0.22122,0.18865,0.22574,0.23449,-0.2183,-0.22042,-0.016151,0.22415,0.1958,-0.21592,-0.21724,0.21938,0.21885,0.19421,-0.21645,-0.21618,0.19104,0.19183,0.079759,-0.21592,-0.21433,-0.21804,0.1815,0.061213 -0.10781,-0.10781,-0.10384,-0.11019,-0.1086,-0.095911,-0.096704,-0.095911,-0.097498,-0.095911,-0.086393,-0.087186,-0.084807,-0.087186,-0.087186,-0.072116,-0.075289,-0.074495,-0.076875,-0.075289,0.0048225,0.45773,0.45614,0.45376,0.45456 0.1979,0.25265,-0.19842,-0.21146,-0.24144,0.17183,0.16791,-0.16974,-0.20885,-0.24144,0.15227,0.15357,-0.17886,-0.22058,-0.22319,0.14966,0.17443,0.1614,-0.18799,-0.19321,0.25005,0.25135,0.20051,0.18486,-0.19321 -0.30912,-0.28862,-0.35012,-0.45261,-0.43211,0.039357,-0.022139,-0.022139,0.018859,-0.042637,0.18285,0.14185,0.14185,0.039357,0.14185,-0.0016399,0.20335,0.039357,0.14185,0.16235,0.12135,0.14185,-0.0016399,0.20335,0.20335 -0.22828,-0.22758,0.24464,0.22987,0.22741,-0.22828,-0.22864,0.23339,0.23234,0.22882,-0.23039,-0.22793,0.21581,0.22987,0.039648,-0.22899,-0.2311,0.045274,0.04211,0.034726,-0.22793,-0.23321,0.045626,0.044923,0.19788 -0.17998,-0.1388,-0.14442,-0.14254,-0.062064,-0.13132,-0.035861,-0.14254,-0.14629,-0.093882,-0.15003,-0.10137,-0.052706,-0.13506,-0.12196,-0.1257,0.35531,-0.063936,-0.056449,-0.077037,0.35906,0.34221,0.3497,0.34408,0.35157 -0.23938,-0.15094,0.055423,0.2323,0.29126,-0.033018,-0.15094,-0.062498,0.26178,0.3797,-0.091978,-0.15094,0.025943,0.29126,0.17334,-0.29834,-0.23938,0.055423,0.11438,0.11438,-0.32782,-0.29834,-0.091978,0.055423,0.084903 -0.052192,-0.060081,-0.063236,-0.060081,-0.06534,-0.038518,-0.040096,-0.050088,-0.060607,-0.06271,-0.029052,-0.023793,0.18079,-0.059029,-0.057451,-0.044303,-0.029052,-0.020637,-0.073229,-0.049037,-0.063762,-0.039044,-0.044303,-0.047459,0.95231 -0.1365,-0.13606,-0.13715,-0.13781,-0.13715,-0.13803,-0.13803,-0.13715,-0.13715,-0.13759,-0.13715,-0.13803,-0.13715,-0.13824,-0.13803,0.32677,0.28731,0.28012,-0.13258,-0.13388,0.32633,0.29036,0.28186,0.27532,0.25962 -0.048373,-0.19349,-0.21284,-0.24187,-0.29024,0.087071,-0.029024,-0.16447,-0.21284,-0.24187,0.24187,0.087071,0,-0.16447,-0.19349,0.28056,0.20317,0.087071,-0.029024,-0.1161,0.38698,0.34829,0.26121,0.14512,0.0096746 0.15341,0.14924,0.15103,-0.26372,-0.26491,0.15401,0.15043,0.14983,-0.26372,-0.26611,0.15222,0.15222,0.14983,-0.26611,-0.27088,0.15461,0.14804,0.14864,-0.2673,-0.27088,0.14864,0.15043,0.14625,-0.26611,0.14088 0.21118,0.23897,0.2737,-0.1049,-0.19868,0.23897,0.26328,0.20771,-0.18478,-0.19868,0.24244,0.26328,0.19034,-0.17784,-0.19868,0.14171,0.020145,-0.1431,-0.18131,-0.22646,0.11045,-0.17089,-0.18131,-0.21257,-0.22299 0.49425,-0.037104,-0.0050025,-0.25713,-0.26248,0.14481,-0.034095,-0.033092,-0.021053,-0.26382,0.4705,0.14715,0.15918,-0.050814,-0.25379,0.17156,0.16153,-0.062852,-0.054827,-0.20865,0.16821,-0.068203,-0.056165,-0.029748,-0.21835 -0.12081,-0.10741,-0.094021,-0.10072,0.43501,-0.1275,-0.087324,-0.10741,-0.073931,0.18054,-0.12081,-0.11411,-0.087324,-0.040448,0.42832,-0.1275,-0.10072,-0.073931,-0.053841,0.51537,-0.11411,-0.1342,-0.087324,-0.047144,0.36135 0.21152,0.11804,0.095916,0.090045,-0.23193,0.23591,0.11443,-0.23735,-0.2378,-0.22832,0.28151,0.12662,-0.23825,0.10088,-0.24096,0.20881,0.14333,0.11488,-0.23961,-0.23961,0.27158,0.13656,0.12527,-0.23961,-0.24187 0.2166,0.15709,0.17693,0.15709,0.13726,0.19676,0.11742,0.097587,0.13726,0.018248,0.17693,0.11742,0.11742,0.13726,0.097587,-0.061091,-0.19993,-0.021421,-0.1206,-0.021421,-0.49745,-0.43795,-0.2396,-0.1206,-0.33878 -0.39226,-0.39129,-0.39665,-0.39616,-0.3947,0.10289,0.093631,0.11215,0.096555,0.066827,0.10387,0.24959,0.11313,0.0717,0.062928,0.091682,0.09022,0.10874,0.078036,0.07365,0.10484,0.089732,0.10533,0.085834,0.069751 0.38772,0.19872,0.090719,-0.07128,-0.07128,0.38772,0.11772,-0.01728,-0.04428,0.03672,0.27972,-0.07128,-0.12528,-0.28728,-0.17928,0.27972,-0.01728,-0.17928,-0.15228,-0.28728,0.27972,-0.01728,-0.20628,-0.26028,-0.07128 -0.23887,-0.25446,-0.14532,-0.067357,0.026194,-0.22328,-0.20768,-0.1765,0.010602,0.11975,-0.16091,-0.11413,-0.11413,0.15093,0.35362,-0.1765,-0.11413,0.07297,0.24448,0.35362,-0.11413,-0.051765,0.13534,0.29126,0.4004 0.28367,0.284,0.28736,0.29374,0.29307,-0.12007,-0.12075,0.29676,0.30012,0.29105,-0.1194,-0.12142,-0.12478,-0.14527,-0.14594,-0.1456,-0.13418,-0.14493,-0.1456,-0.14728,-0.14426,-0.14627,-0.14392,-0.13485,-0.14527 0.17273,0.26364,-0.054545,0.21818,-0.19091,0.17273,0.17273,0.081818,-0.14545,-0.41818,0.26364,0.17273,0.036364,-0.1,-0.19091,0.26364,-0.054545,0.081818,-0.28182,-0.32727,0.17273,0.12727,-0.1,-0.054545,-0.28182 0.28719,0.28669,-0.13668,-0.13685,-0.13735,0.28903,-0.13535,-0.13702,-0.13768,-0.13802,0.29153,-0.13668,-0.13651,-0.13902,-0.13885,0.2942,0.29354,-0.13718,-0.13802,-0.13785,0.29554,0.29454,-0.13535,-0.13601,-0.13785 0.13617,0.13766,0.13667,-0.29557,-0.28912,0.13766,0.13667,0.13766,0.13667,-0.29061,0.13717,0.13865,0.13667,0.13717,-0.29011,0.13766,0.13617,0.13667,-0.29507,-0.28962,0.13766,0.13766,0.13766,-0.29259,-0.28962 -0.14384,-0.13823,-0.13823,-0.13261,-0.16631,-0.11295,-0.15648,-0.17193,-0.10733,-0.15648,-0.084868,-0.11576,-0.12278,-0.10453,-0.094697,-0.076443,-0.10453,-0.10031,0.3083,0.32515,0.33357,0.32936,0.32936,0.3083,0.29426 0.27739,0.23168,-0.18833,-0.18961,-0.19025,0.20099,0.25437,-0.18705,-0.18801,-0.18929,0.19907,0.20483,-0.18674,-0.18961,-0.18929,0.20866,0.20387,0.24766,-0.1861,-0.18897,0.087518,0.087838,0.24446,-0.18769,-0.18737 0.11615,0.10698,0.098721,0.049636,-0.44902,0.11432,0.10606,0.087252,0.049177,-0.46094,0.11294,0.10514,0.08817,0.043672,-0.45177,0.11661,0.10514,0.097803,0.047342,0.012478,0.11753,0.10423,0.0845,0.051471,-0.4536 -0.40397,0.15289,0.15526,0.13393,0.14815,-0.39212,0.12682,0.11971,0.11971,0.12445,-0.39449,0.10313,0.091278,0.091278,0.098386,-0.39212,0.088908,0.086538,0.079429,0.069951,-0.39212,0.050994,0.053364,0.036776,0.043885 -0.16807,0.053073,-0.02064,0.27421,0.27421,-0.42606,-0.16807,-0.13121,0.2005,0.23736,-0.24178,-0.13121,-0.02064,0.08993,0.42164,-0.13121,-0.16807,0.12679,-0.02064,0.2005,-0.24178,-0.057496,-0.16807,0.016217,0.2005 -0.18718,-0.2419,-0.15464,0.27426,0.29497,-0.22416,-0.23747,-0.13246,-0.033366,0.25208,-0.20641,-0.21972,-0.051114,-0.034845,0.18848,-0.21232,-0.098442,-0.030408,0.29497,0.39702,-0.039282,-0.039282,0.0065667,0.258,0.17665 0.22838,0.31667,0.22838,0.22838,0.22838,-0.036493,0.14009,0.25781,0.19895,0.11066,-0.2425,0.022367,0.081227,0.081227,0.081227,-0.21307,-0.18364,-0.12478,-0.095354,-0.036493,-0.15421,-0.15421,-0.33079,-0.2425,-0.38965 -0.18208,-0.067322,-0.029071,-0.0035701,0.047432,-0.11832,-0.11832,-0.029071,-0.041821,0.085683,-0.13107,-0.11832,-0.029071,0.047432,0.072933,-0.10557,-0.11832,-0.080073,-0.029071,0.37894,-0.13107,-0.067322,-0.054572,-0.0035701,0.82521 0.54948,0.32428,0.19193,0.16032,-0.021414,0.51392,0.20576,-0.031291,-0.086602,-0.10241,-0.051045,-0.072774,-0.10043,-0.10636,-0.12216,-0.084627,-0.10636,-0.13006,-0.13401,-0.14191,-0.11031,-0.11821,-0.13006,-0.14586,-0.14982 0.1012,-0.014127,-0.10783,-0.028543,-0.023738,0.18049,-0.086207,-0.091012,-0.095817,-0.13426,0.39192,-0.088609,-0.10783,-0.13906,-0.12465,0.48322,-0.066985,0.0050936,0.012301,-0.12945,0.50244,0.1949,-0.18471,-0.14387,-0.30485 0.35977,0.11913,0.16559,0.18227,0.20967,0.13581,0.11198,0.31569,0.21205,0.19418,0.12866,0.11079,-0.19061,-0.18584,0.16082,-0.21562,-0.19537,-0.1918,-0.19775,-0.20371,-0.22158,-0.20252,-0.19418,-0.20728,-0.20014 -0.052968,-0.057868,-0.060317,-0.063117,0.038019,-0.052968,-0.055418,-0.059267,0.047817,0.040118,-0.055418,-0.059967,-0.074665,0.068114,0.065665,-0.055768,-0.062417,-0.074315,-0.073265,-0.072566,-0.060317,-0.073615,-0.072915,-0.075015,0.95244 -0.046409,-0.042745,0.26502,0.28823,0.85735,-0.058622,-0.073278,-0.042745,-0.084269,-0.097703,-0.040303,-0.035418,-0.063507,-0.085491,-0.10747,-0.0073278,-0.053737,-0.06595,-0.092818,-0.10747,0.015877,-0.058622,-0.069614,-0.095261,-0.097703 -0.092809,-0.095499,-0.095947,-0.10021,0.3001,-0.093481,-0.095947,-0.096619,-0.098636,0.30054,-0.094826,-0.095947,-0.098636,-0.10021,0.29987,-0.094826,-0.095947,-0.098412,-0.10289,0.52042,-0.094154,-0.096619,-0.098636,-0.10065,0.51997 0.36095,0.076442,0.072641,-0.14723,-0.1523,0.36475,0.33053,0.072007,-0.13963,-0.15484,0.35715,0.3394,-0.16054,-0.16181,-0.158,0.076442,0.094184,-0.16561,-0.16244,-0.16434,0.065037,-0.15991,-0.16117,-0.16561,-0.1561 -0.31651,0.044207,0.032695,0.10752,0.17468,-0.33761,-0.32226,0.051882,0.14974,0.16508,-0.31459,-0.29732,0.055719,0.16125,0.167,-0.31075,0.063394,0.1363,0.15741,0.15357,-0.29732,0.1152,0.15741,0.14206,0.16125 -0.27912,-0.27912,-0.12053,-0.12053,-0.12053,-0.12053,-0.21568,-0.21568,-0.12053,-0.21568,0.0063436,-0.15225,0.0063436,-0.15225,0.1015,0.0063436,0.1015,0.29181,0.0063436,0.19665,0.41868,0.19665,0.19665,0.38696,0.19665 0.14085,0.19032,-0.17331,-0.17583,-0.18213,0.23633,0.24043,-0.17362,-0.17804,0.21396,0.23664,0.23917,-0.1752,-0.17583,-0.18213,0.24169,0.24106,-0.17583,-0.1752,-0.17677,0.24232,0.2461,-0.1711,-0.1752,-0.17867 0.42129,-0.072409,-0.18212,-0.2004,-0.14555,0.32986,-0.035839,-0.12726,-0.14555,0.055586,0.34815,0.11044,-0.054124,-0.14555,-0.10898,0.34815,-0.017554,-0.2004,-0.21869,-0.10898,0.34815,-0.035839,-0.14555,-0.14555,0.12873 -0.12056,0.2702,0.27821,0.26219,0.25329,0.2889,0.2613,0.26308,0.26931,0.24617,-0.12323,-0.11789,-0.14637,-0.15171,-0.15705,-0.14103,-0.14014,-0.15349,-0.17574,-0.17485,-0.14637,-0.15349,-0.15705,-0.16951,-0.16417 -0.34974,-0.33858,-0.23264,0.12981,0.2023,-0.31628,-0.29955,0.051747,0.15769,0.16327,-0.27167,-0.11554,0.12424,0.16885,0.14654,-0.23821,-0.009591,0.16885,0.16327,0.16885,-0.10996,0.14654,0.18,0.14654,0.16327 -0.12175,-0.078269,0.0086966,0.0086966,0.64644,-0.12175,-0.078269,-0.12175,0.0086966,0.55948,-0.078269,-0.078269,-0.078269,-0.092763,0.28409,-0.12175,-0.078269,-0.078269,-0.078269,0.095662,-0.12175,-0.16523,-0.12175,-0.049281,0.052179 0.32885,0.027547,0.11363,-0.10158,-0.18767,0.19972,0.11363,-0.14462,-0.14462,-0.18767,0.41493,-0.14462,-0.015495,-0.18767,-0.23071,0.2858,0.027547,-0.058538,-0.058538,-0.10158,0.19972,0.41493,-0.18767,-0.14462,-0.23071 0.39686,0.20765,0.097065,-0.069602,-0.10105,0.24329,0.16887,0.097065,-0.069602,-0.097904,0.2412,0.2066,-0.17023,-0.17128,-0.17023,0.38952,-0.17547,-0.17966,-0.18176,-0.18071,0.24853,-0.17862,-0.18491,-0.18071,-0.18491 -0.14383,-0.12843,-0.12586,0.28735,0.28094,-0.13677,-0.14255,-0.13356,0.35473,0.27741,-0.1634,-0.13356,-0.14351,0.28735,0.27131,-0.16436,-0.15313,-0.14544,0.2758,0.27003,-0.16468,-0.16436,-0.15538,-0.052076,-0.054001 -0.17709,-0.17709,-0.11384,0.033731,0.4132,-0.029515,-0.11384,-0.11384,0.054813,0.43429,-0.11384,-0.029515,-0.11384,-0.029515,0.49753,-0.17709,-0.17709,-0.17709,0.096977,0.20239,-0.17709,-0.029515,-0.17709,-0.029515,0.22347 0.29082,0.29082,0.29007,0.28894,0.28894,0.28932,0.29007,0.28932,-0.12682,-0.13057,-0.12607,-0.12757,-0.12907,-0.13057,-0.13132,-0.12832,-0.13057,-0.13132,-0.13132,-0.13207,-0.24266,-0.13057,-0.12907,-0.13057,-0.12982 0.29228,0.28853,0.29322,0.29416,0.2951,0.29134,0.28665,0.28947,-0.15168,-0.1132,-0.1376,-0.14886,-0.14886,-0.13666,-0.14042,-0.12915,-0.13197,-0.14699,-0.13291,-0.13009,-0.13385,-0.1376,-0.13572,-0.13854,-0.13666 -0.26218,-0.27519,0.1674,0.16232,0.14819,-0.26218,-0.13613,0.1561,0.16288,0.17588,-0.24523,-0.1384,0.1708,0.21771,0.1968,-0.25823,-0.14348,0.21997,0.23693,0.19623,-0.26727,-0.14687,-0.14631,-0.1497,0.21997 -0.13807,-0.13633,-0.13633,-0.13763,-0.13589,-0.1385,-0.13893,-0.13807,-0.1385,-0.13893,-0.1372,-0.13546,-0.13589,-0.13633,-0.1372,0.29111,0.29241,0.29111,-0.13503,-0.13807,0.29198,0.29154,0.29111,0.29198,0.29111 -0.029254,-0.080447,-0.087761,-0.098731,-0.10604,0.0073134,-0.10604,-0.098731,-0.076791,-0.1097,0.054851,-0.014627,-0.095074,-0.087761,-0.084104,0.6253,0.018284,-0.080447,-0.062164,-0.069477,0.69112,0.062164,-0.065821,-0.054851,-0.051194 -0.074443,-0.13526,-0.18392,-0.13526,-0.09877,0.047196,-0.09877,-0.14743,-0.15959,-0.11093,0.26614,0.035032,-0.074443,-0.1231,-0.1231,0.33913,0.15667,-0.037951,-0.13526,-0.09877,0.6189,0.37562,0.12018,-0.074443,-0.14743 -0.017268,-0.026324,-0.14255,-0.15614,-0.15161,-0.01123,-0.015758,-0.027834,-0.086702,-0.06557,-0.015758,-0.018777,-0.0082113,-0.12595,-0.014249,-0.0051924,-0.003683,0.0023547,-0.01123,-0.003683,-0.00066415,-0.003683,-0.003683,-0.035381,0.94877 0.84722,0.0041732,-0.073787,-0.063087,-0.0011771,0.28506,0.0022624,-0.080666,-0.07608,-0.087545,-0.0088202,-0.080666,-0.09022,-0.078373,-0.091749,0.01067,-0.07608,-0.090602,-0.086781,-0.099774,0.28353,-0.079138,-0.089074,-0.087163,-0.092131 -0.071573,-0.071573,-0.1653,-0.2079,-0.36127,0.039195,0.030674,-0.054532,-0.18234,-0.25051,0.15848,0.15848,0.030674,-0.097135,-0.28459,0.26073,0.27777,0.13292,-0.054532,-0.21642,0.3715,0.34594,0.26073,0.030674,-0.080094 0.17993,0.12907,0.12297,0.11483,0.10059,0.184,0.17383,0.12297,0.10466,0.11279,0.18197,0.18197,0.184,0.10669,0.10059,-0.2819,-0.28801,-0.2758,0.11279,0.094483,-0.28801,-0.30021,-0.29818,-0.29411,-0.2819 -0.11174,-0.096342,-0.089859,0.28374,0.41989,-0.1085,-0.10526,-0.094721,0.29833,0.31454,-0.1166,-0.11822,-0.095532,-0.10364,0.29752,-0.17009,-0.16685,-0.14497,-0.096342,0.29509,-0.16847,-0.16361,-0.15145,-0.11174,0.30481 -0.096835,-0.097809,-0.1056,-0.10073,0.31801,-0.083202,-0.087097,-0.090993,-0.10073,0.30729,-0.087097,-0.075412,-0.10268,-0.091966,0.30729,-0.096835,-0.10268,-0.10073,-0.099757,0.50887,-0.098783,-0.12215,-0.098783,-0.11047,0.50887 -0.24851,-0.21632,-0.24851,-0.24851,-0.20022,-0.23242,-0.18413,-0.26461,-0.18413,-0.11975,0.13778,0.10558,0.13778,0.08949,0.08949,0.13778,0.34701,0.0090133,0.21825,0.0090133,0.15387,0.34701,0.28263,0.18606,-0.10365 0.20317,0.18203,0.17851,0.18203,-0.23371,0.20317,0.18125,0.17969,-0.21218,-0.25407,0.18673,0.17734,0.18008,-0.22862,-0.21374,0.14837,0.17851,-0.2157,-0.23058,-0.2114,0.14406,0.14954,-0.21453,-0.23645,-0.22353 -0.23661,-0.23576,-0.23063,-0.23405,-0.23234,-0.21014,-0.21185,-0.20331,-0.20331,-0.22209,0.091304,0.075933,0.068247,0.1007,0.41495,0.098135,0.080202,0.08618,0.19463,0.41409,0.10155,0.12375,0.12375,0.13229,0.11436 -0.3018,-0.091242,-0.3018,-0.40708,-0.3018,-0.16143,-0.056149,-0.16143,-0.056149,-0.19652,0.04913,0.04913,-0.056149,0.15441,0.084223,0.1895,0.15441,0.1895,-0.021056,0.29478,0.014037,0.32988,0.2246,0.2246,0.15441 0.68141,0.51595,0.30417,0.11224,0.012972,0.039444,0.01959,-0.066446,-0.086301,-0.086301,-0.066446,-0.10616,-0.10616,-0.10616,-0.10616,-0.10616,-0.092919,-0.12601,-0.079683,-0.079683,-0.079683,-0.086301,-0.10616,-0.092919,-0.10616 -0.12572,-0.029994,-0.12572,-0.061903,0.36886,-0.12572,-0.061903,-0.12572,-0.01404,0.22528,-0.061903,-0.12572,-0.061903,-0.061903,0.41673,-0.12572,-0.12572,-0.12572,-0.045949,0.56032,-0.12572,-0.12572,-0.12572,-0.12572,0.33696 -0.11341,-0.10926,-0.048054,0.040128,0.45095,-0.096813,-0.050128,-0.05739,-0.043904,0.43435,-0.11341,-0.10304,-0.045979,-0.030417,0.52772,-0.12897,-0.11964,-0.1269,-0.096813,0.3555,-0.13935,-0.13416,-0.13416,-0.13623,0.019379 -0.15535,-0.13834,-0.041013,-0.044204,-0.048459,-0.13621,-0.12398,-0.046863,-0.045268,-0.046863,-0.12823,-0.037823,-0.044204,-0.042609,-0.037823,-0.12557,-0.029314,-0.030377,-0.0341,-0.036227,-0.017082,-0.022932,0.28127,0.29456,0.83701 -0.2031,-0.1916,-0.15454,-0.16987,0.22887,-0.19544,-0.20566,-0.17243,0.20331,0.20714,-0.20566,-0.17243,-0.15582,0.20459,0.2327,-0.19416,-0.1507,0.20842,0.20459,0.29021,-0.14687,-0.14559,0.20586,0.21992,0.25826 -0.062554,-0.0044723,-0.087723,-0.093047,-0.078042,-0.020929,0.00036785,-0.075622,-0.068846,0.011016,-0.027221,-0.0044723,-0.035449,-0.079494,-0.084335,0.0095641,-0.020929,-0.043193,-0.022865,-0.083851,0.0018199,-0.029641,-0.055778,-0.01028,0.96598 0.035494,-0.068577,-0.052145,-0.16717,-0.24659,-0.068577,0.12039,-0.022019,-0.13431,-0.24933,0.43534,0.27376,-0.052145,-0.12335,-0.25481,0.26281,0.26281,0.046448,-0.14526,-0.22742,0.26281,0.24363,0.21899,-0.12883,-0.22194 0.16608,0.15966,0.053264,-0.34159,-0.33999,0.16153,0.16073,0.04765,-0.34373,-0.34212,0.16367,0.17651,0.047382,0.044174,-0.3456,0.16715,0.15057,0.045511,0.043372,-0.34694,0.15806,0.1888,0.043372,0.042036,0.040432 0.002294,-0.027628,-0.022641,0.052165,0.96729,-0.082486,-0.057551,-0.040096,-0.025135,0.0097746,-0.084979,-0.075005,-0.052564,-0.032615,-0.022641,-0.082486,-0.067525,-0.062538,-0.027628,-0.027628,-0.079992,-0.060044,-0.047576,-0.037602,-0.015161 -0.44021,-0.39969,-0.37788,-0.38411,-0.32177,-0.0849,0.03042,0.061587,0.16132,0.17691,0.074054,0.042887,0.055354,0.11769,0.16132,0.074054,0.074054,0.092755,0.14262,0.12392,0.098988,0.12081,0.14262,0.13016,0.12704 -0.046777,-0.036666,-0.036666,0.067806,0.9575,-0.056887,-0.053517,-0.046777,0.054325,0.047585,-0.073737,-0.077107,-0.070367,-0.050147,-0.019816,-0.063627,-0.063627,-0.087217,-0.056887,0.020625,-0.070367,-0.070367,-0.070367,-0.080477,-0.016446 -0.13519,-0.13059,-0.13289,-0.1467,0.39168,-0.13289,-0.1513,-0.10068,-0.070772,0.37788,-0.1536,-0.09608,-0.098381,-0.079975,0.39859,-0.12599,-0.10758,-0.09608,-0.056967,0.38478,-0.11219,-0.098381,-0.073073,0.29505,0.25134 -0.058576,-0.30506,-0.13107,0.14441,0.18791,-0.10207,-0.29056,0.013919,0.18791,0.2024,-0.16007,-0.31956,-0.029578,0.2459,0.2459,-0.073074,-0.27606,-0.00057996,0.2024,0.2459,-0.058576,-0.34855,0.028418,0.2169,0.2314 -0.15191,-0.16293,0.23943,0.26148,0.30558,-0.14088,-0.17395,0.052032,0.30006,0.26699,-0.14088,-0.17947,-0.11883,0.2725,0.2725,-0.17395,-0.15742,-0.18498,-0.0085984,0.28353,-0.17395,-0.18498,-0.196,-0.16293,0.057543 -0.014977,-0.08607,-0.11451,-0.13821,-0.17612,0.1201,-0.060003,-0.08607,-0.12399,-0.16664,0.40921,-0.029196,-0.081331,-0.10977,-0.12399,0.42817,0.022939,-0.08607,-0.12399,-0.10977,0.44239,0.46609,-0.033935,-0.10029,-0.12399 0.37937,0.17541,0.039433,0.073427,-0.3345,0.17541,0.14141,0.073427,-0.19852,-0.23252,0.2434,0.2434,-0.19852,-0.16453,-0.23252,0.005439,0.005439,0.10742,-0.062549,-0.062549,0.27739,0.17541,-0.028555,-0.23252,-0.36849 0.30937,0.27292,0.24081,0.18874,0.14882,0.30503,0.26858,0.23387,0.19568,-0.10893,-0.16101,-0.12976,0.24689,-0.13671,-0.13237,-0.17316,-0.16968,-0.16101,-0.17402,-0.16101,-0.18444,-0.18183,-0.1827,-0.17489,-0.17923 -0.11435,-0.15862,-0.10802,-0.095375,0.050091,-0.127,-0.10802,-0.16494,-0.063752,0.20188,-0.127,-0.127,-0.12067,-0.082725,0.36632,-0.1017,-0.13332,-0.095375,0.069064,0.46119,-0.1017,-0.1017,-0.057427,0.32205,0.51811 -0.24739,-0.2455,-0.24927,-0.24927,-0.25493,-0.038089,-0.064487,-0.070143,-0.072029,-0.068258,-0.030546,-0.019233,-0.019233,-0.013576,-0.019233,-0.0079194,-0.0060338,-0.0060338,0.0052796,0.018479,0.027907,0.43142,0.42199,0.38994,0.38617 -0.21959,-0.18947,0.18624,0.36378,0.18624,-0.21959,-0.18471,0.13709,0.17038,0.19575,-0.22593,-0.17679,0.17672,0.14502,0.14026,-0.21483,-0.21008,-0.1974,0.17355,0.1466,-0.21483,-0.19581,-0.18471,0.2655,0.1466 0.19901,0.15032,0.086747,0.032786,-0.0084601,0.20242,0.13916,0.09388,0.036508,-0.015283,0.21483,0.15156,0.089228,0.047982,-0.0059791,0.2018,0.14939,0.086127,0.033096,-0.0044285,-0.37533,-0.37626,-0.37657,-0.37626,-0.37626 -0.39612,-0.39716,-0.39482,-0.39951,-0.39638,0.075687,0.079853,0.088186,0.096778,0.17125,0.068136,0.07751,0.083759,0.087144,0.13349,0.067616,0.069959,0.087404,0.13115,0.13505,0.10928,0.076729,0.1249,0.088967,0.13115 0.1068,0.1068,0.09956,0.093772,0.10824,0.11982,0.12127,0.11548,0.10535,0.1068,0.32097,0.41503,0.21967,0.13574,0.11114,-0.20867,-0.2217,-0.24051,-0.19565,-0.19565,-0.22748,-0.24485,-0.23617,-0.25643,-0.25932 0.46881,0.17576,0.13753,-0.36848,-0.34846,0.14299,0.14845,0.10477,0.11569,-0.22468,0.09931,0.11569,0.088389,-0.17736,-0.25563,0.10477,0.12297,0.041064,-0.15188,-0.24289,0.14299,0.18122,-0.08453,-0.1446,-0.19192 -0.25963,-0.26472,0.082864,0.083667,0.082864,-0.26178,-0.25696,0.088755,0.086077,0.088755,-0.26071,-0.26579,0.1881,0.1881,0.18757,-0.25963,-0.26151,0.18489,0.18543,0.18596,-0.26472,0.18114,0.18061,0.18034,0.18034 0.035602,0.042388,-0.060495,-0.076256,-0.076913,0.032537,0.17657,-0.05765,-0.070127,-0.27896,0.2383,0.20437,-0.033352,-0.053491,-0.28246,0.24378,0.23458,0.23393,-0.27677,-0.33346,0.24618,0.2348,0.23217,-0.26933,-0.28596 -0.049287,-0.081063,-0.085476,-0.08989,-0.085476,0.048687,-0.077532,-0.091655,-0.083711,-0.081063,-0.075767,-0.083711,-0.086359,0.047805,-0.070471,-0.088124,0.037213,0.016912,0.045157,-0.058114,-0.08989,0.055748,0.045157,0.042509,0.9384 0.4924,0.38375,-0.15769,-0.058091,-0.12509,0.42359,0.31675,-0.17036,-0.14682,-0.13052,0.20267,0.13386,-0.11242,-0.15044,-0.092496,0.050558,-0.036361,-0.12147,-0.14139,-0.13415,0.045126,-0.092496,-0.12147,-0.15225,-0.10517 -0.2954,-0.29034,-0.29133,-0.29122,-0.29045,0.12733,0.12975,-0.29144,-0.29122,-0.28902,0.13074,0.12744,0.12799,0.12711,0.14898,0.12986,0.1281,0.13096,0.14733,0.14821,0.12986,0.14931,0.14931,0.14953,0.14865 -0.015453,-0.049045,-0.055764,-0.049045,-0.035608,0.15587,-0.069201,-0.062482,-0.089356,-0.052404,0.26337,-0.075919,-0.10951,-0.11623,-0.11959,0.475,0.055092,-0.14646,-0.1431,-0.13975,0.60265,0.29696,-0.1599,-0.1767,-0.18342 0.22438,0.20607,-0.20711,-0.20774,-0.20759,0.22932,0.20591,-0.20663,-0.20854,-0.20727,0.17152,0.17009,-0.20663,-0.20711,-0.20711,0.17056,0.20878,0.17693,-0.20886,-0.2079,0.1712,0.2083,0.18473,0.16228,-0.20759 0.29534,0.13247,0.041985,0.060082,0.096276,0.25915,0.13247,0.041985,0.023888,0.041985,0.29534,0.15057,0.096276,0.11437,0.11437,0.11437,-0.012306,-0.10279,-0.12089,-0.0485,-0.37424,-0.41044,-0.33805,-0.31995,-0.28376 -0.33414,0.039898,0.081458,0.12302,0.081458,-0.43804,0.081458,0.1438,0.18536,0.12302,-0.35492,0.10224,0.10224,0.22692,0.039898,-0.35492,0.060678,0.12302,0.16458,0.1438,-0.43804,-0.022442,0.039898,0.039898,0.039898 -0.14083,0.24183,-0.15747,-0.16143,-0.17728,0.26005,0.26005,-0.16935,-0.15192,-0.16143,0.26956,0.27035,-0.15905,-0.15509,-0.16935,0.24341,0.21727,-0.1646,-0.16777,-0.17332,0.24817,0.21014,0.22202,-0.16698,-0.16698 0.093267,-0.026922,-0.17115,-0.33942,-0.33942,0.23749,0.069229,-0.026922,-0.24326,-0.4596,0.23749,0.1173,0.045191,-0.099036,-0.21923,0.16538,0.16538,0.1173,0.021153,-0.14711,0.28557,0.21346,0.21346,0.069229,0.021153 -0.18406,-0.22001,-0.19305,-0.20204,-0.16609,-0.14811,-0.22001,-0.16609,-0.094188,-0.022289,-0.13913,-0.16609,-0.12115,-0.013301,0.15746,-0.031276,-0.049251,0.08556,0.2024,0.36417,0.14847,0.10354,0.25632,0.39113,0.42708 -0.12169,-0.16309,-0.20448,-0.26657,-0.018213,-0.080301,-0.12169,-0.18378,-0.26657,-0.018213,-0.059605,-0.20448,-0.12169,-0.32866,0.02318,0.043876,0.16805,0.12666,0.12666,0.35432,0.25084,0.23014,0.18875,0.29223,0.35432 -0.22467,-0.24705,-0.29181,-0.17992,-0.22467,-0.04565,-0.13516,-0.11278,-0.15754,-0.090406,-0.04565,0.021483,-0.068028,-0.023273,-0.068028,-0.068028,0.088616,0.15575,0.088616,0.22288,-0.068028,0.37953,0.35715,0.37953,0.35715 -0.4076,0.076836,0.064198,0.055773,0.12107,-0.38654,0.095792,0.081048,0.074729,0.078942,-0.39707,0.064198,0.059986,0.057879,0.072623,-0.39917,0.10843,0.10843,0.1337,0.12107,-0.38022,0.19689,0.14634,0.1653,0.087367 0.3134,0.28638,0.12428,0.42147,0.3134,0.070245,0.043227,0.12428,0.12428,0.12428,-0.037824,-0.037824,0.01621,0.097262,-0.010807,-0.14589,-0.19993,-0.308,-0.17291,-0.28098,-0.19993,-0.25396,-0.010807,-0.11888,-0.28098 0.16346,0.045795,-0.10549,-0.12977,-0.33708,0.064472,-0.012102,-0.00089648,-0.16338,-0.38563,0.25497,0.045795,0.034589,-0.12977,-0.24182,0.311,0.12797,0.11116,0.20828,-0.21941,0.37264,0.15599,0.22136,-0.18579,-0.20634 0.2601,0.34395,-0.17506,-0.17463,-0.17291,0.26999,0.15389,-0.17549,-0.17506,-0.17334,0.26698,0.16335,-0.17506,-0.17463,-0.17377,0.15475,0.16335,-0.17463,-0.17291,-0.1699,0.13927,0.1698,0.16292,0.16249,-0.32341 0.62526,0.54067,0.29628,-0.06091,-0.10791,0.27748,-0.032711,-0.098508,-0.070309,-0.098508,-0.070309,-0.098508,-0.079709,-0.079709,-0.098508,-0.10791,-0.089108,-0.089108,-0.10791,-0.089108,-0.06091,-0.070309,-0.06091,-0.070309,-0.098508 0.1827,-0.14242,-0.17017,-0.19264,-0.23625,0.26861,0.1827,-0.16885,-0.18471,-0.23493,0.25275,0.26332,0.1523,-0.18471,-0.19264,0.14834,0.23557,0.24349,-0.18074,-0.19793,0.14041,0.14966,0.23424,-0.17678,-0.19132 0.11957,0.1184,0.12291,-0.32,-0.32058,0.12291,0.12364,0.12407,-0.31957,-0.32044,0.12916,0.12902,0.12626,0.12233,-0.32073,0.12727,0.12349,0.1264,0.1248,-0.32131,0.1232,0.12596,0.12771,0.12771,-0.32218 0.17231,0.18424,0.23235,0.23792,0.18583,0.16874,0.18384,0.18782,0.18384,0.18384,-0.18313,0.18305,0.17868,0.20333,-0.22488,-0.18551,-0.21772,-0.2209,-0.22408,-0.22527,-0.21891,-0.2201,-0.21056,-0.18035,-0.17438 -0.18977,-0.18977,0.2927,0.13188,0.21229,-0.18977,-0.37741,0.02466,0.02466,0.2927,-0.29699,-0.028949,0.051464,0.051464,0.13188,-0.40421,-0.028949,0.051464,0.21229,0.2927,-0.24338,-0.10936,0.051464,0.078269,0.15868 0.30301,0.25862,0.21424,0.25862,0.22903,0.15506,0.12546,0.14026,0.12546,0.14026,0.066283,0.051488,0.036692,0.066283,-0.28881,-0.11126,-0.096466,-0.096466,-0.14085,-0.27401,-0.20003,-0.17044,-0.14085,-0.15565,-0.49594 -0.24045,-0.23105,-0.19114,0.11412,0.12351,-0.23105,-0.20523,0.3184,0.16813,0.15169,-0.2428,-0.14417,0.23387,0.18926,0.22213,-0.21697,-0.21931,-0.13713,0.201,0.21039,-0.1747,-0.19114,0.088289,0.17987,0.22448 -0.40272,-0.38889,-0.38889,-0.38582,-0.37814,0.15943,0.1241,0.099528,0.058058,0.022732,0.1625,0.13639,0.088776,0.065737,0.028875,0.17786,0.13025,0.10567,0.051914,0.030411,0.19322,0.13332,0.093384,0.051914,0.030411 -0.18745,0.15398,0.16304,0.17254,0.17744,-0.18656,-0.18938,0.15413,0.16304,0.17982,-0.29067,-0.21523,0.14789,0.1516,0.17388,-0.288,-0.2773,0.15279,0.15324,0.15814,-0.2877,-0.28176,-0.21968,0.1669,0.15532 0.7989,0.3558,-0.067338,-0.071407,-0.070244,0.3558,-0.070826,-0.00088348,-0.070244,-0.071794,-0.073151,-0.074119,-0.072957,-0.072376,-0.072569,-0.073344,-0.073538,-0.072569,-0.071019,-0.072376,-0.073538,-0.072569,-0.071601,-0.071407,-0.070632 0.27388,0.28614,-0.13982,-0.1014,-0.17539,0.24771,0.32743,-0.13982,-0.15413,-0.16762,0.2796,0.29799,-0.15413,-0.15699,-0.14023,0.22278,0.22482,-0.14269,-0.15577,-0.13655,-0.17212,0.21992,-0.15577,-0.15781,-0.13001 -0.090787,-0.08771,-0.086555,-0.085401,-0.090402,-0.088864,-0.088671,-0.087902,-0.093095,-0.093288,-0.079823,-0.091172,-0.090787,-0.092711,-0.094634,-0.079439,-0.0779,-0.079246,-0.073284,-0.090787,0.47682,0.46432,0.44932,0.44124,-0.089248 0.11381,0.11631,0.12978,0.12629,0.10732,0.11232,0.1183,0.12379,0.11731,0.11032,0.10134,0.097841,0.1203,0.11232,0.10782,0.096344,0.089856,0.096344,0.13477,-0.35383,-0.35633,-0.35433,-0.35383,-0.36232,-0.35184 -0.094926,-0.096713,-0.094926,-0.097607,0.27952,-0.094032,-0.093585,-0.096713,-0.094032,0.28131,-0.094926,-0.094926,-0.094479,-0.094926,0.27684,-0.094926,-0.094479,-0.096266,-0.10297,0.53779,-0.096266,-0.096266,-0.096266,-0.097607,0.54137 0.3772,-0.10044,-0.10424,-0.12518,-0.11471,0.36959,-0.10805,-0.1109,-0.10424,-0.1071,0.30774,0.36959,-0.10234,-0.10424,-0.10234,0.32963,-0.13088,-0.11947,-0.12898,-0.090922,0.37339,-0.089019,-0.12898,-0.1423,-0.11281 -0.39846,-0.285,-0.21693,-0.21693,-0.26231,-0.19424,-0.12616,0.0099841,-0.080781,0.0099841,-0.14885,0.0099841,0.16882,0.078058,-0.12616,0.10075,0.0099841,0.12344,0.032675,0.12344,0.19151,0.25959,0.25959,0.44112,0.2369 0.23242,0.28879,0.34082,0.32781,0.20206,0.16737,0.24542,0.24109,0.041627,-0.1535,0.10667,0.054635,-0.066776,-0.16651,-0.20987,0.011274,-0.084121,-0.19686,-0.20987,-0.22288,-0.084121,-0.17952,-0.22288,-0.23155,-0.23155 0.12812,0.13014,0.13418,0.12787,0.19579,0.13014,0.12661,0.15009,0.12812,0.12863,0.07611,0.13671,0.14807,0.18847,0.19427,0.078634,0.10919,-0.28671,-0.28949,-0.29151,-0.28444,-0.28545,-0.28873,-0.29126,-0.29353 -0.24852,-0.24121,-0.24089,-0.24025,-0.23898,-0.24216,-0.24216,-0.24184,-0.24025,-0.076123,0.36728,0.15226,0.15449,0.15353,0.14272,0.16339,0.16148,0.15703,0.15639,-0.004873,-0.071988,0.15417,0.16276,0.16212,0.24164 0.18747,0.18965,0.19239,0.1902,0.19293,0.18583,0.19348,0.19293,0.19239,0.19184,-0.20837,0.20496,-0.20236,0.19129,0.19184,-0.20728,-0.21439,-0.20509,-0.21001,-0.1958,-0.21493,-0.20127,-0.21439,-0.20947,-0.21384 -0.088106,-0.03981,-0.013074,-0.058783,-0.054471,-0.053609,-0.014799,-0.034635,-0.056196,-0.077757,-0.044985,-0.0053126,0.021423,-0.042397,-0.081207,-0.067408,-0.053609,0.026597,0.019698,-0.10708,-0.07172,-0.053609,-0.022561,0.0084863,0.96493 0.046991,-0.12628,-0.12546,-0.12136,-0.11645,0.047605,-0.12587,-0.12566,-0.12157,-0.11747,0.37612,0.048834,-0.12628,-0.12136,-0.11829,0.38267,0.38206,-0.12464,-0.12013,-0.11358,0.39393,0.39004,-0.12464,-0.12628,-0.11296 0.18801,0.18866,-0.20475,-0.20928,-0.21574,0.1893,0.19059,-0.19506,-0.20928,-0.2209,0.19253,0.19189,-0.197,-0.20152,-0.20734,0.19512,0.19641,0.19253,-0.21315,-0.20863,0.19576,0.19189,0.19318,0.19124,-0.21444 -0.17578,-0.17584,-0.13931,-0.13876,0.26338,-0.17597,-0.17548,0.2431,0.24268,0.24128,-0.1753,-0.17572,-0.13608,0.24298,0.24152,-0.1756,-0.17603,-0.13571,0.24085,0.2414,-0.1756,-0.17609,-0.13559,0.2417,0.24396 0.18498,0.18434,0.18792,0.18817,0.19201,0.18869,0.18549,0.18971,0.19227,0.19981,-0.20736,0.19892,0.20365,0.20135,-0.20314,-0.20928,-0.20826,-0.20826,-0.20826,-0.20775,-0.20928,-0.20902,-0.20864,-0.20941,-0.20864 -0.39923,-0.39906,-0.39906,-0.39923,-0.39923,0.097434,0.09651,0.13299,0.11706,0.11596,0.097838,0.096799,0.13258,0.11538,0.089699,0.095298,0.096914,0.092989,0.089007,0.090911,0.085486,0.091893,0.090911,0.083004,0.08716 -0.087577,-0.089015,-0.089015,-0.08922,-0.086961,-0.088604,-0.089015,-0.087371,-0.088604,-0.088398,-0.084907,-0.08655,-0.088809,-0.088604,-0.089631,-0.082236,-0.084496,-0.086344,-0.085317,-0.087166,0.46024,0.45757,0.45921,0.45593,-0.085112 0.4117,0.25539,0.1123,-0.044008,-0.1907,0.41411,-0.047615,-0.0091383,-0.053627,-0.21235,0.40209,-0.037996,-0.081283,-0.077676,-0.19431,0.36601,-0.071664,-0.08489,-0.090902,-0.22076,-0.063247,-0.071664,-0.094509,-0.094509,-0.22076 -0.37259,0.062042,0.061853,0.057133,0.052413,-0.37222,0.062042,0.061098,0.21932,0.056567,-0.37089,0.010875,0.059965,0.058832,0.059965,-0.37184,0.062042,0.060154,0.21611,0.21819,-0.37486,-0.052375,0.059588,0.21271,0.26388 -0.13749,-0.17977,-0.22205,-0.18712,-0.19815,-0.074997,-0.15036,-0.13382,-0.11544,-0.10625,-0.058453,-0.09154,-0.1283,-0.087864,-0.080511,0.32204,-0.063968,-0.084187,-0.098893,0.31837,0.31285,0.31102,0.31102,0.31285,0.31102 -0.11138,-0.10171,-0.076572,-0.026297,-0.0088947,-0.11718,-0.12105,-0.10751,-0.047567,0.41457,-0.12298,-0.12105,-0.11718,-0.039833,0.45324,-0.12298,-0.11718,-0.088174,-0.049501,0.46871,-0.11331,-0.11524,-0.028231,-0.049501,0.46678 0.1696,0.19462,0.13208,0.044527,0.019512,0.21963,0.08205,0.069543,0.057035,-0.018011,0.1696,0.1696,0.094558,0.044527,0.0070043,0.23214,0.13208,0.10707,0.03202,-0.11807,-0.3307,-0.36823,-0.36823,-0.34321,-0.43076 -0.43809,-0.34769,-0.062585,0.055631,0.11126,-0.35465,-0.17385,0.013908,0.13212,0.15994,-0.31292,0.062585,0.15298,0.20862,0.15298,-0.28511,0,0.11822,0.19471,0.16689,-0.13212,0.041723,0.15994,0.19471,0.1808 -0.43195,-0.21651,-0.13572,-0.24344,-0.56659,-0.028006,-0.081865,-0.054936,-0.0010772,-0.028006,-0.028006,-0.028006,0.025852,0.025852,0.052781,0.13357,0.13357,0.13357,0.13357,0.10664,0.24129,0.29514,0.079711,0.24129,0.24129 0.28938,0.28519,0.012849,0.034497,0.015642,0.23142,0.23142,0.27751,0.042178,0.031005,0.22933,0.23212,0.23561,0.027514,0.020531,-0.20433,-0.23994,-0.22598,-0.20642,-0.21271,-0.22388,-0.21829,-0.22528,-0.21899,-0.22039 0.039726,0.040012,0.16412,0.15954,0.15954,0.05288,0.041728,0.03801,0.20301,0.2053,0.13695,0.040584,0.033721,0.029717,0.20301,0.13638,0.12923,0.03658,0.030003,0.02743,-0.38093,-0.38093,-0.38207,-0.38207,-0.3815 0.23603,-0.11917,-0.12115,-0.12285,-0.13307,0.23546,-0.12172,-0.11917,-0.12257,-0.1291,0.35206,-0.12058,-0.12257,-0.11917,-0.12683,0.36086,0.34752,-0.11973,-0.12058,-0.12796,0.34355,0.34781,-0.12285,-0.12427,-0.12995 -0.34152,0.054802,0.055552,0.062301,0.20816,-0.34002,0.055552,0.056302,0.057052,0.059302,-0.33589,0.055552,0.057802,0.067175,0.22465,-0.33702,0.057802,0.060801,0.20816,0.21303,-0.33814,-0.33739,0.063426,0.22315,0.18941 0.24163,0.22128,0.22957,-0.15707,-0.1533,0.23937,0.24163,-0.17892,-0.15631,-0.15707,0.23937,0.23786,-0.17139,-0.1646,-0.15857,0.24841,0.26725,-0.16385,-0.16611,-0.15405,0.27856,-0.18269,-0.16536,-0.1631,-0.15254 -0.23337,-0.23191,-0.23919,-0.24064,-0.23628,-0.23191,-0.17805,-0.21299,-0.23337,-0.19261,-0.025211,0.20623,0.16111,0.26155,0.2237,0.17566,0.18003,0.22079,0.2237,0.22952,-0.04559,0.20041,0.0082679,-0.020845,0.23098 -0.27429,-0.062833,-0.15346,-0.24408,-0.15346,-0.062833,-0.24408,-0.093042,-0.24408,-0.093042,-0.062833,0.088208,-0.21387,0.058,-0.24408,0.027792,0.14862,0.14862,0.058,0.088208,0.29967,0.4205,0.32987,0.29967,0.17883 0.29422,-0.12863,-0.13289,-0.13555,-0.12544,0.29351,0.29316,-0.12952,-0.12863,-0.13519,0.29316,0.29156,-0.14193,-0.1414,-0.13519,0.29032,-0.1437,-0.14317,-0.14104,-0.13998,0.28801,0.28766,-0.1453,-0.14264,-0.1414 -0.34202,0.0059655,0.12196,0.12196,-0.010605,-0.34202,-0.093459,0.1551,0.12196,0.2711,-0.40831,-0.19288,0.055678,0.12196,0.12196,-0.34202,0.072249,0.12196,0.17167,0.1551,-0.35859,0.1551,0.072249,0.12196,0.12196 -0.13798,-0.14664,-0.14755,0.27458,0.38216,-0.143,-0.14482,-0.14755,0.26911,0.27321,-0.143,-0.14482,-0.1471,0.27321,0.27047,-0.14345,-0.143,-0.14755,0.27777,0.26911,-0.143,-0.14208,-0.14163,-0.1471,0.02066 0.033512,-0.15671,-0.14052,-0.15266,-0.14457,0.041606,-0.10005,-0.14052,-0.14457,-0.10814,0.44634,-0.10005,-0.13648,-0.11624,-0.08386,0.43824,0.20755,-0.1041,-0.10005,-0.079813,0.5111,0.25207,-0.067671,-0.075766,0.02137 -0.08917,-0.08917,-0.08917,-0.09041,-0.089914,-0.087434,-0.088674,-0.088178,-0.088922,-0.090162,-0.085698,-0.085202,-0.086442,-0.086194,-0.087434,-0.085698,-0.084705,-0.086194,-0.085202,-0.085698,0.45971,0.46442,0.45276,0.45599,-0.083217 0.18558,0.1621,0.19733,0.23118,0.25536,0.1621,0.18213,0.063999,0.22013,0.2595,0.27263,0.17453,0.066071,-0.20335,-0.19852,-0.20335,-0.20612,-0.20128,-0.20128,-0.20335,-0.20335,-0.20543,-0.20335,-0.19921,-0.20404 -0.10512,-0.099206,-0.10315,-0.083427,0.45698,-0.10118,-0.11104,-0.097233,0.2351,0.23608,-0.10907,-0.10118,-0.086386,0.23312,0.22622,-0.19881,-0.21261,-0.19486,0.24299,0.22326,-0.20867,-0.22642,-0.24022,0.22228,0.20255 0.46435,0.42743,0.46626,0.46944,-0.072809,-0.063898,-0.068354,-0.072172,-0.0779,-0.075991,-0.070899,-0.074081,-0.074718,-0.077264,-0.078537,-0.094448,-0.093175,-0.093175,-0.099539,-0.10463,-0.1059,-0.10718,-0.10718,-0.10718,-0.10845 -0.14927,-0.14927,-0.14959,-0.14959,-0.1499,-0.14943,-0.14943,-0.14959,-0.15054,-0.14927,-0.15022,-0.14959,-0.14959,-0.14959,-0.14959,0.25337,0.25385,0.25637,0.25463,0.2518,-0.15054,0.23918,0.30274,0.29643,0.28665 0.12127,0.12127,0.060431,-0.00040558,-0.18291,0.17196,0.20238,0.10099,0.050291,-0.13222,0.16182,0.20238,0.19224,-0.020684,-0.26403,0.12127,0.20238,0.060431,-0.020684,-0.50737,0.030013,0.11113,-0.00040558,-0.28431,-0.49724 -0.070693,-0.20161,-0.35434,-0.37616,-0.28888,-0.0052365,-0.11433,-0.13615,-0.17979,-0.24524,-0.0052365,-0.048874,-0.0052365,0.082039,0.06022,-0.070693,0.16931,0.25659,0.27841,0.27841,0.16931,0.21295,0.082039,0.25659,0.25659 0.83881,0.31913,-0.062948,0.31055,-0.066522,-0.069024,-0.071168,-0.064735,-0.06545,-0.066164,-0.065807,-0.071168,-0.067237,-0.061876,-0.066522,-0.068666,-0.067237,-0.067594,-0.065807,-0.067237,-0.067237,-0.066164,-0.067237,-0.066522,-0.066164 0.58871,-0.040709,-0.12446,-0.11939,-0.12446,0.55318,-0.043247,-0.11177,-0.11939,-0.127,0.15979,-0.094007,-0.11685,-0.12446,-0.12446,0.16487,0.1268,-0.1067,-0.127,-0.13208,0.16994,0.16741,-0.055937,-0.11939,-0.11939 0.29326,0.29502,-0.13715,-0.13709,-0.13739,0.29155,-0.13666,-0.13715,-0.13727,-0.13739,0.28985,-0.13679,-0.13733,-0.13752,-0.13727,0.29076,0.29046,-0.13697,-0.13703,-0.13733,0.29198,0.28948,-0.13691,-0.13764,-0.13746 0.12375,0.094804,0.10928,0.20698,0.24678,0.15994,0.17079,0.31915,0.42409,0.41323,-0.15487,-0.14402,-0.10783,-0.12954,-0.082502,-0.15849,-0.17658,-0.16935,-0.15849,-0.17658,-0.16211,-0.16211,-0.16935,-0.16573,-0.15125 0.41495,0.42021,0.39524,0.089005,0.05089,0.31507,0.31244,-0.076598,0.067976,-0.0056252,-0.11208,-0.066084,-0.071341,-0.10157,-0.11997,-0.13706,-0.14363,-0.14363,-0.13048,-0.14626,-0.16071,-0.15546,-0.16071,-0.17517,-0.1594 -0.016806,-0.022079,-0.023084,-0.093903,-0.010276,0.016846,-0.012285,-0.021075,-0.016303,-0.010276,0.017097,-0.012285,-0.016555,-0.01329,-0.30234,0.019859,-0.012536,-0.019317,-0.01329,-0.013792,0.89606,0.012074,-0.01555,-0.014546,-0.30234 0.56076,-0.041603,-0.142,-0.17412,-0.24641,0.55273,0.066823,-0.15003,-0.16609,-0.142,0.22344,-0.0094772,-0.13397,-0.13397,-0.10987,0.22344,-0.0054615,-0.017509,-0.1179,-0.041603,0.094933,0.022649,0.058791,-0.065698,-0.10586 -0.179,-0.179,-0.10889,0.35938,0.31634,-0.17733,-0.11041,-0.1098,0.31117,0.31437,-0.17611,-0.1101,-0.1098,-0.1101,0.31163,-0.17535,-0.11086,-0.11041,-0.1101,0.30798,-0.17413,-0.11041,-0.11117,0.17627,0.17582 -0.19836,0.047541,0.047541,0.12951,0.12951,-0.40328,-0.32131,0.12951,0.12951,0.12951,-0.15738,-0.19836,0.17049,0.17049,0.29344,-0.15738,-0.15738,0.17049,0.12951,0.17049,-0.44426,-0.11639,-0.034426,0.21148,0.12951 0.19559,-0.073121,-0.20748,-0.2319,-0.25837,0.18337,0.19559,-0.13826,-0.2319,-0.25022,0.18134,0.18337,0.20373,-0.20544,-0.23597,0.18337,0.18337,0.19355,-0.12808,-0.25226,0.1793,0.18948,0.18744,0.18948,-0.23597 0.45416,0.28486,0.19453,0.13882,-0.037517,0.46146,0.27648,0.20399,0.14963,-0.04563,-0.13975,-0.14624,-0.14353,-0.14489,-0.043737,-0.14894,-0.15002,-0.14732,-0.1457,-0.13623,-0.14948,-0.15111,-0.14921,-0.14732,-0.13731 0.35614,-0.060399,-0.19057,-0.32074,-0.24264,0.25201,-0.086433,-0.1385,-0.2166,-0.2166,0.25201,-0.0083308,-0.060399,-0.11247,-0.1385,0.46028,-0.034365,-0.0083308,-0.0083308,-0.060399,0.38218,0.095805,0.12184,-0.034365,0.017703 0.03253,-0.016265,-0.081325,-0.22771,-0.22771,0.11386,0.03253,-0.081325,-0.16265,-0.22771,0.19518,0.14639,0.048795,0,-0.14639,0.29277,0.19518,0.06506,-0.016265,-0.13012,0.48795,0.30904,0.048795,-0.24398,-0.40663 0.34373,0.33299,0.33085,0.34587,0.33943,-0.11137,-0.10064,-0.077023,-0.042676,0.42745,-0.11137,-0.11566,-0.11352,-0.1264,-0.1221,-0.1221,-0.11566,-0.1221,-0.11781,-0.11137,-0.1221,-0.1264,-0.11566,-0.11996,-0.1264 -0.12718,-0.13714,-0.12219,-0.13216,-0.13714,-0.092293,-0.12219,-0.097277,-0.11721,-0.13216,0.30638,0.10704,-0.042459,-0.10226,-0.12718,0.56552,0.1818,-0.027509,-0.10724,-0.077343,0.56054,0.13695,-0.0075748,-0.092293,-0.057409 -0.12549,-0.18359,-0.12549,-0.086762,0.26183,-0.12549,-0.20296,-0.16423,-0.086762,0.31993,-0.028662,-0.10613,-0.10613,0.048803,0.2812,-0.048029,-0.16423,-0.086762,-0.028662,0.43613,-0.12549,-0.10613,-0.0092959,0.010071,0.55233 -0.13938,-0.13853,-0.13143,-0.13058,-0.13597,-0.13966,-0.13001,-0.13398,-0.12688,-0.13739,-0.13711,-0.13256,-0.13768,-0.12916,-0.13597,0.33175,-0.071507,-0.068383,-0.066964,0.27893,0.32976,0.34567,0.37378,0.28603,0.27723 0.42833,0.36522,-0.11553,-0.12295,-0.12852,0.3281,0.32438,-0.13223,-0.1508,-0.1508,0.11464,-0.11367,-0.14337,-0.18049,-0.13595,0.16104,0.28169,-0.15265,-0.13966,-0.13595,0.11649,0.13134,-0.15265,-0.13966,-0.15636 -0.094411,0.11714,0.19596,0.20425,0.19181,-0.23959,0.030032,0.17107,0.19596,0.20425,-0.28937,-0.16908,0.083958,0.17522,0.2167,-0.30596,-0.26448,-0.077819,0.12959,0.20425,-0.29352,-0.29767,-0.25204,-0.0073007,0.17107 0.097533,0.1062,0.12747,0.14717,0.14323,0.10305,0.099897,0.11093,0.12432,0.14323,0.10068,0.092019,0.091231,0.088079,0.1125,-0.31687,0.099109,0.091231,0.11802,0.13062,-0.35941,-0.36729,-0.35704,-0.36098,-0.36492 0.32227,0.31263,-0.11722,-0.12572,-0.1267,0.32178,0.31165,-0.12245,-0.12915,-0.13209,0.32293,0.31312,-0.12654,-0.13095,-0.13487,0.32472,-0.12784,-0.12964,-0.13503,-0.13863,-0.011637,-0.12931,-0.13226,-0.13814,-0.14092 0.20126,0.18055,-0.19768,-0.19403,-0.21352,0.16533,0.17081,-0.0064319,-0.051504,-0.054549,0.18665,0.17751,0.096502,0.060567,-0.38893,0.17446,0.20248,0.053867,0.061785,-0.40355,0.18238,0.17995,0.05204,-0.32863,-0.30732 0.21892,-0.11318,-0.16632,-0.18956,-0.13975,0.24881,-0.033476,-0.163,-0.1796,-0.17628,0.23553,0.25545,-0.093255,-0.20949,-0.18624,0.21228,0.2156,0.23885,-0.21613,-0.14639,0.28866,0.23221,0.25545,-0.20617,-0.18292 0.29485,0.062318,-0.007441,0.062318,-0.007441,0.15533,0.10882,0.039065,-0.0772,-0.14696,0.22509,0.20184,0.015812,-0.23997,-0.14696,0.22509,0.15533,0.062318,-0.26322,-0.23997,0.22509,0.085571,0.039065,-0.23997,-0.58877 -0.090248,-0.088258,-0.089584,-0.090911,-0.090911,-0.088921,-0.088921,-0.089584,-0.088258,-0.089584,-0.084943,-0.084943,-0.086932,-0.087595,-0.088258,-0.082953,-0.083617,-0.084943,-0.084943,-0.08428,0.46079,0.4525,0.46079,0.4588,-0.08428 0.48445,0.38137,0.30407,0.14946,0.20099,0.22676,0.020615,0.046383,0.12369,0.046383,0.046383,-0.082459,-0.05669,-0.134,-0.05669,-0.10823,-0.030922,-0.28861,-0.23707,-0.10823,-0.15976,-0.18553,-0.31437,-0.10823,-0.15976 -0.29261,-0.28703,-0.30378,-0.30099,-0.29448,0.13256,-0.28703,-0.27959,-0.28517,0.11953,0.14186,0.13442,0.13721,0.12791,0.12511,0.14651,0.13907,0.13721,0.13442,0.13349,0.14651,0.14651,0.14465,0.14279,0.14093 0.48693,0.18586,0.050379,-0.027397,-0.12775,0.28872,0.1683,-0.0048171,-0.13277,-0.16288,0.45431,0.045361,-0.12023,-0.13779,-0.17542,0.28872,0.11561,-0.12524,-0.13779,-0.17793,-0.13779,-0.12274,-0.13779,-0.15786,-0.198 -0.17567,-0.18112,-0.1375,0.24969,-0.15386,-0.16295,-0.17931,-0.1375,0.2606,0.25333,-0.1684,-0.17567,-0.092052,0.27877,0.27877,-0.18294,-0.18476,-0.026612,0.26423,0.29877,-0.18112,-0.1684,-0.039337,0.20606,0.25696 0.29173,0.29152,0.29173,0.29173,0.29173,0.29125,0.29125,0.29145,-0.13586,-0.13729,-0.13818,-0.1375,-0.13839,-0.1375,-0.13668,-0.13702,-0.1375,-0.13675,-0.13702,-0.13723,-0.13723,-0.13702,-0.13723,-0.13695,-0.13702 0.46555,-0.10817,-0.097052,-0.12081,-0.10615,0.52115,0.065712,-0.11879,-0.12081,-0.11474,0.52014,0.061669,-0.12081,-0.11828,-0.12334,0.061669,0.057119,-0.10918,-0.1198,-0.12738,0.062174,0.053581,-0.11778,-0.12384,-0.12182 -0.26998,-0.26723,-0.25702,-0.25427,-0.26919,-0.26291,-0.26526,-0.26134,-0.068531,0.12742,-0.050467,-0.052431,0.193,0.20203,0.12938,0.18632,-0.051253,0.19731,0.19849,0.13134,0.18082,0.20988,0.2197,0.21616,0.13802 0.16412,0.16371,-0.24516,-0.24597,-0.24638,0.16391,0.1633,0.16167,-0.24516,-0.24638,0.16575,0.16494,0.16575,-0.24311,-0.23902,0.16453,0.1631,0.16616,0.16023,-0.24127,0.16064,0.16023,0.16126,-0.24679,-0.25006 -0.053751,-0.056447,-0.05712,0.038574,-0.07262,-0.06386,-0.047686,-0.026121,0.15583,-0.070599,-0.063186,-0.058468,-0.05712,-0.035555,-0.066555,-0.061164,-0.040947,-0.02949,-0.045664,-0.053751,-0.055773,-0.050381,-0.040273,-0.042294,0.95442 0.24586,0.24395,0.24395,0.24649,0.24968,0.24204,0.24395,0.24395,0.24204,-0.15104,0.24649,-0.15295,-0.15996,-0.1676,-0.16633,-0.15486,-0.15996,-0.17142,-0.16951,-0.16696,-0.14976,-0.16951,-0.1727,-0.16951,-0.16633 -0.19562,-0.16447,0.26879,0.3141,0.34242,-0.20978,-0.18712,-0.079516,0.24897,0.27729,-0.17863,-0.16447,-0.11916,-0.031376,0.25463,-0.15597,-0.17013,-0.13049,-0.090843,0.26313,-0.12199,-0.14181,-0.12482,0.005437,0.29144 0.166,-0.16509,0.18457,-0.19659,-0.21476,0.22454,0.1773,0.17488,-0.21112,-0.20951,0.23545,0.17528,0.17569,-0.21153,-0.2091,0.24635,0.1769,-0.21516,-0.21314,-0.21153,0.19628,0.18053,0.17084,-0.21274,-0.21435 0.28817,0.28742,-0.14668,-0.14911,-0.15005,0.28874,-0.13881,-0.14312,-0.14387,-0.14443,0.29173,-0.13581,-0.1375,-0.13675,-0.136,0.29248,0.29248,-0.13094,-0.13131,-0.13075,0.29436,0.29567,-0.12532,-0.12532,-0.12532 0.082578,0.057554,0.10343,-0.24273,-0.25357,0.10343,0.10093,0.12262,-0.23522,-0.24023,0.072568,0.083412,0.072568,0.10593,-0.24106,0.071734,0.28944,0.2811,-0.25858,-0.27359,0.27776,0.29027,0.13846,-0.23856,-0.27025 0.18844,0.10943,0.030419,-0.048592,-0.1276,0.23782,0.13906,0.060049,-0.038716,-0.16711,0.18844,0.13906,-0.0090863,-0.028839,-0.10785,0.19832,0.14894,0.010667,-0.078221,-0.24612,0.21807,0.14894,0.010667,-0.28563,-0.69056 -0.32262,-0.28104,-0.15632,-0.15632,-0.19789,0.0099779,-0.44734,-0.11475,0.051552,-0.11475,-0.031597,-0.073171,-0.11475,-0.031597,-0.11475,0.093127,0.21785,0.21785,0.21785,0.25942,0.21785,0.1347,0.25942,0.25942,0.21785 0.2015,0.20229,0.21232,0.20018,0.19965,0.19569,0.1978,0.21971,0.20651,0.20968,-0.19014,-0.18935,-0.17193,0.22129,0.22921,-0.19251,-0.19331,-0.19251,-0.19357,-0.19331,-0.19647,-0.19594,-0.19647,-0.19568,-0.19463 0.34513,0.3592,0.23722,-0.081825,-0.14282,0.34513,0.3592,0.012011,-0.12874,-0.12405,0.34044,-0.039599,-0.13343,-0.12405,-0.14751,0.18091,-0.12874,-0.12405,-0.18035,-0.17097,-0.081825,-0.12874,-0.12405,-0.16158,-0.15689 0.0093976,-0.076035,-0.16147,-0.11875,-0.097393,0.1589,-0.033319,-0.11875,-0.097393,-0.22554,0.2657,0.052114,-0.054677,-0.097393,-0.14011,0.37249,0.1589,-0.076035,-0.18283,-0.11875,0.6715,0.1589,0.0093976,-0.054677,-0.20418 0.14647,0.11034,0.18441,0.21512,0.20608,0.13021,0.12479,0.15189,0.20066,0.23679,0.10853,0.12299,0.10853,0.23499,-0.16425,-0.27805,0.10853,-0.26902,-0.23831,-0.17508,-0.24734,-0.24192,-0.28347,-0.25999,-0.23289 -0.084728,-0.091022,-0.095429,-0.26602,-0.26979,-0.083469,-0.087875,-0.092281,-0.094799,-0.10046,-0.085357,-0.084098,-0.086616,-0.091652,-0.095429,0.3729,-0.087245,-0.087875,-0.085986,-0.091022,0.37542,0.3729,0.37416,0.29044,0.27533 -0.20844,-0.11859,-0.058698,0.061094,0.24078,-0.058698,-0.26834,-0.11859,-0.02875,0.18089,-0.20844,-0.02875,0.031146,0.18089,0.45042,-0.20844,-0.058698,0.12099,0.031146,0.42047,-0.32823,-0.23839,-0.11859,0.15094,0.18089 -0.20139,-0.20189,-0.20139,-0.2029,-0.20306,-0.2029,-0.2034,-0.2029,-0.20507,0.068864,0.22198,-0.20273,-0.20173,-0.20122,0.071039,0.22349,0.22198,0.22047,0.22064,0.070537,0.22298,0.22282,0.22165,0.22298,0.22114 -0.12973,-0.13289,-0.13244,-0.13018,-0.033874,-0.13696,-0.13651,-0.12385,-0.12475,-0.027997,-0.13741,-0.13787,-0.12023,0.055649,0.083682,-0.13787,-0.13968,-0.12204,-0.1139,0.067405,0.22294,0.22113,0.43138,0.41962,0.51638 0.23589,0.29652,0.32431,0.37736,0.2561,0.222,-0.11777,-0.11651,0.29399,0.29904,-0.11145,-0.10387,-0.14429,-0.11145,-0.14303,-0.12029,-0.14682,-0.14429,-0.13419,-0.14303,-0.16198,-0.16703,-0.14808,-0.14935,-0.14177 -0.13921,-0.13921,-0.13681,-0.13921,-0.13801,-0.13681,-0.13602,-0.13442,-0.13642,-0.13801,-0.13482,-0.13482,-0.13482,-0.13761,-0.13642,-0.13322,-0.13721,0.27577,0.26898,0.26898,0.26938,0.29013,0.33522,0.35078,0.2638 0.27892,0.25424,0.23975,-0.15511,-0.1508,0.27814,0.26208,-0.14884,-0.15237,-0.15041,0.28676,0.26952,-0.15001,-0.14923,-0.14688,0.26796,-0.1461,-0.14884,-0.15158,-0.14845,0.26051,-0.14453,-0.15472,-0.15237,-0.14766 0.56526,0.38549,0.30241,0.29494,0.28703,-0.0043955,-0.0070328,-0.16307,-0.16307,-0.15824,-0.0026373,-0.0048351,-0.13758,-0.14022,-0.14593,-0.0048351,-0.0043955,-0.13802,-0.13934,-0.14945,-0.0021978,-0.0052746,-0.15209,-0.15648,-0.15604 -0.39019,-0.39045,-0.39019,-0.39045,-0.39045,0.090226,0.085348,0.085969,0.088896,0.090137,0.10353,0.084462,0.077101,0.089162,0.09129,0.057501,0.078874,0.079939,0.089428,0.30334,0.087122,0.08118,0.080559,0.080914,0.12676 -0.090989,-0.088657,-0.088074,-0.092154,-0.091572,0.46341,-0.086908,-0.089823,-0.086908,-0.095069,0.45991,-0.087491,-0.09332,-0.08924,-0.092154,0.45408,-0.089823,-0.090406,-0.088074,-0.088074,0.45466,-0.06767,-0.06767,-0.084576,-0.08341 0.39302,-0.0026378,-0.068582,-0.03561,0.030334,0.55788,-0.10155,-0.0026378,-0.10155,-0.1675,0.26114,-0.0026378,-0.10155,-0.10155,-0.1675,0.29411,-0.0026378,-0.10155,0.063306,-0.13453,0.26114,-0.068582,-0.20047,-0.20047,-0.29938 -0.13757,-0.13703,-0.13719,-0.1368,-0.1368,-0.13757,-0.13734,-0.13734,-0.13726,-0.13757,-0.13696,-0.13672,-0.13672,-0.13688,-0.13696,0.27745,0.28116,0.29269,-0.13603,-0.13665,0.27288,0.28681,0.27745,0.32009,0.32086 0.0098341,0.01655,0.010126,0.020054,0.01655,0.0051623,0.0037024,0.0037024,0.0060383,0.029397,0.0086661,0.0013665,0.00049054,0.010418,-0.14112,0.0066222,0.0039944,-0.12798,-0.1312,-0.13762,0.92346,-0.13528,-0.13236,-0.13674,-0.13382 -0.092012,-0.247,-0.23068,-0.31225,-0.3041,0.14454,0.022187,-0.17358,-0.28778,-0.27962,0.2098,0.12823,-0.002284,-0.10017,-0.16543,0.30768,0.20164,0.12823,0.046658,0.01403,0.31584,0.24243,0.17717,0.12823,0.12823 -0.0035196,0.26807,0.26637,0.27483,0.24438,0.17162,0.15216,0.15892,0.26468,0.14708,-0.18035,-0.19642,0.142,0.15216,0.164,-0.20996,-0.20742,-0.19388,-0.20488,-0.20827,-0.21419,-0.20319,-0.2015,-0.19388,-0.18881 -0.15131,-0.17246,-0.16188,-0.19096,-0.21211,-0.090511,-0.16188,-0.19096,-0.18303,-0.21211,-0.0085647,-0.077294,-0.13809,-0.027069,-0.21211,0.33772,0.17648,0.34037,0.37209,0.13947,-0.056146,0.21084,0.20027,0.27164,0.19762 0.31628,0.28916,0.28165,0.28643,0.26433,0.3263,0.2837,0.28119,-0.13734,-0.13529,-0.13711,-0.13688,-0.13665,-0.13734,-0.13643,-0.13688,-0.13688,-0.13711,-0.13779,-0.13688,-0.13757,-0.13757,-0.13688,-0.13711,-0.13734 -0.29169,-0.038911,-0.0053671,0.21866,0.17553,-0.28091,-0.27612,0.010207,0.16475,0.17194,-0.21622,-0.23658,0.3121,0.18392,0.15397,-0.20783,-0.2258,0.28934,0.13959,0.136,-0.23898,-0.23898,0.15636,0.066513,0.078493 0.085574,0.055066,0.013118,0.15803,-0.18899,0.051253,0.077947,0.013118,-0.18137,-0.22332,0.27625,0.062693,0.013118,-0.19281,-0.21188,0.36777,0.27625,-0.14323,-0.21188,-0.2195,0.36777,0.32201,-0.14323,-0.20044,-0.22332 -0.21751,-0.21664,-0.21773,-0.21816,-0.21881,-0.21446,-0.2138,-0.21468,-0.21489,-0.21555,-0.096844,0.17127,0.2205,0.17367,0.22463,-0.094884,0.17432,0.21984,0.21178,0.21505,-0.093577,0.1704,0.22028,0.22246,0.22333 0.133,0.13312,0.13968,-0.31998,-0.3207,0.14577,0.12191,0.12907,-0.32046,-0.32093,0.12203,0.12358,0.12179,0.12477,-0.32058,0.11905,0.11917,0.11714,0.12609,-0.32046,0.11654,0.11392,0.11356,0.12334,-0.32046 0.24342,0.30222,0.18462,0.18462,0.096427,0.096427,0.18462,0.0082316,0.18462,0.096427,0.18462,0.30222,0.0082316,0.0082316,-0.050565,0.03763,-0.079964,-0.050565,-0.25636,-0.31515,-0.25636,-0.22696,-0.25636,-0.31515,-0.31515 -0.0060948,-0.034503,-0.099712,-0.14297,-0.20366,-0.010614,-0.019653,-0.078406,-0.13135,-0.17202,0.49621,0.015211,-0.042896,-0.10681,-0.16944,0.5059,0.014566,-0.020945,-0.093902,-0.15911,0.50396,0.14176,0.0074636,-0.068722,-0.12425 -0.1559,-0.15936,-0.14552,-0.1732,-0.18012,-0.14725,-0.16109,-0.14898,-0.16628,-0.1732,-0.039995,0.013632,-0.072863,-0.1213,-0.11092,0.41843,0.13991,0.15029,0.027471,-0.090162,0.39594,0.34577,0.32847,0.29907,-0.072863 0.88831,-0.036191,-0.11755,-0.12494,-0.12248,0.089541,0.087076,-0.046052,-0.12494,-0.13234,0.07968,0.074749,-0.041122,-0.12248,-0.13727,0.040234,0.020512,-0.0041418,-0.12248,-0.13974,0.025442,0.059957,0.092006,-0.10522,-0.080567 -0.49628,0.09409,0.10331,0.12176,0.10331,-0.44093,0.09409,0.10331,0.14021,0.10331,-0.28412,0.084866,0.11254,0.12176,0.09409,-0.39481,0.075641,0.047968,0.11254,0.10331,-0.34869,0.075641,0.11254,0.075641,0.084866 0.84028,0.18773,-0.099101,0.0084616,-0.063247,0.26661,0.065828,0.065828,-0.10986,-0.063247,0.015632,0.0084616,-0.12061,-0.05249,-0.063247,-0.041734,-0.027393,-0.063247,-0.18874,-0.066832,-0.034563,-0.034563,-0.048905,-0.1493,-0.23176 0.43249,0.34919,0.16593,0.049313,-0.083965,0.38251,0.13261,0.065973,-0.10063,-0.16726,0.28255,0.065973,-0.083965,-0.1506,-0.13394,0.16593,-0.083965,-0.18392,-0.1506,-0.18392,0.082633,-0.21724,-0.18392,-0.20058,-0.25056 -0.087192,-0.087192,-0.087192,-0.088816,-0.089141,-0.085894,-0.086218,-0.087517,-0.087842,-0.086218,-0.087842,-0.085894,-0.087842,-0.088491,-0.086543,-0.087842,-0.087192,-0.085894,-0.085569,-0.087517,0.4619,0.46969,0.458,0.44307,-0.088816 0.18787,0.16856,-0.2222,-0.22731,-0.22873,0.16374,0.16771,-0.22192,-0.22618,-0.22163,0.16913,0.17566,0.17112,-0.22618,-0.22419,0.19327,0.1714,0.17367,-0.22589,-0.22703,0.19327,0.17651,0.18049,0.18787,-0.22902 0.07383,0.1693,0.26477,0.10565,0.10565,0.20112,0.07383,0.042007,0.20112,0.010183,0.13748,0.23295,0.1693,0.20112,0.13748,-0.085286,-0.053463,-0.2444,-0.2444,0.042007,-0.30805,-0.30805,-0.21258,-0.40352,-0.30805 0.309,-0.13362,-0.10694,-0.11682,-0.14152,0.31394,0.31296,-0.11188,-0.11583,-0.13065,0.31394,0.31394,-0.11484,-0.11386,-0.14053,0.32679,-0.13065,-0.12868,-0.12176,-0.13856,0.34951,-0.094096,-0.12966,-0.12374,-0.14646 0.24356,0.23137,-0.089415,-0.11987,-0.11378,0.37552,-0.077233,-0.06099,-0.10566,-0.11581,0.30243,-0.10363,-0.12596,-0.14626,0.10752,0.44252,-0.081293,-0.15235,-0.22748,-0.14829,0.31259,0.18265,-0.14626,-0.19093,-0.19296 0.52984,-0.085197,-0.092659,-0.093281,-0.091415,0.52859,-0.087062,-0.091415,-0.088306,-0.088306,0.52611,-0.090172,-0.091415,-0.085819,-0.07649,0.077112,-0.077112,-0.092037,-0.088928,-0.085819,0.075247,-0.083331,-0.093281,-0.078978,-0.075869 0.87874,-0.074899,-0.075277,-0.074142,-0.076034,0.13551,-0.066195,-0.076412,-0.078683,-0.078683,0.12453,-0.074142,-0.074142,-0.078683,-0.078683,0.17562,-0.072628,-0.076034,-0.081332,-0.076034,0.21384,-0.069601,-0.074142,-0.077169,-0.095334 0.22707,0.19388,0.16068,0.35986,0.32667,0.16068,0.16068,0.027886,0.12748,0.22707,-0.071707,0.027886,0.061084,-0.071707,-0.10491,0.094282,-0.1381,-0.1713,-0.10491,-0.071707,-0.1713,-0.2377,-0.37049,-0.30409,-0.33729 0.32269,0.30004,0.15057,-0.1801,-0.21181,0.47217,0.28645,-0.071387,-0.15745,-0.17557,0.28192,0.0010871,-0.17104,-0.17104,-0.17104,0.19586,-0.10309,-0.15745,-0.14839,-0.16198,0.13245,-0.053269,-0.17104,-0.03515,-0.0034425 0.092004,0.074513,0.13573,0.1095,0.14448,0.12699,0.18821,0.17946,0.14448,0.16197,0.17946,0.21444,0.16197,0.2057,-0.030435,0.16197,-0.082909,-0.24033,-0.24033,-0.28406,-0.11789,-0.31904,-0.3103,-0.32779,-0.32779 -0.14219,-0.13969,-0.13669,-0.13644,-0.13819,-0.14219,-0.13844,-0.13719,-0.13644,-0.13569,-0.13919,-0.13644,-0.13619,-0.13419,-0.13269,-0.13669,-0.13319,0.29611,0.28787,0.28437,0.29861,0.28887,0.29262,0.30461,0.27862 -0.14931,-0.14998,-0.11567,0.48347,0.23705,-0.14864,-0.14914,-0.14662,0.23587,0.23436,-0.14897,-0.14645,-0.14763,0.23066,0.23285,-0.1483,-0.14645,-0.14544,0.22595,0.22729,-0.14763,-0.14763,-0.14393,-0.14763,0.22191 0.31599,-0.12532,-0.12326,-0.12481,-0.1279,0.31135,-0.12635,-0.12377,-0.12893,-0.12584,0.30207,-0.12326,-0.12326,-0.12584,-0.12481,0.31909,0.33301,-0.12429,-0.12481,-0.12687,0.33094,0.33146,-0.11604,-0.12274,-0.12584 0.13676,0.13103,0.070819,-0.31625,-0.35496,0.11956,0.11239,0.10523,-0.29331,-0.35066,0.15397,0.11956,0.11526,0.1425,-0.33489,0.1425,0.11813,0.11239,0.14823,-0.30621,0.10953,0.11956,0.11956,0.15397,-0.27468 -0.12374,-0.12473,-0.12522,-0.12497,-0.12719,-0.12325,-0.12399,-0.12497,-0.12374,-0.12522,-0.12251,-0.12399,-0.12349,-0.12349,-0.12621,-0.12177,-0.12226,-0.12399,0.27791,0.27741,0.35365,0.3571,0.34625,0.2784,0.34402 0.3331,0.27418,0.27667,0.27995,0.28678,0.32024,0.2768,0.28048,-0.13726,-0.137,-0.13608,-0.13752,-0.13595,-0.13634,-0.13674,-0.13634,-0.13647,-0.13608,-0.137,-0.13779,-0.13687,-0.13739,-0.13739,-0.13779,-0.13818 -0.053463,-0.17341,-0.23339,-0.26766,-0.34477,0.09219,0.0065115,-0.13914,-0.21625,-0.29336,0.22928,0.09219,0.049351,-0.10487,-0.20768,0.28068,0.22071,0.11789,-0.02776,-0.10487,0.32352,0.33209,0.22928,0.1436,0.049351 -0.39282,0.13898,0.083264,0.082227,0.068232,-0.39463,0.13769,0.083264,0.064604,0.063827,-0.398,0.13587,0.085078,0.064604,0.15972,-0.39696,0.1325,0.0843,0.084819,0.073934,-0.39722,0.13173,0.085078,0.14805,0.071861 -0.34965,-0.34926,-0.3551,-0.35899,-0.35938,0.096622,0.08455,0.096232,0.088444,-0.35588,0.10791,0.10129,0.095453,0.091949,0.093506,0.13712,0.11648,0.12505,0.10947,0.11298,0.14725,0.14024,0.12972,0.12388,0.13011 -0.080115,-0.11406,-0.046168,-0.080115,0.19146,-0.14801,-0.14801,-0.14801,-0.046168,0.2933,-0.2838,-0.2159,-0.080115,0.22541,0.2933,-0.046168,-0.080115,-0.18196,0.19146,0.3612,-0.11406,-0.2159,-0.11406,0.12357,0.46304 0.93737,-0.10789,-0.10423,-0.10423,-0.099165,0.019103,-0.11043,-0.10677,0.018822,-0.062277,0.014879,-0.0059585,0.019385,0.0098107,-0.085649,0.070635,-0.0051137,-0.0020162,-0.081707,-0.09297,0.070071,-0.0022978,-0.0079296,-0.083959,-0.097476 -0.35553,-0.35706,-0.35299,-0.35502,-0.35163,0.095019,0.09451,0.086713,0.087391,-0.35366,0.093493,0.095866,0.096205,0.092815,0.089255,0.12706,0.13011,0.13553,0.14468,0.089933,0.1235,0.12706,0.13282,0.13672,0.14723 0.94421,0.075097,-0.070493,0.082966,0.060833,-0.071969,-0.07246,-0.071477,-0.060164,0.054439,-0.070493,-0.07246,-0.070001,-0.052786,0.056406,-0.067542,-0.070493,-0.073444,-0.063115,-0.06705,-0.073444,-0.067542,-0.055737,-0.062623,-0.060656 0.30017,0.28084,0.28145,0.28282,0.28738,0.30154,0.28982,0.30747,-0.13518,-0.137,-0.13457,-0.13609,-0.13655,-0.13655,-0.13761,-0.13639,-0.13716,-0.13716,-0.13792,-0.13883,-0.137,-0.13822,-0.13792,-0.13852,-0.13883 -0.22209,-0.22378,-0.22125,-0.22209,-0.22041,-0.22209,-0.22041,-0.22125,-0.22125,-0.22041,0.28501,0.084024,0.27572,0.082757,0.062068,0.31456,0.28923,0.076002,0.071779,0.059535,0.34496,0.069246,0.074735,0.06629,0.059112 -0.19054,-0.22154,-0.2422,-0.087209,-0.045878,-0.29387,-0.19054,-0.12854,-0.12854,-0.025212,-0.1802,-0.097542,-0.045878,-0.0045464,-0.045878,-0.025212,0.057451,0.11945,0.10911,0.098782,0.036785,0.28477,0.39843,0.46043,0.3881 0.28497,0.2921,-0.14321,-0.13863,-0.13303,0.29108,-0.1371,-0.14525,-0.13812,-0.13557,0.29566,-0.13354,-0.1427,-0.13914,-0.13354,0.28701,0.29872,-0.14321,-0.14372,-0.13608,0.28141,0.29974,-0.10808,-0.14321,-0.13659 0.40502,0.087605,-0.16632,-0.22981,-0.10284,0.18283,-0.10284,-0.16632,-0.22981,-0.0711,0.37328,-0.19806,-0.0076179,-0.16632,-0.10284,0.37328,-0.0076179,-0.10284,-0.10284,-0.0076179,0.4685,-0.0076179,-0.0076179,-0.10284,-0.0076179 -0.34508,-0.38211,-0.0859,-0.34508,-0.38211,-0.0859,-0.011848,-0.0859,-0.12293,-0.011848,0.062203,-0.0859,0.062203,0.13626,0.025178,0.099229,0.062203,0.21031,0.062203,0.025178,0.21031,0.32138,0.062203,0.28436,0.32138 0.11304,0.11304,0.11572,0.11929,-0.32087,0.11411,0.11465,0.11643,0.11982,-0.31802,0.11536,0.11643,0.11804,0.1225,-0.31659,0.11643,0.12125,0.12304,-0.3248,-0.3198,0.12143,0.17821,0.17857,-0.31909,-0.31819 0.39623,0.19789,0.2009,-0.12817,-0.10563,0.18662,0.36618,-0.12291,-0.12892,-0.174,0.16784,0.36167,-0.14695,-0.1462,-0.18001,0.15957,0.15507,-0.15972,-0.17776,-0.19353,0.12802,-0.12066,-0.177,-0.18076,-0.17776 0.011551,0.15594,-0.096741,-0.27723,-0.16894,0.22814,0.15594,0.33643,-0.24113,-0.34942,0.083746,0.30033,0.011551,-0.096741,-0.20503,0.19204,0.047649,0.083746,-0.16894,-0.20503,0.30033,0.11984,0.19204,-0.20503,-0.20503 0.31535,0.26667,0.3077,0.28683,0.28544,0.31743,0.27084,0.27779,-0.13739,-0.14644,-0.13114,-0.11653,-0.13183,-0.14504,-0.13322,-0.13948,-0.13114,-0.13461,-0.1367,-0.14991,-0.13879,-0.136,-0.14018,-0.1367,-0.14296 0.13272,0.12838,0.12404,0.14164,-0.31638,0.13489,0.1279,0.1279,0.13802,-0.31855,0.12814,0.12211,0.13754,0.13923,-0.31855,0.12573,0.12838,0.13682,-0.31687,-0.31759,0.12404,0.12814,0.00061713,-0.31904,-0.31928 -0.12605,-0.14334,-0.13469,-0.0093368,-0.00069162,-0.14766,-0.16495,-0.1174,0.098728,0.22841,-0.20385,-0.20385,0.046857,0.15492,0.18518,-0.18656,-0.20385,-0.022305,0.26299,0.28892,-0.15198,-0.16063,-0.15198,0.39266,0.47047 -0.19399,-0.19399,0.20504,0.23573,0.23573,-0.19399,-0.43954,0.020872,0.23573,0.051566,-0.22468,-0.28607,0.08226,0.23573,0.11295,-0.1326,-0.19399,0.020872,0.11295,0.29712,-0.19399,-0.1326,-0.0098221,0.20504,0.14365 -0.19414,-0.16663,0.27048,0.092687,0.27048,-0.18726,-0.16958,0.092687,0.12903,0.27342,-0.20396,-0.16369,-0.12538,0.24297,0.25181,-0.19806,-0.17645,-0.146,-0.15583,0.24494,-0.19217,-0.17842,-0.146,0.27342,0.26164 -0.1515,-0.1488,-0.15622,-0.15892,-0.16297,-0.13329,-0.13801,-0.14341,-0.14745,-0.1515,-0.1488,-0.1461,-0.16229,-0.1488,-0.1569,0.26873,0.27008,0.26873,0.25862,0.25524,0.27143,0.27413,0.27008,0.26131,-0.14341 0.14938,-0.14035,-0.14567,-0.14053,-0.14108,0.37576,-0.13961,-0.1409,-0.1409,-0.14053,0.37833,-0.13979,0.14222,-0.14035,-0.13998,0.38127,0.14589,-0.14053,-0.13906,-0.13943,0.38714,0.14644,0.1402,-0.13851,-0.13943 -0.14479,-0.18478,-0.19145,-0.19478,-0.22367,-0.13923,-0.13368,-0.18145,-0.17811,-0.18589,0.15296,0.13408,-0.14367,-0.14367,-0.15589,0.14852,0.15074,0.16629,0.16296,-0.13368,0.15296,0.15296,0.37849,0.36627,0.3685 -0.094286,-0.093712,-0.091414,-0.091414,-0.093712,-0.087967,-0.088541,-0.088541,-0.087392,-0.087967,-0.083371,-0.083371,-0.086818,-0.086243,-0.082222,-0.082796,-0.082222,-0.083945,-0.081073,-0.083945,0.47217,0.45953,0.45551,0.44517,-0.091414 0.20089,0.20014,-0.19308,-0.19233,-0.1927,0.20014,0.19825,-0.19157,-0.19308,-0.1927,0.20391,0.20429,-0.19081,-0.19384,-0.19195,0.21336,0.2126,-0.18779,-0.19233,-0.19308,0.21676,0.21713,0.21562,0.21411,-0.19195 0.21126,-0.17904,-0.19532,-0.19431,-0.19634,0.21024,0.20923,-0.19278,-0.19532,-0.19431,0.20923,0.20617,0.20719,-0.18718,-0.19481,0.20821,0.20719,0.20515,-0.1826,-0.19583,0.20821,0.20923,0.20617,-0.19227,-0.19736 0.19022,0.00052914,-0.2223,-0.22204,-0.22217,0.1892,0.17109,-0.21922,-0.22217,-0.22179,0.22092,0.20024,0.1707,-0.22256,-0.22166,0.1838,0.19639,0.18688,-0.22166,-0.2214,0.18355,0.18367,0.19177,0.16942,-0.2214 -0.2242,-0.20822,-0.2242,-0.20822,0.1078,-0.16384,-0.17094,-0.16561,-0.13365,-0.012925,-0.10525,-0.098146,-0.098146,-0.059086,-0.044883,-0.041332,-0.048434,-0.041332,-0.041332,0.29777,0.34216,0.34216,0.34216,0.33683,0.32085 0.26148,0.26148,0.26148,-0.17839,-0.10298,0.25609,0.26148,-0.11735,-0.173,-0.1353,0.26687,0.26148,-0.1371,-0.14966,-0.1748,0.27225,-0.10298,-0.18916,-0.14607,-0.18378,0.28302,-0.1353,-0.16941,-0.13351,-0.15685 0.17494,-0.017604,-0.045109,0.17494,-0.072615,0.22995,0.17494,0.064914,-0.045109,-0.40268,0.20244,0.17494,0.14743,-0.10012,-0.37518,0.17494,0.20244,0.17494,-0.21014,-0.23765,0.22995,0.0099021,-0.045109,-0.23765,-0.34767 0.55784,-0.07995,-0.084356,-0.088487,-0.087385,0.56032,-0.082153,-0.083254,-0.087661,-0.085182,0.33368,-0.08353,-0.08353,-0.08711,-0.088762,0.33395,-0.08353,-0.084907,-0.087385,-0.087385,-0.080225,-0.084081,-0.084081,-0.086284,-0.086559 -0.13497,-0.13444,-0.13497,0.29194,0.29374,-0.13739,-0.13549,-0.1356,0.29479,0.29289,-0.13824,-0.13602,-0.13222,0.28445,0.28878,-0.14013,-0.13729,-0.13486,-0.13686,0.29173,-0.14805,-0.13992,-0.1375,-0.13813,0.29374 -0.18867,-0.19324,0.21899,0.20433,0.20337,-0.19122,-0.19154,-0.19239,0.20805,0.20454,-0.19164,-0.19154,-0.19387,0.20635,0.20433,-0.19218,-0.19207,0.2276,0.20454,0.20454,-0.19186,-0.19271,-0.1943,0.20518,0.20539 0.085212,0.085212,0.13983,0.13983,0.030589,0.24908,0.13983,0.22177,0.030589,0.11252,0.0032774,0.16715,0.27639,0.19446,0.0579,-0.16059,0.030589,-0.13328,0.030589,0.030589,-0.26984,-0.35177,-0.35177,-0.35177,-0.40639 -0.085034,-0.086992,-0.086992,-0.089439,-0.090417,-0.084545,-0.086992,-0.08797,-0.088949,-0.089928,-0.0843,-0.086502,-0.087236,-0.088949,-0.090417,-0.0843,-0.085524,-0.086258,-0.08797,-0.089194,0.45793,0.45524,0.46013,0.45964,-0.085034 0.00041508,-0.009962,-0.01597,-0.15087,-0.16234,-0.0028619,-0.0077774,-0.15688,-0.15579,-0.16835,0.25274,-0.0028619,-0.14541,-0.15306,-0.017608,0.25493,-0.0094159,-0.016516,-0.025255,-0.032355,0.83332,-0.020339,-0.024708,-0.029624,-0.033447 0.2168,0.33275,0.35128,0.1873,0.17289,0.34716,-0.13585,0.34716,0.19553,0.1825,-0.14888,-0.15574,-0.13722,-0.13447,-0.13036,-0.14751,-0.15163,-0.15711,-0.15163,-0.1379,-0.14751,-0.15163,-0.15506,-0.14476,-0.14614 0.16604,0.18488,0.16604,0.068105,-0.22571,0.15851,0.15474,0.16981,0.14344,-0.23701,0.15098,0.14721,0.15474,0.041737,-0.29351,0.16604,0.15098,0.041737,-0.28975,-0.33118,0.14721,0.064338,-0.25585,-0.31612,-0.32742 0.27674,0.37076,0.369,0.35725,0.36312,0.38075,-0.12636,-0.079352,-0.12107,-0.1199,-0.13106,-0.11931,-0.12577,-0.12401,-0.11931,-0.074651,-0.12577,-0.12401,-0.11696,-0.068774,-0.1105,-0.13341,-0.11755,-0.12166,-0.058197 -0.0066741,-0.090943,-0.082516,-0.10274,-0.013416,-0.030269,-0.082516,-0.094314,-0.057236,-0.10611,-0.031955,-0.062292,-0.094314,-0.062292,-0.12802,0.4922,-0.0033033,-0.058921,-0.075775,-0.10443,0.78377,0.12647,0.045573,-0.053865,-0.10611 0.15734,0.15298,-0.18148,-0.21057,-0.26437,0.21406,0.13408,0.20679,-0.20766,-0.26001,-0.075327,0.13262,0.20679,-0.2033,-0.27164,0.21406,0.15007,0.22569,-0.20911,-0.26874,0.14862,0.15153,0.22569,0.090451,-0.25856 0.46905,0.18901,-0.19927,-0.24399,-0.22516,0.37727,0.040758,-0.19692,-0.1828,-0.16397,0.36315,-0.060431,-0.14986,-0.13338,-0.10044,0.29256,0.0031063,-0.09573,-0.09573,-0.055725,0.17725,-0.058078,-0.046312,-0.043959,0.13959 0.11308,0.19658,0.12962,0.12716,-0.28745,0.10434,0.19781,0.1318,-0.28772,-0.28827,0.10311,0.11964,0.2004,-0.28786,-0.28977,0.10844,0.11746,0.20573,-0.28881,-0.2869,0.1083,0.11568,0.11199,0.11445,-0.28881 -0.087388,-0.092138,-0.080264,-0.049393,0.47541,-0.096887,-0.094513,-0.10401,-0.061267,0.46116,-0.099262,-0.10876,-0.10401,-0.049393,0.44217,-0.10876,-0.096887,-0.094513,-0.07789,0.43742,-0.13013,-0.10876,-0.092138,-0.089763,0.0099737 0.63219,0.49857,0.34587,0.19317,0.040466,-0.093149,-0.15041,-0.035885,-0.035885,-0.035885,-0.093149,-0.093149,-0.035885,-0.093149,-0.093149,-0.093149,-0.093149,-0.15041,-0.093149,-0.035885,-0.20768,-0.15041,-0.054973,-0.054973,-0.016797 -0.10704,-0.15279,-0.12992,-0.038426,0.35041,-0.10704,-0.24428,-0.17566,-0.10704,0.14456,-0.15279,-0.22141,-0.061299,0.16743,0.30467,-0.17566,-0.17566,0.030192,0.075938,0.37328,-0.22141,-0.10704,0.14456,0.16743,0.41903 -0.087517,-0.088576,-0.088223,-0.089106,-0.089459,-0.08787,-0.08681,-0.087517,-0.08893,-0.088576,-0.086104,-0.086104,-0.087163,-0.087517,-0.08787,-0.085751,-0.085397,-0.085397,-0.08681,-0.085751,0.47655,0.45695,0.44988,0.44918,-0.086104 -0.1136,-0.11252,-0.11252,-0.11252,-0.1136,-0.11144,-0.11107,-0.11071,-0.11107,-0.11288,-0.11144,-0.11432,-0.1136,-0.11468,-0.11324,0.40244,-0.10855,-0.10783,-0.11324,-0.1118,0.36852,0.36707,0.32882,0.32521,0.33856 -0.11381,-0.11381,-0.11251,-0.11329,-0.11562,-0.11277,-0.11226,-0.11381,-0.11381,-0.11303,-0.112,-0.11277,-0.112,-0.11277,-0.112,-0.1089,0.36103,-0.112,-0.10941,-0.10838,0.36284,0.36595,0.35406,0.34423,0.34682 -0.21173,-0.20485,-0.21345,0.27887,0.20313,-0.2169,-0.21862,-0.23067,0.21345,0.19108,-0.20657,-0.17903,0.17042,0.15837,0.17042,-0.20485,-0.18763,0.16009,0.18075,0.15837,-0.1928,-0.21001,0.22378,0.20485,0.16353 0.17622,0.17622,-0.22333,-0.22887,-0.22487,0.17745,0.17745,-0.22456,-0.2261,-0.22641,0.17622,0.1796,0.17684,-0.22487,-0.22641,0.17684,0.17776,0.17838,-0.22456,-0.22764,0.17715,0.17684,0.17807,0.17684,-0.22426 -0.12503,-0.12699,-0.12797,-0.10349,-0.10153,-0.10545,-0.099572,-0.10349,-0.10741,-0.095655,-0.080966,-0.077049,-0.07607,-0.10349,-0.079008,-0.050609,-0.041795,-0.03494,-0.067256,-0.051588,0.4733,0.46351,0.46351,-0.057464,0.4165 0.13405,0.1258,0.12992,0.11754,0.072144,0.14643,0.13818,0.13818,0.10103,-0.26629,0.14643,0.1258,0.10516,-0.12184,-0.35296,0.16294,0.12992,0.1258,-0.27042,-0.36947,0.15056,0.13818,-0.047546,-0.36534,-0.39423 -0.27205,-0.30035,-0.29369,-0.28703,-0.30035,0.13077,0.13243,-0.29202,-0.29702,-0.28537,0.12744,0.12577,0.12244,0.13077,0.14075,0.17571,0.12744,0.13576,0.14075,0.13576,0.16905,0.13243,0.13409,0.13243,0.13409 0.41251,0.24118,0.24048,0.051072,0.049959,0.37079,0.36704,0.2416,0.053158,0.053853,-0.18298,-0.18646,-0.014152,-0.014847,-0.014152,-0.18382,-0.1827,-0.18354,-0.18382,-0.18368,-0.016933,-0.18312,-0.18423,-0.18368,-0.18354 -0.24093,-0.21359,0.24367,0.15556,0.13125,-0.24853,-0.22726,-0.24245,0.15708,0.13581,-0.23789,-0.21207,0.18898,0.18138,0.1829,-0.21207,-0.21511,0.17986,0.22544,0.2224,-0.18776,-0.21967,0.13277,0.17227,0.14796 0.42241,0.46201,0.043804,0.46559,0.46502,-0.088181,-0.087615,-0.088747,-0.090067,-0.090067,-0.087238,-0.088747,-0.089312,-0.090255,-0.090632,-0.093461,-0.093083,-0.094026,-0.094215,-0.093838,-0.099117,-0.09874,-0.099871,-0.099871,-0.10176 0.10358,0.1045,0.1045,0.0076155,0.0026943,0.10819,0.10358,0.10327,0.10542,0.0088458,0.32903,0.099887,0.098657,0.10142,0.10358,0.10512,0.099579,0.094043,0.096811,0.034989,-0.383,-0.38239,-0.38331,-0.38331,-0.38331 -0.39702,0.15879,0.075263,0.074007,0.057678,-0.39639,0.13744,0.11106,0.055794,0.049514,-0.39702,0.11985,0.15188,0.11797,0.14686,-0.39325,0.08594,0.076519,0.08594,0.14435,-0.39074,0.078403,0.067099,0.05391,0.12613 0.39423,0.22152,0.46873,0.30054,0.29828,-0.093422,0.22604,0.27232,-0.091164,-0.11826,-0.10697,-0.11374,-0.10245,-0.13632,-0.14986,-0.13632,-0.13632,-0.13632,-0.13632,-0.16567,-0.11826,-0.11374,-0.10245,-0.10923,-0.11487 0.2244,-0.21143,-0.18805,-0.19256,-0.20179,0.23219,0.19732,-0.1864,-0.19092,-0.19051,0.23424,0.19343,0.19281,-0.18476,-0.19379,0.22604,0.19404,0.19117,-0.1862,-0.19707,0.20881,0.2043,0.19445,-0.18394,-0.18579 -0.23796,0.10764,0.1084,0.10916,0.21181,-0.23796,-0.24518,0.10992,0.21828,0.20383,-0.24062,-0.241,0.1122,0.22816,0.18178,-0.24062,-0.24784,0.23196,0.15364,0.14566,-0.24062,-0.24442,-0.23377,0.1449,0.14262 0.091579,0.10588,0.1259,0.13162,-0.14723,0.11875,0.12876,0.11875,0.1259,-0.25449,0.10874,0.13591,0.10874,0.10874,-0.33457,0.14306,0.13162,0.11732,-0.3217,-0.38319,0.12447,0.13734,0.12304,-0.32027,-0.42466 -0.071122,-0.12429,-0.077378,0.34329,0.32765,-0.1368,-0.1368,-0.097707,0.33078,0.29481,-0.16182,-0.16495,-0.10396,0.25884,0.27917,-0.18059,-0.16964,-0.15088,0.033653,0.30419,-0.19936,-0.17746,-0.15244,0.069621,-0.1368 -0.10661,-0.16214,-0.051084,0.19878,0.25431,-0.078848,-0.051084,-0.32872,0.19878,0.28207,-0.16214,-0.16214,-0.32872,0.19878,0.28207,-0.16214,-0.078848,-0.023321,0.17102,0.25431,-0.16214,-0.16214,-0.24543,0.14326,0.28207 0.30294,-0.13504,-0.1341,-0.13128,-0.13222,0.32456,-0.13504,-0.13504,-0.13786,-0.15666,0.3302,0.34711,-0.1341,-0.1435,-0.16371,0.29166,0.26581,-0.13645,-0.15666,-0.16653,0.16619,0.15491,0.15021,-0.16747,-0.16794 -0.42163,-0.40392,-0.38367,-0.39126,-0.39126,0.15539,0.097183,0.097183,0.10224,0.10478,0.14021,0.099714,0.094652,0.081998,0.089591,0.1149,0.089591,0.08706,0.084529,0.081998,0.1149,0.079467,0.081998,0.089591,0.10478 0.36146,0.31221,0.23835,0.26297,0.28759,0.016743,-0.0078792,0.11523,0.11523,0.11523,-0.032502,0.065988,-0.10637,-0.0078792,0.016743,0.016743,-0.10637,0.041366,-0.10637,-0.081747,-0.37722,-0.32797,-0.32797,-0.2541,-0.22948 -0.15642,-0.16388,-0.15947,-0.16184,-0.16049,-0.15778,-0.15642,-0.15642,-0.15506,-0.1554,-0.132,-0.13099,-0.12997,-0.12827,-0.13743,0.26881,0.26881,0.26847,0.26847,0.26847,0.26305,0.26237,0.26338,0.26508,-0.15506 0.9322,0.020552,-0.10763,0.052997,0.045551,0.0061912,-0.12253,-0.098058,-0.049657,-0.037423,0.0083187,-0.12359,-0.082102,-0.054444,-0.02519,0.0051274,-0.12093,-0.09008,-0.033168,0.13597,-0.031041,-0.092208,-0.078911,-0.02519,-0.034764 -0.18561,-0.045844,-0.045844,-0.045844,0.17778,-0.10175,-0.073797,-0.073797,-0.01789,0.37346,-0.10175,-0.21356,-0.18561,0.010063,0.48527,-0.26947,-0.15766,-0.10175,0.06597,0.20574,-0.15766,-0.1297,0.010063,0.093924,0.48527 0.32137,0.20872,-0.20164,-0.24188,-0.21371,0.2731,0.22482,0.059866,-0.12923,-0.27004,0.43805,0.18861,0.079982,-0.22981,-0.14934,0.20872,-0.060831,-0.21774,-0.18957,-0.16543,0.043773,0.1001,0.051819,-0.064854,-0.064854 -0.065431,-0.15134,-0.1406,-0.033216,0.088482,-0.15134,-0.16207,-0.13702,-0.026058,0.088482,-0.19071,-0.17281,-0.1227,0.13143,0.30682,-0.18713,-0.16565,-0.018899,0.14217,0.34262,-0.17639,-0.1227,-0.0010022,0.44642,0.47863 0.205,0.20426,0.2039,0.20426,0.205,0.20646,0.20756,0.20646,0.2061,0.2061,0.21782,-0.18734,0.22441,-0.18734,-0.1965,-0.1899,-0.19064,-0.19393,-0.19503,-0.19393,-0.1943,-0.1932,-0.19137,-0.1932,-0.19064 0.17179,0.17812,0.17666,0.17715,-0.22869,0.17471,0.17471,0.17958,-0.22285,-0.21847,0.17617,0.17471,0.17909,-0.2282,-0.23063,0.17812,0.17812,-0.22771,-0.22723,-0.22869,0.17958,0.18298,-0.21409,-0.22771,-0.22723 0.22876,-0.12145,-0.13688,-0.1847,-0.15385,0.22413,0.21796,-0.21864,-0.21093,-0.13225,0.22722,0.22568,-0.1739,-0.19859,-0.20784,0.21025,0.22105,0.24419,-0.20939,-0.23407,0.19482,0.22722,0.23339,-0.11373,-0.15847 0.12857,0.12942,0.23868,-0.26172,-0.26172,0.12559,0.12346,0.24676,-0.2613,-0.26215,0.12559,0.24506,-0.052124,-0.26385,-0.26172,0.11666,0.25186,-0.051273,-0.25067,-0.26342,0.11751,0.18043,0.25399,-0.050848,-0.04277 -0.2364,-0.19342,0.14097,0.2982,0.28352,-0.25212,-0.22591,0.088554,0.21853,0.2416,-0.24373,-0.21648,0.075976,0.13572,0.18918,-0.25107,-0.22487,0.093795,0.21853,0.22482,-0.21648,0.055011,-0.1473,-0.14835,0.091699 0.53581,0.068397,-0.070645,-0.094312,-0.1091,0.52694,0.00923,-0.076562,-0.088395,-0.13277,0.51511,-0.035145,-0.076562,-0.09727,-0.12094,0.018105,-0.067687,-0.070645,-0.11502,-0.12094,-0.00852,-0.073603,-0.091353,-0.10319,-0.12094 -0.35589,-0.14179,-0.21315,-0.046628,0.26264,-0.16558,-0.21315,-0.21315,-0.046628,0.33401,-0.21315,-0.14179,0.00095158,0.1199,0.40537,-0.046628,-0.046628,-0.046628,0.1199,0.31022,-0.046628,-0.14179,0.048531,0.19127,0.28643 -0.392,-0.39034,-0.39034,-0.39283,-0.39034,0.080789,0.093645,0.14341,0.143,0.043049,0.088254,0.10443,0.1459,0.1459,0.038072,0.084936,0.093645,0.15585,0.16705,0.024801,0.08618,0.086595,0.1683,0.037242,0.024801 -0.23246,-0.05085,0.021793,0.058115,0.31237,-0.19614,-0.12349,-0.087172,0.16708,0.31237,-0.48671,-0.087172,0.16708,0.021793,0.31237,-0.19614,-0.15982,0.021793,0.021793,0.27604,-0.19614,0.094436,-0.19614,-0.014529,0.23972 -0.19026,-0.18337,-0.17897,-0.1696,-0.29492,-0.19109,-0.18751,-0.17539,-0.17511,-0.16795,-0.18888,0.1645,-0.17814,-0.17621,0.24135,0.15982,0.16312,0.24465,0.24796,0.24906,0.15706,0.23887,0.24631,0.17387,0.17084 -0.086923,-0.086923,-0.086923,-0.088014,-0.086923,-0.086923,-0.088014,-0.085832,-0.086923,-0.088014,-0.088377,-0.08765,-0.088377,-0.087287,-0.087287,-0.086196,-0.086923,-0.086923,-0.088014,-0.086923,0.45844,0.45844,0.4588,0.45735,-0.08765 -0.087689,-0.08737,-0.087689,-0.087848,-0.087808,-0.08729,-0.087449,-0.08737,-0.087449,-0.087808,-0.087091,-0.087051,-0.08721,-0.087131,-0.08737,-0.087091,-0.087091,-0.08717,-0.087131,-0.087449,0.45709,0.45561,0.46103,0.45928,-0.085456 0.23364,0.081135,0.12689,0.14214,0.0048803,0.12689,0.081135,0.14214,0.096385,-0.17813,0.12689,0.12689,0.096385,-0.086625,-0.28489,0.15739,0.12689,0.081135,-0.17813,-0.42214,0.17264,0.12689,-0.040872,-0.34589,-0.51365 -0.1179,-0.11897,-0.11897,-0.12322,-0.1218,-0.11755,-0.11932,-0.11932,-0.12074,-0.12322,-0.11826,-0.11967,-0.12322,-0.12251,-0.12322,-0.12074,-0.12003,-0.1218,0.24322,0.2489,0.4621,0.46316,0.25138,0.25351,0.24819 -0.22413,-0.19334,-0.21387,-0.16255,-0.17282,-0.22413,-0.16255,-0.17282,-0.070194,-0.049669,-0.18308,-0.13177,-0.080456,0.001642,0.11453,-0.039407,0.032429,0.12479,0.23767,0.26846,0.042691,0.15558,0.26846,0.28899,0.54554 0.28468,0.27907,0.28187,0.28636,0.31611,0.29647,0.28917,0.29703,-0.13459,-0.13628,-0.14301,-0.14245,-0.13684,-0.13628,-0.13347,-0.14694,-0.14582,-0.13628,-0.13459,-0.13291,-0.13459,-0.14021,-0.13684,-0.13123,-0.12842 -0.063871,-0.10589,-0.11031,-0.14128,-0.068294,0.40056,0.24796,-0.070505,-0.13906,-0.14128,0.35633,0.32979,-0.085986,-0.15455,-0.16782,0.3121,0.1595,-0.17224,-0.1656,-0.1656,0.28998,0.13517,-0.14791,-0.17224,-0.15897 0.22866,-0.099233,-0.15182,-0.15801,-0.14563,0.24103,-0.088406,-0.1147,-0.15491,-0.14409,0.29052,-0.074487,-0.088406,-0.15027,-0.15801,0.39879,-0.080673,-0.0915,-0.10078,-0.15027,0.43591,0.40497,0.13276,-0.042007,-0.13945 0.0045475,-0.01819,-0.0068213,-0.01819,-0.046612,-0.040928,-0.012506,-0.012506,-0.035243,-0.012506,-0.046612,-0.046612,-0.040928,-0.052296,-0.063665,-0.052296,-0.035243,-0.035243,-0.063665,-0.13188,-0.040928,-0.046612,-0.035243,-0.080718,0.97089 -0.22476,-0.21979,-0.22476,-0.22421,-0.22586,-0.222,-0.22476,-0.22255,-0.22973,-0.22642,0.11234,0.3787,0.3892,0.086915,0.096862,0.10847,0.28641,0.10515,0.082494,0.094652,0.10957,0.10239,0.10018,0.089126,0.10239 0.21561,0.16837,0.13496,0.11181,0.075306,0.21943,0.16288,0.13925,0.11515,0.070534,0.21657,0.18173,0.13377,0.11611,0.076261,0.21299,-0.26257,-0.26209,-0.26066,-0.26114,-0.26066,-0.26018,-0.26018,-0.26162,-0.26162 -0.093883,-0.092355,-0.091044,-0.090171,-0.091263,0.45795,-0.086895,-0.085367,-0.086459,-0.086895,0.45773,-0.085148,-0.085804,-0.086677,-0.087114,0.4562,-0.085585,-0.084712,-0.085585,-0.08493,0.461,-0.086677,-0.085804,-0.085804,-0.084712 0.11293,0.11208,0.10569,-0.3239,-0.32836,0.11537,0.10914,0.1088,-0.3196,-0.32465,0.13574,0.13153,0.11663,0.11629,-0.31859,0.13574,0.13161,0.11991,0.13128,-0.31514,0.13927,0.13102,0.13128,0.15695,-0.31102 0.085635,-0.05684,-0.21056,-0.13183,-0.069963,0.16062,0.070638,-0.21806,-0.094334,-0.071838,0.4587,-0.094334,-0.19557,0.0068988,-0.054965,0.47557,0.05564,-0.18244,-0.02872,-0.083086,0.49994,0.051891,-0.11683,-0.14308,-0.11308 -0.37522,-0.35717,0.094167,0.13388,0.12666,-0.38245,-0.21996,0.12305,0.15194,0.1375,-0.37522,0.040007,0.11222,0.13027,0.16638,-0.34273,0.05806,0.11583,0.13027,0.14472,-0.071925,0.043617,0.12305,0.14111,0.15194 -0.38841,-0.39003,-0.38733,-0.38895,-0.38814,0.15372,0.15588,0.10453,0.084536,0.027782,0.15372,0.11805,0.10535,0.087238,-0.051132,0.16858,0.11318,0.11102,0.073725,0.034268,0.16669,0.11291,0.10237,0.082103,0.038322 -0.18884,-0.22626,-0.23219,0.1694,0.15844,-0.18153,-0.22762,0.1913,0.19358,0.17852,-0.18062,-0.21987,-0.18245,0.18811,0.19176,-0.20572,-0.22717,0.18765,0.18993,0.18902,-0.20481,-0.20481,0.18445,0.27344,0.18628 -0.17462,-0.17453,-0.17426,-0.17407,-0.17398,-0.17371,-0.17288,-0.17362,-0.17389,-0.17325,-0.055649,-0.057299,-0.048774,-0.049691,-0.050241,-0.055649,-0.055924,0.28725,0.32804,0.32502,-0.056291,0.28569,0.28679,0.32951,0.32603 0.23713,0.22294,0.17563,-0.28804,-0.27385,0.3223,0.3223,0.26552,-0.20761,-0.28804,0.043149,0.038418,0.18982,-0.15083,-0.27385,0.014762,0.014762,0.00056775,-0.042014,-0.27385,0.14251,0.076268,-0.013626,-0.0088948,-0.24546 0.26506,0.28643,0.1526,0.12007,-0.22565,0.2697,0.12007,0.20743,-0.22193,-0.24238,0.18327,0.19257,0.18141,-0.19498,-0.24331,0.17119,0.17862,-0.14665,-0.16338,-0.23494,0.091264,-0.13922,-0.15316,-0.20242,-0.25167 0.23842,0.23808,0.26252,0.24958,0.24857,0.23741,0.2363,0.2508,0.24645,-0.15943,0.24054,-0.16478,-0.16434,-0.16322,-0.15753,-0.164,-0.16411,-0.16434,-0.16244,-0.164,-0.16467,-0.16445,-0.16411,-0.16333,-0.16389 -0.087303,-0.087481,-0.087126,-0.086594,-0.086416,-0.086594,-0.088013,-0.088013,-0.087658,-0.087836,-0.087658,-0.087481,-0.088546,-0.087303,-0.087836,-0.087836,-0.085706,-0.087836,-0.087126,-0.087481,0.45794,0.45865,0.45865,0.45777,-0.085174 -0.36634,-0.38103,-0.38837,-0.36879,-0.37613,-0.1632,0.11582,0.10847,0.10113,0.15008,-0.026139,0.079104,0.093789,0.057076,0.10113,0.1305,0.11582,0.076656,0.083999,0.088894,0.14519,0.21372,0.18679,0.13295,0.088894 0.12641,0.19512,-0.045344,-0.045344,-0.38886,0.26382,0.05771,0.05771,0.12641,-0.38886,0.092062,0.023359,0.12641,-0.25145,-0.25145,0.46993,0.16076,0.05771,-0.079695,-0.2858,0.12641,0.05771,0.05771,-0.11405,-0.1484 -0.11996,-0.12033,-0.12018,-0.1207,0.37042,-0.12063,-0.12226,-0.12226,-0.12018,0.36975,-0.12301,-0.12204,-0.12308,0.33626,0.33581,-0.1207,-0.12018,-0.12271,0.010971,0.36708,-0.17685,-0.1181,-0.12315,0.011713,0.31435 0.18852,0.2813,0.33697,0.26275,0.16997,0.37408,0.32769,0.086469,-0.04342,-0.10836,0.17925,0.067913,-0.080531,-0.16403,-0.20114,-0.099087,-0.1362,-0.20114,-0.16403,-0.16403,-0.1362,-0.16403,-0.17331,-0.21042,-0.22898 0.18047,0.17821,0.17663,0.1755,-0.2213,0.17663,0.17573,0.17483,-0.22648,-0.22784,0.17844,0.17663,0.17528,-0.22558,-0.22536,0.17934,0.17731,-0.22648,-0.22491,-0.22536,0.17844,0.17844,-0.22536,-0.22671,-0.22648 -0.14671,-0.14481,-0.14354,-0.1464,0.349,-0.1464,-0.14513,-0.14608,0.34201,0.34106,-0.14767,-0.14767,-0.14005,0.34487,0.19594,-0.14925,-0.14608,-0.14608,0.18958,0.19054,-0.14957,-0.14576,-0.14608,0.19086,0.1934 -0.14555,-0.14483,-0.14465,-0.14429,-0.14411,-0.14699,-0.14537,-0.14411,-0.14375,-0.14339,-0.14771,-0.14411,-0.14177,-0.14177,-0.14177,-0.14789,0.38353,0.20105,0.18917,0.38191,0.17622,0.20465,0.19889,0.19367,0.38299 -0.30379,-0.29933,-0.29041,-0.30156,-0.33279,0.088716,0.061954,0.060839,-0.28595,-0.29487,0.089831,0.063069,0.10321,0.058609,0.07199,0.13443,0.094292,0.1021,0.11102,0.047458,0.35857,0.29724,0.13555,0.15339,0.07645 -0.14044,-0.14181,-0.14113,-0.14113,-0.14215,-0.14317,-0.13465,-0.14181,-0.14283,-0.14181,-0.13533,-0.13329,-0.13567,-0.13295,-0.14249,0.0047019,0.010153,0.3461,0.34508,0.34406,0.0053834,0.0091313,0.3427,0.34304,0.34031 -0.084229,-0.13788,-0.12447,-0.1647,-0.03058,-0.084229,-0.043992,-0.12447,-0.12447,-0.097641,-0.057404,-0.12447,-0.017168,-0.097641,-0.017168,-0.070816,-0.11105,-0.084229,-0.13788,-0.0037554,0.23766,0.14378,0.19743,0.47908,0.68027 -0.04543,0.042688,0.17976,0.60077,0.63014,-0.10417,-0.05522,-0.05522,0.052479,0.18955,-0.13355,-0.084593,-0.11397,-0.05522,-0.025848,-0.084593,-0.12376,-0.10417,-0.11397,-0.05522,-0.094384,-0.11397,-0.12376,-0.11397,-0.094384 0.55945,0.33715,0.17043,-0.01482,-0.05187,0.31863,0.26305,-0.01482,-0.10744,-0.14449,0.18895,0.05928,-0.088919,-0.14449,-0.16302,0.17043,-0.12597,-0.20007,-0.16302,-0.14449,-0.05187,-0.16302,-0.14449,-0.14449,-0.20007 -0.099372,-0.18127,-0.18127,-0.29047,-0.31777,-0.099372,0.009828,-0.099372,-0.15397,-0.18127,0.064428,-0.12667,-0.18127,-0.15397,-0.017472,0.037128,0.091728,0.091728,0.31013,0.064428,0.22823,0.20093,0.14633,0.44663,0.39203 0.062658,0.10617,-0.06788,-0.06788,-0.24193,0.36725,0.10617,-0.06788,0.14968,-0.37247,0.28022,0.062658,0.019146,-0.19842,-0.28544,0.1932,0.14968,0.062658,-0.24193,-0.15491,0.28022,0.28022,-0.24193,0.019146,-0.19842 0.18434,0.18216,-0.21062,-0.22044,-0.21826,0.1838,0.18107,-0.2068,-0.21389,-0.21716,0.18707,0.18871,-0.20134,-0.20789,-0.20789,0.20126,0.19798,0.18925,-0.20625,-0.19698,0.20617,0.20071,0.19907,0.19416,-0.18825 0.17101,0.21958,0.17044,0.16244,0.19101,0.17044,0.24357,0.23386,0.15216,0.15159,-0.19864,-0.20321,0.24414,0.19444,0.17615,-0.20778,-0.20607,-0.20893,-0.20778,-0.2055,-0.20778,-0.20721,-0.20893,-0.21007,-0.20893 -0.4301,-0.058386,0.12294,0.059474,0.086672,-0.4573,0.086672,0.11387,0.132,0.086672,-0.35757,0.11387,0.14107,0.11387,0.1048,-0.30317,0.1048,0.12294,0.1048,0.041342,-0.39383,0.1592,0.132,0.12294,0.050408 -0.16733,-0.44622,-0.16733,-0.20717,-0.40638,0.031873,-0.08765,-0.24701,-0.24701,-0.047809,0.031873,0.11155,-0.08765,0.11155,0.1514,0.031873,0.1514,0.19124,0.11155,0.071714,0.31076,0.1514,0.23108,0.27092,0.1514 -0.086801,-0.087411,-0.087655,-0.087899,-0.087777,-0.087045,-0.087045,-0.086801,-0.088021,-0.087411,-0.087411,-0.087045,-0.087167,-0.087289,-0.087289,-0.086801,-0.086923,-0.087167,-0.087167,-0.087533,0.43475,0.46647,0.46916,0.46196,-0.086679 0.58516,0.27056,-0.017827,-0.044044,-0.096477,0.4934,0.060823,-0.004719,-0.096477,-0.16202,0.32299,0.021498,-0.017827,-0.096477,-0.070261,-0.017827,-0.004719,-0.096477,-0.1358,-0.16202,-0.16202,-0.1358,-0.070261,-0.16202,-0.20134 -0.11278,-0.11163,-0.11148,-0.1112,-0.11163,-0.11378,-0.11199,-0.11141,-0.11134,-0.11191,-0.11802,-0.11177,-0.11105,-0.11148,-0.1117,-0.11838,0.35513,-0.1112,-0.1112,-0.11134,0.35484,0.35463,0.35441,0.35556,0.36073 -0.055018,-0.11709,-0.1367,-0.23798,-0.28372,0.18021,-0.0060115,-0.1367,-0.24778,-0.28372,0.23575,0.19982,0.17695,-0.20857,-0.25758,0.25209,0.22922,0.20962,0.065865,-0.20204,0.24229,0.22922,0.21615,0.095269,-0.15957 -0.083823,-0.085587,-0.085839,-0.084579,-0.086846,-0.084831,-0.084831,-0.085335,-0.084579,-0.085587,-0.084075,-0.083319,-0.083571,-0.083319,-0.085839,-0.082312,-0.084327,-0.084579,-0.084327,-0.081304,0.51326,0.51049,0.57372,0.04693,0.044411 -0.14842,-0.15173,-0.15283,-0.14952,-0.14621,-0.14842,-0.13959,-0.15724,-0.15062,-0.15283,-0.14731,-0.16055,-0.15283,-0.16386,-0.13518,0.26753,0.26753,0.26753,0.26422,0.26422,0.26643,0.26753,0.26201,0.27194,-0.1418 -0.070932,-0.070932,-0.021398,-0.011492,0.95936,-0.085792,-0.085792,-0.041212,-0.046165,0.10739,-0.070932,-0.046165,-0.056072,-0.065978,0.018228,-0.065978,-0.070932,-0.046165,-0.011492,0.013275,-0.075885,-0.051118,-0.036258,-0.041212,-0.026352 0.16466,0.10467,0.065759,-0.13528,-0.099611,0.16952,0.20195,0.043061,-0.041245,-0.023411,0.19546,0.13385,-0.041245,-0.38982,-0.39631,0.19546,0.20519,-0.07205,-0.068807,-0.37037,0.17925,0.2133,0.20843,-0.075292,-0.36712 0.25757,0.24237,0.20878,0.10366,0.045375,0.258,0.24103,0.23476,0.10469,0.048356,0.25782,-0.20521,0.20653,0.10378,0.039352,-0.20491,-0.204,-0.2054,-0.22565,-0.22492,-0.20467,-0.20479,-0.22255,-0.22444,-0.22553 0.2162,0.16468,0.20761,0.15609,-0.075729,0.23337,0.16468,0.19902,0.19902,-0.075729,0.24195,0.15609,0.19902,0.17327,-0.028506,-0.12724,-0.16159,-0.22169,-0.011334,-0.25174,-0.19593,-0.31184,-0.31184,-0.28609,-0.25174 -0.087994,-0.086782,-0.087388,-0.087388,-0.0886,-0.086782,-0.087691,-0.088297,-0.087388,-0.088297,-0.086479,-0.086176,-0.087388,-0.086176,-0.087388,-0.087388,-0.087085,-0.088297,-0.087085,-0.087085,0.45863,0.45803,0.45833,0.45803,-0.085873 -0.14,-0.13795,-0.13795,-0.13795,-0.14,-0.13659,-0.13864,-0.13795,-0.13591,-0.13591,-0.13454,-0.14137,-0.12908,-0.13659,-0.13864,-0.13318,-0.13864,0.29742,0.28786,0.27831,0.31448,0.30015,0.29332,0.28377,0.27558 -0.11044,-0.025883,-0.25383,-0.2428,-0.25383,-0.058972,-0.066325,-0.19133,-0.24648,-0.22809,0.043971,-0.029559,-0.15456,-0.062648,-0.044266,0.13221,0.073384,0.0035295,0.07706,0.1028,0.18368,0.21309,0.22412,0.56236,0.3528 -0.1625,-0.16365,-0.015829,0.1826,0.018681,-0.16307,-0.1648,-0.017554,0.17628,0.024433,-0.1671,-0.1648,-0.0060508,0.1688,0.35746,-0.16135,-0.1602,-0.16192,0.15787,0.34308,-0.44893,-0.15272,0.16707,0.18548,0.3287 0.14556,0.21195,0.20295,0.16581,0.14331,0.16244,0.18719,0.17369,0.15456,0.13656,-0.24264,0.20857,0.16131,0.12306,0.13656,-0.23589,-0.23139,-0.23139,-0.22689,0.11855,-0.26852,-0.23814,-0.24264,-0.25952,-0.25502 -0.00077102,0.057055,-0.21666,-0.25392,-0.14212,0.37189,0.094321,0.051915,-0.2218,-0.12542,0.10974,0.36803,-0.17554,-0.14212,-0.14084,0.33462,0.10846,0.021075,-0.1524,-0.14469,0.30635,0.32434,-0.10357,-0.15754,-0.1704 -0.2749,-0.26014,0.16485,0.1311,0.22601,-0.27912,-0.24959,0.15641,0.15114,0.19543,-0.28123,-0.24221,0.14165,0.048847,0.049902,-0.26436,-0.24749,0.12899,0.080484,0.2102,-0.2517,0.17645,0.16696,0.17012,0.15219 -0.17582,-0.1536,-0.17725,-0.17009,-0.13282,-0.15002,-0.13712,-0.16292,-0.15575,-0.046815,-0.050398,-0.071182,-0.16865,-0.12422,-0.024597,-0.064015,-0.057565,0.39037,-0.015997,-0.01743,0.34092,0.37389,0.36314,0.29003,0.29792 0.24118,-0.17722,-0.17722,-0.18329,-0.20148,0.22501,0.23713,-0.16712,-0.17722,-0.17318,0.23107,0.23107,-0.17116,-0.17722,-0.16307,0.2149,0.21288,0.23915,-0.17722,-0.17318,0.20884,0.21894,0.21894,-0.18127,-0.17924 -0.2406,-0.23062,-0.078895,0.12473,0.16865,-0.23461,-0.14477,0.064841,0.11674,0.13072,-0.24659,-0.10285,-0.0090234,0.1407,0.17863,-0.15875,-0.060928,-0.015012,0.18662,0.24651,-0.18071,-0.14477,-0.076898,-0.076898,0.64377 0.087327,-0.020484,-0.047437,-0.020484,-0.020484,0.19514,-0.10134,-0.047437,-0.15525,-0.074389,0.49162,-0.020484,-0.20915,-0.15525,-0.047437,0.51857,-0.074389,-0.10134,-0.15525,-0.047437,0.38381,0.16818,-0.26306,-0.12829,-0.15525 0.33638,0.27085,-0.12232,-0.10048,-0.18785,0.38006,0.096107,-0.14416,-0.23153,-0.056791,0.29269,-0.034948,-0.166,-0.12232,-0.056791,0.44559,-0.078633,-0.18785,-0.23153,-0.056791,0.20532,-0.056791,-0.18785,-0.078633,0.074265 0.48317,0.26801,-0.10004,-0.10905,-0.11543,0.47107,0.26955,-0.096075,-0.10488,-0.11235,0.45545,-0.074516,-0.098275,-0.10553,-0.11037,-0.073856,-0.084196,-0.095415,-0.10224,-0.10839,-0.074736,-0.084416,-0.093875,-0.098715,-0.10488 -0.39612,-0.39612,-0.39355,-0.39355,-0.39483,0.053763,0.07006,0.11509,0.10351,0.1464,0.057623,0.055907,0.14125,0.13782,0.14297,0.057623,0.071346,0.063627,0.14726,0.12581,0.067915,0.14468,0.063627,0.091074,0.11681 -0.26737,-0.1013,-0.059784,0.18932,0.18932,-0.30889,-0.018267,0.064767,0.23083,0.064767,-0.26737,-0.39192,0.18932,0.064767,0.43842,-0.22585,-0.14282,-0.018267,0.064767,0.18932,-0.22585,0.02325,-0.018267,0.10628,0.23083 -0.1632,-0.18803,-0.16044,0.01611,0.0078345,-0.15768,-0.21837,-0.077683,0.0050759,0.51542,-0.16872,-0.22113,-0.069407,0.096111,0.42163,-0.12458,-0.13837,-0.069407,0.14852,0.33611,-0.15768,-0.036304,-0.025269,0.16508,0.26439 0.12756,0.13103,0.12872,0.070863,0.010692,0.13219,0.12872,0.13219,0.073178,-0.29942,0.12872,0.12872,0.11715,0.050035,-0.34802,0.13219,0.13335,0.10095,-0.31215,-0.38505,0.13682,0.13103,0.10326,-0.31794,-0.43481 -0.17684,0.088304,0.065248,0.013372,-0.51691,0.08254,0.13442,0.13442,0.071012,-0.45351,0.14018,0.15747,0.13442,0.13442,-0.38434,0.11712,0.11712,0.11136,0.11136,-0.31517,0.088304,0.088304,0.099832,0.099832,-0.14225 0.32227,-0.11209,-0.11605,-0.11626,-0.11814,0.32206,0.31372,-0.11501,-0.11668,-0.1171,0.3158,-0.11564,-0.11522,-0.11439,-0.11647,0.31455,-0.1148,-0.11397,-0.11355,-0.19408,0.31768,0.32603,-0.11376,-0.11334,-0.19554 -0.33715,-0.30498,-0.17629,-0.20846,-0.24064,-0.14412,-0.079783,-0.14412,-0.17629,-0.079783,0.14541,0.14541,-0.079783,-0.079783,-0.079783,-0.047612,0.20975,0.048899,0.24192,0.14541,0.14541,0.43494,0.08107,0.27409,0.30626 0.12973,0.12973,0.0065684,-0.19869,-0.19869,0.12973,0.088674,-0.15764,0.0065684,-0.19869,0.21183,0.21183,0.12973,-0.36291,-0.23975,0.25288,0.29394,-0.075537,0.0065684,-0.23975,0.37604,0.0065684,0.17078,-0.2808,-0.19869 -0.064134,0.079756,0.12087,0.18254,0.14142,-0.3108,0.079756,0.12087,0.18254,0.12087,-0.39303,0.018089,-0.0024667,0.18254,0.18254,-0.39303,-0.14636,0.059201,0.14142,0.12087,-0.51636,-0.16691,0.038645,0.12087,0.10031 0.034647,0.11155,0.10827,0.17876,-0.38291,0.040398,0.04237,0.1666,0.16989,-0.38603,0.039741,0.044342,0.15773,0.16085,-0.38751,0.035633,0.044999,0.14195,0.15198,-0.38965,0.038262,0.047464,0.082137,0.1408,-0.39228 0.096712,0.044716,-0.085273,-0.34525,-0.54023,0.10971,0.13571,0.018718,-0.18926,-0.43624,0.14871,0.14871,0.12271,-0.033277,-0.18926,0.1877,0.16171,0.14871,0.031717,-0.16327,0.16171,0.1877,0.1877,0.096712,-0.0072794 0.34287,0.22327,-0.10182,-0.15089,-0.15856,0.25087,0.39041,-0.10335,-0.14476,-0.15702,0.2018,0.38428,-0.11255,-0.14322,-0.15702,0.20487,-0.12329,-0.095686,-0.14169,-0.15856,0.27387,-0.12942,-0.10489,-0.13402,-0.15549 0.29177,0.32259,0.33417,0.37335,0.24635,-0.13433,-0.1354,0.25222,0.24741,0.24439,-0.13593,-0.13575,-0.13629,-0.13664,-0.13575,-0.13682,-0.13682,-0.13718,-0.13664,-0.13664,-0.13575,-0.13575,-0.13575,-0.1354,-0.1354 0.049432,0.0099916,0.01525,0.067837,0.95656,-0.037337,-0.037337,-0.039966,-0.016302,0.046803,-0.082036,-0.068889,-0.061001,-0.042596,-0.061001,-0.087295,-0.055742,-0.055742,-0.06626,-0.055742,-0.076777,-0.071519,-0.076777,-0.079407,-0.074148 0.17312,0.19785,0.30914,0.049462,0.049462,0.29677,0.30914,0.17312,0.13602,0.024731,0.28441,0.14839,0.098924,-0.024731,-0.17312,-0.098924,-0.22258,-0.25968,-0.22258,-0.17312,-0.21021,-0.13602,-0.25968,-0.17312,-0.29677 -0.13844,-0.14077,-0.1433,0.41902,0.31823,-0.1396,-0.14077,-0.14427,0.41922,0.31551,-0.14097,-0.1398,-0.14135,0.15985,0.15926,-0.1435,-0.14058,-0.14233,0.15907,0.15829,-0.14525,-0.14135,-0.14174,-0.1433,0.15887 0.1725,0.1866,-0.2094,-0.20987,-0.21151,0.1906,0.18684,-0.2094,-0.20822,-0.20705,0.19624,0.18966,-0.21081,-0.20846,-0.20423,0.1953,0.19765,0.19318,-0.20869,-0.2047,0.21809,0.1953,0.19013,0.18425,-0.20399 -0.23308,-0.19163,-0.22736,-0.2388,-0.22307,0.12423,-0.17019,-0.24451,-0.12875,-0.16448,0.094215,0.095644,-0.031557,-0.16448,-0.18877,0.11851,0.095644,0.26858,-0.1216,0.13995,0.33147,0.27144,0.27716,0.26286,0.24857 0.22764,0.21344,0.20792,-0.091159,-0.11168,0.22764,0.20634,-0.26161,-0.095893,-0.11325,0.23475,0.20476,-0.25687,-0.094315,-0.12272,0.22686,0.20792,-0.25845,-0.24819,-0.11325,0.21344,0.20634,-0.26161,-0.25687,-0.091159 0.2665,0.2607,0.043765,0.04484,0.046345,0.26543,0.23941,-0.17897,-0.17983,-0.1794,0.25296,0.23597,-0.1794,-0.17854,-0.17854,0.24006,0.23834,-0.18091,-0.18048,-0.18026,0.24178,-0.18886,-0.18972,-0.19101,-0.19015 0.59822,0.3147,0.0075605,-0.039692,-0.18145,0.29108,0.12569,-0.11057,-0.1342,-0.20508,0.33833,-0.1342,0.0075605,-0.1342,-0.086945,0.2202,0.031187,-0.1342,-0.1342,-0.1342,0.031187,-0.1342,-0.11057,-0.1342,-0.15782 0.19557,0.16124,0.16615,0.19557,-0.1379,0.16615,0.16615,0.18577,-0.22127,-0.30464,0.17596,0.15634,-0.20165,-0.28012,-0.27521,0.16615,0.15144,0.063164,-0.27521,-0.28993,0.14653,0.16124,0.13672,-0.15261,-0.2556 -0.3013,-0.17449,-0.17449,-0.25058,-0.098405,-0.25058,-0.047681,-0.098405,-0.022319,-0.14913,-0.25058,-0.047681,-0.047681,0.0030435,0.028406,-0.073043,0.07913,0.10449,0.15522,0.053768,0.10449,0.25666,0.4342,0.40884,0.35811 -0.41059,-0.35691,-0.20414,-0.26607,-0.16698,-0.22478,-0.010075,-0.059623,-0.038978,-0.084396,-0.06788,-0.10091,0.05186,-0.088525,0.12618,0.22941,-0.038978,0.2005,0.26657,0.1716,0.23354,0.23766,0.27483,0.27483,0.05186 0.25549,0.23002,0.19636,0.16725,0.14678,0.25959,0.2282,0.19363,0.17089,0.14359,0.2564,0.22502,-0.19028,-0.19165,-0.18801,-0.18892,-0.18619,-0.19028,-0.19301,-0.19301,-0.19483,-0.18983,-0.18892,-0.18846,-0.18983 0.19532,0.10895,0.09072,0.047135,0.0098898,0.1343,0.11608,0.09072,0.04238,0.015437,0.23019,0.12083,0.10181,0.056645,0.01306,0.24049,0.1343,0.10261,0.053475,0.0019653,-0.38792,-0.38951,-0.38,-0.37841,-0.37049 0.11669,0.16725,0.27497,-0.20207,-0.19548,0.1079,0.16725,0.2354,-0.21087,-0.21746,0.11009,0.18704,0.2376,-0.22626,-0.23505,0.12328,0.19363,-0.21966,-0.24384,-0.23505,0.1013,0.17385,0.231,-0.22186,-0.21966 0.22296,0.086579,0.064312,0.068023,-0.36988,0.022563,0.016997,0.060601,0.064312,-0.38194,0.038335,0.030913,0.10328,0.083795,-0.38101,0.038335,0.084723,0.19142,0.21368,-0.38658,0.034624,0.081012,0.19513,0.2044,-0.38658 -0.33595,0.17344,-0.081258,0.10416,0.15714,-0.35429,-0.10775,0.034883,0.11435,0.13676,-0.36855,0.032845,0.067484,0.19381,0.15102,-0.32373,-0.1159,0.14084,0.204,0.14491,-0.28909,-0.22796,0.24679,0.14084,0.16121 0.26891,0.29417,0.28339,0.28845,0.35819,0.26419,0.2844,0.28373,-0.13471,-0.13875,-0.13134,-0.14044,-0.13572,-0.13572,-0.13639,-0.13673,-0.13673,-0.13808,-0.13707,-0.13606,-0.13606,-0.13707,-0.13808,-0.13841,-0.13808 0.15022,0.30195,0.26402,0.26402,0.26402,0.18815,0.036416,0.18815,-0.11532,0.11228,0.074349,0.15022,0.036416,0.036416,0.036416,-0.039451,-0.19118,-0.11532,-0.039451,-0.11532,-0.30498,-0.45672,-0.26705,-0.26705,-0.19118 0.047118,0.19526,-0.18465,-0.19899,-0.20615,0.10207,0.29322,-0.065182,-0.19899,-0.20376,0.27889,0.30517,0.28128,-0.20376,-0.20376,0.28366,0.27172,0.056676,-0.20376,-0.20615,0.068622,0.047118,0.03995,-0.18465,-0.21093 -0.0002012,-0.089065,-0.11757,-0.13937,-0.14943,-0.016968,-0.065592,-0.10416,-0.14104,-0.1511,0.40556,0.0065055,-0.092419,-0.11757,-0.13769,0.43574,0.019919,-0.048825,-0.099125,-0.12092,0.46592,0.46759,-0.013615,-0.089065,-0.10751 -0.28041,0.13239,0.13497,0.13841,0.1397,-0.2959,0.1255,0.13712,0.13669,0.1397,-0.29418,-0.29117,0.13755,0.13669,0.13841,-0.29547,-0.29246,0.141,0.13841,0.141,-0.29289,-0.28945,0.13798,0.13712,0.13927 0.39413,0.39519,-0.056797,-0.083448,-0.091976,0.39626,0.3824,-0.11436,-0.12182,-0.13675,0.39519,-0.09624,-0.12182,-0.14314,-0.14741,0.0050316,-0.012025,-0.10157,-0.12822,-0.14208,-0.039741,-0.077052,-0.09624,-0.11436,-0.14314 0.30905,0.30905,0.30753,0.30982,0.062521,0.30372,-0.13524,0.31248,0.30601,0.065569,-0.13829,-0.14324,-0.144,-0.14896,-0.14172,-0.144,-0.14172,-0.14248,-0.14515,-0.14476,-0.14362,-0.14286,-0.14324,-0.14362,-0.14286 0.50096,0.27279,-0.13285,-0.06693,-0.097353,0.46547,0.049691,-0.11256,-0.097353,-0.097353,0.39955,0.18152,-0.097353,-0.11256,-0.13285,0.13082,0.0091268,-0.13285,-0.11256,-0.11256,-0.13285,-0.13285,-0.15313,-0.13792,-0.14806 0.45285,0.16313,0.38599,0.22999,0.16313,0.25228,0.096275,0.11856,-0.015154,-0.015154,0.11856,0.029417,-0.015154,-0.015154,-0.015154,-0.2603,-0.17116,-0.1043,-0.015154,-0.17116,-0.21573,-0.19344,-0.2603,-0.28259,-0.2603 -0.19349,-0.19349,-0.1941,-0.19349,-0.18553,-0.19165,-0.19287,-0.1892,-0.19349,-0.19104,0.24614,0.23267,-0.19593,-0.19042,-0.18675,0.229,0.21736,0.20389,0.19777,0.18369,0.2192,0.20573,0.19471,0.18491,0.17634 -0.13922,-0.16891,-0.17633,-0.18375,-0.15778,-0.12067,-0.13551,-0.1652,-0.18375,-0.13551,-0.092841,-0.068721,-0.11325,-0.12067,-0.096551,-0.024193,-0.022338,0.36914,0.17989,0.27822,-0.022338,0.37841,0.36728,0.37841,0.17618 0.1901,-0.18074,-0.17956,-0.18191,-0.18899,0.19835,0.2013,-0.18132,-0.18781,-0.19606,0.20248,0.2125,0.21014,-0.19076,-0.20137,0.20248,0.2184,0.20661,-0.19665,-0.20491,0.20248,0.23962,0.21014,-0.20019,-0.20432 0.53728,0.51736,0.53396,0.065749,0.065749,-0.090322,-0.063757,-0.083681,-0.077039,-0.073719,-0.096963,-0.087001,-0.087001,-0.073719,-0.08036,-0.1036,-0.073719,-0.093643,-0.087001,-0.096963,-0.10028,-0.083681,-0.087001,-0.093643,-0.087001 -0.080683,-0.1293,-0.048732,0.036008,-0.084851,-0.1293,-0.14459,0.066569,0.069348,-0.08624,-0.089019,-0.1432,-0.11263,-0.034841,-0.029284,0.063791,-0.1293,-0.054289,-0.061235,0.080461,0.90702,0.052678,-0.034841,0.036008,0.080461 0.055243,0.055814,0.0581,0.060386,0.060386,0.060386,0.060386,0.056386,0.057529,0.056386,0.21638,0.20038,0.096384,0.10495,0.11124,0.20266,0.11753,0.094098,0.098669,0.12324,-0.38816,-0.39102,-0.38816,-0.39616,-0.38302 -0.12696,-0.15966,-0.16405,-0.16485,-0.16983,-0.12656,-0.12716,-0.12656,-0.12616,-0.15727,-0.12536,-0.12456,-0.12636,-0.12636,-0.12696,0.0056638,0.0064615,0.33153,0.33173,0.33033,0.0060626,0.0056638,0.39634,0.33392,0.33093 0.0026608,0.081277,0.087324,0.075229,-0.2604,0.032898,0.25665,0.087324,-0.18481,-0.2604,0.16896,0.32922,-0.13643,-0.26645,-0.27552,0.15687,0.24456,0.19618,-0.23016,-0.28459,0.16594,0.1992,0.16594,-0.075955,-0.27552 0.42769,-0.09702,-0.084545,-0.21241,-0.21319,0.43392,-0.11183,-0.09624,-0.080647,-0.018275,0.4425,-0.11339,-0.11183,-0.071291,-0.060376,0.44484,-0.11339,-0.12041,-0.066613,-0.07441,0.069826,0.055012,-0.11807,-0.061156,-0.048681 -0.16179,-0.15931,-0.16096,-0.16179,0.24792,-0.16179,-0.16096,-0.16261,0.25287,0.25122,-0.16261,-0.16344,-0.16344,0.24297,0.24957,-0.16509,-0.16426,-0.16426,0.2409,0.24544,-0.16797,-0.1688,0.2409,0.23967,0.2376 -0.36004,-0.29807,-0.34455,-0.36004,-0.42201,0.027266,0.10473,-0.050195,-0.0037181,-0.12766,0.19768,0.21317,0.19768,0.1512,0.1512,0.19768,0.21317,0.10473,-0.0037181,-0.0037181,0.1512,0.1667,0.089235,0.027266,-0.01921 -0.19312,-0.20189,-0.20314,0.41038,0.41664,-0.16558,-0.2094,-0.18185,0.29144,0.26389,-0.11925,-0.16808,-0.080434,0.0022037,0.2401,-0.099215,-0.075426,-0.082938,0.0097162,0.2401,-0.123,-0.075426,-0.089199,-0.05414,0.24761 -0.08175,-0.07936,-0.096093,-0.1941,-0.11043,0.090356,-0.072189,-0.07697,-0.16302,-0.12,0.33895,0.29115,-0.069799,-0.14629,-0.17497,0.38915,0.31027,-0.067408,-0.16302,-0.17497,0.33178,0.38437,-0.065018,-0.12956,-0.15107 -0.24073,-0.24136,-0.24178,-0.24178,-0.2424,0.15088,-0.24094,-0.24073,-0.24282,-0.24115,0.14691,0.14608,0.14587,0.13502,-0.24344,0.14879,0.14879,0.14879,0.13961,0.14107,0.26458,0.2698,0.1417,0.14045,0.14879 0.35228,0.19215,-0.08807,-0.1281,-0.28823,0.072058,0.072058,-0.20817,-0.16813,-0.36829,0.27222,0.11209,-0.048038,-0.048038,-0.32826,0.35228,0.11209,-0.048038,0.11209,0.032026,0.27222,0.072058,0.072058,-0.2482,-0.1281 0.27866,0.28772,0.28206,0.29339,0.28546,-0.070344,0.28206,0.28432,0.28546,-0.097539,-0.23238,-0.13493,-0.1134,-0.1168,-0.10774,-0.23011,-0.20632,-0.11907,-0.097539,-0.099805,-0.22558,-0.1066,-0.11114,-0.10434,-0.10547 0.10698,0.11974,0.11974,0.11974,0.11767,0.10905,0.11112,0.11112,0.11181,0.11284,0.10974,0.10767,0.11112,0.11319,0.11181,0.10767,0.10974,0.11112,0.11319,-0.35228,-0.35469,-0.35469,-0.35607,-0.36262,-0.35469 -0.15624,-0.15624,-0.15257,-0.15457,-0.1509,-0.13956,-0.12089,-0.15424,-0.15557,-0.15457,-0.10455,-0.11622,-0.11822,-0.11355,-0.15357,-0.10855,0.25593,0.26994,0.28728,0.29161,-0.10755,0.26194,0.34264,0.29728,0.31096 0.24191,0.20629,0.18608,0.16682,0.1211,0.24672,0.21111,0.19859,0.16971,0.12447,0.24335,0.21544,-0.20908,-0.19994,0.1365,-0.20235,-0.20956,-0.21582,-0.20523,-0.20523,-0.18454,-0.21197,-0.2139,-0.20235,-0.20812 0.15175,0.13632,0.12002,0.14954,0.15263,0.15704,0.15219,0.12002,0.11826,0.15131,0.13016,0.15395,0.14822,0.12663,0.10944,0.12619,0.12399,-0.28892,-0.28936,-0.292,-0.2876,-0.28936,-0.29156,-0.29288,-0.29597 0.38952,0.54534,0.07539,-0.060648,-0.1299,0.38704,0.37715,-0.0037596,-0.1299,-0.12248,0.10012,0.011081,-0.045808,-0.14969,-0.12248,-0.0037596,-0.095276,-0.12496,-0.15959,-0.13485,-0.033441,-0.12496,-0.14474,-0.15959,-0.1398 0.22261,-0.12619,-0.1269,-0.12831,-0.12902,0.2235,-0.12336,-0.12778,-0.12831,-0.1269,0.41786,0.010927,-0.12866,-0.12725,-0.12548,0.4161,0.42617,-0.12654,-0.12778,-0.12372,0.21996,0.22067,-0.12796,-0.12849,-0.12513 0.20826,0.071965,0.044705,0.12648,0.12648,0.044705,0.181,0.15374,0.12648,0.099224,0.071965,0.181,0.181,0.23552,0.26278,-0.14611,-0.11885,-0.14611,-0.064332,-0.037073,-0.11885,-0.30967,-0.33693,-0.39144,-0.44596 0.17005,0.1695,-0.22465,-0.22533,-0.22669,0.174,0.171,-0.22356,-0.22533,-0.22683,0.174,0.18286,0.17223,-0.22533,-0.22574,0.17441,0.1849,0.18476,-0.22506,-0.22656,0.17482,0.1819,0.18327,0.18367,-0.22628 -0.0027841,0.038977,-0.15591,-0.051506,-0.093267,-0.0027841,0.032017,-0.13503,-0.093267,-0.093267,0.045938,0.032017,-0.13503,-0.072386,-0.093267,0.25474,0.11554,-0.10719,-0.11415,-0.093267,0.82548,0.24082,-0.13503,-0.093267,-0.11415 -0.064273,-0.23798,-0.19455,-0.1077,0.43514,-0.085986,-0.12941,-0.17284,0.087723,0.41343,-0.064273,-0.1077,-0.12941,0.13115,0.34829,-0.064273,-0.064273,-0.19455,-0.085986,0.34829,-0.085986,-0.17284,-0.064273,-0.020845,0.28315 0.9546,-0.058653,-0.058653,-0.058653,-0.056467,-0.047723,-0.044443,-0.04663,-0.046083,-0.054827,-0.042804,-0.04663,-0.04335,-0.048269,-0.0592,-0.04499,-0.048816,-0.052095,0.17799,-0.031327,-0.052641,-0.062479,-0.043897,-0.037885,-0.046083 0.25089,0.38807,-0.10164,-0.10292,-0.093349,0.18772,0.38536,-0.10228,-0.10196,-0.090318,0.18692,0.39014,-0.097018,-0.22989,-0.22543,0.073186,0.073026,-0.098134,-0.23069,-0.22575,0.072069,0.073026,0.073665,-0.22926,-0.22543 0.25287,0.25287,0.26125,0.25846,0.20538,0.2836,0.25287,0.25566,0.17465,-0.13543,-0.27231,0.012627,0.037769,-0.006928,-0.16337,-0.29466,-0.17733,-0.12984,-0.054418,-0.15778,-0.29466,-0.18571,-0.11867,-0.093527,-0.16337 0.083292,0.082762,-0.065339,-0.065472,-0.065869,-0.066266,-0.066133,-0.066133,-0.065869,-0.066133,-0.066133,-0.066398,-0.066531,-0.066531,-0.066531,-0.066001,-0.066266,-0.066795,-0.066928,-0.068383,-0.066398,-0.066133,0.10936,0.11664,0.93418 0.19467,0.1326,0.09366,0.018206,-0.01303,0.24051,0.12814,0.09366,0.02632,-0.017492,0.24335,0.13707,0.095283,0.047009,-0.002077,0.19264,0.1326,0.092038,0.041329,-0.0097847,-0.37326,-0.37083,-0.37286,-0.37488,-0.37488 -0.01937,0.39097,0.01758,-0.13994,-0.2469,-0.013535,0.025359,-0.0077011,-0.12244,-0.25468,0.05453,0.29373,0.031194,-0.13022,-0.27802,0.34819,0.25289,0.085646,-0.16911,-0.27413,0.20233,0.23734,0.12649,-0.14578,-0.26441 0.45823,0.45994,0.45709,0.45766,-0.083684,-0.090501,-0.083116,-0.085957,-0.085389,-0.084821,-0.091637,-0.085957,-0.089933,-0.084253,-0.087661,-0.088797,-0.088229,-0.086525,-0.085957,-0.089933,-0.087661,-0.089933,-0.086525,-0.087661,-0.088797 -0.10415,-0.10415,-0.10415,-0.085421,0.13313,-0.097909,-0.079177,-0.097909,-0.079177,0.23303,-0.1104,-0.10415,-0.10415,-0.066688,0.52651,-0.091665,-0.091665,-0.060444,-0.10415,0.46407,-0.10415,-0.10415,-0.091665,-0.079177,0.50778 -0.16037,-0.16071,-0.16271,0.21377,0.22077,-0.16171,-0.16037,-0.15971,-0.16371,0.2241,-0.15971,-0.16137,-0.16104,0.21311,0.2281,-0.16137,-0.16037,-0.16071,0.21611,0.33372,-0.16437,-0.16504,0.21011,0.22977,0.33372 0.079129,0.081124,0.34639,0.35123,0.36348,0.078559,0.0067584,0.0047639,0.34981,0.36548,-0.16876,-0.16676,0.0078981,0.0067584,0.0056187,-0.1716,-0.17246,-0.17331,-0.17303,-0.15935,-0.17246,-0.17046,-0.17189,-0.17331,-0.1736 0.2706,0.27214,0.1315,0.0019421,0.0025861,0.27291,0.27227,0.13163,0.0019421,0.0034876,0.31426,0.3158,0.13163,0.0024573,0.0046467,-0.21352,-0.21301,-0.21043,-0.21301,-0.21275,-0.21339,-0.21249,-0.21352,-0.21404,-0.21365 0.13136,0.14721,0.1501,0.16307,-0.22464,0.26036,0.1573,0.13929,-0.24338,-0.24122,0.15442,0.15154,0.22144,-0.24914,-0.24049,0.14866,0.15298,-0.23257,-0.24698,-0.25275,0.17172,0.13568,0.14289,-0.23905,-0.25779 0.66383,0.32297,0.32297,0.25905,0.10993,-0.060503,-0.017895,-0.017895,0.0034086,-0.017895,0.0034086,-0.017895,0.0034086,-0.017895,0.024712,-0.10311,-0.16702,-0.081807,-0.10311,-0.12441,-0.20963,-0.18833,-0.18833,-0.18833,-0.20963 0.40462,0.41337,0.10278,-0.11244,-0.11682,0.41162,0.22439,-0.12644,-0.12819,-0.11682,0.22439,0.22089,-0.12032,-0.14481,-0.14744,0.21215,-0.11594,-0.12906,-0.14744,-0.14919,-0.12994,-0.12382,-0.12994,-0.12819,-0.14744 0.29203,-0.13776,-0.13621,-0.13569,-0.13206,0.29126,0.29437,-0.13932,-0.13673,-0.13465,0.2897,0.29852,-0.13828,-0.13621,-0.13673,0.28659,-0.13932,-0.14088,-0.13776,-0.13621,0.28762,0.29203,-0.14036,-0.14191,-0.13206 -0.13586,-0.1345,-0.13768,-0.13586,-0.13813,-0.13586,-0.13768,-0.13768,-0.13631,-0.13859,-0.13631,-0.13813,-0.13541,-0.13859,-0.1395,-0.13586,-0.13904,0.29279,0.28461,0.27597,0.31507,0.30416,0.29279,0.28461,0.28097 0.43696,-0.1091,-0.10934,-0.11055,-0.11007,0.13306,-0.11177,-0.11055,-0.10982,-0.10885,0.37959,-0.11007,-0.11177,-0.11055,-0.10958,0.37375,-0.10034,-0.10982,-0.11128,-0.10739,0.37448,0.37545,-0.11128,-0.10423,-0.10691 0.050081,0.090171,0.10559,0.11484,0.21352,0.016159,0.077836,0.093255,0.1611,0.18269,0.0069078,0.028495,0.059333,0.19811,0.20427,-0.051685,0.0099916,0.028495,0.087087,0.20119,-0.41249,-0.38165,-0.36624,-0.38165,-0.3354 -0.21522,-0.15318,-0.15318,-0.15477,0.19045,-0.2192,-0.21999,0.18298,0.17948,0.19109,-0.21968,-0.22079,0.18139,0.18123,0.18457,-0.21968,-0.22206,0.17916,0.17916,0.36036,-0.22095,-0.22127,0.14336,0.14448,0.14225 -0.028783,-0.028783,-0.0076191,0.025639,0.96291,-0.028783,-0.052971,-0.03483,-0.0015722,0.080061,-0.052971,-0.055994,-0.046924,-0.03483,-0.0015722,-0.052971,-0.055994,-0.065065,-0.065065,-0.049947,-0.071112,-0.092276,-0.083205,-0.083205,-0.074135 0.11697,0.17487,0.088016,0.20383,0.088016,0.17487,-0.027794,0.11697,0.059063,0.17487,0.030111,0.0011581,0.14592,0.17487,0.088016,0.030111,0.088016,0.11697,-0.0857,0.11697,-0.31732,-0.37523,-0.34627,-0.37523,-0.46208 -0.060551,0.45495,0.45495,0.44882,0.45086,-0.072825,-0.048277,-0.072825,-0.081008,-0.046232,-0.068734,-0.060551,-0.072825,-0.081008,-0.081008,-0.10965,-0.095327,-0.072825,-0.040095,-0.048277,-0.15261,-0.14851,-0.15874,-0.12397,-0.11374 -0.28882,-0.29111,-0.29111,-0.29569,-0.28653,0.13394,0.13394,-0.28882,-0.2934,-0.29569,0.12478,0.13547,0.13547,0.13241,0.13699,0.12631,0.13241,0.13852,0.13852,0.1431,0.13241,0.14004,0.1492,0.1576,0.14004 0.20799,0.1141,0.072133,0.044875,0.0024748,0.21967,0.12232,0.082516,0.043145,0.0080993,0.2188,0.12968,0.080353,0.042712,0.0024748,0.21448,0.14525,0.085978,0.051365,0.0016095,-0.3787,-0.37653,-0.37956,-0.37783,-0.3774 0.95234,0.028216,-0.0059603,0.0083936,-0.074312,-0.088666,-0.063376,-0.0018592,0.0090772,-0.090034,-0.092084,-0.087299,-0.044921,-0.0045933,-0.085249,-0.094135,-0.077047,-0.032618,0.023431,-0.088666,-0.08935,-0.079097,0.0063431,0.03095,0.040519 0.016623,-0.13005,-0.24005,-0.31746,-0.36432,0.041068,-0.07301,-0.18098,-0.25024,-0.31746,0.18774,0.045142,-0.077084,-0.10153,-0.083196,0.23663,0.18978,0.12255,0.087922,0.071625,0.30793,0.30589,0.28552,0.18978,0.04718 0.14293,0.14479,0.19074,0.18143,-0.38545,0.063456,0.074632,0.21806,0.068423,-0.38111,0.046692,0.049175,0.049175,0.054763,-0.38421,0.057247,0.042966,0.046071,0.16901,-0.3867,0.050417,0.044829,0.04545,0.18453,-0.38732 0.18301,0.18078,-0.22568,-0.2279,-0.219,0.16519,0.16574,-0.22401,-0.22735,-0.22122,0.16742,0.16352,0.17521,-0.22735,-0.22568,0.16407,0.16407,0.18078,-0.22735,-0.22401,0.19414,0.20305,0.20249,0.16909,-0.22902 -0.16615,-0.16716,-0.13791,-0.13538,0.23828,-0.16577,-0.16704,0.20498,0.23778,0.2379,-0.16577,-0.16666,-0.16792,0.31717,0.23638,-0.1659,-0.16615,-0.1678,0.24715,0.2374,-0.1659,-0.16577,-0.16754,0.24436,0.2374 -0.074948,0.4274,0.43317,0.48976,0.47937,-0.079567,-0.078412,-0.083609,-0.079567,-0.083609,-0.085919,-0.084186,-0.086496,-0.089383,-0.087073,-0.088806,-0.088806,-0.091115,-0.091693,-0.093425,-0.091693,-0.091693,-0.094002,-0.094002,-0.091693 0.052166,0.063337,0.07244,0.17257,0.10471,0.04927,0.070371,0.075336,0.065406,0.18746,0.061268,0.05589,0.074095,0.17629,0.085266,0.065406,0.16843,0.078232,0.1796,0.084439,-0.41206,-0.33138,-0.3289,-0.43317,-0.43648 -0.49336,-0.31573,-0.18443,-0.1072,-0.16126,-0.35434,-0.13037,-0.068583,0.0009268,-0.0067965,-0.14582,-0.045413,0.016373,0.07816,0.0009268,0.016373,0.19401,0.19401,0.20173,0.20173,0.16312,0.23263,0.23263,0.26352,0.21718 0.24023,0.1931,-0.18196,-0.1887,-0.18988,0.24023,0.20577,-0.178,-0.18988,-0.19266,0.21647,0.2026,0.17963,-0.19028,-0.19741,0.23072,0.19983,-0.1982,-0.19107,-0.19305,0.23152,0.19785,-0.20414,-0.19226,0.14953 0.15907,0.17862,0.13953,-0.26597,-0.34414,0.1493,0.17129,0.14686,0.18839,-0.34902,0.15907,0.17373,0.16396,-0.22688,-0.24887,0.16396,0.16152,-0.16337,-0.2391,-0.19269,0.16152,0.19816,0.068691,-0.20246,-0.15116 0.18838,0.17414,0.17285,-0.19869,-0.244,0.18191,0.18838,0.17285,-0.23493,-0.23752,0.17932,0.17285,0.17932,0.17026,-0.24658,0.17673,0.17155,-0.18574,-0.21681,-0.24141,0.17285,0.17285,-0.18574,-0.24011,-0.2427 -0.32662,-0.32662,-0.26991,-0.17541,-0.043095,-0.21321,-0.1565,-0.0998,0.070313,-0.043095,-0.0052924,0.032511,-0.0052924,-0.1187,-0.0052924,0.013609,0.051412,-0.0052924,0.013609,-0.061997,0.27823,0.27823,0.35384,0.37274,0.39164 0.16996,0.057403,-0.027013,-0.13957,-0.083291,0.25437,0.16996,0.0011256,0.16996,-0.11143,0.16996,0.16996,-0.13957,-0.19585,-0.56165,0.1981,0.16996,-0.027013,-0.19585,-0.28026,0.28251,0.1981,0.085542,-0.11143,-0.22398 0.26883,0.22977,0.21882,0.26554,0.24182,0.23087,0.22503,0.26372,0.26116,-0.16116,0.23963,-0.14656,-0.16226,-0.16481,-0.16445,-0.16043,-0.16627,-0.16153,-0.16335,-0.167,-0.16627,-0.16445,-0.16445,-0.16591,-0.16627 0.1572,0.14516,-0.26214,-0.26135,-0.26056,0.15582,0.15424,0.14674,-0.26056,-0.25958,0.15069,0.16451,0.15582,-0.26135,-0.26017,0.14792,0.15799,0.15207,0.12167,-0.28129,0.15582,0.1574,0.14555,0.12798,-0.28959 0.1045,0.096682,0.11599,0.12518,0.12242,0.11277,0.11185,0.11047,0.12886,0.12978,0.11093,0.085649,0.10771,0.12334,0.13438,0.10036,0.082431,0.09944,0.1284,-0.35749,-0.35243,-0.35473,-0.35519,-0.35565,-0.35565 0.23527,0.043324,0.043921,-0.35117,-0.34997,0.22974,0.037349,0.036154,0.048253,-0.34669,0.2269,0.29636,0.03466,0.047058,-0.23989,0.22242,0.29696,0.035407,0.04198,-0.23899,0.044967,0.0372,0.045266,-0.23794,-0.23854 0.34401,0.35442,0.35638,0.44667,0.26001,-0.10898,-0.10724,0.35508,-0.11201,-0.11158,-0.11397,-0.11093,-0.11267,-0.11093,-0.1118,-0.11353,-0.11223,-0.11115,-0.11158,-0.10984,-0.11223,-0.11527,-0.1105,-0.10919,-0.11093 -0.020016,-0.050652,-0.11192,-0.11192,-0.19362,-0.020016,-0.050652,-0.020016,-0.081288,-0.15277,0.051469,0.010621,-0.060864,-0.11192,-0.14256,0.40889,0.010621,-0.030228,-0.020016,-0.14256,0.72547,0.34762,-0.020016,-0.071076,-0.14256 -0.13515,-0.13835,-0.13698,-0.13652,-0.13835,-0.13515,-0.13607,-0.13607,-0.13561,-0.13881,-0.13196,-0.1347,-0.13881,-0.13607,-0.13881,0.23743,0.31551,0.30912,-0.13744,-0.13972,0.24793,0.3146,0.31095,0.29633,0.29268 0.15663,0.16471,-0.16043,-0.17658,-0.20283,0.30001,-0.17658,-0.18466,-0.20485,-0.20283,0.2576,0.28385,-0.1059,-0.1685,-0.17658,0.22933,0.23337,0.24952,-0.10388,-0.19274,0.195,0.195,0.16875,-0.16446,-0.21293 0.033029,0.033029,0.086882,0.033029,0.086882,0.23049,0.19459,0.17664,0.30229,0.30229,0.10483,0.19459,0.26639,0.14073,0.086882,-0.20033,-0.25418,-0.20033,-0.25418,-0.20033,-0.20033,-0.20033,-0.20033,-0.25418,-0.30804 0.19593,0.41046,0.19593,0.26744,0.19593,0.23169,0.088671,0.12443,0.19593,0.12443,0.16018,-0.12586,-0.054347,-0.12586,-0.12586,-0.090101,-0.12586,-0.090101,-0.12586,-0.19736,-0.12586,-0.41189,-0.018592,-0.26887,-0.30463 -0.21644,-0.20156,-0.19226,-0.18855,-0.1904,-0.23503,-0.22016,-0.1904,-0.19784,-0.18669,-0.25177,-0.22016,0.19264,0.19264,0.1945,0.20751,0.18892,0.20007,0.19264,0.1852,0.1852,0.19264,0.18334,0.19078,0.1852 -0.13956,-0.12139,-0.13166,0.2933,0.30041,-0.14035,-0.12929,-0.13798,0.29251,0.29488,-0.13798,-0.14193,-0.14351,0.29251,0.29093,-0.14272,-0.14035,-0.13956,-0.13956,0.28304,-0.1364,-0.13956,-0.12771,-0.14193,0.28383 -0.41981,-0.36199,-0.3909,-0.3909,-0.36199,0.013878,0.15844,0.10062,-0.015035,0.071704,0.18736,0.12953,0.15844,0.071704,0.071704,0.15844,0.10062,0.042791,0.10062,0.21627,0.12953,0.10062,0.071704,0.013878,0.042791 -0.13727,-0.13649,-0.13805,0.28621,0.28524,-0.13649,-0.13727,-0.13746,0.29052,0.29052,-0.13649,-0.13727,-0.13825,0.29424,0.29346,-0.13649,-0.13688,-0.13649,-0.14021,0.29287,-0.1357,-0.13688,-0.13649,-0.13805,0.29914 -0.26386,-0.27002,-0.24536,-0.21762,-0.081993,-0.26386,-0.24845,-0.1683,-0.072746,0.04747,-0.21454,-0.11282,0.0043154,0.099872,0.18926,-0.041921,0.056717,0.15536,0.25399,0.29715,0.053635,0.16152,0.26941,0.29715,0.31564 -0.052745,-0.14459,-0.13803,0.052221,-0.0068228,-0.046185,-0.15771,-0.13147,0.006298,-0.019944,-0.039625,-0.13147,-0.052745,0.012858,0.012858,0.354,-0.15115,-0.072427,0.012858,-0.0068228,0.83947,-0.15771,-0.046185,0.04566,0.019419 0.1108,0.22623,0.39455,0.096377,-0.19939,0.10119,0.093972,0.106,-0.0022122,-0.2066,0.07714,0.072331,0.069926,-0.0022122,-0.31,0.086758,0.072331,0.07714,-0.11523,-0.45909,0.11321,0.11561,0.13485,-0.17534,-0.47833 0.37056,0.37534,-0.12641,-0.092959,-0.10411,0.32915,0.35623,-0.097738,-0.10252,-0.084995,0.32118,-0.10729,-0.15827,-0.16623,-0.11685,0.31481,-0.078623,-0.1726,-0.16942,-0.12004,0.077476,-0.05473,-0.16464,-0.1503,-0.07703 -0.41925,0.081766,0.041685,0.081766,0.041685,-0.35913,0.16193,0.10181,0.041685,0.10181,-0.35913,0.021644,0.081766,0.10181,0.10181,-0.39921,0.081766,0.061726,0.12185,0.10181,-0.41925,0.12185,0.20201,0.14189,0.16193 -0.15744,-0.13081,0.27591,0.26874,0.22469,-0.16666,-0.15744,-0.12363,0.26464,0.22981,-0.17588,-0.16974,-0.13593,0.25542,0.21957,-0.18305,-0.18305,-0.1472,0.24006,0.22981,-0.19227,-0.1851,-0.18408,-0.14412,0.22776 -0.24398,0.15184,0.15299,0.15874,0.1737,-0.21637,-0.21867,0.14608,0.16334,0.1691,-0.24168,-0.21867,0.14378,0.1714,0.16795,-0.26814,-0.25549,0.15759,0.1737,0.17025,-0.26239,-0.26009,-0.25779,0.1668,0.176 0.056318,0.072285,0.055747,0.064871,0.25647,0.071714,0.070004,0.06202,0.064871,0.15953,0.070004,0.067723,0.057458,0.16352,0.16409,0.08369,0.067723,0.079128,0.072285,0.18063,-0.38848,-0.38848,-0.38905,-0.38619,-0.38791 0.23879,-0.18477,-0.18894,-0.18515,-0.15178,0.24865,-0.15444,-0.1624,-0.1624,-0.14951,0.28391,0.20883,-0.16013,-0.15178,-0.15178,0.28353,0.28543,0.16295,-0.15444,-0.15254,0.27519,0.26836,0.1656,-0.15444,-0.15671 0.24758,0.24804,0.29801,-0.15881,-0.15766,0.23612,0.23567,-0.16431,-0.1611,-0.15674,0.23567,0.23406,-0.1611,-0.16247,-0.16316,0.23681,0.23521,-0.16545,-0.16591,-0.16408,0.23796,-0.16706,-0.16591,-0.16637,-0.16499 0.074576,0.1024,-0.036731,-0.315,-0.37065,0.13023,0.1024,-0.092385,-0.25935,-0.23152,0.074576,0.18588,0.046749,-0.20369,-0.28717,0.13023,0.35284,0.046749,-0.064558,-0.23152,0.29719,0.26936,0.24154,0.046749,-0.0089046 -0.18153,-0.24105,-0.26557,-0.25506,-0.27257,0.0040619,-0.065971,-0.093985,-0.16752,-0.18153,0.25618,0.070593,0.011065,-0.051965,-0.129,0.33322,0.21066,0.070593,-0.0064431,-0.10799,0.39275,0.35773,0.27719,0.056587,-0.02045 -0.39522,-0.39708,-0.39824,-0.39754,-0.39453,0.11441,0.11464,0.11371,0.11348,0.11278,0.04644,0.038553,0.11533,0.11371,0.11417,0.042728,0.11185,0.11093,0.10907,0.10791,0.034841,0.11742,0.11742,0.11696,0.11626 -0.26565,-0.29379,0.15646,0.13536,0.12129,-0.26565,-0.25861,0.19164,0.17757,0.12832,-0.18123,-0.30082,0.19164,0.1635,0.15646,-0.13902,-0.30082,0.065005,0.19164,0.15646,-0.026452,-0.30082,0.12129,0.19867,0.17757 -0.121,-0.08521,-0.121,0.30381,0.075065,-0.18791,-0.18791,-0.16768,0.30225,0.2509,-0.24549,-0.18013,-0.11322,0.25868,0.20733,-0.24237,-0.18324,-0.040084,0.25868,0.10463,-0.24549,-0.21281,0.24312,0.22134,0.10774 0.33829,0.30649,0.29915,0.27958,0.26979,-0.13631,-0.12897,0.28691,0.28936,0.25511,-0.1461,-0.14365,-0.12897,-0.12164,-0.10696,-0.1461,-0.15099,-0.1461,-0.13142,-0.12897,-0.14365,-0.14365,-0.1461,-0.1461,-0.12897 -0.25295,-0.2533,0.11094,0.10453,0.10631,-0.25259,-0.26043,0.11379,0.11058,0.10773,-0.25401,-0.26292,0.1145,0.11201,0.10952,-0.2533,-0.25473,0.13553,0.12983,0.13411,-0.25401,0.14943,0.14195,0.21465,0.40283 0.28193,0.2999,-0.096125,-0.094327,-0.10092,0.46586,0.30409,-0.10631,-0.10811,-0.15843,0.22022,0.26994,-0.16562,-0.1129,-0.15724,0.21123,-0.15843,-0.15903,-0.12848,-0.16263,0.20644,-0.15664,-0.15724,-0.10391,-0.13327 -0.16013,-0.057482,-0.0061588,0.045164,0.045164,-0.16013,-0.0061588,0.14781,0.12215,0.25046,-0.13447,-0.13447,0.070826,0.12215,0.32744,-0.28844,-0.18579,-0.0061588,0.27612,0.32744,-0.41674,-0.26277,-0.23711,0.045164,0.27612 -0.20541,-0.1662,0.26061,0.36591,0.18668,-0.20765,-0.16956,0.15419,0.21244,0.16987,-0.20541,-0.16508,-0.14491,0.15307,0.14523,-0.20877,-0.20429,-0.1886,0.17211,0.16875,-0.20429,-0.183,-0.17964,0.26621,0.17771 -0.14475,-0.11956,-0.1218,-0.11844,-0.12068,-0.20464,-0.19456,-0.11564,-0.11788,-0.11508,-0.20912,-0.21583,-0.11452,-0.1162,-0.1162,-0.21359,0.32543,0.2633,0.25154,0.24875,0.29632,0.23979,0.23811,0.24539,0.24986 0.1077,0.10214,0.097978,0.10214,-0.34059,0.11013,0.13027,0.12749,0.12784,-0.33469,0.13409,0.13235,0.12055,-0.30274,-0.33712,0.13235,0.13166,0.11812,-0.30343,-0.3392,0.16847,0.17194,0.10492,0.11221,-0.27461 -0.1512,-0.15247,-0.15357,-0.15302,-0.15302,-0.15065,-0.15247,-0.15357,-0.15375,-0.15539,0.13094,-0.15174,-0.15357,-0.15503,-0.15794,0.12639,0.11363,0.1129,0.34911,-0.15739,0.32451,0.32451,0.33763,0.34948,0.13568 -0.28801,-0.28846,0.13362,0.15805,0.072093,-0.28937,-0.29027,0.13769,0.15081,0.15895,-0.28982,-0.29525,0.13814,0.13995,0.1499,-0.29163,0.12909,0.13181,0.1404,0.15081,-0.29253,0.12593,0.13,0.13724,0.14086 0.17413,0.25118,0.19981,0.10992,-0.22396,0.16129,0.16129,0.2255,0.032874,-0.12122,0.16129,0.08424,0.12276,-0.0056502,-0.28816,0.10992,0.10992,0.020033,-0.12122,-0.37805,0.071399,-0.018492,-0.031333,-0.26248,-0.54499 -0.18726,-0.1861,-0.15601,-0.10046,0.1773,-0.16527,-0.17337,-0.16643,0.28262,0.17383,-0.15254,-0.15948,-0.16874,0.27799,0.23864,-0.15948,-0.15369,-0.16295,0.26989,0.25948,-0.16643,-0.16758,0.26295,0.25716,0.22591 0.14565,0.1516,0.41338,0.33008,0.23886,0.10202,0.17738,-0.014993,0.25076,0.22497,0.18134,-0.094321,-0.12209,-0.072506,-0.090354,-0.05664,-0.17365,-0.17167,-0.14588,-0.24504,-0.052674,-0.19745,-0.20141,-0.29462,-0.28272 0.2283,0.22287,0.21231,0.20463,0.19472,0.22926,0.22574,0.21071,0.20047,0.19408,-0.074284,-0.074284,-0.075883,-0.077163,-0.076203,-0.39862,-0.077483,-0.076843,-0.078442,-0.078442,-0.39798,-0.39798,-0.079402,-0.080681,-0.079402 0.0058896,-0.19043,-0.16589,0.079509,0.34945,-0.06773,-0.14135,-0.16589,0.12859,0.30037,-0.23951,-0.11681,-0.11681,0.0058896,0.47215,-0.09227,-0.16589,-0.04319,0.054969,0.32491,-0.04319,-0.21497,-0.26405,0.030429,0.27583 0.32053,-0.071006,-0.094816,-0.12789,-0.13847,0.30995,-0.06307,-0.12392,-0.13714,-0.13847,0.30201,-0.067038,-0.097462,-0.12789,-0.14111,0.31789,-0.076297,-0.084234,-0.13053,-0.13714,0.33773,0.50043,-0.076297,-0.12656,-0.12921 0.12362,0.15438,0.00055935,-0.13648,-0.13928,0.3082,0.14319,-0.038595,-0.12529,-0.13648,0.25786,0.19353,-0.044189,-0.11411,-0.1169,0.21591,0.19353,-0.019018,-0.10012,-0.088937,0.17675,0.12921,-0.046985,-0.10012,-0.69024 0.012603,-0.13664,-0.23614,-0.18639,-0.18639,0.012603,-0.086893,-0.086893,-0.13664,-0.13664,0.095516,-0.086893,-0.13664,-0.18639,-0.086893,0.26134,-0.086893,-0.086893,-0.086893,-0.13664,0.46034,0.394,0.32767,0.31109,0.21159 0.1159,0.11639,0.14476,-0.25293,-0.25608,0.1193,0.14233,0.14549,-0.25584,-0.25535,0.13894,0.14088,0.14379,0.14258,-0.32616,0.13603,0.13797,0.13967,0.14088,-0.32422,0.13627,0.13724,0.14088,-0.32325,-0.32543 -0.098157,-0.095869,-0.095369,0.35527,0.35084,-0.0988,-0.095869,-0.09301,-0.093296,0.35262,-0.1492,-0.09494,-0.092724,-0.093653,0.3547,-0.15005,-0.15005,-0.09301,-0.092867,0.3547,-0.14991,-0.15127,-0.14198,-0.092367,0.35427 0.16306,0.13146,0.16306,0.13146,0.13672,0.14726,0.14726,0.11566,0.13146,0.13146,0.11039,0.12619,0.11039,0.13146,0.11566,-0.32148,-0.15821,-0.037078,0.036656,0.07879,-0.44262,-0.38995,-0.40575,-0.27408,-0.079212 -0.15897,-0.10095,-0.21699,-0.12996,-0.10095,-0.21699,-0.071945,-0.042935,-0.042935,-0.042935,-0.15897,-0.12996,-0.013925,-0.10095,0.015085,-0.013925,-0.15897,-0.042935,-0.071945,0.015085,0.30519,0.18915,0.24717,0.45024,0.59529 -0.13796,-0.13669,-0.13955,0.28879,0.28942,-0.13764,-0.13764,-0.13859,0.28497,0.29197,-0.13541,-0.13732,-0.13796,0.28815,0.29642,-0.1351,-0.137,-0.13923,-0.14336,0.29642,-0.12365,-0.13605,-0.13891,-0.13987,0.29578 -0.20604,-0.18744,-0.15025,-0.20604,-0.29902,-0.075871,-0.094466,-0.20604,-0.13166,-0.15025,0.14728,0.054299,-0.020083,-0.020083,-0.15025,0.29604,0.35183,0.072895,-0.075871,-0.11306,0.38902,0.37043,0.27745,0.14728,-0.020083 0.15187,0.14943,0.1548,0.13772,0.026483,0.20017,0.19773,0.19481,0.16992,0.021116,0.26897,0.26311,0.26262,0.18846,-0.22478,-0.21112,-0.21112,-0.21307,-0.21405,-0.22137,-0.21502,-0.21356,-0.21649,-0.21502,-0.23161 0.24118,0.030574,0.021496,0.33195,-0.31619,0.1159,0.023312,0.017865,0.016049,-0.33435,0.22302,0.059622,-0.0039216,-0.014815,-0.37066,0.24662,0.092302,0.0033406,-0.012999,-0.34524,0.25025,0.10138,0.014234,-0.002106,-0.38882 -0.063758,0.17125,0.2019,0.23255,0.26321,-0.33963,-0.11485,0.12016,0.14059,0.16103,-0.34985,-0.26811,0.017983,0.14059,0.14059,-0.29876,-0.10463,0.058854,0.15081,0.10994,-0.32942,-0.30898,-0.0024522,0.12016,0.15081 0.13948,0.15551,0.23968,0.24368,0.34789,0.0072143,0.063326,0.079358,0.18356,0.36392,-0.10501,-0.076953,-0.032865,0.01523,0.28376,-0.22525,-0.18517,-0.1531,-0.088977,-0.0088175,-0.31743,-0.30541,-0.2533,-0.18517,-0.18517 -0.29189,-0.29158,-0.29158,-0.29189,-0.2922,-0.29189,-0.28812,-0.29001,0.12942,0.12754,0.1492,0.14229,0.13915,0.13601,0.12565,0.16113,0.15359,0.13319,0.12816,0.12502,0.1561,0.15296,0.12565,0.12188,0.1222 -0.13668,-0.13668,-0.1362,-0.13597,-0.13597,-0.13525,-0.13691,-0.13597,-0.13739,-0.13739,-0.13644,-0.13573,-0.13336,-0.13668,-0.13644,0.24862,0.26215,0.26215,-0.13003,-0.13407,0.25195,0.25954,0.2676,0.37556,0.37959 -0.16115,-0.16115,-0.016309,-0.028115,-0.022644,-0.17641,-0.16431,-0.028691,-0.023508,0.35802,-0.17929,-0.17382,-0.028403,0.29064,0.44182,-0.17526,-0.179,-0.024084,0.29064,0.29352,-0.15827,-0.17756,-0.18159,0.096566,0.28834 0.26462,-0.050796,-0.049879,-0.052745,-0.038877,0.26462,-0.051484,-0.17435,-0.053891,-0.03773,0.26794,-0.053318,-0.17355,-0.17423,-0.056871,0.26668,-0.052859,-0.17355,-0.17423,-0.17412,0.61315,0.26657,-0.054005,-0.17389,-0.1732 0.52636,0.35372,-0.049107,-0.07788,0.037214,0.50718,0.28658,-0.049107,-0.13543,-0.068289,0.17149,0.037214,-0.07788,-0.12584,-0.10665,-0.058698,-0.087472,-0.13543,-0.13543,-0.13543,-0.1642,-0.13543,-0.13543,-0.12584,-0.11625 0.14731,0.34115,0.21193,0.34115,0.27654,0.082703,-0.014215,-0.014215,0.24423,0.050397,0.11501,-0.014215,0.11501,0.082703,0.050397,-0.04652,-0.17574,-0.17574,-0.014215,-0.20805,-0.17574,-0.30497,-0.24036,-0.30497,-0.36958 0.079718,0.079718,-0.13381,-0.34734,-0.34734,0.20428,0.23987,0.0085412,-0.25837,-0.25837,0.15089,0.27545,0.061924,-0.044841,-0.13381,0.1331,0.25766,0.11531,-0.15161,-0.18719,0.0085412,0.32884,0.23987,-0.1694,-0.15161 0.17324,0.25017,0.30423,-0.11369,0.2377,0.17324,0.23354,0.17116,0.20651,0.20651,0.16492,0.19403,0.11502,-0.16775,-0.099137,-0.16359,-0.18231,-0.19062,-0.16567,-0.20518,-0.1927,-0.20726,-0.23221,-0.24468,-0.26547 -0.65352,-0.047545,0.045681,0.092294,0.23213,-0.2573,-0.11746,0.022374,0.092294,0.25544,-0.2573,-0.047545,0.092294,0.23213,0.18552,-0.18738,0.022374,0.045681,0.13891,0.20883,-0.18738,-0.14077,-0.00093226,0.16221,0.068987 0.11824,0.11278,0.11493,-0.31774,-0.32042,0.17098,0.11278,0.11412,-0.31774,-0.32051,0.1725,0.11341,0.12011,0.1227,-0.31952,0.11225,0.11207,0.11672,0.15989,-0.32024,0.1109,0.11555,0.11761,0.11949,-0.32086 0.16263,0.20819,0.27198,-0.18517,-0.22162,0.16415,0.2249,-0.14264,-0.15479,-0.22466,0.18845,0.19149,0.3054,-0.15783,-0.23681,0.18238,0.23705,-0.15176,-0.19125,-0.20491,0.10796,0.2006,-0.16391,-0.21706,-0.19276 -0.2889,-0.16145,-0.033989,0.093469,0.26341,-0.33139,-0.16145,0.050983,0.13595,0.17844,-0.20393,0.13595,-0.076475,0.0084972,0.39087,-0.24642,-0.33139,0.13595,-0.076475,0.3059,-0.16145,-0.033989,0.0084972,0.13595,0.26341 -0.13462,-0.13644,-0.13753,0.29012,0.29303,-0.13535,-0.13462,-0.13972,0.29085,0.29267,-0.13426,-0.13681,-0.14117,0.28939,0.29194,-0.13608,-0.13499,-0.13753,-0.14117,0.29049,-0.13753,-0.13571,-0.13863,-0.14008,0.29376 -0.40303,-0.39746,-0.39799,-0.39772,-0.39728,0.10589,0.15873,0.11058,0.10625,0.10625,0.094209,0.097041,0.10864,0.10748,0.10625,0.091642,0.090757,0.074117,0.10359,0.1066,0.085623,0.083765,0.075976,0.074648,0.10545 -0.24322,-0.23983,-0.24247,0.22293,0.20088,-0.2404,-0.24153,-0.24398,0.18335,0.18297,-0.24077,-0.24228,0.18674,0.18636,0.18316,-0.24115,-0.081492,0.17468,0.1809,0.18335,-0.083377,-0.082623,0.17242,0.18109,0.18429 -0.13733,-0.13636,-0.13746,-0.1365,-0.13705,-0.13623,-0.13623,-0.13664,-0.13691,-0.13691,-0.13609,-0.1365,-0.13691,-0.13678,-0.13801,0.29325,0.29737,0.29916,-0.13664,-0.13788,0.22559,0.29545,0.30053,0.30328,0.31181 0.30801,0.32162,0.32562,-0.14523,-0.15163,0.31201,0.32402,-0.13882,-0.14763,-0.15163,0.31441,0.14465,-0.13642,-0.14683,-0.15884,0.13664,-0.13482,-0.13321,-0.14362,-0.16044,0.13184,-0.13562,-0.13321,-0.13882,-0.16204 0.2119,0.38741,0.29573,0.30009,0.31385,0.2119,0.29005,0.2942,-0.13388,-0.1354,-0.12733,-0.12689,-0.13191,-0.13278,-0.12995,-0.12907,-0.13126,-0.12907,-0.14217,-0.12995,-0.14632,-0.14654,-0.14545,-0.14304,-0.14414 -0.3909,0.12493,0.048811,0.048442,0.055093,-0.3909,0.0756,0.15246,0.053799,0.058049,-0.39274,0.07948,0.14433,0.059157,0.059527,-0.39145,0.078926,0.14525,0.14174,0.062113,-0.38868,0.15153,0.21065,0.14414,0.060635 -0.084773,-0.068304,-0.0462,-0.069604,-0.075238,-0.071771,-0.062236,-0.035799,-0.075238,-0.089541,-0.063537,-0.06137,-0.054435,-0.084773,-0.08824,-0.066137,-0.082173,-0.063103,0.1588,-0.087807,0.041346,0.13409,-0.06137,0.1445,0.91291 -0.36902,-0.3699,-0.37012,-0.37056,-0.37012,0.05633,0.05633,0.053695,0.054353,0.053695,0.059624,0.059184,0.05611,0.05611,0.054573,0.062259,0.060282,0.059624,0.058965,0.057428,0.23661,0.28339,0.35058,0.060941,0.059624 0.066065,0.066065,0.079122,0.072594,-0.41049,0.059537,0.066065,0.079122,0.10523,-0.14937,0.072594,0.092178,0.11176,0.10523,-0.44313,0.10523,0.079122,0.11176,0.11829,-0.60634,0.10523,0.15093,0.079122,0.13135,-0.24729 -0.10323,-0.1409,-0.15974,-0.19741,-0.15974,-0.027879,-0.046716,-0.1409,-0.12206,-0.21625,0.047469,-0.08439,-0.1409,-0.08439,-0.10323,0.40537,0.14165,-0.0090417,-0.027879,-0.065553,0.55607,0.48072,0.085143,0.10398,0.0097952 -0.13121,-0.14651,-0.13667,-0.12903,-0.12903,-0.099535,-0.12794,-0.11046,-0.1039,-0.11701,-0.042733,-0.095165,-0.094073,-0.085334,-0.068949,0.34614,-0.066764,-0.058025,-0.040548,-0.040548,0.53184,0.53621,0.33085,0.058856,0.019531 -0.35526,0.09978,0.0065789,0.14364,0.17105,-0.39364,0.077851,-0.0098684,0.12719,0.16009,-0.37171,0.050438,0.023026,0.12719,0.12171,-0.38816,0.11075,0.033991,0.077851,0.12171,-0.41557,0.077851,0.017544,0.18202,0.20395 0.22605,0.2098,0.18734,0.16883,0.15343,0.23184,0.21376,0.19539,0.17138,0.15965,-0.20866,0.22195,-0.19976,0.18282,0.16403,-0.20979,-0.19976,-0.20202,-0.21686,-0.21587,-0.20315,-0.20061,-0.20089,-0.21304,-0.21587 0.23332,0.23294,0.36449,0.36599,0.3773,0.21635,0.245,0.25706,-0.13343,-0.13305,-0.13268,-0.13079,-0.13042,-0.13192,-0.13494,-0.13682,-0.13607,-0.13645,-0.13645,-0.13645,-0.13682,-0.13833,-0.13645,-0.13607,-0.13532 -0.17965,-0.1411,-0.19892,-0.12182,0.41789,-0.10255,-0.083271,-0.1411,-0.12182,0.41789,-0.10255,-0.044719,-0.083271,-0.10255,0.41789,-0.17965,0.013107,-0.063995,-0.083271,0.36007,-0.063995,-0.025444,-0.063995,-0.044719,0.32152 0.14129,0.13235,0.13414,0.14576,0.14576,0.14039,0.12877,0.13682,0.14978,0.13324,0.12877,0.26332,0.15202,0.16006,0.12564,-0.3294,0.13771,-0.28292,-0.22481,-0.22078,-0.32672,-0.3151,-0.21095,-0.22168,-0.22346 0.18886,0.19126,0.19006,0.18825,0.18825,0.19066,0.19066,0.18825,0.19006,0.18886,0.074638,0.072233,0.074037,0.072233,-0.25419,0.074037,0.069829,-0.26501,-0.26741,-0.26982,-0.26982,-0.27282,-0.26741,-0.19648,-0.26922 -0.14148,-0.061628,0.21551,0.35173,0.37052,-0.15088,-0.13678,-0.056931,0.29536,0.36582,-0.16966,-0.14148,-0.1039,0.074592,0.33294,-0.15557,-0.16966,-0.15088,-0.1086,0.20142,-0.16966,-0.16497,-0.14618,-0.14148,-0.038142 -0.28616,-0.30575,0.16204,0.15224,0.15224,-0.28677,-0.28371,0.17306,0.14979,0.15469,-0.28738,-0.30085,0.17183,0.16081,0.15591,-0.28616,0.11183,0.10938,0.11918,0.11673,-0.28249,0.10387,0.10326,0.10938,0.11305 -0.10119,-0.060156,-0.052079,0.018997,0.13401,-0.099248,-0.063387,-0.065325,-0.065002,0.12496,-0.099571,-0.094402,-0.060802,-0.058864,0.13046,-0.098602,-0.087617,-0.057248,0.021258,-0.061771,-0.054664,-0.050787,-0.054664,-0.064356,0.92005 -0.28373,-0.26713,-0.28639,-0.31361,-0.31361,-0.26979,-0.13963,-0.12503,0.23223,-0.30963,0.087468,0.098092,0.087468,0.21496,0.12997,0.090124,0.14059,0.20766,0.1386,0.13926,0.14856,0.1386,0.20168,0.12333,0.12997 -0.13814,-0.14068,-0.14068,-0.14004,-0.14195,-0.121,-0.13687,-0.13877,-0.14004,-0.13814,-0.12608,-0.13687,-0.13941,-0.13433,-0.13877,0.33916,0.32774,0.26427,-0.14195,-0.12989,0.3087,0.2814,0.24967,0.27061,0.28204 -0.24825,-0.26002,0.17622,0.17779,0.16288,-0.25217,-0.25217,0.17465,0.17465,0.1621,-0.26551,-0.26159,0.14484,0.16681,0.17936,-0.26943,0.12365,0.13464,0.14719,0.013024,-0.27728,-0.27806,0.10012,0.13307,0.19348 0.14985,0.1538,-0.22055,-0.25482,-0.26141,0.15512,0.16039,0.16171,-0.26141,-0.2825,0.15116,0.14721,0.15644,-0.27987,-0.28909,0.14457,0.14853,0.13798,0.1538,-0.26405,0.14985,0.14721,0.13798,0.1393,-0.28118 0.019656,-0.013104,-0.083306,-0.11841,-0.13479,0.012636,0.024337,-0.092666,-0.12309,-0.13479,0.066458,0.071138,-0.092666,-0.12309,-0.13947,0.62807,0.089858,-0.052885,-0.11373,-0.13245,0.62573,0.094538,-0.050545,-0.10203,-0.12543 0.17524,0.18004,0.17944,0.17914,-0.22557,0.17749,0.17764,0.18034,-0.22451,-0.22632,0.17554,0.17809,0.18004,-0.22587,-0.22587,0.17554,0.17403,-0.22722,-0.22587,-0.22632,0.17223,0.17704,-0.22587,-0.22512,-0.22331 -0.13899,-0.07343,0.024914,0.29809,0.64776,-0.10621,-0.095285,-0.062503,0.046768,0.47293,-0.11714,-0.10621,-0.13899,0.024914,0.25438,-0.10621,-0.07343,-0.13899,-0.062503,0.0030596,-0.11714,-0.14992,-0.13899,-0.084358,-0.062503 0.30814,0.16806,0.19603,0.19511,0.13547,0.17037,0.1787,0.3449,0.13639,0.13547,-0.20249,-0.20503,0.1387,0.13454,0.1884,-0.20017,-0.20318,-0.20064,-0.19833,-0.2041,-0.20434,-0.2011,-0.2048,-0.20434,-0.20179 -0.13762,-0.13873,-0.13762,-0.13784,-0.13695,-0.13695,-0.13718,-0.13695,-0.13784,-0.13673,-0.13718,-0.13673,-0.13629,-0.1354,-0.13474,0.4619,0.37359,0.15815,0.064736,0.028569,0.43794,0.36428,0.08049,0.064736,0.02036 0.10205,0.31827,0.31827,0.51287,0.448,-0.049298,0.037189,-0.049298,0.037189,0.080433,-0.11416,-0.11416,-0.17903,-0.17903,0.037189,-0.20065,-0.17903,-0.049298,-0.17903,0.037189,-0.049298,-0.26551,-0.13578,-0.11416,-0.070919 0.10229,0.098623,-0.13771,-0.13251,-0.12671,0.1032,0.1029,-0.12183,-0.13404,-0.13709,0.33465,0.338,-0.13954,-0.13923,-0.14015,0.39449,0.33342,-0.14137,-0.14045,-0.14442,0.40029,-0.14137,-0.14015,-0.14381,-0.14748 -0.21962,-0.21896,0.22691,0.23091,0.23224,-0.22051,-0.21807,0.060737,0.051629,0.23357,-0.21629,0.036745,0.048963,0.054961,0.34732,-0.2154,-0.21429,0.051185,0.058071,0.41263,-0.21607,-0.21474,-0.21251,0.058516,0.06207 -0.033526,0.012191,-0.033526,0.14934,0.91131,-0.033526,-0.079244,-0.12496,0.012191,0.14934,0.04267,-0.12496,-0.064005,-0.0030478,0.027431,-0.064005,-0.018287,-0.1402,-0.079244,-0.079244,-0.064005,-0.079244,-0.1402,-0.064005,-0.079244 0.18107,0.18772,0.1905,0.19931,0.0902,0.022045,0.18617,0.19436,0.19622,0.0902,0.28493,0.28338,0.19545,-0.21534,0.090818,-0.21688,-0.21719,-0.2175,-0.21874,-0.21797,-0.21735,-0.2175,-0.21719,-0.21812,-0.21858 0.11485,-0.0086449,-0.19389,-0.37914,-0.28652,0.11485,0.083979,-0.0086449,-0.22477,-0.22477,0.3001,0.053105,0.02223,-0.25564,-0.28652,0.3001,0.11485,0.11485,-0.0086449,-0.070395,0.36185,0.23835,0.11485,0.14573,-0.13214 -0.14858,-0.14858,-0.027455,0.053295,0.17442,-0.31008,0.09367,0.01292,0.25517,0.41667,-0.22933,-0.10821,0.13405,-0.027455,0.13405,-0.31008,-0.14858,0.053295,0.01292,0.2148,-0.35046,-0.18896,0.09367,-0.027455,0.3763 -0.085788,-0.14592,-0.15594,-0.21607,-0.21607,-0.065744,-0.14592,-0.14592,-0.12588,-0.18601,0.23492,-0.0056123,-0.1359,-0.20605,-0.15594,0.30507,0.32511,0.074564,-0.065744,-0.15594,0.35518,0.31509,0.31509,0.23492,0.05452 -0.14842,-0.17951,-0.20024,-0.23651,-0.23651,0.079598,-0.12251,-0.2106,-0.2106,-0.26761,0.2247,0.18842,-0.081048,-0.16396,-0.2106,0.25579,0.2247,0.20397,0.08478,-0.13805,0.24543,0.24543,0.23506,0.23506,0.18324 0.47333,0.21242,-0.15955,-0.15907,-0.16101,0.20223,0.21339,-0.15858,-0.15713,-0.16198,0.2066,0.21726,0.21096,-0.1581,-0.15713,0.21678,0.2066,-0.14985,-0.15519,-0.15713,0.21242,-0.16004,-0.15664,-0.15713,-0.16343 -0.16889,-0.16478,-0.16444,-0.16512,-0.16735,-0.16393,-0.16085,-0.16393,-0.16358,-0.1641,0.24461,-0.14871,-0.16324,-0.1629,-0.1641,0.24512,0.24529,0.24478,0.24461,-0.16324,0.24495,0.24444,0.24512,0.24512,0.24512 -0.21487,-0.21808,-0.22452,-0.20361,-0.21487,-0.17949,-0.17627,-0.17466,-0.15375,-0.15536,-0.15214,-0.20361,-0.17627,0.29979,0.14056,0.22902,0.22741,0.28209,0.18399,0.14378,0.22098,0.22902,0.19203,0.16147,0.13735 0.37086,0.38667,0.3679,0.33084,0.30218,-0.11532,-0.10741,-0.11581,0.37136,-0.10494,-0.1089,-0.1168,-0.11137,-0.11236,-0.11631,-0.11087,-0.11532,-0.11137,-0.10939,-0.11285,-0.11186,-0.11186,-0.11334,-0.11038,-0.11334 -0.00041228,-0.062255,-0.00041228,-0.10348,-0.22717,0.10266,0.10266,0.030509,-0.00041228,-0.22717,0.18512,0.15419,0.13358,0.06143,-0.19625,0.24696,0.15419,0.14389,0.092352,-0.45393,0.24696,0.13358,0.092352,-0.031334,-0.57761 -0.14993,-0.15064,-0.15064,-0.14958,-0.15029,-0.14958,-0.14887,-0.14993,-0.15064,-0.14958,-0.14745,-0.15082,-0.14922,-0.14958,-0.15064,0.24225,0.23409,0.32579,0.32278,0.24668,-0.14106,0.24934,0.25076,0.25041,0.26637 -0.021605,-0.14266,-0.086791,-0.058854,0.52782,-0.068166,-0.11473,-0.12404,-0.15198,0.31364,-0.058854,-0.12404,-0.13335,-0.086791,0.33226,-0.11473,-0.16129,-0.10542,-0.021605,0.26708,-0.14266,-0.12404,-0.11473,0.062206,0.45332 -0.089638,-0.18952,-0.1765,-0.21124,-0.22861,0.023278,-0.076609,-0.18084,-0.21124,-0.20255,0.12751,0.075393,-0.028837,-0.15044,-0.20255,0.3794,0.18397,0.07105,0.0015634,-0.13307,0.45323,0.37505,0.23174,0.12317,0.036307 0.20222,-0.20921,-0.20938,-0.2087,-0.2087,0.18781,0.18747,0.20205,-0.20819,-0.20887,0.1895,0.18848,0.18899,-0.20768,-0.20802,0.18848,0.19222,0.19018,-0.207,-0.207,0.19086,0.19476,0.19459,-0.20683,-0.20802 -0.15015,-0.15015,-0.15042,-0.15015,-0.15042,-0.14988,-0.14933,-0.15015,-0.15042,-0.15097,-0.15015,-0.14933,-0.1496,-0.14933,-0.15097,0.26318,0.26537,0.26687,0.26619,0.27124,-0.14851,0.26537,0.26687,0.2651,0.26974 -0.071394,-0.12389,-0.28138,-0.33387,-0.61385,0.033597,-0.0013999,-0.12389,-0.17639,-0.17639,0.033597,0.051096,0.051096,-0.0013999,0.051096,0.19108,0.13859,0.13859,0.051096,0.10359,0.24358,0.27858,0.19108,0.13859,0.20858 0.28838,0.24759,0.21955,0.18386,0.15581,0.27563,0.24249,0.21955,0.041095,-0.10931,0.27308,0.25014,-0.12716,-0.16285,-0.19089,-0.11696,-0.14755,-0.18834,-0.19089,-0.19599,-0.145,-0.18834,-0.20874,-0.20364,-0.22148 0.16719,0.11091,-0.18379,-0.14869,-0.15596,0.15387,0.11757,-0.17229,-0.15475,-0.17229,0.16114,0.12483,-0.16261,-0.16685,-0.17229,0.17505,0.13088,0.12725,-0.17411,-0.16927,0.65251,0.12301,0.11999,-0.15838,-0.1729 -0.25314,-0.079281,0.23367,0.094581,0.26844,-0.11405,-0.14883,0.094581,0.23367,0.30322,-0.35746,0.094581,-0.044509,-0.0097363,0.26844,-0.25314,-0.32269,0.059809,0.12935,0.1989,-0.25314,-0.21837,-0.11405,-0.0097363,0.1989 0.18467,-0.07807,-0.07807,-0.07807,-0.1156,0.2222,-0.2282,-0.15314,0.034531,-0.2282,0.3348,-0.07807,-0.040536,-0.15314,-0.2282,0.48493,0.2222,-0.07807,-0.19067,-0.1156,0.40987,0.18467,-0.07807,-0.07807,-0.07807 -0.19293,-0.25175,0.10117,0.1894,0.36586,-0.31057,-0.19293,-0.045879,-0.045879,0.1894,-0.13411,-0.22234,0.01294,-0.045879,0.15999,-0.16352,-0.16352,-0.13411,0.33645,0.33645,-0.25175,0.04235,0.07176,0.07176,0.27763 0.26601,0.10916,0.36012,0.10916,0.32875,0.20327,0.10916,0.20327,0.29738,0.046426,-0.047681,-0.17316,0.015057,0.015057,0.015057,-0.11042,-0.11042,-0.2359,0.015057,-0.20453,-0.17316,-0.20453,-0.17316,-0.26726,-0.39274 0.10619,0.075717,0.014778,0.14427,-0.31658,0.12142,0.45659,0.12904,0.052865,-0.3699,0.060482,0.068099,0.068099,0.068099,-0.40037,0.052865,0.083334,0.060482,0.03763,-0.3699,0.03763,0.090951,0.075717,0.022395,-0.3699 -0.14626,0.11492,0.11492,0.11492,0.3108,-0.27685,-0.11361,-0.015671,-0.080965,0.24551,-0.080965,-0.11361,-0.11361,0.24551,0.14756,-0.37479,-0.11361,-0.048318,0.21286,0.24551,-0.44008,-0.17891,-0.015671,0.08227,0.27815 -0.32582,-0.32895,0.1614,0.16166,0.14757,-0.3253,-0.33156,0.14522,0.14966,0.14444,-0.32661,-0.33104,0.14131,0.1507,0.14548,-0.066682,-0.070597,0.14287,0.16297,0.14392,-0.065638,-0.067726,0.15618,0.14235,0.14418 0.2943,0.29249,0.29249,0.27077,-0.11837,0.29249,0.2943,0.28887,0.29611,-0.078553,-0.14733,-0.15276,-0.11656,-0.12742,-0.094843,-0.15819,-0.15095,-0.14371,-0.14371,-0.12742,-0.15638,-0.15638,-0.15457,-0.15276,-0.1419 0.13532,0.24217,0.067554,-0.03409,-0.19568,0.31254,0.41158,0.11447,-0.12791,-0.23217,0.39334,0.27345,0.031067,-0.14877,-0.18004,0.067554,0.062342,-0.07579,-0.21653,-0.21653,0.010217,-0.07579,-0.16962,-0.21132,-0.23738 0.2886,0.28708,0.28708,0.29193,0.29374,0.29374,-0.14687,0.28648,0.28981,-0.081158,-0.14748,-0.14778,-0.14869,-0.078735,-0.078433,-0.14778,-0.14869,-0.1496,-0.14748,-0.14536,-0.15051,-0.1496,-0.1496,-0.15051,-0.1502 0.18743,0.19205,0.20779,-0.1741,-0.1741,0.18558,0.26362,0.20347,-0.17595,-0.17688,0.1902,0.26455,-0.17348,-0.17595,-0.1778,0.25652,0.24665,-0.17503,-0.17503,-0.17719,0.26856,-0.1778,-0.17688,-0.17688,-0.17935 0.14874,0.45962,0.45326,0.62697,0.093127,-0.072112,-0.084822,-0.096474,-0.086941,-0.076349,-0.081645,-0.092237,-0.091707,-0.091707,-0.091707,-0.093296,-0.090648,-0.091707,-0.092237,-0.091707,-0.091178,-0.091178,-0.090648,-0.093296,-0.090119 -0.38812,-0.38851,-0.38851,-0.38812,-0.38832,0.14761,0.13768,0.12989,0.095209,0.011829,0.13709,0.13144,0.12833,0.12755,0.0044261,0.12677,0.12521,0.12618,0.081377,-0.010185,0.12735,0.12716,0.12833,0.081377,-0.023042 0.29857,0.13251,0.01669,-0.047501,-0.041919,0.26647,0.17996,0.12135,-0.30287,-0.33357,0.23438,0.18972,-0.022383,-0.068433,-0.36008,0.33346,-0.076805,0.10321,-0.079596,-0.25124,-0.072619,0.22042,-0.023778,-0.16332,-0.25263 0.41237,0.41368,0.69249,0.11519,0.11466,-0.088535,-0.086697,-0.08591,-0.085647,-0.088273,-0.085385,-0.086435,-0.086697,-0.087485,-0.087485,-0.087222,-0.087748,-0.087748,-0.086697,-0.088273,-0.089323,-0.087748,-0.087748,-0.088535,-0.088798 0.39966,0.29659,0.26628,-0.11265,-0.18085,0.26931,0.26173,-0.082333,-0.16115,-0.17934,0.26173,0.26173,-0.088396,-0.15963,-0.17479,0.26931,-0.052019,-0.11265,-0.12629,-0.15357,-0.10507,-0.13084,-0.14145,-0.14448,-0.18085 -0.087892,-0.054191,0.014896,-0.015435,0.038487,0.032589,-0.025545,-0.054191,-0.037341,0.051125,-0.014593,-0.022175,-0.049136,-0.096318,-0.08705,-0.049136,-0.10559,-0.086207,-0.060932,-0.10222,-0.02049,-0.02049,-0.055034,-0.050821,0.95768 -0.095153,0.082854,0.21231,0.35796,0.27704,0.066672,0.19613,0.14758,0.26086,0.24468,0.099037,0.018124,0.1314,0.0019419,0.14758,-0.062788,-0.22461,-0.25698,-0.25698,-0.20843,-0.20843,-0.25698,-0.20843,-0.20843,-0.25698 0.17314,0.20644,0.28968,0.35627,0.5727,0.13984,0.056604,-0.043285,0.056604,0.0066593,0.039956,0.039956,-0.0099889,-0.076582,-0.059933,-0.059933,-0.076582,-0.15982,-0.17647,-0.20977,-0.29301,-0.17647,-0.15982,-0.20977,-0.22642 -0.21553,-0.21553,0.049467,0.093633,0.22613,-0.17137,-0.083033,-0.038867,0.0053,0.31447,-0.48053,0.049467,0.0053,0.0053,0.22613,-0.21553,-0.30387,-0.038867,0.22613,0.2703,-0.2597,0.1378,0.049467,0.1378,0.22613 -0.17712,-0.19585,-0.15464,-0.13216,0.26118,-0.15839,-0.15464,-0.1434,-0.10969,0.32112,-0.083464,-0.12842,-0.079718,-0.079718,0.35858,-0.06848,-0.10969,-0.046003,0.01019,0.38481,-0.01978,-0.034764,-0.01978,0.01019,0.54964 0.17166,0.17361,0.15542,0.17166,0.17621,0.17166,0.17751,0.16971,0.17491,0.35811,-0.19344,-0.20643,0.17491,0.18011,0.20155,-0.20708,-0.20448,-0.19929,-0.19604,-0.20448,-0.20773,-0.21098,-0.21033,-0.20773,-0.20903 -0.2886,-0.28776,-0.28938,-0.29107,-0.28958,0.085801,-0.28652,-0.2873,0.12097,-0.28074,0.086256,0.12506,0.12513,0.12454,0.12435,0.12454,0.19695,0.19487,0.19637,0.22373,0.11434,0.11434,0.11447,0.11453,0.11473 -0.13596,-0.08318,-0.093736,0.032934,0.82462,-0.1254,-0.1254,-0.062068,-0.040957,0.29683,-0.1254,-0.08318,-0.072624,0.0012667,0.20183,-0.11485,-0.093736,-0.072624,-0.040957,0.19127,-0.10429,-0.10429,-0.030401,-0.051512,0.011823 -0.18167,-0.18167,-0.20177,-0.18167,0.21021,-0.18167,-0.18502,-0.18502,0.069534,0.24036,-0.18502,-0.18837,-0.15153,0.26715,0.25375,-0.17832,-0.17832,0.12647,0.26045,0.24371,-0.18167,-0.047696,0.24371,0.24705,0.24705 -0.11834,-0.11765,-0.12143,0.082623,0.31725,-0.11696,-0.11937,-0.12005,-0.12383,0.32274,-0.11902,-0.12005,-0.11971,-0.12177,0.41687,-0.12005,-0.11868,-0.11937,-0.12143,0.41687,-0.11937,-0.12074,-0.12143,0.30351,0.29938 -0.245,-0.098062,-0.096562,0.18383,0.15234,-0.25175,-0.10031,-0.096562,0.22056,0.15759,-0.2465,-0.23751,-0.23751,0.32552,0.18683,-0.10556,-0.21577,-0.22401,0.29479,0.21682,-0.10931,-0.098062,0.21607,0.20557,0.20257 -0.1238,-0.1238,-0.12299,-0.12407,-0.12272,-0.12434,-0.12353,-0.12461,-0.12434,-0.12407,-0.12353,-0.12434,-0.1238,-0.12299,-0.12407,-0.12191,-0.12461,-0.12245,0.27829,0.27721,0.41752,0.34211,0.34481,0.28313,0.28286 0.11668,0.16251,-0.0021767,-0.083803,-0.083803,0.080882,0.075154,-0.015065,-0.099556,-0.11674,0.066562,0.040785,-0.080939,-0.083803,-0.11674,0.092338,-0.015065,-0.098124,-0.10672,-0.12963,0.87853,-0.10672,-0.13249,-0.12533,-0.11674 0.24162,0.23539,0.23042,0.10535,0.10909,0.24784,0.23415,0.22917,0.23353,0.11842,0.23913,0.22855,-0.17526,-0.18957,-0.17402,-0.18522,-0.1846,-0.1902,-0.19704,-0.19144,-0.18833,-0.1902,-0.19393,-0.19642,-0.19642 -0.11214,0.042838,0.040308,-0.087473,-0.088105,-0.11784,0.046633,0.049796,-0.093166,-0.090635,-0.11847,0.042205,-0.081779,-0.096329,0.042205,-0.12226,0.047266,-0.081779,-0.083677,0.034615,0.92085,0.046633,-0.08937,-0.088738,0.03841 -0.14561,-0.052827,-0.16726,-0.175,-0.15489,0.18069,0.17914,-0.1518,-0.16726,-0.1518,0.25028,0.24873,-0.028083,-0.1317,-0.16262,0.35853,0.26883,-0.086848,-0.13015,-0.14716,0.33688,0.41729,-0.1085,-0.12706,-0.1518 0.11332,0.11401,0.11332,0.11287,0.11196,0.11287,0.11332,0.11196,0.11196,0.11105,0.11287,0.11219,0.11401,0.11059,0.11059,0.11332,0.11264,0.1115,0.11059,-0.36409,-0.34292,-0.34816,-0.35317,-0.36068,-0.36592 0.58622,-0.07478,-0.09481,-0.12819,0.092139,0.57954,-0.028042,-0.09481,-0.10816,-0.10816,0.11217,-0.10816,-0.09481,-0.068103,-0.09481,0.31915,-0.061426,-0.09481,-0.088133,-0.14155,0.11885,-0.10816,-0.10816,-0.088133,-0.11484 -0.0031812,-0.18393,-0.25623,-0.29238,-0.40083,0.14142,-0.024871,-0.18393,-0.249,-0.32853,0.20649,0.15588,0.083579,-0.075482,-0.18393,0.20649,0.22095,0.17757,0.1125,-0.053791,0.20649,0.19203,0.19926,0.20649,0.12696 -0.089273,-0.14461,-0.052383,0.058286,0.59318,-0.070828,-0.14461,-0.070828,0.0029512,0.3534,-0.10772,-0.033938,-0.16305,-0.015494,0.37185,-0.10772,-0.12616,-0.12616,-0.033938,0.31651,-0.033938,-0.1815,-0.23683,-0.12616,0.16895 -0.31515,-0.31515,-0.21748,-0.18492,-0.18492,-0.28259,-0.21748,-0.054696,-0.054696,0.042975,-0.28259,0.010418,-0.022139,0.042975,0.042975,0.27087,0.1732,0.1732,0.042975,0.23832,0.33599,0.1732,0.30343,0.14065,0.14065 -0.15292,-0.092236,-0.15292,-0.11246,-0.15292,-0.092236,-0.15292,-0.15292,-0.092236,-0.15292,0.029127,-0.092236,-0.092236,-0.031554,-0.092236,0.4539,0.15049,-0.031554,-0.031554,-0.092236,0.55503,0.49435,0.029127,0.029127,0.029127 0.18432,0.16622,-0.22069,-0.22381,-0.22943,0.17121,0.17808,-0.22568,-0.22319,-0.22818,0.17184,0.17558,0.17933,-0.22693,-0.22818,0.17309,0.1812,0.17621,-0.23005,-0.22506,0.17621,0.17933,0.17933,0.18931,-0.22007 -0.1374,-0.069516,-0.15098,-0.12383,-0.12383,0.22919,0.18845,-0.083093,-0.15098,-0.15098,0.24276,0.32423,-0.028784,-0.15098,-0.20529,0.26992,0.26992,0.011948,-0.16456,-0.19171,0.28349,0.37854,0.011948,-0.19171,-0.28675 -0.11491,-0.11544,-0.11598,-0.11491,-0.11356,-0.11249,-0.1141,-0.1133,-0.1133,-0.11276,-0.10026,-0.11383,-0.11356,-0.11303,-0.11222,-0.099859,-0.11558,0.35265,-0.11276,-0.11303,0.34836,0.35346,0.35655,0.36327,0.36058 0.027036,0.01004,0.027036,0.22183,0.26236,-0.27496,0.019192,0.01004,0.21268,0.22575,-0.26189,-0.28019,0.013963,0.046646,0.22575,-0.26712,-0.29065,0.087175,0.17215,0.22183,-0.25927,-0.26712,-0.2462,0.18,0.18392 -0.17232,-0.17276,-0.16148,-0.16324,-0.15108,-0.17115,-0.16998,-0.16558,-0.15064,-0.15386,0.2444,-0.16925,-0.1713,-0.15093,-0.16221,0.25613,0.24689,0.24045,0.23766,-0.16089,0.26477,0.25056,0.24396,0.24396,0.21788 0.11689,-0.019028,0.11689,0.01495,-0.35881,0.01495,0.082907,0.082907,0.082907,-0.15494,-0.053006,0.21882,0.18484,0.01495,-0.46074,0.2528,0.082907,0.11689,0.11689,-0.46074,0.082907,0.082907,0.21882,-0.019028,-0.35881 -0.20219,-0.20661,0.21944,0.26718,0.35264,-0.203,-0.2058,0.21383,0.17211,0.16087,-0.20179,-0.20179,0.15325,0.15445,0.15044,-0.20259,-0.20179,-0.20661,0.14683,0.14803,-0.203,-0.20139,-0.2034,0.15285,0.14803 0.31081,0.34536,-0.12986,-0.12404,-0.12249,0.31042,0.34614,-0.12637,-0.12171,-0.12288,0.31042,-0.12909,-0.12909,-0.12637,-0.12288,0.3077,-0.12365,-0.12132,-0.12598,-0.1221,0.31197,-0.12326,-0.12715,-0.12249,-0.1221 0.21545,0.22222,0.22184,0.19328,-0.069818,0.20831,0.22034,0.23575,0.1914,-0.071321,0.20042,0.22372,0.22598,-0.073576,-0.075079,-0.23857,-0.24384,-0.23857,-0.074328,-0.076959,-0.24233,-0.24271,-0.2412,-0.23707,-0.23331 -0.16855,-0.1629,-0.1629,-0.13652,0.24585,-0.17608,-0.1629,-0.1629,0.27034,0.23832,-0.1629,-0.16855,-0.15724,0.25527,0.23643,-0.16855,-0.1629,-0.15536,0.23832,0.23267,-0.16855,-0.16855,0.27034,0.23455,0.22325 -0.17804,-0.20264,-0.12886,-0.091973,-0.04279,-0.16575,-0.16575,-0.14116,-0.055086,0.15394,-0.15345,-0.17804,-0.10427,-0.005902,0.22772,-0.10427,-0.14116,-0.005902,0.25231,0.38757,-0.14116,-0.030494,0.12935,0.38757,0.49823 0.090977,0.090133,0.089289,0.085913,-0.41623,0.090977,0.097728,0.090977,0.085069,-0.42298,0.11123,0.11039,0.1011,0.1011,-0.41117,0.14161,0.13149,0.12811,0.12051,-0.40695,-0.19174,0.13824,0.1298,0.12811,-0.21369 -0.26188,-0.25555,0.099174,0.093368,0.19049,-0.26294,-0.24921,0.15618,0.097591,0.089145,-0.26663,-0.24974,0.15671,0.15038,0.11871,-0.26663,-0.25449,0.16991,0.16357,0.10868,-0.26663,0.11343,0.33777,0.15935,0.12926 0.15487,0.063768,-0.16398,-0.072878,-0.16398,0.38261,0.24596,0.10932,-0.30062,-0.30062,0.20041,0.01822,-0.072878,-0.20952,-0.072878,0.29151,0.15487,0.15487,-0.25507,-0.25507,0.24596,0.10932,-0.16398,0.10932,-0.20952 0.14276,0.10315,0.094586,0.10957,-0.34645,0.11064,0.10422,0.10957,0.13633,-0.3518,0.11493,0.11171,0.11278,0.13848,-0.35608,0.10208,0.11814,0.11171,-0.35608,-0.35501,0.10315,0.08067,0.073177,0.15025,-0.3625 -0.22936,-0.32608,0.17133,0.17133,0.11606,-0.16028,-0.22936,0.21278,0.25423,0.060795,-0.20173,-0.257,0.17133,0.2266,0.074612,-0.20173,-0.29845,0.17133,0.2266,0.12988,-0.21555,-0.24318,0.1437,0.15752,0.074612 0.090231,0.081904,0.28207,0.28507,0.27674,0.088898,0.088898,0.28507,0.28307,0.11787,0.088565,0.080572,0.2834,-0.13158,-0.13724,-0.20419,-0.20619,-0.20685,-0.20885,-0.20352,-0.20452,-0.20552,-0.20818,-0.20785,-0.20785 -0.44637,-0.19347,-0.25669,-0.13024,-0.13024,-0.22508,-0.19347,0.027819,-0.035406,-0.0037935,-0.22508,-0.13024,0.059432,-0.0037935,-0.13024,0.15427,0.15427,0.059432,0.2175,0.091044,0.31233,0.31233,0.31233,0.24911,0.15427 0.065208,0.15101,0.099528,-0.19219,-0.65551,0.16817,0.23681,0.13385,-0.12355,-0.29515,0.082368,0.18533,0.065208,-0.089232,-0.26083,0.13385,0.16817,0.082368,-0.12355,-0.089232,0.15101,0.20249,0.099528,-0.072072,-0.12355 -0.44105,0.034092,0.072697,0.075667,0.075667,-0.40542,0.17366,0.090515,0.081606,0.078636,-0.37572,0.141,0.084575,0.087545,0.078636,-0.37869,0.12912,0.10536,0.10239,0.10833,-0.37869,0.12318,0.12021,0.10239,0.11427 0.1721,0.2162,0.1673,0.17977,-0.085837,0.16443,0.1673,0.20278,-0.082961,-0.32747,0.11744,0.11744,0.16443,-0.32363,-0.33802,0.10498,0.098264,0.15196,-0.31692,-0.32939,0.10785,0.078128,-0.035018,-0.059948,-0.31117 0.17098,0.31838,0.26925,0.14642,0.14642,0.19555,0.34295,0.19555,-0.025549,0.14642,0.12185,0.023584,0.023584,-0.00098266,-0.12382,0.023584,-0.050116,-0.29578,-0.19751,-0.19751,-0.14838,-0.34491,-0.29578,-0.14838,-0.29578 0.009868,0.32385,0.21171,0.32385,0.3687,0.14443,0.099577,0.18929,0.122,0.054722,0.054722,0.18929,-0.10227,-0.079841,0.032295,-0.034986,-0.079841,-0.079841,-0.19198,-0.23683,-0.23683,-0.19198,-0.28169,-0.25926,-0.34897 -0.08466,-0.19886,-0.23693,-0.24454,-0.25215,0.11329,-0.023753,-0.19125,-0.20647,-0.23693,0.17419,0.067606,-0.031367,-0.15318,-0.16079,0.33407,0.18181,0.067606,-0.023753,-0.11511,0.41782,0.35691,0.19703,0.17419,0.075219 -0.10983,-0.099608,-0.052584,-0.10779,0.074174,-0.097563,-0.085296,-0.0086278,0.039418,0.046574,-0.010672,-0.023962,0.026129,-0.011695,0.058841,-0.023962,-0.051562,-0.097563,-0.035206,-0.010672,-0.094497,-0.11801,-0.098586,-0.047473,0.94002 0.24922,0.24378,0.24559,0.23608,0.2474,0.2551,0.24605,0.23518,0.23518,-0.16017,0.2551,-0.15971,-0.157,-0.15836,-0.16424,-0.16515,-0.16877,-0.16651,-0.16515,-0.16515,-0.16334,-0.16198,-0.16288,-0.16379,-0.16651 -0.15974,-0.27542,-0.27364,-0.23093,-0.17932,0.076952,-0.17932,-0.22915,-0.24338,-0.21491,0.28695,0.21398,0.08585,-0.10101,-0.1811,0.26915,0.2211,0.10187,0.03424,-0.020929,0.21932,0.3439,0.15882,0.15526,0.12144 -0.13383,-0.13542,-0.13496,-0.13656,-0.13451,-0.13428,-0.13451,-0.13451,-0.13565,-0.13588,-0.13405,-0.13474,-0.13496,-0.13496,-0.13542,-0.13132,-0.12995,0.31152,0.20058,0.1999,0.31197,0.35639,0.3573,0.19215,0.35571 -0.33312,-0.33806,-0.11611,-0.11474,-0.11089,-0.096354,-0.089221,-0.072485,-0.067272,-0.068095,-0.065352,-0.065352,-0.065352,-0.064529,-0.064254,-0.063706,-0.060962,-0.062059,0.29543,-0.057395,0.28061,0.40956,0.40215,0.29652,0.29104 0.2136,0.2221,0.18173,0.18513,0.1864,0.20638,0.25568,0.18683,0.17875,0.19065,0.22933,0.251,-0.19184,-0.18972,-0.19227,-0.19737,-0.19992,-0.18972,-0.18844,-0.18802,-0.19737,-0.19099,-0.18589,-0.18802,-0.18802 0.21553,0.21708,0.17678,-0.19895,-0.20329,0.2239,0.22204,-0.19771,-0.19864,0.16655,0.22638,0.23258,-0.19461,-0.19771,-0.1757,0.24033,0.2487,-0.19709,-0.19926,-0.17415,0.1557,0.15477,-0.19492,-0.17291,-0.17539 0.14156,0.14193,0.14119,0.14119,0.14156,0.13823,0.1386,0.13897,0.13823,0.13674,0.13563,0.136,0.1323,0.13304,0.13415,-0.29035,-0.29331,-0.29406,0.13156,0.13119,-0.28998,-0.29146,-0.28776,-0.29517,-0.28998 -0.075537,-0.075537,-0.013958,-0.034484,0.21183,-0.11659,-0.15764,-0.075537,-0.055011,0.29394,-0.075537,-0.055011,-0.11659,-0.11659,0.41709,-0.096063,-0.15764,0.0065684,-0.013958,0.41709,-0.17817,-0.21922,-0.19869,-0.034484,0.51973 0.31002,-0.10137,-0.10322,-0.26141,-0.25588,0.3091,-0.10322,-0.10506,-0.10506,-0.10506,0.31279,0.31049,-0.10506,-0.10137,-0.10045,0.31602,0.31556,-0.099529,-0.10045,-0.10783,0.32248,-0.10045,-0.10322,-0.11152,-0.12628 -0.16358,-0.11814,-0.080275,-0.027263,0.018176,-0.19387,-0.14086,-0.087849,-0.04241,0.26809,-0.17873,-0.11814,-0.080275,-0.049983,0.35897,-0.16358,-0.14843,-0.080275,0.33625,0.38169,-0.16358,-0.11814,-0.12571,0.33625,0.38169 0.0023444,-0.010095,-0.063921,-0.1022,-0.15626,0.0085643,-0.0045932,-0.060333,-0.10746,-0.1565,0.53032,-0.0038755,-0.051003,-0.096696,-0.1522,0.48463,-0.0022009,-0.057941,-0.094303,-0.15052,0.54778,-0.00028707,-0.054831,-0.10076,-0.14765 -0.074343,-0.028565,0.017213,0.049257,0.95566,-0.056032,-0.056032,0.0080569,-0.0010987,0.049257,-0.074343,-0.046877,0.0080569,0.017213,-0.010254,-0.083499,-0.065188,-0.065188,-0.074343,-0.10181,-0.056032,-0.056032,-0.056032,-0.092655,-0.10639 -0.16307,-0.16285,0.23167,0.22733,0.22689,-0.1622,-0.16307,-0.1635,0.23689,0.22863,-0.16285,-0.16263,-0.16263,0.23841,0.23689,-0.1622,-0.16176,-0.16154,0.23732,0.24145,-0.1635,-0.1622,-0.16285,-0.16154,0.33291 -0.44006,-0.40457,-0.2981,-0.36908,-0.2981,0.021293,0.056782,-0.085173,-0.085173,0.12776,0.19874,0.16325,0.021293,0.16325,-0.049684,0.12776,0.16325,0.056782,0.19874,0.021293,0.12776,0.056782,0.16325,0.19874,0.16325 0.25594,0.19687,0.21656,0.07875,-0.039375,0.19687,0.19687,0.11812,0.07875,-0.23625,0.19687,0.19687,-0.07875,-0.23625,-0.17719,0.19687,0.11812,-0.21656,-0.29531,-0.21656,0.19687,0.07875,-0.25594,-0.35437,-0.21656 0.56101,-0.1089,-0.11602,-0.1089,-0.094642,0.56458,-0.080389,-0.11246,-0.1089,-0.12315,0.087088,0.15123,-0.11246,-0.11602,-0.1089,0.22962,0.11559,-0.11246,-0.11602,-0.1089,0.23675,-0.066136,-0.11246,-0.12671,-0.11246 -0.20162,-0.20794,-0.20794,-0.20373,-0.20373,-0.21215,-0.20899,-0.20688,-0.20794,-0.21635,0.16984,-0.19426,-0.20162,0.2414,0.23929,0.13091,0.17195,0.1751,0.20667,0.24245,0.1267,0.14669,0.20141,0.20457,0.21614 0.40933,0.39407,0.34764,0.33619,0.19563,0.41505,-0.087387,-0.098835,-0.10519,-0.11283,-0.12491,-0.10519,-0.1071,-0.11219,-0.11473,-0.10901,-0.11028,-0.11283,-0.11473,-0.11664,-0.11028,-0.11219,-0.11283,-0.1141,-0.11664 0.03406,0.029612,0.030072,0.02271,0.022097,0.034213,0.13988,0.12884,0.15629,0.152,0.034826,0.13712,0.12623,0.15675,0.15491,0.020103,0.13712,0.13145,0.15507,0.1316,-0.3877,-0.3857,-0.3877,-0.38678,-0.38708 0.10877,0.10877,0.10725,0.10725,0.10877,0.10725,0.11334,0.11182,0.11029,0.10877,0.10725,0.11638,0.1179,0.11334,0.11334,0.12095,-0.27166,0.11638,0.11029,0.1179,-0.36905,-0.35992,-0.37818,-0.37818,-0.36905 -0.16392,-0.16373,-0.16717,-0.16487,0.24404,-0.16239,-0.16296,-0.16449,0.24347,0.24098,-0.16239,-0.16239,-0.16487,0.24672,0.24423,-0.16258,-0.16277,-0.16525,0.24729,0.24442,-0.15952,-0.16009,0.24557,0.24672,0.24595 0.11007,0.11294,0.11103,0.11103,0.11007,0.11198,0.11246,0.11294,0.11294,0.11198,0.11198,0.11437,0.11198,0.11198,0.11151,0.11198,0.1158,0.1158,0.11246,-0.35295,-0.35963,-0.35342,-0.35629,-0.35629,-0.35676 -0.1114,-0.1114,-0.11358,-0.11723,-0.10994,-0.11577,-0.1165,-0.1063,-0.12087,-0.1216,-0.11504,-0.11796,-0.11067,-0.11796,-0.11796,-0.11067,-0.097558,0.37231,-0.10193,-0.097558,0.3592,0.38834,0.34172,0.33589,0.33443 -0.24567,-0.2373,-0.24632,0.14318,0.14382,-0.25404,-0.23795,0.15606,0.12709,0.13159,-0.24889,-0.23537,0.15541,0.17086,0.21014,-0.24439,-0.2373,0.14962,0.15541,0.19919,-0.25147,0.15992,0.16378,0.17344,0.19919 0.60787,0.24475,-0.0029152,0.0093391,-0.068702,0.60206,0.23572,-0.09321,-0.08805,-0.075151,-0.10095,-0.09708,-0.08934,-0.088695,-0.088695,-0.089985,-0.088695,-0.08676,-0.09063,-0.09192,-0.088695,-0.09192,-0.088695,-0.095145,-0.0945 0.063302,0.11343,0.36406,0.4285,0.45357,0.016756,-0.0011457,0.0024347,0.29245,0.27096,-0.0083065,-0.076334,-0.1193,-0.1551,-0.1551,-0.087075,-0.1193,-0.1551,-0.17659,-0.15868,-0.097817,-0.1551,-0.17659,-0.19807,-0.16584 -0.13759,-0.13939,-0.13975,-0.13903,-0.13831,-0.14101,-0.14065,-0.13903,-0.13362,-0.13002,-0.14228,-0.14083,-0.12876,-0.12731,-0.12966,-0.14065,0.12129,0.12039,0.39423,0.40036,0.11787,0.12165,0.12237,0.39261,0.39712 0.30086,0.28591,0.29712,-0.17729,-0.13993,0.2635,0.30086,-0.11005,-0.13993,-0.16608,0.22428,0.25603,-0.13246,-0.14927,-0.18849,0.22054,-0.12499,-0.15861,-0.15861,-0.15861,0.23362,-0.13993,-0.15114,-0.14367,-0.14367 -0.17216,-0.1733,-0.17444,-0.17368,-0.17482,-0.17179,-0.17254,-0.17292,-0.17141,-0.17558,-0.16837,-0.17292,-0.17216,-0.16837,0.32938,0.20988,0.20988,0.32635,0.14348,0.145,0.20418,0.18484,0.18825,0.32483,0.14842 -0.3972,-0.40556,-0.40277,-0.3972,-0.39164,0.12353,0.1291,0.12353,0.12631,0.11796,0.092896,0.10682,0.10404,0.095681,0.10682,0.095681,0.087327,0.078973,0.092896,0.092896,0.092896,0.081758,0.092896,0.070619,0.081758 -0.16363,-0.16327,-0.16315,-0.16243,-0.16339,-0.16207,-0.16339,-0.16339,-0.16315,-0.16375,-0.16363,-0.16351,-0.16339,-0.16159,0.23313,-0.16484,0.2531,0.24612,0.24071,0.23445,0.25984,0.25382,0.24877,0.24239,0.23625 0.43585,0.23618,0.3788,0.4929,0.32176,-0.16316,-0.020538,-0.16316,0.0079868,-0.077586,-0.19168,-0.19168,-0.19168,-0.10611,-0.10611,-0.077586,-0.020538,-0.077586,-0.10611,-0.049062,-0.16316,-0.077586,-0.10611,-0.020538,0.036511 -0.1337,-0.13228,-0.13199,0.31362,0.31703,-0.13342,-0.13143,-0.13398,0.36423,0.31589,-0.13626,-0.13455,-0.13541,0.26755,0.31874,-0.13484,-0.13569,-0.1374,-0.13569,0.26015,-0.13626,-0.13654,-0.13683,-0.13683,0.13588 0.052437,6.1618e-05,-0.16862,-0.1717,-0.15398,0.30276,0.46066,-0.13858,-0.15013,-0.15398,0.30738,0.29891,-0.1278,-0.12626,-0.15398,0.29968,-0.107,-0.13011,-0.11932,-0.12549,0.29352,0.17028,-0.11701,-0.10931,-0.13242 0.25628,0.24166,0.31794,-0.16331,-0.1614,0.2283,0.22767,-0.16712,-0.16204,-0.15504,0.22068,0.25564,-0.16331,-0.16458,-0.16076,0.24483,0.21495,-0.16903,-0.16331,-0.15886,0.23148,-0.15377,-0.15695,-0.16776,-0.17221 0.036906,0.02527,0.36514,0.35108,0.31035,0.030603,0.035936,0.033997,0.21338,0.21872,0.034481,0.030603,0.028179,0.21145,0.20999,-0.21036,-0.20115,-0.20503,-0.21424,-0.21666,-0.21666,-0.21763,-0.21715,-0.2186,-0.2186 0.53255,0.4868,0.1157,-0.026638,0.034365,0.50713,0.064866,-0.0063036,-0.057139,-0.057139,0.0038635,-0.082556,-0.10289,-0.10797,-0.11306,-0.072389,-0.072389,-0.10289,-0.13339,-0.11814,-0.10289,-0.11306,-0.13847,-0.19948,-0.13847 -0.071217,-0.083435,-0.09232,-0.10121,-0.066219,-0.062887,-0.078437,-0.097874,-0.094542,-0.098429,-0.06011,-0.072883,-0.09954,-0.095097,-0.10232,-0.056778,-0.09121,-0.098984,-0.098984,-0.098429,0.48579,0.49135,0.43692,0.41027,-0.10343 -0.023354,-0.0010413,0.11052,-0.056823,0.35596,-0.056823,-0.11632,-0.14607,-0.10145,0.38571,-0.16095,-0.15723,-0.13864,-0.086573,0.43033,-0.14607,-0.14235,-0.14979,-0.0010413,0.43405,-0.14607,-0.16839,-0.14235,-0.045666,0.27043 0.18153,0.062101,0.15167,-0.11704,-0.35589,0.091957,0.15167,0.12181,-0.057324,-0.23646,-0.08718,0.33081,0.18153,-0.11704,-0.23646,0.0023885,0.062101,0.091957,-0.2066,-0.35589,0.30095,0.33081,0.091957,-0.11704,-0.26632 0.21186,0.21249,0.21375,0.21628,-0.17499,0.070897,0.20617,0.21502,0.21375,0.23145,0.043084,0.047509,0.05067,0.21818,0.22892,-0.21924,-0.21355,-0.20913,-0.20913,-0.2066,-0.22493,-0.22872,-0.22999,-0.23251,-0.23125 -0.12799,-0.14452,-0.15795,0.3638,0.20986,-0.12799,-0.14968,-0.14968,0.37413,0.20676,-0.15485,-0.14865,-0.15485,0.32557,0.19952,-0.14452,-0.13315,-0.14142,0.21296,0.21192,-0.15485,-0.14968,-0.15795,-0.14968,0.24292 -0.085448,0.50052,0.4306,0.44727,0.43639,-0.09031,-0.086837,-0.079428,-0.00025004,-0.0016391,-0.097023,-0.095866,-0.095634,-0.095403,-0.095403,-0.098876,-0.099339,-0.098876,-0.099339,-0.099802,-0.098876,-0.09957,-0.097486,-0.099107,-0.10026 -0.12279,-0.12405,-0.12405,-0.12532,-0.127,-0.12152,-0.12321,-0.12447,-0.12532,-0.12869,-0.12194,-0.12194,-0.12237,-0.12405,-0.127,0.2928,0.28395,-0.12321,-0.12194,-0.12574,0.39269,0.31387,0.33284,0.28268,0.33579 -0.098702,-0.09095,-0.094528,-0.086179,-0.081409,-0.10049,-0.099298,-0.096913,-0.084987,0.10226,-0.098702,-0.092739,-0.081409,0.10703,0.099871,-0.10109,-0.098105,-0.090353,0.10345,0.094504,-0.10168,-0.093931,0.10226,0.099871,0.88223 0.38178,0.3878,-0.041092,-0.036229,-0.14438,0.401,0.38757,-0.041092,-0.038082,-0.14114,0.38641,-0.040166,-0.040861,-0.14044,-0.1409,-0.040166,-0.039934,-0.13813,-0.13998,-0.15272,-0.040397,-0.13813,-0.1409,-0.1548,-0.15503 -0.020438,-0.063017,-0.015116,0.027463,-0.057694,-0.078984,-0.089629,-0.02576,-0.057694,-0.10027,-0.12689,-0.068339,0.027463,-0.063017,-0.12156,-0.12156,0.0061739,-0.02576,0.016819,0.016819,-0.14817,-0.12156,0.11262,0.19246,0.90565 0.13214,-0.10383,-0.16788,-0.15102,-0.15776,0.18271,0.1254,0.095062,-0.17462,-0.15439,0.1726,0.19956,-0.073488,-0.22855,-0.2353,0.16585,0.27035,0.26024,-0.24204,-0.25215,0.1726,0.30744,0.29732,-0.20159,-0.23867 0.44715,0.44177,0.47258,0.47063,-0.087314,-0.080958,-0.082424,-0.082913,-0.086825,-0.089759,-0.081447,-0.088292,-0.086825,-0.08927,-0.091226,-0.084869,-0.084869,-0.08927,-0.090248,-0.091226,-0.085847,-0.086336,-0.091226,-0.090737,-0.090248 -0.13535,-0.13535,-0.2157,-0.20321,-0.21035,-0.13178,-0.14249,-0.15678,-0.16392,-0.21213,-0.16571,0.2557,-0.13892,-0.14428,-0.15321,-0.11928,0.24677,0.21642,0.22713,0.23963,0.26106,0.24677,0.22892,0.26463,0.24142 -0.34108,-0.25968,0.16769,0.14734,0.43807,-0.27712,-0.14048,0.18223,0.17932,0.1328,-0.34689,0.045586,0.097916,0.14443,0.074658,-0.2713,-0.1899,0.10955,0.045586,0.12699,-0.24805,-0.085241,0.13862,0.0514,0.077566 -0.22186,-0.17234,-0.14758,0.14956,0.24861,-0.1971,-0.17234,-0.12282,0.29813,0.10004,-0.023771,-0.17234,-0.1971,0.24861,0.17432,-0.048533,-0.14758,-0.1971,0.22384,0.47146,-0.14758,-0.1971,-0.098056,0.22384,0.1248 0.080908,0.092902,0.14122,0.15185,-0.35708,0.097015,0.095301,0.10901,0.15733,-0.3516,0.093931,0.09256,0.096672,0.15528,-0.35434,0.093245,0.093931,0.10318,0.16076,-0.34988,0.10181,0.10078,0.10421,-0.35365,-0.35537 -0.16842,-0.16797,-0.16683,-0.16112,-0.16203,-0.16979,-0.16751,-0.16523,-0.16842,-0.16249,-0.16888,-0.17025,-0.16705,0.23838,-0.13306,0.25914,0.25138,0.24408,0.23678,-0.14766,0.25845,0.2491,0.24271,0.23678,0.22993 0.12501,0.12642,0.12501,0.12218,-0.31578,0.12501,0.12501,0.12501,0.12218,-0.32003,0.12925,0.12501,0.12218,-0.30871,-0.3271,0.12784,0.12359,0.12501,0.11935,-0.32427,0.12784,0.12642,0.12218,-0.31578,-0.33276 0.375,0.077357,-0.22891,-0.24473,-0.062116,0.29088,0.27291,0.039254,-0.072181,-0.013228,0.28297,0.22905,-0.072181,-0.07937,-0.070024,0.13056,0.18304,-0.026169,-0.29433,-0.28786,0.13272,0.062979,-0.026888,-0.3008,-0.29793 -0.10244,-0.07708,0.037019,0.31593,0.36664,-0.16582,-0.19118,-0.064403,0.18915,0.46806,-0.25457,-0.25457,-0.089758,-0.02637,0.18915,-0.20386,-0.24189,-0.12779,0.011663,0.11309,-0.039047,-0.089758,-0.14047,0.08773,0.29057 0.18214,0.17288,0.078399,0.21086,0.20437,0.20437,0.20808,0.070989,0.23123,0.23494,-0.1754,-0.18281,0.21086,0.21086,0.23031,-0.21152,-0.20967,-0.19948,-0.18096,-0.18837,-0.22078,-0.22171,-0.21986,-0.22264,-0.21708 -0.20571,-0.20724,-0.20801,-0.20673,-0.20724,-0.20417,-0.20673,-0.20699,-0.20724,-0.20827,0.20867,0.2079,-0.20596,0.20713,-0.20289,0.20226,0.20149,0.20072,0.20072,0.20072,0.067981,0.19585,0.19432,0.19432,0.19509 -0.10109,-0.18213,-0.041061,0.17205,0.26209,0.012967,0.003962,0.15104,0.15104,0.34013,-0.21215,-0.21215,-0.12811,0.10301,0.34013,-0.26317,-0.24817,-0.17013,0.13903,0.13903,-0.27518,-0.24517,-0.16412,0.2831,0.14503 -0.11509,-0.10254,-0.11583,-0.12026,0.36052,-0.121,-0.12026,-0.12026,0.36643,0.35609,-0.12617,-0.12396,-0.12469,0.0097191,0.35609,-0.13282,-0.12469,-0.11805,0.011935,0.3295,-0.14833,-0.14094,-0.13429,-0.12913,0.32803 -0.083022,-0.082335,-0.085768,-0.087141,-0.089201,0.48684,-0.085082,-0.080962,-0.087141,-0.090574,0.46625,-0.086455,-0.085082,-0.088515,-0.090574,0.48616,-0.082335,-0.081649,-0.089201,-0.09538,0.38729,-0.080276,-0.090574,-0.089201,-0.096067 0.54273,0.35467,0.077198,-0.17869,-0.20335,0.18818,0.12961,0.12653,-0.18485,-0.19102,0.34542,0.086447,0.046368,-0.19719,-0.20335,0.012455,0.024787,-0.021457,-0.19102,-0.19719,0.018621,0.0062893,-0.0029597,-0.19102,-0.19719 0.37343,0.26706,-0.12519,-0.14347,-0.038759,0.38008,0.29531,-0.18003,-0.16674,-0.14845,0.37842,0.32024,-0.17671,-0.19167,-0.17006,0.060964,0.0044543,-0.037097,-0.1069,-0.1684,-0.018814,-0.025463,-0.11854,-0.12186,-0.14181 0.16475,0.18582,-0.21038,-0.20897,-0.20195,0.19284,0.18582,-0.21249,-0.21108,-0.20968,0.19144,0.18652,-0.21249,-0.22092,-0.19984,0.19214,0.19846,0.19495,-0.19633,-0.20335,0.209,0.21743,0.18582,0.19004,-0.20757 -0.099385,-0.090006,-0.074374,-0.075938,-0.091569,0.4696,-0.061869,-0.077501,-0.097822,-0.096258,0.46022,-0.090787,-0.10017,-0.10017,-0.09704,0.44693,-0.094695,-0.10173,-0.10095,-0.094695,0.45241,-0.079064,-0.053272,-0.082972,-0.068903 -0.13755,-0.13802,-0.13476,-0.13615,-0.13708,-0.13615,-0.13662,-0.13848,-0.13708,-0.13476,-0.13429,-0.13708,-0.13755,-0.13848,-0.13615,-0.14081,-0.14127,0.29148,0.29241,0.28962,0.29241,0.29101,0.29241,0.29195,0.29101 0.1425,0.1239,0.12508,0.15318,0.12508,0.14645,0.1421,0.14804,0.13893,0.11757,0.1235,0.15279,0.15002,0.14447,0.14566,0.13142,0.11875,-0.29242,-0.29598,-0.28648,-0.28806,-0.29123,-0.29242,-0.29123,-0.29163 -0.33776,-0.28734,-0.28734,-0.43858,-0.51419,0.11595,0.09074,-0.035288,-0.035288,0.015123,0.16636,0.09074,0.19156,0.19156,0.09074,0.19156,0.11595,0.040329,0.16636,0.040329,0.14115,0.065535,0.09074,0.065535,0.065535 -0.0011139,-0.15428,-0.30744,-0.34922,-0.39099,0.096355,-0.015038,-0.30744,-0.30744,-0.30744,0.15205,0.15205,0.096355,0.040658,0.026734,0.15205,0.16597,0.13813,0.11028,0.1799,0.22167,0.15205,0.15205,0.15205,0.15205 0.16674,0.44176,0.44144,0.44144,0.16786,0.1657,0.16818,-0.12612,0.16874,-0.12636,-0.12684,-0.12724,-0.12772,-0.12708,-0.12828,-0.1274,-0.12732,-0.12676,-0.127,-0.12724,-0.12716,-0.12724,-0.1274,-0.12724,-0.1274 -0.19211,-0.19211,-0.14379,0.27328,0.26817,-0.13937,-0.18631,-0.14286,0.26747,0.26538,-0.14309,-0.14053,-0.14077,0.26677,0.26468,-0.14216,-0.14216,-0.14193,0.26212,0.2598,-0.14425,-0.14448,-0.1403,0.26398,-0.11544 0.13535,0.1744,0.1766,0.1381,-0.28597,0.137,0.1392,0.1876,0.1359,-0.27386,0.1678,0.13535,0.15515,-0.24636,-0.27276,0.15295,0.13755,0.1414,-0.24581,-0.28487,0.1348,0.14195,-0.24251,-0.25296,-0.28597 0.20316,-0.1094,-0.031256,-0.057303,-0.21358,0.2813,0.020837,-0.057303,-0.18754,-0.26568,0.12502,0.046884,0.020837,-0.13544,-0.13544,0.2813,0.046884,0.020837,-0.083349,-0.18754,0.672,-0.031256,0.072931,-0.031256,-0.26568 -0.28138,-0.10178,-0.10178,-0.011974,0.1377,-0.28138,-0.16164,-0.041908,0.19757,0.2275,-0.34125,-0.16164,-0.041908,-0.10178,0.37717,-0.25145,-0.041908,0.047895,0.28737,0.16763,-0.011974,-0.13171,0.077829,0.1377,0.40711 0.20472,0.2063,0.21364,-0.19186,-0.19208,0.20494,0.20641,0.21251,-0.1896,-0.19287,0.20788,0.20698,0.20935,-0.19152,-0.19242,0.20585,0.20619,-0.18768,-0.19287,-0.19592,0.21296,-0.18677,-0.19208,-0.19524,-0.19682 0.099896,0.099896,-0.15303,-0.15675,-0.15463,0.099896,0.099631,-0.15622,-0.15596,-0.15356,0.45538,0.12275,0.12062,-0.15596,-0.15622,0.45724,0.12115,-0.15675,-0.15356,-0.15463,0.11796,0.38311,-0.15782,-0.15622,-0.15622 0.033841,-0.0013669,-0.043824,-0.058321,0.082512,0.027628,-0.02622,-0.052108,-0.058321,0.082512,-0.064535,-0.050037,-0.051073,-0.064535,-0.072819,-0.085245,-0.077997,-0.043824,-0.060393,-0.075926,-0.099743,-0.097672,-0.047966,-0.045895,0.95133 0.16917,0.19032,0.13393,0.11278,0.014098,0.17622,0.16212,0.11278,0.035244,-0.049342,0.17622,0.15508,0.056391,-0.028196,-0.26786,0.18327,0.091636,-0.042293,-0.3172,-0.40179,0.21852,0.06344,-0.14803,-0.35949,-0.43703 -0.11244,-0.11244,-0.11244,-0.11244,-0.11075,-0.1121,-0.11277,-0.11277,-0.1121,-0.11176,-0.11244,-0.11244,-0.11143,-0.11244,-0.11041,-0.10771,-0.11244,-0.11277,-0.11379,0.4015,0.34109,0.33772,0.31747,0.32793,0.40217 0.12955,0.13224,0.13942,0.1457,-0.31896,0.098158,0.13314,0.13523,0.1445,-0.31926,0.11371,0.095467,0.13314,0.14331,-0.31836,0.12626,0.12656,0.092477,-0.31806,-0.32015,0.12746,0.12746,0.095168,-0.32165,-0.32254 0.1133,0.16444,-0.11094,-0.23682,-0.3391,0.085759,0.1723,0.1723,-0.23289,-0.37451,0.10149,0.12116,0.29032,-0.11094,-0.31156,0.11723,0.097561,0.28245,0.14083,-0.23289,0.1133,0.062156,0.19984,-0.036192,-0.24862 -0.012463,-0.15786,-0.26172,-0.29634,-0.30326,0.13294,0.022156,-0.10247,-0.25479,-0.26864,0.21602,0.077546,-0.019387,-0.1094,-0.22018,0.29911,0.22295,0.08447,-0.019387,-0.10247,0.3545,0.29911,0.24372,0.098318,0.077546 0.11131,0.10602,0.14653,0.20799,0.2043,0.11782,0.11148,0.10708,0.15622,0.16432,0.12064,0.10673,0.10514,0.15516,0.16238,0.11853,0.10497,-0.29817,-0.25484,-0.30627,-0.25361,-0.29834,-0.29605,-0.29869,-0.30063 -0.17145,-0.17609,-0.16217,-0.14825,-0.10187,-0.16217,-0.14825,-0.15753,-0.074034,0.018741,-0.17145,-0.12506,-0.064757,-0.023008,0.1811,-0.12506,-0.10187,-0.036924,0.19501,0.38056,-0.069396,0.051212,0.26459,0.44087,0.48725 -0.24508,-0.2417,-0.24789,-0.25294,-0.25463,0.16807,-0.2344,-0.2462,-0.2462,-0.24002,0.16975,0.16863,0.16694,0.16694,-0.23833,0.172,0.16919,0.16807,0.15851,0.13996,0.16582,0.16638,0.16694,0.15907,0.14109 -0.29997,0.10141,0.098001,0.16788,0.11419,-0.28207,0.15254,0.13294,0.14998,0.16788,-0.28292,-0.27866,0.16021,0.14658,0.14743,-0.30252,-0.27866,0.15084,0.12527,0.16362,-0.30252,-0.2923,0.13379,0.11845,0.088627 -0.38469,0.031189,0.054035,0.12638,0.18984,-0.38554,0.036689,0.02992,0.027381,0.036689,-0.38596,0.11623,0.037958,0.038804,0.030766,-0.3885,0.12384,0.16065,0.13738,0.15176,-0.38807,0.1395,0.13442,0.15007,0.17926 -0.20028,-0.19902,0.10314,0.11132,0.11195,-0.20091,0.10377,0.10723,0.10754,0.16294,-0.1984,-0.19965,-0.20595,0.26461,0.25831,-0.19997,-0.19808,-0.2006,0.26555,0.27342,-0.19934,-0.1984,-0.20091,0.26303,0.2687 0.20119,0.20266,0.20237,0.20266,0.20266,0.20767,0.2062,0.20737,0.20826,0.2062,-0.19233,0.22356,0.22621,-0.18997,-0.19174,-0.19115,-0.19674,-0.19115,-0.19174,-0.1935,-0.19292,-0.1935,-0.19056,-0.19115,-0.19056 0.91011,0.11263,-0.06558,-0.092312,-0.087856,0.0012475,-0.0076629,-0.083401,-0.070036,-0.074491,-0.078946,-0.087856,-0.078946,-0.083401,-0.034394,0.023523,-0.092312,-0.074491,-0.083401,0.032434,0.21064,-0.06558,-0.092312,-0.096767,0.059165 -0.2895,-0.29167,0.13951,0.13987,0.13915,-0.28987,-0.29276,0.13951,0.13807,0.13662,-0.29095,-0.29059,0.13915,0.13807,0.1359,-0.2924,0.13445,0.13517,0.13662,0.13517,-0.29456,0.13734,0.13734,0.13445,0.1359 -0.091802,-0.092374,-0.087223,-0.091802,-0.080355,-0.090657,-0.08894,-0.090657,-0.09638,0.24473,-0.095808,-0.094663,-0.093519,-0.086651,0.25389,-0.094663,-0.09638,-0.1021,-0.10954,0.55951,-0.09638,-0.096953,-0.099242,0.24873,0.56924 -0.152,-0.0032454,0.091413,0.098175,0.10494,-0.32103,0.0238,0.077891,0.16579,0.11846,-0.61853,0.077891,0.11846,0.11846,0.1117,-0.46302,0.077891,0.11846,0.13874,0.10494,-0.26018,-0.043814,0.098175,0.1117,0.10494 0.12586,0.13061,0.13458,-0.32465,-0.32624,0.12229,0.12546,0.13339,-0.32425,-0.32386,0.11872,0.12427,0.12665,0.13418,-0.32187,0.11634,0.11911,0.12268,0.13061,-0.32227,0.11198,0.11436,0.12546,0.12705,-0.30046 -0.22798,0.019825,-0.14538,0.26763,0.35023,-0.26928,-0.18668,0.14373,0.14373,0.061126,-0.31058,-0.14538,-0.021477,0.14373,0.26763,-0.26928,-0.062778,-0.021477,-0.10408,0.26763,-0.10408,-0.18668,-0.14538,0.26763,0.26763 -0.14543,-0.14118,-0.11993,-0.13268,-0.14118,-0.13268,-0.12843,-0.12843,-0.12843,-0.11993,-0.12843,-0.11993,-0.12418,-0.10718,-0.10718,-0.079557,-0.073182,-0.075307,0.22431,0.25193,0.51542,0.20518,0.22006,0.27955,0.4368 -0.10611,-0.15648,-0.13969,-0.038952,-0.10611,-0.072531,-0.089321,-0.10611,-0.10611,0.011417,-0.15648,-0.13969,-0.072531,-0.072531,0.17931,-0.13969,-0.072531,-0.022162,0.16252,0.31363,-0.13969,-0.10611,0.078576,0.44795,0.64942 -0.24118,-0.27241,-0.2346,0.15333,0.1895,-0.24118,-0.26748,0.14347,0.15991,0.1895,-0.29049,-0.25433,0.13525,0.16977,0.18292,-0.26583,-0.25761,0.14183,0.15991,0.18292,-0.076798,0.12046,0.14018,0.15991,0.17306 -0.28964,-0.35429,-0.35429,-0.095685,-0.19266,-0.28964,-0.19266,-0.12801,-0.063359,0.001293,-0.095685,0.098271,0.001293,0.22758,0.098271,0.001293,0.1306,0.033619,0.1306,0.065945,0.16292,0.16292,0.2599,0.29223,0.38921 0.31472,-0.13585,-0.12649,-0.12883,-0.11946,0.31823,-0.13526,-0.1259,-0.13292,-0.11946,0.32174,0.3194,-0.12415,-0.12649,-0.12824,0.33286,-0.10718,-0.12415,-0.12298,-0.13585,0.32408,0.31238,-0.12239,-0.12005,-0.10776 0.27422,0.23059,0.17968,0.19665,0.21604,0.37603,-0.0045574,0.13847,0.2015,0.30816,-0.11122,-0.13789,-0.057889,0.18695,-0.22516,-0.21303,-0.15243,-0.12334,-0.11849,-0.23485,-0.24455,-0.15485,-0.15001,-0.13546,-0.24455 0.20793,0.18628,-0.12483,-0.14087,-0.14728,0.19911,0.18067,-0.13525,-0.14728,-0.14407,0.1919,0.45329,-0.13525,-0.14568,-0.1553,0.21435,0.44367,-0.13445,-0.1545,-0.15049,0.19911,-0.13686,-0.14327,-0.15129,-0.12964 0.23111,0.28636,-0.21276,-0.19803,-0.15198,0.27531,0.40424,-0.24039,-0.21461,-0.17409,0.35267,-0.093047,-0.00095773,-0.10778,-0.10041,0.29925,-0.00095773,-0.010167,-0.063579,-0.18882,0.16665,0.13533,-0.16672,-0.11147,-0.11515 -0.21486,-0.18847,-0.14447,-0.10488,-0.016893,-0.17967,-0.13567,-0.096081,-0.043289,0.19867,-0.18847,-0.12688,-0.10048,0.0271,0.33505,-0.14887,-0.10048,-0.021293,0.093089,0.42304,-0.12248,-0.043289,0.040298,0.39664,0.46263 -0.20011,-0.20341,-0.17036,0.073167,0.085289,-0.20452,-0.18909,-0.18358,0.073167,0.087492,-0.20782,-0.19129,0.075371,0.072066,0.39713,-0.20562,-0.18578,0.076473,0.094104,0.41146,-0.18248,0.058842,0.073167,0.11173,0.4346 -0.15401,-0.35145,-0.28564,-0.38436,-0.31855,-0.088192,-0.15401,-0.1211,-0.055285,0.043438,-0.1211,0.24088,0.043438,-0.088192,0.10925,0.076346,0.01053,0.20798,0.10925,0.10925,0.10925,0.24088,0.33961,0.27379,0.20798 -0.14984,-0.093082,-0.14984,-0.30119,-0.5093,-0.074163,-0.036325,-0.055244,-0.14984,-0.43362,0.11503,0.020433,0.058271,0.096109,-0.093082,0.15287,0.15287,0.096109,0.13395,0.096109,0.24746,0.17178,0.26638,0.22854,0.20962 -0.2471,0.148,0.16121,0.15445,0.22757,-0.24403,-0.25109,0.14278,0.1397,0.17288,-0.24925,-0.24925,0.14953,0.14953,0.17473,-0.19641,-0.2471,0.15046,0.17196,0.17381,-0.24863,-0.25601,-0.24956,0.15568,0.16612 -0.15168,-0.15225,-0.15054,-0.10084,0.32417,-0.15396,-0.15111,-0.13568,-0.15682,0.3276,-0.15111,-0.14882,-0.12254,0.33788,0.3276,-0.14368,-0.13397,-0.10826,0.21335,0.33274,-0.12083,-0.10826,-0.10541,0.22249,0.20992 0.00083216,0.0057855,0.010078,-0.074788,-0.051012,0.034845,0.01206,0.01206,-0.064551,-0.053984,0.021966,0.0038041,-0.066863,-0.068184,-0.053654,-0.073467,-0.067523,-0.069505,-0.067193,-0.063561,-0.072477,-0.071486,-0.072807,-0.072807,0.96243 -0.13902,-0.15421,-0.13685,0.33205,0.25824,-0.13902,-0.14336,-0.1108,0.36244,0.306,-0.14119,-0.14119,-0.11297,-0.076065,0.32119,-0.13685,-0.14987,-0.097773,-0.073894,0.32119,-0.12599,-0.13468,-0.12165,-0.091261,0.32553 -0.1375,-0.12746,-0.10881,-0.085854,0.66594,-0.094462,-0.077246,-0.084419,-0.10307,0.54686,-0.07868,-0.07868,-0.048551,-0.031334,0.24557,-0.08155,-0.071507,-0.070072,-0.05429,0.22405,-0.082985,-0.071507,-0.067203,-0.065768,-0.061464 0.35055,0.072006,-0.16794,-0.17158,0.063996,0.35892,0.076375,-0.16721,-0.17122,0.06618,0.33453,0.073098,-0.16976,-0.16758,-0.17304,0.33344,0.068365,-0.17158,-0.16649,-0.17158,0.34072,-0.17122,-0.17013,-0.16794,0.069093 -0.022164,-0.028446,-0.0070863,-0.022164,-0.073677,-0.11263,-0.042266,-0.10509,-0.10509,-0.21565,-0.11891,-0.092524,-0.10383,-0.082472,-0.092524,-0.14278,-0.11263,-0.10383,-0.17419,-0.1277,0.46533,0.36356,0.43141,0.45403,0.17133 0.9675,-0.11107,-0.068097,-0.0272,-0.016802,-0.10276,-0.11177,-0.010564,-0.030666,-0.018882,-0.075722,-0.020961,-0.021655,-0.028586,-0.023041,-0.076415,-0.013337,-0.0077912,-0.025814,-0.017496,-0.059779,-0.026507,-0.0077912,-0.029973,-0.034825 0.13711,0.31831,0.16731,0.061608,-0.059192,0.31831,0.24281,0.28811,0.18241,-0.013892,-0.028992,0.21261,0.061608,0.18241,0.061608,-0.10449,-0.14979,-0.19509,-0.27059,-0.21019,-0.21019,-0.21019,-0.25549,-0.25549,-0.27059 0.18648,0.11512,0.11512,0.035837,-0.43194,0.17062,0.13891,0.17062,0.035837,-0.51123,0.16269,0.099264,0.14684,-0.011734,-0.51123,0.16269,0.027908,0.059622,0.012051,-0.23373,0.059622,0.0041228,-0.011734,0.035837,-0.027591 -0.21113,-0.24154,-0.22186,-0.27373,-0.27373,-0.026901,-0.15747,-0.11812,-0.22186,-0.18609,0.035701,0.042856,0.039278,0.03749,0.071474,0.071474,0.048222,0.069685,0.082206,0.080417,0.36123,0.075051,0.021392,0.44351,0.45245 -0.13485,-0.23811,-0.24266,-0.24655,-0.24742,-0.2091,-0.1236,-0.12403,-0.24439,-0.24179,-0.24655,-0.0051867,0.21258,0.19895,0.20609,-0.0086502,-0.0060525,0.24094,0.197,0.20566,0.19981,0.20522,0.20652,0.23055,0.21561 -0.15319,-0.15241,-0.13174,0.22542,0.23322,-0.14344,-0.13486,-0.17113,0.21957,0.32524,-0.17191,-0.19023,-0.19179,0.20319,0.2028,-0.17542,-0.1797,0.18916,0.012914,0.19072,-0.18165,-0.18789,-0.20778,0.36891,0.20202 -0.058447,-0.060002,0.098204,0.080712,0.078769,-0.058447,-0.058447,-0.046785,-0.057669,-0.060779,-0.065055,-0.06039,-0.053394,-0.058447,-0.061945,-0.059613,-0.060779,-0.050284,-0.058447,-0.062723,-0.056115,-0.061168,-0.048729,-0.052616,0.95259 -0.16317,-0.16317,-0.14778,-0.093902,0.27298,-0.16317,-0.16574,-0.16061,-0.099033,0.29094,-0.14008,-0.13239,-0.14008,-0.10416,0.29351,-0.15291,-0.11443,-0.0092362,0.24219,0.31916,-0.14778,-0.11956,0.060036,0.32429,0.41409 -0.30234,-0.30046,0.20591,0.20122,0.20262,-0.29623,0.10492,0.14861,0.12653,0.19276,-0.28261,-0.18303,-0.17551,0.11431,0.10774,-0.28214,-0.18209,0.11385,0.16786,0.096465,-0.18209,-0.18397,0.13169,0.22846,0.22752 0.44196,0.18838,0.18838,0.18838,0.18838,0.2246,0.079698,0.079698,0.0072452,0.079698,0.15215,0.18838,0.079698,-0.13766,0.079698,-0.28256,-0.13766,-0.24634,-0.065207,-0.028981,-0.28256,-0.28256,-0.28256,-0.28256,-0.13766 -0.13526,-0.13611,-0.13668,0.28651,0.28367,-0.13611,-0.13611,-0.13838,0.34721,0.28254,-0.13526,-0.13611,-0.13952,0.28509,0.28169,-0.13838,-0.13611,-0.13668,-0.13895,0.28055,-0.1364,-0.13611,-0.13668,-0.13923,0.28084 -0.097158,-0.15472,-0.15759,-0.1432,0.34028,-0.12306,-0.15472,-0.15472,-0.12881,0.34316,-0.14608,-0.15759,-0.11299,0.26402,0.28992,-0.15184,-0.15184,-0.10004,0.28704,0.22517,-0.15472,-0.1432,-0.075573,0.28992,0.26833 -0.29159,-0.3077,-0.28735,-0.2882,-0.2899,0.13817,0.14071,-0.28735,-0.29074,-0.2882,0.14325,0.1424,0.13901,0.13308,0.1246,0.1424,0.1424,0.14156,0.13732,0.12291,0.14495,0.1441,0.13901,0.12969,0.12545 0.20295,0.065022,0.044077,0.043566,-0.42898,0.19938,0.19171,0.04612,0.042033,-0.43,0.19836,0.061446,0.035903,0.031816,-0.43051,0.19733,0.035392,0.023643,0.025175,-0.43715,0.18967,0.027729,0.023643,0.020577,0.021088 -0.23628,-0.20806,-0.24074,-0.21697,-0.15162,-0.18727,-0.21846,-0.15756,-0.19469,-0.18429,0.30734,0.22713,0.022161,-0.10409,-0.15756,0.23901,0.22119,0.24644,0.14544,-0.13825,0.27763,0.1692,0.19594,0.19148,0.15287 -0.046286,-0.064004,-0.10276,-0.081721,-0.049608,-0.0075298,-0.080613,-0.12048,0.085486,-0.04075,-0.023032,-0.10497,-0.098331,0.094344,0.1176,-0.12048,-0.12823,-0.10276,0.099881,0.1176,-0.089472,-0.11605,-0.11383,0.085486,0.89051 -0.090211,-0.076095,-0.053293,-0.046778,0.1541,-0.076095,-0.067408,-0.066323,-0.053293,0.15953,-0.078267,-0.063065,-0.057636,-0.052207,0.13999,-0.080438,-0.085868,-0.055464,-0.088039,0.13238,-0.094554,-0.10324,-0.096726,-0.094554,0.89355 -0.17016,-0.011626,0.28783,0.36709,0.3759,-0.19658,-0.11731,0.11168,0.31425,0.34067,-0.20539,-0.15254,-0.090893,0.1381,0.1381,-0.24062,-0.223,-0.11731,0.032411,0.014796,-0.19658,-0.19658,-0.13493,-0.029241,-0.038048 -0.24007,-0.24525,-0.24794,0.15422,0.16075,-0.24256,-0.24602,0.15038,0.1546,0.16075,-0.2441,-0.24602,0.15191,0.16017,0.16017,-0.24333,-0.24679,0.15768,0.19052,0.18917,-0.24391,0.1523,0.1594,0.18917,0.1548 0.3096,-0.12797,-0.15651,-0.15017,-0.058216,0.39521,-0.12163,-0.13431,-0.15017,-0.10261,0.33972,0.31435,-0.089923,-0.12005,-0.13273,0.25886,0.29057,-0.11212,-0.15334,-0.12005,0.3096,-0.070899,-0.14383,-0.14066,-0.13273 -0.15721,-0.17892,-0.17892,-0.1659,0.1989,-0.17892,-0.15721,-0.16155,-0.1051,0.26839,-0.15287,-0.15287,-0.12681,0.12507,0.31616,-0.1659,-0.14418,-0.035611,0.27273,0.33353,-0.1355,-0.1355,0.21627,0.29879,0.30313 -0.17025,-0.13825,-0.12225,-0.12225,-0.12225,-0.17025,-0.074245,-0.15425,-0.10625,-0.074245,-0.10625,-0.10625,-0.026242,-0.026242,-0.058244,-0.12225,-0.074245,0.0057604,0.0057604,0.10177,0.13377,0.13377,0.22977,0.51779,0.6458 -0.25762,-0.10548,0.046655,0.27486,0.072012,-0.18155,-0.15619,-0.029413,0.17344,0.35093,-0.25762,-0.10548,-0.25762,0.14808,-0.004057,-0.13084,-0.10548,-0.10548,0.32557,0.24951,-0.18155,-0.25762,-0.054769,0.30022,0.24951 -0.12987,-0.17497,-0.19,-0.23509,-0.22006,0.050506,-0.084778,-0.1449,-0.22006,-0.1449,0.095601,0.035475,-0.11484,-0.15994,-0.084778,0.32108,0.18579,0.1407,-0.0096202,-0.12987,0.47139,0.3812,0.30604,0.12566,-0.069747 -0.25983,-0.25983,-0.24944,-0.23904,-0.23904,0.17345,-0.2737,-0.25983,-0.24366,-0.19397,0.17577,0.16999,0.16537,0.15266,-0.22286,0.17808,0.16768,0.16537,0.1515,0.14457,0.17577,0.17345,0.15612,0.14803,0.14341 -0.2683,-0.0086548,-0.095203,0.20772,0.12117,-0.2683,-0.18175,-0.095203,0.16444,0.33754,-0.2683,-0.095203,-0.13848,0.20772,0.25099,-0.22503,-0.2683,0.16444,-0.0086548,0.16444,-0.22503,0.077894,-0.095203,0.33754,0.20772 0.23959,0.35761,0.2986,0.18058,0.15107,0.15107,0.092058,0.15107,0.033047,0.18058,-0.17349,0.23959,0.033047,-0.084977,0.12156,-0.17349,-0.084977,-0.203,-0.23251,0.0035407,-0.23251,-0.29152,-0.29152,-0.29152,-0.17349 -0.23883,-0.23696,-0.24443,-0.22949,-0.24069,-0.22576,-0.20709,-0.14734,-0.14548,-0.14548,-0.055861,-0.065196,0.033755,0.32314,0.34554,0.0020164,0.048691,0.069228,0.22979,0.31754,0.074829,0.10657,0.13271,0.19245,0.30634 0.27484,0.27484,0.31502,0.31502,0.19448,0.23466,0.073934,0.23466,-0.086792,0.19448,-0.20734,-0.086792,-0.0064291,0.1543,-0.12697,-0.046611,-0.2877,-0.12697,-0.16716,-0.086792,-0.24752,-0.20734,-0.20734,-0.12697,-0.24752 0.29166,-0.095522,-0.10564,-0.087086,-0.074433,0.30769,-0.09046,-0.10058,-0.078651,-0.070216,0.29082,-0.093834,-0.10227,-0.07612,-0.07612,0.72102,-0.10227,-0.10227,-0.09046,-0.085399,0.21574,-0.10564,-0.095522,-0.10058,-0.093834 -0.078719,0.45931,0.45844,0.45844,0.45672,-0.086762,-0.084464,-0.084464,-0.087911,-0.08906,-0.086475,-0.087049,-0.086188,-0.087911,-0.089922,-0.087049,-0.088198,-0.08906,-0.088486,-0.087911,-0.088198,-0.08906,-0.087911,-0.08906,-0.08906 -0.3939,-0.3999,-0.38891,-0.37592,-0.37393,0.17544,0.14247,0.093532,0.05158,0.020616,0.18443,0.14247,0.10552,0.056574,0.022614,0.17943,0.13349,0.091534,0.055576,0.013624,0.17344,0.13448,0.089536,0.047585,0.018618 -0.17567,-0.1219,-0.15775,-0.22945,-0.33701,0.075289,0.039437,-0.1936,-0.17567,-0.30115,0.25455,0.18284,0.0035852,-0.13982,-0.24738,0.27247,0.23662,0.18284,-0.032267,-0.068118,0.32625,0.25455,0.25455,0.11114,-0.014341 -0.27815,-0.27747,0.1108,0.2554,0.26313,-0.27829,-0.27937,0.11053,0.11012,0.10917,-0.27761,-0.27897,-0.011037,0.10971,0.11026,-0.27897,-0.01063,0.11391,0.11053,0.11026,-0.27842,0.17937,0.18317,0.18412,0.18845 0.1506,0.19912,-0.098563,-0.13922,-0.16282,0.20961,0.3932,-0.11823,-0.1602,-0.18774,0.34206,0.35648,-0.13922,-0.13922,-0.1956,0.3355,-0.10119,-0.11299,-0.14446,-0.14184,0.25944,-0.10381,-0.13004,-0.11168,-0.059222 0.65326,0.2883,0.26934,0.26144,0.25038,-0.079817,-0.040319,0.26618,-0.090876,-0.089296,-0.086136,-0.10668,-0.11457,-0.11299,-0.10194,-0.10983,-0.11773,-0.12405,-0.12721,-0.10983,-0.10983,-0.11931,-0.12089,-0.11615,-0.11141 0.49791,0.47953,0.42744,0.42437,-0.087306,-0.087584,-0.087027,-0.086749,-0.08647,-0.087306,-0.086192,-0.086749,-0.086749,-0.087027,-0.087863,-0.087863,-0.087584,-0.087584,-0.086749,-0.087027,-0.087863,-0.085913,-0.087863,-0.087027,-0.086749 0.15032,0.15013,0.20172,0.19623,0.18426,0.20427,0.20408,0.20349,0.20094,0.18034,0.20643,0.20506,-0.21144,-0.21144,0.20427,-0.20908,-0.21085,-0.21124,-0.20261,-0.20045,-0.21124,-0.21203,-0.21222,-0.20006,-0.19888 -0.0073568,-0.11376,-0.092477,-0.12136,-0.13352,-0.022557,-0.092477,-0.098557,-0.086397,-0.12288,0.015443,-0.014957,-0.10312,-0.10768,-0.093997,0.40152,0.34832,-0.077277,-0.12136,-0.093997,0.53224,0.49576,-0.045357,-0.1244,-0.11984 0.38921,0.39364,-0.076246,-0.13609,-0.10284,0.38699,-0.12058,-0.060731,-0.14274,-0.089545,0.38921,-0.12944,-0.12279,-0.10506,-0.093978,0.38699,-0.065164,-0.065164,-0.15382,-0.15604,0.050092,-0.0053195,-0.098411,-0.093978,-0.1782 0.38972,-0.1174,-0.13107,-0.1332,-0.1332,0.29783,-0.11554,-0.13267,-0.1332,-0.1336,0.30062,0.30036,-0.13346,-0.1332,-0.13399,0.36197,0.3621,-0.13346,-0.1328,-0.13426,0.1041,0.11326,-0.13227,-0.132,-0.13466 0.44082,-0.087072,-0.050001,-0.10338,-0.095969,0.46602,-0.084106,-0.090037,-0.11228,-0.10487,0.45416,-0.050001,-0.090037,-0.10487,-0.11821,-0.02331,-0.027759,-0.098934,-0.11376,-0.10635,0.45564,-0.039621,-0.098934,-0.10783,-0.10931 0.41366,0.41221,-0.096852,-0.12098,-0.20349,0.41607,0.41752,-0.080929,-0.12146,-0.20108,0.057073,0.056108,-0.063075,-0.12194,-0.18371,0.049352,0.051282,-0.061145,-0.12966,-0.19336,0.044045,0.044527,-0.063558,-0.12146,-0.19915 0.26055,-0.14405,-0.16193,-0.16416,-0.19993,0.2382,-0.10157,-0.14628,-0.17087,-0.17981,0.21361,0.28067,-0.13063,-0.1664,-0.16193,0.25161,0.28067,-0.10828,-0.13957,-0.14181,0.26502,0.29185,0.29855,-0.12169,-0.14181 0.17208,0.17474,0.1623,0.15874,0.15785,0.18008,0.18097,0.19519,0.1783,0.15963,0.20586,-0.23331,0.20141,0.15696,0.17296,-0.23598,-0.25376,-0.22975,-0.25731,-0.25642,-0.23509,-0.25109,-0.13908,-0.1533,-0.21197 0.21057,0.19389,0.1559,0.15683,0.19852,0.20779,0.21427,0.15868,0.1522,0.21798,0.21057,0.20223,-0.20634,-0.20912,0.20871,-0.20727,-0.20542,-0.20171,-0.20819,-0.20819,-0.20356,-0.21283,-0.2119,-0.20634,-0.20727 -0.2201,-0.22117,-0.22032,-0.22117,-0.22138,-0.21947,-0.21925,-0.2201,-0.21947,-0.21989,0.42978,0.096415,0.092789,0.094922,0.093215,0.41101,0.097268,0.10303,0.097268,0.093855,0.19133,0.17554,0.10409,0.031788,0.090016 -0.082588,0.4542,0.4624,0.46553,0.45068,-0.084542,-0.08337,-0.085714,-0.084151,-0.084542,-0.088449,-0.088058,-0.087667,-0.088839,-0.08923,-0.087667,-0.088449,-0.088839,-0.090011,-0.090402,-0.087276,-0.087276,-0.08923,-0.087667,-0.088839 0.10764,0.10282,0.13077,0.11599,0.11053,0.09093,0.11792,0.12113,0.11085,0.11053,0.096392,0.11728,0.10924,0.11728,0.11792,0.09832,0.11374,0.12627,0.11792,-0.35537,-0.35537,-0.35601,-0.35633,-0.3544,-0.35601 -0.08409,-0.10138,-0.15903,-0.16864,-0.16864,-0.062952,-0.099463,-0.12829,-0.1379,-0.15135,0.042737,-0.055266,-0.13021,-0.12829,-0.14943,0.3771,0.38863,-0.030285,-0.091777,-0.099463,0.39439,0.38094,0.39247,-0.01299,-0.016833 -0.15858,-0.27781,0.02027,0.19912,0.19912,-0.24801,-0.15858,-0.069156,0.19912,0.19912,-0.42686,0.079887,0.10969,0.16931,0.31835,-0.42686,0.02027,-0.039347,0.19912,0.10969,-0.24801,0.02027,0.02027,0.10969,0.079887 0.22357,0.009968,0.11677,-0.096832,-0.16803,0.009968,0.11677,0.18797,0.081168,-0.45283,0.15237,0.15237,0.11677,0.15237,-0.45283,0.11677,0.15237,0.081168,-0.13243,-0.41723,0.009968,0.11677,0.22357,-0.096832,-0.20363 -0.082721,-0.086236,-0.090071,-0.084638,-0.075051,0.25092,-0.080164,-0.089112,-0.09071,-0.071855,0.51234,-0.097741,-0.093906,-0.087514,-0.077288,0.51074,-0.095824,-0.090071,-0.079205,-0.076009,0.51074,-0.095184,-0.085277,-0.077607,-0.078566 -0.1263,-0.12703,-0.12484,-0.13399,-0.149,-0.1263,-0.1263,-0.12081,-0.14241,-0.1501,-0.12557,-0.1263,-0.12484,-0.1263,-0.14021,0.22807,0.22112,0.22368,-0.12337,-0.14131,0.49678,0.22112,0.22917,0.3983,0.21672 0.45667,-0.083685,-0.085947,-0.085665,-0.093299,0.45582,-0.085665,-0.086796,-0.086796,-0.088209,0.4578,-0.089058,-0.085947,-0.086796,-0.083402,0.4626,-0.09132,-0.088492,-0.086513,-0.083685,-0.089058,-0.089623,-0.087078,-0.085665,-0.090189 0.26798,-0.13678,-0.13927,-0.15174,-0.15285,0.26576,-0.13734,-0.14786,-0.15091,-0.15174,0.27213,0.25994,-0.1523,-0.15313,-0.15063,0.26798,0.26133,-0.15285,-0.15396,-0.15562,0.27269,0.26936,0.26188,-0.15423,-0.15784 0.14424,0.13667,0.12154,0.15181,0.11964,0.16505,0.14045,0.13856,0.12343,0.12721,0.1764,0.14802,0.12343,0.13478,0.12532,-0.29279,-0.29279,-0.29279,0.13099,0.11964,-0.28144,-0.29847,-0.29279,-0.28333,-0.29279 0.31734,0.31734,0.31734,0.029325,0.029325,0.31734,0.31734,0.029325,0.18643,0.029325,0.055509,0.055509,-0.023041,-0.023041,-0.023041,-0.12777,-0.049225,-0.12777,-0.28488,-0.12777,-0.28488,-0.12777,-0.20633,-0.28488,-0.31106 0.76535,0.25263,0.25212,0.24953,0.25728,-0.087116,-0.093829,-0.091763,-0.095378,-0.075757,-0.091247,-0.091763,-0.094861,-0.094345,-0.093829,-0.085567,-0.085051,-0.089698,-0.091763,-0.088665,-0.089698,-0.085567,-0.080404,-0.082469,-0.088149 0.45611,0.35906,0.32389,0.54331,0.032744,-0.0094518,-0.069932,-0.0052323,0.052435,0.035557,-0.076965,-0.031956,-0.064306,-0.14729,-0.18527,-0.16417,-0.031956,-0.14026,-0.1923,-0.17683,-0.11775,-0.015078,-0.068526,-0.1065,-0.19933 0.10412,0.11157,0.1107,0.11333,0.10017,0.10544,0.1164,0.11771,0.11464,0.10587,0.11333,0.12034,0.12034,0.11771,0.10807,0.11464,0.11289,0.11333,0.1142,-0.35975,-0.35624,-0.35361,-0.35317,-0.35448,-0.35755 0.10535,-0.068159,-0.07162,-0.079035,-0.076563,0.10782,-0.058272,-0.062227,-0.086944,-0.097325,0.10733,-0.069642,-0.082001,-0.082495,-0.094359,0.64468,-0.07854,-0.08991,-0.091887,-0.087933,0.64665,-0.079529,-0.081012,-0.088427,-0.085955 -0.31676,-0.31676,-0.26325,0.18264,0.1648,-0.30606,-0.29536,-0.084897,0.20047,0.18264,-0.20618,-0.21331,0.12556,0.18977,0.17193,-0.18121,-0.013555,0.11486,0.20761,0.17907,-0.1384,0.11486,0.1648,0.18977,0.14696 0.15895,0.21295,0.20504,0.20611,0.2023,0.2236,0.209,0.20884,0.20808,0.20565,-0.19018,-0.19018,-0.19109,0.21158,0.24109,-0.19185,-0.19155,-0.19201,-0.19094,-0.19429,-0.19216,-0.19277,-0.19185,-0.19201,-0.19231 0.026887,-0.12507,-0.13579,-0.14116,-0.13222,-0.028532,-0.064286,-0.13222,-0.13401,-0.13758,0.39515,-0.073224,-0.11077,-0.13758,-0.14473,0.40946,0.38622,-0.071437,-0.11434,-0.10183,0.37728,0.39158,-0.073224,-0.055347,-0.073224 -0.13978,-0.14087,-0.13814,-0.13814,-0.13978,-0.13596,-0.13678,-0.13705,-0.13814,-0.13732,-0.13569,-0.13487,-0.13542,-0.13651,-0.13651,-0.13432,0.28551,-0.13678,0.2945,0.30241,0.28878,0.29042,0.28551,0.28878,0.29614 -0.14063,-0.15706,-0.17465,-0.15002,-0.14415,-0.1289,-0.14415,-0.17465,-0.14298,-0.15354,-0.12421,-0.15119,-0.15002,-0.1465,0.010699,0.3333,0.35442,0.36146,0.02243,0.0083525,0.27934,0.34738,0.34738,0.011872,0.0060063 -0.014734,-0.16822,-0.16822,-0.24496,-0.24496,0.046659,-0.16822,-0.19892,-0.21426,-0.13752,0.092704,-0.06078,-0.13752,-0.10682,-0.18357,0.36898,0.33828,0.1234,0.015962,-0.045431,0.36898,0.35363,0.27689,0.062008,0.046659 0.17081,0.12538,-0.010903,-0.10176,-0.28347,0.034525,-0.056331,0.17081,-0.10176,-0.28347,0.3071,0.21624,0.17081,-0.056331,-0.28347,0.48881,-0.056331,-0.10176,-0.14719,-0.3289,0.17081,0.21624,-0.056331,-0.056331,-0.14719 -0.10791,-0.10708,-0.1115,0.27201,0.47962,-0.10791,-0.10764,-0.11067,-0.10433,0.50388,-0.10708,-0.10764,-0.10846,-0.1126,0.26622,-0.10791,-0.10736,-0.10901,-0.1126,0.27008,-0.10626,-0.10681,-0.10846,-0.1126,0.27201 -0.098731,-0.12452,-0.11808,0.26707,0.26531,-0.097266,-0.12892,-0.11427,0.26707,0.26443,-0.099611,-0.13537,-0.11456,-0.080852,0.26824,-0.10489,-0.15735,-0.080265,-0.082317,0.42066,-0.1893,-0.18344,-0.18842,-0.080558,0.42594 -0.29215,-0.28958,0.13528,0.13753,0.13936,-0.2933,-0.29152,0.13555,0.13764,0.13868,-0.29136,-0.28937,0.1367,0.13617,0.1345,-0.29267,0.14004,0.13602,0.13696,0.13528,-0.29236,0.138,0.13717,0.13795,0.13947 0.82847,0.16981,-0.11285,-0.15285,-0.15285,0.19114,0.084479,-0.11285,-0.14485,-0.14485,0.13781,0.063146,-0.070186,-0.13685,-0.12085,0.071146,0.047146,-0.062186,-0.12085,-0.12085,0.063146,0.02848,-0.035519,-0.094185,-0.10219 0.20051,0.19698,0.15114,0.085903,-0.16976,0.3257,0.26575,0.23578,0.092956,-0.22795,0.14762,0.22696,-0.16095,-0.18387,-0.27026,0.12117,0.011849,-0.0022569,-0.20503,-0.33021,0.13175,-0.016363,-0.033995,-0.26321,-0.33021 0.0030706,-0.11756,-0.10659,-0.20529,-0.23819,0.23337,-0.040795,-0.18336,-0.23819,-0.19433,0.2553,0.14564,-0.16143,-0.16143,-0.17239,0.26627,0.31013,-0.040795,-0.17239,-0.18336,0.29917,0.29917,0.29917,0.14564,-0.040795 0.18613,0.24288,-0.012484,-0.23947,-0.43809,0.18613,0.072636,-0.097604,-0.12598,-0.52321,0.10101,0.12938,0.15776,-0.15435,-0.26784,0.24288,0.2145,0.072636,-0.040858,-0.069231,0.15776,0.12938,0.10101,0.015889,-0.040858 0.10655,0.19247,0.33567,0.13519,0.19247,0.049263,0.13519,-0.0080195,0.27839,0.24975,0.049263,-0.036661,0.13519,-0.0080195,0.24975,-0.0080195,-0.093943,-0.15123,-0.20851,-0.17987,-0.20851,-0.17987,-0.35171,-0.29443,-0.38035 -0.16249,0.3012,0.11376,-0.16026,-0.16115,0.29383,0.30387,-0.15892,-0.16205,-0.1616,0.2193,0.30097,-0.15914,-0.1616,-0.1616,0.22131,0.21819,-0.15781,-0.16026,-0.16093,0.21908,0.21774,-0.15914,-0.16205,-0.16026 0.48739,0.2698,0.079418,0.079418,-0.08377,0.24261,0.24261,0.079418,-0.08377,-0.08377,0.2698,0.079418,-0.08377,-0.24696,-0.24696,-0.0021758,0.079418,-0.08377,-0.16536,-0.24696,0.16101,-0.0021758,-0.16536,-0.24696,-0.32855 -0.12261,-0.13425,-0.13284,-0.13566,-0.13671,0.2899,0.28884,-0.14095,-0.14059,-0.14588,0.2899,0.2899,-0.142,-0.14341,-0.14482,0.29096,0.29343,-0.142,-0.14024,-0.14095,0.29484,0.29343,-0.11768,-0.12896,-0.14165 0.45741,-0.086516,-0.086868,-0.087572,-0.085813,0.45741,-0.086751,-0.086516,-0.088393,-0.08593,0.45905,-0.086751,-0.086985,-0.087689,-0.08593,0.45905,-0.086516,-0.087572,-0.087572,-0.085343,-0.098009,-0.086751,-0.086751,-0.086868,-0.085813 -0.13502,-0.13648,-0.14524,-0.16567,-0.14524,-0.12335,-0.12335,-0.091241,-0.17297,-0.21383,-0.082485,-0.11313,-0.12043,-0.099998,-0.1788,-0.13502,-0.10292,0.26777,0.25172,0.2955,0.41663,0.28236,0.26923,0.24588,0.25609 0.29102,-0.12739,-0.12739,-0.1283,-0.12288,0.29523,0.30064,-0.12439,-0.12318,-0.12409,0.29884,0.29553,-0.12559,-0.12288,-0.12499,0.30305,-0.11085,-0.12439,-0.12529,-0.12228,0.44051,-0.12048,-0.12439,-0.12378,-0.12228 -0.3172,-0.10852,0.030607,0.030607,0.4132,-0.21286,-0.073736,-0.1433,0.20451,0.13495,-0.3172,-0.1433,-0.0041737,0.37842,0.065388,-0.28242,0.030607,0.065388,0.030607,0.20451,-0.3172,-0.10852,0.16973,0.065388,0.20451 0.23634,-0.052903,-0.11031,-0.088231,-0.097063,0.35116,-0.048487,-0.1346,-0.11031,-0.097063,0.37545,0.41298,-0.11473,-0.11694,-0.11473,0.3622,0.0045043,-0.14785,-0.13239,-0.12135,0.34453,-0.16993,-0.15226,-0.15226,-0.12577 0.12066,0.12864,0.1483,0.16672,0.1397,0.11759,0.12434,0.1526,0.17225,0.13785,0.11881,0.12803,0.12373,0.1397,0.13847,-0.28841,-0.29087,-0.28411,0.13233,0.13785,-0.29455,-0.29517,-0.29578,-0.2921,-0.28657 -0.092119,-0.10181,-0.075162,-0.089697,-0.076777,-0.080007,-0.076777,-0.062242,-0.082429,-0.042055,-0.075162,-0.052552,-0.086467,-0.067087,0.18889,-0.11473,-0.070317,-0.088889,0.19212,0.19293,-0.12361,-0.085659,-0.075162,0.201,0.84377 0.30464,0.22225,0.12663,0.094269,0.05602,0.36054,0.24579,0.15311,0.061904,-0.11022,0.30905,0.18106,0.15311,0.044251,-0.14405,-0.21908,-0.21172,-0.19113,-0.19554,-0.21466,-0.22349,-0.21466,-0.19848,-0.17936,-0.21025 -0.26519,-0.26434,-0.017024,-0.003724,0.029384,-0.058338,-0.051264,-0.018439,0.008161,0.017499,-0.058338,-0.038247,-0.016741,0.0095759,0.0070291,-0.058338,-0.041926,-0.015892,0.0047653,0.018631,0.91227,-0.015892,-0.027211,-0.082957,0.026554 -0.16711,-0.14719,-0.1391,0.24396,0.24396,-0.16508,-0.16595,0.24338,0.24396,0.24367,-0.16566,-0.16595,-0.16941,0.24454,0.24569,-0.16653,-0.16739,-0.16624,0.24656,0.24569,-0.16566,-0.16653,-0.16508,-0.16537,0.24685 0.80917,-0.0096069,-0.096943,-0.064192,-0.0096069,0.36157,-0.075109,-0.064192,-0.064192,-0.096943,0.20873,-0.10786,-0.031441,-0.075109,-0.10786,0.17598,-0.15153,-0.064192,-0.096943,-0.086026,-0.064192,-0.10786,-0.020524,-0.086026,-0.075109 0.22111,0.22537,-0.16805,-0.17799,-0.20782,0.23532,0.22395,0.22253,-0.17515,-0.19504,0.23247,0.22111,-0.15669,-0.18225,-0.19362,0.22963,0.22537,0.21117,-0.17373,-0.17941,0.22963,-0.15811,-0.15385,-0.17799,-0.17799 -0.16285,-0.16235,-0.1631,-0.16343,0.22755,-0.16211,-0.16244,-0.16301,0.277,0.225,-0.16112,-0.16293,-0.16326,0.30502,0.22393,-0.16186,-0.1631,-0.16128,0.22409,0.22302,-0.16244,-0.1626,0.22409,0.28706,0.22112 -0.39474,0.13081,0.072339,0.060172,0.056793,-0.39474,0.14027,0.1423,0.064228,0.06051,-0.39406,0.1325,0.061862,0.059834,0.061862,-0.39609,0.13926,0.13723,0.12337,0.058821,-0.39339,0.13824,0.13757,0.12743,0.067608 0.19677,0.18737,-0.21684,-0.23058,-0.22624,0.21051,0.20472,-0.23419,-0.22624,-0.2313,0.19749,0.20689,-0.08813,-0.22118,-0.23926,0.19749,0.22786,-0.089576,-0.086684,-0.10404,0.1917,0.3544,-0.08813,-0.08813,0.19532 -0.17833,-0.17833,-0.042545,0.093237,0.43269,-0.17833,-0.24622,-0.042545,0.16113,0.34217,-0.11044,-0.11044,-0.20096,0.1385,0.41006,0.025346,-0.11044,-0.17833,-0.11044,0.25165,-0.019915,-0.17833,-0.17833,-0.042545,0.25165 -0.11734,-0.11734,-0.13134,-0.13134,-0.061331,-0.11734,-0.12434,-0.096338,-0.082335,0.050689,-0.10334,-0.082335,-0.05433,-0.026325,0.26773,-0.089337,-0.096338,-0.068333,0.022684,0.35875,-0.075334,-0.075334,0.015683,0.15571,0.77883 0.093311,0.062867,0.028617,0.013395,-0.32529,0.074283,0.078089,0.024812,-0.0018266,-0.21874,0.089505,0.081894,0.043839,0.047645,-0.43185,0.11234,0.16562,0.21128,-0.23396,-0.43565,0.20748,0.18464,0.21509,0.23792,-0.32529 -0.50748,-0.13813,0.17581,0.12041,0.0096029,-0.41514,0.0096029,0.17581,0.065004,0.065004,-0.35974,-0.045799,0.19427,0.13887,0.12041,-0.28587,0.02807,0.24968,0.13887,0.02807,-0.212,0.083472,0.15734,0.12041,0.083472 0.24667,0.2556,0.23105,0.23296,0.25688,0.24061,0.24635,0.2438,0.25496,-0.1637,-0.14202,0.23679,-0.16562,-0.16498,-0.16626,-0.13628,-0.16657,-0.16912,-0.16753,-0.17008,-0.13947,-0.17104,-0.17008,-0.17678,-0.17614 0.62067,0.62262,0.18629,-0.026023,-0.084459,0.14734,0.051891,-0.063033,-0.096147,-0.11173,-0.035763,-0.080564,-0.092251,-0.11563,-0.12342,-0.070824,-0.084459,-0.10394,-0.11368,-0.12342,0.047995,-0.026023,-0.096147,-0.11368,-0.11563 -0.13973,-0.13384,-0.12206,-0.12206,-0.12795,-0.11617,-0.13973,-0.13384,-0.12206,-0.14562,-0.057259,-0.039586,-0.098494,-0.086713,-0.11617,0.084121,0.066448,0.019322,-0.016023,-0.086713,0.42579,0.46702,0.47881,0.36688,-0.10439 0.21711,-0.18382,-0.18308,-0.17681,-0.17939,0.20788,0.2352,-0.17718,-0.17644,-0.17828,0.20751,0.21342,-0.17828,-0.17644,-0.17644,0.21489,0.22043,0.24369,-0.17422,-0.17496,0.2555,0.22412,0.23889,-0.17201,-0.17127 -0.14827,-0.14827,-0.14428,0.23074,0.20809,-0.15027,-0.14561,-0.15094,0.23407,0.21675,-0.14494,-0.14628,-0.15027,-0.15427,0.23806,-0.14694,-0.14694,-0.1516,0.3553,0.27736,-0.14628,-0.14894,-0.15027,0.32799,0.28602 0.34714,0.30995,0.31615,0.034094,-0.12708,0.30065,0.31615,0.17667,-0.18597,-0.14258,0.26656,0.21387,-0.099184,-0.10848,-0.20457,-0.068189,-0.12708,-0.16737,-0.16737,-0.14258,-0.13018,-0.14878,-0.15497,-0.18597,-0.12088 -0.24256,0.017326,0.082298,-0.069304,0.10396,-0.39416,-0.025989,0.017326,0.038983,0.038983,-0.37251,-0.15593,0.25556,0.10396,0.14727,-0.32919,-0.025989,0.16893,0.19059,0.2339,-0.37251,-0.025989,0.16893,0.19059,0.25556 -0.29099,-0.29099,-0.29099,-0.26892,-0.23582,-0.20272,-0.19904,-0.21375,-0.1972,0.13196,0.22391,0.20552,-0.20088,0.1577,0.10989,0.12093,0.16506,0.19448,0.14667,0.11541,0.093343,0.10805,0.24046,0.21655,0.16138 -0.28582,0.038975,0.075063,0.14724,0.29159,-0.32191,-0.24973,-0.24973,0.11115,0.29159,-0.10538,-0.069289,-0.069289,0.29159,0.29159,-0.21364,0.0028871,-0.14147,0.14724,0.18333,-0.32191,-0.069289,-0.069289,0.21942,0.075063 0.14959,-0.11344,-0.13817,-0.15166,-0.17077,0.15634,-0.095457,-0.11007,-0.14492,-0.16178,0.40251,0.20804,-0.10557,-0.15278,-0.14492,0.40588,0.40026,-0.086464,-0.11569,-0.10108,0.39127,-0.034757,-0.058362,-0.10557,-0.12243 -0.12275,-0.14921,-0.13334,-0.11746,-0.05926,-0.13334,-0.12804,-0.13334,-0.11746,0.33757,-0.11746,-0.11746,-0.11746,-0.01164,0.34815,-0.14392,-0.12275,-0.11217,0.16297,0.40635,-0.10159,-0.11217,0.035979,0.25291,0.50689 -0.28766,-0.11311,-0.0083783,0.20108,0.20108,-0.18293,-0.14802,-0.078197,0.34072,0.09635,-0.21784,-0.21784,0.20108,0.34072,0.30581,-0.32256,-0.11311,-0.078197,0.2709,0.061441,-0.21784,-0.11311,-0.11311,0.09635,0.09635 0.32335,0.3252,0.3122,0.30849,0.30106,0.33449,0.33077,-0.0982,-0.064773,-0.0982,-0.12048,-0.15948,-0.11863,-0.13905,-0.13534,-0.13905,-0.12977,-0.1372,-0.13163,-0.12791,-0.12048,-0.12048,-0.12234,-0.14463,-0.12791 0.36394,0.38273,0.36018,0.29629,0.044496,0.34891,0.2775,-0.049457,-0.13214,-0.14341,0.11214,-0.098313,-0.12838,-0.13965,-0.15093,-0.12086,-0.12838,-0.13965,-0.13965,-0.13965,-0.12838,-0.12086,-0.13965,-0.14717,-0.13965 0.0026515,-0.24373,-0.23873,-0.23373,-0.22497,0.0026515,0.057682,-0.20872,-0.21372,-0.23123,0.040172,0.062685,-0.20872,-0.21122,-0.25624,0.22778,0.28781,0.28781,0.21902,0.10146,0.17275,0.15899,0.20401,0.24654,0.19901 0.31624,-0.12334,-0.12585,-0.12835,-0.12441,0.31803,0.3166,-0.1237,-0.12549,-0.12406,0.32412,0.31911,-0.12513,-0.12441,-0.12334,0.32376,-0.1237,-0.12406,-0.12585,-0.12406,0.32698,-0.12298,-0.12513,-0.12728,-0.1237 0.36058,0.35723,-0.10222,-0.1324,-0.14582,0.35052,0.33375,-0.10557,-0.14246,-0.13575,0.35052,0.26333,-0.1324,-0.13911,-0.17264,0.062109,-0.035146,-0.12569,-0.17264,-0.18606,0.021866,-0.075389,-0.14582,-0.18941,0.038634 -0.094354,-0.094069,-0.093785,-0.094069,-0.094354,-0.094069,-0.093216,-0.094069,-0.093216,-0.094069,-0.092363,-0.092363,-0.09151,-0.092363,-0.093216,-0.090657,-0.095207,-0.092648,-0.093785,-0.093501,0.304,0.31935,0.27869,0.27244,0.6924 0.26198,0.25858,0.26101,-0.14421,-0.14033,0.26392,0.26586,-0.14566,-0.151,-0.14663,0.26829,0.26829,-0.14809,-0.15197,-0.15294,0.27265,-0.14518,-0.14615,-0.15537,-0.15731,0.27848,-0.14761,-0.14809,-0.15731,-0.16119 -0.27708,-0.23481,0.2513,0.16411,0.055796,-0.2718,-0.23481,0.24073,0.16411,0.082215,-0.24009,-0.22688,0.24337,0.14826,0.071648,-0.23217,-0.18726,0.23809,0.14298,0.058438,-0.23217,-0.21103,0.24073,0.15883,0.087499 -0.1406,-0.14485,-0.14272,-0.14131,-0.13707,-0.13778,-0.13636,-0.1399,-0.14626,-0.13778,-0.12717,-0.13071,-0.11869,-0.13424,-0.1293,0.28067,0.32025,0.36549,-0.11445,-0.11304,0.29622,0.30824,0.38104,0.14496,0.17535 -0.2835,-0.13093,0.20195,0.14647,-0.0061028,-0.26963,-0.17254,0.24356,0.18808,0.10486,-0.22802,-0.24189,0.24356,0.1326,0.077117,-0.29737,-0.26963,0.1326,0.25743,0.077117,-0.17254,-0.24189,0.20195,0.22969,0.077117 -0.24268,-0.24497,-0.24405,-0.24314,-0.24405,-0.24359,-0.24268,-0.24314,-0.24726,0.12367,0.15989,0.15806,-0.24222,0.19107,0.14293,0.16081,0.16264,0.15806,0.1984,0.131,0.16172,0.1764,0.18236,0.20941,0.12138 -0.388,-0.388,-0.39482,-0.39311,-0.3988,0.07986,0.12591,0.13273,0.057121,0.13557,0.043477,0.061669,0.13955,0.066785,0.11681,0.049731,0.069059,0.15149,0.075312,0.06849,0.049731,0.11681,0.15945,0.19469,0.06849 0.58056,0.46754,0.41001,0.34776,-0.087986,-0.083769,-0.085793,-0.085793,-0.085793,-0.086637,-0.084781,-0.085287,-0.085456,-0.08613,-0.087143,-0.085962,-0.085793,-0.085456,-0.08613,-0.086468,-0.085456,-0.086468,-0.086637,-0.085793,-0.087143 -0.11348,0.0019925,-0.0048002,0.0019925,0.013314,-0.11688,-0.14518,-0.096502,0.021239,0.065391,-0.096502,-0.12933,0.029163,0.020106,0.0076531,-0.002536,-0.091974,0.013314,-0.071595,-0.11122,0.92014,0.088034,0.033692,-0.093106,-0.14292 -0.16307,-0.16332,-0.16224,-0.16233,0.22981,-0.16349,-0.16241,-0.16257,0.22757,0.22956,-0.16399,-0.16382,-0.16531,0.23022,0.22964,-0.16274,-0.16307,-0.16316,0.25984,0.25793,-0.16257,-0.16249,0.2625,0.26076,0.25876 -0.084988,0.45804,0.45838,0.45889,0.45769,-0.085675,-0.085675,-0.085846,-0.086018,-0.085503,-0.087564,-0.087564,-0.086705,-0.086877,-0.086705,-0.088422,-0.088251,-0.088251,-0.088251,-0.088251,-0.088938,-0.087907,-0.088594,-0.088594,-0.088422 0.29229,0.29111,0.29086,0.29246,0.29111,-0.13619,-0.13602,0.29145,0.29457,0.28849,-0.13678,-0.13627,-0.13627,-0.13636,-0.13627,-0.1372,-0.13729,-0.1372,-0.13745,-0.13703,-0.13838,-0.13847,-0.13838,-0.1383,-0.13847 0.18994,0.1743,0.23326,0.1731,-0.23239,0.17731,0.17009,0.085864,0.13399,-0.23059,0.17972,0.18333,0.087067,-0.25465,-0.27932,0.15565,0.08466,0.097294,-0.26248,-0.27631,0.12316,0.10933,-0.24563,-0.28173,-0.29496 -0.16265,-0.16319,-0.1639,-0.16444,-0.16551,-0.16283,-0.16319,-0.16372,-0.16372,-0.16497,-0.16176,-0.16176,-0.16176,-0.16319,0.23742,-0.16104,0.25707,0.25421,0.24045,0.23956,0.26475,0.25939,0.23563,0.22634,0.23277 0.24642,0.18662,-0.17859,-0.17894,-0.17289,0.24037,0.19018,-0.17894,-0.17645,-0.17289,0.22649,0.1852,-0.17894,-0.17645,0.25461,0.23894,0.24927,-0.17894,-0.17645,-0.17467,0.23005,0.22542,-0.18144,-0.17361,-0.17432 -0.13229,-0.13141,-0.13133,0.32238,0.3207,-0.13237,-0.13253,-0.13181,0.31813,0.31837,-0.13229,-0.13125,-0.13093,-0.13213,0.31934,-0.12972,-0.13052,-0.13141,-0.089636,0.32078,-0.13133,-0.13044,-0.089235,-0.089395,0.3203 0.18151,0.087462,-0.053606,-0.33574,-0.14765,0.39311,0.18151,-0.12414,-0.030094,-0.030094,0.29906,0.20502,-0.053606,-0.26521,-0.21818,0.3696,0.040439,-0.19467,-0.14765,-0.19467,0.25204,-0.0065832,-0.19467,0.11097,-0.12414 -0.033983,-0.045211,-0.022755,-0.033983,-0.060181,-0.10884,-0.10884,-0.11258,-0.093865,-0.12381,-0.11258,-0.10884,-0.10884,-0.10135,-0.11258,-0.097608,-0.082637,-0.097608,-0.10135,-0.060181,0.13443,0.18683,0.25794,0.737,0.41139 -0.25335,-0.289,-0.30088,-0.31752,-0.289,0.13167,-0.20344,-0.15353,-0.14402,-0.24622,0.12454,0.10552,0.096016,0.40973,-0.046582,0.1079,0.086509,0.11265,0.24099,0.1388,0.11265,0.11978,0.11741,0.15781,0.18157 -0.027576,-0.036247,-0.29206,-0.40045,-0.33975,-0.049255,0.0027749,-0.19667,-0.22702,-0.17066,0.085155,0.0027749,-0.049255,-0.088277,-0.049255,0.31495,0.033126,0.05914,-0.010232,0.098163,0.38433,0.2846,0.26292,0.19355,0.21523 0.37073,0.38832,-0.072253,-0.11703,-0.11463,0.34274,0.34754,-0.097041,-0.12343,-0.12263,0.33795,-0.062657,-0.11143,-0.12663,-0.13142,0.33475,-0.093842,-0.11943,-0.13142,-0.13462,-0.065056,-0.09784,-0.12743,-0.13462,-0.13862 -0.22049,-0.23777,-0.21857,0.27469,0.26894,-0.26272,-0.26847,-0.27231,0.23439,0.26894,-0.1917,-0.21473,-0.20322,0.20752,0.18832,-0.072704,-0.078462,0.13458,0.13842,0.1864,-0.080381,0.00023032,0.094277,0.12691,0.19792 0.18535,0.18369,0.18424,0.18424,-0.18159,0.1859,0.18397,0.18535,-0.21687,-0.19592,0.19389,0.19279,-0.21329,-0.21301,-0.2064,0.19941,0.20051,-0.21301,-0.21329,-0.21412,0.20768,0.20823,-0.20088,-0.21219,-0.21467 -0.13116,-0.26981,-0.26981,-0.26981,-0.24901,0.14614,0.014419,-0.16582,-0.15889,-0.22822,0.24319,0.18773,-0.027175,-0.11036,-0.13116,0.29865,0.20853,0.062947,-0.075702,-0.10343,0.34024,0.30558,0.27092,0.12534,-0.01331 0.1748,0.18025,0.18942,0.19028,-0.22636,0.17824,0.19572,0.18798,-0.22435,-0.22664,0.18483,0.18569,0.18025,-0.22521,-0.22521,0.15532,0.15646,-0.22406,-0.22492,-0.22578,0.15245,0.16707,-0.22435,-0.22521,-0.22664 0.25687,0.24309,0.1941,-0.040107,-0.19778,0.26605,0.2385,0.18186,-0.20696,-0.21003,0.27218,-0.037045,0.16961,-0.1442,-0.22993,0.27371,-0.11818,-0.072254,-0.18553,-0.22839,0.26299,-0.1442,-0.15185,-0.18553,-0.20696 -0.2904,-0.29192,0.13866,0.13623,0.13684,-0.28827,-0.29252,0.13805,0.13805,0.13805,-0.28827,-0.29344,0.13866,0.13805,0.13623,-0.29101,0.13866,0.13684,0.13623,0.13501,-0.29647,0.13744,0.13684,0.13744,0.13501 0.17904,-0.10053,-0.11315,-0.072376,-0.085966,0.22272,-0.09179,-0.12479,-0.118,-0.10829,0.061582,-0.073347,-0.11509,-0.13062,-0.12576,0.49355,0.22757,-0.11315,-0.13741,-0.13256,0.50131,0.35765,-0.11509,-0.14227,-0.14324 0.58946,0.44942,-0.073036,-0.089195,-0.089195,0.4979,0.013142,-0.040719,-0.078422,-0.11074,0.067004,-0.024561,-0.089195,-0.14306,-0.14306,0.07239,0.0023699,-0.11613,-0.11613,-0.14306,0.013142,-0.06765,-0.15383,-0.099967,-0.1269 0.43544,0.43544,0.36549,0.076945,0.068201,0.006995,0.25182,0.30428,0.024482,0.050714,-0.17662,-0.071698,-0.10667,-0.054211,-0.019236,-0.18537,-0.18537,-0.14165,-0.10667,-0.10667,-0.2116,-0.17662,-0.20285,-0.1329,-0.14165 0.0014349,0.055244,0.14493,0.10905,0.11802,-0.35729,0.02834,0.11802,0.11802,0.14493,-0.33039,-0.16896,0.082149,0.11802,0.082149,-0.35729,-0.24967,0.2077,0.14493,0.17183,-0.35729,-0.33039,0.13596,0.1808,0.18977 -0.19654,-0.25114,-0.11465,-0.0054595,0.10373,-0.11465,-0.087352,-0.11465,0.15833,0.18562,-0.19654,-0.0054595,-0.0054595,-0.032757,0.4313,-0.22384,-0.16924,0.076433,-0.032757,0.404,-0.22384,-0.11465,-0.032757,0.076433,0.4859 -0.19107,-0.23386,-0.22642,-0.21154,-0.23758,-0.17061,-0.14085,-0.15015,-0.19107,-0.2599,-0.17061,0.13631,0.17351,0.22932,-0.18549,-0.081325,0.20514,0.19398,0.22002,0.25722,0.1884,0.19584,0.20886,0.21816,0.22374 -0.22356,-0.23754,-0.23954,-0.23854,-0.24054,0.16003,-0.22056,-0.21956,-0.22655,-0.23255,0.17002,0.16602,0.16802,-0.1866,-0.21157,0.182,0.17801,0.17801,0.17401,0.16402,0.186,0.19199,0.187,0.184,0.188 -0.28913,-0.31755,-0.33594,-0.33594,-0.35601,0.11216,0.10213,0.10213,-0.30919,-0.29414,0.12052,0.1155,0.12386,0.1155,0.10882,0.1339,0.12721,0.12554,0.12888,0.12888,0.14226,0.13557,0.14226,0.13724,0.13557 -0.16559,-0.17614,-0.15505,-0.13748,-0.14451,-0.15856,-0.098822,-0.08125,-0.070707,-0.095307,-0.15505,-0.05665,-0.042593,-0.042593,-0.063679,-0.035565,-0.028536,-0.035565,0.020664,0.045264,0.06635,0.21395,0.32641,0.69541,0.37561 -0.13643,-0.072583,-0.068464,-0.064345,-0.051987,-0.14055,-0.14055,-0.13849,-0.13849,-0.13849,-0.051987,-0.056106,-0.060225,-0.060225,-0.060225,-0.064345,-0.068464,-0.076703,-0.080822,-0.068464,0.45882,0.45058,0.44646,0.4547,-0.072583 -0.13685,-0.12203,-0.14744,-0.14109,-0.12627,-0.13474,-0.13474,-0.1432,-0.13897,-0.12415,-0.14109,-0.14109,-0.1432,-0.14109,-0.1305,-0.14956,-0.13474,0.28658,0.30563,0.29505,0.28446,0.29293,0.29505,0.28023,0.29081 0.31473,0.31576,-0.12003,-0.12106,-0.12287,0.3186,-0.12313,-0.12209,-0.12519,-0.12493,0.32093,-0.12158,-0.12287,-0.127,-0.1301,0.323,-0.12338,-0.12416,-0.12648,-0.13062,0.32661,0.32506,-0.12623,-0.12674,-0.12623 -0.36279,-0.29372,0.096146,0.097681,0.093076,-0.35665,0.10843,0.10689,0.096146,0.10075,-0.35818,0.10382,0.097681,0.10536,0.11303,-0.36739,0.10996,0.099216,0.10382,0.1207,-0.37967,0.094611,0.13145,0.13759,0.20205 -0.18207,-0.18464,-0.19618,-0.19673,-0.080941,-0.18793,-0.19691,-0.19856,-0.19819,-0.077277,-0.19251,-0.19709,-0.20039,0.2197,-0.076544,0.42947,0.15228,0.15595,0.21988,0.21842,0.2186,0.16291,0.15814,0.2153,0.2153 -0.19067,-0.18031,-0.090499,-0.035232,0.0010362,0.11502,0.0044904,-0.083591,-0.050776,0.023488,0.056303,-0.11813,-0.055957,-0.050776,0.023488,-0.13713,-0.076682,-0.030051,-0.01278,0.021761,0.91984,-0.01278,-0.049049,0.0044904,0.0044904 -0.21684,-0.21599,-0.21563,-0.21599,-0.21551,-0.21539,-0.21551,-0.21575,-0.21563,-0.21479,0.15224,0.078354,0.078233,0.078596,0.07521,0.15164,0.57248,0.20715,0.07654,0.076419,0.072429,0.15382,0.15382,0.15418,0.075936 0.50228,0.0016436,-0.067311,-0.10935,-0.1561,0.50936,0.03376,-0.057393,-0.11312,-0.14477,0.051235,-0.00024559,-0.068728,-0.12304,-0.15044,0.524,0.0044774,-0.086676,-0.11265,-0.15752,0.049818,0.013923,-0.076757,-0.11832,-0.14807 0.29388,-0.048136,-0.25081,-0.11147,-0.073471,0.34455,-0.022801,-0.22548,-0.17481,-0.022801,0.34455,0.078538,-0.22548,-0.13681,0.06587,0.36989,0.10387,-0.23815,-0.13681,-0.060803,0.36989,0.053203,-0.16214,-0.18748,0.053203 -0.29284,0.13636,0.13415,0.13599,0.13378,-0.28953,0.13415,0.13709,0.13341,0.13304,-0.28953,-0.28585,0.13599,0.13525,0.13525,-0.29247,-0.298,0.14151,0.14114,0.14188,-0.2899,-0.29395,0.14077,0.14188,0.14041 -0.10016,-0.30598,-0.40889,-0.5118,-0.34029,-0.031559,0.0027442,-0.031559,-0.10016,-0.10016,0.10565,0.20856,0.037047,0.10565,0.0027442,0.20856,0.20856,0.20856,0.10565,0.10565,0.10565,0.07135,0.27717,0.07135,0.10565 -0.19567,-0.10099,0.15149,0.35662,0.35662,-0.11677,-0.19567,0.15149,0.23039,0.23039,-0.16411,-0.19567,0.0094679,0.10415,0.15149,-0.17989,-0.24301,-0.19567,0.15149,0.23039,-0.21145,-0.16411,-0.25879,-0.10099,0.19883 -0.22681,-0.22339,-0.22339,-0.21656,-0.22169,-0.22681,-0.2251,-0.1995,-0.14658,0.066772,-0.21486,-0.14146,0.059944,0.17601,0.19137,-0.064655,0.090668,0.1248,0.2477,0.22209,0.14187,0.099202,0.26989,0.34157,0.2989 -0.16645,-0.16492,-0.16492,-0.16799,-0.16799,-0.15467,-0.15621,-0.15416,-0.15569,-0.15723,-0.026069,-0.02197,-0.020945,-0.020945,-0.090113,0.11124,0.10971,0.11022,0.09536,-0.10241,0.46631,0.46016,0.46323,0.15531,-0.078841 -0.39014,0.14796,0.087379,0.083815,0.090942,-0.3937,0.1444,0.087379,0.05887,0.073124,-0.38658,0.15509,0.10163,0.076688,0.076688,-0.38301,0.10876,0.12301,0.098069,0.069561,-0.42934,0.1444,0.090942,0.076688,0.087379 0.9459,-0.066953,-0.078534,-0.066062,-0.058045,-0.076752,-0.079425,-0.068735,0.07914,-0.056264,-0.080315,-0.068735,-0.058045,-0.060718,-0.022413,0.088048,-0.059827,-0.067844,-0.037557,-0.048246,0.076467,-0.068735,-0.074971,0.058651,-0.050028 -0.28438,-0.29034,-0.28676,-0.29391,-0.29153,0.1388,0.12629,-0.29153,-0.28915,-0.29451,0.1549,0.16801,0.15311,0.093505,0.16384,0.12927,0.11139,0.12092,0.14834,0.109,0.12033,0.10841,0.1549,0.15728,0.16384 0.24563,0.2514,0.25532,0.25024,0.25024,-0.013581,0.24909,0.25509,0.24886,0.24955,-0.18946,-0.19039,-0.19039,-0.19039,-0.19085,-0.1897,-0.19062,-0.18993,-0.19062,-0.19039,-0.1897,-0.18877,0.0030376,0.0081156,0.028197 -0.137,-0.13667,-0.13692,-0.13676,-0.13627,-0.13643,-0.13627,-0.13635,-0.13619,-0.13659,-0.13554,-0.13586,-0.13586,-0.13594,-0.1357,-0.13586,-0.13651,0.30621,0.27935,0.2352,0.34849,0.34159,0.30199,0.27277,0.23114 0.19738,0.19149,0.18855,0.19051,-0.28184,0.15025,0.15025,0.1473,0.15025,-0.28184,0.11882,0.11489,0.11391,0.11097,-0.29264,0.087398,0.087398,0.07856,-0.28969,-0.33977,0.03437,0.028478,0.035352,-0.30246,-0.38789 -0.16478,-0.17205,-0.20114,-0.23023,-0.25931,-0.1466,-0.17205,-0.15387,-0.16842,-0.15751,-0.026615,0.01338,-0.033887,-0.12478,-0.059338,0.10428,0.12246,0.34061,0.34061,0.33698,-0.077518,0.09337,0.11155,0.35516,0.32971 -0.091921,-0.091757,-0.091594,-0.092085,-0.091921,-0.091102,-0.09012,-0.090284,-0.090447,-0.090284,-0.0875,-0.087827,-0.088319,-0.089465,-0.088319,-0.087172,-0.088319,-0.087827,-0.087172,-0.082587,0.39637,0.40096,0.41848,0.5891,-0.01889 0.3166,0.3166,0.34083,0.28334,0.33056,-0.13508,-0.13754,0.26404,0.12033,0.31783,-0.13508,-0.13549,-0.13836,-0.13138,-0.13015,-0.13343,-0.13426,-0.13179,-0.13426,-0.13713,-0.13467,-0.1359,-0.13631,-0.13467,-0.13467 -0.19155,-0.19322,-0.19197,-0.19405,-0.19197,-0.1903,-0.1903,-0.19072,-0.18864,-0.19072,-0.19113,-0.18822,-0.19488,0.24231,0.24273,0.1732,0.19193,0.19401,0.24023,0.24523,0.18194,0.20859,0.18902,0.19152,0.18694 -0.13781,-0.13832,-0.13798,-0.13798,-0.13832,-0.13695,-0.13738,-0.13729,-0.13789,-0.13755,-0.13704,-0.13704,-0.13712,-0.13738,-0.13686,0.29116,0.29039,-0.13258,-0.13686,0.29193,0.29244,0.29124,0.29141,0.29176,0.29201 -0.13328,-0.34825,-0.061624,0.010032,0.18917,-0.13328,-0.16911,0.081687,0.04586,0.18917,-0.16911,-0.13328,-0.097452,0.081687,0.47579,-0.061624,-0.16911,-0.097452,0.225,0.33248,-0.16911,-0.20494,-0.061624,-0.025796,0.40414 0.08773,-0.059715,-0.18259,-0.23788,-0.2133,0.13073,0.069299,-0.20716,-0.21945,-0.23173,0.13073,0.20446,-0.065859,-0.20102,-0.18873,0.2106,0.38262,-0.059715,-0.11501,-0.065859,0.34576,0.4502,0.075443,0.038581,-0.078146 0.28913,0.28913,0.35732,0.25503,0.084556,0.084556,0.18684,0.11865,0.050461,0.18684,0.050461,-0.017729,0.050461,-0.12001,0.084556,-0.15411,-0.017729,-0.15411,-0.12001,-0.29049,-0.29049,-0.12001,-0.39277,-0.32458,-0.085919 0.21957,0.27859,0.21957,0.33762,0.34942,-0.040136,0.030692,0.054302,0.23137,0.24318,-0.21721,-0.14638,-0.087356,0.054302,0.16055,-0.21721,-0.24082,-0.21721,-0.13457,0.042497,-0.1936,-0.26443,-0.2054,-0.2054,-0.051941 -0.14239,-0.23495,-0.20647,-0.25631,-0.19223,0.12103,-0.13527,-0.18511,-0.19935,-0.17799,0.23495,0.14239,-0.092555,-0.14239,-0.14951,0.24919,0.25631,0.14239,-0.092555,-0.071196,0.3275,0.3275,0.32038,0.18511,-0.028479 -0.13595,-0.13953,-0.14311,-0.13197,0.25849,-0.13833,-0.14072,-0.14669,-0.14709,0.26127,-0.13197,-0.13197,-0.1447,0.2955,0.31102,-0.13435,-0.13197,-0.13117,0.29869,0.30187,-0.13197,-0.13276,-0.13435,0.30306,0.29869 0.12599,0.13115,0.13162,-0.21632,-0.21632,0.12763,0.13513,0.13115,-0.21351,-0.21562,0.15178,0.15061,0.15108,-0.21632,-0.21538,0.1485,0.27581,0.42985,-0.21538,-0.21609,0.13912,0.13584,-0.20999,-0.21562,-0.21468 -0.13703,-0.13739,-0.13865,0.37362,0.26774,-0.13784,-0.13739,-0.13703,0.29108,0.26927,-0.13712,-0.13613,-0.13658,0.28171,0.27396,-0.13667,-0.13631,-0.13658,-0.13442,0.27954,-0.13676,-0.13649,-0.13496,-0.13523,0.28567 -0.29016,-0.29133,-0.2925,-0.29133,-0.2925,0.14079,0.14196,-0.29289,-0.28665,-0.29016,0.15015,0.13143,0.13767,0.13026,0.11778,0.16419,0.1521,0.13884,0.12831,0.11076,0.16263,0.14898,0.13455,0.12909,0.10803 0.12217,0.27426,0.23624,-0.10595,-0.0045625,0.13485,0.32495,0.12217,-0.10595,-0.34675,0.1602,0.27426,0.12217,-0.20734,-0.27071,0.033459,0.24891,0.058806,-0.20734,-0.27071,0.020785,-0.02991,-0.055257,-0.18199,-0.34675 0.1206,0.12557,0.1206,-0.32481,-0.32091,0.12096,0.1284,0.12982,-0.32552,-0.32162,0.11883,0.12805,0.1284,0.12911,-0.3202,0.11883,0.11954,0.12273,0.13053,-0.31595,0.11777,0.11883,0.11847,0.14685,-0.31488 0.066249,-0.023863,-0.026993,-0.051814,-0.2544,0.47321,-0.027441,-0.02923,-0.054497,-0.054497,0.47522,-0.035938,-0.040186,-0.053826,-0.057404,0.48327,-0.033925,-0.050248,-0.056733,-0.2468,0.18208,-0.038174,-0.050025,-0.2468,-0.24724 0.003453,0.003453,0.024171,0.036256,0.96856,-0.027624,-0.032803,-0.037983,-0.027624,-0.017265,-0.044888,-0.051794,-0.0587,-0.039709,-0.037983,-0.0587,-0.065606,-0.065606,-0.051794,-0.053521,-0.08805,-0.074239,-0.069059,-0.067333,-0.065606 -0.37982,0.11927,0.12467,0.12713,0.13204,-0.37785,0.11387,0.1259,0.12197,0.12467,-0.37908,0.11534,0.12295,0.13081,0.1286,-0.38424,-0.016978,0.12786,0.19341,-0.020415,-0.38252,-0.016733,-0.018451,0.18752,-0.019924 -0.085684,-0.039986,-0.054266,0.054266,-0.082827,-0.10568,-0.099964,-0.03713,0.25419,-0.0085684,-0.034273,-0.062835,-0.068547,-0.03713,-0.085684,-0.03713,0,-0.08854,-0.082827,-0.082827,0.91681,0.0028561,0,-0.062835,-0.071403 -0.14772,-0.14682,-0.14682,-0.14953,-0.15223,-0.12786,-0.12967,-0.14321,-0.14772,-0.14862,-0.12605,-0.12064,-0.12605,-0.12786,-0.13328,0.27385,0.28197,-0.13237,-0.11522,0.36683,0.27655,0.28197,0.27655,0.291,0.27294 -0.37728,-0.19014,-0.040423,-0.32113,-0.48956,-0.13399,0.034434,0.034434,-0.13399,-0.32113,0.10929,0.090576,0.090576,0.034434,-0.077851,0.14672,0.20286,0.14672,0.14672,0.090576,0.20286,0.20286,0.14672,0.20286,0.20286 0.37873,0.41898,0.18883,0.18775,-0.12506,0.38305,0.18721,0.18478,0.18208,0.18019,-0.14451,-0.14451,-0.14343,-0.1437,-0.14397,-0.14505,-0.14478,-0.14451,-0.14559,-0.14451,-0.14397,-0.14451,-0.14478,-0.14451,-0.14424 0.59114,0.23061,0.10129,0.039893,0.0098492,0.55456,0.21101,0.050997,-0.011051,-0.0084385,-0.098571,-0.081589,-0.06722,-0.036523,-0.059383,-0.15409,-0.15213,-0.15017,-0.14952,-0.14756,-0.12339,-0.12143,-0.13384,-0.14429,-0.15017 -0.19838,-0.1856,-0.16817,0.19778,0.18035,-0.19722,-0.1705,-0.18444,0.19313,0.19197,-0.19489,-0.19141,-0.1856,0.20823,0.19661,-0.19141,-0.19722,0.2791,0.22682,0.18035,-0.21232,-0.20303,0.26516,0.18035,0.18035 -0.1549,-0.15151,-0.14811,0.14298,0.14163,-0.15354,-0.15626,-0.14676,0.13959,0.13348,-0.15354,-0.15286,-0.15015,0.1457,0.13823,-0.14404,-0.14811,-0.14811,0.40897,0.13959,-0.14268,-0.14268,-0.14608,0.4239,0.42526 -0.23945,-0.23945,-0.23987,0.18562,0.17664,-0.24154,-0.23695,0.18771,0.17288,0.17726,-0.243,-0.23799,0.16411,0.14363,0.14593,-0.26598,-0.24091,0.15324,0.14572,0.17162,-0.2593,0.15074,0.15262,0.14865,0.16807 -0.16894,-0.18667,-0.17603,0.2246,0.090763,-0.19287,-0.19287,-0.16539,0.15281,0.071263,-0.17603,-0.1973,0.21663,0.20776,0.13331,-0.22833,-0.1911,0.20422,0.18738,0.30438,-0.28328,-0.26201,0.18915,0.21574,0.22283 -0.11391,-0.05667,-0.013738,-0.013738,-0.042359,-0.14253,-0.070981,-0.099602,0.014883,0.029194,-0.15684,-0.085291,-0.05667,-0.085291,0.32972,-0.12822,-0.05667,-0.070981,-0.11391,0.45851,-0.11391,-0.099602,-0.085291,0.057815,0.7161 0.10557,0.13172,0.11047,0.11538,-0.32096,0.1072,0.12028,0.10394,0.11538,-0.32423,0.10884,0.10884,0.10557,-0.28664,-0.32586,0.11374,0.12518,0.10557,-0.30462,-0.33567,0.18401,0.19055,0.14316,0.13499,-0.3324 -0.13482,-0.11127,-0.098514,-0.097042,0.38522,-0.12403,-0.11274,-0.085758,-0.090664,0.3553,-0.11814,-0.11078,-0.096551,-0.1044,0.32782,-0.15248,-0.14463,-0.10931,0.34499,0.34254,-0.15297,-0.15395,-0.14905,0.054555,0.33665 -0.16411,0.016727,0.24277,0.3897,0.46882,-0.16411,-0.051087,0.12975,0.29929,0.3784,-0.1302,-0.096296,-0.062389,0.061937,0.11845,-0.16411,-0.16411,-0.1189,-0.1302,-0.096296,-0.17541,-0.19802,-0.1302,-0.1302,-0.1302 0.18527,0.10422,0.19685,0.13895,0.16211,0.16211,0.15053,0.16211,0.17369,0.081056,0.15053,0.13895,0.10422,0.13895,-0.069477,0.023159,0,0,-0.069477,-0.37054,-0.25475,-0.25475,-0.22001,-0.3358,-0.49792 0.24908,-0.0083247,-0.16167,-0.19454,-0.34515,0.31754,0.16146,-0.17263,-0.18358,-0.18358,0.071089,0.19432,-0.082261,-0.19454,-0.18632,0.038228,0.20527,0.21622,-0.15346,-0.14798,0.24908,0.30385,0.27921,-0.093215,-0.1781 0.45653,0.45058,0.14247,0.14492,0.14317,0.13042,0.13129,0.13234,0.13618,0.14422,-0.16808,-0.17123,-0.18224,0.13199,0.13513,-0.16773,-0.1707,-0.17874,-0.18171,-0.17472,-0.16878,-0.17717,-0.17962,-0.18136,-0.17717 -0.17227,-0.17227,-0.08196,0.22003,0.55306,-0.14687,-0.16945,-0.1497,0.20874,0.21156,-0.12147,-0.093249,-0.033981,0.26236,0.20874,-0.13558,-0.12429,-0.12712,-0.10454,0.29341,-0.16381,-0.15816,-0.14687,-0.087604,0.23132 -0.17788,-0.12159,-0.25294,-0.44058,-0.4781,-0.12159,-0.027771,-0.14035,-0.065298,-0.046534,0.028521,0.084813,0.084813,0.066049,0.0097572,0.10358,0.1974,0.12234,0.066049,-0.0090067,0.44133,0.29122,0.1974,0.084813,0.10358 -0.13332,-0.08703,-0.13332,0.3296,0.44533,-0.08703,-0.22591,0.16758,0.16758,0.23702,-0.2722,-0.24905,0.051847,0.16758,0.12129,-0.24905,-0.17961,0.12129,0.028701,0.14443,-0.34164,-0.17961,-0.017591,0.051847,0.12129 -0.13749,-0.13697,-0.13762,-0.13749,-0.13788,-0.13749,-0.13697,-0.13788,-0.13788,-0.13749,-0.13632,-0.13632,-0.13749,-0.13632,-0.13762,-0.13684,0.28217,-0.13502,0.29152,0.31268,0.27789,0.28386,0.28607,0.28918,0.30774 -0.19418,-0.24263,-0.19418,-0.2717,-0.24263,0.15465,-0.14573,-0.19418,-0.14573,-0.22325,0.17403,0.17403,-0.00038758,-0.14573,-0.19418,0.26123,0.26123,0.20309,0.05775,-0.11666,0.23216,0.2903,0.26123,0.24185,-0.00038758 0.080565,0.10383,0.1846,0.15681,0.098012,0.1594,0.36295,0.17426,0.14971,0.068934,0.14841,0.14389,0.14841,0.14906,0.074104,-0.27225,-0.27354,-0.27742,-0.26966,0.0075474,-0.28065,-0.27742,-0.28,-0.27289,-0.0066686 0.2273,0.2226,-0.17395,-0.17944,0.2516,0.22574,0.22156,-0.17421,-0.17735,-0.18127,0.22495,0.22182,-0.17317,-0.17682,-0.18257,0.22835,0.23018,-0.17526,-0.17682,-0.18205,0.1957,0.22992,-0.17709,-0.17578,-0.17395 -0.085432,0.45284,0.45335,0.4586,0.46809,-0.086957,-0.086957,-0.086788,-0.086279,-0.086279,-0.087466,-0.086957,-0.087466,-0.087805,-0.086957,-0.087127,-0.087296,-0.088144,-0.087635,-0.087466,-0.087974,-0.088144,-0.088144,-0.087805,-0.087805 0.1338,0.26792,0.26792,0.21269,0.22847,-0.063429,0.03913,0.23636,0.22847,0.22847,-0.21332,-0.11076,0.015463,0.15747,0.23636,-0.28433,-0.21332,-0.21332,-0.11076,0.03913,-0.23699,-0.23699,-0.28433,-0.21332,-0.11076 -0.16403,-0.15817,-0.16988,-0.038077,0.36125,-0.1611,-0.082013,-0.15426,0.23139,0.30657,-0.086895,-0.070297,-0.01074,0.29583,0.31145,-0.14645,-0.13278,-0.11814,-0.082013,0.35246,-0.15426,-0.17672,-0.1611,-0.11911,0.32708 -0.12056,-0.22121,-0.21577,-0.30009,-0.31369,0.083455,-0.13144,-0.14232,-0.28921,-0.28377,0.14058,0.15418,0.17322,0.069854,-0.23481,0.16506,0.19498,0.21674,0.21674,-0.033513,0.2113,0.24123,0.26571,0.15962,-0.0063108 -0.076764,-0.091512,-0.086904,-0.081373,0.022786,-0.085982,-0.091512,-0.088747,-0.072155,0.38596,-0.085982,-0.094278,-0.10165,-0.092434,0.46615,-0.082295,-0.10165,-0.099808,-0.11087,0.4809,-0.085982,-0.094278,-0.1035,-0.10903,0.4809 0.2504,0.37498,0.31269,0.31269,0.37498,0.0012458,-0.15448,0.12582,0.094679,0.063534,0.03239,0.0012458,-0.12333,0.15697,-0.061043,-0.18562,-0.18562,-0.24791,0.0012458,-0.092187,-0.18562,-0.24791,-0.21676,-0.18562,-0.21676 0.1578,0.06895,-0.090985,-0.30423,-0.51748,0.21111,0.06895,-0.055444,-0.17984,-0.33977,0.22888,0.06895,0.08672,0.10449,-0.12653,0.17557,0.14003,0.06895,0.051179,-0.090985,0.24666,0.22888,0.12226,0.015638,-0.33977 -0.092898,-0.097077,-0.090391,-0.025623,-0.018937,-0.085795,-0.08663,-0.092063,-0.094152,-0.096241,-0.094152,-0.087884,-0.09457,-0.09457,-0.095823,-0.087048,-0.08663,-0.08872,-0.094988,-0.084959,0.57191,0.5481,0.31827,0.33541,-0.084541 -0.1749,-0.1739,-0.1745,-0.1747,-0.1745,-0.1745,-0.17329,-0.1739,-0.1745,-0.0056626,-0.013082,-0.014686,-0.0074673,-0.0060636,-0.0054621,-0.014285,-0.017493,-0.018696,-0.0060636,-0.0074673,-0.017092,0.41382,0.41703,0.43327,0.43808 -0.041054,-0.1779,-0.13685,0.36948,0.34211,0,-0.16421,-0.1779,0.21895,0.32843,0.013685,-0.19158,-0.21895,0.013685,0.31474,-0.10948,-0.20527,-0.1779,0.027369,0.26001,-0.095792,-0.21895,-0.19158,0,0.21895 0.22166,0.18341,0.13368,0.10404,0.016065,0.21879,0.20158,0.17767,0.073439,0.022759,0.21401,0.19775,0.18341,0.096389,0.03519,0.21592,-0.24212,-0.24403,-0.24499,-0.24403,-0.25646,-0.26411,-0.26794,-0.26698,-0.26507 0.26015,0.2384,0.23562,0.25263,0.25279,0.24919,0.25066,0.24494,0.23038,-0.1567,-0.16291,-0.16242,-0.16307,0.23349,-0.15621,-0.16438,-0.16438,-0.16324,-0.16373,-0.16324,-0.16438,-0.16438,-0.1652,-0.16504,-0.16896 -0.13693,-0.12862,-0.1397,-0.10921,-0.12862,-0.15356,-0.13139,-0.14248,-0.073178,-0.087038,-0.13693,-0.15356,-0.15079,-0.17574,-0.18405,0.30103,0.29826,0.25113,-0.0094245,-0.14525,0.33706,0.34261,0.32875,0.33152,-0.0038807 0.17447,0.17958,0.18324,0.19127,0.034558,0.17739,0.17739,0.1752,0.035288,0.031635,0.18324,0.18068,0.17301,0.033097,0.033827,0.17776,0.082413,-0.22298,-0.22262,-0.22079,-0.31066,-0.30992,-0.31212,-0.31321,-0.31175 0.68619,-0.0099966,-0.027848,-0.13495,-0.1528,0.20422,0.025705,-0.0099966,-0.0099966,-0.18851,0.45413,-0.1171,-0.13495,-0.1171,-0.18851,0.16851,-0.06355,-0.027848,-0.099252,-0.13495,0.16851,-0.0099966,-0.06355,-0.06355,-0.1528 -0.14685,-0.18912,0.19195,0.24002,0.24118,-0.18797,-0.19434,0.24697,0.1879,0.17226,-0.18044,-0.18391,-0.20187,0.16415,0.15257,-0.19492,-0.20129,-0.20708,0.19253,0.16299,-0.19376,-0.19665,-0.19318,0.27477,0.24407 0.87569,0.11056,0.10006,0.081022,0.077083,0.07216,0.073144,0.07216,0.07216,0.072488,-0.1087,-0.10574,-0.11297,-0.11198,-0.11001,-0.10279,-0.10148,-0.10378,-0.10443,-0.1087,-0.10739,-0.10607,-0.10804,-0.1064,-0.10804 -0.22896,-0.19863,-0.22222,-0.2694,-0.22559,-0.14134,-0.17841,-0.20032,-0.27109,-0.202,0.26644,0.28329,0.27992,-0.20874,0.099619,0.25633,0.25127,0.14511,0.10299,0.084454,0.18219,0.15522,0.11141,0.077714,0.050753 -0.26587,-0.22668,0.13497,0.13497,0.14209,-0.27478,-0.20708,0.13853,0.13853,0.16525,-0.23915,-0.22668,0.18128,0.13497,0.19554,-0.082376,-0.19283,0.28639,0.16525,0.17594,-0.23737,-0.2338,-0.22311,0.27036,0.14565 0.27377,0.2798,0.014472,-0.033769,0.0054271,0.29487,0.1592,-0.048844,-0.091055,-0.021708,0.32804,-0.018693,-0.12724,-0.15136,-0.091055,0.35819,-0.072964,-0.16643,-0.1996,-0.15437,0.36723,-0.21467,-0.25085,-0.24784,-0.19055 0.20949,0.20346,0.17652,0.15482,0.152,0.19823,0.20024,0.20868,0.16969,0.15321,-0.20376,-0.20698,0.27984,0.19421,0.18014,-0.20417,-0.20497,-0.20658,-0.20778,-0.20899,-0.20537,-0.20577,-0.20738,-0.20819,-0.2106 -0.15618,-0.22915,-0.22915,-0.11969,-0.15618,-0.11969,-0.11969,-0.15618,-0.22915,-0.11969,-0.19266,-0.15618,0.026272,0.062762,0.062762,-0.11969,0.17223,-0.010217,-0.010217,0.20872,0.20872,0.50064,0.2817,0.2817,0.31819 -0.085144,-0.086127,-0.08842,-0.086454,-0.089402,0.4986,-0.086127,-0.087437,-0.086127,-0.088747,0.49762,-0.086454,-0.087109,-0.088092,-0.083834,0.41474,-0.086127,-0.086782,-0.087764,-0.090385,0.41572,-0.084816,-0.085144,-0.087764,-0.08842 0.11523,0.32073,0.044574,-0.17065,-0.1713,0.1282,0.34407,0.041981,-0.18361,-0.16352,0.1269,0.33175,0.03874,-0.20112,-0.1713,0.018644,0.3324,-0.17519,-0.19658,-0.18167,0.021237,0.32462,-0.19139,-0.1888,-0.19399 -0.24171,-0.22791,-0.22473,-0.23534,-0.23322,-0.24808,-0.23746,-0.22685,-0.2226,0.036386,-0.25126,0.20515,0.20728,0.20091,0.055492,0.20409,0.20409,0.20728,0.20409,0.041693,0.16376,0.20091,0.19879,0.20197,0.01728 -0.27331,-0.22075,-0.24703,-0.16819,-0.27331,-0.27331,-0.14191,-0.16819,-0.08935,-0.08935,-0.11563,-0.036791,0.068326,0.19972,0.094606,-0.063071,0.015768,0.068326,0.25228,0.226,0.3574,0.015768,0.30484,0.226,0.33112 -0.19944,-0.19363,-0.093977,-0.09172,0.2224,-0.19395,-0.095267,-0.095912,-0.092365,0.19531,-0.19944,-0.094945,-0.097202,0.28787,0.28851,-0.19653,-0.099137,-0.097525,0.28787,0.29109,-0.19557,-0.092042,-0.095912,0.45879,0.19273 0.55659,0.46167,0.4268,0.36675,-0.096239,-0.078804,-0.063307,-0.058464,-0.063307,-0.11949,-0.085585,-0.085585,-0.08171,-0.087522,-0.10592,-0.092365,-0.084616,-0.082679,-0.08171,-0.10399,-0.084616,-0.087522,-0.082679,-0.085585,-0.10011 0.025911,0.031791,0.036691,0.031791,-0.22791,0.025911,0.034731,0.25082,-0.24555,-0.24359,0.033751,0.039632,0.24592,-0.24114,-0.24702,0.24984,0.2322,0.23808,-0.23526,-0.24947,0.24935,0.22926,0.22583,-0.24016,-0.25143 0.46207,0.4599,0.45917,-0.038731,0.44903,-0.092362,-0.095986,-0.088014,-0.074968,-0.079317,-0.094537,-0.088014,-0.089463,-0.086564,-0.085115,-0.095261,-0.093087,-0.08439,-0.093087,-0.093812,-0.090188,-0.092362,-0.092362,-0.090188,-0.092362 -0.11799,-0.11799,-0.11808,-0.11826,-0.11771,-0.11799,-0.11781,-0.11808,-0.11844,-0.11735,-0.1179,-0.11844,-0.11863,-0.11844,-0.11781,-0.11753,-0.11771,-0.11817,0.34515,0.11199,0.38848,0.38602,0.38602,0.39532,0.11135 0.13821,0.081875,-0.16225,-0.38759,-0.42515,0.17577,0.11943,-0.12469,-0.21858,-0.40637,0.21333,0.13821,0.0067603,-0.16225,-0.16225,0.17577,0.15699,0.13821,0.025539,0.0067603,0.25088,0.17577,0.19455,0.11943,-0.068354 0.29359,-0.11969,-0.11513,-0.11741,-0.10485,0.32784,-0.11284,-0.13682,-0.12084,-0.10942,0.33926,-0.10029,-0.10599,-0.11399,-0.14481,0.34611,-0.098002,-0.092293,-0.10029,-0.17678,0.37237,0.27533,0.26505,-0.16194,-0.18819 0.63876,0.051822,-0.041229,-0.053158,-0.15098,0.62922,0.05898,-0.05793,-0.084176,-0.12235,0.089997,0.0088757,-0.019755,-0.10326,-0.16291,0.049436,-0.024527,-0.098491,-0.067474,-0.15098,0.027963,-0.038843,-0.11758,-0.10803,-0.15337 0.17433,0.11003,0.23149,0.25292,0.22434,0.088594,0.088594,0.11717,0.23149,0.06716,0.088594,0.06716,0.06716,0.19576,0.017147,-0.14718,-0.090023,-0.047155,0.045726,-0.24721,-0.3901,-0.3258,-0.47584,-0.11146,-0.23292 -0.050537,-0.06494,-0.068141,-0.077742,-0.078542,-0.048937,-0.061739,-0.074542,-0.081743,-0.076942,0.46876,-0.076142,-0.079343,-0.087344,-0.072941,0.58958,-0.073742,-0.084944,-0.068941,-0.074542,0.55838,-0.072941,-0.084144,-0.076142,-0.081743 -0.14074,-0.14666,-0.14903,-0.14548,-0.13837,-0.14666,-0.14192,-0.14192,-0.14192,-0.14192,-0.096921,-0.1064,-0.12061,-0.13719,-0.14429,0.30573,0.32113,0.33652,-0.11824,-0.11113,0.301,0.29626,0.33534,0.08072,0.29271 0.3231,-0.12407,-0.12323,-0.12532,-0.1249,0.32142,0.32226,-0.12449,-0.1249,-0.12574,0.32142,0.31891,-0.12072,-0.1249,-0.12616,0.31975,-0.12658,-0.12407,-0.12365,-0.12449,0.31807,-0.12449,-0.12532,-0.12616,-0.12574 0.12787,0.14907,0.21425,0.18376,-0.24374,0.13173,0.14399,0.19042,-0.24269,-0.24357,0.18236,0.15012,0.18464,-0.24321,-0.24444,0.14154,0.17623,0.17903,-0.24234,-0.24549,0.14066,0.14224,-0.24374,-0.24321,-0.24549 0.18479,0.187,0.19141,0.21566,-0.22537,0.17156,0.19141,0.19361,-0.1945,-0.23198,0.15171,0.19361,0.21346,-0.21875,-0.24521,0.12084,0.16495,-0.18788,-0.23419,-0.2408,0.13628,0.1473,-0.20111,-0.24301,-0.2408 -0.068231,-0.18366,-0.04258,-0.0041041,0.27805,-0.24779,-0.19648,-0.22213,0.034372,0.021547,-0.26061,-0.15801,-0.081056,0.021547,0.3037,-0.10671,-0.11953,-0.068231,0.31653,0.31653,-0.14518,-0.10671,-0.016929,0.31653,0.41913 -0.29952,-0.30888,0.16459,0.10662,0.20347,-0.31032,-0.16882,0.14586,0.14658,0.18007,-0.31176,-0.16882,-0.16522,0.12174,0.18907,-0.30852,-0.16882,0.18079,0.13254,0.18943,-0.1609,0.16027,0.18439,0.1149,0.15126 -0.24214,-0.24608,-0.24608,-0.24476,-0.24148,-0.24542,-0.24673,-0.24542,-0.24214,0.15249,-0.24739,0.17219,0.16366,0.15709,0.15118,0.17876,0.17219,0.16628,0.15906,0.14987,0.18073,0.17219,0.163,0.15906,0.14987 -0.26262,-0.26016,0.1636,0.16524,0.1636,-0.26795,0.16033,0.15992,0.16196,0.16114,-0.26795,-0.26754,0.15828,0.15746,0.155,-0.26426,-0.26754,0.15459,0.15213,0.11483,-0.26344,-0.26672,0.15213,0.14311,0.064835 -0.14099,-0.14246,-0.14187,-0.14216,-0.14187,-0.1404,-0.14011,-0.14011,-0.14011,-0.1404,-0.1322,-0.13249,-0.12985,-0.12985,-0.13483,0.28381,-0.12985,0.28967,-0.13161,0.29348,0.28264,0.29671,0.31166,0.2841,0.28909 0.40071,-0.14393,-0.14355,-0.14489,-0.14067,0.3892,-0.13914,-0.14547,-0.14413,-0.14298,0.38154,0.22031,-0.14547,-0.1447,-0.14221,0.17928,0.18216,-0.14432,-0.14528,-0.1424,0.17967,0.17948,0.18484,-0.14336,-0.1447 0.2608,0.26241,0.26223,-0.14844,-0.14719,0.26205,0.26277,-0.14826,-0.14808,-0.14737,0.26759,0.26366,-0.14701,-0.1488,-0.15202,0.28082,-0.15345,-0.15148,-0.15112,-0.15327,0.27707,-0.15184,-0.1522,-0.15095,-0.14791 0.19434,0.1928,0.19162,-0.25004,-0.1728,0.18588,0.18904,0.20782,-0.25004,-0.17338,0.18183,0.18948,0.20951,-0.25077,-0.17397,0.18065,0.18971,-0.25077,-0.17486,-0.17486,0.1819,0.18087,-0.25195,-0.17611,-0.17589 -0.088558,-0.088879,-0.088237,-0.088558,-0.088558,-0.087754,-0.087915,-0.088397,-0.087754,-0.087594,-0.08679,-0.087272,-0.087272,-0.086951,-0.087112,-0.087112,-0.086951,-0.086951,-0.08679,-0.085987,0.43589,0.43283,0.48168,0.48055,-0.07956 0.36848,0.074151,-0.11336,-0.15846,-0.17745,0.33999,0.27353,-0.10624,-0.15134,-0.15134,0.36135,0.34474,-0.11574,-0.15609,-0.15846,0.37085,-0.061144,-0.094374,-0.12523,-0.16321,-0.073012,-0.068264,-0.042155,-0.080132,-0.1371 0.1138,0.070319,0.068174,0.45342,0.44894,0.069734,0.075583,0.11438,0.11224,0.11068,0.071684,0.11302,0.1136,0.11204,0.11126,-0.21511,-0.21569,-0.21569,-0.21491,-0.21511,-0.21667,-0.21608,-0.21667,-0.21628,-0.21667 0.32087,0.24785,0.12522,-0.038606,-0.31945,0.3087,0.19355,0.12147,-0.042351,-0.36157,-0.0030331,0.22632,0.12615,-0.027373,-0.30634,-0.018011,0.025051,0.12522,-0.071371,-0.29604,-0.071371,0.0072644,0.15611,-0.065754,-0.36251 -0.01456,0.068168,0.22259,0.31084,0.43217,-0.020075,0.10677,0.1895,0.3329,0.42114,-0.13038,-0.14141,-0.14141,-0.14693,0.062653,-0.13038,-0.16347,-0.15796,-0.18553,-0.16347,-0.12486,-0.16347,-0.14141,-0.15796,-0.16347 0.45609,0.45683,0.45975,0.45756,-0.097801,-0.085379,-0.045919,-0.064188,-0.093417,-0.10145,-0.082456,-0.08684,-0.089033,-0.088302,-0.095609,-0.082456,-0.08684,-0.08611,-0.094148,-0.094878,-0.084648,-0.08684,-0.089033,-0.094878,-0.099994 -0.19381,-0.19471,-0.19471,-0.026887,0.13706,-0.19322,-0.19798,-0.20274,0.13796,0.13587,-0.19768,-0.20155,0.13974,0.13915,0.14331,-0.19857,-0.19857,0.13855,0.26204,0.26233,-0.19828,-0.01796,-0.01915,0.26114,0.47865 -0.16111,-0.16657,-0.16521,-0.18161,-0.18708,-0.15564,-0.16111,-0.16521,-0.17477,-0.17887,-0.14197,-0.15837,0.25027,-0.12284,-0.18434,-0.13787,0.23387,0.23797,0.2448,0.26667,0.2366,0.23797,0.23934,0.2366,0.25847 -0.25771,-0.17404,-0.17404,-0.25771,-0.25771,-0.17404,-0.21587,-0.0066937,-0.17404,-0.1322,-0.21587,0.11881,0.076977,-0.1322,0.16065,0.16065,-0.090365,0.076977,0.11881,0.11881,0.32799,0.24432,0.32799,0.36983,0.16065 0.4584,0.23564,0.087127,-0.061385,-0.11089,0.30989,0.16138,0.062375,0.062375,-0.23465,0.30989,0.062375,0.11188,-0.18514,-0.23465,0.21089,0.062375,-0.011881,-0.23465,-0.2594,-0.061385,-0.16039,-0.11089,-0.2594,-0.2099 -0.1706,-0.1727,-0.17144,-0.17144,-0.16893,-0.16977,-0.17186,-0.16893,-0.14758,-0.14716,-0.17102,-0.17395,0.24548,-0.13753,-0.14884,0.24046,0.2459,0.24506,0.24088,-0.15511,0.24381,0.24464,0.24548,0.24381,0.25134 0.26571,0.45841,0.26158,0.15284,0.27534,0.28842,0.057177,0.26502,0.15009,-0.1486,0.13151,-0.1603,-0.15479,-0.15204,-0.14791,-0.15411,-0.15755,-0.15824,-0.14998,-0.14654,-0.16718,-0.16236,-0.15411,-0.15067,-0.14172 -0.14096,-0.13827,-0.14096,0.29148,0.29954,-0.15439,-0.14902,-0.14364,0.29148,0.29416,-0.13559,-0.14096,-0.12484,0.27536,0.30222,-0.14902,-0.14096,-0.14364,0.26999,0.30222,-0.14364,-0.14096,-0.14364,-0.095297,-0.10067 0.11585,0.19956,0.23304,0.18282,-0.28595,0.082369,0.18282,0.18282,0.09911,-0.43662,0.065627,0.13259,0.048886,0.082369,-0.45336,0.015402,0.065627,0.082369,0.09911,-0.25246,-0.068306,0.015402,0.015402,0.015402,-0.41988 -0.090398,-0.08748,-0.086896,-0.089814,-0.089814,-0.090544,-0.090398,-0.08748,-0.089523,-0.089523,-0.090398,-0.090982,-0.089814,-0.090106,-0.083977,-0.086312,-0.084999,-0.086604,0.29309,0.58042,-0.084853,-0.035092,-0.035238,0.29382,0.5829 -0.20718,-0.20767,-0.20718,-0.20743,-0.20718,-0.2067,-0.20816,-0.20792,-0.20865,-0.20767,0.07416,0.075136,0.073672,0.29108,-0.20523,0.067815,0.067327,0.07172,0.28572,0.28498,0.075136,0.069035,0.2762,0.28425,0.28474 -0.12623,-0.10078,-0.083817,-0.0414,0.34884,-0.15169,-0.06685,-0.06685,-0.049883,0.67122,-0.13472,-0.11775,-0.075334,-0.0414,0.40823,-0.16017,-0.075334,-0.058367,-0.024433,0.12827,-0.16017,-0.10927,-0.075334,-0.06685,0.23007 0.12272,0.12445,0.12358,0.01155,-0.26564,0.12474,0.12474,0.12445,0.0057748,-0.26275,0.12387,0.12531,0.35313,-0.26911,-0.26593,0.12156,0.12676,0.12474,-0.26968,-0.2668,-0.061213,0.12387,0.33841,-0.26882,-0.26968 -0.196,-0.196,-0.136,-0.022667,-0.056,-0.216,-0.156,-0.096,-0.016,-0.136,-0.176,-0.116,0.030667,-0.0093333,-0.116,-0.049333,-0.056,0.044,0.044,-0.14267,0.29733,0.444,0.524,0.144,0.364 -0.17009,-0.15452,0.24827,0.24927,0.24927,-0.1681,-0.1681,-0.16942,0.24629,0.2443,-0.17539,-0.16744,-0.16479,0.2443,0.24364,-0.17539,-0.16942,-0.14226,-0.1522,0.24231,-0.1734,-0.15121,-0.14557,0.24032,0.23933 0.20298,0.20635,0.20466,0.19793,0.20635,0.19961,0.19456,0.19961,0.20466,0.20466,-0.19086,-0.15552,0.22823,-0.17066,0.24169,-0.21106,-0.19591,-0.18581,-0.18413,-0.21274,-0.21442,-0.19591,-0.19591,-0.19591,-0.18245 -0.019184,-0.035472,-0.019184,-0.29608,-0.31418,-0.015564,-0.015564,-0.030042,0.03692,0.065876,-0.042711,-0.026423,-0.030042,0.0097728,0.0025337,-0.0047054,-0.031852,-0.024613,-0.013754,-0.019184,0.89295,-0.017374,-0.0047054,-0.020993,-0.026423 0.19761,0.20579,0.24806,0.17988,0.19761,0.19624,0.19693,0.22556,0.1867,0.18056,-0.19101,-0.1876,0.28215,0.1867,-0.17396,-0.19305,-0.19101,-0.20055,-0.17874,-0.17874,-0.20055,-0.20396,-0.19851,-0.19305,-0.19305 0.47759,0.32117,0.060481,-0.017727,-0.069866,0.45152,0.32117,0.13869,-0.17414,-0.122,0.11262,0.13869,-0.043796,-0.17414,-0.14807,0.034411,-0.122,-0.095935,-0.17414,-0.14807,-0.17414,-0.122,-0.20021,-0.095935,-0.17414 0.17822,0.34305,0.32142,-0.0061811,-0.18234,0.18131,0.22046,0.20913,-0.18131,-0.18131,0.18749,0.16895,-0.18028,-0.1844,-0.19162,0.18028,-0.0082415,-0.20913,-0.19574,-0.20398,0.17925,0.18646,-0.2081,-0.21325,-0.21016 0.51759,0.12161,0.11882,0.21027,0.27094,0.12251,0.12181,0.11932,0.11862,0.27034,0.0032635,0.003662,0.00416,0.0046581,-0.20046,0.0023669,0.0032635,-0.20036,-0.20026,-0.20026,-0.2421,-0.242,-0.24229,-0.24239,-0.24309 -0.17349,-0.15465,-0.10285,-0.079302,-0.065175,-0.16407,-0.14523,-0.088721,-0.032211,-0.018083,-0.1311,-0.079302,-0.079302,0.00075347,0.090228,-0.12168,-0.065175,-0.03692,0.024299,0.37278,-0.060466,-0.055756,0.033718,0.46225,0.66945 0.91115,0.028617,-0.055631,-0.018341,-0.068061,-0.022485,0.021711,-0.022485,0.013424,-0.059775,-0.018341,-0.037677,-0.070824,0.076956,0.12391,0.02033,-0.033534,-0.11088,-0.11778,-0.10673,0.078337,-0.044582,-0.17026,-0.18269,-0.13436 0.20387,0.23476,0.29654,0.451,0.54367,0.018534,0.018534,-0.074136,0.1112,-0.16681,-0.074136,-0.16681,0.018534,-0.074136,-0.012356,-0.16681,-0.1977,-0.074136,-0.1977,-0.16681,-0.16681,-0.16681,0.049424,-0.16681,-0.074136 -0.24669,0.020163,-0.15774,-0.0094882,-0.0094882,-0.12809,-0.24669,-0.12809,-0.21704,-0.098441,-0.27635,-0.21704,-0.12809,-0.12809,0.020163,0.13877,0.079464,-0.0094882,0.079464,-0.0094882,0.34632,0.25737,0.28702,0.37597,0.40562 -0.0015347,-0.013524,-0.085462,-0.10704,-0.11424,0.020047,-0.03031,-0.059085,-0.11424,-0.12383,0.087188,-0.015922,-0.044697,-0.10704,-0.11424,0.65789,0.029638,-0.027912,-0.10704,-0.10704,0.6459,-0.011126,-0.035105,-0.10704,-0.11424 -0.1457,-0.1465,-0.14638,-0.14616,-0.16933,-0.14616,-0.14547,-0.14593,-0.14604,-0.17001,-0.14559,-0.14502,-0.14502,-0.14547,-0.14525,0.264,0.26377,0.26082,0.26195,0.26252,0.28149,0.27695,0.26275,0.26377,-0.16399 0.20831,0.11125,0.038706,-0.049529,-0.64071,0.21322,0.11125,0.022039,-0.040706,-0.51031,0.20537,0.12694,0.032824,-0.043647,-0.10149,0.20439,0.097529,0.029882,-0.049529,-0.11718,0.20439,0.10341,0.011255,-0.046588,-0.1211 0.37506,0.073402,-0.029942,-0.074631,-0.12211,0.41137,-0.0075972,-0.066252,-0.099769,-0.1696,0.47002,0.02592,-0.096976,-0.077424,-0.16401,-0.01877,-0.094183,-0.11373,-0.15284,-0.09139,0.49237,-0.12211,-0.14446,-0.14446,-0.057873 -0.24566,0.1632,0.16287,0.16189,0.16189,-0.24452,-0.24289,0.16353,0.1632,0.16353,-0.24534,-0.24501,0.16336,0.16451,0.16255,-0.24534,-0.24599,0.16385,0.16271,0.16483,-0.24305,-0.2455,-0.24615,0.16271,0.16483 -0.13404,-0.15692,-0.15692,-0.16201,-0.15311,-0.1226,-0.1137,-0.14548,-0.16455,-0.11624,-0.1137,-0.12006,-0.12006,-0.12133,-0.13658,0.24988,0.227,-0.12387,-0.1226,0.28547,0.26895,0.2181,0.40243,0.38972,0.24225 -0.10403,-0.14614,-0.06191,-0.13561,-0.10403,-0.12508,-0.10403,-0.13561,-0.1672,-0.051381,-0.072439,-0.10403,-0.13561,-0.11455,0.13814,-0.072439,-0.019794,-0.082967,0.03285,0.48559,-0.0092654,0.043379,0.074965,0.3066,0.66458 0.23468,0.24716,0.25049,0.24966,0.24675,-0.15698,0.25258,0.25049,0.25008,0.23343,-0.15656,-0.16322,-0.16156,-0.16863,0.23218,-0.14741,-0.16156,-0.16406,-0.17196,-0.17404,-0.14657,-0.16114,-0.16988,-0.17196,-0.17196 -0.12454,-0.12454,-0.13095,0.29534,0.29985,-0.12311,-0.12359,-0.12311,0.30864,0.33263,-0.12644,-0.12359,-0.12359,-0.12501,0.33429,-0.12549,-0.12359,-0.12264,-0.12454,0.33856,-0.12573,-0.12359,-0.12406,-0.12454,0.33334 0.32054,-0.12086,-0.12086,-0.12339,-0.1239,0.3213,-0.11984,-0.12187,-0.12238,-0.1239,0.32181,0.31877,-0.12111,-0.12415,-0.1239,0.32029,0.32079,-0.099331,-0.12288,-0.13099,0.32003,-0.13478,-0.13428,-0.13757,-0.13757 -0.05661,-0.04842,-0.057429,-0.045144,-0.052515,-0.061524,-0.050877,-0.063162,-0.036135,-0.063981,0.40122,-0.050058,-0.072171,-0.092647,-0.10084,0.59942,-0.063162,-0.086095,-0.09019,-0.10657,0.59205,-0.068076,-0.079542,-0.10329,-0.14424 -0.060174,-0.095158,-0.2351,-0.16513,-0.30507,-0.34005,-0.16513,-0.060174,-0.2351,-0.2351,0.0097957,-0.095158,0.11475,-0.095158,0.0097957,0.11475,-0.025189,0.079765,0.28967,0.14973,0.28967,0.32466,0.11475,0.25469,0.35964 -0.17716,-0.063012,-0.15433,-0.15433,-0.085842,-0.17716,-0.085842,-0.040181,-0.15433,-0.085842,-0.085842,-0.017351,-0.040181,-0.085842,-0.10867,-0.063012,0.0054793,-0.085842,0.02831,-0.017351,0.71322,0.46209,0.16529,0.16529,0.14246 -0.089288,-0.073733,-0.13855,-0.15669,-0.18262,-0.086696,-0.076325,-0.12558,-0.13595,-0.13336,0.006637,-0.029659,-0.089288,-0.14373,-0.14373,0.48626,0.34626,-0.055585,-0.089288,-0.12299,0.39811,0.39293,0.30478,0.011822,-0.073733 0.3059,0.30694,0.27806,0.28137,0.28196,-0.13652,-0.13801,0.30668,0.28494,0.2852,-0.13678,-0.13691,-0.13691,-0.13691,-0.13626,-0.1373,-0.13743,-0.13704,-0.13704,-0.13717,-0.13762,-0.13704,-0.13743,-0.13743,-0.1373 0.78959,0.42543,-0.01371,-0.01371,-0.045842,0.15766,0.061265,-0.01371,-0.077973,-0.12082,0.11482,-0.077973,-0.077973,-0.045842,-0.14224,-0.12082,-0.045842,-0.045842,-0.099395,-0.12082,-0.077973,-0.045842,-0.099395,-0.13153,-0.13153 -0.14933,-0.099771,0.015858,0.31319,0.52792,-0.033697,-0.13281,-0.066734,0.19756,0.42882,-0.14933,-0.14933,-0.19888,0.015858,0.31319,-0.099771,-0.066734,-0.13281,-0.099771,0.148,-0.19888,-0.19888,-0.13281,-0.033697,-0.017179 -0.14377,0.065313,0.22461,0.22461,0.28435,-0.21346,-0.014337,0.085225,0.26444,0.23457,-0.21346,-0.13381,0.12505,0.19474,0.25448,-0.28315,-0.25329,-0.14377,0.12505,0.15492,-0.28315,-0.29311,-0.21346,-0.1139,0.065313 0.32827,0.3262,-0.12299,-0.12469,-0.1245,0.32489,-0.12281,-0.12356,-0.12638,-0.12675,0.31981,-0.12356,-0.12412,-0.12581,-0.12732,0.31568,-0.12412,-0.12318,-0.12581,-0.12487,0.31154,0.31831,-0.12469,-0.12563,-0.12393 0.066729,0.10093,0.086941,0.20044,-0.18047,0.083831,0.27662,-0.16337,-0.21001,-0.19136,0.21754,0.28284,-0.14161,-0.20846,-0.18514,0.35747,0.25485,-0.12761,-0.19758,-0.21934,0.20821,0.2222,-0.11984,-0.19913,-0.21468 0.022779,0.23144,0.24448,0.23578,0.2097,-0.029386,0.040167,0.22709,0.24883,0.22709,-0.029386,-0.081551,-0.03808,0.27056,0.25752,-0.30325,-0.20762,-0.19023,-0.10329,-0.094592,-0.30325,-0.29456,-0.22935,-0.1511,-0.1598 0.25826,0.24776,0.25546,-0.12215,-0.12776,0.22674,0.24635,0.23865,-0.089927,-0.22934,0.21903,0.20712,0.09783,-0.20973,-0.24125,0.17069,0.13496,0.080315,-0.21323,-0.25386,-0.072413,-0.18731,-0.16699,-0.21183,-0.25737 0.20589,0.20589,-0.17303,-0.17546,-0.18521,0.21564,-0.16409,-0.17018,-0.17831,-0.18643,0.22254,0.22011,-0.17871,-0.18034,-0.18602,0.23066,0.23026,0.23107,-0.17465,-0.18115,0.23919,0.23716,0.24082,-0.16612,-0.17952 -0.10917,-0.1028,-0.12283,0.31885,0.35618,-0.10735,-0.11737,-0.11737,-0.11737,0.34435,-0.10644,-0.11373,-0.11737,-0.11737,0.35436,-0.10371,-0.1119,-0.11464,-0.12647,0.3835,-0.10644,-0.1119,-0.098244,-0.10917,0.3744 -0.035547,-0.067681,-0.083193,-0.028898,0.94287,-0.024466,-0.072113,-0.044411,-0.034439,0.16058,-0.048843,-0.043303,-0.017818,-0.015602,-0.013385,-0.067681,-0.076545,-0.072113,-0.068789,-0.0566,-0.080977,-0.071005,-0.069897,0.088556,-0.098706 -0.14605,-0.11338,0.23354,0.21876,0.32144,-0.19428,-0.17561,0.22032,0.24365,0.24988,-0.19816,-0.17872,-0.20672,0.1472,0.15653,-0.18261,-0.19194,-0.20905,0.17287,0.14098,-0.19583,-0.21761,-0.23239,0.1892,0.14798 0.17167,0.17243,0.17052,-0.25552,-0.27838,0.12022,0.17052,0.17929,-0.26009,-0.27648,0.12441,0.14461,0.14499,-0.26162,-0.26886,0.1267,0.14385,0.14423,-0.26124,0.14309,0.14461,0.14423,0.14804,-0.26238,-0.26886 -0.16247,-0.15537,-0.063055,0.34879,0.4269,-0.16957,-0.11276,-0.070156,-0.01335,0.3985,-0.15537,-0.091459,-0.084358,-0.055955,0.3985,-0.16247,-0.091459,-0.077257,-0.063055,0.3772,-0.14827,-0.13406,-0.070156,-0.048854,-0.02045 -0.2182,-0.0701,0.0039493,0.10268,0.25078,-0.16883,-0.16883,0.077998,0.17673,0.25078,-0.24288,-0.11947,-0.020734,0.15205,0.20141,-0.094783,-0.11947,0.028632,0.20141,0.20141,-0.66249,0.028632,-0.045417,0.12736,0.12736 0.12556,0.12556,-0.033378,0.1653,-0.27179,0.1653,0.36397,0.085828,0.046093,-0.31152,0.12556,-0.033378,0.20503,-0.19232,-0.39099,0.24477,0.12556,0.085828,-0.033378,-0.31152,0.0063576,0.12556,0.0063576,-0.033378,-0.39099 -0.21777,-0.22987,-0.21777,-0.096787,0.036295,-0.20567,-0.18148,-0.16938,-0.048393,0.15728,-0.16938,-0.21777,-0.10889,0.13308,0.22987,-0.19357,-0.060492,0.13308,0.25407,0.36295,-0.096787,0.024197,0.16938,0.31456,0.39925 0.27428,-0.17629,-0.17844,-0.18058,-0.18147,0.24659,0.26839,-0.17986,-0.17951,-0.17969,0.23426,0.24069,-0.1804,-0.18165,-0.17897,0.23569,0.23533,-0.17969,-0.17986,-0.02747,0.23516,0.2373,0.18692,-0.18004,-0.030686 0.068052,0.28179,0.28254,0.29209,0.29396,0.2788,0.27693,0.2816,-0.14232,0.29302,-0.14606,-0.14569,-0.14569,-0.147,-0.14606,-0.14662,-0.14625,-0.14775,-0.14662,-0.14775,-0.14812,-0.14812,-0.14812,-0.14812,-0.14849 0.093129,0.093129,0.093129,-0.18078,-0.59164,-0.0095868,0.16161,0.093129,-0.0095868,-0.35197,0.12737,0.12737,-0.0095868,0.024652,-0.35197,0.19584,-0.0095868,0.093129,0.16161,-0.2835,0.12737,0.19584,0.19584,0.12737,-0.1123 -0.1622,-0.16992,0.22633,0.22598,0.23265,-0.1594,-0.16782,-0.17272,0.23124,0.23545,-0.158,-0.1608,-0.16992,0.24457,0.23615,-0.15379,-0.15589,-0.16782,0.24808,0.24352,-0.15414,-0.15133,-0.16501,-0.17202,0.31681 0.40754,0.11987,-0.071919,-0.14384,-0.19179,0.047946,0.047946,0.047946,-0.14384,-0.2637,0.19179,-0.071919,0.047946,-0.14384,-0.19179,0.57536,0.047946,-0.14384,-0.14384,-0.071919,0.3596,-0.071919,0.047946,-0.14384,-0.14384 -0.3935,-0.39615,-0.39185,-0.39615,-0.39747,0.10421,0.10124,0.11182,0.12075,0.12141,0.10256,0.10388,0.11083,0.11843,0.12339,0.017236,0.10355,0.1105,0.12207,0.11909,0.015914,0.017236,0.11149,0.12174,0.11777 0.27378,0.01053,0.16096,-0.10229,-0.21512,0.27378,0.01053,0.12335,-0.064685,-0.1399,0.27378,0.38661,-0.21512,-0.17751,-0.21512,0.31139,0.01053,0.048138,-0.36555,-0.21512,0.085746,0.12335,0.01053,-0.21512,-0.17751 -0.13581,-0.13603,-0.13716,-0.13873,0.28553,-0.13536,-0.13513,-0.13693,-0.14524,0.28688,-0.13626,-0.13603,-0.13805,0.29968,0.28171,-0.13693,-0.13446,-0.1376,0.30552,0.28598,-0.1376,-0.13558,-0.13873,0.29968,0.28665 0.43684,-0.025291,0.45523,0.46213,0.46903,-0.085068,-0.082769,-0.036786,-0.075872,-0.098863,-0.087368,-0.085068,-0.066675,-0.10116,-0.12185,-0.089667,-0.10576,-0.096564,-0.098863,-0.11726,-0.087368,-0.082769,-0.091966,-0.089667,-0.096564 -0.19199,-0.19199,-0.20119,-0.22879,-0.24029,-0.1023,-0.19199,-0.17589,-0.22649,-0.17129,0.21968,-0.1391,-0.20579,-0.20349,0.24268,0.21048,0.20128,0.19898,0.18748,0.24958,0.19438,0.20128,0.18058,0.19208,0.19208 -0.12025,-0.1156,-0.12003,-0.12512,0.58191,-0.1012,-0.11294,-0.084808,0.13913,0.48312,-0.081264,-0.11272,-0.085915,-0.082814,0.4304,-0.0837,-0.11405,-0.094554,-0.084365,0.12628,-0.077055,-0.11183,-0.091453,-0.085915,0.12473 0.28425,0.2908,0.28917,0.29613,0.29408,-0.13914,-0.13996,0.29162,0.28794,0.29817,-0.1375,-0.13832,-0.13668,-0.13504,-0.13504,-0.13832,-0.13668,-0.14037,-0.13504,-0.13668,-0.13832,-0.13586,-0.13668,-0.1375,-0.13504 0.23706,0.26207,0.21088,-0.040896,-0.29708,0.22756,0.26161,0.27528,-0.039507,-0.30078,0.22872,0.00010192,0.00033355,-0.044603,-0.31121,0.00010192,0.0007968,-0.03719,-0.12776,-0.31121,0.0007968,0.27667,-0.044603,-0.12081,-0.30634 -0.28324,0.14109,0.13941,0.13438,0.12878,-0.2866,0.13885,0.12822,0.12934,0.13438,-0.28884,-0.28492,0.12542,0.13438,0.14949,-0.29332,-0.30563,0.1271,0.15285,0.14949,-0.28828,-0.29947,0.13605,0.15285,0.12822 0.80679,-0.046271,-0.045563,-0.046271,-0.12566,0.33507,-0.044854,-0.04698,-0.048398,-0.12389,0.33542,-0.044145,-0.049107,-0.11928,-0.1246,-0.048398,-0.044854,-0.045563,-0.042727,-0.12034,-0.053005,-0.049107,-0.044145,-0.044854,-0.11928 -0.14924,-0.11173,-0.06398,0.038333,0.91482,-0.13901,-0.094674,-0.06398,0.051975,0.1577,-0.081032,-0.10832,-0.043517,0.01105,0.051975,-0.087853,-0.11173,-0.026465,0.0008185,0.031512,-0.10491,-0.074211,-0.012823,-0.016234,0.031512 -0.071145,-0.069226,-0.017073,0.020362,0.97447,-0.069545,-0.065706,-0.023152,-0.028111,-0.031311,-0.068586,-0.069865,-0.031951,-0.032911,-0.032911,-0.066826,-0.03387,-0.03387,-0.03451,-0.03499,-0.03899,-0.03595,-0.03595,-0.03387,-0.03451 0.42,0.14159,-0.097046,-0.057273,-0.057273,0.022273,0.022273,0.022273,0.10182,-0.33568,0.18136,0.14159,-0.0175,-0.097046,-0.33568,0.45977,0.14159,-0.097046,-0.097046,-0.13682,0.14159,0.10182,0.022273,-0.21636,-0.37546 -0.093611,-0.089852,-0.092483,-0.098875,-0.17933,0.32144,-0.0891,-0.10263,-0.10602,-0.18008,0.31091,0.31505,-0.10715,-0.10602,-0.18083,0.31091,0.31993,-0.10865,-0.10677,-0.18158,0.31354,0.3267,-0.10903,-0.10639,-0.18008 0.23258,0.22972,0.13606,0.10784,0.098025,0.2379,0.24894,0.23217,0.10866,0.098025,0.23831,0.23258,0.23381,-0.20094,-0.20135,-0.20421,-0.20176,-0.20339,-0.20217,-0.20339,-0.20217,-0.20299,-0.20421,-0.2038,-0.20421 0.19275,0.1067,-0.022372,-0.19447,-0.23749,0.40786,0.063675,0.19275,-0.022372,-0.23749,0.020651,0.020651,0.32182,-0.15144,-0.23749,0.19275,0.19275,-0.022372,-0.23749,-0.23749,0.32182,-0.022372,0.063675,-0.23749,-0.23749 0.27825,0.28944,0.37415,0.3571,0.35497,0.27825,0.30116,-0.11867,-0.1248,-0.1232,-0.12214,-0.12187,-0.12453,-0.12507,-0.12453,-0.12293,-0.1232,-0.12507,-0.12507,-0.12507,-0.12427,-0.12587,-0.1256,-0.12613,-0.12533 -0.11352,-0.1127,-0.11679,0.33885,0.32577,-0.10453,-0.11965,-0.10657,-0.10657,0.36337,-0.099628,-0.11475,-0.11638,-0.10535,0.36255,-0.10984,-0.10944,-0.11434,-0.12088,0.37726,-0.1127,-0.11189,-0.11679,-0.12047,0.365 0.30435,0.1849,0.20879,0.20228,0.1621,0.16101,0.16536,0.16536,0.17187,0.1393,-0.18538,-0.18429,0.15233,0.16319,0.14255,-0.21579,-0.2223,-0.23533,-0.24619,0.12084,-0.23967,-0.24185,-0.24402,-0.2071,-0.2223 -0.11704,-0.11319,-0.10549,-0.10549,-0.10164,-0.06699,-0.078539,-0.090089,-0.078539,-0.097789,0.01001,-0.06314,-0.074689,-0.06699,-0.078539,0.65681,-0.0092399,-0.04389,-0.04774,-0.05929,0.64526,0.16786,-0.02079,-0.03619,-0.02464 0.20848,0.10833,0.034747,-0.036791,-0.58866,0.2044,0.12468,0.047011,-0.047011,-0.57231,0.21257,0.083802,0.042923,-0.063362,-0.13286,0.2044,0.10015,0.012264,-0.040879,-0.10424,0.2044,0.10833,0.032703,-0.044967,-0.09811 -0.15839,-0.091654,0.28653,0.15305,0.19755,-0.22513,-0.15839,0.1753,0.1753,0.15305,-0.22513,-0.22513,-0.024916,0.19755,0.28653,-0.29187,-0.29187,0.1753,0.15305,0.086315,-0.22513,-0.35861,0.15305,0.041823,0.041823 0.034118,-0.074235,-0.076059,-0.080437,-0.070222,0.040685,-0.081531,-0.08445,-0.085179,-0.084815,0.53393,-0.087368,-0.085179,-0.086274,-0.086274,0.5332,-0.085909,-0.085179,-0.087368,-0.08445,0.53539,-0.089193,-0.086639,-0.090287,-0.086274 0.1253,0.14562,0.14618,0.13495,0.13925,0.13504,0.14244,0.13298,0.13457,0.13991,0.13167,0.13298,0.13588,0.13467,0.14047,-0.29466,-0.28324,-0.28277,0.13925,0.14047,-0.29438,-0.29419,-0.29401,-0.29419,-0.29419 -0.03128,-0.040817,-0.040817,0.010045,0.97325,-0.072606,-0.053533,-0.034459,-0.0090281,-0.012207,-0.072606,-0.040817,-0.03128,-0.024923,-0.028101,-0.072606,-0.056711,-0.063069,-0.063069,0.0036875,-0.072606,-0.040817,-0.056711,-0.050354,-0.018565 0.45843,0.4602,0.46197,0.44959,-0.095153,-0.089847,-0.10046,-0.095153,-0.089847,-0.05978,-0.11461,-0.084542,-0.091616,-0.095153,-0.084542,-0.081004,-0.089847,-0.088079,-0.089847,-0.104,-0.072161,-0.077467,-0.079236,-0.072161,-0.075698 -0.15261,-0.25859,-0.1791,0.2978,0.40378,-0.046631,-0.09962,-0.09962,0.085843,0.2978,-0.09962,-0.25859,-0.2056,-0.073125,0.40378,-0.09962,-0.046631,-0.073125,0.085843,0.3243,-0.1791,-0.12611,-0.073125,-0.020136,0.19182 0.20823,0.21755,0.16162,0.13832,0.068415,0.24551,0.18493,0.16162,0.1057,0.077736,0.21289,0.20823,0.1523,0.0078295,-0.20189,0.19425,-0.10868,-0.23451,-0.25315,-0.2718,-0.23917,-0.23917,-0.25781,-0.25781,-0.28112 0.92895,0.10723,0.0080001,-0.094327,-0.097428,-0.12999,0.08242,-0.023008,-0.089676,-0.098978,-0.13619,0.026605,-0.061768,-0.097428,-0.11138,-0.075722,0.017303,-0.035411,-0.023008,-0.072621,-0.049365,-0.024559,0.062265,-0.007504,-0.0044032 0.12118,0.12072,0.11752,0.11204,0.12004,0.11981,0.1125,0.10587,0.099471,0.11866,0.11981,0.11364,0.10518,0.10038,0.11638,-0.3589,0.1109,0.1045,0.0981,0.11752,-0.35844,-0.35479,-0.35456,-0.35524,-0.35227 0.106,0.1316,0.14044,0.13627,0.16755,0.12703,0.13038,0.13495,0.13515,0.16888,0.12713,0.12936,0.13353,0.13333,0.16796,0.12835,0.12936,-0.29073,-0.29104,-0.29104,-0.29083,-0.29134,-0.29053,-0.29124,-0.29053 0.1688,0.16518,0.16478,0.16397,0.16237,0.16357,0.16438,0.16156,0.16156,0.15995,0.16438,0.16277,0.16116,0.15995,-0.24162,0.16478,-0.23558,-0.24685,-0.24323,-0.24524,-0.25208,-0.25087,-0.24564,-0.24484,-0.24323 0.20445,-0.096022,0.17161,-0.010462,-0.23632,0.21459,0.17201,0.17282,-0.0064069,-0.23632,0.21216,0.22838,0.0029196,-0.0096508,-0.23673,0.23486,0.22473,-0.24403,-0.24403,-0.23673,0.22513,0.21216,-0.23997,-0.23916,-0.23997 0.16865,0.16925,-0.21362,-0.20116,-0.2065,0.17874,0.17993,-0.20769,-0.20709,-0.20294,0.18824,0.18527,-0.20709,-0.21066,-0.21066,0.19715,0.19715,0.19774,-0.20828,-0.20887,0.20724,0.20783,0.20961,0.20783,-0.21006 0.072366,0.091819,0.091819,0.10155,-0.0054469,0.072366,0.10155,0.10155,0.082092,-0.18052,0.121,0.091819,0.11127,0.023733,-0.42369,0.14045,0.15018,0.15018,-0.11244,-0.45287,0.20854,0.17936,0.072366,-0.3167,-0.47232 0.87199,0.10968,0.096921,0.031003,0.057051,0.085757,0.10649,0.10489,0.017713,0.020371,-0.098707,-0.11412,-0.10881,0.019839,0.017181,-0.12103,-0.12369,-0.12369,-0.12157,-0.12422,-0.12529,-0.11944,-0.11944,-0.11412,-0.12476 -0.058697,-0.11602,-0.081626,0.31962,0.54891,-0.12748,-0.058697,-0.058697,0.010089,0.54891,-0.10455,-0.11602,-0.12748,-0.081626,0.33109,-0.081626,-0.15041,-0.10455,-0.081626,0.021553,-0.070161,-0.10455,-0.15041,-0.058697,-0.047233 0.63939,0.05757,-0.10111,-0.10111,-0.098326,0.65331,0.054786,-0.10668,-0.10389,-0.10389,0.065922,0.024164,-0.081622,-0.11781,-0.10946,-0.00089083,0.0046769,-0.084406,-0.10111,-0.11224,-0.00089083,-0.0036747,-0.048216,-0.11224,-0.11224 -0.10289,-0.10289,-0.050747,0.0013903,0.94856,-0.10289,-0.10289,-0.024679,-0.050747,0.053528,-0.10289,-0.10289,-0.076816,0.0013903,0.0013903,-0.10289,-0.050747,-0.050747,0.0013903,0.053528,-0.050747,-0.015989,0.0013903,0.0013903,0.027459 -0.15081,-0.12745,-0.11855,-0.12634,-0.15303,-0.12634,-0.14969,-0.11077,-0.11633,-0.14191,-0.11299,-0.12189,-0.10966,-0.11855,-0.12189,-0.11522,-0.10521,-0.11411,0.3174,0.31852,0.32408,0.32408,0.32297,0.31629,0.3174 0.1297,0.16774,0.17561,0.18479,0.19004,0.13888,0.1743,0.19201,0.19463,0.20513,0.1402,0.14151,0.15135,0.020174,-0.26512,0.01296,0.0077129,0.007057,-0.27759,-0.27693,-0.28086,-0.27627,-0.2789,-0.29267,-0.28546 0.27651,0.27569,0.27513,-0.19303,-0.19242,0.27487,0.27526,-0.079515,-0.16012,-0.17227,0.347,0.30951,-0.080336,-0.14049,-0.16613,0.25653,-0.079558,-0.10563,-0.15939,-0.16851,-0.079904,-0.080207,-0.10693,-0.15567,-0.17037 -0.13052,-0.085106,-0.075498,0.29658,0.56035,-0.094714,-0.13052,-0.077245,-0.084232,0.61014,-0.085106,-0.12266,-0.049296,-0.053663,0.15945,-0.061524,-0.12441,-0.11742,-0.05803,0.16207,-0.071131,-0.075498,-0.12965,-0.069384,-0.092967 0.28508,0.28614,0.31403,0.30875,0.28762,-0.13454,0.21789,0.31361,0.31086,-0.1337,-0.13687,-0.13433,-0.13898,-0.13771,-0.13687,-0.13813,-0.13665,-0.13623,-0.1375,-0.1375,-0.13644,-0.13644,-0.13729,-0.13771,-0.13708 -0.2439,-0.24486,-0.23629,0.16308,0.1626,-0.24057,-0.24438,0.16165,0.16593,0.16213,-0.24438,-0.24676,0.16546,0.16355,0.16213,-0.24819,-0.25438,0.15689,0.1607,0.16117,-0.24533,0.16308,0.17355,0.16355,0.16355 0.11698,0.12177,0.12017,0.11778,0.1114,0.11299,0.11379,0.11698,0.11219,0.1098,0.1114,0.1106,0.109,0.1106,0.10501,-0.35209,0.10661,0.109,0.1106,0.1082,-0.36007,-0.35209,-0.3489,-0.36166,-0.36007 -0.39368,0.10922,0.073147,0.029435,0.029435,-0.39453,0.10498,0.046835,0.031133,0.02986,-0.39071,0.13808,0.11304,0.084606,0.045562,-0.38901,0.13723,0.1211,0.15166,0.16906,-0.38859,0.14572,0.14275,0.1402,0.11346 -0.3377,0.11458,0.082271,0.17919,0.16842,-0.21924,0.082271,0.15765,0.16842,0.20072,-0.21924,-0.025413,0.028429,0.15765,0.17919,-0.30539,-0.12233,-0.014645,0.16842,0.11458,-0.42384,-0.40231,-0.057719,0.20072,0.12534 -0.17228,-0.17384,0.20888,0.20732,0.22577,-0.17436,-0.16917,0.20498,0.20472,0.24395,-0.1754,-0.17436,-0.17228,0.21122,0.20966,-0.1754,-0.178,-0.17748,0.20836,0.26162,-0.18865,-0.18164,-0.17982,-0.17956,0.28579 0.11176,0.079036,-0.14596,-0.27687,-0.24824,0.12813,0.12813,0.025854,-0.24414,-0.28096,0.11585,0.19358,-0.072327,-0.23596,-0.27278,0.11585,0.30813,0.18131,-0.14596,-0.23596,0.11585,0.36131,0.24267,0.16904,-0.11733 0.25733,-0.1507,-0.16657,-0.17517,-0.18245,0.25601,-0.15732,-0.15533,-0.16657,-0.17451,0.25337,0.25337,-0.14938,-0.16525,-0.17319,0.2494,0.25072,0.21302,-0.14607,-0.17054,0.2494,0.24807,0.21369,-0.15732,-0.15401 -0.0098416,-0.12508,-0.1095,-0.17179,-0.18425,-0.019185,-0.072131,-0.078359,-0.17491,-0.1095,0.083592,0.008845,-0.069016,-0.14376,-0.034757,0.4947,0.32652,-0.062787,-0.1095,-0.028528,0.49158,0.41995,-0.11262,-0.1095,-0.10016 -0.086372,0.46936,0.45032,0.45607,0.45709,-0.086372,-0.087139,-0.086627,-0.086627,-0.087266,-0.087139,-0.086883,-0.086883,-0.087266,-0.087394,-0.087777,-0.08765,-0.087777,-0.087777,-0.088161,-0.087522,-0.086883,-0.087777,-0.08765,-0.087905 -0.23485,-0.16417,-0.16653,0.20038,0.24455,-0.23014,-0.16064,-0.15711,0.1886,0.22394,-0.12825,-0.1577,-0.16123,-0.15593,0.31228,-0.17654,-0.1789,0.18154,0.21098,0.22394,-0.18832,-0.19244,0.20392,0.22924,0.23336 -0.20437,-0.12391,0.037013,0.15771,0.31863,-0.3653,-0.04345,0.15771,0.2784,0.23817,-0.24461,-0.12391,-0.083681,0.15771,0.11747,-0.3653,-0.24461,0.11747,0.077244,0.15771,-0.04345,-0.20437,0.037013,-0.12391,0.31863 0.098303,0.10369,0.10235,0.04643,0.049798,0.15119,0.11077,0.087861,0.046767,-0.44906,0.15523,0.10908,0.097293,0.050135,-0.45108,0.040367,0.10672,0.097966,0.090219,-0.45479,0.027904,0.043735,0.10235,0.091903,-0.45512 -0.015627,0.1146,0.057299,-0.17711,-0.23441,0,0.13023,-0.015627,-0.21357,-0.23441,0.088554,0.21878,0.005209,-0.2292,-0.23441,0.27087,0.25003,-0.026045,-0.20315,-0.21878,0.45319,0.39589,0.020836,-0.16148,-0.041672 0.76093,0.031986,-0.055052,-0.071371,-0.098571,0.54333,-0.049612,-0.093131,-0.071371,-0.093131,0.091825,-0.060491,-0.076811,-0.076811,-0.087691,-0.0060927,-0.049612,-0.065931,-0.076811,-0.098571,-0.016972,0.0047871,-0.087691,-0.082251,-0.11489 -0.15819,-0.12524,-0.15819,-0.15819,-0.12524,-0.15819,-0.16918,-0.15819,-0.10327,-0.15819,-0.059323,-0.048337,-0.037351,-0.10327,0.0065914,0.14941,0.050534,-0.09228,-0.01538,0.017577,0.67672,0.40208,0.27025,0.094477,0.16039 -0.12836,-0.12396,-0.15037,-0.13716,-0.12836,-0.12396,-0.15477,-0.13716,-0.13276,-0.10195,-0.08434,-0.075536,-0.057928,-0.044723,-0.053527,-0.0007043,0.012501,-0.0007043,-0.01391,-0.0007043,0.087333,0.10494,0.2414,0.61115,0.59355 -0.021577,-0.047679,-0.08169,-0.063498,-0.07378,-0.027905,-0.04847,-0.069035,-0.072198,-0.059543,0.19356,-0.04847,-0.086436,-0.088018,-0.067453,0.51944,-0.077735,-0.088018,-0.076153,-0.067453,0.76542,-0.094345,-0.08169,-0.07378,-0.063498 -0.1908,-0.1908,0.16461,0.44519,0.33296,-0.17209,-0.078563,-0.022447,0.31425,0.33296,-0.1908,-0.13468,-0.13468,0.1272,0.27684,-0.097269,-0.11597,-0.13468,-0.059858,0.18331,-0.11597,-0.1908,-0.1908,-0.11597,-0.041152 0.31902,0.32017,0.32017,0.31979,0.31786,0.31902,0.31825,-0.096037,-0.10336,-0.096808,-0.15384,-0.16309,-0.10105,-0.10105,-0.099891,-0.15346,-0.13689,-0.1261,-0.10336,-0.11762,-0.16386,-0.13843,-0.13689,-0.11762,-0.12494 0.19751,0.19695,0.19304,0.19304,-0.21323,0.19304,0.19304,0.19304,-0.20092,-0.22218,0.1908,0.18856,-0.21379,-0.19924,-0.19644,0.18912,0.18912,-0.21323,-0.21043,-0.20707,0.1908,0.18912,-0.20483,-0.20819,-0.20763 -0.053946,-0.11258,-0.22986,-0.11258,0.29788,-0.083265,-0.1419,-0.11258,0.004691,0.41515,-0.17122,-0.1419,-0.083265,-0.11258,0.29788,-0.22986,-0.083265,-0.11258,0.12197,0.26856,-0.083265,-0.11258,-0.11258,0.20992,0.47379 -0.43954,-0.52961,-0.28192,-0.28192,-0.079262,-0.079262,-0.14681,-0.079262,-0.011709,0.055843,-0.034227,-0.011709,0.14591,0.055843,0.1234,0.1234,0.19095,0.19095,0.14591,0.055843,0.19095,0.2585,0.1234,0.19095,0.1234 0.026462,0.25855,0.25903,0.25855,0.25855,0.025784,0.026801,0.18137,0.18137,0.1813,0.025784,0.024699,0.1811,7.8675e-05,0.0018421,-0.30309,-5.6972e-05,-0.00039609,1.0852e-05,0.0023168,-0.31801,-0.31767,-0.31795,-0.31774,-0.31869 -0.10803,-0.1087,-0.11039,-0.11509,0.39809,-0.1087,-0.10837,-0.10803,-0.11072,0.40448,-0.10904,-0.10837,-0.10904,-0.11207,0.42399,-0.11039,-0.11005,-0.10971,-0.11476,0.23297,-0.1087,-0.11005,-0.11106,0.23196,0.39977 0.2373,0.23318,0.36842,0.25427,0.36122,0.24193,0.29952,0.31134,-0.12779,-0.13962,-0.13602,-0.13396,-0.14116,-0.13653,-0.13345,-0.13139,-0.13551,-0.13499,-0.13602,-0.13756,-0.13756,-0.13602,-0.13602,-0.13602,-0.13756 0.20141,0.19052,0.176,0.20141,-0.19793,0.18931,0.19294,0.19778,-0.20277,-0.20277,0.18205,0.19415,-0.23302,-0.21487,-0.23786,0.18568,0.19778,-0.20519,-0.21729,-0.24028,0.19415,0.17963,-0.14589,-0.1471,-0.23786 -0.20662,-0.20662,-0.20457,-0.20287,-0.20492,-0.20935,-0.20594,-0.20287,-0.20355,-0.20526,0.17592,0.2783,0.26943,-0.20833,-0.20457,0.18411,0.18548,0.18684,0.18206,0.18548,0.084125,0.18275,0.18343,0.18343,0.18411 -0.24678,-0.24598,-0.24732,0.17108,0.17081,-0.24773,-0.24665,0.16663,0.16582,0.16556,-0.24611,-0.24665,0.16394,0.16394,0.1634,-0.24449,-0.25029,0.16125,0.16098,0.16071,-0.22672,0.15909,0.1595,0.15801,0.15801 0.1763,-0.16497,-0.17552,0.28008,0.26337,-0.16761,-0.16937,-0.1808,0.20444,0.20444,-0.16761,-0.16321,-0.20807,0.19389,0.20796,-0.17376,-0.16233,-0.17552,0.2062,0.22467,-0.19751,-0.16497,-0.19399,0.2493,0.25458 -0.13364,-0.13364,-0.13297,-0.13629,0.23238,-0.13186,-0.13231,-0.13319,-0.13209,0.23482,-0.13253,-0.12943,-0.13054,0.23305,0.27933,-0.13297,-0.13076,-0.13142,0.23593,0.27733,-0.13585,-0.1312,-0.13275,0.24257,0.51803 -0.10618,-0.1082,-0.10753,-0.10955,-0.10955,-0.092673,-0.091322,-0.091997,-0.093348,-0.098075,-0.078492,-0.079843,-0.083219,-0.081193,-0.086595,-0.067688,-0.065662,-0.068363,-0.070389,-0.070389,-0.068363,0.46239,0.45699,0.45699,0.45226 -0.332,-0.29713,-0.15763,-0.26225,-0.12276,-0.26225,-0.1925,-0.087882,-0.1925,-0.12276,0.12136,0.19111,-0.018134,0.086487,-0.15763,0.15624,0.12136,0.22598,0.3306,0.051613,0.22598,-0.018134,0.29573,0.29573,0.12136 0.17493,0.18061,0.19409,0.20295,-0.22873,0.17245,0.17848,0.18203,-0.22519,-0.22838,0.17209,0.17351,0.17493,-0.22661,-0.2259,0.17316,0.176,-0.22306,-0.22519,-0.2259,0.14052,0.18309,-0.22377,-0.22448,-0.22164 -0.034179,-0.076116,-0.065632,-0.08398,-0.10364,-0.039421,-0.064321,-0.08398,-0.10102,-0.10233,0.46776,-0.06039,-0.091843,-0.11281,-0.10626,0.45727,0.028727,-0.095774,-0.10364,-0.10233,0.64992,0.037901,-0.025005,-0.094464,-0.094464 -0.26605,-0.26605,-0.045566,-0.045566,-0.15581,-0.045566,-0.2293,-0.045566,0.027928,-0.37629,-0.19255,-0.11906,-0.11906,-0.11906,-0.045566,0.027928,0.13817,0.027928,0.21166,0.13817,0.21166,0.35865,0.28516,0.35865,0.28516 0.1743,0.17559,-0.19108,-0.19044,-0.18786,0.18954,0.15843,-0.18829,-0.18915,-0.18979,0.19404,0.19211,-0.18808,-0.18743,-0.18829,0.19426,0.19619,0.38263,-0.18829,-0.18872,0.19426,0.20155,0.19919,-0.187,-0.18765 -0.018496,-0.098418,-0.078437,-0.14123,-0.18119,0.081406,-0.038477,0.015756,-0.20688,-0.20403,0.18131,-0.049894,-0.058457,-0.1555,-0.19832,0.37826,0.46389,-0.084146,-0.10413,-0.16121,0.46389,0.32688,0.0014843,-0.029914,-0.10413 -0.13307,-0.14863,-0.14085,-0.17976,0.23657,-0.13307,-0.13696,-0.16031,-0.14474,0.25991,-0.13696,-0.12529,-0.14863,0.1782,0.29882,-0.12918,-0.13696,-0.14863,0.32995,0.30271,-0.13696,-0.13696,-0.0046691,0.34551,0.32995 0.21878,0.18879,0.18938,0.20408,-0.21292,0.18977,0.18545,0.18428,-0.21292,-0.21135,0.19173,0.18741,-0.19645,-0.19684,-0.19743,0.18879,0.18741,-0.21586,-0.2135,-0.19959,0.18938,0.19055,-0.21547,-0.21625,-0.20723 0.17,0.016846,-0.098016,-0.38517,-0.53832,0.15085,0.074278,-0.040585,-0.21288,-0.32774,0.18914,0.15085,0.093421,-0.059728,-0.17459,0.22743,0.18914,0.15085,-0.059728,-0.15545,0.15085,0.20828,0.13171,0.13171,0.016846 0.042676,-0.14127,-0.22011,-0.36201,-0.3988,0.11626,0.047932,-0.11499,-0.25164,-0.35676,0.18458,0.15305,0.032165,-0.072949,-0.17806,0.21611,0.2056,0.16881,0.047932,-0.067693,0.22663,0.2529,0.22137,0.17407,0.07421 -0.34259,0.088966,-0.010623,0.18856,0.18856,-0.47537,-0.11021,0.088966,0.088966,0.15536,-0.243,-0.077016,0.088966,0.088966,0.22175,-0.30939,-0.27619,0.22175,0.15536,0.05577,-0.2098,-0.043819,0.18856,0.022574,0.25495 0.1301,-0.032525,-0.032525,0.10977,0.089443,0.10977,0.10977,0.17075,0.048787,0.1301,0.1301,0.15043,0.048787,0.10977,0.15043,0.21141,0.10977,0.10977,0.048787,0.0081312,-0.39843,-0.41875,-0.41875,-0.3781,-0.29679 -0.15873,-0.15904,-0.15841,-0.15873,-0.15841,-0.15779,-0.15779,-0.15841,-0.15779,-0.15936,0.10312,-0.15591,-0.15747,-0.15904,-0.15841,0.10438,0.11253,0.10689,0.4302,0.22542,0.11629,0.10689,0.40668,0.41138,0.091519 -0.32237,-0.28178,0.046643,0.058943,0.098304,-0.31007,-0.26087,0.046643,0.15858,0.15366,-0.31376,-0.25472,0.13644,0.13644,0.10937,-0.30515,0.050333,0.18687,0.16842,0.082314,-0.06406,-0.019779,0.13398,0.39597,0.16965 0.42038,-0.1104,-0.1104,-0.21656,0.031139,0.38499,0.066525,0.031139,-0.18117,-0.0042463,0.27884,-0.075017,-0.14579,-0.0042463,-0.14579,0.45576,-0.1104,-0.18117,-0.14579,-0.14579,0.27884,-0.1104,0.031139,-0.21656,-0.075017 -0.3014,-0.3014,-0.3014,-0.17241,-0.075673,-0.18316,-0.21541,-0.21541,-0.18316,0.085562,-0.12942,-0.064924,-0.00042996,0.031817,0.2253,0.031817,0.031817,0.17155,0.23605,0.32204,0.031817,0.13931,0.2253,0.26829,0.34354 -0.25589,-0.26226,-0.24952,-0.24314,-0.28775,-0.1412,-0.10297,-0.10934,-0.11571,-0.26226,0.17102,0.1519,0.17102,0.094556,-0.051993,0.22836,0.24111,0.24748,0.17739,-0.071108,0.25385,0.26022,0.22836,0.12004,-0.19217 -0.12204,-0.15504,-0.13704,-0.17904,0.35796,-0.12804,-0.14004,-0.15204,-0.10104,0.32196,-0.13704,-0.14904,-0.13704,0.10896,0.32496,-0.11904,-0.13704,-0.11304,0.28296,0.24996,-0.11604,-0.15504,-0.095041,0.33696,0.28896 0.23738,0.1112,0.13414,0.1112,0.084429,0.19149,0.084429,0.12649,0.076781,-0.23294,0.17238,0.088253,0.072957,-0.13353,-0.31324,0.13414,0.080605,0.076781,-0.34383,-0.39354,0.18767,0.099724,0.06531,-0.31324,-0.40501 -0.12459,-0.12609,-0.12459,-0.079558,0.33474,-0.1336,-0.12909,-0.1321,-0.061545,0.32724,-0.1366,-0.1366,-0.1336,0.32123,0.32123,-0.1426,-0.1426,-0.1396,-0.064547,0.31523,-0.14861,-0.14561,-0.12909,0.30772,0.30322 -0.10322,-0.079794,-0.079794,-0.079794,-0.082397,-0.10322,-0.025141,0.015199,0.054237,-0.056371,0.050333,0.080262,0.047731,-0.053769,-0.047262,-0.13965,0.055538,-0.074589,-0.034249,-0.053769,-0.087602,-0.071986,-0.031647,-0.038153,0.9391 0.27961,-0.14878,-0.14837,-0.15083,-0.15329,0.27633,-0.14714,-0.14837,-0.15083,-0.1537,0.26978,0.27019,-0.14755,-0.14919,-0.15206,0.26486,0.26486,-0.14591,-0.1496,-0.15247,0.2583,0.25789,0.25748,-0.1496,-0.15165 0.24661,0.23357,0.22892,0.22854,0.044324,0.24605,0.22966,0.22649,0.22817,0.042834,0.23413,0.2319,-0.18609,-0.18665,-0.18609,-0.18497,-0.18609,-0.18646,-0.18646,-0.18702,-0.18609,-0.18534,-0.18628,-0.18572,-0.18795 -0.13666,-0.13762,-0.13698,-0.13618,-0.13714,-0.13714,-0.1373,-0.13666,-0.13634,-0.13602,-0.13666,-0.1357,-0.1365,-0.13203,-0.13522,-0.1349,0.33185,0.28022,0.24409,-0.13395,0.35471,0.3424,0.2807,0.25416,0.22491 0.1582,0.16796,0.18078,0.18567,0.17743,0.15606,0.15911,0.164,0.15698,0.16674,-0.2456,0.15148,0.1643,0.15209,0.14965,-0.2459,-0.24407,-0.24529,-0.24499,0.15698,-0.24682,-0.2456,-0.24438,-0.24254,-0.24224 -0.47561,-0.2475,-0.11919,-0.033647,0.22298,-0.2475,-0.11919,-0.033647,0.10892,0.22298,-0.2475,-0.11919,0.051895,0.18021,0.28001,-0.20473,-0.11919,0.10892,0.28001,0.15169,-0.076418,-0.11919,0.22298,0.28001,0.051895 0.20936,0.21361,-0.19197,-0.19197,-0.19237,0.21252,0.21064,-0.19188,-0.19197,-0.19296,0.20975,0.20975,-0.19168,-0.19118,-0.19455,0.20748,0.20956,-0.19118,-0.19168,-0.19277,0.20451,0.20817,0.21035,-0.19138,0.19185 0.24889,0.2324,0.24499,0.36348,0.27841,0.33961,0.34525,0.25671,-0.13479,-0.13349,-0.13045,-0.13176,-0.13262,-0.13436,-0.13479,-0.13262,-0.1361,-0.1361,-0.13783,-0.14044,-0.13653,-0.1374,-0.14044,-0.13957,-0.14044 0.44961,0.35141,0.20686,-0.079535,-0.14227,0.19867,0.19595,0.086844,-0.13136,-0.2541,0.15503,0.095027,0.045932,-0.18318,-0.19409,0.21504,-0.13136,-0.15045,-0.10135,-0.27319,0.22322,-0.13409,-0.12318,-0.052259,-0.27319 0.030366,-0.096158,-0.12327,-0.08712,-0.08712,-0.050971,-0.14134,-0.14134,-0.13231,-0.12327,0.12978,-0.13231,-0.096158,-0.1052,-0.12327,0.4009,0.26534,-0.032896,-0.15038,-0.14134,0.48223,0.43705,0.28341,-0.15038,-0.11423 -0.29531,0.0079413,0.15848,0.16153,0.15964,-0.29502,0.010123,0.15935,0.15891,0.16444,-0.26942,0.010996,0.16139,0.15921,0.1608,-0.26753,-0.2687,0.16211,0.16066,0.16153,-0.26535,-0.30142,-0.30142,0.15019,0.15688 0.0041348,-0.12508,-0.17676,-0.30598,-0.37058,0.18503,-0.021708,-0.15092,-0.25429,-0.28013,0.21088,0.13335,-0.021708,-0.138,-0.22845,0.24964,0.21088,0.068741,-0.04755,0.0041348,0.35301,0.24964,0.24964,0.14627,0.05582 -0.20099,-0.20178,-0.20244,-0.20362,-0.20336,-0.20152,-0.20139,-0.2031,-0.20336,-0.20165,0.12669,0.12998,0.16128,-0.088828,-0.08199,0.16128,0.16128,0.16101,0.16141,-0.080281,0.050163,0.16101,0.16075,0.42006,0.4194 -0.26478,-0.258,0.18706,0.19676,0.19676,-0.25994,-0.25897,0.19869,0.189,0.19676,-0.2483,-0.23085,0.19579,0.18609,0.19288,-0.24054,-0.19303,0.19385,0.18318,0.19966,-0.20855,-0.087343,0.088158,-0.064072,-0.090252 -0.16803,-0.073276,-0.089068,-0.073276,-0.010107,-0.16803,-0.16803,-0.073276,-0.041691,0.27415,-0.16803,-0.073276,-0.12065,0.0056852,0.35311,-0.16803,-0.16803,-0.16803,0.13202,0.3689,-0.12065,-0.073276,-0.073276,0.3847,0.47945 -0.11386,-0.11422,-0.11569,0.34461,0.34937,-0.11093,-0.11276,-0.11019,-0.11642,0.35853,-0.11239,-0.11129,-0.11056,-0.11166,0.35963,-0.11129,-0.11129,-0.11129,-0.11386,0.36403,-0.11056,-0.11093,-0.11129,-0.11459,0.3589 -0.27432,-0.28765,-0.30097,-0.31551,-0.28643,0.1618,0.12182,-0.31551,-0.28765,-0.25857,0.1618,0.11698,0.13636,0.13878,0.14363,0.13151,0.12909,0.12909,0.1303,0.13757,0.13999,0.13151,0.13273,0.14726,0.13636 -0.13686,-0.13734,-0.13734,-0.13734,-0.13831,-0.13638,-0.13807,-0.13734,-0.13589,-0.13686,-0.13759,-0.13638,-0.13541,-0.13783,-0.13638,0.34054,-0.13251,-0.13831,0.28066,0.26351,0.30722,0.31302,0.28887,0.26738,0.26496 -0.25724,0.19374,0.19575,0.18369,0.17363,-0.26461,-0.26461,0.17833,0.14817,0.19173,-0.26059,-0.26662,0.15085,0.14281,0.17498,-0.25724,-0.27332,0.14147,0.10193,0.084512,-0.26461,-0.26193,0.13812,0.089873,0.081162 -0.13727,-0.12597,-0.1222,0.32615,0.32185,-0.12866,-0.12812,-0.12489,0.32185,0.32023,-0.1362,-0.12436,-0.11413,-0.11951,0.31808,-0.13404,-0.13351,-0.11736,-0.12059,0.31754,-0.12597,-0.12651,-0.10982,-0.11467,0.31808 0.89906,0.080349,0.042312,0.05318,0.042312,-0.013838,0.065859,0.0078973,0.087594,0.05318,-0.0011592,-0.024706,-0.089913,-0.089913,-0.097158,-0.10803,-0.089913,-0.10803,-0.093535,-0.11165,-0.23482,-0.11527,-0.0047818,-0.12614,-0.022895 -0.18475,-0.0092548,-0.22551,0.23592,0.2392,-0.18673,-0.20382,-0.23077,0.20897,0.27273,-0.13809,-0.14269,0.23855,0.18465,0.32531,-0.17818,-0.14663,-0.13611,0.15047,0.29836,-0.1887,-0.19527,-0.19724,0.099857,0.10972 -0.14449,-0.1264,-0.13544,-0.1907,-0.20477,-0.13243,-0.1053,-0.11334,-0.15453,-0.17664,-0.12138,-0.1053,-0.089223,-0.076161,-0.12138,0.34986,0.33579,0.26847,-0.054056,-0.08219,0.35589,0.33579,0.28455,0.27149,-0.068123 0.089721,0.072856,0.078478,0.10659,0.12907,0.084099,0.089721,0.072856,0.11221,0.12345,0.089721,0.061613,0.12345,0.12907,0.14594,-0.22509,0.089721,0.1628,0.12345,0.1628,-0.46682,-0.44433,-0.38249,-0.33752,-0.19136 -0.3599,0.13616,0.1175,0.11567,0.1175,-0.36051,0.11719,0.11322,0.10894,0.11414,-0.35654,0.11016,0.10282,0.10251,0.11658,-0.35531,0.094257,0.10221,0.10221,0.11934,-0.34492,-0.35593,0.10129,0.10894,0.13249 -0.34932,0.054986,-0.066306,0.21671,0.17628,-0.26846,-0.22803,0.014555,0.095416,0.37843,-0.14717,-0.22803,0.095416,0.054986,0.21671,-0.22803,0.014555,-0.14717,0.37843,0.095416,-0.22803,-0.22803,0.054986,0.054986,0.21671 0.095746,0.23655,0.13095,0.13095,-0.11546,0.27175,0.13095,-0.0098562,0.060545,-0.18586,0.20135,0.095746,-0.080258,-0.11546,-0.18586,0.16615,0.23655,-0.11546,-0.11546,-0.36186,0.27175,0.16615,-0.15066,-0.39706,-0.36186 0.18163,0.26351,0.27182,-0.16761,-0.16122,0.19571,0.2731,-0.16953,-0.17017,-0.15418,0.25072,0.21873,-0.16314,-0.16505,-0.1593,0.2859,0.19827,-0.16505,-0.1625,-0.14842,0.29037,-0.17529,-0.16761,-0.16122,-0.13947 0.2629,-0.14863,-0.14945,-0.15109,-0.15191,0.26306,-0.14764,-0.14961,-0.15207,-0.15142,0.26126,0.26651,-0.15043,-0.15093,-0.15175,0.27061,0.25896,-0.15027,-0.15093,-0.15125,0.27422,0.27668,0.26536,-0.1424,-0.14978 -0.090177,-0.094606,-0.10789,0.12021,0.080344,-0.090177,-0.054744,-0.11232,0.11799,0.044911,-0.090177,-0.099035,-0.13225,-0.054744,-0.054744,-0.037028,-0.099035,-0.11232,0.04934,0.027195,-0.068031,-0.07689,-0.041457,0.067057,0.90859 0.1508,0.14987,-0.2578,-0.27029,-0.2689,0.14848,0.14848,0.15033,-0.26705,-0.26937,0.14941,0.14941,0.14987,-0.26844,-0.26844,0.15033,0.15033,0.15218,0.14802,-0.26937,0.15126,0.14895,0.1508,0.15126,-0.26011 -0.26402,-0.2594,-0.2517,-0.2635,0.098395,-0.26042,-0.26042,-0.25324,-0.26248,-0.26145,0.10764,0.15024,0.10302,0.1333,0.25445,0.12355,0.1333,0.10302,0.17026,0.25291,0.12201,0.10764,0.15845,0.25239,0.066055 0.092176,0.097251,0.08565,0.063171,0.14221,0.08855,0.09,0.079849,0.13931,0.14366,0.12408,0.10668,0.084199,0.15308,0.16324,0.12481,0.12336,0.095801,0.12263,-0.33709,-0.35522,-0.35522,-0.35957,-0.35522,-0.35739 0.2034,0.16199,0.15231,0.16522,0.20179,0.21954,0.15554,0.1593,0.22438,0.23406,0.22061,0.18565,-0.21233,-0.21502,0.1991,-0.1849,-0.19243,-0.20587,-0.21663,-0.22524,-0.19888,-0.19781,-0.19727,-0.21233,-0.22416 -0.11601,-0.12467,-0.15068,-0.1502,-0.16368,-0.12516,-0.13816,-0.13912,-0.1579,-0.15839,0.056885,0.048217,-0.14297,-0.15598,-0.15742,0.059293,0.04918,0.30539,-0.15935,-0.15405,0.3025,0.31309,0.32272,0.31116,0.4253 -0.11153,-0.20669,-0.016368,0.12637,0.15492,-0.14008,-0.044916,-0.10201,0.19299,0.19299,-0.37798,0.059761,-0.0068515,0.10734,0.13589,-0.44459,-0.08298,0.15492,0.16444,0.2025,-0.4541,-0.08298,0.18347,0.2025,0.19299 -0.4135,0.23408,0.095584,0.090455,0.11931,-0.41157,0.10905,0.076991,0.076991,0.10071,-0.40452,0.09879,0.084685,0.082761,0.090455,-0.38465,0.099431,0.093661,0.10071,0.084685,-0.36156,0.10648,0.078914,0.078273,0.073785 -0.2953,-0.29105,-0.28999,-0.29318,-0.307,0.14504,0.14504,-0.28786,-0.27935,-0.28786,0.14078,0.13865,0.13653,0.13865,0.13865,0.13865,0.13865,0.13653,0.1344,0.1344,0.1344,0.13227,0.1344,0.13227,0.13227 -0.24165,0.11691,0.14402,0.15005,0.18319,-0.2085,0.11691,0.14704,0.16511,0.19826,-0.27178,-0.24767,0.14402,0.15306,0.17717,-0.28985,-0.25671,0.050619,0.15306,0.16813,-0.30191,-0.30191,-0.24767,0.11691,0.18319 0.23553,0.18272,0.20912,0.22232,0.15631,0.19592,0.19592,0.15631,0.11671,-0.0021123,0.18272,0.14311,0.090303,-0.0021123,-0.18694,0.037494,-0.0021123,-0.094527,-0.22655,-0.39818,-0.041719,-0.22655,-0.22655,-0.35857,-0.35857 -0.10579,0.083663,0.1746,0.20491,0.22007,-0.23462,-0.03001,0.15944,0.15944,0.27312,-0.22704,-0.18915,0.083663,0.1746,0.23523,-0.26493,-0.25735,-0.15126,0.15944,0.21249,-0.2422,-0.27251,-0.25735,-0.1361,0.22765 -0.20258,-0.20303,-0.20484,-0.20755,-0.20755,-0.20032,-0.20258,-0.20349,-0.20665,-0.20484,-0.19581,-0.19671,0.22507,0.23907,0.24223,0.11037,0.1063,0.23139,0.23501,0.23862,0.13927,0.094111,0.1045,0.23049,0.23952 -0.29939,-0.28612,-0.20649,0.045651,0.058922,-0.28612,-0.23303,-0.19322,0.072193,0.11201,-0.25958,-0.17995,-0.020702,0.24471,0.19163,-0.15341,-0.033973,0.15182,0.21817,0.24471,-0.087056,0.098735,0.2049,0.28453,0.31107 -0.13932,-0.13932,-0.12531,-0.12064,-0.12531,-0.12064,-0.13932,-0.12998,-0.12064,-0.10197,-0.11597,-0.13932,-0.12531,-0.064616,0.014753,-0.12064,-0.073953,0.0054158,0.12213,0.22952,0.02876,0.14081,0.26687,0.48163,0.61235 0.32056,0.37979,-0.02002,-0.070366,-0.14144,0.2939,0.34425,-0.12367,-0.13552,-0.12367,0.31759,-0.1444,-0.1444,-0.13552,-0.12367,0.40348,-0.13552,-0.14144,-0.14144,-0.11183,0.089557,-0.061481,-0.1296,-0.12367,-0.14144 -0.031507,0.016547,0.083406,0.21294,0.27145,-0.12135,-0.13806,0.20041,0.22757,0.27145,-0.24462,-0.21328,-0.12553,0.23593,0.15444,-0.27805,-0.24253,-0.20074,0.072959,0.14609,-0.25298,-0.23835,-0.22581,0.2798,0.13982 0.25198,0.22553,0.16797,0.11818,0.079285,0.2442,0.2022,-0.16965,-0.19921,-0.18832,0.2442,0.19597,-0.20543,-0.20543,-0.19921,0.23954,0.21464,-0.19921,-0.21788,-0.20543,0.23331,-0.020288,-0.20076,-0.21165,-0.19454 -0.08369,0.47449,0.44974,0.46139,0.44683,-0.088056,-0.08369,-0.089512,-0.088056,-0.089512,-0.082234,-0.085145,-0.085145,-0.088784,-0.092423,-0.085145,-0.085145,-0.088056,-0.085145,-0.091695,-0.09024,-0.085145,-0.086601,-0.088056,-0.090967 -0.007508,0.055904,0.068586,0.063513,0.95382,-0.053165,-0.02019,-0.0278,0.0051744,-0.010044,-0.073456,-0.053165,-0.053165,-0.053165,-0.053165,-0.083602,-0.093748,-0.083602,-0.083602,-0.093748,-0.063311,-0.053165,-0.078529,-0.055701,-0.053165 0.2453,0.41259,-0.12848,-0.12172,-0.12408,0.2426,0.41394,-0.13287,-0.12611,-0.12476,0.23989,0.23685,-0.13692,-0.13861,-0.13861,0.24598,-0.13219,-0.13929,-0.13895,-0.13997,0.2426,-0.13895,-0.13963,-0.13895,-0.13963 0.15057,0.13903,0.15057,0.13134,-0.46078,0.13903,0.13134,0.13134,0.092893,-0.48,0.089048,0.01984,0.11596,0.11596,-0.46462,0.050599,0.031375,0.054444,0.069824,-0.37619,0.065979,0.042909,0.02753,0.042909,-0.01092 -0.36349,-0.34877,-0.35928,-0.35823,-0.35613,0.10455,0.10665,0.10349,0.1056,-0.34877,0.1098,0.10875,0.1098,0.11191,0.1077,0.11296,0.11717,0.11401,0.11191,0.11717,0.11717,0.11927,0.11822,0.12032,0.11822 -0.16708,-0.1678,-0.16672,-0.1678,-0.16637,-0.16565,-0.16815,-0.16815,-0.16708,-0.16209,-0.17065,0.066285,0.065928,-0.16672,-0.16458,0.063073,0.070567,0.065571,0.31464,0.29501,0.061646,0.066998,0.47914,0.31357,0.30643 -0.38234,-0.38234,-0.38258,-0.38186,-0.38258,0.20361,0.13752,0.082726,0.051624,0.016999,0.19097,0.13752,0.082361,0.041176,0.01542,0.19353,0.12695,0.084913,0.04397,0.0080087,0.20677,0.13946,0.084305,0.050409,0.013476 -0.30385,-0.30413,-0.079902,-0.080187,-0.081328,-0.30185,-0.3047,-0.081328,-0.080472,-0.081899,-0.073911,-0.079046,-0.081328,-0.080472,-0.079902,-0.0068696,0.30608,0.26101,0.25759,0.24703,-0.010293,0.28783,0.26015,0.24931,0.24247 0.085925,0.077759,0.10822,0.075331,-0.459,0.096298,0.10336,0.082835,0.088132,-0.45745,0.10358,0.097181,0.083276,0.083056,-0.45569,0.085484,0.10468,0.073786,0.074007,-0.45833,0.090339,0.084159,0.079524,0.09078,0.062751 -0.078664,-0.0051135,0.063184,0.063184,0.92828,-0.078664,-0.082167,0.0018913,0.092954,0.075442,-0.085669,-0.089172,-0.078664,0.01415,0.036915,-0.099679,-0.092674,-0.082167,-0.078664,0.028159,-0.096176,-0.096176,-0.099679,-0.089172,-0.071659 -0.09954,-0.095789,-0.060774,-0.27711,-0.27899,0.23309,0.078657,-0.21146,-0.20958,-0.20021,0.28562,0.15431,0.039266,-0.21646,-0.18958,0.31938,0.24685,-0.10017,0.021134,-0.10767,0.38378,0.27624,0.15431,-0.090787,-0.054522 -0.30462,-0.31451,-0.31121,-0.30297,-0.30627,0.16197,-0.27989,-0.26175,-0.24197,0.1224,0.15373,0.14054,0.14383,0.12405,0.12405,0.15538,0.14383,0.129,0.12735,0.11416,0.14219,0.14878,0.13889,0.129,0.12405 -0.21734,-0.21422,-0.078337,-0.06952,-0.070558,-0.22097,-0.21889,0.20744,0.20588,0.2064,-0.21785,-0.22356,0.20381,0.20485,0.19862,-0.22356,-0.22563,0.20537,0.20848,0.19603,-0.22408,-0.22771,0.20796,0.209,0.1784 0.015089,0.0092857,0.015089,0.0034821,-0.054554,0.038304,-0.054554,-0.071964,0.015089,-0.077768,-0.042946,-0.066161,-0.1242,0.038304,-0.19384,-0.031339,-0.083571,-0.066161,-0.071964,-0.008125,-0.066161,-0.083571,0.020893,-0.0023214,0.94366 -0.29091,0.14239,0.14239,0.13952,0.15005,-0.29474,0.14526,0.14526,0.14143,0.14335,-0.28708,-0.29187,0.12803,0.13569,0.15101,-0.28852,-0.29139,0.11175,0.12946,0.13856,-0.29187,-0.29378,0.11606,0.13425,0.13569 0.14247,0.22212,0.26625,0.25982,0.12603,0.26016,0.26591,0.26533,0.11925,0.12051,-0.24246,0.26441,-0.085568,-0.085683,-0.086028,-0.24315,-0.24292,-0.086717,-0.087752,-0.086258,-0.2428,-0.24498,-0.24533,-0.24544,-0.087177 -0.21063,-0.25822,-0.21063,0.28106,0.36036,-0.11547,-0.3058,-0.14719,0.24933,0.24933,-0.067885,-0.3058,0.043142,0.13831,0.24933,-0.052024,-0.17891,-0.052024,0.23347,0.10659,-0.14719,-0.17891,0.090725,0.043142,0.18589 -0.13581,-0.13654,-0.13727,-0.13782,-0.13782,-0.13599,-0.13599,-0.13599,-0.13654,-0.13672,-0.13417,-0.13417,-0.13508,-0.13453,-0.13508,0.096436,0.091137,0.086752,0.1339,0.28446,0.094974,0.096071,0.085107,0.5359,0.5348 -0.46191,-0.40177,-0.19126,-0.3717,-0.40177,0.10946,-0.010826,0.10946,0.019246,-0.10104,0.049319,0.13954,0.13954,0.10946,0.079391,0.019246,0.16961,0.079391,0.10946,0.079391,0.16961,0.079391,0.22975,0.019246,0.22975 -0.31649,-0.31576,0.08933,0.15214,0.13448,-0.31845,-0.31895,0.092765,0.1357,0.13644,-0.32091,0.098163,0.096691,0.13497,0.14036,-0.32091,0.10037,0.14944,0.15018,0.14454,-0.32385,0.10233,0.13717,0.13423,0.10601 -0.15841,-0.13893,0.16531,0.232,0.28146,-0.16141,-0.14642,0.15632,0.24774,0.2867,-0.16965,-0.16816,-0.13743,0.19678,0.2867,-0.17115,-0.16816,-0.16741,-0.14792,0.27771,-0.17865,-0.17415,-0.17415,-0.15467,0.28595 0.10891,0.12393,0.11492,-0.33455,-0.31953,0.10891,0.11392,0.11992,-0.30952,-0.31252,0.11292,0.10791,0.12593,0.14095,-0.32454,0.12393,0.12693,0.13294,0.15096,-0.32354,0.12493,0.13394,0.13194,0.13794,-0.31753 -0.1243,-0.39135,-0.31852,-0.22141,-0.26997,-0.17286,-0.075746,-0.14858,-0.051468,-0.1243,-0.0029133,-0.027191,0.021364,0.045642,0.094197,0.094197,0.19131,0.19131,0.094197,0.094197,0.3127,0.36125,0.40981,0.11847,-0.10002 0.1441,0.12419,0.13798,-0.31383,-0.070313,0.14563,0.12419,0.1353,-0.31421,-0.31727,0.13376,0.13721,0.1353,-0.31421,-0.31306,0.1353,0.13568,0.13453,0.1196,-0.31268,0.13644,0.13721,0.13376,0.1196,-0.31421 -0.13688,-0.13561,-0.13731,-0.13943,0.35435,-0.13603,-0.13561,-0.13858,-0.14369,0.28205,-0.13518,-0.13646,-0.13646,0.28205,0.28418,-0.13391,-0.13561,-0.13688,0.28715,0.28971,-0.13603,-0.13476,-0.13816,0.2778,0.26929 -0.18922,-0.18922,-0.19694,-0.19694,-0.20466,-0.19308,-0.20176,-0.18439,-0.18729,-0.19501,-0.18825,0.23539,-0.17764,-0.18343,0.23153,0.22766,0.23925,0.20161,0.16397,0.19196,0.21222,0.2238,0.21126,0.17169,0.17748 0.3886,0.44966,-0.083813,-0.070958,-0.10952,0.33075,0.43359,-0.1288,-0.058104,-0.11916,0.12508,-0.0002571,-0.070958,-0.10631,-0.16094,0.073658,0.060803,-0.1288,-0.19951,-0.20915,0.070444,0.080085,-0.1288,-0.20593,-0.23164 0.016706,0.0059969,0.027414,-0.015421,-0.34739,0.048832,0.070249,0.038123,0.038123,-0.36881,0.048832,0.070249,0.070249,0.10238,-0.55086,0.14521,0.091667,0.17734,0.14521,-0.43306,0.14521,0.17734,0.20946,0.17734,-0.090382 0.28115,0.18255,0.29534,0.36085,0.30175,-0.13253,-0.13489,0.30209,0.2923,0.29601,-0.12982,-0.13185,-0.13489,-0.13084,-0.13016,-0.13185,-0.1332,-0.13658,-0.13489,-0.13759,-0.14063,-0.14299,-0.14198,-0.14333,-0.14401 0.41875,0.36026,0.21405,0.41875,0.12633,0.27254,0.15557,0.097084,-0.078369,-0.10761,-0.019885,0.0386,-0.10761,-0.078369,-0.22458,-0.10761,-0.13685,-0.13685,-0.13685,-0.13685,-0.13685,-0.019885,-0.19534,-0.28307,-0.19534 0.048102,0.25623,0.20998,0.46437,0.23311,-0.044402,0.11748,0.18686,0.25623,0.048102,-0.044402,-0.044402,0.048102,0.11748,0.094353,-0.22941,-0.067527,-0.090653,-0.090653,-0.11378,-0.27566,-0.29879,-0.16003,-0.29879,-0.32191 -0.089289,0.034723,-0.13438,-0.066741,0.81826,-0.021646,-0.11184,0.029087,0.09673,0.4124,0.034723,-0.066741,0.02345,-0.038557,-0.021646,-0.1062,-0.066741,-0.072378,-0.11747,-0.021646,-0.14566,-0.12311,-0.10056,-0.12311,-0.021646 0.27366,0.21098,0.14501,0.0064654,0.052647,0.30335,0.20109,0.12522,0.11532,-0.099092,0.28026,0.30335,0.18459,0.13511,-0.14198,-0.20795,-0.18816,-0.17166,-0.19475,-0.21784,-0.22444,-0.21784,-0.22444,-0.22444,-0.22444 0.38546,0.12692,0.1446,0.20868,-0.24209,0.19101,0.12692,0.1446,0.062844,-0.24651,0.11367,0.095989,0.17112,-0.26198,-0.27303,0.051795,0.13797,0.12913,-0.26861,-0.3128,0.058424,0.10925,-0.12719,-0.23988,-0.28629 -0.1562,-0.15696,-0.15332,-0.15869,0.29046,-0.15754,-0.15696,-0.15466,0.29085,0.30638,-0.1585,-0.1585,-0.15601,0.3173,0.31558,-0.15792,-0.15658,-0.15677,0.31519,0.13385,-0.15735,-0.15965,0.12637,0.12963,0.13001 0.59791,0.037019,-0.01907,-0.07516,-0.13125,0.51378,0.037019,-0.1032,-0.07516,-0.1032,0.31747,-0.1032,-0.13125,-0.1032,-0.07516,0.23333,-0.1032,-0.18734,-0.1032,-0.047115,-0.01907,-0.047115,-0.21538,-0.13125,0.037019 0.12393,0.35866,0.49949,0.31171,0.49949,-0.087317,-0.040372,-0.13426,-0.0169,-0.040372,-0.20468,-0.11079,-0.11079,-0.13426,-0.22815,-0.063845,-0.063845,0.030045,-0.13426,0.030045,-0.18121,-0.087317,-0.087317,-0.13426,0.0065723 0.45168,0.44487,0.45282,-0.034193,0.47779,-0.063709,-0.080737,-0.086413,-0.069385,-0.072791,-0.086413,-0.10231,-0.088684,-0.09663,-0.10117,-0.098901,-0.10004,-0.09663,-0.090954,-0.10117,-0.095495,-0.095495,-0.095495,-0.069385,-0.10117 0.14267,0.12487,-0.22551,-0.22419,-0.22419,0.13805,0.19771,-0.22814,-0.2232,-0.22353,0.14992,0.19013,0.19409,-0.22485,-0.22485,0.19936,0.18749,0.18947,-0.22551,-0.22287,0.18519,0.18848,0.19738,0.18651,-0.22452 -0.06261,-0.077709,-0.123,-0.10287,-0.12804,-0.047511,-0.09784,-0.082741,-0.1381,-0.10287,0.13871,-0.082741,-0.067643,-0.09784,-0.10287,0.52624,-0.047511,-0.082741,-0.067643,-0.077709,0.57154,0.46585,0.012884,-0.047511,-0.077709 -0.012528,-0.079641,-0.034899,-0.05727,0.032214,-0.10201,-0.079641,-0.12438,-0.05727,0.21118,-0.079641,-0.14675,-0.05727,-0.034899,0.18881,-0.12438,-0.05727,-0.05727,-0.05727,0.43489,-0.14675,-0.12438,-0.16912,-0.012528,0.74809 0.53516,0.49558,0.29766,0.29766,0.13933,-0.019,-0.058583,-0.098166,0.020583,-0.17733,-0.2565,-0.098166,-0.13775,-0.058583,-0.13775,-0.13775,-0.098166,-0.058583,-0.17733,-0.058583,0.020583,-0.13775,-0.13775,-0.019,0.060166 -0.29044,0.13387,0.13149,0.13387,0.13864,-0.30474,0.15533,0.13626,0.12434,0.13864,-0.29998,-0.26183,0.12911,0.12911,0.12911,-0.30713,-0.28567,0.14341,0.13149,0.14579,-0.30713,-0.27137,0.16009,0.13149,0.13626 0.11172,-0.011501,-0.024822,-0.061456,-0.084768,0.11394,0.15169,-0.043694,-0.061456,-0.079218,-0.10253,0.11172,-0.060346,-0.068117,-0.081438,-0.11141,-0.069227,-0.071447,-0.080328,-0.10031,0.91101,-0.055905,-0.073667,-0.072557,-0.085879 0.12679,0.10148,0.11667,0.16224,0.17237,0.12679,0.1116,0.13186,0.1673,0.18756,-0.0048611,0.055903,0.15718,0.11667,0.20275,-0.32893,-0.21753,-0.070688,0.06603,0.16224,-0.3897,-0.37957,-0.35932,-0.2783,-0.13652 -0.13277,-0.12926,-0.13013,0.32305,0.31938,-0.11711,-0.12879,-0.12967,0.3201,0.3184,-0.12931,-0.129,-0.12027,-0.11851,0.31995,-0.12962,-0.11758,-0.11996,-0.11882,0.3216,-0.13556,-0.11965,-0.11913,-0.11913,0.32176 -0.3451,-0.21765,-0.22092,0.1353,-0.018301,-0.1817,-0.13922,-0.14575,0.14837,0.16471,-0.22745,-0.10327,0.14837,0.17778,0.20066,-0.22419,-0.21111,0.21046,0.2268,0.217,-0.16863,-0.17843,0.25948,0.23334,0.25948 -0.010042,-0.1007,-0.093723,-0.1007,-0.093723,0.031799,-0.072803,-0.091399,-0.082101,-0.079777,0.52227,-0.058856,-0.096048,-0.079777,-0.072803,0.52924,-0.070479,-0.089075,-0.082101,-0.075128,0.55481,-0.023989,-0.089075,-0.089075,-0.08675 -0.13303,-0.088979,0.32508,0.41318,0.40877,-0.11981,-0.12422,-0.02731,0.38235,0.38235,-0.14624,-0.11541,-0.111,-0.014096,0.13567,-0.13303,-0.13743,-0.15065,-0.111,-0.071359,-0.10219,-0.14624,-0.11981,-0.084574,-0.111 -0.24096,-0.24096,-0.25293,0.17321,0.15871,-0.2435,-0.24422,0.17249,0.17212,0.16233,-0.24422,-0.24422,0.16016,0.16415,0.16342,-0.24604,-0.24422,0.15943,0.16705,0.16487,-0.24749,0.15435,0.15834,0.16233,0.1558 -0.17431,0.071889,0.14575,0.29346,0.4658,-0.14969,-0.17431,-0.0019696,0.24423,0.24423,-0.22354,-0.10045,-0.0019696,0.14575,0.24423,-0.14969,-0.22354,-0.14969,-0.0019696,0.14575,-0.32202,-0.17431,-0.22354,-0.075828,0.14575 -0.083075,-0.041949,0.08143,0.28706,0.47213,-0.30927,-0.062512,-0.00082252,0.08143,0.431,-0.20645,-0.20645,0.060867,0.08143,0.22537,-0.24758,-0.18589,-0.00082252,0.08143,0.10199,-0.26814,-0.16533,-0.16533,0.040304,-0.00082252 0.3485,0.28169,0.28524,0.27523,0.32591,0.34559,0.35528,-0.081412,-0.080121,-0.080767,-0.080444,-0.13822,-0.14112,-0.13854,-0.14661,-0.082703,-0.13305,-0.14015,-0.15403,-0.15468,-0.078185,-0.1366,-0.14306,-0.15791,-0.14984 0.28202,0.28162,0.28307,-0.14693,-0.14614,0.28044,0.28176,-0.14811,-0.14838,-0.14838,0.28057,0.28202,-0.14785,-0.14825,-0.14838,0.28018,-0.14825,-0.14785,-0.1489,-0.14903,0.12051,-0.14877,-0.14811,-0.14917,-0.14969 -0.12079,-0.088075,-0.087246,-0.082691,-0.086418,0.43123,-0.090145,-0.086418,-0.084347,-0.083933,0.43785,-0.08559,-0.086832,-0.083933,-0.083933,0.43123,-0.088489,-0.083519,-0.082691,-0.083933,0.52565,-0.085176,-0.084762,-0.081449,-0.08559 0.30982,0.14778,0.14778,0.37463,0.245,0.082963,0.018148,0.14778,0.14778,0.14778,-0.046667,-0.11148,0.082963,0.050556,0.11537,-0.11148,0.050556,-0.2087,-0.046667,-0.014259,-0.40315,-0.33833,-0.27352,-0.30593,-0.2087 -0.19902,-0.19902,-0.19902,-0.18636,-0.13572,-0.19902,-0.16104,-0.16104,-0.072416,-0.059756,-0.12306,-0.072416,-0.12306,-0.034436,0.11749,-0.072416,0.0035449,0.041526,0.11749,0.32005,0.054186,0.14281,0.24409,0.39601,0.56059 0.1695,0.14723,0.11812,0.10441,-0.28953,0.16265,0.13696,0.13011,0.097562,-0.29296,0.15751,0.14038,0.11812,0.10613,-0.3118,0.15751,0.14381,0.12325,-0.2844,-0.2844,0.16607,0.14038,-0.25528,-0.32036,-0.28097 -0.23627,-0.045256,-0.074643,-0.015869,0.41024,-0.074643,-0.015869,-0.089336,-0.015869,0.30739,-0.23627,-0.074643,-0.045256,-0.074643,0.20453,-0.32443,-0.045256,-0.074643,0.013518,0.36616,-0.20688,-0.015869,-0.089336,-0.045256,0.4984 0.4784,0.29855,0.20863,0.4784,0.20863,0.058751,-0.001199,0.028776,-0.061149,0.028776,0.058751,-0.031174,-0.1211,-0.061149,-0.031174,-0.031174,0.058751,-0.241,-0.27097,-0.18105,-0.18105,-0.21102,-0.1211,-0.241,-0.1211 0.15733,0.13677,0.10248,0.081913,0.056772,0.14819,0.13905,0.10477,0.086484,0.0682,0.14819,0.14134,0.1162,0.09334,-0.055218,0.15505,0.14134,0.12077,0.049916,-0.22892,-0.45061,-0.4369,-0.45747,-0.21292,-0.20606 -0.072972,-0.045522,0.08258,0.083723,0.92553,-0.086697,-0.054672,0.081436,0.090586,0.1066,-0.09356,-0.08441,-0.069541,-0.066109,-0.059247,-0.082122,-0.079835,-0.083266,-0.077547,-0.072972,-0.095847,-0.034084,-0.061534,-0.077547,-0.072972 0.25983,0.26746,0.2628,-0.15066,-0.15448,0.25729,0.26874,-0.14939,-0.15024,-0.15363,0.25813,0.27467,-0.14812,-0.15024,-0.15193,0.26492,-0.14684,-0.14812,-0.15108,-0.15066,0.28527,-0.14515,-0.14684,-0.15108,-0.15066 -0.11824,-0.079065,-0.070111,-0.066753,-0.044368,-0.1104,-0.072349,-0.076826,-0.064514,-0.054441,-0.072349,-0.046606,-0.065634,-0.052202,0.44923,-0.10145,-0.08578,-0.076826,-0.063395,0.56451,-0.094734,-0.077945,-0.066753,-0.047725,0.59473 -0.072871,0.12302,0.30911,0.36788,0.39726,-0.16102,-0.072871,0.12302,0.27973,0.30911,-0.16102,-0.1904,-0.063076,0.093635,0.22096,-0.15123,-0.16102,-0.16102,-0.13164,-0.033693,-0.15123,-0.18061,-0.21979,-0.18061,-0.13164 -0.076681,-0.04428,-0.10098,-0.076681,0.11502,-0.14418,-0.14958,-0.05508,0.02052,0.16092,-0.17118,-0.18468,-0.14148,0.04752,0.16902,-0.16308,-0.16578,-0.11178,0.22572,0.40122,-0.15498,-0.17118,-0.14688,0.43902,0.47952 0.14775,0.22391,0.10967,0.03351,-0.042649,0.14775,0.22391,0.090629,-0.042649,-0.0045695,0.16679,0.20487,0.052549,0.090629,0.03351,0.18583,0.16679,0.090629,-0.0045695,-0.042649,-0.3092,-0.38536,-0.34728,-0.4044,-0.38536 -0.11259,-0.081967,-0.063326,-0.010066,-0.00074564,-0.11925,-0.092619,-0.076641,-0.038028,0.47327,-0.12324,-0.12324,-0.087293,-0.083298,0.43732,-0.12457,-0.12324,-0.12191,-0.097945,0.44664,-0.079304,-0.07531,-0.09395,-0.080635,0.45196 -0.23569,0.068426,-0.083631,0.29651,0.29651,-0.2737,-0.12165,0.068426,-0.0076029,0.2585,-0.31172,-0.12165,-0.12165,-0.0076029,0.22048,-0.19767,-0.083631,-0.23569,0.068426,0.29651,-0.23569,-0.12165,0.2585,0.030411,0.29651 0.25513,0.15512,-0.11157,-0.13379,-0.15824,0.23735,0.17513,0.057338,-0.12934,-0.67384,0.21291,0.17068,0.099564,-0.12934,-0.21602,0.048449,0.15512,0.017335,-0.049338,-0.20046,0.20624,0.061783,0.075118,0.030669,-0.15601 0.033905,0.14328,0.29366,0.44405,0.53975,-0.089138,-0.034452,0.074919,0.15695,0.25265,-0.18484,-0.13015,-0.11648,-0.034452,0.088591,-0.15749,-0.17117,-0.17117,-0.14382,-0.075466,-0.17117,-0.22585,-0.14382,-0.089138,-0.089138 0.48824,0.40111,-0.089022,-0.089022,-0.099913,0.52092,-0.041824,-0.059977,-0.089022,-0.089022,0.40837,-0.07813,-0.067238,-0.099913,-0.099913,-0.081761,-0.099913,-0.089022,-0.085391,-0.11081,-0.070869,-0.089022,-0.089022,-0.099913,-0.099913 0.088015,0.11605,0.27021,0.3543,0.3543,-0.12221,0.04597,0.11605,0.27021,0.3543,-0.22032,-0.17827,-0.080166,0.088015,0.15809,-0.17827,-0.17827,-0.17827,-0.12221,0.0039242,-0.26236,-0.22032,-0.17827,-0.17827,-0.12221 -0.24612,-0.23309,-0.25481,-0.29101,-0.32576,0.11591,0.11591,-0.22729,-0.25191,-0.2997,0.12459,0.12894,0.12894,0.13039,-0.24901,0.13328,0.16514,0.15356,0.16948,0.13618,0.18541,0.17673,0.17673,0.17528,0.16224 0.25054,0.033057,0.12005,0.12005,-0.31491,0.25054,-0.010439,0.33753,-0.097432,-0.4454,0.12005,0.12005,0.12005,-0.14093,-0.35841,0.12005,0.20704,0.033057,-0.053935,-0.27142,-0.053935,0.12005,0.076554,-0.010439,-0.27142 0.079361,-0.22486,-0.26454,-0.22486,-0.22486,0.1984,0,-0.26454,-0.22486,-0.18517,0.23808,0.14549,0.03968,-0.22486,-0.22486,0.29099,0.26454,0.15872,0,-0.18517,0.27776,0.22486,0.18517,0.14549,0 -0.14759,-0.14022,-0.081306,-0.044483,-0.015024,-0.16968,-0.12549,-0.11077,-0.044483,0.36058,-0.19178,-0.12549,-0.081306,-0.088671,0.36058,-0.14759,-0.14759,-0.066577,0.28693,0.38267,-0.16232,-0.11077,-0.081306,0.30902,0.38267 -0.13707,-0.13707,-0.008967,-0.23314,-0.10504,-0.040992,-0.040992,-0.13707,-0.16909,-0.16909,-0.008967,-0.10504,0.023058,-0.008967,-0.13707,-0.040992,-0.13707,0.055083,-0.10504,-0.20112,0.27926,0.40736,0.31128,0.34331,0.50343 -0.096656,0.22207,0.18501,0.22207,0.24431,-0.22267,-0.081832,0.1183,0.22207,0.26655,-0.22267,-0.23008,0.066414,0.14795,0.21466,-0.28938,-0.2449,-0.11148,0.12571,0.19984,-0.28196,-0.28938,-0.20784,-0.059595,0.10348 0.22602,0.22602,0.20983,0.12887,-0.016838,0.27459,0.22602,0.080304,-0.016838,-0.17874,0.27459,0.22602,0.015543,-0.13017,-0.19493,0.22602,0.015543,-0.065409,-0.21112,-0.29207,0.015543,-0.17874,-0.17874,-0.27588,-0.40541 0.24528,0.24577,0.24491,0.25064,0.27121,0.24394,0.23031,0.237,0.25076,-0.17712,-0.1585,-0.15789,0.22739,-0.16288,-0.17603,-0.15764,-0.1591,-0.16227,-0.16081,-0.16483,-0.16154,-0.15971,-0.16032,-0.15984,-0.16872 0.76738,0.041915,-0.025257,-0.06556,-0.10586,0.51212,0.0016121,-0.078995,-0.10586,-0.06556,0.13596,0.015047,-0.06556,-0.10586,-0.10586,-0.025257,-0.06556,-0.06556,-0.10586,-0.052126,-0.10586,-0.10586,-0.10586,-0.06556,-0.052126 0.13171,0.13566,0.11985,0.13368,0.11985,0.13171,0.12973,0.1238,0.12578,0.11392,0.1159,0.12973,0.11392,0.11985,0.11985,0.1238,0.12183,0.12183,-0.27741,-0.29322,-0.25764,-0.34658,-0.36239,-0.34658,-0.34856 -0.29178,0.14773,0.13009,0.13637,0.14386,-0.2913,0.1412,0.13178,0.13806,0.13806,-0.2913,-0.29275,0.13999,0.14096,0.13806,-0.29105,-0.29105,0.12888,0.13516,0.14265,-0.29033,-0.29226,0.12985,0.13081,0.1383 0.11096,-0.10243,-0.27725,-0.3081,-0.3261,0.24722,0.20095,-0.061292,-0.24897,-0.28754,0.22409,0.20352,-0.069005,-0.12814,-0.21041,0.21637,0.20609,-0.040724,-0.081859,-0.076718,0.23437,0.2138,0.21894,0.19323,-0.051008 0.050346,-0.044646,-0.10402,-0.15151,-0.16339,0.085968,0.014724,-0.032772,-0.10402,-0.21088,0.22846,-0.10402,-0.05652,-0.068394,-0.16339,0.35907,0.15721,-0.10402,-0.10402,-0.19901,0.40657,0.59655,-0.044646,-0.068394,-0.17526 -0.16218,-0.16422,-0.16525,-0.16806,0.31369,-0.16218,-0.16499,-0.16729,0.23007,0.25539,-0.16218,-0.16269,-0.16652,0.23391,0.23544,-0.16064,-0.16115,0.23007,0.23391,0.24183,-0.15732,-0.15834,-0.15911,0.23493,0.23288 0.14105,0.25012,0.25012,0.14105,0.14105,0.43189,0.25012,0.25012,0.28647,0.1047,-0.18613,-0.14978,-0.18613,-0.11343,-0.18613,-0.18613,-0.11343,-0.18613,-0.0043625,-0.22249,-0.040717,-0.18613,-0.040717,-0.25884,-0.18613 0.31929,0.31771,-0.13766,-0.1386,-0.13671,0.3196,0.30163,-0.13419,-0.13703,-0.13734,0.25748,0.27388,-0.13671,-0.13545,-0.13608,0.26347,0.27356,-0.1364,-0.13671,-0.13797,-0.1364,-0.13955,-0.13734,-0.13545,-0.13703 0.030068,0,0.011276,0.041344,0.95843,-0.082688,0.015034,-0.037585,0.041344,-0.015034,-0.082688,-0.033827,-0.075171,-0.07893,-0.0037585,-0.067654,-0.05262,-0.071412,-0.086447,-0.063895,-0.060137,-0.060137,-0.086447,-0.067654,-0.071412 -0.15453,-0.11267,-0.13483,-0.14222,0.33176,-0.15453,-0.16191,-0.12498,-0.15083,0.34899,-0.15945,-0.13237,-0.12498,0.31575,0.2702,-0.13975,-0.11513,-0.11513,0.26405,0.26158,-0.15699,-0.11267,-0.12252,0.26528,0.25789 0.10276,-0.069647,-0.073712,-0.078576,-0.084746,0.09594,-0.070953,-0.076398,-0.080463,-0.086053,0.096085,-0.072115,-0.077559,-0.082931,-0.087069,0.64925,-0.073857,-0.077705,-0.082931,-0.088594,0.64947,-0.074946,-0.080754,-0.084529,-0.089973 0.099052,0.091376,-0.10544,-0.1039,-0.10298,0.65572,-0.095306,-0.10206,-0.10421,-0.10053,0.14849,-0.094385,-0.091928,-0.096841,-0.096841,0.41745,-0.095613,-0.094385,-0.094385,-0.10022,0.42175,-0.092235,-0.095306,-0.083024,-0.084252 -0.050857,-0.05254,-0.048163,-0.052877,-0.056918,0.14982,-0.054897,-0.056581,-0.057928,-0.057928,0.14309,-0.053214,-0.056581,-0.058601,-0.057928,-0.054224,-0.057591,-0.059275,-0.058938,-0.058601,-0.056581,-0.056244,-0.058601,-0.059948,0.9421 -0.13716,-0.13706,-0.13687,-0.13696,-0.13637,-0.13597,-0.13647,-0.13667,-0.13667,-0.13667,-0.13617,-0.13587,-0.13617,-0.13607,-0.13647,-0.00088656,0.0019089,0.29523,0.29493,0.29433,-0.00028753,0.0027076,0.43101,0.29922,0.42941 -0.10722,-0.26773,-0.13932,-0.28378,-0.25168,-0.13932,-0.13932,-0.15537,-0.17143,-0.23563,0.13354,0.1496,0.021187,-0.010915,-0.17143,0.31011,0.13354,0.053289,0.085392,0.085392,0.47062,0.39036,0.16565,0.037238,0.037238 -0.1454,-0.15615,0.2095,0.36006,0.37081,-0.18842,-0.19917,0.14497,0.28478,0.33855,-0.13465,-0.16691,-0.16691,0.12346,0.29553,-0.15615,-0.1454,-0.13465,0.015917,0.11271,-0.13465,-0.18842,-0.17766,-0.070119,-0.091628 0.26256,-0.13845,-0.19248,-0.25789,-0.26358,0.25971,0.36494,-0.17542,-0.19817,-0.21239,0.25687,0.27393,-0.092942,-0.12138,-0.1612,0.15164,0.29384,-0.095786,-0.064502,-0.15551,0.12036,0.15449,0.17439,-0.10432,-0.078722 0.63544,0.20214,-0.022842,-0.10501,-0.091908,0.63974,-0.0025343,-0.10173,-0.10192,-0.10492,-0.0025343,-0.0018792,-0.017789,-0.10351,-0.1052,-0.0018792,-0.0018792,-0.10361,-0.10398,-0.10632,-0.0015984,-0.090036,-0.099301,-0.10361,-0.10333 -0.17439,-0.17923,0.057151,0.039402,0.012779,-0.086452,-0.14615,0.074899,0.060378,0.066832,-0.12598,-0.12114,-0.015457,0.016813,-0.028366,-0.11792,-0.10823,-0.022718,0.053117,0.074899,-0.11711,-0.10259,-0.042081,0.039402,0.89215 0.072427,-0.019641,-0.019641,0.25656,0.83966,-0.019641,-0.11171,-0.11171,-0.11171,0.25656,-0.11171,-0.11171,-0.019641,-0.019641,-0.019641,-0.019641,-0.11171,-0.019641,-0.019641,-0.019641,-0.11171,-0.11171,-0.019641,-0.20378,-0.11171 0.13799,0.13755,0.13952,0.13425,0.13755,0.13667,0.13601,0.13601,0.13535,0.13601,0.13886,0.13799,0.13667,0.13711,0.13711,0.13886,0.13886,-0.29154,-0.28934,-0.29022,-0.29286,-0.29176,-0.29154,-0.29308,-0.29198 -0.10375,-0.15365,-0.1598,0.47379,0.23374,-0.10328,-0.15389,-0.15838,0.23374,0.23303,-0.10375,-0.15176,-0.15909,0.23397,0.22995,-0.1546,-0.15341,-0.15909,0.23019,0.22995,-0.15436,-0.15247,-0.1546,-0.1527,0.23019 -0.13674,-0.13674,-0.13642,-0.1393,0.27428,-0.1377,-0.13722,-0.13674,-0.13706,0.27555,-0.13722,-0.13578,-0.13834,0.33206,0.27188,-0.13578,-0.1361,-0.1369,0.30109,0.27156,-0.13578,-0.1377,-0.13531,0.32759,0.27284 -0.26619,-0.26794,-0.2648,0.16293,0.16223,-0.26271,-0.26305,0.16327,0.16641,0.16467,-0.21944,-0.22572,0.16188,0.16781,0.16676,-0.2191,-0.22747,0.16293,0.16467,0.16083,-0.22747,0.14967,0.16572,0.16048,0.16362 -0.1175,-0.10822,-0.10358,-0.093147,0.52497,-0.10242,-0.11286,-0.10706,-0.08387,0.52613,-0.078071,-0.10474,-0.10938,-0.10011,0.48438,-0.08155,-0.096626,-0.075752,-0.075752,0.14343,-0.0073293,-0.098946,-0.094307,-0.058356,0.13068 -0.26483,0.024828,-0.057932,-0.016552,0.23173,-0.26483,-0.099313,0.19035,0.066208,0.10759,-0.22345,-0.18207,-0.016552,0.14897,0.48001,-0.30621,-0.14069,0.066208,-0.016552,0.43863,-0.18207,-0.057932,-0.14069,0.024828,0.19035 0.78173,0.020344,-0.10517,-0.15228,-0.1546,0.35385,0.021163,-0.10339,-0.10421,-0.15324,0.14722,0.022529,-0.1023,-0.10325,-0.10312,0.14599,0.023621,-0.10175,-0.10202,-0.1023,0.14777,0.024304,-0.099839,-0.1008,-0.10025 0.28217,0.34999,0.41782,0.28217,0.45174,0.078681,0.010853,-0.1248,-0.09089,-0.056976,-0.1248,-0.09089,-0.09089,-0.26046,-0.15872,-0.09089,0.044767,-0.056976,-0.15872,-0.15872,0.078681,-0.09089,-0.22655,-0.22655,0.010853 0.11512,0.14584,0.18756,0.19325,-0.28005,0.12347,0.1758,0.20273,0.19325,-0.28801,0.10944,0.11209,0.10944,-0.28157,-0.28839,0.1083,0.10716,0.10451,-0.28005,-0.2975,0.10526,0.10602,0.10526,-0.2865,-0.30243 -0.204,-0.20377,-0.20354,-0.20411,-0.20365,-0.20262,-0.20274,-0.20342,-0.20365,-0.20388,-0.20296,-0.20251,0.16807,0.16681,0.26009,0.25437,0.25871,0.16899,0.16636,0.11794,0.25768,0.26135,0.12184,0.12012,0.11852 -0.35454,0.11612,0.098404,0.10749,0.11476,-0.35636,0.11976,0.11794,0.11022,0.12294,-0.35454,0.10749,0.10931,0.11658,0.12021,-0.35545,0.11022,0.10885,0.11521,0.10704,-0.35454,-0.35909,0.11794,0.11476,0.099312 -0.15122,-0.15437,-0.1292,-0.13654,0.24414,-0.15751,-0.15542,-0.1313,-0.13969,0.24204,-0.13339,-0.1292,-0.13025,0.24309,0.24623,-0.12186,-0.12605,-0.12396,0.25462,0.27665,-0.125,-0.12605,-0.12186,0.38676,0.39934 0.2409,0.25346,-0.17344,-0.16925,-0.17971,0.24299,0.24927,-0.18181,-0.17971,-0.19436,0.22625,0.3539,-0.20064,-0.19436,-0.20273,0.23881,-0.13368,-0.19018,-0.17344,-0.15042,0.22625,0.21788,-0.01649,0.042103,0.048381 0.23945,0.24104,0.23149,-0.111,-0.31011,0.22671,0.23786,0.22989,-0.13808,-0.3133,0.20918,0.23149,0.22511,0.057855,-0.27507,-0.017013,-0.0074549,0.048298,-0.16675,-0.27029,-0.0425,-0.0425,-0.034535,-0.16197,-0.28781 0.13519,0.075955,0.042332,0.065548,0.080758,0.15281,0.078357,0.063146,0.066349,-0.44279,0.1504,0.08316,0.074354,0.073553,-0.4532,0.1416,0.089564,0.075955,0.078357,-0.4564,0.055942,0.078357,0.075154,0.078357,-0.46281 0.66965,-0.07034,-0.086969,-0.082812,-0.07034,0.59482,-0.07034,-0.074498,-0.082812,-0.091126,0.12089,-0.078655,-0.082812,-0.091126,-0.082812,0.22898,-0.086969,-0.086969,-0.074498,-0.082812,-0.0038247,-0.078655,-0.074498,-0.07034,-0.091126 0.088432,0.10962,0.14494,0.074305,0.088432,0.32858,0.30033,0.34977,0.32858,0.37803,-0.04577,-0.088149,-0.031643,-0.088149,-0.12347,-0.13053,-0.13053,-0.15172,-0.17291,-0.17291,-0.1941,-0.22235,-0.22235,-0.22235,-0.1941 -0.35437,-0.35392,-0.35272,-0.35031,-0.35196,0.1155,0.088247,0.087043,0.090505,-0.34549,0.11745,0.11474,0.094721,0.087494,0.098635,0.1158,0.1039,0.10074,0.093065,0.096377,0.11459,0.10496,0.10616,0.12197,0.25686 -0.13451,-0.13878,-0.13418,-0.13386,-0.13582,0.28977,0.28977,-0.13648,-0.13911,-0.13779,0.29142,0.2924,-0.13845,-0.13911,-0.13943,0.29043,0.29174,-0.13779,-0.13779,-0.13779,0.29404,0.29273,-0.13714,-0.13714,-0.13714 0.27398,0.2168,0.15217,0.10714,-0.0016905,0.26404,0.20769,-0.18428,-0.1851,-0.18483,0.26376,0.18697,-0.18538,-0.1851,-0.18483,0.26846,0.20133,-0.184,-0.18455,-0.18593,0.26266,-0.18124,-0.1851,-0.18621,-0.18676 -0.1372,-0.13382,-0.13141,-0.13382,0.30209,-0.1343,-0.13479,-0.13816,0.30065,0.30065,-0.13623,-0.13961,-0.14347,0.2857,0.2939,-0.1372,-0.14009,-0.1425,0.28956,0.27509,-0.13961,-0.13913,-0.13768,-0.13238,0.28377 0.14934,0.13881,-0.29244,-0.29225,-0.2936,0.15581,0.13726,0.13649,-0.28838,-0.28751,0.16344,0.1446,0.13948,-0.28423,-0.285,0.17242,0.14818,0.14566,0.089054,-0.2792,0.17638,0.15726,0.1503,0.08519,0.01293 0.32277,0.23812,0.13532,0.11114,0.099044,0.34998,0.18974,0.12625,0.071834,0.074858,0.34998,0.15346,0.10509,-0.18817,-0.17306,-0.21538,-0.1791,-0.14282,-0.20934,-0.21236,-0.21236,-0.20631,-0.1912,-0.20027,-0.19724 -0.029202,0.16756,0.16582,0.17198,0.1723,-0.018621,0.28726,0.28789,0.17451,0.17214,-0.030149,-0.021306,0.3468,0.17056,0.1704,-0.21775,-0.21854,-0.21791,-0.21902,-0.21886,-0.21854,-0.21933,-0.21949,-0.21902,-0.21949 0.33997,-0.039531,0.18975,0.20556,0.1265,0.17394,-0.06325,0.22928,0.19765,0.19765,0.031625,-0.086968,0.15812,0.20556,0.19765,-0.11069,-0.10278,-0.086968,-0.15022,-0.13441,-0.30834,-0.29253,-0.27672,-0.30044,-0.30044 0.18712,0.18885,0.25563,0.25251,0.81025,-0.0824,-0.083438,-0.083784,-0.083438,-0.084822,-0.086206,-0.086206,-0.086552,-0.087244,-0.089666,-0.084476,-0.085514,-0.087936,-0.088974,-0.088974,-0.081016,-0.079978,-0.081016,-0.081708,-0.081016 0.19805,0.21721,0.21721,0.21082,0.2204,0.12782,0.19486,0.19805,0.19805,0.19167,-0.17545,-0.17864,-0.14991,0.16613,0.15974,-0.21376,-0.2393,-0.22653,-0.1531,0.15974,-0.20737,-0.25207,-0.26164,-0.25845,-0.14353 0.039759,-0.13865,-0.29157,-0.31705,-0.30006,0.18418,0.031264,-0.15564,-0.28307,-0.33404,0.20967,0.1502,0.048255,-0.028205,-0.29157,0.25215,0.21816,0.1502,0.065246,-0.01971,0.26064,0.23516,0.13321,0.12471,0.05675 -0.28833,0.098928,0.1018,0.10234,0.092512,-0.28765,-0.28881,0.10166,0.15566,0.15545,-0.2882,-0.28874,0.10166,0.15586,0.15607,-0.28765,-0.28751,0.15627,0.15607,0.15648,-0.30076,0.15688,0.15648,0.15688,0.15668 0.2757,0.28267,0.29393,0.28524,0.28488,-0.057776,0.27607,0.28206,0.28329,-0.17624,-0.053248,-0.053493,-0.053371,-0.17673,-0.17538,-0.053615,-0.05435,-0.17624,-0.17538,-0.1766,-0.17599,-0.17648,-0.17648,-0.17599,-0.17648 0.098154,0.11238,0.12344,-0.28553,-0.29106,0.12186,0.1266,0.12423,-0.28632,-0.29106,0.12977,0.12898,0.13332,0.13609,-0.29106,0.13806,0.14913,0.15822,0.17876,-0.29225,0.15387,0.15545,0.15664,-0.29423,-0.29344 -0.15912,-0.16153,-0.14704,-0.16395,0.24423,-0.17482,-0.14342,-0.16033,0.24303,0.24423,-0.18086,-0.14221,0.24665,0.24303,0.24665,-0.18327,-0.16153,-0.15308,0.24906,0.24423,-0.18206,-0.17965,-0.15308,0.24665,0.2382 -0.10643,-0.10625,-0.10678,-0.10786,-0.10839,-0.10625,-0.10678,-0.10732,-0.10786,-0.10714,0.21926,-0.10607,-0.10696,-0.10821,-0.10839,0.50666,0.26418,-0.10643,-0.10786,-0.10839,0.51525,0.26687,0.26508,-0.10571,-0.10821 0.16488,0.24934,0.14206,0.14595,0.14158,0.16828,0.22701,0.14935,0.13964,0.14595,-0.24237,0.16439,0.17167,0.14498,0.13624,-0.24431,-0.24042,-0.24334,-0.24625,0.13915,-0.24334,-0.24237,-0.24237,-0.24334,-0.24237 0.10911,0.10024,0.10714,-0.31538,-0.32523,0.11009,0.10024,0.088423,-0.31834,-0.32228,0.10172,0.12585,0.096795,0.12782,-0.30701,0.099257,0.1357,0.13127,0.14407,-0.31932,0.11699,0.23714,0.1421,0.14899,-0.31538 -0.26134,-0.26201,0.16886,0.15275,0.15074,-0.26201,-0.26369,0.17222,0.27524,0.16685,-0.26336,0.16013,0.16416,0.17289,0.10141,-0.26067,-0.26336,0.10208,0.10141,0.16013,-0.26269,-0.26336,0.09604,0.10611,0.11148 -0.11115,-0.114,-0.10736,0.31643,0.30316,-0.13012,-0.11305,-0.11969,0.30695,0.3079,-0.13106,-0.12822,-0.114,-0.12348,0.32212,-0.13106,-0.12917,-0.13106,-0.13675,0.33634,-0.12822,-0.13106,-0.13106,-0.13106,0.34867 -0.10511,-0.10784,-0.10675,-0.10293,0.39625,-0.11111,-0.10947,-0.10784,-0.10675,0.35756,-0.12146,-0.11329,-0.11002,-0.11056,0.36192,-0.12364,-0.11819,-0.10893,-0.11056,0.34557,-0.128,-0.11819,-0.11111,0.33413,0.33631 0.35383,0.3355,0.3355,0.31717,0.34466,-0.067723,-0.081469,-0.11354,0.43172,-0.065432,-0.097506,-0.125,-0.125,-0.13416,-0.099797,-0.10896,-0.10896,-0.12729,-0.12042,-0.12271,-0.13416,-0.11583,-0.12729,-0.11354,-0.12958 0.15757,0.1569,0.13905,0.14511,-0.3162,0.074402,0.15724,0.13872,0.17138,-0.31855,0.074402,0.075076,0.074402,0.069015,-0.31485,0.15589,0.14107,0.14107,-0.31451,-0.31519,0.042414,0.14276,0.15589,-0.31653,-0.31653 -0.13902,-0.13992,-0.14083,-0.13902,-0.14083,-0.1354,-0.1363,-0.13811,-0.13992,-0.12815,-0.13721,-0.13811,-0.13811,-0.12815,-0.12997,-0.1354,0.36057,0.2755,0.27369,-0.13811,0.2678,0.32573,0.27957,0.27188,0.2678 0.20758,-0.16575,-0.17553,-0.17553,-0.18335,0.20367,-0.11102,-0.17162,-0.18335,-0.15012,0.22517,0.21736,-0.16575,-0.17553,-0.17553,0.28968,0.23104,0.27013,-0.16771,-0.17162,0.30531,0.23886,0.23886,-0.12666,-0.12862 0.14412,0.09444,0.097999,-0.31239,-0.31481,0.13757,0.095294,0.098284,-0.31211,-0.32051,0.14426,0.096718,0.097857,0.15579,-0.32236,0.15195,0.09743,0.097714,0.15764,-0.32364,0.15181,0.097714,0.15636,0.15679,-0.32392 0.14052,0.14052,0.1407,-0.16079,-0.1874,0.13758,0.13924,0.1407,-0.16134,-0.20997,0.37394,0.37265,0.37027,-0.23163,-0.23089,0.028216,0.02895,0.028216,-0.22814,-0.23621,0.0295,0.028766,0.028216,-0.2386,-0.243 -0.24285,-0.24777,-0.24654,0.16104,0.16196,-0.24285,-0.24531,0.16288,0.16258,0.16258,-0.24254,-0.24838,0.16288,0.16319,0.16288,-0.24408,-0.24715,0.16288,0.16319,0.16288,-0.24193,0.16565,0.16534,0.16565,0.16381 -0.22243,0.058416,0.11459,0.030331,0.19884,-0.50328,-0.053922,0.19884,0.0022468,0.11459,-0.25051,-0.11009,0.17075,0.058416,0.11459,-0.39094,-0.025838,0.22692,0.11459,0.19884,-0.36285,-0.082007,0.22692,0.11459,0.058416 0.08374,0.022764,-0.11951,-0.36341,-0.56667,0.18537,0.10407,0.022764,-0.11951,-0.36341,0.22602,0.12439,0.002439,0.043089,-0.20081,0.24634,0.16504,0.10407,-0.017886,-0.13984,0.24634,0.16504,0.12439,0.043089,-0.017886 -0.10886,-0.10916,-0.10916,0.33991,0.33748,-0.10582,-0.10764,-0.10764,-0.10946,0.33566,-0.10795,-0.10734,-0.11219,-0.10734,0.3393,-0.10734,-0.11431,-0.12189,-0.11826,0.39358,-0.12068,-0.11704,-0.11704,-0.12189,0.38509 0.18542,0.057369,0.057369,0.057369,-0.35241,0.10859,0.21104,0.1342,0.1342,-0.60852,0.15981,0.031758,0.031758,0.031758,-0.48046,0.031758,0.057369,0.031758,0.031758,-0.14752,0.18542,0.08298,0.057369,0.08298,-0.17313 0.061486,0.010187,-0.0044704,0.046829,0.96106,-0.019127,-0.022792,-0.0099667,0.0028581,-0.033784,-0.046609,-0.074091,-0.074091,-0.066763,-0.033784,-0.075923,-0.075923,-0.070427,-0.066763,-0.070427,-0.075923,-0.08142,-0.046609,-0.066763,-0.066763 0.22732,0.034656,-0.13592,-0.13544,-0.13564,0.034587,0.034863,-0.13516,-0.13523,-0.13564,0.035416,0.033759,-0.13523,-0.13537,-0.13606,0.40901,0.40881,-0.13516,-0.13544,-0.13626,0.40805,0.40708,-0.13509,-0.13578,-0.13613 0.074666,0.078973,-0.0057435,-0.18379,-0.22256,0.083281,0.084717,0.089025,-0.15508,-0.224,0.14359,0.096204,0.083281,-0.1479,-0.21969,0.11487,0.14072,0.1479,-0.17949,-0.21395,0.45374,0.50687,-0.11631,-0.20246,-0.22687 0.14722,0.14532,0.15605,0.18697,0.17372,0.14343,0.15794,0.16236,0.17877,0.18129,0.14785,0.16741,0.16173,0.17119,-0.23767,0.16488,-0.24083,-0.24777,-0.24651,-0.24966,-0.24651,-0.24209,-0.24777,-0.24335,-0.24398 -0.34262,-0.34262,-0.34358,-0.34262,-0.3431,-0.34118,0.055943,0.019535,0.031751,0.17451,0.054026,0.058577,0.016661,0.032709,0.16971,0.061931,0.16708,0.16708,0.16708,0.16636,0.066002,0.16253,0.16157,0.16157,0.16109 0.72085,0.11194,0.0082916,-0.13422,-0.056487,0.51356,0.021247,-0.056487,-0.043531,-0.056487,0.047158,-0.043531,-0.095353,-0.069442,-0.13422,0.12489,-0.095353,-0.12126,-0.12126,-0.14718,0.086025,-0.082398,-0.14718,-0.10831,-0.12126 -0.016895,-0.047028,-0.008357,-0.0093615,0.96546,-0.078167,-0.074149,-0.0033348,-0.00082365,-0.00032142,-0.084193,-0.066615,-0.059082,-0.0043392,0.00068303,-0.082687,-0.061593,-0.016895,-0.0098637,-0.0058459,-0.083189,-0.078669,-0.074149,-0.094238,-0.0063481 0.13153,0.15426,0.15896,-0.26822,0.15543,0.14172,0.14603,0.1519,-0.26666,-0.26548,0.128,0.15034,0.15504,-0.26901,-0.26666,0.13466,0.15347,0.15504,-0.26822,-0.26235,0.16131,0.16053,0.15974,-0.26705,-0.26431 0.1307,0.20386,0.22824,0.20386,0.1307,0.1307,0.1307,0.3014,0.057548,0.20386,-0.11315,0.057548,0.1307,0.057548,0.057548,-0.33261,-0.16191,0.033163,0.057548,-0.015606,-0.45453,-0.25945,-0.30822,-0.23507,-0.23507 -0.46956,-0.07717,0.037277,0.15172,0.16807,-0.42051,0.069976,0.037277,0.16807,0.18442,-0.53495,0.020927,0.053626,0.069976,0.13537,-0.15892,0.0045779,0.0045779,0.13537,0.16807,-0.19162,0.11902,0.053626,0.11902,0.15172 0.22508,0.22923,-0.21556,-0.21573,-0.21523,0.22558,0.23555,0.23605,-0.21456,-0.21523,0.079305,0.077643,0.24569,-0.21506,-0.21523,0.076812,0.078141,0.24868,-0.2144,-0.2154,0.082463,0.077144,0.25367,-0.21939,-0.21523 -0.25136,-0.20007,-0.14877,0.10773,0.56942,-0.097468,-0.22572,-0.097468,0.0051299,0.44117,-0.071818,-0.02052,-0.12312,-0.071818,0.28727,-0.14877,-0.097468,-0.097468,-0.071818,0.23598,-0.02052,-0.046169,-0.071818,-0.02052,0.23598 0.90438,0.036228,-0.01156,0.089705,-0.036023,0.037935,0.020299,-0.16232,-0.036592,-0.030903,-0.014974,-0.034885,-0.035454,-0.15265,-0.16573,-0.037161,-0.024076,0.038504,-0.15322,-0.16403,-0.018387,0.038504,0.039641,0.041348,-0.16858 0.51591,0.45222,0.22929,0.29299,0.070062,0.10191,0.0063693,0.19745,0.070062,0.070062,-0.08917,-0.15286,-0.15286,-0.057324,-0.18471,-0.2484,-0.12102,-0.057324,-0.15286,-0.08917,-0.2484,-0.15286,-0.15286,-0.025477,-0.12102 0.44178,0.077276,0.36888,0.36888,0.44178,0.040825,0.11373,-0.068527,-0.032077,0.0043741,-0.14143,-0.068527,0.0043741,-0.068527,0.0043741,-0.068527,-0.25078,-0.17788,-0.17788,-0.28723,-0.032077,-0.17788,-0.14143,-0.068527,-0.10498 -0.35562,-0.35542,-0.35515,-0.35515,-0.35562,0.10339,0.10667,0.10553,0.1046,-0.35529,0.10707,0.10828,0.10674,0.10734,0.11148,0.10814,0.10828,0.10908,0.10848,0.11175,0.11008,0.11115,0.14024,0.10928,0.15468 -0.17653,-0.12819,-0.142,-0.19034,-0.18344,-0.14891,-0.10056,-0.10056,-0.12819,-0.13509,-0.045307,-0.0038677,0.023759,-0.010774,-0.052214,0.072104,0.079011,0.072104,0.10664,0.072104,0.85254,0.085918,0.030665,0.072104,0.079011 0.080248,0.082467,0.095783,0.16458,-0.35472,0.086906,0.075809,0.080248,0.12463,-0.34807,0.078029,0.060275,0.11798,0.18011,-0.35472,0.078029,0.10244,0.16014,0.16236,-0.35916,0.078029,0.13351,0.16458,-0.33919,-0.35029 -0.14651,-0.1461,-0.1457,-0.14529,-0.1459,-0.14651,-0.14123,-0.14083,-0.14509,-0.1457,-0.14712,-0.14448,-0.10044,-0.10166,0.048531,0.16178,0.047922,-0.10287,-0.10044,0.26711,0.16259,0.31542,0.53846,0.35662,0.24743 0.020108,0.0076442,-0.013128,-0.11284,-0.20216,0.011799,0.04088,-0.073368,-0.16061,-0.198,0.51449,-0.0027419,-0.069213,-0.11699,-0.14192,0.51241,-0.0339,-0.05675,-0.052596,-0.11491,0.51033,-0.00066471,-0.062982,-0.071291,-0.13361 0.11547,0.20294,0.33415,0.53097,0.33415,0.0061232,0.11547,0.18107,0.22481,-0.015745,-0.081351,-0.10322,-0.081351,-0.10322,-0.16882,-0.12509,-0.081351,-0.059482,-0.21256,-0.30004,-0.10322,-0.081351,-0.19069,-0.23443,-0.10322 -0.11538,-0.10739,-0.10396,-0.097113,-0.11766,-0.11423,-0.12565,-0.13021,-0.099396,-0.12222,-0.099396,-0.11538,-0.12907,-0.10624,-0.11766,-0.10624,-0.09483,-0.095971,-0.12679,0.42452,0.33206,0.32522,0.32864,0.3412,0.37316 -0.35779,-0.35732,-0.35594,-0.35363,-0.35456,0.1184,0.10041,0.10686,0.1041,-0.35502,0.12163,0.11009,0.10686,0.099482,0.1124,0.11379,0.11102,0.11286,0.11609,0.11978,0.10548,0.10594,0.12117,0.12301,0.12486 0.010488,0.010075,-0.056819,-0.00066069,0.97014,-0.0056158,-0.054341,-0.058058,0.010075,-0.0014865,-0.060948,-0.047322,-0.060948,-0.052277,-0.00024776,-0.064252,-0.061774,-0.060535,-0.063839,-0.045257,-0.063426,-0.063426,-0.059297,-0.0626,-0.057645 -0.37604,0.078984,0.065518,0.044964,0.049216,-0.38029,0.071897,0.044964,0.037876,0.26255,-0.381,0.036459,0.088198,0.2661,0.26397,-0.36541,0.047799,0.014487,0.10733,0.10733,-0.37462,0.047799,0.020157,0.11159,0.11017 -0.17922,-0.26725,0.21616,0.23778,0.12349,-0.21629,-0.27343,0.050905,0.22234,0.14821,-0.23791,-0.22555,-0.02014,0.38142,0.19917,-0.26262,-0.010873,-0.013962,0.22697,0.29647,-0.25799,-0.095818,-0.057207,-0.02014,0.035461 0.20883,0.18181,0.062909,-0.26677,-0.26677,0.20883,0.18991,-0.24785,-0.26677,-0.26677,0.18991,0.20072,0.14668,-0.23164,-0.20191,0.20883,0.18991,0.16559,-0.22083,-0.19921,0.18181,0.1764,-0.11004,-0.13706,0.10344 -0.15132,-0.16459,-0.1469,-0.1469,-0.1469,-0.12921,-0.13806,-0.13806,-0.12921,-0.11374,-0.12921,-0.12921,-0.14469,-0.12921,-0.11374,0.32184,-0.14469,-0.13142,0.30636,0.29088,0.28646,0.27983,0.28646,0.2732,0.28204 0.12501,0.11391,0.12008,0.0646,-0.23251,0.11761,0.10405,0.11145,-0.22265,-0.23004,0.14597,0.11761,-0.23004,-0.21648,-0.22635,0.25938,0.19898,0.15953,-0.25963,-0.22265,0.19035,0.17185,0.35431,-0.2658,-0.24854 0.26001,0.3272,0.309,0.3188,0.27961,0.27681,-0.026931,-0.036729,-0.033929,0.28941,-0.063323,-0.063323,-0.082919,-0.08012,-0.075921,-0.040928,-0.068922,-0.071721,-0.26348,-0.098316,-0.32087,-0.26628,-0.059124,-0.14031,-0.26768 -0.15797,-0.15797,-0.047503,0.035351,-0.15797,-0.15797,-0.15797,-0.047503,-0.047503,-0.047503,-0.15797,-0.15797,-0.15797,0.035351,-0.047503,-0.15797,-0.047503,-0.047503,-0.15797,0.035351,0.1182,0.36677,0.44962,0.44962,0.422 -0.072096,-0.10404,-0.2411,-0.25244,-0.24419,-0.070035,-0.073126,-0.073126,-0.24007,-0.24729,-0.033966,-0.046332,-0.078279,-0.056638,-0.11126,-0.008203,0.32981,0.32053,-0.04221,-0.044271,0.32157,0.32981,0.30611,0.33599,0.09485 -0.24727,-0.011025,0.028349,-0.089772,0.22522,-0.12915,-0.32601,-0.089772,0.22522,0.30397,-0.12915,-0.12915,-0.28664,0.14647,0.34334,-0.32601,-0.12915,0.067723,0.1071,0.22522,-0.24727,-0.050398,0.1071,0.22522,0.18584 0.32881,0.33378,-0.12473,-0.12428,-0.12541,0.32474,-0.12383,-0.12451,-0.12451,-0.12451,0.31751,-0.12518,-0.12496,-0.12473,-0.12541,0.31299,-0.12722,-0.12405,-0.12451,-0.12405,0.31096,0.3157,-0.12451,-0.12338,-0.12473 -0.12394,-0.0012272,0.10615,0.35158,0.64304,-0.12394,-0.15462,-0.0012272,0.13683,0.3976,-0.12394,-0.20064,-0.12394,-0.0012272,0.16751,-0.13928,-0.12394,-0.12394,-0.12394,0.060131,-0.12394,-0.12394,-0.093265,-0.093265,-0.062586 0.6799,0.44539,0.22964,0.11707,0.032644,0.18273,0.13583,0.023264,-0.11744,-0.089303,-0.061161,-0.11744,-0.061161,-0.061161,-0.11744,-0.14559,-0.089303,-0.11744,-0.098684,-0.14559,-0.14559,-0.13621,-0.051781,-0.13621,-0.15497 -0.14426,-0.20545,-0.20885,-0.22924,-0.22924,0.090284,-0.06948,-0.21565,-0.22585,-0.21565,0.22625,0.19906,-0.038887,-0.19185,-0.19865,0.29764,0.27044,0.12768,-0.12727,-0.0082941,0.30444,0.28744,0.22965,0.10388,0.17187 -0.070811,-0.069631,-0.13157,0.083741,-0.061372,-0.07494,-0.059013,0.083741,-0.041316,-0.061372,-0.049575,-0.063732,-0.057833,-0.056653,-0.062552,0.078432,-0.045445,-0.064912,-0.066092,-0.066092,0.076663,-0.040136,-0.060193,-0.061372,0.94204 0.2108,-0.040152,-0.084437,-0.084437,-0.48301,0.092704,-0.054914,0.048419,-0.084437,-0.33539,0.34365,0.15175,0.15175,-0.18777,-0.2911,0.19604,0.048419,-0.040152,-0.054914,-0.084437,0.29937,0.25508,0.24032,-0.084437,-0.12872 -0.22266,-0.22182,-0.23148,-0.23903,-0.23861,-0.098801,-0.068151,-0.22098,-0.23777,-0.22854,-0.10384,0.17998,0.15773,-0.051357,0.096853,-0.103,0.21609,0.15647,0.15689,0.16361,0.17159,0.49446,0.15941,0.15605,0.15689 0.69269,0.31312,0.2306,0.17559,0.15909,0.016063,0.087576,0.071073,0.093077,0.093077,-0.15997,-0.15997,-0.066452,-0.044448,-0.038947,-0.17097,-0.15447,-0.11596,-0.082955,-0.11046,-0.15447,-0.15447,-0.18197,-0.15447,-0.18197 0.10131,0.04625,0.10131,0.15637,0.15637,0.04625,0.15637,0.04625,0.12884,0.12884,0.07378,0.1839,0.07378,0.07378,0.07378,0.12884,-0.063869,0.04625,0.04625,0.1839,-0.44929,-0.28411,-0.28411,-0.3667,-0.50435 -0.29376,-0.29316,-0.28955,-0.29316,-0.29557,-0.29136,-0.29075,-0.28293,0.14316,0.14075,0.13293,0.14677,0.14437,0.14196,0.13955,0.12451,0.1233,0.14316,0.14557,0.13594,0.1227,0.1215,0.12691,0.13835,0.15881 -0.060307,-0.072637,-0.074007,0.27123,0.59181,-0.092502,-0.10552,-0.063732,0.28219,0.59181,-0.082227,-0.084282,-0.097296,-0.065102,-0.091132,-0.089077,-0.090447,-0.083597,-0.074007,-0.087707,-0.093186,-0.090447,-0.078117,-0.080172,-0.081542 0.030615,0.028068,0.17325,-0.27375,-0.29795,0.11212,0.050992,0.036983,-0.28012,-0.2763,0.19617,0.16179,0.14905,-0.29668,-0.28522,0.18216,0.18726,0.14523,0.15924,-0.28012,0.14651,0.17834,0.17325,0.15542,-0.2763 -0.16563,-0.090615,-0.06061,-0.10562,-0.0006001,-0.10562,-0.090615,-0.06061,-0.16563,-0.19563,-0.10562,-0.16563,-0.10562,-0.10562,-0.10562,-0.090615,-0.045608,-0.12062,0.10442,0.11942,0.11942,0.16443,0.25444,0.53949,0.5845 -0.25918,-0.25456,0.0064679,0.018018,0.011088,-0.2407,-0.20374,-0.10672,-0.13906,-0.14137,-0.1945,-0.20374,-0.1483,-0.12982,-0.13444,-0.062831,0.15892,0.16816,0.23746,0.38068,0.16816,0.21205,0.25132,0.27211,0.33448 0.22323,0.20376,0.22323,0.15833,0.067487,0.2362,0.22972,0.1778,0.073976,-0.11421,0.22972,0.19078,-0.02985,-0.15963,-0.26346,0.15833,0.067487,-0.11421,-0.25697,-0.28942,0.022063,-0.14665,-0.23101,-0.2959,-0.3608 -0.16777,-0.13231,-0.14413,-0.15764,-0.134,-0.15595,-0.13569,-0.13231,-0.15258,-0.15426,-0.14751,-0.095166,0.0095234,-0.11881,-0.14413,0.0095234,0.20708,0.14123,0.1902,-0.11881,0.63259,0.2493,0.2341,0.21721,0.20033 -0.37407,-0.37407,-0.37407,-0.37407,-0.37457,0.18738,0.18557,0.19347,-0.11698,-0.11665,0.13336,0.13534,0.13534,0.13665,0.11442,0.10256,0.10371,0.10421,0.1024,0.079503,0.078185,0.079667,0.082303,0.079173,0.071268 0.46571,0.38513,0.062846,0.42542,0.34485,0.02256,0.02256,0.02256,-0.017726,0.02256,-0.017726,-0.21916,-0.058012,-0.017726,-0.058012,-0.21916,-0.098298,-0.058012,-0.13858,-0.058012,-0.058012,-0.21916,-0.34001,-0.13858,-0.058012 0.24682,0.18152,0.18152,0.27947,0.37742,0.08358,0.050931,0.050931,0.050931,0.24682,-0.014365,0.08358,0.018283,0.08358,-0.014365,0.050931,-0.17761,-0.17761,-0.047014,-0.079662,-0.2429,-0.47144,-0.17761,-0.2429,-0.34085 0.17918,0.18778,-0.27264,-0.26977,-0.26116,0.14045,0.14762,0.15049,-0.27981,-0.27838,0.14762,0.14762,0.14762,-0.27981,-0.27407,0.13615,0.14762,0.13902,0.14332,-0.26977,0.16053,0.14762,0.13041,0.13758,-0.20522 0.2703,0.28419,0.32394,0.32251,0.27413,0.27701,0.29329,-0.1392,-0.13298,0.2818,-0.13968,-0.14064,-0.13824,-0.12531,-0.12244,-0.15165,-0.1416,-0.13681,-0.13681,-0.1234,-0.15022,-0.14687,-0.13872,-0.14112,-0.12148 0.22925,-0.13977,-0.15041,-0.15513,-0.15466,0.23256,-0.13859,-0.1452,-0.1549,-0.15277,0.23587,0.23445,-0.14237,-0.1523,-0.15442,0.23918,0.23894,-0.1426,-0.14639,-0.15324,0.34177,0.33043,0.29686,-0.14308,-0.15348 0.20164,0.19844,-0.19284,-0.19235,-0.19259,0.20262,0.19426,-0.19038,-0.19112,-0.19186,0.20336,0.19943,-0.1921,-0.19407,-0.1921,0.20827,0.2036,-0.19358,-0.19259,-0.19284,0.20115,0.2245,0.22941,0.22917,-0.18743 0.23914,0.0053692,0.003183,-0.098254,-0.096797,0.24497,0.0046405,0.0063894,-0.098254,-0.097088,0.55526,0.0039117,0.0056607,-0.09738,-0.095922,0.55453,0.0017256,-0.095048,-0.095048,-0.237,0.057545,-0.097817,-0.09738,-0.23744,-0.2389 -0.41033,0.10664,0.11211,0.074476,0.06387,-0.39493,0.13572,0.20346,0.074476,0.070712,-0.4028,0.15796,0.12751,0.054632,0.054974,-0.38022,0.17814,0.13127,0.12443,0.05429,-0.36482,0.03034,0.035815,0.11143,0.050868 -0.20172,-0.20495,-0.20028,-0.20387,-0.20423,-0.20028,-0.20783,-0.20064,-0.20423,-0.20423,-0.20208,0.1988,0.20275,0.20671,-0.20962,0.20168,-0.0098999,0.20239,0.20383,0.21281,0.20239,0.19808,0.20311,0.20778,0.21353 -0.154,-0.122,-0.11482,0.27745,0.26862,-0.1551,-0.11758,-0.11979,0.30779,0.27414,-0.16172,-0.12751,-0.1231,-0.12531,0.28683,-0.16172,-0.13744,-0.1231,-0.12751,0.30559,-0.15565,-0.14517,-0.15344,0.30338,0.30117 -0.26879,-0.26976,-0.26952,-0.26891,-0.26891,-0.2694,-0.26964,-0.26806,0.083641,0.08437,0.084491,0.084491,0.083276,0.083276,0.083154,0.083762,0.084005,0.083762,0.082547,0.083033,0.33411,0.31807,0.33192,0.082547,0.082547 -0.16262,-0.16509,-0.16481,-0.16509,-0.1666,-0.1596,-0.16015,-0.16289,-0.16495,-0.16591,-0.16371,-0.15192,0.23951,-0.16426,-0.16605,-0.1655,0.24088,0.24308,0.24527,0.24568,0.24966,0.24884,0.24404,0.24651,0.24568 -0.22198,-0.2708,-0.30335,0.1035,0.087229,-0.17316,-0.28708,-0.02669,0.070955,0.070955,-0.10806,-0.22198,0.038407,0.1686,0.26624,-0.15688,-0.17316,0.087229,0.21742,0.24997,-0.15688,-0.14061,0.24997,0.26624,0.36389 -0.19436,-0.17539,-0.14016,-0.026341,0.09019,-0.16726,-0.17539,-0.13203,-0.034472,0.25279,-0.17268,-0.12932,-0.015501,0.48856,0.29073,-0.16997,-0.058862,-0.029051,0.3097,0.23382,-0.19165,-0.18894,-0.14016,0.27447,0.2013 0.14892,0.14761,0.15023,0.18945,0.16853,0.16069,0.15284,0.145,0.16592,0.18683,-0.23672,0.17115,0.13977,0.15807,0.1816,-0.22495,-0.2524,-0.21319,-0.21319,0.17376,-0.25633,-0.26286,-0.2694,-0.26548,-0.24587 -0.34534,0.10938,0.10823,0.11015,0.10746,-0.34534,0.10976,0.11053,0.10976,0.10823,-0.35916,0.11322,0.11283,0.11283,0.11168,-0.34995,0.11514,0.1159,0.11514,0.11437,-0.363,-0.37182,0.11667,0.11744,0.1159 0.11068,0.026203,0.0007013,0.0054829,-0.17622,0.12662,0.067644,0.034172,0.011858,-0.15709,0.16487,0.081988,0.061268,0.051705,-0.1555,0.1824,0.10749,0.094739,0.067644,-0.61931,0.19515,0.13777,0.12024,0.034172,-0.57468 0.32386,0.32652,0.32563,0.3144,0.328,0.31706,0.30789,-0.11852,-0.11645,-0.11704,-0.12443,-0.11852,-0.12,-0.11852,-0.11734,-0.13123,-0.12089,-0.11911,-0.1197,-0.12029,-0.13478,-0.13626,-0.13715,-0.13567,-0.13744 -0.13354,-0.12708,-0.13031,-0.13031,-0.1295,-0.13192,-0.13192,-0.12708,-0.12627,-0.12708,-0.12708,-0.12546,-0.11981,-0.12142,-0.119,-0.11496,-0.11335,-0.1077,0.32919,0.32758,0.32112,0.31708,0.31466,0.31789,0.31627 -0.21023,-0.21047,-0.21144,0.14716,0.145,-0.21096,-0.2136,-0.2148,0.15053,0.16472,-0.20951,-0.21384,0.16857,0.17266,0.15654,-0.21192,-0.21432,0.1575,0.17145,0.097858,-0.21192,0.013921,0.15149,0.17458,0.46103 -0.13741,-0.14803,-0.1102,-0.1175,-0.13542,-0.13609,-0.14405,-0.14007,-0.13941,-0.14405,-0.14405,-0.12812,-0.14206,-0.14803,-0.14073,0.29864,0.29931,-0.1321,-0.14272,0.28736,0.29134,0.29532,0.29267,0.28338,0.28205 0.10242,0.13254,0.072297,0.10242,-0.5603,0.042173,0.13254,0.042173,0.042173,-0.37956,0.042173,0.19279,0.042173,0.042173,-0.13857,0.042173,0.042173,0.25304,0.072297,-0.43981,0.22292,0.10242,0.042173,0.042173,-0.28919 -0.26717,-0.29004,-0.22714,-0.15852,-0.16423,-0.25573,-0.27288,-0.17567,-0.11849,-0.14422,0.31326,0.27323,0.26179,-0.11563,-0.12992,0.20175,0.21604,0.20746,0.11883,-0.0012581,0.17887,0.18173,0.17601,0.14456,0.047349 -0.089972,0.21564,0.2331,0.54652,0.62289,-0.091108,-0.091108,-0.091108,-0.09054,0.21209,-0.09125,-0.091676,-0.091676,-0.091108,-0.092243,-0.091108,-0.091818,-0.09196,-0.092243,-0.092811,-0.09054,-0.091392,-0.092243,-0.09196,-0.092385 0.74563,0.23096,-0.058544,-0.058544,-0.15505,0.37571,0.15054,-0.010293,-0.15505,-0.15505,0.15054,-0.10679,-0.10679,-0.10679,-0.10679,0.037957,-0.010293,-0.10679,-0.10679,-0.15505,0.037957,-0.10679,-0.058544,-0.10679,-0.058544 -0.0050215,-0.042463,0.0059906,-0.055677,-0.075499,0.0059906,-0.029248,-0.0072239,-0.035855,-0.064487,-0.011629,-0.020438,0.019205,-0.020438,-0.09532,-0.029248,-0.10633,-0.13056,-0.064487,0.17558,0.9266,-0.15919,-0.11514,-0.099725,0.034622 0.32658,0.28518,0.2863,-0.14338,-0.15066,0.27847,0.28406,-0.14562,-0.14618,-0.15346,0.27903,0.27623,-0.14227,-0.14674,-0.15122,0.28182,-0.14674,-0.14003,-0.14506,-0.1473,0.02502,-0.13164,-0.13947,-0.14338,-0.14954 0.32252,0.39352,0.27155,0.15468,-0.11338,0.295,0.38503,0.27665,0.16861,-0.12425,-0.12799,-0.12901,-0.12969,-0.13309,-0.13343,-0.1358,-0.13614,-0.13716,-0.13614,-0.13614,-0.13818,-0.14022,-0.13886,-0.13988,-0.13818 0.13504,0.12267,0.2164,0.20225,-0.22574,0.1209,0.12797,0.15096,0.15804,-0.30709,0.099674,0.16865,0.1262,-0.2894,-0.34953,0.097906,0.1209,0.11029,-0.2894,-0.31416,0.096137,0.11382,0.12797,-0.29117,-0.22927 -0.072028,-0.010641,-0.15388,-0.11295,-0.21527,0.1326,-0.051566,-0.051566,-0.21527,-0.072028,0.35769,0.1326,-0.051566,-0.092491,-0.072028,0.35769,0.030285,-0.11295,-0.13342,-0.17434,0.66463,0.15306,-0.051566,-0.11295,-0.072028 0.1682,0.14838,0.15161,-0.26548,-0.27424,0.15207,0.14239,0.13732,-0.26548,0.16359,0.15161,0.14562,0.14055,-0.25718,-0.27009,0.15161,0.14147,0.14746,-0.26456,-0.26824,0.1599,0.14884,0.14792,-0.2641,-0.26917 -0.17572,-0.18386,-0.18674,0.16006,0.1797,-0.17859,-0.18147,-0.19105,0.14761,0.18449,-0.17907,-0.1853,-0.19009,0.15384,0.50591,-0.17428,-0.18242,0.19503,0.15911,0.16342,-0.17524,-0.17668,0.18737,0.15863,0.16533 -0.11192,-0.11212,-0.11329,0.35676,0.35863,-0.11192,-0.11202,-0.11251,-0.11241,0.35735,-0.11212,-0.11172,-0.11241,-0.113,0.35608,-0.11182,-0.11202,-0.11241,-0.1131,0.35313,-0.1127,-0.11251,-0.11241,-0.113,0.35343 -0.30667,-0.3056,0.13064,0.13277,0.13597,-0.3024,-0.30347,0.12744,0.12957,0.1285,-0.29173,-0.27253,0.12637,0.1285,0.13384,-0.28,0.14557,0.1413,0.1381,0.14343,-0.26613,0.16583,0.1413,0.14023,0.13917 -0.13491,-0.13491,-0.13487,-0.13491,-0.13475,-0.13495,-0.13475,-0.13495,-0.13487,-0.1352,-0.13491,-0.13487,-0.13487,-0.13479,-0.13491,0.32954,0.32967,0.32582,-0.13487,-0.13504,0.32834,0.32847,0.29125,0.20989,0.15035 -0.29659,-0.12903,-0.2547,-0.2547,-0.045243,0.03854,-0.33848,-0.0033513,-0.087134,-0.12903,-0.045243,-0.2547,0.03854,-0.045243,-0.2547,0.248,0.12232,0.12232,0.12232,0.12232,0.16421,0.28989,0.33178,0.28989,0.248 -0.13353,-0.052018,-0.055106,0.27773,0.2839,-0.13662,-0.12612,-0.1502,-0.064368,0.29317,-0.12982,-0.14094,-0.15761,-0.061281,0.33145,-0.1607,-0.13847,-0.15823,-0.068074,0.33454,-0.16811,-0.16502,-0.1397,0.34133,0.3438 -0.10477,-0.17369,-0.10477,-0.070305,0.25709,-0.15646,-0.13923,-0.122,0.10201,0.2054,-0.13923,-0.15646,-0.10477,0.32602,0.23986,-0.087536,-0.22539,-0.122,0.37772,0.17094,-0.24262,-0.29431,0.15371,0.050316,0.36048 0.24547,0.22775,-0.12914,-0.13438,-0.13701,0.26711,0.23694,-0.11929,-0.13176,-0.1521,0.28614,0.33862,-0.13176,-0.14094,-0.15931,0.28614,0.40882,-0.13963,-0.13898,-0.14029,-0.081244,-0.13438,-0.13438,-0.1416,-0.15078 -0.18683,-0.16044,0.047146,0.22394,0.094644,-0.15956,0.026916,0.032193,0.24154,0.20899,-0.086552,-0.22905,-0.23784,0.20459,0.15973,-0.12789,-0.24312,-0.24488,0.2345,0.25561,-0.21585,-0.17363,-0.2484,0.28816,0.29607 -0.039345,-0.052727,-0.049382,-0.046036,-0.059419,-0.056073,-0.051055,-0.046036,-0.056073,-0.081165,0.00080296,-0.041018,-0.056073,-0.057746,-0.076147,0.12125,0.00080296,-0.057746,-0.082838,-0.076147,0.12459,-0.051055,-0.07782,-0.079493,0.94595 0.24903,0.19379,0.25228,0.28152,0.1418,0.1483,0.1158,0.27502,0.16779,0.1223,0.0085781,0.054068,0.096309,0.10931,-0.34884,-0.075903,-0.072654,-0.062906,-0.15389,-0.3391,-0.22212,-0.27736,-0.24812,-0.27736,-0.13764 0.16767,0.1702,-0.14911,-0.22261,-0.22007,0.13979,0.19047,-0.16432,-0.24035,-0.23021,0.11191,0.18034,0.20568,-0.25302,-0.23781,0.10684,0.19554,0.23102,-0.24288,-0.24288,0.13219,0.23609,0.20568,0.16767,-0.23781 0.2417,0.19904,0.18451,0.17997,0.17816,0.21538,0.19087,0.17362,0.19904,-0.20132,0.18542,0.16998,0.18542,0.18633,-0.19678,-0.22584,-0.22674,-0.21857,-0.19043,-0.18771,-0.21403,-0.21766,-0.2213,-0.20042,-0.18861 0.30028,0.1675,-0.16405,-0.14907,-0.14826,0.29219,0.16183,-0.16284,-0.17053,-0.14988,0.29097,-0.15838,-0.16041,-0.16446,0.18167,0.29057,0.17479,-0.16081,-0.16284,-0.16689,0.28652,0.26142,-0.15798,-0.16608,-0.16527 -0.026196,-0.064676,-0.089097,-0.090577,-0.090577,0.024124,-0.038776,-0.063196,-0.093537,-0.092057,0.027084,0.023384,-0.0099161,-0.092057,-0.095017,0.028564,0.027084,0.027084,-0.080216,-0.096497,-0.1261,0.024124,0.013764,0.007844,0.94543 -0.38013,-0.31731,0.010158,0.19728,0.24406,-0.33067,-0.064691,0.11308,0.17857,0.17723,-0.3574,-0.051325,0.0409,0.054265,0.16119,-0.039296,-0.028603,0.050256,0.13981,0.08367,-0.42557,0.046246,0.12911,0.24005,0.12911 -0.22426,-0.21589,-0.15029,-0.15029,0.20282,-0.20612,-0.2103,-0.13633,0.18607,0.19305,-0.18518,-0.16704,-0.13773,0.18189,0.20841,-0.19076,-0.14471,0.22236,0.18887,0.22515,-0.16285,-0.16425,0.3075,0.27819,0.25167 0.13386,0.13684,0.13373,0.13373,-0.31902,0.12591,0.13125,0.1233,0.12591,-0.3184,0.12628,0.12392,0.1192,-0.32014,-0.31939,0.12354,0.1223,0.11659,-0.321,-0.32337,0.11286,0.11994,0.11671,0.1182,-0.32274 -0.35874,0.11983,0.11246,0.11562,0.11878,-0.36507,0.11246,0.1114,0.11878,0.11562,-0.36085,0.11351,0.10824,0.11562,0.11562,-0.34293,0.11246,0.10613,0.1114,0.1114,-0.34609,-0.36085,0.10297,0.10402,0.10824 -0.21901,-0.21901,-0.21857,-0.21857,-0.21767,-0.21632,-0.22171,-0.22126,-0.22306,-0.21991,0.15446,0.40614,-0.20913,0.16884,0.17423,0.16165,0.16749,0.15581,0.15716,0.14098,0.12704,0.16165,0.13693,0.15221,0.13963 -0.17847,-0.16269,-0.17321,-0.10483,0.23289,-0.21845,-0.18479,-0.12692,-0.11114,0.22131,-0.14902,-0.16795,-0.12271,0.22237,0.28128,-0.13744,-0.16164,-0.14691,0.28234,0.28654,-0.10693,-0.11956,0.26761,0.28234,0.29601 -0.11902,-0.098146,-0.1012,0.040346,-0.014134,-0.11495,-0.12615,-0.12717,-0.082871,0.34177,-0.10527,-0.081852,-0.14652,0.29187,0.3214,-0.18216,-0.17808,-0.1567,0.2878,0.30664,-0.19285,-0.18368,-0.19743,0.31275,0.30562 -0.01887,-0.097496,-0.082376,-0.161,-0.30313,-0.01887,-0.055159,-0.11262,-0.23358,-0.26684,-0.015846,-0.0854,-0.11564,-0.13983,-0.15193,0.056732,-0.0067739,-0.027943,-0.058183,0.24422,0.38636,0.4045,0.4166,0.15653,0.28656 0.14745,0.14745,0.24258,0.24258,0.24258,0.12367,0.19502,0.052322,0.31393,0.076104,-0.066591,-0.019026,-0.019026,0.31393,0.028539,-0.28063,-0.28063,-0.20929,-0.13794,0.028539,-0.25685,-0.35198,-0.25685,-0.13794,-0.13794 0.094521,0.095668,0.10771,0.14309,-0.31888,0.097198,0.10408,0.14309,0.14079,-0.31869,0.099492,0.10408,0.14538,0.14271,-0.32041,0.11613,0.14003,0.14137,-0.32022,-0.31946,0.13907,0.14079,0.14156,-0.31869,-0.32041 0.14657,0.14321,0.14424,0.14526,0.14582,0.15002,0.18168,0.15619,0.078594,0.14517,0.077847,0.15441,0.15348,0.079341,0.080742,0.07738,0.079248,0.078968,-0.31703,-0.31712,-0.31609,-0.31703,-0.31656,-0.31666,-0.31768 -0.11207,-0.091411,-0.084686,-0.1284,-0.15482,-0.1015,0.0051499,-0.11351,-0.14185,-0.15194,0.0051499,-0.1284,-0.13129,-0.16395,-0.16443,0.0046695,-0.126,-0.12456,-0.1702,0.34143,0.34864,0.34576,0.34576,0.34576,0.34672 0.19193,0.19028,0.20182,0.20347,-0.16258,0.19852,0.20512,0.20512,-0.14114,-0.21699,0.21336,0.22161,-0.1362,-0.14774,-0.22853,0.21171,0.21336,-0.15104,-0.23348,-0.23348,0.21336,-0.14114,-0.22194,-0.22853,-0.22688 0.14167,0.13148,0.14846,0.1548,0.15638,0.13238,0.12944,0.12922,0.14665,0.16023,0.14982,0.12989,0.12854,0.12854,0.1059,-0.28935,-0.29456,0.12718,-0.28551,0.12808,-0.29094,-0.29366,-0.29139,-0.29071,-0.29252 -0.13162,-0.13883,-0.14603,0.31685,0.30784,-0.12082,-0.14063,-0.14963,-0.095602,0.29343,-0.14243,-0.14423,-0.14963,0.30064,0.28623,-0.12982,-0.14783,-0.15144,0.28263,0.27182,-0.12082,-0.14423,-0.14783,-0.12442,0.26642 0.21581,0.18224,0.13508,0.11829,-0.2262,0.2206,0.19822,0.13588,0.1135,-0.2238,0.20062,0.18224,-0.2238,-0.23099,-0.24778,0.19503,0.17744,-0.2214,-0.23659,-0.19822,0.20142,0.18144,-0.23659,-0.2262,-0.18623 -0.18987,-0.19027,-0.18513,0.33457,0.30293,-0.19067,-0.19106,-0.18276,-0.0031957,0.31163,-0.17959,-0.18157,-0.18236,-0.013479,0.31479,-0.18592,-0.012688,-0.011897,-0.012688,0.31875,-0.017829,-0.017434,-0.011106,-0.011897,0.38875 0.19416,-0.10339,-0.20947,-0.25087,-0.25087,0.26402,-0.064581,-0.17843,-0.21982,-0.2457,0.30541,-0.074931,-0.069756,-0.18619,-0.24052,0.26143,0.24591,0.17346,0.049264,-0.14996,0.29507,0.26402,0.16052,0.062201,-0.030945 -0.17985,-0.25873,-0.16407,-0.3376,-0.29028,0.025241,-0.0063104,0.025241,-0.25873,-0.29028,0.1199,0.15145,0.056793,-0.14829,-0.16407,0.26188,0.29343,0.10412,-0.0063104,-0.0063104,0.26188,0.32498,0.2461,0.16722,0.072569 -0.15429,-0.15182,-0.18392,-0.1691,-0.17898,-0.06292,-0.077737,-0.067859,-0.067859,-0.072798,-0.070328,-0.077737,-0.057981,-0.072798,-0.072798,-0.013532,-0.02094,-0.02094,-0.035757,-0.028349,0.14698,0.15439,0.13957,0.60876,0.60876 0.25053,0.11083,0.11083,-0.0055881,-0.098723,0.13411,0.18068,0.087547,0.13411,0.11083,0.11083,0.20397,0.13411,0.1574,0.11083,0.11083,-0.052156,-0.12201,0.11083,0.017696,-0.37813,-0.44798,-0.30828,-0.37813,-0.28499 -0.20708,-0.20761,-0.20761,-0.20778,-0.20726,-0.20726,-0.20638,-0.20778,-0.20673,-0.20638,0.16995,0.24389,0.17449,0.22798,-0.20551,0.16995,0.16995,0.17117,0.17047,-0.20673,0.23392,0.23252,0.17274,0.17362,0.17344 0.011065,0.21137,0.33537,0.3926,0.44029,-0.14155,-0.055704,0.03968,0.18276,0.30675,-0.14155,-0.11293,-0.11293,0.03968,0.15414,-0.17016,-0.19878,-0.14155,-0.12247,-0.0080122,-0.19878,-0.19878,-0.20832,-0.15109,-0.15109 0.045517,-0.15172,-0.14956,-0.16906,-0.18207,0.2601,-0.12355,-0.16039,-0.17557,-0.20158,0.26443,0.27961,-0.14522,-0.14956,-0.19724,0.25576,0.26227,0.2601,-0.16256,-0.14089,0.2536,0.25793,0.24926,-0.13438,-0.14522 -0.24274,-0.21316,-0.022263,0.22241,0.23048,-0.089481,-0.12981,0.15519,0.23317,0.23585,-0.15401,-0.12443,0.18208,0.21703,0.26274,-0.19972,-0.19165,-0.18896,0.074531,0.28425,-0.21854,-0.21047,-0.19972,-0.19165,0.27887 -0.35236,-0.35276,-0.35556,-0.35316,-0.35436,-0.34956,0.089671,0.092474,0.095677,0.089271,0.092874,0.096478,0.094876,0.11129,0.087669,0.20218,0.16575,0.10529,0.10048,0.09808,0.15453,0.11329,0.10849,0.10368,0.1157 -0.27396,0.16682,0.099006,0.099006,0.16682,-0.4774,-0.0027125,0.099006,0.26854,0.0651,-0.40959,-0.10443,0.0651,0.099006,0.13291,-0.40959,0.13291,0.0651,0.0651,0.16682,-0.27396,0.031194,-0.0027125,0.13291,0.099006 -0.12962,-0.12478,-0.12553,-0.12069,-0.12032,-0.13073,-0.12515,-0.12367,-0.12292,-0.11995,-0.13148,-0.12776,-0.12478,-0.12218,-0.12255,0.28431,0.30997,-0.12292,-0.12292,-0.12143,0.28134,0.32969,0.3427,0.34456,0.34679 -0.12559,-0.14632,-0.14747,-0.12904,-0.12904,-0.12789,-0.12674,-0.14747,-0.12904,-0.12444,-0.033447,-0.14171,-0.16705,-0.13135,-0.14747,0.0034092,0.31784,0.29365,-0.12444,-0.13595,0.31554,0.33166,0.31669,0.30748,0.32821 -0.089415,-0.089845,-0.09092,-0.090275,-0.08963,-0.090705,-0.089415,-0.09049,-0.09006,-0.08963,-0.0892,-0.0892,-0.089415,-0.089415,-0.089415,-0.088125,-0.09049,-0.08748,-0.09049,-0.09006,0.51925,0.52097,0.11742,0.52054,0.11548 -0.10183,-0.2481,-0.15718,-0.1888,-0.14927,0.07606,-0.25601,-0.078115,-0.1888,-0.10974,0.25,0.1235,-0.026724,-0.13741,-0.16904,0.38836,0.20652,-0.010911,-0.038583,-0.12555,0.42394,0.42789,0.12745,0.024668,-0.062302 0.13574,0.13934,0.14294,0.13754,0.13394,0.11955,0.12135,0.11595,0.11775,0.11055,0.11595,0.12135,0.11415,0.11055,0.12854,0.11055,0.11955,0.12854,-0.24931,-0.32488,-0.24571,-0.31229,-0.34648,-0.36627,-0.37886 -0.0032829,-0.0074616,-0.13583,-0.13617,-0.135,-0.0037843,-0.0086317,-0.13667,-0.13684,-0.13583,0.11038,0.11439,-0.1345,-0.137,-0.1365,0.11957,0.12409,-0.0077959,-0.13667,-0.13717,0.82127,0.12542,0.12609,0.12542,-0.13751 -0.063425,-0.095785,-0.095785,-0.095785,0.35725,-0.12815,-0.19287,-0.22523,-0.12815,0.32489,-0.095785,-0.19287,-0.12815,-0.095785,0.32489,0.0012944,-0.031066,-0.095785,0.0012944,0.42197,0.0012944,-0.19287,-0.063425,0.033654,0.45433 0.48579,0.36318,0.167,0.14861,0.068908,0.49805,0.10569,-0.047574,-0.12114,-0.084358,0.2283,-0.096619,-0.1334,-0.14566,-0.10888,-0.090488,-0.10888,-0.11501,-0.14566,-0.15179,-0.14566,-0.10888,-0.14566,-0.15179,-0.16406 0.29621,0.31323,0.26461,-0.13167,-0.14626,0.31323,0.29135,-0.10736,-0.13897,-0.13897,0.3108,0.26461,-0.12195,-0.13897,-0.13897,0.2719,-0.12438,-0.13897,-0.13897,-0.14626,-0.12195,-0.14626,-0.13897,-0.15355,-0.15355 -0.16562,-0.1612,0.079114,0.13448,0.1821,-0.19442,-0.15455,0.082436,0.11123,0.16771,-0.22321,-0.19663,0.056965,0.32053,0.17324,-0.21214,-0.22321,0.30946,0.30503,0.14999,-0.27747,-0.2664,-0.25865,0.11455,0.14667 -0.24039,0.029435,0.10302,0.12755,0.17661,-0.38756,0.078494,0.053964,0.10302,0.22567,-0.38756,0.15208,0.029435,0.10302,0.17661,-0.3385,0.029435,0.053964,0.10302,0.15208,-0.51021,0.029435,-0.044153,0.0049059,0.17661 -0.18065,0.015221,0.0031409,0.0048667,0.02385,-0.19015,-0.18497,0.033342,0.025576,0.18521,-0.1703,-0.16512,-0.15736,0.23267,0.49758,-0.15304,-0.18756,-0.17979,0.24648,0.23094,-0.18497,-0.18842,-0.15391,0.28272,0.31464 0.012635,0.17057,-0.026849,-0.18479,-0.1453,0.32851,0.13109,0.091603,-0.22427,-0.066333,0.24954,0.052119,0.091603,0.012635,-0.1453,0.32851,0.012635,-0.026849,0.052119,-0.50066,0.32851,0.091603,-0.10582,-0.22427,-0.30324 -0.22977,-0.20468,-0.25485,-0.12943,-0.25485,-0.1796,-0.15451,-0.15451,-0.05418,0.071237,-0.15451,-0.12943,-0.0040134,-0.079264,0.02107,-0.12943,0.071237,0.071237,0.22174,0.34716,0.1214,0.1214,0.24682,0.39732,0.42241 0.6212,0.068948,-0.081667,-0.064932,-0.16534,0.55426,-0.081667,-0.048197,-0.048197,-0.21555,0.21956,0.018743,-0.081667,-0.16534,-0.081667,0.068948,-0.031462,-0.081667,-0.081667,-0.21555,0.018743,0.13589,-0.031462,-0.064932,-0.16534 0.29288,0.29288,0.29288,0.29288,0.2901,-0.14085,0.2901,0.2901,0.2901,-0.13877,-0.14016,-0.13251,-0.13807,-0.13599,-0.14224,-0.13321,-0.13946,-0.14433,-0.13738,-0.14433,-0.1346,-0.13599,-0.13668,-0.13182,-0.12556 0.20344,0.22307,-0.25148,-0.22857,-0.25476,0.18707,0.23617,-0.26785,-0.21875,-0.22857,0.20671,0.23944,-0.2253,-0.20894,-0.16966,0.19689,0.23289,-0.064933,-0.16639,-0.10093,0.18707,0.20998,0.029979,0.10525,0.12816 -0.10456,-0.10576,-0.10856,-0.10576,-0.10616,0.42065,-0.10616,-0.10955,-0.10836,-0.10556,0.42744,-0.10616,-0.10696,-0.10955,-0.11015,0.42943,0.16313,-0.10816,-0.10776,-0.10436,0.42904,0.16513,-0.10916,-0.10756,-0.10456 -0.07909,-0.10905,-0.10905,-0.14899,-0.2189,0.030757,-0.07909,-0.11903,-0.12902,-0.12902,0.12063,0.010785,-0.12902,-0.12902,-0.15898,0.30038,0.19053,0.050729,-0.10905,-0.12902,0.68984,0.30038,0.19053,0.00079889,-0.10905 -0.14591,-0.14063,-0.14831,-0.14591,0.28738,-0.14015,-0.14639,-0.14591,0.36031,0.29266,-0.14015,-0.14783,-0.12959,0.28066,0.27778,-0.15166,-0.12,-0.13247,0.26963,0.27203,-0.15166,-0.099363,-0.12287,-0.11232,0.28066 -0.11106,-0.14513,-0.14513,0.093349,0.72362,-0.11106,-0.11106,-0.14513,-0.059961,0.34886,-0.11106,-0.059961,-0.025892,-0.025892,0.3148,-0.059961,-0.1281,-0.042927,-0.059961,0.19556,-0.09403,-0.11106,-0.1281,-0.11106,0.11038 -0.11575,-0.13818,-0.13818,-0.11575,-0.093316,-0.13818,0.063706,-0.13818,-0.16061,-0.093316,-0.048452,0.131,-0.093316,-0.026021,-0.13818,-0.11575,0.018843,-0.093316,-0.13818,-0.11575,0.5572,0.5572,0.24316,0.24316,0.086138 0.28611,0.29019,-0.12211,-0.12211,-0.11904,0.3188,-0.12415,-0.12517,-0.12211,-0.12313,0.33107,-0.12619,-0.12619,-0.12517,-0.12415,0.33924,0.33669,-0.12517,-0.12517,-0.1267,0.33924,-0.12619,-0.12722,-0.12517,-0.12619 0.34497,0.35155,0.34935,0.079642,-0.073853,0.35374,0.27699,-0.07166,-0.13306,-0.11332,0.36032,-0.045347,-0.1199,-0.13964,-0.14621,0.018244,-0.089202,-0.13964,-0.16814,-0.16814,-0.073853,-0.12429,-0.15718,-0.18568,-0.18568 0.20576,0.22832,0.20576,0.13807,-0.20034,0.07039,0.047829,0.11551,0.092951,-0.38083,0.0027073,0.16063,0.047829,0.0027073,-0.26802,0.11551,-0.019854,0.16063,0.092951,-0.44851,0.0027073,0.025268,0.0027073,0.11551,-0.5162 -0.085708,-0.098539,-0.085708,-0.085708,0.41468,-0.10495,-0.098539,-0.11137,-0.1242,0.40185,-0.11778,-0.092124,-0.085708,-0.085708,0.18373,-0.10495,-0.11778,-0.085708,-0.060047,0.47884,-0.085708,-0.10495,-0.10495,-0.098539,0.45959 -0.12581,-0.12581,-0.1265,-0.12673,-0.12604,-0.12512,-0.12604,-0.12535,-0.1265,-0.12742,-0.12604,-0.12604,-0.12696,-0.12788,-0.12558,-0.12397,-0.11363,-0.11317,0.31912,0.31889,0.32349,0.32188,0.32142,0.32096,0.31889 0.14842,0.14098,0.12982,0.1261,0.1354,0.13168,0.13354,0.13912,0.1354,0.14098,0.12982,0.13912,0.12982,0.14098,0.14098,-0.30726,-0.2775,-0.27936,0.14656,0.14098,-0.28866,-0.2775,-0.30726,-0.27936,-0.31284 0.36441,0.2988,0.30459,0.13185,0.11062,0.20037,0.20712,0.12027,0.11255,0.11159,0.15115,0.13089,-0.19527,-0.1972,-0.18562,0.13475,-0.18562,-0.20878,-0.21264,-0.17983,-0.19334,-0.21843,-0.22036,-0.21457,-0.16729 -0.17245,-0.10767,-0.10097,0.41728,0.39941,-0.16798,-0.10097,-0.0898,-0.047357,0.40611,-0.18139,-0.13671,-0.096501,-0.051825,0.40164,-0.17692,-0.16575,-0.058526,0.14252,0.11795,-0.18139,-0.15681,-0.074163,0.10231,0.079971 -0.37522,-0.37403,-0.37433,-0.37581,-0.3767,0.17499,0.14712,0.13259,0.025874,-0.020372,0.19277,0.14505,0.10977,0.0404,-0.022743,0.19129,0.1572,0.11955,0.02617,-0.013554,0.19129,0.15246,0.12637,0.014905,-0.015036 -0.050714,-0.32806,-0.050714,-0.050714,0.38511,-0.28844,-0.090334,-0.16957,0.22663,0.14739,-0.20919,-0.090334,-0.050714,0.22663,0.30587,-0.050714,-0.32806,0.028527,0.14739,0.22663,-0.16957,-0.090334,-0.12995,0.26625,0.18701 -0.03422,-0.1439,-0.3852,-0.45101,-0.53875,0.097397,0.07546,-0.056157,-0.1439,-0.20971,0.097397,0.1632,0.053524,0.0096519,0.031588,0.11933,0.14127,0.1632,0.11933,0.14127,0.11933,0.11933,0.20708,0.1632,0.14127 -0.0090819,-0.046923,0.00037841,0.014569,0.97479,-0.046923,-0.046923,-0.037463,-0.065844,-0.032733,-0.056384,-0.061114,-0.056384,-0.046923,-0.056384,-0.028003,-0.075304,-0.046923,-0.037463,-0.046923,-0.037463,-0.056384,-0.023272,-0.023272,-0.051653 -0.09093,-0.10395,-0.11461,-0.10987,-0.11106,-0.12763,-0.11106,-0.082642,-0.09093,-0.12645,-0.11224,-0.099218,-0.077906,-0.094482,-0.11935,0.58039,0.22046,0.16718,-0.07909,-0.058963,0.57329,0.18494,0.16955,-0.087378,-0.098034 -0.095919,-0.09113,-0.12328,-0.11097,-0.12807,-0.097971,-0.093866,-0.10208,-0.089761,-0.10618,-0.089077,-0.071973,0.090856,-0.05829,-0.086341,0.33099,0.089488,-0.025451,-0.047344,-0.069921,0.77912,0.34331,-0.026135,-0.053501,-0.0665 0.095627,0.09145,0.090615,0.083932,0.085603,0.089779,0.088109,0.082262,0.084767,-0.45067,0.09145,0.088109,0.084767,0.085603,-0.45735,0.088109,0.088944,0.084767,0.082262,-0.46236,0.085603,0.088109,0.088109,0.084767,-0.46236 -0.30688,-0.27996,0.06999,0.33918,0.17767,-0.1992,-0.1992,0.096909,0.25842,0.096909,-0.091525,-0.1992,-0.037687,0.28534,-0.010768,-0.22612,-0.27996,0.043071,0.25842,0.17767,-0.14536,-0.22612,0.043071,0.25842,0.096909 -0.0055964,-0.013908,-0.0055964,-0.0097521,0.97377,-0.013908,-0.022219,-0.02776,-0.022219,-0.049924,-0.074858,-0.047153,-0.038842,-0.036072,-0.033301,-0.065162,-0.065162,-0.067932,-0.033301,-0.041613,-0.067932,-0.062391,-0.073473,-0.067932,-0.02776 0.01251,0.018542,0.028595,0.028595,0.93938,-0.086678,-0.094943,-0.093826,0.029488,0.029935,-0.088688,-0.096954,-0.095614,0.029488,0.031722,-0.10053,-0.096731,-0.093603,0.023233,0.029488,-0.10946,-0.10165,-0.077295,-0.030159,-0.03485 -0.093246,-0.085343,0.064798,0.093772,0.91692,-0.082709,0.0094826,0.063481,0.087187,0.070066,-0.033979,-0.066905,-0.08666,-0.090612,0.093772,-0.066905,-0.062954,-0.090612,-0.090612,-0.10773,-0.065588,-0.074807,-0.10246,-0.090612,-0.10773 0.40008,0.3983,0.23925,0.25174,0.25531,-0.13619,-0.13552,0.24705,0.24817,0.25241,-0.13686,-0.13575,-0.13352,-0.13129,-0.13062,-0.13709,-0.13664,-0.13508,-0.13307,-0.13195,-0.13709,-0.13642,-0.13642,-0.1353,-0.13352 -0.0362,-0.063115,-0.063115,-0.0362,0.10847,-0.076572,-0.063115,-0.053022,-0.0092856,0.13538,-0.083301,-0.079937,-0.076572,0.068094,0.1993,-0.17077,-0.10349,-0.079937,-0.0092856,0.10174,-0.20442,-0.17077,-0.076572,-0.022743,0.86544 0.10398,0.072752,-0.1771,-0.19548,-0.13852,0.28954,0.24361,-0.14036,-0.18078,-0.14587,0.29505,0.30791,-0.16241,-0.11831,0.061729,0.30424,-0.14587,-0.17527,-0.13852,-0.092594,0.31893,0.30791,-0.16057,-0.13669,-0.19731 -0.12468,-0.12605,-0.12239,-0.12559,-0.12194,-0.12924,-0.12331,-0.12422,-0.12605,-0.12924,-0.12422,-0.12422,-0.11874,-0.1192,-0.12148,0.29204,0.28565,-0.12011,-0.12194,-0.12422,0.29204,0.27971,0.40021,0.38606,0.29112 -0.012461,-0.076785,-0.14237,-0.23066,-0.27228,-0.045254,-0.069218,-0.24453,-0.17895,-0.22057,-0.062912,-0.073002,-0.052821,-0.06165,-0.096965,0.38736,-0.030119,-0.030119,-0.035164,-0.057866,0.33817,0.29402,0.31547,0.33438,0.32429 0.1167,0.11971,0.13075,-0.35075,-0.35075,0.12172,0.1167,0.12774,-0.35426,-0.31614,0.13426,0.11971,0.12372,0.12272,-0.28705,0.12924,0.11971,0.12673,0.13175,-0.29056,0.11871,0.12272,0.12172,0.13325,-0.28806 0.3255,0.25813,0.25813,0.25813,0.21772,0.29855,0.21772,0.10994,0.042573,0.056046,0.069518,0.015628,-0.24035,-0.28077,-0.19993,0.0021556,-0.065207,-0.25382,-0.25382,-0.29424,-0.065207,0.0021556,-0.22688,-0.17299,-0.07868 0.093522,0.093522,0.11965,0.407,0.81192,-0.063219,-0.089342,-0.024034,-0.076281,-0.076281,-0.12853,-0.050157,-0.063219,-0.050157,-0.010972,-0.089342,-0.076281,-0.18077,-0.1024,-0.1024,-0.076281,-0.037095,-0.1024,-0.076281,-0.050157 -0.16287,-0.16461,-0.16412,0.2414,0.23916,-0.16362,-0.16586,-0.16213,0.23543,0.23916,-0.16088,-0.16088,-0.16163,-0.16611,0.2961,-0.16113,-0.16263,-0.16088,0.23394,0.2593,-0.16387,-0.16387,0.23742,0.23444,0.22872 -0.20417,-0.20417,-0.20472,-0.20472,-0.2049,-0.20526,-0.20635,-0.20399,-0.20363,-0.20472,-0.20671,0.31426,0.16461,0.16678,-0.20236,0.16642,0.16696,0.16733,0.16805,0.30156,0.16896,0.16733,0.16588,0.16823,0.16932 -0.11054,-0.11096,-0.10594,-0.10448,0.49711,-0.11096,-0.11075,-0.10365,-0.10511,0.49962,-0.11116,-0.10636,-0.10427,-0.10824,0.3311,-0.11012,-0.10741,-0.1049,-0.10615,0.24048,-0.10824,-0.10782,-0.11075,0.24131,0.23818 0.036644,0.046667,0.51774,0.52576,0.52175,-0.051558,-0.035521,0.018602,-0.041535,-0.0094616,-0.08764,-0.069599,-0.021489,-0.041535,-0.075613,-0.099668,-0.10769,-0.12573,-0.13375,-0.12974,-0.11771,-0.12974,-0.12773,-0.13375,-0.12773 0.17502,0.1562,0.14038,0.12332,0.11026,0.169,0.15344,0.13486,0.12206,0.10524,0.17101,0.15218,0.13386,0.12081,0.10775,-0.28733,-0.29085,0.13009,0.11729,-0.28959,-0.29235,-0.29135,-0.2911,-0.29035,-0.28984 0.16835,0.1669,0.16448,0.16157,0.1606,0.16641,0.16569,0.16399,0.16205,0.16012,-0.24841,0.16399,0.16399,0.16157,0.15988,-0.24817,-0.24744,-0.24236,-0.24938,0.15915,-0.24744,-0.24841,-0.24671,-0.24599,-0.22444 -0.5292,-0.074051,0.094712,0.14074,0.15097,-0.51386,0.018001,0.11005,0.13051,0.17654,-0.42692,0.069142,0.11517,0.12028,0.10494,-0.2377,0.074256,0.14585,0.053799,0.053799,-0.048481,0.033343,0.10494,0.069142,0.064028 0.50466,0.21926,-0.094163,-0.099184,-0.098127,0.50493,0.22322,-0.095748,-0.098655,-0.096541,0.45736,-0.078043,-0.097598,-0.10024,-0.097598,-0.10024,-0.085971,-0.095748,-0.099184,-0.105,-0.098127,-0.096277,-0.078307,-0.090199,-0.10447 -0.54484,0.09926,0.09248,0.0857,0.13316,-0.40924,0.09926,0.0857,0.1196,0.09248,-0.2872,0.10604,0.11282,0.07892,0.09248,-0.42958,0.09926,0.09926,0.09926,0.09248,-0.27364,0.11282,0.0857,0.05858,0.09926 -0.14904,-0.14904,-0.12437,-0.11121,-0.14575,-0.15671,-0.14356,-0.14904,-0.10683,-0.10683,-0.1145,-0.14465,-0.14027,0.19028,-0.088739,-0.10464,-0.15123,-0.13698,0.15081,0.21111,0.42381,0.45176,0.31582,0.23414,0.24565 0.29051,0.30232,0.30282,0.28411,0.27009,0.291,0.32078,-0.13176,-0.14013,0.26812,-0.1357,-0.14087,-0.13693,-0.14087,-0.13742,-0.13471,-0.13545,-0.13545,-0.13693,-0.13742,-0.13545,-0.13742,-0.13742,-0.13717,-0.13865 -0.083671,-0.078852,-0.033867,0.1782,0.076988,-0.15275,-0.059572,-0.040293,0.22801,0.2023,-0.20899,-0.10134,-0.048326,0.23765,0.21515,-0.27004,-0.30217,0.21837,0.23122,0.22801,-0.29092,-0.30699,-0.27486,0.23122,0.20552 -0.1765,-0.18056,0.22287,0.23586,0.23965,-0.17623,-0.17705,0.21746,0.23613,0.24262,-0.17596,-0.17759,-0.17894,0.23288,0.24289,-0.17705,-0.17623,-0.17623,0.18526,0.18418,-0.17488,-0.17596,-0.17596,-0.17705,0.2364 0.29379,0.26859,0.26725,-0.1582,-0.15686,0.25481,0.26993,-0.15182,-0.15652,-0.1535,0.24406,0.26725,-0.15114,-0.15585,-0.15451,0.25246,-0.15047,-0.15249,-0.15182,-0.12493,0.278,-0.14913,-0.15282,-0.15081,-0.12527 -0.24103,-0.24025,-0.24259,-0.24766,-0.25078,-0.24103,-0.24025,-0.24142,-0.24688,0.14331,0.14331,-0.23556,0.21901,0.13043,0.13472,0.14643,0.15267,0.22096,0.17999,0.12731,0.14409,0.15267,0.15618,0.23773,0.13863 -0.30547,-0.24004,-0.20233,0.16143,0.24683,-0.16019,0.22354,-0.13468,0.18583,0.23685,-0.14023,-0.16241,-0.15132,0.18916,0.23685,-0.14466,-0.15132,-0.16241,0.1703,0.24905,-0.12914,-0.14466,-0.18681,0.19027,0.32557 -0.28544,-0.038895,0.1945,0.13424,0.13533,-0.075932,-0.078562,0.13358,0.19867,0.21686,-0.27996,-0.28062,-0.28194,0.13708,0.20305,-0.27755,-0.28018,-0.078124,0.18837,0.22584,-0.27492,-0.08163,0.18092,0.17609,0.18924 -0.26029,-0.039706,-0.22353,0.033824,-0.039706,-0.11324,0.033824,-0.15,-0.15,-0.11324,-0.11324,-0.26029,-0.11324,-0.11324,-0.11324,-0.18676,-0.11324,0.10735,0.10735,0.10735,0.25441,0.40147,0.29118,0.40147,0.36471 0.22373,0.16025,0.17734,0.18955,0.2042,0.22373,0.17002,0.17002,0.21396,0.17734,-0.15713,-0.1498,-0.14736,0.27011,0.27744,-0.2206,-0.22793,-0.20107,-0.12051,-0.20351,-0.23525,-0.22793,-0.18642,-0.19375,-0.18642 0.17622,-0.15606,-0.15419,-0.15659,-0.15925,0.17702,0.17849,-0.15499,-0.15499,-0.15632,0.21821,0.21501,0.21501,-0.15499,-0.15606,0.21274,0.21421,-0.15512,-0.15566,-0.15406,0.51423,0.21501,-0.15499,-0.15659,-0.15632 0.090386,0.088604,0.10108,0.10821,-0.23395,0.097514,0.10821,0.10286,0.10642,-0.26959,0.16701,0.15276,0.15454,-0.20365,-0.27137,0.26859,0.26324,-0.1894,-0.20187,-0.28028,0.26681,0.26503,-0.20722,-0.20187,-0.28206 -0.10661,0.097621,0.10783,0.11804,0.08741,-0.17809,0.13847,0.077199,0.12826,0.097621,-0.4538,0.036353,0.097621,0.097621,0.13847,-0.47422,0.01593,0.08741,0.097621,0.11804,-0.57633,-0.035127,0.066987,0.097621,0.11804 0.1348,0.13186,0.12892,0.1299,0.1348,0.13872,0.1348,0.13186,0.13088,0.13088,0.14754,0.14558,0.14264,0.13774,0.1397,-0.29539,-0.27873,-0.29147,0.14558,0.14166,-0.32283,-0.31695,-0.29343,-0.26893,-0.26011 0.28556,0.29122,0.29122,0.29122,0.28745,0.29875,0.29122,-0.1591,0.2931,-0.11953,-0.11953,-0.14403,-0.13461,-0.12707,-0.13272,-0.14214,-0.14779,-0.13084,-0.12707,-0.13649,-0.14026,-0.1233,-0.15156,-0.14591,-0.14779 0.5398,-0.089526,-0.078876,-0.08178,-0.084039,0.53206,-0.083717,-0.081135,-0.082748,-0.085008,0.53077,-0.084039,-0.07823,-0.080812,-0.085653,0.034403,-0.084039,-0.07823,-0.077907,-0.084362,0.040212,-0.087912,-0.087267,-0.085976,-0.09598 0.29964,0.37954,0.29964,0.23971,0.19976,0.11986,0.17978,0.09988,0.13983,-0.039952,-0.039952,-0.09988,0.019976,-0.059928,-0.039952,-0.079904,-0.079904,-0.13983,-0.21974,0.13983,-0.33959,-0.09988,-0.27966,-0.31962,-0.27966 0.39633,-0.087391,-0.079968,-0.084298,-0.08801,0.40004,-0.089247,-0.083061,-0.084298,-0.089865,0.59674,-0.090484,-0.082443,-0.084298,-0.089865,0.41365,-0.085535,-0.082443,-0.084298,-0.08801,-0.084917,-0.084917,-0.084298,-0.084298,-0.094814 -0.087307,-0.1242,-0.21787,0.029064,0.26464,-0.09866,-0.12704,-0.22071,0.0006812,0.45765,-0.08163,-0.1015,-0.198,-0.044732,0.32425,-0.092983,-0.090145,-0.21503,0.24194,0.27884,-0.075953,-0.058923,-0.18097,0.0063578,0.41224 0.35559,0.35559,0.24486,0.097228,-0.071497,0.30813,0.30813,0.044501,-0.1295,-0.26131,0.16577,0.16577,0.00232,-0.07677,-0.19804,0.023411,0.00232,-0.039861,-0.17695,-0.21913,-0.087315,-0.066224,-0.16113,-0.24549,-0.3404 0.16823,0.24611,-0.10436,-0.10436,-0.065422,0.20717,-0.065422,-0.26013,-0.22119,-0.33801,0.28505,0.16823,-0.02648,-0.18225,-0.22119,0.24611,0.16823,0.090344,0.12929,-0.33801,0.36293,0.051403,-0.02648,0.051403,-0.22119 -0.23219,-0.23255,-0.23149,-0.23219,-0.23079,-0.22973,-0.22692,-0.22622,-0.22762,-0.22305,0.37829,0.2116,0.19507,0.27455,0.28932,0.09485,0.09485,0.10153,0.10048,0.093795,0.091333,0.091685,0.091685,0.092388,0.091333 -0.1109,-0.13819,-0.13926,0.22564,0.21761,-0.11411,-0.13605,-0.13391,0.21601,0.21601,-0.11947,-0.13659,-0.1398,-0.13284,0.39686,-0.13766,-0.13873,-0.13124,-0.13445,0.39097,-0.1414,-0.1414,-0.13177,0.19728,0.39739 -0.18518,-0.18126,-0.12416,0.14248,0.14491,-0.18387,-0.18088,-0.12771,0.14267,0.14323,-0.18499,-0.18667,-0.12416,0.14248,0.23895,-0.18574,-0.18723,-0.12229,0.14267,0.22944,-0.18499,-0.18872,0.38524,0.39756,0.23821 -0.1265,-0.029448,-0.029448,0.33796,0.79133,-0.12927,-0.12095,-0.00033275,0.016305,0.32548,-0.11818,-0.034994,-0.072428,-0.053018,0.010759,-0.014197,-0.12095,-0.10986,-0.068269,0.020464,-0.10154,-0.14036,-0.091839,-0.053018,-0.087679 0.069546,0.087993,0.069546,0.069546,0.074157,0.087993,0.064934,0.069546,0.087993,-0.29479,0.092605,0.10183,0.087993,0.092605,-0.45159,0.10183,0.087993,0.10644,0.078769,-0.52999,0.10183,0.10183,0.083381,0.078769,-0.52076 0.12742,0.12742,0.12742,0.12742,0.13328,0.11569,0.11569,0.10689,0.10983,0.10983,0.10543,0.10689,0.1025,0.10543,0.10689,0.10103,0.10103,-0.34021,0.10103,0.098099,-0.32115,-0.34021,-0.35487,-0.38712,-0.38565 0.14605,0.14697,0.14581,-0.18558,-0.18882,0.14674,0.14605,-0.17887,-0.18466,-0.18766,0.14581,0.14836,0.14767,-0.18535,-0.18766,0.14581,0.14581,-0.18234,-0.18581,-0.19137,0.42468,0.42792,-0.18489,-0.18535,-0.08931 0.13123,0.13405,0.13445,0.13445,-0.2489,0.13003,0.13083,0.13003,0.13123,-0.25051,0.13123,0.13244,0.13324,-0.2847,-0.27143,0.13847,0.13646,0.13888,-0.24528,-0.28832,0.33236,0.15135,-0.23442,-0.24247,-0.2847 -0.20556,-0.2054,-0.2054,-0.20507,-0.20491,-0.20344,-0.20507,-0.20572,-0.2054,-0.20572,-0.18299,0.20871,-0.054115,0.19661,0.21002,-0.18266,0.20691,0.20904,0.20151,0.20773,0.21509,0.20675,0.20217,0.20151,0.20544 -0.18944,-0.058099,0.17368,0.20845,0.28184,-0.1933,-0.10445,0.18913,0.2857,0.29343,-0.22421,-0.20489,0.077105,0.23549,0.22776,-0.19717,-0.1933,-0.089003,0.12732,0.24321,-0.23193,-0.21262,-0.2358,-0.18944,-0.019469 0.32433,0.31692,-0.11725,-0.1183,-0.12784,0.32433,0.30845,-0.10877,-0.12466,-0.13631,0.32751,0.31374,-0.11513,-0.12784,-0.13313,0.32751,-0.10877,-0.12466,-0.13631,-0.13631,-0.11301,-0.1183,-0.12466,-0.13313,-0.13842 -0.084378,-0.096867,-0.12154,-0.14621,-0.16327,0.37315,-0.087119,-0.10479,-0.12733,-0.152,0.36919,-0.082854,-0.098085,-0.11728,-0.13921,0.34452,0.34269,-0.08651,-0.10631,-0.12276,0.35305,0.33964,-0.083464,-0.090165,-0.1121 -0.11547,-0.16749,-0.15708,-0.15708,-0.13108,-0.032249,-0.16228,-0.13628,-0.11027,-0.12587,0.061377,-0.099867,-0.14668,-0.094666,-0.099867,0.32145,-0.058256,-0.099867,-0.058256,-0.042652,0.59712,0.39427,0.22262,0.17581,0.22262 0.07268,0.26146,0.40305,0.35585,0.28506,-0.02171,0.0018878,0.14347,0.21427,0.14347,-0.18689,-0.045307,0.11988,0.0018878,0.025485,-0.28128,-0.18689,-0.092502,-0.068905,0.025485,-0.32848,-0.23409,-0.16329,-0.23409,-0.21049 0.26043,0.23644,0.20947,0.1675,0.098559,0.25743,0.22146,0.17949,0.10156,-0.15024,0.25443,0.20347,0.050598,-0.14124,-0.21019,0.15251,-0.078295,-0.20719,-0.21019,-0.22817,-0.23117,-0.22817,-0.23716,-0.23417,-0.23716 0.29211,0.36894,0.19773,0.10115,0.046271,0.34699,0.32284,0.068221,0.0045656,0.0023706,-0.056895,0.24163,0.0089557,0.011151,-0.012995,-0.19738,-0.17323,-0.14689,-0.052505,-0.07665,-0.25884,-0.25884,-0.2764,-0.24567,-0.25664 -0.23172,-0.13009,-0.23172,0.27643,0.20868,-0.09621,-0.26559,-0.062333,0.039297,0.24256,-0.19784,-0.13009,0.0054203,0.0054203,0.24256,-0.16396,-0.29947,0.10705,0.1748,0.27643,-0.09621,-0.062333,-0.23172,0.34419,0.27643 -0.10947,-0.08808,-0.094496,-0.094496,0.45734,-0.10519,-0.10626,-0.094496,-0.081663,0.4552,-0.10626,-0.096635,-0.077385,-0.095566,0.4552,-0.096635,-0.06883,-0.052788,-0.04958,0.4552,-0.12016,-0.11695,-0.077385,-0.059205,-0.031399 0.35693,-0.13803,-0.1246,-0.11636,0.034995,0.36181,-0.13406,-0.12552,-0.11178,-0.1069,0.36334,-0.13803,-0.12582,-0.11148,-0.11056,0.36731,-0.13223,-0.1246,-0.11331,-0.11453,0.45183,-0.13101,-0.12857,0.075885,0.075275 0.1161,0.12039,0.11824,0.1118,0.12254,0.1161,0.12254,0.12683,0.12468,0.12683,0.096775,0.096775,0.10966,0.12468,0.12039,0.00017174,0.010905,0.00017174,0.006612,0.0023185,-0.43776,-0.45708,0.006612,-0.44635,-0.43991 -0.090376,-0.088788,-0.21424,-0.20789,-0.21202,0.29455,0.35172,-0.21488,-0.21551,-0.21456,0.30313,0.24755,-0.067191,-0.072908,-0.21202,0.26311,0.24882,-0.068779,-0.068779,-0.066874,0.26343,0.25231,-0.068779,-0.07005,-0.071003 -0.21155,-0.21155,-0.21179,-0.213,-0.21276,-0.21324,-0.21276,-0.21421,-0.21227,-0.21324,0.033739,0.037617,0.039556,0.2972,0.31005,0.036163,0.037617,0.036163,0.30157,0.29187,0.03592,0.037859,0.039798,0.29817,0.29308 -0.20321,-0.31694,0.10009,-0.05156,0.40338,-0.24112,-0.20321,0.138,0.10009,0.17591,-0.43067,-0.089471,0.062175,-0.05156,0.25173,-0.12738,-0.16529,0.062175,0.17591,0.28964,-0.20321,-0.05156,0.138,0.17591,0.062175 0.41726,0.41726,0.10115,-0.1447,-0.1447,0.1714,0.13628,0.06603,-0.10958,-0.2852,0.34701,-0.0042147,0.10115,-0.17983,-0.17983,0.13628,0.10115,-0.07446,-0.039337,-0.35544,-0.039337,-0.039337,0.030908,-0.21495,-0.21495 0.11746,0.12781,0.12529,-0.33341,-0.33341,0.10795,0.12278,0.12389,-0.33117,-0.32922,0.10488,0.11942,0.21508,0.1376,-0.32614,0.10851,0.11383,0.11243,0.1334,-0.32278,0.11075,0.11411,0.11411,0.1183,-0.25146 0.45498,0.45498,-0.05281,-0.10178,-0.10722,0.44773,-0.043742,-0.089081,-0.099962,-0.10722,0.46405,-0.056437,-0.10178,-0.1054,-0.10178,-0.031048,-0.089081,-0.10178,-0.092708,-0.098148,-0.043742,-0.090894,-0.10722,-0.094521,-0.1054 0.30885,0.30885,0.31598,0.31883,0.32596,-0.11821,-0.12748,-0.03301,0.3256,0.33024,-0.12462,-0.12676,-0.12926,-0.12961,-0.1346,-0.12748,-0.12961,-0.1314,-0.13068,-0.13425,-0.12819,-0.12961,-0.1314,-0.13247,-0.13567 -0.01735,-0.1305,-0.30023,-0.48881,-0.45109,0.039225,0.076942,-0.01735,-0.20593,-0.30023,0.11466,0.076942,0.0015087,0.020367,-0.073925,0.19009,0.20895,0.17123,0.17123,0.095801,0.13352,0.15238,0.17123,0.20895,0.15238 0.28257,0.085605,0.080356,0.071712,0.071712,0.073564,0.074799,0.071712,0.072329,0.072329,0.072329,0.071094,0.072329,0.083135,0.082826,0.071094,0.072947,0.078504,0.098263,0.26745,-0.37965,-0.38644,-0.3886,-0.38397,-0.38799 0.41699,0.37933,0.28517,-0.095208,-0.10651,0.38309,0.28141,-0.095208,-0.1178,-0.13287,0.36426,-0.076377,-0.1291,-0.12534,-0.13664,-0.057547,-0.095208,-0.095208,-0.1178,-0.12534,-0.1178,-0.11404,-0.11027,-0.13287,-0.1291 0.053444,0.025124,0.042882,0.17821,0.17714,0.055741,0.028033,0.044566,0.17928,0.18739,0.057731,0.030941,0.046709,0.17423,0.1877,0.020225,0.031094,0.038442,0.15999,0.18387,-0.37886,-0.38039,-0.38177,-0.38238,-0.37932 -0.29311,0.18018,0.14282,0.10545,0.097148,-0.35953,0.15942,0.12206,0.11791,0.12206,-0.35953,0.10545,0.10545,0.13451,0.11791,-0.33877,-0.24329,0.14282,0.11791,0.084693,-0.34708,-0.2765,0.16357,0.1013,0.097148 0.34618,0.03285,-0.011676,-0.099077,-0.013325,0.45172,0.019657,-0.085885,-0.099077,-0.095779,0.47646,-0.00013193,-0.11557,-0.11392,-0.12381,0.49295,-0.10402,-0.10238,-0.12546,-0.12546,-0.10073,-0.13701,-0.12381,-0.12216,-0.12052 0.26969,0.26733,0.27018,0.26674,0.26831,0.26635,0.26733,0.26812,-0.15183,-0.14957,0.0381,0.037903,0.038002,-0.15036,-0.14986,0.036921,-0.15124,-0.14918,-0.14967,-0.14927,-0.21923,-0.21913,-0.21845,-0.21845,-0.21874 0.28489,0.28272,0.29018,0.30053,0.3027,-0.14761,-0.14713,0.28296,0.29211,0.29307,-0.14761,-0.14689,-0.1481,-0.15171,-0.12114,-0.14858,-0.14689,-0.14713,-0.12403,-0.12451,-0.1274,-0.1274,-0.12355,-0.12403,-0.12547 -0.13032,-0.12638,-0.13048,-0.1319,-0.13158,-0.11723,-0.11754,-0.1188,-0.11944,-0.12101,-0.11628,-0.11723,-0.11817,-0.11723,-0.11786,0.50611,0.32089,0.079823,-0.1166,-0.11754,0.48055,0.32184,0.18174,0.077614,0.09702 0.11546,0.13489,0.12517,-0.32427,-0.31544,0.11811,0.134,0.13224,0.1031,-0.3225,0.13577,0.14018,0.12782,0.10663,-0.31632,0.12252,0.13224,0.13842,-0.32162,-0.31721,0.11016,0.11723,0.12959,0.11899,-0.32515 0.13608,0.35323,0.30498,0.23259,0.03957,0.03957,0.015442,0.20846,0.23259,0.18434,-0.08107,-0.008686,0.015442,0.063698,0.13608,-0.27409,-0.15345,-0.032814,0.03957,0.015442,-0.24996,-0.3706,-0.29822,-0.32235,-0.22584 -0.62513,-0.051235,0.048573,0.09016,0.11511,-0.45047,0.015304,0.098478,0.12343,0.10679,-0.31739,0.040256,0.081843,0.12343,0.14006,-0.31739,0.065208,0.10679,0.098478,0.14006,-0.06787,0.073525,0.12343,0.11511,0.12343 -0.063091,-0.070614,-0.098197,-0.10572,-0.11826,-0.027985,-0.088167,-0.088167,-0.10572,-0.11826,0.46601,-0.068106,-0.078136,-0.11074,-0.11826,0.45849,-0.0054164,-0.078136,-0.088167,-0.11074,0.44344,0.44846,-0.063091,-0.098197,-0.11324 0.45563,0.46203,-0.1204,-0.12093,-0.12075,0.25022,0.25591,-0.12218,-0.12111,-0.11951,0.24773,-0.12111,-0.12129,-0.1204,-0.12022,0.24916,-0.1204,-0.12111,-0.11969,-0.12129,0.25414,-0.12253,-0.11987,-0.12075,-0.12129 -0.1153,-0.13572,-0.12787,-0.13415,-0.13415,-0.10902,-0.1153,-0.11059,-0.11844,-0.11373,-0.085453,-0.10273,-0.066603,-0.046182,-0.039899,-0.068174,-0.074457,0.0025133,0.41721,0.4769,-0.055607,-0.058749,0.018222,0.4015,0.49575 -0.12327,-0.12032,-0.12273,-0.12676,-0.12757,-0.123,-0.12408,-0.12596,-0.12676,-0.12515,-0.12381,-0.12596,-0.12515,-0.12461,-0.12649,0.32178,0.31077,-0.12461,-0.12327,-0.12461,0.33978,0.31909,0.30808,0.31614,0.3285 -0.074771,-0.078966,-0.077288,-0.073093,-0.072254,-0.084,-0.09197,-0.095746,-0.087356,0.18532,-0.11127,-0.12511,-0.11672,-0.089453,0.18783,-0.1314,-0.12511,-0.086936,-0.091131,0.58426,-0.12973,-0.13434,0.16938,0.16854,0.58132 0.80675,-0.082784,-0.083532,-0.083532,-0.083083,0.21388,-0.084878,-0.08443,-0.08443,-0.084878,0.21627,-0.085926,-0.085477,-0.085477,-0.084878,0.22749,-0.086075,-0.086374,-0.086374,-0.086374,0.24305,-0.086823,-0.086674,-0.087721,-0.087721 -0.15153,-0.16501,0.10821,0.12093,0.14114,-0.28028,-0.27879,0.22423,0.15387,0.1913,-0.27879,-0.23462,-0.18073,0.16285,0.18755,-0.13357,-0.18372,-0.18222,0.213,0.18456,-0.16351,-0.18896,0.25642,0.27813,0.19953 0.29057,0.28391,0.28657,0.29669,0.29616,0.29163,-0.13575,-0.13309,0.29483,0.29163,-0.13708,-0.13495,-0.13895,-0.13548,-0.13362,-0.13442,-0.13548,-0.13655,-0.13495,-0.14187,-0.13682,-0.13522,-0.13841,-0.14454,-0.1448 0.61737,0.14978,0.18372,0.055508,-0.1632,0.25914,0.096988,0.11207,-0.19714,-0.1896,0.10076,0.14978,-0.0010559,-0.17075,-0.216,0.070591,0.085675,-0.053848,-0.24239,-0.23108,0.06682,0.059279,-0.046307,-0.25371,-0.24239 -0.26642,-0.26642,-0.13834,-0.052943,-0.30912,-0.010247,-0.13834,-0.13834,-0.26642,-0.010247,-0.095639,-0.010247,-0.13834,-0.052943,-0.13834,0.37402,0.032449,0.032449,0.11784,0.24593,0.33132,0.41671,0.11784,0.20323,0.16054 0.16561,-0.0089723,-0.0089723,0.16169,-0.29976,0.16291,0.16318,-0.0062698,0.16169,-0.30246,0.16629,0.17061,-0.0053239,-0.0046483,-0.30327,0.17034,0.17061,0.16615,-0.3049,-0.30327,0.16304,0.16629,0.16642,-0.30246,-0.30449 0.31102,0.25017,0.25017,-0.1994,-0.1986,0.088624,0.31124,0.2035,-0.19867,-0.19874,0.089138,0.20372,0.20497,-0.19845,-0.1986,0.089726,0.089653,-0.1986,-0.19926,-0.19838,0.20438,0.09002,-0.19992,-0.19889,-0.19882 -0.10217,-0.096443,-0.10085,-0.058564,-0.098205,0.53165,-0.077944,-0.099526,-0.0938,-0.10129,0.42815,-0.061647,-0.075301,-0.10437,-0.097324,0.43519,-0.050195,-0.051516,-0.10305,-0.097324,0.42374,-0.099967,-0.054159,-0.095562,-0.099526 -0.24564,-0.2476,0.15372,0.15146,0.15282,-0.24488,0.15055,0.15161,0.14919,0.14919,-0.24307,-0.24368,0.1661,0.15387,0.15161,-0.24307,-0.24428,0.1658,0.18543,0.18634,-0.24398,-0.24458,-0.24428,0.18588,0.19147 -0.11275,-0.12535,-0.091153,-0.067753,-0.071353,0.47945,-0.12355,-0.11815,-0.087553,-0.076753,0.43085,-0.060553,-0.10375,-0.10735,-0.096553,0.42725,-0.040752,-0.055153,-0.078553,-0.087553,0.48305,-0.058753,-0.082153,-0.082153,-0.092953 0.21272,0.21068,0.21775,-0.14713,-0.14713,0.21132,0.27376,-0.14724,-0.14788,-0.14713,0.27537,0.27397,-0.14724,-0.14734,-0.14841,0.27655,-0.14574,-0.14756,-0.14809,-0.14884,0.40924,-0.14788,-0.14745,-0.14809,-0.1482 -0.050746,-0.018692,-0.0077266,-0.057494,-0.092922,0.43681,-0.0051961,-0.056651,-0.12751,-0.22282,0.37354,-0.067616,-0.066773,-0.18233,-0.26247,0.32884,0.25461,-0.14185,-0.20258,-0.24729,0.31112,0.27063,-0.060868,-0.05412,-0.049902 -0.059124,-0.055609,-0.08373,-0.045064,0.94795,-0.09076,-0.069669,-0.10306,-0.073185,0.095541,-0.094275,-0.062639,-0.087245,0.016451,0.039299,-0.059124,-0.023973,-0.081972,0.012936,0.019966,-0.096033,-0.050336,0.037541,-0.0063975,-0.027488 -0.040935,-0.040935,-0.1456,-0.29678,-0.35493,0.052099,0.052099,-0.017677,-0.27352,-0.38981,0.16839,0.16839,0.12187,-0.18049,-0.227,0.22654,0.2498,0.19165,0.017211,-0.1456,0.28469,0.28469,0.18002,0.052099,0.063729 -0.0016653,0.30489,0.39951,0.426,0.42222,-0.11899,-0.096282,-0.073574,0.16486,0.34652,-0.11521,-0.1417,-0.11521,-0.10385,-0.1417,-0.11521,-0.11521,-0.11521,-0.10385,-0.13034,-0.12277,-0.11899,-0.10764,-0.11521,-0.11142 -0.1819,-0.25645,-0.35584,-0.2813,-0.20675,-0.1819,-0.1819,-0.20675,-0.057651,0.016898,-0.1322,-0.10735,-0.10735,0.21569,0.21569,0.14115,0.041747,0.24054,0.26539,0.29024,0.016898,0.16599,0.21569,0.16599,0.26539 0.26605,0.26605,-0.29406,-0.084017,-0.084017,0.16103,0.021004,-0.29406,0.021004,-0.084017,0.44109,0.021004,-0.15403,-0.084017,-0.18904,0.26605,0.12603,-0.18904,-0.11902,-0.11902,0.26605,0.26605,-0.04901,-0.11902,-0.25905 -0.19092,-0.19599,0.23082,0.21306,0.14838,-0.20487,-0.21375,-0.21311,0.20419,0.14077,-0.20741,-0.21438,0.21243,0.21941,0.21433,-0.21438,-0.14272,-0.16872,0.25492,0.27014,-0.18331,-0.13765,-0.17316,0.22321,0.12872 0.13839,0.42973,0.24764,0.21122,0.28406,0.13839,0.10197,0.029134,0.029134,0.32048,0.029134,0.029134,0.029134,-0.0072836,-0.080119,-0.043701,-0.33504,-0.11654,-0.080119,-0.33504,-0.18937,-0.18937,-0.18937,-0.29863,-0.15295 0.11739,0.11479,0.12239,-0.32288,-0.32128,0.11979,0.10018,0.12179,-0.31928,-0.31848,0.12499,0.12019,0.12679,0.12679,-0.31868,0.11939,0.10298,0.12519,0.1686,-0.31828,0.12059,0.098384,0.16759,0.14039,-0.31928 0.13328,0.11411,0.11411,-0.3989,-0.49958,0.1237,0.14767,0.099724,-0.27424,-0.47561,0.090135,0.099724,0.11411,0.070957,-0.20712,0.1237,0.099724,0.1237,0.090135,-0.087258,0.099724,0.13808,0.13328,0.10452,-0.077669 0.1226,0.12406,0.12296,0.12296,-0.27922,0.12625,0.12588,0.12479,0.12369,-0.27776,0.13026,0.12844,0.12771,-0.25441,-0.26791,0.20216,0.20362,0.21639,-0.25003,-0.27485,0.18829,0.18501,-0.25185,-0.24784,-0.2712 -0.13636,-0.1397,-0.15084,-0.12968,-0.12076,-0.14193,-0.14639,-0.1475,-0.11185,-0.11631,-0.13859,-0.14861,-0.14527,-0.13859,-0.11408,0.33377,0.25244,-0.1397,0.21791,-0.10517,0.25913,0.22682,0.40284,0.39504,0.18337 0.13745,0.14456,0.14583,0.1443,0.11612,0.13478,0.14062,0.14684,0.14519,0.14786,0.1391,0.14177,0.1471,0.12691,0.12349,-0.29046,-0.29211,0.12526,0.12323,-0.29059,-0.29122,-0.29313,-0.2897,-0.29097,-0.29224 -0.39117,0.12975,0.068326,0.074546,0.076101,-0.39661,0.16318,0.096315,0.076878,0.072991,-0.39117,0.16396,0.072213,0.063661,0.072991,-0.38651,0.15463,0.083876,0.065993,0.066771,-0.40517,0.15774,0.16007,0.079988,0.070658 -0.13414,-0.13113,-0.063367,-0.0031322,0.34322,-0.11306,-0.12962,-0.11306,0.37333,0.3658,-0.082943,-0.11155,-0.11005,-0.10854,0.36129,-0.099507,-0.078425,-0.10252,-0.088966,0.36279,-0.27268,-0.1236,-0.10704,-0.10704,0.27395 0.37695,0.32748,0.37695,0.080139,-0.043532,0.45115,0.15434,0.080139,-0.043532,-0.1672,0.20381,-0.043532,-0.043532,-0.14247,-0.14247,-0.018798,-0.068267,-0.1672,-0.1672,-0.068267,-0.14247,-0.1672,-0.14247,-0.24141,-0.24141 0.27182,-0.15419,-0.15557,-0.15419,-0.12199,0.27274,-0.15511,-0.15557,-0.15327,-0.12314,0.2755,0.26331,-0.15465,-0.15511,-0.14775,0.26653,0.26101,-0.15212,-0.15327,-0.15373,0.26216,0.26469,0.25986,-0.15373,-0.15419 0.11277,0.17939,0.16117,0.17597,0.17426,0.17028,0.17711,0.16743,0.16914,0.16971,0.13726,0.168,0.17483,-0.12919,-0.13716,0.13099,-0.085924,-0.096172,-0.1309,-0.14798,-0.087063,-0.36319,-0.36376,-0.36319,-0.36376 0.21604,-0.17644,-0.18889,-0.20354,-0.21635,0.21055,0.19151,-0.18596,-0.19365,-0.2017,0.21348,0.19188,0.17394,-0.19878,-0.19768,0.21165,0.18602,0.17064,-0.23539,-0.24308,0.20762,0.18931,0.16918,0.15307,-0.24344 -0.11895,-0.12354,-0.11665,-0.12584,-0.11895,-0.10056,-0.10746,-0.10746,-0.10516,-0.12124,-0.031621,-0.056899,-0.063793,-0.095966,-0.10975,-0.031621,0.0028496,0.00055153,0.0028496,-0.082177,0.5245,0.5291,0.5245,0.016638,0.016638 0.43636,-0.094148,-0.094148,-0.078258,-0.072108,0.45788,-0.09261,-0.095685,-0.085947,-0.073645,0.46403,-0.09261,-0.084409,-0.082871,-0.081846,0.47275,-0.09056,-0.08851,-0.070057,-0.081846,-0.10132,-0.097223,-0.08851,-0.093123,-0.091585 -0.072115,-0.058694,-0.058694,-0.025142,0.968,-0.078825,-0.063168,-0.058694,-0.018431,0.019594,-0.065404,-0.058694,-0.049747,-0.0094841,0.019594,-0.056457,-0.058694,-0.063168,-0.0027736,0.033015,-0.065404,-0.063168,-0.060931,-0.034089,-0.018431 -0.37271,-0.37011,-0.36663,-0.38269,-0.3688,0.21155,0.13645,0.095652,0.034014,-0.026322,0.20243,0.14514,0.099559,0.031409,-0.021113,0.21285,0.14297,0.10303,0.058756,-0.026322,0.20981,0.14687,0.097822,0.046602,-0.040212 -0.24151,-0.24291,-0.15234,0.07752,0.07878,-0.24235,-0.24403,0.22703,0.21611,0.08102,-0.24235,0.070381,0.22087,0.21121,0.08172,-0.24165,-0.24305,0.071081,0.22857,0.23837,-0.24193,-0.24277,0.071501,0.22521,0.23557 0.1783,0.23963,-0.13339,-0.1272,-0.13395,0.23457,0.26213,-0.13282,-0.1272,-0.13676,0.36791,-0.13564,-0.13507,-0.13732,-0.13789,0.36172,-0.1362,-0.13507,-0.13507,-0.13789,0.27395,0.37072,-0.13676,-0.1317,-0.13901 0.20252,0.20252,0.20131,-0.038286,-0.3725,0.19842,0.2007,0.20024,0.20131,-0.35987,0.19842,0.20024,0.20328,-0.02566,-0.31013,-0.030376,-0.029311,-0.028398,-0.028702,-0.35561,-0.030984,-0.029919,-0.029007,-0.029767,-0.31043 -0.0184,0.10507,0.19707,0.20917,0.19707,-0.2605,-0.27018,0.1656,0.14381,0.20433,-0.2605,-0.25566,0.046967,0.14623,0.12928,-0.25566,-0.27987,0.14381,0.15107,0.14381,-0.25566,-0.27502,-0.21208,0.13412,0.22612 0.69138,0.18773,-0.086995,-0.041208,-0.064102,0.43955,0.027472,0.050366,-0.086995,-0.064102,0.18773,-0.041208,-0.041208,-0.13278,-0.24725,0.073259,0.050366,-0.064102,-0.13278,-0.10989,0.0045787,-0.041208,-0.17857,-0.17857,-0.20146 -0.046764,-0.082736,-0.097125,-0.10072,-0.11871,-0.032375,-0.086333,-0.08993,-0.097125,-0.11511,0.50001,-0.079139,-0.082736,-0.082736,-0.071944,0.55757,-0.068347,-0.079139,-0.08993,-0.075542,0.53599,0.08993,-0.06475,-0.050361,-0.071944 -0.23967,-0.069692,0.057793,0.31276,0.18528,-0.15468,0.015298,0.14278,-0.069692,0.31276,-0.23967,-0.23967,0.015298,0.10029,0.14278,-0.36716,-0.15468,-0.069692,0.015298,0.39775,-0.15468,-0.23967,0.057793,-0.069692,0.31276 0.22773,0.46651,-0.19768,-0.20226,-0.18488,0.43174,0.11154,0.088668,-0.18853,-0.19494,0.085009,0.080435,0.090498,-0.19036,-0.21324,0.10239,0.07769,0.11154,-0.19036,-0.21141,0.095987,0.11428,0.10971,-0.21598,-0.20409 0.32114,0.32289,0.32026,0.31938,0.31762,-0.12245,-0.10664,-0.11981,0.32114,0.32026,-0.12157,-0.1242,-0.11542,-0.11278,-0.097852,-0.13738,-0.13299,-0.13035,-0.1286,-0.12332,-0.13826,-0.13387,-0.13387,-0.13123,-0.13211 0.24955,0.27001,0.18819,0.37228,0.29046,0.065456,0.12682,0.065456,0.12682,0.18819,-0.057274,-0.016364,-0.098184,-0.077729,0.085911,-0.28228,-0.22091,-0.18,-0.098184,0.065456,-0.42547,-0.22091,-0.28228,-0.13909,0.004091 0.048121,0.04466,-0.18515,-0.18653,-0.18722,0.034277,0.043968,0.032547,-0.18238,-0.18411,0.059196,0.036008,0.029778,0.02874,-0.18169,0.10488,0.030816,0.020433,0.015242,-0.18099,0.83791,0.029086,0.038084,0.028048,-0.17373 -0.26759,-0.26953,-0.28313,-0.31228,-0.31616,0.084092,0.087978,0.086035,-0.25399,-0.31033,0.10546,0.091864,0.093807,0.074377,-0.21513,0.20844,0.21621,0.15793,0.062719,0.04329,0.25896,0.26285,0.17736,0.14627,0.070491 0.63172,0.14337,-0.02968,-0.12213,-0.077092,0.55823,0.16945,-0.06998,-0.13399,-0.091316,0.079368,0.0058791,-0.096057,-0.15058,-0.024939,0.041438,-0.046274,-0.12688,-0.21222,-0.1648,0.072256,0.024844,-0.15058,-0.091316,-0.13873 0.32104,0.3411,0.36604,0.041325,-0.066912,0.33259,0.33259,0.33077,0.046189,-0.074817,-0.13441,0.029771,-0.13502,-0.10705,-0.091235,-0.13684,-0.12225,-0.12407,-0.149,-0.19096,-0.12894,-0.11191,-0.16846,-0.20008,-0.19947 -0.48118,-0.075423,-0.027687,0.043917,0.091653,-0.43344,0.091653,0.067785,0.16326,0.11552,-0.33797,0.11552,0.23486,0.16326,0.091653,-0.36184,0.11552,0.18713,0.16326,0.091653,-0.2425,0.043917,0.11552,0.067785,-0.0038189 -0.074861,0.18881,-0.057098,0.14357,0.90184,-0.073196,-0.07042,-0.062649,-0.062094,0.18493,-0.064869,-0.065147,-0.06931,-0.0682,-0.06709,-0.064869,-0.067367,-0.0682,-0.070143,-0.06931,-0.065702,-0.068755,-0.07042,-0.070143,-0.06931 -0.31258,0.018971,0.19067,0.11641,0.11588,-0.31232,-0.31047,0.1933,0.12457,0.12299,-0.3139,0.015284,0.11694,0.12299,0.11852,-0.31574,0.1064,0.11351,0.11641,0.12247,-0.31627,-0.31943,0.15196,0.19726,0.13616 0.50993,0.49085,0.4336,-0.086452,0.38111,-0.053054,-0.048283,-0.067368,-0.07691,-0.067368,-0.067368,-0.067368,-0.072139,-0.067368,-0.086452,-0.10554,-0.10554,-0.11031,-0.11031,-0.10554,-0.086452,-0.11508,-0.10554,-0.10554,-0.10554 0.1667,0.16237,0.16237,0.16237,0.16454,0.1602,0.16309,0.16309,0.16526,0.16309,-0.24254,0.15947,0.16309,0.15947,0.16309,-0.2476,-0.24688,-0.24543,-0.24181,0.17104,-0.24109,-0.24615,-0.24254,-0.25121,-0.24398 -0.090069,-0.066617,-0.080297,0.45478,0.80655,-0.091241,-0.075216,-0.068963,0.091679,0.088552,-0.092023,-0.079516,-0.083815,0.088161,-0.070135,-0.087333,-0.062709,-0.082252,-0.076389,-0.069744,-0.068963,-0.061145,-0.07678,-0.074435,-0.072089 -0.20347,-0.2166,-0.22973,-0.2166,0.0722,-0.17722,-0.20347,-0.17065,-0.019691,0.20347,-0.16409,-0.15096,-0.13127,0.2166,0.24285,-0.13784,-0.12471,0.19035,0.25598,0.26911,-0.11815,-0.0722,0.28224,0.2888,0.31505 -0.15331,-0.13082,-0.11733,-0.12632,-0.12632,-0.13082,-0.12632,-0.13532,-0.11283,-0.11283,-0.12182,-0.10833,-0.10833,-0.06784,-0.022853,-0.081336,-0.049845,-0.040848,0.28756,0.41802,-0.049845,-0.018355,0.31905,0.4675,0.44951 0.24647,0.43207,0.28359,0.39495,0.39495,0.023757,-0.013363,0.060876,-0.19896,-0.16184,0.060876,0.060876,0.023757,-0.087602,-0.19896,-0.087602,-0.050483,-0.19896,-0.12472,-0.16184,-0.050483,-0.050483,-0.16184,-0.31032,-0.12472 0.36917,0.36656,0.28821,0.013998,-0.077406,0.39528,0.39006,0.26471,-0.043456,-0.085241,-0.12703,-0.048679,-0.087852,-0.074795,-0.093076,-0.16359,-0.15314,-0.13225,-0.12964,-0.12441,-0.14531,-0.15575,-0.15053,-0.15836,-0.13747 -0.28736,-0.1332,-0.34902,-0.36444,-0.4261,-0.28736,-0.19486,0.051798,0.067214,-0.10236,0.12888,0.036382,0.036382,0.14429,0.15971,0.17513,0.19054,0.20596,0.20596,0.20596,0.17513,0.051798,0.11346,0.098046,0.098046 -0.16368,-0.16352,-0.16583,0.23754,0.22681,-0.1612,-0.16352,-0.16533,0.22317,0.22995,-0.16533,-0.16418,0.24052,0.22796,0.22615,-0.15625,-0.16484,-0.16319,0.23011,0.2985,-0.15063,-0.16385,-0.16302,-0.16533,0.29899 0.65404,-0.0045158,-0.098595,-0.060963,0.033116,0.57878,-0.060963,-0.079779,-0.023332,-0.15504,0.25891,-0.042148,-0.098595,-0.079779,-0.079779,0.051932,-0.060963,-0.17386,-0.060963,-0.079779,-0.023332,-0.17386,-0.042148,-0.11741,-0.060963 -0.3401,-0.35282,-0.35282,-0.35155,-0.38463,0.12053,0.12053,0.11544,0.10526,-0.35155,0.1078,0.10653,0.10144,0.10398,0.1078,0.11671,0.1078,0.11035,0.10907,0.11289,0.12053,0.11416,0.11798,0.12053,0.11416 -0.097855,-0.14998,-0.1882,-0.12913,0.23574,-0.063105,-0.1604,-0.17778,-0.014456,0.26702,-0.12565,-0.097855,-0.14303,-0.09438,0.22184,-0.12218,-0.04573,-0.035306,-0.010981,0.56586,-0.12565,-0.049205,-0.021406,0.048093,0.51374 -0.089833,-0.10576,-0.10576,-0.13762,0.51542,-0.089833,-0.089833,-0.10576,-0.089833,0.35614,-0.089833,-0.089833,-0.12169,-0.089833,0.22872,-0.089833,-0.089833,-0.10576,-0.13762,0.51542,-0.042049,-0.10576,-0.089833,-0.057977,0.30836 -0.10614,-0.10614,-0.055757,-0.055757,0.12898,-0.19011,-0.10614,-0.022169,-0.10614,0.11219,-0.15652,-0.10614,-0.038963,0.11219,0.19616,-0.19011,-0.089346,-0.089346,0.01142,0.54884,-0.2237,-0.089346,-0.038963,0.045009,0.61602 0.0068674,0.012018,0.05494,-0.044638,-0.070391,0.0051506,0.0068674,0.041205,-0.029187,-0.056656,0.020602,-0.020602,-0.049789,-0.080692,-0.078976,-0.012018,-0.082409,-0.09271,-0.05494,-0.080692,-0.085843,-0.099578,-0.10473,-0.058373,0.95457 -0.12496,-0.12416,-0.12672,0.33602,0.32447,-0.12319,-0.12368,-0.12512,0.33891,0.32591,-0.12352,-0.12448,-0.12448,-0.12319,0.34709,-0.12384,-0.12384,-0.12448,-0.12753,0.28804,-0.12432,-0.124,-0.124,-0.12496,0.28002 0.23291,0.19886,0.23291,0.19886,0.14211,0.17616,0.16481,0.13076,0.10805,0.051303,0.17616,0.19886,0.074004,-0.0622,-0.23245,0.085354,0.028603,-0.11895,-0.28921,-0.30056,0.0059021,-0.23245,-0.2665,-0.34596,-0.35731 -0.066416,-0.20833,-0.22536,-0.29348,-0.30199,-0.08723,-0.068308,-0.19603,-0.28212,-0.28402,-0.059793,0.16443,0.21741,0.19376,-0.28118,0.16254,0.172,0.19944,0.18714,0.16159,0.17011,0.17957,0.19944,0.19092,0.15592 -0.14697,-0.15052,-0.15179,0.22055,0.21928,-0.14595,-0.14824,-0.15052,0.39606,0.21496,-0.14468,-0.14849,-0.14976,0.22614,0.22258,-0.13986,-0.1424,-0.14747,0.40317,0.21827,-0.13859,-0.14113,-0.14646,-0.1457,0.2175 0.32511,0.33347,0.33817,0.10985,-0.16289,0.32824,0.33869,0.10671,0.096784,-0.16864,0.11089,0.11037,0.10305,-0.1655,-0.16707,-0.1608,-0.1608,-0.16446,-0.16393,-0.16289,-0.16393,-0.16602,-0.16602,-0.16602,-0.16237 0.33593,0.27231,0.5268,0.27231,0.36774,-0.10943,-0.013997,-0.10943,0.017815,-0.045809,-0.10943,-0.10943,-0.07762,-0.013997,0.14506,-0.14124,-0.20487,-0.23668,-0.26849,-0.045809,-0.045809,-0.10943,-0.17306,-0.10943,-0.013997 0.34836,0.3845,0.34836,0.13154,0.20381,0.13154,0.023128,0.023128,0.20381,0.20381,0.023128,-0.049146,-0.049146,-0.085284,-0.1937,0.023128,-0.013009,-0.30211,-0.049146,-0.30211,-0.1937,-0.12142,-0.22983,-0.26597,-0.1937 0.27535,0.27459,0.27307,0.27231,0.16845,0.27155,-0.16173,0.27535,0.27345,0.15252,-0.15945,-0.16021,0.18323,-0.15756,-0.16325,-0.16021,-0.15566,-0.15756,-0.16097,-0.1659,-0.16325,-0.16021,-0.16325,-0.16362,-0.16704 -0.11043,-0.11165,-0.11434,-0.11385,0.35769,-0.11043,-0.11165,-0.11239,-0.11239,0.35573,-0.11361,-0.11312,-0.11434,-0.10994,0.35573,-0.11263,-0.11459,-0.11263,-0.10872,0.35597,-0.11165,-0.11337,-0.11361,0.35451,0.35573 -0.15407,-0.15873,-0.1401,-0.13544,-0.1727,-0.13078,-0.1401,-0.16338,-0.056262,-0.02366,-0.088865,-0.11215,-0.10284,0.16264,0.27908,-0.037632,-0.09818,-0.10284,0.20921,0.4188,-0.04229,-0.074892,-0.06092,0.46072,0.46537 -0.169,-0.18074,-0.18074,-0.23942,-0.21595,0.089196,-0.15727,-0.14553,-0.20421,-0.20421,0.23003,0.15961,-0.086849,-0.19248,-0.169,0.23003,0.2535,0.17135,0.018778,-0.20421,0.2183,0.31219,0.30045,0.28871,0.07746 -0.17204,-0.17911,-0.18029,-0.17558,-0.17086,-0.17558,-0.17675,-0.17911,-0.17204,-0.16025,-0.15554,-0.16615,-0.16143,0.10731,0.067231,0.17567,0.17095,0.4503,0.12617,0.073125,0.16035,0.14974,0.13795,0.11909,0.48684 0.25289,0.21926,0.28652,0.25289,0.35378,0.017487,0.084745,0.084745,0.18563,0.051116,-0.15066,0.152,0.084745,-0.049771,-0.049771,-0.18429,-0.0834,-0.11703,-0.049771,0.11837,-0.21792,-0.28517,-0.3188,-0.35243,-0.28517 -0.24101,-0.24175,-0.17701,-0.25515,-0.2611,-0.22538,-0.21124,-0.16584,-0.16212,0.14301,-0.24324,-0.1331,-0.13905,0.19436,0.20404,0.19511,0.15566,0.15938,0.20404,0.22487,0.17724,0.15417,0.20404,0.21594,0.22413 -0.23471,-0.23471,-0.19747,-0.19281,-0.23471,-0.18117,-0.19281,-0.16954,-0.12997,-0.13928,-0.067125,0.20752,0.01201,0.042267,-0.06247,0.35881,0.20054,0.056232,0.07718,0.0050274,0.51242,0.27502,0.22381,0.060887,0.0050274 -0.16634,0.15429,0.18344,0.13486,0.15429,-0.19549,0.11543,0.15429,0.13486,0.15429,-0.36067,0.0085503,0.10571,0.15429,0.15429,-0.3801,-0.17606,0.066848,0.14458,0.14458,-0.39953,-0.3801,-0.12748,0.11543,0.10571 0.35331,0.31096,0.30816,0.30909,0.33865,0.31189,0.31072,-0.12285,-0.12309,-0.12309,-0.12448,-0.12704,-0.12309,-0.12565,-0.12518,-0.12518,-0.12448,-0.12518,-0.12541,-0.12518,-0.12518,-0.12425,-0.12472,-0.12402,-0.12472 -0.018529,-0.019213,-0.11552,-0.1173,-0.13249,-0.017161,-0.017297,-0.082279,-0.11799,-0.13303,-0.015245,-0.015245,-0.079543,-0.11922,-0.12879,0.47766,0.34031,-0.086794,-0.11279,-0.1303,0.48108,0.47944,-0.078722,-0.108,-0.13303 -0.12495,-0.12429,-0.12396,-0.12495,-0.1233,-0.1276,-0.12462,-0.12429,-0.12661,-0.1233,-0.12892,-0.12661,-0.12462,-0.12892,-0.12297,0.32013,0.32079,-0.12363,-0.12264,-0.11867,0.32145,0.32542,0.32013,0.31814,0.3188 -0.24433,0.15693,0.15804,0.16006,0.17148,-0.24378,-0.2458,0.16172,0.16319,0.16908,-0.24433,-0.24599,0.16025,0.16503,0.16871,-0.24451,-0.24525,-0.24672,0.16172,0.16467,-0.24414,-0.24433,0.15951,0.16503,0.16374 -0.14031,-0.1362,-0.085684,-0.11212,-0.11388,0.44529,-0.073937,-0.080985,-0.10918,-0.10918,0.45293,-0.075112,-0.075112,-0.083922,-0.092145,0.45821,-0.068651,-0.068651,-0.071588,-0.069825,0.46585,-0.066301,-0.060428,-0.064539,-0.064539 0.13988,0.14288,0.28272,0.28822,0.28897,0.21067,0.27972,0.27947,0.28622,-0.15831,0.20992,-0.15881,-0.16031,-0.16006,-0.16156,-0.15981,-0.16056,-0.16056,-0.16006,-0.16206,-0.16031,-0.16056,-0.16156,-0.16256,-0.16156 0.25827,-0.12181,-0.11992,-0.12854,-0.1175,0.32346,0.33369,-0.11858,-0.13097,-0.12666,0.31376,-0.11992,-0.1175,-0.13097,-0.13285,0.31645,-0.11858,-0.11669,-0.12962,-0.14201,0.35363,0.33854,-0.11642,-0.12639,-0.12289 0.13333,0.1385,0.1416,0.13437,0.13747,0.13953,0.1354,0.13953,0.12817,0.1354,0.15193,0.1323,0.13127,0.1292,0.13437,0.15296,-0.26126,0.13437,-0.27985,-0.28708,-0.30051,-0.29534,-0.29947,-0.29741,-0.30877 0.26897,0.22655,0.19551,0.13033,-0.13662,0.26483,0.2431,0.19137,-0.16041,-0.148,0.28139,0.25242,-0.17283,-0.17076,-0.16662,0.29484,-0.00418,-0.19456,-0.18835,-0.18628,-0.010388,-0.2049,-0.20387,-0.19663,-0.2049 -0.16955,-0.17039,0.28618,0.25554,0.22701,-0.16284,-0.16326,-0.16158,0.24715,0.23162,-0.16284,-0.16158,-0.16452,0.24967,0.23204,-0.16452,-0.16326,-0.16158,0.24925,0.2333,-0.16032,-0.16074,-0.1599,-0.15906,0.23414 -0.061348,-0.058398,-0.0082583,0.021236,0.97094,-0.052499,-0.058398,-0.0082583,-0.0053089,-0.043651,-0.081993,-0.014157,-0.023005,0.0064887,-0.058398,-0.079044,-0.040702,-0.031854,-0.04955,-0.070196,-0.070196,-0.061348,-0.023005,-0.043651,-0.055449 -0.17042,-0.15573,-0.13517,-0.13321,-0.020602,-0.16356,-0.1714,-0.14692,-0.12537,-0.0068934,-0.1479,-0.14594,-0.13125,-0.11362,-0.11167,-0.090124,-0.10481,-0.12733,0.2849,0.30253,0.29078,0.32015,0.34365,0.32211,0.33778 -0.15648,-0.14967,-0.14627,-0.18201,0.22043,-0.15818,-0.16073,-0.15563,0.2417,0.22298,-0.16584,-0.16073,-0.17094,0.24425,0.24085,-0.15563,-0.16584,-0.17945,0.24255,0.2434,-0.16159,-0.17605,0.26297,0.26297,0.26297 -0.13615,-0.1384,-0.13822,-0.13878,0.43165,-0.13578,-0.13672,-0.13822,-0.14084,0.27095,-0.13334,-0.13297,-0.13428,0.26607,0.27582,-0.13353,-0.13259,-0.13353,0.26326,0.26795,-0.13334,-0.13372,-0.13409,0.26401,0.26476 -0.35557,-0.35531,-0.35506,-0.35583,-0.35506,0.073269,0.084929,0.12483,0.12406,-0.3478,0.082338,0.092184,0.11939,0.12639,0.12924,0.090889,0.09633,0.10566,0.1225,0.12224,0.10048,0.097885,0.17303,0.13364,0.12535 -0.07972,-0.079283,-0.080157,-0.07972,-0.080157,-0.07972,-0.079283,-0.07972,-0.07972,-0.080157,-0.077098,-0.077972,-0.075787,-0.079283,-0.078409,-0.07972,-0.074476,-0.072728,-0.075787,-0.07972,0.17896,0.17765,0.17503,0.16848,0.86849 0.35092,0.34693,0.38684,0.3589,0.02762,0.25513,0.26311,0.043585,-0.10809,-0.12804,0.17929,-0.12006,-0.12804,-0.148,-0.14401,-0.13602,-0.14401,-0.148,-0.148,-0.148,-0.12006,-0.15199,-0.13203,-0.148,-0.15997 0.30703,0.30682,-0.13424,-0.13466,-0.13593,0.30956,0.30851,-0.13382,-0.13466,-0.13445,0.50169,0.31041,-0.13508,-0.13445,-0.13508,-0.0058695,-0.0046027,-0.13234,-0.13403,-0.13635,-0.0069251,-0.0052361,-0.13403,-0.1355,-0.13677 0.15087,0.15504,0.15365,0.14809,0.14253,0.18422,0.18422,0.14948,0.14948,0.15226,0.187,0.22453,0.17727,0.1467,-0.22575,-0.24659,-0.26466,-0.24104,0.12446,-0.22714,-0.28551,-0.273,-0.25632,-0.22158,-0.18823 -0.076363,-0.059425,-0.042487,0.41414,0.38803,-0.096124,-0.062248,-0.043898,0.24405,0.41979,-0.1293,-0.12365,-0.10459,-0.058013,0.35415,-0.20199,-0.18858,-0.11659,-0.062248,0.20665,-0.19705,-0.14059,-0.20481,-0.065071,-0.053779 -0.10447,-0.095809,-0.052496,0.36548,0.27452,-0.11097,-0.12396,-0.080649,0.41529,0.28751,-0.13696,-0.13696,-0.12396,-0.028673,0.27885,-0.14995,-0.15861,-0.14345,-0.06549,0.27885,-0.16511,-0.1781,-0.1781,-0.15428,0.28751 0.45359,-0.20172,-0.23022,-0.17323,-0.087755,0.22566,0.026213,-0.23022,-0.14474,-0.23022,0.28264,-0.0022794,-0.11625,-0.087755,-0.14474,0.31113,0.11169,0.083197,0.083197,-0.087755,0.39661,0.083197,0.026213,-0.23022,-0.11625 -0.12422,-0.12301,-0.1218,-0.12374,-0.12616,-0.12641,-0.12544,-0.12568,-0.12641,-0.12616,-0.12447,-0.12301,-0.12301,-0.12447,-0.12665,0.08605,0.085565,0.014261,0.014261,0.015231,0.48089,0.085079,0.085079,0.52818,0.47604 0.27742,0.27409,0.27511,0.27946,-0.11296,0.34602,0.27895,0.28049,0.31377,-0.11526,-0.13395,-0.13446,-0.13498,-0.13677,-0.13651,-0.13805,-0.13882,-0.13984,-0.13984,-0.13984,-0.14368,-0.14445,-0.14445,-0.14521,-0.14624 -0.22572,0.18957,0.20337,0.2213,0.2282,-0.23675,-0.23537,0.13714,0.21164,0.2144,-0.22848,-0.23537,0.12886,0.15922,0.19785,-0.22296,-0.22158,-0.19122,0.13714,0.15646,-0.20088,-0.23537,-0.22296,0.13714,0.13438 -0.080591,-0.12049,-0.20028,-0.26013,-0.35987,0.059047,-0.12049,-0.080591,-0.12049,-0.26013,0.15879,0.039099,-0.080591,-0.12049,-0.24018,0.31838,0.11889,0.078996,0.078996,-0.080591,0.43807,0.31838,0.21863,0.21863,0.078996 -0.14457,-0.14746,-0.14779,-0.14875,-0.14939,-0.14779,-0.14875,-0.14779,-0.14971,-0.14971,-0.14811,-0.14875,-0.14586,-0.15036,-0.14875,0.29407,0.29632,0.29503,0.29503,0.13906,0.29792,0.30018,-0.12849,0.2976,0.13681 -0.10981,-0.11425,-0.12314,-0.12403,0.28535,-0.14803,-0.1347,-0.12803,0.29201,0.2849,-0.15115,-0.14314,-0.13025,-0.1347,0.28446,-0.15203,-0.14448,-0.14359,0.29735,0.28668,-0.1507,-0.14892,-0.14759,0.30579,0.29201 0.30481,0.30767,-0.12548,-0.12433,-0.13063,0.30481,-0.12146,-0.12032,-0.11917,-0.13464,0.31856,-0.12261,-0.11688,-0.11459,-0.12204,0.34148,0.32773,-0.13464,-0.1249,-0.1123,0.33747,-0.1335,-0.13235,-0.12719,-0.12548 -0.01429,-0.01429,-0.19292,-0.044062,-0.22269,-0.044062,-0.01429,-0.01429,-0.13338,-0.28223,-0.13338,0.015481,0.015481,-0.044062,-0.19292,-0.044062,-0.044062,-0.1036,-0.1036,-0.19292,0.49182,0.43228,0.34297,0.28342,0.25365 0.23364,-0.13447,-0.17817,-0.17313,-0.20002,0.23364,0.22355,-0.17145,-0.17985,-0.1933,0.23364,0.22187,-0.1664,-0.18489,-0.1933,0.23028,0.22187,-0.1496,-0.18489,-0.18657,0.23364,0.22523,0.20674,0.21179,-0.17985 -0.1502,-0.14832,-0.16335,-0.14456,-0.14832,-0.14456,-0.14644,-0.1502,-0.15959,-0.1502,-0.073184,-0.080697,-0.084454,-0.12202,-0.13141,0.32129,0.30438,0.34571,-0.12014,-0.058156,0.28747,0.34195,0.30626,0.30626,-0.037493 0.20645,0.018768,-0.043793,-0.32532,-0.41916,0.23773,0.050049,0.081329,-0.13763,-0.29404,0.23773,0.17517,0.14389,-0.043793,-0.32532,0.081329,0.30029,0.081329,0.018768,-0.38788,0.050049,0.14389,0.081329,0.050049,0.018768 -0.12581,-0.15742,-0.14162,-0.15742,-0.22065,0.07966,0.016438,-0.12581,-0.094201,-0.20484,0.23772,-0.015173,-0.078395,-0.11001,-0.17323,0.36416,0.048049,-0.015173,-0.078395,-0.094201,0.66446,0.30094,0.063854,0.032243,-0.015173 0.17457,0.17457,-0.047341,0.063615,0.1006,0.026629,0.063615,0.21156,0.3595,0.026629,0.063615,0.21156,0.1006,0.13759,0.1006,0.026629,-0.010356,-0.010356,0.026629,-0.010356,-0.41719,-0.30624,-0.41719,-0.34322,-0.30624 -0.054386,-0.041284,-0.054386,-0.059746,-0.061533,-0.054982,-0.056173,-0.056173,-0.059746,-0.20208,-0.053195,-0.057364,-0.058555,-0.056173,-0.056173,-0.055577,-0.053791,0.067107,-0.05796,-0.056768,0.85146,0.23863,0.05877,0.23267,-0.24258 -0.20087,-0.20238,0.20867,0.19423,0.19574,-0.23395,-0.20839,0.18702,0.18311,0.19694,-0.22553,-0.19847,0.1816,0.18221,0.20476,-0.2114,-0.20388,0.19965,0.19002,0.18882,-0.20689,-0.22072,-0.19245,-0.18945,0.1816 0.09778,0.096471,0.095489,0.1665,-0.21932,0.29707,0.099416,0.16552,-0.21932,-0.21997,0.1917,0.18417,0.16781,-0.22063,-0.21703,0.19202,0.19399,-0.22063,-0.21997,-0.21932,0.19399,0.27613,-0.21997,-0.22063,-0.22128 0.17866,0.18255,0.090038,-0.28822,-0.2839,0.17261,0.18212,0.18082,0.1886,-0.28736,0.051996,0.055887,0.17866,0.17693,-0.39284,0.041621,0.045512,0.057184,0.061075,-0.39154,0.051996,0.045944,0.044647,0.047674,-0.39067 -0.07982,0.32742,-0.039096,-0.24272,-0.16127,0.32742,0.16453,0.1238,-0.28344,-0.28344,0.083078,0.20525,0.042353,-0.039096,-0.20199,0.32742,0.16453,-0.20199,-0.07982,-0.20199,0.20525,0.24598,-0.07982,-0.07982,-0.24272 0.29447,0.25832,0.23547,0.20264,0.17979,0.29115,0.25707,0.23796,0.19682,-0.16551,0.27702,-0.16676,-0.16634,-0.16592,-0.16468,-0.16592,-0.16426,-0.16426,-0.16592,-0.14806,-0.16426,-0.16592,-0.15138,-0.16925,-0.14224 -0.20507,-0.17948,-0.1027,0.31528,0.24703,-0.23066,-0.18374,0.31528,0.27263,0.080696,-0.2861,-0.17095,0.10202,0.11055,0.029515,-0.32875,-0.23066,0.04231,0.21718,0.093491,-0.26051,-0.060053,0.14467,0.18732,0.080696 0.15415,0.14894,0.15763,0.15589,-0.26652,0.15589,0.15415,0.15241,0.15589,-0.25956,0.14372,0.15241,0.15068,-0.25609,-0.27694,0.15068,0.15241,0.13503,-0.26652,-0.27173,0.14025,0.13851,-0.26999,-0.25782,-0.27347 0.44616,0.29367,0.21743,0.11876,-0.12791,0.43719,0.27573,0.23537,0.10979,-0.14585,0.015607,-0.060636,-0.038211,-0.15482,-0.19518,-0.101,-0.11445,-0.12791,-0.16827,-0.18173,-0.11445,-0.12791,-0.12342,-0.17276,-0.19518 -0.16109,-0.16109,-0.16375,-0.1664,0.23903,-0.15401,-0.16109,-0.16729,0.23814,0.24124,-0.15755,-0.16729,-0.1664,0.23814,0.23859,-0.16109,-0.1664,0.2408,0.23991,0.2346,-0.16463,-0.16375,-0.16463,0.2886,0.24744 0.21612,0.2605,-0.073377,-0.10715,-0.14961,0.25857,0.26436,0.30007,-0.082061,-0.18531,0.25471,0.27305,-0.14478,-0.1525,-0.1911,0.26726,-0.096536,-0.16312,-0.1747,-0.19303,0.27305,-0.13803,-0.16698,-0.15926,-0.19014 -0.27748,-0.27748,-0.28293,-0.23661,-0.11672,-0.28293,-0.24751,-0.21753,-0.043158,0.15029,-0.24206,-0.17394,0.12849,0.13939,0.16664,0.15574,0.18571,0.17209,0.18299,0.16664,0.20206,0.19933,0.18844,0.18571,0.17481 -0.12365,-0.12465,-0.12699,-0.12766,-0.12866,-0.12298,-0.12198,-0.12465,-0.12632,-0.12732,-0.12198,-0.12198,-0.12331,-0.12599,-0.12565,0.32139,0.32005,-0.12031,-0.12565,-0.12498,0.32072,0.32239,0.31203,0.31872,0.32941 0.3442,-0.012484,-0.19083,-0.012484,-0.32459,0.43338,-0.05707,0.12127,-0.10166,-0.28,0.16586,0.076688,-0.012484,-0.10166,-0.012484,0.21045,-0.05707,0.032102,0.076688,-0.32459,0.3442,0.16586,-0.05707,-0.23541,-0.19083 0.10224,0.11137,0.11789,0.10485,-0.38027,0.14136,0.11658,0.1231,0.14397,-0.37896,-0.052945,0.040948,0.11398,0.10615,-0.38287,-0.085547,0.13875,0.16483,0.14136,-0.37635,-0.06729,0.12441,0.14658,0.15701,-0.37114 0.2005,0.2005,0.19941,0.19831,-0.20206,0.19831,0.19941,0.2005,-0.19767,-0.20261,0.18732,0.19062,-0.21799,-0.23337,-0.19712,0.18403,0.18293,-0.2147,-0.22019,-0.19987,0.17579,0.17579,-0.21634,-0.21689,-0.1746 -0.17318,-0.079206,-0.30743,-0.17318,-0.16311,-0.15304,-0.16982,-0.099343,-0.34435,-0.30407,0.058398,0.12217,0.098672,0.068466,-0.19667,0.088604,0.12217,0.15908,0.31682,-0.089275,0.26313,0.20943,0.26984,0.31682,0.15908 0.34938,0.34144,0.31764,0.046744,0.034276,0.33577,0.33577,0.32217,-0.055267,-0.062068,-0.094938,-0.10967,-0.066602,-0.094938,0.0014055,-0.13688,-0.10741,-0.083603,-0.21622,-0.19695,-0.12327,-0.089271,-0.19468,-0.22982,-0.22302 -0.14178,-0.1272,-0.13553,-0.10844,-0.096982,-0.14178,-0.11782,-0.13762,-0.10844,-0.10948,-0.11365,-0.096982,-0.081353,-0.079269,-0.091772,-0.11782,0.31145,-0.083437,-0.062598,-0.09594,0.33229,0.28123,0.29895,0.24685,0.57714 -0.03314,-0.036625,-0.045337,-0.01136,0.97919,-0.037496,-0.035754,-0.042724,-0.039239,-0.043595,-0.041852,-0.042724,-0.042724,-0.044466,-0.042724,-0.04011,-0.039239,-0.041852,-0.045337,-0.045337,-0.044466,-0.041852,-0.044466,-0.04708,-0.049693 0.25034,0.30431,-0.078367,-0.14542,-0.16504,0.26833,-0.089814,-0.14378,-0.14869,-0.17322,0.29123,-0.099626,-0.13724,-0.15032,-0.18139,0.33538,-0.10126,-0.080002,-0.15196,-0.17485,0.32393,0.2667,0.26015,-0.1029,-0.17649 -0.10106,-0.10362,-0.10303,-0.10382,0.12691,-0.10362,-0.10323,-0.10382,-0.10717,0.12809,-0.10815,-0.10264,-0.10244,-0.10244,0.46434,-0.10973,-0.10323,-0.10008,-0.10421,0.46356,-0.11071,-0.11012,-0.10126,0.33618,0.46533 -0.12194,-0.15526,-0.17192,-0.1386,-0.088624,-0.15526,-0.15526,-0.22189,-0.1386,0.011328,-0.20524,-0.22189,-0.12194,-0.071966,0.17792,-0.055307,-0.088624,0.077963,0.24455,0.32784,0.011328,0.12794,0.27787,0.41114,0.44445 -0.054712,-0.084972,-0.13339,-0.16365,-0.23022,-0.084972,-0.084972,-0.091025,-0.13339,-0.21812,-0.012346,-0.00024209,-0.054712,-0.19996,-0.26654,0.36894,0.29026,0.21764,-0.0062943,-0.22417,0.37499,0.32658,0.29026,0.19948,-0.024451 0.21551,0.21687,0.2189,0.1904,-0.31037,0.08387,0.22026,0.22433,0.10965,-0.30969,0.084548,0.078441,0.043156,0.039763,-0.29884,0.070977,0.084548,0.047228,-0.30494,-0.30087,0.065549,0.087262,0.063513,-0.31512,-0.30494 0.21434,-0.056976,-0.011757,-0.1248,-0.17002,0.21434,-0.10219,0.033462,0.010853,-0.14741,0.68913,-0.056976,-0.1248,-0.17002,-0.1248,0.3726,-0.056976,-0.056976,-0.056976,-0.19263,0.23695,-0.10219,0.033462,-0.079585,-0.17002 0.030879,-0.1362,-0.13001,-0.12537,0.027785,0.083478,-0.080507,-0.12382,-0.12382,-0.055755,0.47178,-0.055755,-0.12692,-0.13001,-0.097525,0.45476,-0.058849,-0.10681,-0.12847,-0.12073,0.44858,0.38051,-0.051114,-0.12073,-0.12537 -0.068716,-0.1256,-0.18249,-0.1768,-0.18817,0.010922,-0.068716,-0.14267,-0.18249,-0.18249,0.10763,-0.00045508,-0.040274,-0.074405,-0.14267,0.36929,0.10763,0.01661,-0.0061435,-0.045963,0.72767,0.21571,0.11331,0.045053,-0.085782 -0.12634,-0.16124,-0.17869,-0.10889,-0.082713,-0.082713,-0.11761,-0.13506,-0.030363,0.056887,-0.082713,-0.10016,-0.11761,0.004537,0.19649,-0.073988,-0.091438,-0.056538,0.17904,0.43206,-0.004188,-0.039088,-0.091438,0.074337,0.73744 -0.12944,-0.12918,-0.1301,-0.12971,-0.1305,-0.12879,-0.12971,-0.12971,-0.12971,-0.1301,-0.12918,-0.12892,-0.12931,-0.12997,-0.12984,0.39304,0.39383,0.18054,-0.12879,-0.12944,0.38738,0.38777,0.18568,0.1376,0.13654 0.13031,-0.048088,-0.088321,-0.096791,-0.18573,0.13349,-0.044383,-0.061852,-0.089909,-0.18837,0.4707,-0.062911,-0.06344,-0.10526,-0.18678,0.26848,0.27748,-0.054441,-0.12379,-0.2032,0.27695,0.27483,0.29601,-0.25719,-0.26778 0.062295,0.021096,0.017824,0.016188,-0.21702,0.063039,0.063634,0.020947,-0.21717,-0.21866,0.28867,0.29253,0.27245,-0.21807,-0.21717,0.28822,0.29804,-0.21836,-0.21807,-0.21613,0.28569,0.090703,0.093529,-0.21807,-0.21613 -0.17178,-0.14263,-0.14749,-0.15721,-0.15235,-0.10863,-0.11348,-0.11834,-0.1232,-0.13292,-0.045471,-0.035755,-0.055187,-0.060045,-0.050329,0.046832,0.05169,0.046832,0.022541,0.0031092,0.58122,0.55693,0.37232,-0.030897,-0.035755 -0.19445,-0.3734,-0.3734,-0.34358,-0.19445,-0.075157,-0.22428,-0.16463,-0.045333,-0.075157,0.19326,0.10379,0.014316,0.16344,0.13361,0.25291,0.34238,0.04414,0.25291,0.19326,0.04414,0.04414,0.16344,-0.045333,0.16344 -0.079575,-0.022578,-0.076037,-0.088222,-0.093332,-0.071713,-0.065424,-0.069748,-0.079182,-0.092939,-0.081933,0.057216,0.048569,-0.074858,-0.088222,-0.081933,-0.079182,0.052893,0.049748,-0.085471,-0.083899,-0.083112,0.13623,0.13662,0.91609 0.039497,0.030452,0.051557,0.057587,0.063617,0.28673,0.28673,0.27919,0.25205,0.060602,0.1405,0.14201,0.072662,0.013869,-0.004221,0.013869,-0.0087435,-0.013266,-0.0087435,0.018392,-0.35698,-0.37959,-0.35245,-0.36602,-0.31929 -0.12888,-0.12908,-0.12888,-0.12888,-0.1285,-0.1285,-0.12869,-0.1285,-0.1285,-0.1285,-0.12869,-0.12888,-0.12908,-0.12869,-0.12869,-0.1285,0.071047,0.06979,0.40749,0.07008,0.063989,0.10595,0.42702,0.43079,0.41329 0.27142,0.31937,0.31937,0.12756,-0.016304,0.19949,0.22347,0.19949,0.079604,-0.040281,0.19949,0.079604,0.12756,-0.040281,-0.20812,-0.016304,-0.088235,-0.18414,-0.064258,-0.2321,-0.064258,-0.28005,-0.32801,-0.30403,-0.28005 -0.048499,-0.055983,-0.070952,-0.08592,-0.070952,-0.0035925,-0.052241,-0.10089,-0.082178,-0.089662,0.093704,-0.029788,-0.08592,-0.082178,-0.08592,0.80846,0.015118,-0.078436,-0.078436,-0.078436,0.47541,0.026345,-0.082178,-0.070952,-0.08592 0.35474,0.34221,0.088059,0.0281,-0.095398,0.30552,0.078215,0.053158,-0.058706,-0.13746,0.2751,0.073741,0.028995,-0.07571,-0.17057,0.25004,0.049578,-0.22069,-0.13298,-0.20816,0.21961,-0.27885,-0.2717,-0.24306,-0.2538 0.084459,0.083295,-0.11924,-0.21469,-0.25543,0.083295,0.080967,-0.090139,-0.18326,-0.22051,0.13684,0.12054,-0.080827,-0.15183,-0.18209,0.13335,0.13917,0.02044,-0.11458,-0.15416,0.53143,0.52212,0.062343,-0.10178,-0.12971 0.27057,0.27561,0.27561,-0.054658,-0.16055,0.27309,0.27561,0.26553,-0.16055,-0.16685,0.25796,0.24032,-0.10256,-0.16811,-0.16307,0.24032,-0.1076,-0.16811,-0.16937,-0.17315,-0.10508,-0.14794,-0.17315,-0.17567,-0.17819 0.22866,0.025256,0.021019,-0.11459,-0.16544,0.17781,0.076108,-0.051021,-0.17391,-0.23324,0.32189,0.17357,-0.23324,-0.27138,-0.15696,0.37698,-0.01712,-0.19086,-0.16544,-0.0086448,0.46597,0.10577,-0.097635,-0.19934,0.10577 0.24849,0.2674,0.26885,0.3205,0.3125,-0.11522,0.26085,-0.1465,0.32196,0.32196,-0.11522,-0.13414,-0.13559,-0.14214,-0.14432,-0.12904,-0.14505,-0.14141,-0.13777,-0.14214,-0.12977,-0.14359,-0.14287,-0.13923,-0.1385 0.25827,0.052792,0.052573,0.051263,0.058906,0.25259,0.056285,0.051918,0.052355,0.056722,0.24714,0.058906,0.05301,0.051918,0.055412,0.24386,0.054539,0.05301,0.0517,0.059561,-0.37411,-0.37345,-0.37476,-0.37476,-0.37564 0.20753,0.085932,-0.03567,0.0048641,-0.35994,0.20753,0.085932,0.12647,-0.23834,-0.23834,0.20753,-0.03567,0.32914,-0.15727,-0.076204,0.2886,0.20753,-0.03567,-0.03567,-0.23834,0.32914,-0.03567,-0.15727,-0.076204,-0.35994 0.14237,0.14946,0.15167,0.11887,-0.37694,0.14857,0.14658,0.14414,0.11555,-0.3765,0.14303,0.13838,0.11532,0.11621,-0.37406,-0.059108,-0.058886,0.11643,0.11798,-0.37539,-0.058664,-0.058664,0.12286,0.12441,-0.37362 -0.016706,-0.011047,-0.014443,-0.04953,0.96688,-0.038212,-0.061981,-0.063113,-0.061981,0.010458,-0.065376,-0.069904,-0.064245,-0.058585,0.028568,-0.065376,-0.069904,-0.068772,-0.033684,0.033096,-0.059717,-0.069904,-0.064245,-0.048398,0.016118 0.24642,0.24994,0.23586,0.015775,-0.55467,0.21297,0.21473,0.10029,-0.017677,-0.098667,0.17952,0.17599,-0.038805,-0.08106,-0.14092,0.13198,0.12846,-0.0793,-0.2536,-0.20783,0.10733,0.098526,-0.12332,-0.26593,-0.236 -0.10563,-0.10667,-0.13782,-0.13159,-0.13263,0.30559,-0.10147,-0.13263,-0.13574,-0.13159,0.29313,0.30039,-0.1264,-0.13263,-0.13782,0.3087,0.33882,-0.10251,-0.13159,-0.13055,0.32012,0.36997,-0.10251,-0.12847,-0.12847 -0.12482,-0.14877,-0.10088,-0.0011173,-0.29243,-0.056985,-0.052994,0.038788,0.074703,-0.060975,-0.0011173,-0.068956,0.034797,0.022826,0.010854,-0.045013,-0.056985,0.014845,0.010854,-0.0011173,-0.052994,-0.037032,-0.017079,-0.0011173,0.91271 0.35376,-0.040298,-0.055827,-0.079121,-0.073298,0.0043482,-0.034475,-0.048063,-0.073298,-0.055827,-0.030593,-0.034475,-0.040298,-0.061651,-0.079121,-0.051945,-0.061651,-0.046122,-0.046122,-0.053886,0.89339,-0.055827,-0.069415,-0.086886,-0.073298 0.33621,0.31468,0.20338,0.12935,-0.12372,0.33621,0.26586,0.17975,-0.12004,-0.13632,0.32991,0.24223,-0.12214,-0.13947,-0.15732,-0.14945,-0.15207,-0.11794,-0.15312,-0.16887,-0.14945,-0.15312,-0.15207,-0.17045,-0.17202 0.47786,0.50227,0.27277,0.21417,0.263,-0.047073,-0.093462,0.094536,0.16534,-0.21066,-0.081254,-0.1252,-0.13008,-0.14718,-0.16915,-0.23995,-0.20333,-0.098345,-0.04219,-0.05928,-0.10811,-0.10811,-0.10323,-0.029982,0.006641 0.58116,-0.034358,-0.066939,-0.096003,-0.12081,0.51174,-0.030285,-0.071567,-0.097484,-0.11655,0.50526,-0.030471,-0.061571,-0.095262,-0.11544,-0.027324,-0.035099,-0.075269,-0.096188,-0.11803,0.0024806,-0.028064,-0.071567,-0.10045,-0.11192 -0.16424,-0.16953,-0.16183,-0.15991,-0.16135,-0.1628,-0.16135,-0.16183,-0.16087,-0.15847,-0.16808,0.23626,-0.16183,-0.16087,-0.15799,-0.16472,0.21126,0.21943,0.27328,0.26847,0.20453,0.21559,0.21991,0.28771,0.29924 0.075613,-0.047731,-0.064942,-0.090759,-0.10223,0.084219,-0.056337,-0.064942,-0.073548,-0.11084,0.067008,-0.047731,-0.073548,-0.093627,-0.11371,0.66365,-0.030521,-0.056337,-0.090759,-0.10223,0.64357,-0.064942,-0.064942,-0.082153,-0.10223 0.11775,0.20959,-0.066283,-0.061803,-0.27794,0.11215,0.20623,-0.065536,-0.068523,-0.27608,0.11551,0.20884,-0.070389,0.1898,-0.28056,0.11514,0.20361,0.19689,-0.2828,-0.28354,0.21108,0.20361,0.20511,-0.28093,-0.28093 0.15298,0.55264,0.55264,0.22148,0.17475,0.14108,0.20784,-0.11143,-0.1094,-0.11288,-0.10998,-0.10708,-0.1094,-0.1065,-0.10998,-0.10998,-0.11143,-0.11143,-0.11201,-0.11375,-0.1123,-0.11259,-0.11317,-0.11433,-0.11578 -0.0051997,-0.090367,-0.085884,-0.1083,-0.12174,0.15169,-0.02313,-0.085884,-0.1083,-0.11726,0.49684,-0.04106,-0.11278,-0.1083,-0.1083,0.24134,-0.045542,-0.081402,-0.099332,-0.099332,0.70752,0.093415,-0.072437,-0.090367,-0.085884 0.21136,0.20189,0.26577,-0.16194,-0.16147,0.26056,0.25299,-0.16478,-0.16242,-0.15958,0.25961,-0.16809,-0.16431,-0.16336,-0.16052,0.24731,0.24826,-0.16525,-0.16383,-0.15958,0.23075,0.26529,-0.16431,-0.16194,-0.16242 -0.088066,-0.088066,-0.045316,-0.034628,0.0081226,-0.066691,-0.098754,-0.045316,-0.088066,-0.013253,-0.10944,-0.098754,-0.077379,-0.045316,-0.013253,-0.088066,-0.098754,-0.077379,-0.002565,0.33944,-0.13082,-0.12013,-0.077379,0.38219,0.77763 -0.022508,-0.022508,-0.099238,-0.099238,-0.17597,-0.099238,0.054223,-0.073661,0.0030692,-0.12482,0.0030692,0.028646,-0.15039,-0.073661,-0.099238,0.028646,0.0030692,0.054223,-0.073661,-0.099238,0.82153,0.28441,0.23326,-0.12482,-0.17597 -0.41342,-0.40548,-0.3022,-0.15126,-0.040039,-0.34192,-0.20687,-0.11948,0.015571,0.11885,-0.11154,-0.047983,0.071181,0.15062,0.19034,0.039404,0.10296,0.11885,0.19034,0.1824,0.15857,0.19034,0.21418,0.20623,0.19034 -0.12492,-0.12471,-0.12597,-0.12639,-0.1266,-0.12492,-0.1245,-0.12576,-0.12492,-0.12639,-0.12281,-0.12408,-0.12386,-0.12492,-0.12555,0.32212,0.32275,-0.11986,-0.12323,-0.12555,0.32064,0.32001,0.32022,0.31938,0.3198 -0.090796,-0.043259,0.069642,0.010221,0.94908,-0.10268,0.016163,-0.031375,-0.031375,0.081527,-0.07297,-0.12051,-0.084854,-0.037317,-0.067028,-0.090796,-0.07297,-0.049201,0.0042784,-0.061086,-0.10268,-0.013548,-0.025433,-0.025433,-0.007606 0.22271,0.21457,0.20463,0.20373,0.20554,0.13234,0.12963,0.13957,0.15674,0.15583,-0.20926,0.063656,0.062752,0.077211,0.084441,-0.30866,-0.2933,0.033834,0.037449,0.037449,-0.34029,-0.33126,-0.31951,-0.30957,-0.050209 0.31089,0.30782,0.30498,0.30995,0.31727,-0.11009,0.11115,0.30876,0.31042,-0.15311,-0.11151,-0.10631,-0.15146,-0.15217,-0.15477,-0.10749,-0.15004,-0.15382,-0.15335,-0.15359,-0.10726,-0.10253,-0.10584,-0.15382,-0.15406 0.19501,0.18721,0.18614,-0.20615,-0.20828,0.19608,0.19253,0.18508,-0.20686,-0.20934,0.19608,0.19324,0.18827,-0.2065,-0.21005,0.19111,0.19608,0.19856,-0.21005,-0.21218,-0.19906,0.19217,-0.20721,-0.21005,-0.21182 0.22267,-0.16072,-0.18141,0.24554,0.21831,-0.16072,-0.18795,-0.16725,0.22811,0.21178,-0.18141,-0.18577,-0.16725,0.22811,0.22702,-0.19339,-0.19012,-0.16072,0.22702,0.22376,-0.18903,-0.18032,-0.1727,0.21831,0.22811 0.36159,0.34377,-0.076087,-0.1095,-0.12398,0.34377,0.36159,-0.087224,-0.11284,-0.13066,0.35491,-0.07386,-0.11284,-0.11729,-0.12843,0.36159,-0.078315,-0.11618,-0.12398,-0.13623,-0.11061,-0.10282,-0.11507,-0.134,-0.13734 0.18339,0.18922,0.19106,0.219,-0.20277,0.18677,0.19229,0.19598,-0.21044,-0.20829,0.18278,0.19137,-0.21044,-0.20522,-0.20737,0.18892,0.19413,-0.20829,-0.20952,-0.2086,0.19229,0.18953,-0.20891,-0.2086,-0.20829 -0.32557,-0.18215,-0.18215,-0.32557,-0.0028684,-0.038724,-0.218,-0.18215,-0.28971,-0.14629,-0.18215,0.068842,0.1047,-0.074579,0.032987,0.31983,0.21226,0.1047,0.14055,-0.0028684,0.14055,0.17641,0.31983,0.21226,0.31983 0.17186,0.17135,0.17843,-0.21073,-0.20214,0.17691,0.17236,0.17186,-0.1981,-0.20568,0.18954,0.19258,0.18348,-0.20416,-0.20568,0.18702,0.31387,0.18853,-0.20719,-0.20719,0.17843,-0.21579,-0.20467,-0.20618,-0.20871 -0.13604,-0.14219,-0.12988,-0.12988,-0.13296,-0.12527,-0.11758,-0.11758,-0.11758,-0.1145,-0.05759,-0.094507,-0.1022,-0.094507,-0.097583,0.37003,0.38541,-0.029902,-0.085277,-0.083739,0.39156,0.42848,0.39771,-0.014521,-0.049899 -0.1758,-0.087951,-0.061214,-0.040843,0.4366,-0.18726,-0.12105,-0.065034,-0.054848,0.44041,-0.1758,-0.065034,-0.072673,-0.065034,0.44423,-0.14906,-0.068853,-0.061214,0.020269,0.45569,-0.056121,-0.1045,-0.11596,-0.077765,0.0088103 -0.042188,-0.038753,-0.047341,-0.026728,0.97301,-0.067954,-0.047341,-0.035317,-0.007833,-0.01814,-0.069672,-0.074825,-0.057648,-0.0061152,-0.0026797,-0.064519,-0.064519,-0.052495,-0.030164,-0.023293,-0.098874,-0.01814,-0.026728,-0.023293,-0.028446 0.36703,0.36703,0.27244,0.39857,0.27244,0.020181,-0.042884,0.020181,0.051713,0.020181,0.020181,0.051713,-0.16901,0.051713,-0.29514,-0.074416,-0.074416,-0.10595,-0.16901,-0.074416,-0.10595,-0.10595,-0.3582,-0.042884,-0.29514 0.32103,0.32103,0.26411,0.30206,0.15027,0.22616,0.26411,0.093349,-0.077412,-0.21023,0.18822,0.093349,-0.039465,-0.15331,-0.17228,0.017456,-0.077412,-0.15331,-0.24817,-0.2292,-0.058438,-0.15331,-0.15331,-0.21023,-0.30509 -0.048239,0.14672,0.14207,0.12449,0.92399,-0.05703,-0.050307,-0.058065,-0.052376,-0.068925,-0.06065,-0.06065,-0.070476,-0.074613,-0.070993,-0.039448,-0.06065,-0.066339,-0.083404,-0.082887,-0.040482,-0.058582,-0.061685,-0.07875,-0.092713 -0.24772,-0.23033,0.1626,0.15738,0.15564,-0.24077,-0.2286,-0.22338,0.1626,0.15738,-0.26685,-0.23381,0.17998,0.16086,0.15738,-0.25815,-0.24946,0.16607,0.1626,0.1539,-0.26685,0.16607,0.16781,0.17303,0.1626 -0.074864,-0.088626,-0.19872,-0.22624,-0.25377,0.0077066,-0.074864,-0.061103,-0.19872,-0.25377,0.14533,0.076516,-0.019817,-0.11615,-0.15744,0.31047,0.13156,0.062754,-0.11615,-0.10239,0.55818,0.39304,0.17285,0.1178,-0.033579 -0.08671,-0.085681,-0.081565,-0.072818,-0.084652,-0.078992,-0.078992,-0.083623,-0.046062,-0.077449,-0.083109,-0.078478,-0.072303,-0.062527,-0.077449,0.56881,-0.074361,-0.068701,-0.058925,-0.07642,0.58528,0.46128,-0.064071,-0.051722,-0.07076 -0.083457,-0.064138,-0.10278,-0.18005,-0.31528,0.20632,0.051774,0.14837,-0.064138,-0.19937,0.20632,0.14837,-0.025501,-0.044819,-0.3346,0.12905,0.22564,0.071093,-0.14141,-0.29596,0.32224,0.38019,0.22564,0.013137,-0.27664 0.25034,-0.037407,-0.0014387,-0.073376,-0.037407,0.28631,0.10647,-0.0014387,-0.073376,-0.10934,0.43018,0.03453,-0.037407,-0.21725,-0.0014387,0.14243,0.10647,-0.073376,-0.28919,-0.18128,0.32228,0.10647,0.03453,-0.14531,-0.54097 0.53972,0.53972,0.2997,0.15361,-0.086405,0.25796,0.028384,-0.055099,-0.09684,-0.20119,0.038819,-0.09684,-0.086405,-0.086405,-0.12815,-0.0029219,-0.10728,-0.055099,-0.13858,-0.15945,-0.044663,-0.10728,-0.10728,-0.09684,-0.20119 -0.02613,-0.043691,-0.057739,-0.071788,0.95726,-0.029642,-0.043691,-0.057739,-0.089348,0.11084,-0.043691,-0.057739,-0.061251,-0.057739,0.019527,-0.029642,-0.047203,-0.057739,-0.10691,0.008991,-0.043691,-0.043691,-0.057739,-0.089348,0.019527 0.23508,0.23508,0.19033,0.19033,-0.0035799,0.29474,0.19033,0.14558,0.085917,-0.078161,0.30966,0.17541,0.085917,0.13067,-0.22732,-0.12291,-0.048328,-0.13783,-0.18257,-0.10799,-0.28699,-0.24224,-0.3019,-0.22732,-0.3019 0.18575,0.1938,0.11624,-0.28977,-0.28638,0.18278,0.10989,0.10946,-0.28977,-0.28892,0.17558,0.10395,0.11031,-0.29062,-0.28892,0.17346,0.10734,0.11285,-0.28468,-0.29104,0.16964,0.10522,0.10989,0.11794,0.12599 0.13876,0.13876,0.13161,-0.17366,-0.18631,0.12831,0.13326,-0.16266,-0.15991,-0.17971,0.14096,-0.15991,-0.16871,-0.17586,-0.19071,0.47318,0.14316,0.11676,-0.16761,-0.18521,0.46163,0.11841,0.12281,-0.17091,-0.16651 0.20825,0.20825,0.090595,0.12001,0.061181,-0.027061,0.17884,0.12001,0.031767,0.031767,0.061181,0.090595,0.090595,0.090595,0.0023531,0.17884,0.17884,0.090595,0.061181,0.0023531,-0.46827,-0.38003,-0.35061,-0.23296,-0.43885 0.11901,0.12203,0.18153,0.13709,0.13182,0.15969,0.11977,0.16797,0.13031,0.12579,0.15216,0.11977,0.14387,0.13333,0.12579,-0.29075,0.12579,-0.28398,0.12881,-0.26288,-0.29678,-0.30507,-0.30582,-0.28624,-0.29301 0.17824,0.13785,0.0099618,-0.010231,-0.5689,0.15804,0.090733,0.0099618,-0.050617,-0.5689,0.16477,0.097464,0.036886,-0.043886,-0.29966,0.17824,0.084002,0.030155,0.023424,-0.10446,0.22535,0.14458,0.11093,-0.0035001,-0.030424 -0.081095,-0.074199,-0.081095,-0.10523,-0.11557,-0.060407,-0.077647,-0.091438,-0.094886,-0.11557,-0.03972,-0.03972,-0.084543,-0.094886,-0.11557,0.47402,0.34645,-0.081095,-0.094886,-0.094886,0.51539,0.47402,-0.081095,-0.081095,-0.10523 -0.23516,-0.22007,-0.15215,-0.20497,-0.30308,-0.23516,-0.18233,-0.046489,-0.11441,-0.13705,-0.15969,-0.023848,0.112,0.044074,0.059168,-0.06913,0.02898,0.21011,0.25539,0.24029,-0.016301,0.066715,0.36105,0.40633,0.31576 -0.042709,-0.20697,-0.1796,-0.042709,0.39533,-0.070087,-0.1796,-0.1796,0.039424,0.45009,-0.070087,-0.12484,-0.15222,0.28582,0.23107,-0.097464,-0.097464,-0.1796,-0.070087,0.28582,-0.097464,-0.15222,-0.070087,-0.042709,0.36796 -0.28469,-0.28288,0.13871,0.094377,0.10161,-0.29645,-0.27926,0.11609,0.08533,0.093472,-0.3073,0.15228,0.15047,0.11428,0.12966,-0.29916,-0.20236,0.21199,0.14956,0.12604,-0.20236,-0.17522,0.24365,0.23551,0.18666 0.36242,0.33898,-0.11086,-0.12068,-0.1294,0.36024,0.34061,-0.11059,-0.11931,-0.12831,0.36106,-0.097503,-0.10705,-0.11931,-0.12722,0.36788,-0.095322,-0.10377,-0.11495,-0.12558,-0.083872,-0.091778,-0.10459,-0.11577,-0.12531 -0.11079,-0.094857,-0.072545,-0.040671,0.71155,-0.085295,-0.085295,-0.10123,-0.053421,0.36094,-0.085295,-0.085295,-0.12036,-0.10123,0.27488,-0.085295,-0.10761,-0.094857,-0.091669,0.34182,-0.10123,-0.098044,-0.091669,-0.06617,0.083637 -0.37822,0.15629,0.15629,0.17134,0.1864,-0.38575,0.035835,0.15629,0.15629,0.1337,-0.38575,0.088532,0.1337,0.15629,0.11865,-0.40833,0.073476,0.065948,0.096061,0.0057215,-0.34811,0.028306,0.028306,0.028306,-0.069561 0.35178,0.35296,-0.13784,-0.13114,-0.1406,0.35454,0.35513,-0.084054,-0.13055,-0.13252,0.35414,-0.099422,-0.088191,-0.12642,-0.13114,0.35552,-0.077552,-0.087994,-0.12957,-0.12602,-0.073414,-0.083463,-0.086024,-0.1341,-0.12405 -0.11959,-0.1235,-0.12285,-0.1222,-0.1235,-0.12416,-0.12741,-0.1222,-0.12546,-0.12546,-0.12546,-0.12741,-0.13197,-0.12611,-0.12937,0.31823,0.32345,-0.13393,-0.11699,-0.11699,0.31823,0.32279,0.32279,0.32019,0.31889 -0.22959,0.18073,0.18046,0.18011,0.1799,0.1772,0.17679,0.17727,0.17714,0.17651,0.1752,0.17506,0.1752,0.1752,0.17506,-0.22439,-0.22495,-0.22557,-0.22571,-0.22495,-0.22516,-0.22495,-0.22599,-0.22529,-0.22529 0.13663,0.13404,0.13015,0.13145,0.12627,0.13923,0.14182,0.13275,0.13923,0.12886,0.14182,0.14571,0.14182,0.13534,0.13145,0.14959,0.14441,-0.28192,-0.29359,-0.29747,-0.29488,-0.291,-0.26897,-0.30525,-0.29747 0.10212,0.099193,0.10212,0.10212,-0.35294,0.10212,0.098314,0.096263,0.099779,-0.35323,0.093626,0.093626,0.092454,-0.35616,-0.35089,0.096263,0.10271,0.099779,0.1197,-0.35059,0.1323,0.13289,0.11765,0.23281,-0.35206 -0.18437,-0.18286,-0.16781,0.1189,0.25699,-0.18851,0.25021,-0.16781,0.12341,0.24984,-0.18851,-0.17007,-0.16668,0.26677,0.26188,-0.18512,-0.16781,-0.1633,0.22877,0.26075,-0.17835,-0.16932,-0.16443,0.21296,0.21447 0.28122,0.22769,0.24554,0.13847,-0.0042826,0.24554,0.3526,0.13847,-0.022127,-0.12919,0.22769,0.15631,-0.039971,-0.11135,-0.23626,0.22769,-0.093503,-0.14704,-0.23626,-0.18272,-0.075659,-0.16488,-0.21841,-0.32548,-0.2541 0.33743,0.33685,0.33274,0.31516,0.30226,-0.1201,-0.12069,-0.11952,0.31486,0.30402,-0.12362,-0.12362,-0.12362,-0.12538,-0.12186,-0.12538,-0.12714,-0.12655,-0.12831,-0.12596,-0.12596,-0.12655,-0.12655,-0.12538,-0.12714 -0.080296,-0.064259,-0.12039,0.37144,0.29125,-0.14445,-0.14979,-0.12574,-0.064259,0.2859,-0.14712,-0.11772,-0.085642,-0.085642,0.32332,-0.15514,-0.085642,-0.10703,-0.048221,0.33936,-0.14979,-0.14445,-0.11505,-0.096334,0.47568 0.1432,0.14198,0.12851,0.16279,0.14075,0.061169,0.053823,0.15177,0.31583,0.18483,0.024438,0.021989,0.034233,0.34032,0.12361,-0.0073951,-4.8974e-05,0.021989,-0.25349,-0.27675,-0.30369,-0.30124,-0.30124,-0.30124,-0.30614 -0.22529,-0.22284,-0.21977,-0.18236,-0.14189,-0.22897,-0.20935,-0.221,-0.18114,-0.057869,0.27698,-0.21364,0.11692,-0.17255,-0.04867,0.29047,0.12489,0.11201,0.13409,0.12734,0.31255,0.33586,0.12366,0.12489,0.2457 -0.31485,-0.31485,-0.41407,-0.41407,-0.41407,0.11509,0.015875,-0.017198,0.14817,0.11509,0.11509,0.048948,-0.017198,0.11509,-0.017198,0.18124,0.14817,0.11509,0.11509,-0.050271,0.21431,0.11509,0.21431,0.11509,0.08202 -0.071021,-0.068017,-0.084707,-0.086042,-0.091383,-0.075027,-0.082036,-0.092718,-0.10974,-0.10073,0.44071,-0.082036,-0.12243,-0.11809,-0.095723,0.44404,0.12659,-0.1241,-0.11876,-0.09639,0.44905,0.44838,-0.055666,-0.11809,-0.11608 0.30231,0.30901,0.27015,0.27283,-0.13184,0.30204,0.30901,0.29561,0.26881,-0.13265,-0.1364,-0.13801,-0.1364,-0.13747,-0.13693,-0.13747,-0.13747,-0.13801,-0.13693,-0.13961,-0.13854,-0.13801,-0.13854,-0.13747,-0.13801 0.15915,0.16056,-0.20735,-0.21619,-0.22503,0.20637,0.20557,0.20356,-0.21136,-0.2198,0.20336,0.20175,0.21521,-0.20976,-0.21378,0.20477,0.11756,0.12118,0.11435,-0.21398,0.21803,0.12037,-0.24452,-0.24472,-0.24532 -0.093475,-0.099081,-0.14144,-0.13973,-0.13101,0.34291,-0.095499,-0.075098,-0.13817,-0.12213,0.35615,-0.064507,-0.071827,-0.12104,-0.12026,0.36487,0.34415,-0.11419,-0.12353,-0.12151,0.36269,0.35412,-0.1078,-0.11902,-0.12556 -0.13626,-0.13468,-0.13263,0.27373,0.27626,-0.13595,-0.13516,-0.13405,-0.13342,0.27073,-0.13674,-0.135,-0.138,0.27373,0.27215,-0.13263,-0.13579,-0.13784,-0.14069,0.35261,-0.14164,-0.13927,-0.13974,0.24829,0.35197 -0.25855,-0.21031,-0.18839,-0.16646,-0.184,-0.25416,-0.2147,-0.18839,0.035257,-0.17085,-0.23224,-0.14015,0.013331,0.22382,-0.017365,-0.083143,0.2589,0.24574,0.2589,0.18435,0.13612,0.32029,0.24136,0.18874,0.20189 0.44681,0.45589,-0.021077,-0.098301,-0.13918,0.46043,0.44226,-0.10284,-0.098301,-0.11193,0.033433,-0.089216,-0.093758,-0.093758,-0.13918,-0.048333,-0.057418,-0.084673,-0.098301,-0.071046,-0.075588,-0.093758,-0.10739,-0.10284,-0.11193 -0.27945,-0.17093,-0.089533,0.032558,0.08682,-0.36085,-0.089533,-0.075968,0.018992,0.073254,-0.37441,0.0054263,0.046123,0.08682,0.22248,-0.26589,0.073254,0.11395,0.18178,0.26317,-0.36085,0.14108,0.15465,0.26317,0.30387 0.40123,0.27197,0.22026,0.039296,-0.038261,0.53049,0.32367,0.16856,-0.012409,0.039296,-0.038261,-0.11582,-0.064114,-0.11582,-0.038261,-0.16752,-0.14167,-0.16752,-0.089966,-0.14167,-0.16752,-0.24508,-0.11582,-0.14167,-0.19338 -0.14269,-0.1506,-0.10315,-0.12687,-0.14269,-0.10315,-0.11106,-0.16642,-0.13478,-0.15851,-0.087325,-0.11897,-0.14269,-0.10315,-0.14269,-0.079415,-0.0082263,0.16579,0.19743,0.13415,0.19743,0.10251,0.1737,0.42682,0.62457 0.024058,0.043564,0.085828,0.28414,0.3069,-0.21327,0.033811,0.040313,0.21587,0.31015,-0.25228,-0.22627,0.024058,0.13134,0.23213,-0.34006,-0.25553,-0.0019506,0.033811,0.22562,-0.33031,-0.26854,-0.14825,0.0078026,0.037062 0.0061426,-0.31379,-0.22421,-0.32658,-0.44176,0.12132,-0.10903,-0.13463,-0.14742,-0.237,0.22369,0.12132,0.0061426,0.01894,-0.07064,0.2109,0.2109,0.14691,-0.0066545,-0.057843,0.28768,0.26209,0.23649,0.1853,0.031737 -0.13124,-0.14082,-0.16103,0.31347,0.3124,-0.12592,-0.13018,-0.14827,-0.13763,0.31028,-0.12911,-0.12486,-0.14082,-0.14827,0.31772,-0.1238,-0.12805,-0.13763,0.23367,0.31134,-0.13443,-0.14082,-0.13656,0.22942,0.29113 -0.03637,0.32733,0.18185,0.03637,0.32733,0.21822,0.18185,0.21822,0.072739,0.072739,0.14548,0.03637,0,0.25459,0.10911,-0.21822,-0.32733,-0.10911,-0.21822,-0.072739,-0.25459,-0.25459,-0.25459,-0.25459,-0.18185 -0.21019,-0.1932,-0.16602,-0.17621,-0.17281,-0.1898,-0.16432,-0.14903,-0.17791,-0.11335,-0.13544,-0.15752,0.16867,-0.10316,0.036153,0.26041,-0.11505,-0.12524,0.29269,0.16867,0.2672,0.30458,0.29948,0.2757,0.2757 -0.1391,-0.1388,-0.10723,-0.11144,-0.20556,0.26684,-0.10603,-0.10723,-0.10903,-0.20616,0.27105,0.27346,-0.10603,-0.10723,-0.10994,0.35314,0.27646,-0.10392,-0.10543,-0.10813,0.46801,0.27737,-0.10482,-0.10543,-0.10482 0.50669,0.28356,0.077583,0.02609,0.077583,0.38654,0.077583,-0.16272,-0.094061,-0.14555,0.30072,0.0089255,-0.19705,-0.076897,-0.076897,0.23206,-0.16272,-0.16272,-0.11123,-0.21421,0.094748,-0.076897,-0.19705,-0.17988,-0.21421 0.54097,-0.071131,-0.14764,-0.11071,0.013297,0.55153,-0.10279,-0.17667,-0.19513,-0.11334,0.25603,-0.028917,-0.16347,-0.14764,-0.12917,0.16368,0.16368,-0.094876,-0.089599,-0.17139,0.12939,0.063427,0.0027439,-0.0051712,-0.13709 -0.12366,-0.125,-0.12968,-0.12545,-0.12678,-0.12277,-0.12411,-0.12612,-0.12745,-0.12545,-0.12366,-0.12411,-0.12411,-0.12366,-0.12456,0.32955,0.30905,-0.12099,-0.12322,-0.12277,0.31128,0.31217,0.31284,0.32019,0.34849 0.39816,0.43374,0.077898,-0.15502,-0.16472,0.40786,0.1151,0.08922,-0.16634,-0.15987,0.13613,0.094072,-0.16149,-0.17119,-0.16634,0.11025,0.22509,-0.17605,-0.17281,-0.13723,0.12319,-0.12914,-0.17443,-0.16958,-0.10649 -0.13588,-0.13777,-0.13777,-0.13683,-0.13635,-0.13635,-0.13683,-0.13635,-0.13588,-0.13825,-0.13446,-0.13683,-0.1373,-0.1373,-0.1373,-0.13209,0.28295,0.33219,0.32935,-0.13872,0.26069,0.26022,0.2614,0.26211,0.33338 -0.03409,-0.021417,-0.072109,-0.089535,0.1164,-0.10696,-0.084782,-0.095871,-0.048348,0.17185,-0.054684,-0.092703,-0.10696,-0.12914,-0.12597,-0.095871,-0.091119,-0.095871,-0.14498,0.081551,0.051452,0.016602,0.035611,0.13383,0.88312 -0.039625,-0.047576,-0.038035,-0.047576,0.59164,-0.046781,-0.049961,-0.045191,-0.045191,0.62663,-0.108,-0.050756,-0.0436,-0.045191,0.33166,-0.1239,-0.11913,-0.053141,-0.053141,0.013643,-0.14696,-0.14219,-0.14219,-0.088918,-0.086533 -0.071685,-0.072152,-0.074488,-0.073553,-0.073086,-0.072619,-0.068882,-0.071217,-0.074021,-0.073086,-0.073553,-0.07075,-0.07075,-0.071685,-0.072152,0.61741,-0.072152,-0.073086,-0.071685,-0.072152,0.61508,0.35485,-0.071685,-0.070283,-0.072619 0,-0.15337,-0.24283,-0.34508,-0.30674,0.17893,0.14059,-0.15337,-0.28117,-0.35786,0.20449,0.15337,0.12781,-0.076684,-0.28117,0.17893,0.17893,0.17893,0.12781,-0.076684,0.19171,0.17893,0.15337,0.19171,0.089465 0.21824,-0.19117,-0.1984,-0.19539,-0.20201,0.21463,0.19597,-0.19117,-0.19419,-0.19298,0.21644,0.21584,-0.18937,-0.18576,-0.1984,0.21644,0.21644,0.19597,-0.18395,-0.199,0.21885,0.21523,0.20379,0.16586,-0.17191 -0.14965,-0.1453,-0.13754,0.28459,0.24948,-0.16939,-0.13583,-0.13614,0.28537,0.25787,-0.16876,-0.13567,-0.13598,0.28708,0.25601,-0.17094,-0.17016,-0.13785,0.25865,0.25632,-0.16923,-0.13676,-0.13754,0.25834,-0.15696 0.3231,0.34201,0.33405,0.33405,0.28927,-0.10874,-0.11272,-0.1356,0.30221,0.31614,-0.11073,-0.11769,-0.12565,-0.12565,-0.12068,-0.12366,-0.13461,-0.1356,-0.13859,-0.13063,-0.12466,-0.12864,-0.12864,-0.12963,-0.10874 -0.056,-0.094532,-0.10738,0.059596,0.50914,-0.030312,-0.13306,-0.18444,-0.068844,0.43207,-0.056,-0.1716,-0.14591,-0.068844,0.41923,0.021064,-0.10738,-0.14591,-0.14591,0.3807,-0.030312,-0.068844,-0.12022,-0.12022,0.033908 0.78827,0.16211,-0.011828,0.022959,-0.098795,0.40561,-0.029221,-0.046614,-0.13358,-0.029221,0.057746,-0.13358,-0.11619,-0.13358,-0.064008,0.10993,-0.13358,-0.064008,-0.064008,-0.064008,0.0055659,-0.098795,-0.16837,-0.029221,-0.13358 0.30897,0.22614,0.18472,0.081178,-0.0016567,0.081178,0.32968,0.22614,0.24685,0.039761,0.019052,0.039761,0.20543,0.039761,0.060469,-0.18803,-0.25016,-0.022365,-0.16733,-0.31229,-0.14662,-0.12591,-0.18803,-0.37441,-0.31229 -0.36332,-0.35916,-0.34809,-0.37578,-0.3467,0.11706,0.11153,0.11706,0.11568,-0.34117,0.11845,0.10737,0.11706,0.11014,0.11291,0.11706,0.11429,0.11014,0.11014,0.1046,0.11429,0.11014,0.11014,0.11014,0.10599 0.051804,-0.091429,-0.094663,-0.10067,-0.084498,0.053652,-0.069251,-0.084498,-0.090505,-0.082188,0.055501,0.056887,-0.085422,-0.091429,-0.088657,0.57299,0.055039,-0.081726,-0.084036,-0.091429,0.72084,-0.089581,-0.089119,-0.089119,-0.078492 0.20984,0.25392,0.033504,-0.231,-0.31917,0.25392,0.077588,0.12167,0.077588,-0.27508,0.29801,0.077588,-0.054664,-0.01058,-0.231,0.38618,-0.054664,0.20984,-0.01058,-0.231,0.077588,0.033504,-0.231,-0.231,-0.231 -0.37113,-0.37417,-0.37417,-0.37417,-0.37265,0.19787,0.15632,0.091971,0.025597,-0.011897,0.20395,0.15632,0.10717,0.028637,-0.010377,0.20749,0.15429,0.088931,0.024584,-0.014937,0.20749,0.15936,0.084878,0.024584,-0.01595 -0.42816,-0.38916,-0.39306,-0.35797,-0.33457,0.20355,0.14896,0.074869,0.055372,0.020277,0.19185,0.13726,0.086567,0.039774,0.012478,0.19185,0.14116,0.090466,0.035875,0.0046793,0.18795,0.14506,0.094366,0.039774,0.00077988 -0.19594,-0.18812,0.14718,0.1853,0.16575,-0.21744,-0.19203,0.020098,0.16477,0.1765,-0.21549,-0.20767,0.15109,0.15891,0.38569,-0.22135,-0.193,-0.1539,-0.17052,0.38569,-0.21255,-0.16368,0.15402,0.15011,0.08657 0.13312,0.15263,0.16807,0.081244,0.27616,0.15466,0.16698,0.086256,0.082734,0.30203,-0.17517,0.083817,0.083411,0.082598,0.082598,-0.16948,-0.17706,0.082734,0.082327,0.081515,-0.33215,-0.33175,-0.33446,-0.33202,-0.3308 0.2404,0.14147,0.087882,-0.0069251,-0.28722,0.20948,0.1662,0.06315,0.0095632,-0.10998,0.21154,0.1559,0.061089,-0.060512,-0.34906,0.20124,0.14147,0.044601,-0.023413,-0.15738,0.19918,0.14353,-0.40676,-0.38409,-0.29135 0.25411,-0.15519,-0.13779,-0.16526,-0.19456,0.29074,0.1946,-0.17716,-0.16068,-0.1735,0.32828,-0.15244,-0.14511,0.036187,-0.13779,0.2999,0.2184,0.094789,0.035271,-0.17625,0.3466,0.2184,-0.16068,-0.18723,-0.19364 -0.36415,-0.35928,-0.37147,-0.3739,-0.36172,0.1989,0.13796,0.094085,0.0087748,-0.035099,0.23058,0.13796,0.084336,0.033149,-0.052161,0.21596,0.16233,0.084336,0.016087,-0.027787,0.23058,0.16965,0.11358,0.040462,-0.013162 -0.12656,-0.12419,-0.1252,-0.12487,-0.12588,-0.12284,-0.12419,-0.12352,-0.12419,-0.12791,-0.12216,-0.12284,-0.12318,-0.12554,-0.12453,-0.12284,-0.12487,-0.1225,0.33078,0.27877,0.37672,0.31491,0.31795,0.33247,0.2862 0.37066,-0.077097,-0.004804,-0.11791,-0.19253,0.41263,-0.094588,0.01152,-0.10508,-0.2007,0.4173,0.21907,-0.038619,-0.14123,-0.1902,0.37182,0.19692,-0.033955,-0.1389,-0.18904,-0.10625,-0.057275,-0.016464,-0.10508,-0.1902 -0.26644,-0.27579,0.22209,0.26882,0.0921,-0.2571,-0.27154,0.19321,0.11504,0.080205,-0.26729,-0.25965,0.11844,0.081055,0.096348,-0.25455,0.12014,0.083603,0.16517,0.17961,-0.25285,-0.23586,0.17451,0.17876,0.17196 0.15317,-0.24355,-0.2608,-0.19827,-0.20906,-0.027943,-0.21552,-0.2414,-0.23062,-0.19181,0.0065545,0.064769,-0.23062,-0.15084,-0.10341,0.12298,0.16611,0.17689,0.25666,0.23726,0.21785,0.16395,0.13592,0.23079,0.37094 0.074836,0.2124,0.01981,0.01981,-0.090243,0.18489,0.26743,0.12986,-0.0077037,-0.11776,0.32246,0.26743,0.01981,-0.090243,-0.33786,0.10235,0.18489,-0.11776,-0.090243,-0.31035,0.26743,-0.035217,-0.2003,-0.36538,-0.31035 -0.24239,-0.24547,-0.24485,-0.24454,-0.24423,0.17757,-0.24239,-0.24454,-0.24577,-0.243,0.19174,0.1788,0.17695,0.18312,-0.24393,0.18373,0.17942,0.16186,0.18188,0.13782,0.14152,0.13782,0.13782,0.13598,0.13505 -0.28842,-0.28931,0.069512,0.06826,0.16266,-0.28877,-0.28949,0.15014,0.14925,0.15604,-0.28842,-0.28609,0.14925,0.14639,0.14621,-0.29181,0.15729,0.14836,0.1455,0.14371,-0.29145,0.1471,0.15372,0.14532,0.075054 -0.29497,-0.25354,0.16074,0.28503,0.2436,-0.29497,-0.29497,-0.087829,0.11931,0.2436,-0.41926,0.077886,0.036457,0.16074,0.16074,-0.12926,0.077886,0.11931,0.077886,0.16074,-0.21211,-0.21211,0.077886,0.036457,0.16074 0.30432,0.18153,0.18011,0.035495,0.023962,0.30875,0.18313,0.18135,0.029817,0.020413,0.079856,0.18437,0.084646,0.023252,0.016687,0.029107,0.026446,0.024671,0.020235,-0.31389,-0.32365,-0.32365,-0.32294,-0.32577,-0.32826 -0.12438,-0.12448,-0.12379,-0.12409,-0.12399,-0.12369,-0.12399,-0.12379,-0.12438,-0.12399,-0.12438,-0.12409,-0.12409,-0.12429,-0.12349,-0.12389,-0.12389,-0.12119,0.30146,0.30166,0.37014,0.28509,0.28579,0.40129,0.28439 -0.2524,-0.26913,-0.091152,-0.034866,0.35152,-0.26761,-0.22806,-0.054642,-0.025739,0.34392,-0.059206,-0.068333,-0.22502,0.0046854,0.36065,-0.045515,-0.040951,-0.06377,0.0046854,0.35457,-0.03943,0.01077,-0.057685,-0.004442,0.39716 -0.041278,-0.016481,-0.019647,-0.012261,0.978,-0.054995,-0.041278,-0.043915,-0.033891,-0.039695,-0.043915,-0.051829,-0.048664,-0.043388,-0.043388,-0.030198,-0.050774,-0.042333,-0.054467,-0.053412,-0.022812,-0.034947,-0.044443,-0.057105,-0.052884 -0.27975,-0.29025,0.16491,0.19117,0.18767,-0.285,-0.292,0.15616,0.18242,0.18854,-0.28325,-0.29288,0.14915,0.094884,0.11414,-0.28325,0.096635,0.11327,0.095759,0.10889,-0.29813,0.16316,0.10539,0.09751,0.094884 -0.22807,-0.21988,0.18396,0.2062,-0.082922,-0.23977,-0.20583,0.19801,0.1863,0.20035,-0.23743,-0.21402,0.24717,0.17811,0.14299,-0.24446,-0.2187,0.27995,0.18162,0.12309,-0.24446,-0.16018,-0.13208,0.20035,0.099684 0.26698,0.26698,0.24651,0.23457,0.22263,0.27209,-0.1748,0.24651,0.23457,0.21751,-0.13045,-0.15092,-0.16798,-0.14069,0.22775,-0.14069,-0.17139,-0.16457,-0.1458,-0.15263,-0.19698,-0.21233,-0.18845,-0.14922,-0.14922 -0.24364,-0.24391,0.074006,0.17825,0.17485,-0.24364,-0.24323,-0.24637,0.17594,0.17539,-0.24364,-0.24337,0.17621,0.17594,0.17621,-0.2431,-0.24296,0.15672,0.15509,0.15645,-0.24391,0.17348,0.1728,0.16108,0.15536 -0.13998,-0.12426,-0.071876,-0.019488,0.0067056,-0.17665,-0.11902,-0.071876,-0.024727,0.027661,-0.1557,-0.13998,-0.05616,-0.0090107,0.36818,-0.19237,-0.10855,-0.071876,0.0067056,0.47296,-0.16617,-0.11379,-0.019488,0.41533,0.48343 0.25801,0.29306,0.1879,0.08273,0.1879,0.1879,0.25801,0.25801,0.22295,0.08273,-0.1276,-0.022435,0.08273,0.01262,0.01262,-0.16266,-0.30288,-0.40804,-0.16266,-0.1276,0.047675,-0.23277,-0.16266,-0.26782,-0.19771 -0.059844,0.059476,0.09619,0.12373,0.16044,-0.23423,0.09619,0.14208,0.09619,0.1329,-0.28931,0.013584,0.14208,0.09619,0.09619,-0.49123,-0.096557,0.10537,0.10537,0.15126,-0.52795,-0.28931,0.068655,0.16044,0.14208 -0.054007,0.32277,-0.16899,-0.17124,-0.1761,0.32315,0.023146,0.025019,-0.16974,-0.17648,0.32764,0.032884,-0.16337,-0.17498,-0.1761,0.32689,0.023146,-0.16599,-0.1791,-0.17086,0.32989,0.32764,0.020899,0.031011,-0.16712 -0.044941,-0.0061987,-0.039887,0.00053902,0.97751,-0.043256,-0.014621,-0.044941,-0.051678,-0.053363,-0.051678,-0.034834,-0.044941,-0.043256,-0.056732,-0.039887,-0.039887,-0.051678,-0.049994,-0.044941,-0.046625,-0.046625,-0.039887,-0.046625,-0.041572 0.11259,0.11083,0.11288,-0.19957,-0.20191,0.11347,0.11083,0.11054,-0.20133,-0.20367,0.5082,0.10849,-0.20191,-0.20133,-0.20367,0.1079,0.10732,0.11962,-0.20045,-0.20338,0.10702,0.37672,0.11844,-0.20308,-0.20455 -0.13655,-0.088242,-0.035909,0.028502,0.37873,-0.17278,-0.1446,-0.068114,0.1855,0.41899,-0.18888,-0.1607,-0.031883,0.072784,0.41899,-0.18486,-0.18888,0.056681,-0.068114,0.41496,-0.15668,-0.16876,-0.023832,-0.12045,-0.035909 0.11407,0.032123,-0.28337,-0.35303,-0.33254,0.12636,0.10997,0.019831,-0.34893,-0.36942,0.17143,0.15914,0.10997,0.015734,-0.34893,0.15914,0.15504,0.13456,0.097681,-0.082603,0.17143,0.17553,0.16734,0.13865,0.060805 0.24156,-0.14578,-0.15183,-0.15889,-0.10543,0.24358,-0.14376,-0.14981,-0.17705,-0.1256,0.26073,0.40094,-0.11148,-0.16494,-0.14981,0.26275,0.29402,0.05798,-0.16091,-0.12762,0.40094,0.093284,-0.10341,-0.15385,-0.1256 -0.39116,-0.3953,-0.39116,-0.39219,-0.40358,0.10876,0.12429,0.12325,0.11911,0.10773,0.14706,0.15016,0.14499,0.13981,0.095306,0.1305,0.046659,0.06736,0.1129,0.08806,0.05908,0.047694,0.040449,0.053904,0.066325 -0.0059914,-0.079854,-0.082503,-0.082209,-0.082797,-0.0054029,-0.0042258,0.016079,0.017256,-0.083974,-0.0042258,-0.00658,-0.0042258,-0.085446,-0.090743,-0.0048143,0.0025425,0.011076,-0.093685,-0.098099,-0.0054029,0.0096051,-0.091625,-0.10016,0.9554 -0.16908,-0.16852,-0.16941,0.24006,-0.098502,-0.16841,-0.16841,-0.16819,0.24338,0.23495,-0.16708,-0.1673,-0.16519,0.24771,0.23972,-0.16775,-0.16808,-0.16364,0.24871,0.24072,-0.16708,-0.16664,0.2567,0.25725,0.23406 0.076315,0.049764,0.038385,0.072522,0.92215,-0.10196,-0.090576,-0.071611,0.00045516,0.00045516,-0.086783,-0.11713,-0.094369,-0.060233,0.01942,-0.090576,-0.10575,-0.12851,-0.048854,0.023213,-0.13609,-0.11713,-0.041268,0.038385,0.049764 0.12833,0.2177,0.25437,0.26811,-0.18791,0.14895,0.17416,0.12833,-0.19478,-0.26582,0.15812,0.17416,0.15812,-0.23145,-0.28874,0.15354,0.14666,-0.19708,-0.26811,-0.26124,0.10312,0.11229,0.054998,-0.21999,-0.26582 0.14693,0.26634,0.2474,0.19454,0.15008,-0.024304,0.15534,0.16087,0.17349,0.16455,-0.020095,-0.020621,0.16034,0.17718,0.15377,-0.28602,-0.019832,-0.0019464,-0.29207,-0.30574,-0.28286,-0.022726,-0.28786,-0.28944,-0.29733 0.027768,0.041222,0.025078,0.0089332,0.019696,0.051985,0.051985,0.060057,0.051985,-0.26552,0.10311,0.086964,0.086964,0.076201,-0.3597,0.11925,0.13002,0.10849,0.11118,-0.45118,0.14347,0.13809,0.14078,0.13809,-0.64491 0.095577,0.1333,0.13301,0.3579,0.087802,0.10191,0.13099,0.35157,0.35214,0.35329,-0.17769,-0.17826,-0.17999,0.095001,0.092985,-0.17625,-0.17683,-0.17769,-0.17596,-0.17942,-0.16646,-0.1702,-0.1751,-0.1751,-0.17654 -0.35608,-0.36138,-0.36226,-0.36094,-0.36094,-0.21243,0.014763,0.032443,0.16548,0.16548,0.012553,0.022277,0.025813,0.16946,0.16725,0.029349,0.031559,0.1677,0.16637,0.16593,0.027581,0.15664,0.1646,0.16814,0.16062 -0.23068,-0.23008,0.1674,0.42858,0.14098,-0.23548,-0.22588,0.11756,0.16259,0.13137,-0.22047,-0.22888,-0.24329,0.16319,0.13738,-0.20006,-0.22888,0.14938,0.15299,0.14458,-0.19886,-0.13221,0.15479,0.15479,0.1692 -0.033501,-0.022694,-0.033501,-0.025396,-0.033501,-0.068623,-0.065921,-0.065921,-0.055114,-0.044307,-0.13887,-0.068623,-0.055114,-0.044307,-0.011887,-0.1983,0.13941,0.058356,0.052953,0.04755,-0.23072,-0.071324,-0.006484,0.071865,0.90398 -0.10405,-0.088026,-0.066661,0.12563,0.65443,-0.098709,-0.055978,-0.066661,-0.088026,0.65977,-0.093368,-0.061319,-0.077343,-0.077343,0.056191,-0.072002,-0.077343,-0.055978,-0.066661,-0.093368,-0.10939,-0.050636,-0.034612,-0.023929,-0.034612 0.058185,0.06005,0.26333,0.27265,-0.39406,0.061915,0.088024,0.088956,0.27638,-0.38846,0.048861,0.052591,0.054455,0.06751,-0.36888,0.052591,0.069375,0.077767,0.061915,-0.37261,0.040469,0.054455,0.07497,0.058185,-0.35862 0.33131,0.3248,0.31829,0.31643,0.31643,-0.11965,-0.12616,-0.10663,0.31829,0.31643,-0.12523,-0.14382,-0.13267,-0.10198,-0.11221,-0.1336,-0.14103,-0.13546,-0.11314,-0.11872,-0.14196,-0.12895,-0.11965,-0.12151,-0.11965 -0.31919,0.18816,0.14448,0.14112,0.11424,-0.31919,0.15456,0.16464,0.13776,0.13776,-0.31919,-0.28896,0.14112,0.12432,0.12096,-0.33263,-0.2688,0.10752,0.1344,0.12768,-0.2856,-0.168,0.11424,0.13104,0.1176 -0.1144,-0.12505,-0.12387,-0.12466,-0.12348,0.052185,-0.12308,-0.12387,-0.1215,-0.12229,0.048632,-0.114,-0.114,-0.11203,-0.11282,0.064817,0.061659,0.066001,0.054554,0.060869,0.064422,0.067975,0.064817,0.070738,0.87838 0.15819,0.088012,-0.02194,-0.024726,-0.41741,0.16224,0.1701,0.085225,-0.029287,-0.41766,0.1663,0.17339,-0.023966,-0.0227,-0.41766,0.16984,0.16984,-0.02422,-0.0227,-0.41766,0.16782,0.052797,0.22609,-0.02118,0.071291 -0.16894,-0.060644,-0.024546,0.11984,0.19204,-0.096741,-0.31333,-0.13284,0.11984,0.22814,-0.24113,-0.34942,0.11984,0.011551,0.40862,-0.13284,0.011551,-0.096741,0.11984,0.26423,-0.16894,-0.27723,0.083746,0.011551,0.37253 0.48175,0.57044,-0.044763,-0.1127,-0.13346,0.44778,0.21943,-0.10892,-0.13534,-0.086279,0.025061,0.0024155,-0.073069,-0.14855,-0.10704,-0.065521,-0.022117,-0.031553,-0.13346,-0.12591,-0.080618,-0.016456,-0.11836,-0.14289,-0.05986 -0.17575,-0.18056,0.22715,0.22138,0.22074,-0.17575,-0.17767,0.22586,0.22202,0.22266,-0.17543,-0.17575,-0.17959,0.22266,0.22779,-0.17607,-0.17703,-0.17895,0.22458,0.23035,-0.17703,-0.17639,-0.17767,-0.17799,0.23644 -0.11294,-0.31181,-0.33804,-0.30744,-0.12824,-0.1195,-0.11731,-0.11731,-0.28996,-0.086716,-0.082345,0.11215,-0.31618,0.16023,0.15805,0.17116,0.20394,0.19957,0.18209,0.19957,0.18209,0.18209,0.20831,0.19083,0.17772 -0.14331,-0.1506,-0.089836,-0.1506,-0.046085,-0.17977,-0.16032,-0.094697,-0.11171,-0.033932,-0.055807,-0.099559,-0.0096253,0.036557,0.038987,0.099753,-0.016917,-0.06796,0.056002,0.01225,0.090031,0.085169,0.075447,0.029265,0.88728 0.21737,0.21481,0.21225,0.20816,0.20816,0.21225,0.20816,0.20611,0.20356,-0.16724,0.20202,0.20151,0.20202,-0.18617,-0.18821,-0.20151,-0.19844,-0.19026,-0.19026,-0.1923,-0.20253,-0.19691,-0.19793,-0.18924,-0.19537 0.2714,0.26022,0.25774,0.26146,0.2565,0.27015,0.26891,0.26146,-0.11092,-0.098509,0.2776,-0.1072,-0.098509,-0.15188,-0.16802,-0.1494,-0.15685,-0.16554,-0.16802,-0.16802,-0.16554,-0.16554,-0.17174,-0.16802,-0.17174 -0.2708,-0.27164,-0.28341,-0.27921,-0.27501,-0.26744,-0.26996,0.17897,-0.28005,-0.02322,0.11928,0.17939,0.17729,0.17813,-0.014393,0.17644,0.17686,0.17771,0.17644,-0.010189,0.17981,0.17981,0.17897,0.17813,-0.011871 -0.17158,-0.17158,-0.17286,0.22566,0.22694,0.21886,-0.17392,-0.17371,0.24437,0.22354,-0.17456,-0.17413,-0.17498,0.20845,0.22205,-0.17732,-0.17562,-0.17477,0.2365,0.22991,-0.20665,-0.17711,-0.18072,0.21674,0.22651 -0.57906,-0.35581,-0.26995,-0.20126,-0.18409,-0.1154,-0.081054,-0.012364,-0.012364,-0.063882,0.12502,0.10784,0.056326,0.0048083,0.056326,0.22805,0.22805,0.15936,0.021981,0.0048083,0.31391,0.24522,0.17653,0.10784,0.039153 -0.057375,0.12192,0.062156,0.062156,0.21157,-0.26656,-0.14702,0.032273,0.0023906,0.27134,-0.26656,-0.087258,0.092039,0.12192,0.24145,-0.3562,-0.087258,0.032273,0.12192,0.12192,-0.59527,-0.087258,0.092039,0.18169,0.18169 -0.18756,-0.18756,-0.23853,-0.085627,-0.21305,-0.11111,-0.085627,-0.11111,-0.1366,-0.23853,-0.0091744,-0.1366,-0.085627,-0.085627,-0.23853,0.1947,0.22018,0.16922,0.14373,0.39858,0.22018,0.16922,-0.060143,0.29664,0.39858 -0.092204,-0.087896,-0.08445,0.29162,0.2158,-0.14821,-0.087035,-0.085312,-0.090912,0.21408,-0.14993,-0.087035,0.21063,0.20977,0.21494,-0.3455,-0.092204,-0.081865,0.21279,0.22356,-0.35843,-0.35929,-0.080142,0.2115,0.22571 0.34788,0.38397,0.27013,-0.029767,-0.10474,0.32844,0.3923,0.053536,-0.1214,-0.18804,0.30067,-0.093633,-0.11029,-0.16028,-0.1936,-0.08808,-0.10196,-0.11862,-0.13528,-0.1936,0.05909,-0.09641,-0.090856,-0.13806,-0.17138 0.1414,0.13137,0.1414,0.13639,0.14307,0.13973,0.13973,0.13639,0.13471,0.13304,0.1297,0.13471,0.13806,0.13471,0.13973,0.13973,-0.27478,-0.26642,-0.29149,0.13639,-0.29483,-0.29316,-0.29818,-0.29483,-0.31656 -0.22601,-0.22463,-0.20735,0.16169,0.11331,-0.21357,-0.22394,0.2999,0.16169,0.12022,-0.22394,-0.22878,0.15892,0.24669,0.1216,-0.22809,-0.21012,-2.7644e-05,0.25913,0.2999,-0.21634,-0.017996,-0.011085,-0.0048653,0.29369 -0.1245,-0.12485,-0.12473,-0.1245,-0.12497,-0.12485,-0.12485,-0.1252,-0.12485,-0.1252,-0.12414,-0.12485,-0.12485,-0.12497,-0.12485,0.33621,0.32619,-0.12285,-0.12473,-0.12391,0.33433,0.32619,0.3157,0.30639,0.29861 -0.12419,-0.082195,-0.019885,0.11422,0.087126,-0.21494,-0.12012,-0.041558,0.085771,0.10203,-0.30434,-0.17024,-0.079486,0.25916,0.24426,-0.33279,-0.14857,-0.074068,-0.040204,0.26728,-0.22713,-0.17295,0.33772,0.31334,0.34178 -0.15005,-0.17278,-0.17158,-0.15483,-0.15244,-0.12254,-0.15124,-0.15364,-0.17038,-0.16321,0.1466,-0.11297,-0.12254,-0.12971,-0.14646,0.29852,0.29971,0.29613,0.14182,-0.12971,0.32364,0.34038,0.33201,0.13823,-0.11297 0.28093,0.028477,0.023428,-0.020331,-0.11458,0.2641,0.23549,0.25905,-0.010233,-0.20041,0.23212,0.19341,0.15975,-0.018648,-0.19368,0.15134,0.13282,-0.23407,-0.26269,-0.28793,0.11936,0.11431,-0.24417,-0.3014,-0.30644 -0.37129,-0.29812,-0.31902,-0.099511,-0.089059,-0.29812,-0.22495,-0.13087,-0.047247,0.046829,-0.099511,-0.099511,-0.026341,0.08864,0.19317,0.046829,0.01547,0.036376,0.26634,0.22453,0.3186,0.25589,0.12,0.24543,0.24543 -0.14411,-0.13405,-0.10386,-0.073668,-0.05354,-0.11392,-0.11392,-0.11392,-0.073668,0.026971,-0.13405,-0.083732,-0.063604,-0.063604,0.39934,-0.11392,-0.073668,-0.073668,-0.033412,0.48991,-0.10386,-0.11392,-0.043476,0.43959,0.46978 0.2286,0.23907,0.21813,0.20138,0.035936,0.20138,0.18881,0.16787,0.10086,-0.18605,0.14693,0.11552,0.088291,-0.093903,-0.29076,0.044313,0.025465,0.033842,-0.2761,-0.34311,0.0129,-0.0038533,-0.064585,-0.37243,-0.4185 -0.1188,-0.09706,-0.05754,-0.008141,0.38508,-0.10299,-0.09706,-0.055564,0.015571,0.43448,-0.11682,-0.095084,-0.00023712,0.031378,0.45819,-0.15634,-0.11682,-0.083228,-0.075324,0.47795,-0.23538,-0.14844,-0.11484,-0.091132,-0.031853 -0.16611,-0.067874,0.22759,0.38164,0.37271,-0.181,-0.087968,-0.056711,0.38909,0.38611,-0.20332,-0.10583,-0.082015,-0.044803,0.29531,-0.20035,-0.14453,-0.082015,-0.052989,-0.036616,-0.16314,-0.15272,-0.076805,-0.082015,-0.065641 -0.16997,-0.14679,-0.1035,0.30149,0.30149,-0.16843,-0.1607,-0.098867,0.28448,0.31076,-0.17306,-0.1607,-0.11587,0.27366,0.27985,-0.13287,-0.16224,-0.11896,0.28448,0.28294,-0.11896,-0.11123,-0.1236,-0.13597,-0.11742 -0.085701,0.35815,0.53876,0.40628,0.50974,-0.086563,-0.087569,-0.087281,-0.087856,-0.091017,-0.08412,-0.085701,-0.086994,-0.087712,-0.086132,-0.083402,-0.08412,-0.084695,-0.084407,-0.087281,-0.086563,-0.086563,-0.086275,-0.086132,-0.08685 -0.075963,-0.089825,-0.069032,-0.10369,-0.10369,0.0072082,-0.11062,-0.062101,-0.096756,-0.069032,0.48544,-0.089825,-0.062101,-0.075963,-0.062101,0.48544,-0.041308,-0.089825,-0.062101,-0.082894,0.63099,-0.041308,-0.082894,-0.069032,-0.069032 -0.12454,-0.12484,-0.1244,-0.12447,-0.12454,-0.12462,-0.12506,-0.12527,-0.12454,-0.12462,-0.12381,-0.12476,-0.12476,-0.12462,-0.12469,0.32357,0.32005,-0.1252,-0.12513,-0.12491,0.31068,0.32086,0.31669,0.32825,0.32467 -0.072808,-0.090405,-0.1223,-0.1366,-0.24548,-0.073908,0.011878,-0.1124,-0.070609,-0.24328,-0.033215,-0.014518,-0.1223,-0.05961,-0.066209,0.60908,0.22524,-0.080507,-0.070609,-0.087106,0.52989,0.24834,0.0041793,0.029475,0.043773 0.24675,0.13724,-0.081763,-0.045262,-0.30077,0.31975,-0.045262,-0.19127,-0.19127,-0.19127,0.35625,0.10074,-0.19127,-0.045262,-0.11826,0.10074,0.21025,-0.045262,-0.41027,-0.081763,0.39275,0.13724,0.064242,-0.081763,-0.045262 -0.42993,-0.23245,-0.23245,-0.23245,-0.26066,-0.17603,-0.091402,0.02144,0.02144,-0.28887,0.077861,0.10607,0.10607,-0.0067705,-0.063191,0.077861,0.27533,0.1907,0.077861,0.02144,0.1907,0.35996,0.35996,0.077861,0.04965 0.084676,0.18533,0.22308,0.19162,0.18533,0.14759,0.17589,0.15702,0.1696,0.053221,0.1696,0.15073,0.16646,0.16017,-0.24245,-0.019124,0.11299,-0.15123,-0.23616,-0.28649,-0.27391,-0.26447,-0.28649,-0.28649,-0.28649 0.22337,0.22168,0.2699,-0.1621,-0.1583,0.22323,0.22281,-0.16168,-0.1635,-0.16027,0.22449,0.22168,-0.16097,-0.16154,-0.16069,0.21887,0.37829,-0.1614,-0.16168,-0.16069,0.21718,-0.16364,-0.16196,-0.1614,-0.16168 -0.07385,-0.12021,-0.12187,-0.05398,0.22254,-0.090408,-0.087096,-0.087096,-0.093719,-0.087096,-0.13843,-0.13843,-0.15002,-0.14339,-0.13346,-0.11193,-0.10034,-0.12518,-0.090408,-0.095375,0.46926,0.50734,0.30533,0.30699,0.23082 -0.16271,-0.16304,-0.16304,-0.16425,0.24282,-0.16304,-0.16315,-0.16293,0.24161,0.24205,-0.16271,-0.1637,-0.16227,0.24502,0.24216,-0.16304,-0.16403,0.26078,0.24557,0.24337,-0.16271,-0.16359,-0.16491,0.24205,0.2437 0.053525,0.098504,0.098504,0.076015,0.08726,0.10975,0.098504,0.10975,0.06477,0.15473,0.076015,0.08726,0.10975,0.10975,0.10975,0.076015,0.06477,0.08726,0.08726,0.019791,-0.18262,-0.14888,-0.28382,-0.49747,-0.66614 0.12635,0.12305,0.13308,0.13859,0.14299,0.25546,0.12182,0.13394,0.13822,0.48774,-0.2113,0.12084,0.11986,0.13675,0.14067,-0.21056,-0.21056,-0.21032,-0.21081,-0.21105,-0.21105,-0.21105,-0.21105,-0.21081,-0.21081 0.034882,0.11743,-0.049784,-0.16197,-0.17467,-0.005334,0.14071,0.0031326,-0.11963,-0.17043,-0.013801,0.013716,-0.011684,-0.087883,-0.16197,-0.085767,0.14283,0.030649,-0.11328,-0.13868,0.85403,0.14071,0.0031326,-0.073067,-0.11328 0.14949,-0.10321,-0.10134,-0.10562,-0.10723,0.15458,-0.10187,-0.10321,-0.10562,-0.10803,0.23676,-0.1008,-0.10241,-0.10589,-0.10749,0.48812,-0.10268,-0.10241,-0.10482,-0.10723,0.48276,0.46884,-0.10027,-0.10268,-0.10776 0.092629,0.098287,0.12374,0.32929,-0.35147,0.095458,0.13317,0.11997,0.11149,-0.35241,0.086029,0.09923,0.078486,0.10583,-0.35241,0.089801,0.080372,0.079429,0.092629,-0.33167,0.093572,0.082258,0.083201,-0.34016,-0.34676 0.11638,0.11031,0.11508,0.15329,0.15589,0.12724,0.11986,0.13983,0.15416,0.1585,0.11031,0.11421,0.15633,0.15936,0.16197,0.12463,0.14721,-0.3043,-0.29779,-0.28563,-0.28693,-0.2865,-0.28824,-0.2891,-0.28606 0.28239,-0.1078,-0.13582,-0.15242,-0.15553,0.28446,-0.10987,-0.13893,-0.1545,-0.15865,0.29069,-0.12855,-0.12233,-0.14619,-0.15657,0.2938,0.29899,-0.096384,-0.13686,-0.15553,0.29588,0.29276,0.2855,-0.11403,-0.1545 0.16645,0.08021,0.29343,0.10669,-0.29599,0.20584,0.12639,0.086322,0.15423,-0.26883,0.1196,0.12639,0.078852,-0.21382,-0.26271,0.18818,0.24454,0.13861,-0.24777,-0.28444,0.089038,0.11824,-0.21858,-0.25185,-0.27901 0.46075,0.45738,0.45738,0.45594,-0.12665,-0.08187,-0.081388,-0.083796,-0.082351,-0.08524,-0.084277,-0.083796,-0.084759,-0.086203,-0.086685,-0.08524,-0.08524,-0.084759,-0.087648,-0.088129,-0.084759,-0.085722,-0.087166,-0.087648,-0.088129 -0.12552,-0.063988,-0.027072,0.56359,0.5882,-0.088599,-0.11321,-0.027072,0.16981,0.24365,-0.13782,-0.11321,-0.1009,0.12059,0.095982,-0.12552,-0.22396,-0.1009,-0.027072,-0.0024611,-0.11321,-0.18704,-0.1009,-0.039377,-0.063988 -0.24351,-0.24211,-0.24608,0.18038,0.17711,-0.24281,-0.24468,0.16451,0.18365,0.13393,-0.24445,-0.24538,0.17244,0.17524,0.13299,-0.24492,-0.24211,0.14,0.13766,0.13486,-0.24398,0.16661,0.19415,0.1449,0.20162 0.1462,0.15536,0.16727,0.1636,-0.43274,0.15261,0.21948,0.01887,0.013374,-0.42816,0.16544,0.029863,0.0078779,0.0023817,-0.42816,0.16635,0.013374,0.015206,0.017038,-0.43182,0.15902,0.069252,0.011542,0.020702,0.0060458 -0.19659,-0.19648,-0.19627,-0.19669,-0.19648,-0.19595,-0.19638,-0.19627,-0.19616,-0.19648,-0.094971,-0.094548,0.14048,0.14048,0.14407,0.13795,0.14238,0.14312,0.14143,-0.18867,0.13964,0.36188,0.14397,0.35121,0.35533 0.11026,0.11026,0.097122,0.088028,-0.30705,0.098132,0.082976,0.089038,0.10217,-0.30705,0.076913,0.086007,0.10824,0.11026,-0.30705,0.09409,0.16785,0.11834,-0.30199,-0.3313,0.11026,0.35478,0.16179,-0.31311,-0.29896 -0.28483,-0.31993,0.12731,0.13184,0.13411,-0.29616,-0.32899,0.13297,0.13524,0.13524,-0.29049,-0.31993,0.14656,0.1375,0.13184,-0.29729,0.14316,0.14543,0.14203,0.1409,-0.17387,0.1443,0.13297,0.13411,0.11599 -0.33509,-0.33257,-0.33509,-0.31992,-0.29715,-0.21874,-0.23645,-0.2238,0.15561,0.19608,0.097432,0.11008,0.1202,0.12779,0.15055,0.11008,0.12779,0.14296,0.14549,0.15308,0.10755,0.11514,0.14296,0.15308,0.14296 0.18993,0.18533,0.18315,-0.22585,-0.2273,0.1892,0.18509,-0.22246,-0.22512,-0.22658,0.18993,0.17321,-0.2244,-0.22585,-0.2273,0.18,0.17491,0.17224,-0.22367,-0.22561,0.16279,0.16546,0.16376,0.16522,-0.22609 -0.085531,-0.087624,-0.089019,-0.084136,-0.02972,-0.089717,-0.087624,-0.087624,-0.10297,0.4377,-0.090415,-0.086926,-0.089717,-0.09181,0.46421,-0.089019,-0.087624,-0.086229,-0.095996,0.46631,-0.086926,-0.089717,-0.088322,-0.10227,0.46072 0.061255,0.020956,0.061255,0.081405,0.081405,0.10156,0.1217,0.162,0.020956,0.10156,0.1217,0.020956,0.061255,0.18215,0.2426,0.1217,0.020956,0.020956,0.162,0.14185,-0.34174,-0.36189,-0.38204,-0.34174,-0.48279 0.11838,0.11769,0.11423,0.10869,-0.45082,0.10869,0.11215,0.10869,0.098995,-0.45082,0.10315,0.10453,0.10453,0.10315,-0.45498,0.10038,0.10038,0.10592,0.10176,-0.44805,0.013129,0.011744,0.011052,0.022131,0.035288 -0.11828,-0.11518,-0.11518,-0.11518,-0.11518,-0.092432,-0.11621,-0.11311,-0.10897,-0.088296,-0.078991,-0.090364,-0.076923,-0.083127,-0.083127,-0.053143,-0.044872,-0.052109,-0.054177,-0.057279,0.45141,-0.047974,0.45658,0.45451,0.45761 0.20088,0.1894,0.19578,0.17282,0.16517,0.17792,0.14477,0.17282,0.17537,0.17282,-0.18425,-0.17915,0.1792,0.16517,0.18047,-0.25311,-0.21995,-0.19445,-0.17149,0.16517,-0.28372,-0.27479,-0.26204,-0.24036,-0.19445 -0.24894,-0.24993,0.17067,0.16626,0.16493,-0.24935,0.16493,0.16493,0.16651,0.16601,-0.24844,-0.24295,0.16368,0.16568,0.16344,-0.24195,-0.24204,0.16053,0.16169,0.15479,-0.24228,-0.24262,-0.24054,0.15795,0.15703 0.13554,-0.16638,-0.17469,-0.14699,-0.17192,0.4504,-0.16731,-0.14884,-0.13222,-0.14515,0.4504,0.070911,-0.13037,-0.12299,-0.13776,0.45594,0.069988,0.058908,-0.13037,-0.14792,0.1577,0.054292,0.106,0.065372,-0.15253 0.2965,0.2929,-0.16099,-0.17359,-0.1826,0.2947,0.28299,-0.14478,-0.16008,-0.16729,0.2983,0.27939,-0.15198,-0.13937,-0.14838,-0.15018,-0.035807,-0.046613,-0.11055,-0.14838,0.2983,0.25598,-0.10965,-0.11326,-0.15558 0.60605,-0.11083,-0.10678,-0.11792,-0.11995,0.602,-0.11893,-0.10071,-0.12197,-0.11792,0.14028,-0.11792,-0.014135,-0.124,-0.1002,0.13927,-0.00046577,-0.017173,-0.082988,-0.082482,0.14028,0.14129,-0.10425,-0.10628,-0.10425 -0.09485,-0.071102,-0.11622,-0.097225,-0.12691,-0.063978,-0.055666,-0.11622,-0.1281,-0.12454,0.13432,0.11176,0.11651,-0.16253,-0.13522,0.5036,0.13551,-0.090101,-0.10197,-0.1376,0.47867,0.47748,-0.082976,-0.1186,-0.13403 -0.20933,-0.18909,-0.15325,-0.12964,-0.11446,-0.15958,-0.14271,-0.13681,-0.12079,-0.11531,-0.13512,-0.12037,-0.1229,-0.11784,0.033528,-0.11952,-0.0010456,0.3312,0.32529,0.38263,0.009495,0.002749,0.3274,0.32993,0.34553 -0.18124,-0.17472,-0.17994,0.22921,0.22616,-0.17515,-0.17559,-0.1795,0.23095,0.22486,-0.17515,-0.17733,-0.18167,0.22877,0.2279,-0.17689,-0.17298,-0.1782,0.22312,0.22268,0.22355,-0.17515,-0.1782,0.22268,0.22181 -0.10423,-0.11205,-0.088589,-0.037766,0.52129,-0.10227,-0.096408,-0.096408,-0.022128,0.5252,-0.10423,-0.11009,-0.092498,-0.065132,0.51738,-0.098362,-0.10814,-0.088589,-0.057313,-0.00062552,-0.094453,-0.098362,-0.096408,-0.045584,0.15575 -0.12979,-0.15693,-0.14836,-0.15264,0.034447,-0.12693,-0.1355,-0.12693,0.053013,0.023022,-0.11837,-0.12979,-0.051242,0.074436,0.0044558,-0.10408,0.051585,0.044444,0.011597,0.0087403,0.89134,0.053013,0.057298,0.044444,0.028735 -0.35493,0.11832,0.11296,0.11177,0.10582,-0.35671,0.11653,0.11534,0.11058,0.1082,-0.35255,0.11534,0.11475,0.11296,0.10701,-0.35016,0.11713,0.11713,0.11117,0.10879,-0.35255,-0.36802,0.11415,0.10879,0.1082 -0.052911,-0.052911,-0.014722,-0.01626,0.97563,-0.052398,-0.039583,-0.017798,-0.017541,-0.013697,-0.068545,-0.043684,-0.02318,-0.016516,-0.017541,-0.071108,-0.05368,-0.041121,-0.033945,-0.04394,-0.070083,-0.059062,-0.056756,-0.052398,-0.046247 -0.048604,-0.0081007,-0.12961,-0.089108,-0.11611,0.072906,-0.0081007,-0.075607,-0.17012,-0.10261,0.059405,0.045904,-0.22412,-0.11611,-0.12961,0.49144,0.059405,-0.11611,-0.17012,-0.075607,0.61295,0.31593,0.15391,-0.075607,-0.15661 0.3145,0.31676,0.31676,0.33121,0.3333,0.31432,0.31711,-0.12338,-0.12564,-0.12512,-0.10318,-0.12616,-0.12477,-0.12442,-0.12564,-0.12808,-0.12878,-0.12547,-0.12495,-0.12616,-0.12912,-0.12634,-0.12529,-0.12529,-0.12616 -0.16335,-0.15893,0.26628,0.24241,0.28617,-0.16423,-0.15981,-0.1492,0.25567,0.2539,-0.16335,-0.15804,-0.1492,0.26451,0.26363,-0.15539,-0.14434,-0.14743,-0.13373,0.29015,-0.15274,-0.1355,-0.13064,-0.12931,0.27247 -0.27504,-0.27484,-0.27443,-0.27423,-0.27375,-0.27558,-0.0073392,-0.0078813,-0.0074747,-0.27355,0.13955,0.13976,0.13989,0.13989,-0.16555,0.1401,0.20954,0.22987,0.14098,-0.16636,0.20887,0.22913,0.22987,0.16476,0.16381 -0.64245,-0.22779,-0.25543,-0.1725,-0.1725,-0.0066346,-0.14486,-0.1725,-0.1725,-0.034279,0.048654,0.076298,0.15923,0.076298,0.02101,0.13159,0.18687,0.10394,0.21452,0.18687,0.21452,0.15923,0.15923,0.21452,0.048654 0.095755,0.060743,0.062459,-0.14796,-0.14418,0.34445,0.063146,-0.1677,-0.1677,-0.14109,0.34891,0.42116,-0.16409,-0.13869,-0.14573,0.098158,0.096957,-0.16426,-0.13783,-0.1507,0.097471,0.45154,-0.16461,-0.14384,-0.16237 -0.5271,-0.456,-0.15606,-0.15384,-0.14273,-0.16272,-0.13828,-0.12273,-0.089405,-0.0071986,-0.093849,-0.060522,0.12167,0.13722,0.21498,0.17055,0.15721,0.12833,0.135,0.17055,0.26608,0.20165,0.13722,0.15055,0.11944 -0.33375,-0.33375,-0.21341,-0.29364,-0.21341,-0.37387,0.067392,-0.093065,-0.13318,-0.093065,0.027278,0.14762,0.027278,0.067392,0.10751,0.30808,0.14762,0.027278,0.22785,0.027278,0.18774,0.067392,0.30808,0.067392,0.26796 0.1962,0.1959,0.19315,0.38419,0.679,0.11685,0.11869,0.11746,-0.11783,-0.11737,-0.11783,-0.11737,-0.11798,-0.11768,-0.11798,-0.11783,-0.11768,-0.11798,-0.11783,-0.11814,-0.11768,-0.11707,-0.11768,-0.11737,-0.11814 -0.0876,-0.089163,-0.094374,-0.094374,0.18752,-0.089684,-0.09229,-0.094895,-0.098021,0.18231,-0.089684,-0.091247,-0.095416,-0.086558,0.17449,-0.084474,-0.086558,-0.093853,-0.10011,0.18022,-0.083953,-0.083953,-0.095937,0.18543,0.82216 0.30618,0.29123,0.30618,0.33608,0.41083,0.15668,-0.097474,-0.14232,0.037076,0.23143,0.007176,-0.037674,-0.082524,-0.18717,-0.24697,-0.037674,-0.067574,-0.18717,-0.18717,-0.18717,0.007176,-0.082524,-0.082524,-0.23202,-0.23202 0.3065,0.27618,0.21926,0.18833,0.19699,0.16668,0.16358,0.17967,0.17348,-0.15876,0.14378,0.14069,0.15368,-0.147,-0.16866,0.13388,-0.22619,-0.22124,-0.18536,-0.18722,-0.22867,-0.22867,-0.22991,-0.22867,-0.23238 -0.2478,-0.24704,-0.24882,-0.24653,-0.23888,-0.24092,-0.24423,-0.24296,-0.24551,0.1548,0.22004,-0.23684,0.15633,0.13977,0.14818,0.21953,0.16194,0.15659,0.14843,0.15149,0.15328,0.15939,0.16041,0.15251,0.15684 0.23709,0.24756,0.24442,-0.18165,-0.18374,0.23918,0.24861,0.24442,-0.16804,-0.18793,0.23918,0.24442,-0.15129,-0.18374,-0.18374,0.23918,0.24651,-0.14082,-0.18584,-0.18374,-0.11151,-0.090574,-0.11151,-0.1806,-0.18584 -0.28941,-0.29091,-0.29166,-0.29166,-0.29354,-0.29166,-0.29016,-0.29016,0.14606,0.15132,0.12274,0.13741,0.14681,0.14756,0.14756,0.11522,0.11861,0.13929,0.14982,0.14756,0.11334,0.12199,0.14154,0.14004,0.1423 -0.07521,-0.069074,-0.069458,-0.065623,-0.069458,-0.076361,-0.07406,-0.069458,-0.082496,0.13724,-0.075594,-0.072909,-0.070225,-0.080196,0.13763,-0.077511,-0.074827,-0.077511,-0.080962,0.60472,-0.076361,-0.076744,-0.077128,-0.080196,0.69177 -0.12047,-0.12047,-0.068092,0.1938,0.71758,-0.041903,-0.068092,-0.14666,-0.041903,0.48188,-0.094281,-0.015713,-0.12047,-0.041903,0.14142,-0.19904,-0.094281,-0.094281,-0.12047,0.036665,-0.14666,0.036665,-0.094281,-0.015713,0.036665 -0.032809,-0.058412,-0.052722,-0.039447,-0.073584,-0.072636,-0.074532,-0.079273,-0.063153,-0.083066,-0.078325,-0.084963,-0.069791,-0.061257,-0.086859,-0.080222,-0.080222,-0.073584,-0.07548,0.44416,-0.088756,-0.085911,-0.088756,0.43847,0.70113 0.208,0.2237,0.23577,-0.20491,-0.20491,0.20607,0.20848,0.21621,-0.20467,-0.20081,0.20704,0.20583,0.2051,-0.20443,-0.20105,0.16236,0.20221,-0.20564,-0.19936,-0.20008,-0.13585,0.20317,-0.13126,-0.19235,-0.19863 -0.15308,-0.1533,-0.15417,0.29734,0.1524,-0.15276,-0.15341,-0.1533,0.30015,0.15099,-0.15254,-0.15319,-0.15363,0.42731,0.15045,-0.15157,-0.15113,-0.15363,0.30124,0.15327,-0.15124,-0.15016,-0.15308,0.32444,0.032612 0.40049,0.38066,0.20223,0.16258,0.023792,0.34101,0.14275,-0.055514,-0.095166,-0.15465,0.26171,0.14275,-0.035687,-0.1943,-0.23395,0.08327,-0.07534,-0.15465,-0.15465,-0.17447,0.0039653,-0.11499,-0.1943,-0.2736,-0.23395 -0.16958,-0.30546,0.020654,0.10218,0.14294,-0.22393,-0.26469,0.034241,0.15653,0.14294,-0.047286,-0.2511,-0.02011,0.15653,0.1973,-0.10164,-0.27828,0.1973,0.15653,0.088593,-0.2511,-0.29187,0.14294,0.36035,0.306 0.47937,0.55244,0.45501,0.16271,0.06528,-0.032153,-0.12959,-0.10523,-0.10523,-0.080869,-0.080869,-0.032153,0.040922,-0.056511,-0.12959,-0.12959,-0.1783,-0.032153,-0.080869,-0.15394,-0.22702,-0.0077946,-0.056511,-0.12959,-0.0077946 -0.013688,-0.024727,-0.07992,-0.102,0.89149,-0.013688,-0.090959,-0.035766,-0.068882,0.20709,-0.013688,-0.090959,-0.068882,-0.090959,0.2402,-0.046804,-0.046804,-0.068882,-0.12408,-0.046804,-0.013688,-0.046804,-0.057843,-0.102,-0.090959 0.1397,0.1231,-0.033612,-0.03633,-0.30717,0.1385,0.13034,0.15027,0.17171,-0.312,0.13517,0.1388,0.14604,-0.31321,-0.3117,0.13366,0.13578,0.1394,0.15329,-0.31231,0.13759,0.13276,0.14423,-0.31261,-0.3114 0.70284,0.19671,-0.13577,-0.13466,-0.1394,0.19113,0.19085,-0.1355,-0.13829,-0.13885,0.10319,0.19169,-0.1355,-0.13912,-0.1394,0.10487,0.18471,-0.13605,-0.13801,-0.13885,0.091745,0.10235,-0.13522,-0.13605,-0.1394 0.098245,0.091562,0.064828,0.084878,0.081537,0.074853,0.081537,0.064828,0.084878,-0.41303,0.08822,0.064828,0.064828,0.081537,-0.46315,0.091562,0.094903,0.081537,0.11495,-0.46984,0.11161,0.08822,0.094903,0.12164,-0.47986 -0.087853,-0.098711,-0.11944,-0.11944,-0.1224,0.35733,-0.091801,-0.12043,-0.12043,-0.12043,0.36622,-0.10069,-0.11352,-0.1224,-0.12536,0.35931,0.3445,-0.098711,-0.12734,-0.12438,0.35832,0.34549,-0.082917,-0.10957,-0.12536 -0.12156,-0.12067,-0.12312,-0.12578,-0.12401,-0.12112,-0.12312,-0.12356,-0.13023,-0.12978,-0.12334,-0.12356,-0.12689,-0.13334,-0.12534,-0.12245,-0.12423,-0.12267,0.32173,0.32173,0.3204,0.3204,0.32106,0.31973,0.31973 -0.1561,-0.073758,0.043249,0.31843,0.14942,-0.1756,-0.17993,-0.11276,0.33793,0.3336,-0.19077,-0.19077,-0.1626,-0.1561,0.3076,-0.19077,-0.16693,-0.13009,-0.056424,0.3206,-0.17776,-0.013087,-0.056424,0.064917,0.3141 0.11327,0.14045,0.14725,-0.24018,-0.23338,0.1255,0.18259,0.18531,-0.28368,-0.2728,0.18395,0.19347,0.14997,0.045295,-0.29048,0.19075,0.14725,0.096953,0.039858,-0.23202,0.27775,0.10375,-0.2864,-0.29184,-0.1926 0.079437,0.074495,0.075276,0.1507,0.1624,-0.28805,-0.29351,0.084638,0.15278,0.15356,-0.28727,-0.29013,0.1468,0.15148,0.15382,-0.28623,-0.29013,0.14732,0.15356,0.15694,-0.28727,-0.28909,0.15044,0.16292,0.15512 0.32402,0.32402,0.20128,0.29333,0.26265,0.047866,0.13992,0.047866,0.13992,0.017183,0.13992,0.017183,-0.044184,-0.13623,-0.10555,0.07855,-0.13623,-0.10555,0.047866,-0.074868,-0.25897,-0.28965,-0.25897,-0.41239,-0.25897 -0.29159,0.13583,0.13334,0.13301,0.13732,-0.29043,-0.29308,0.13384,0.13517,0.13914,-0.2906,-0.29176,0.13583,0.13616,0.13963,-0.29143,-0.29275,0.13699,0.13682,0.14063,-0.2906,0.1403,0.13848,0.13765,0.14212 -0.063816,-0.12272,-0.12656,-0.12656,-0.1432,-0.088144,-0.084303,-0.088144,-0.10991,-0.14704,0.39073,0.23964,-0.095827,-0.10479,-0.11119,0.4061,0.26269,-0.099668,-0.13296,-0.13296,0.43299,0.36,-0.10479,-0.097107,-0.11247 -0.24937,-0.13951,-0.30429,-0.16698,-0.30429,-0.19444,-0.19444,-0.2219,-0.33176,-0.11205,0.16258,0.21751,0.21751,0.21751,0.2999,-0.084587,0.19005,0.080193,0.05273,0.13512,0.10766,0.13512,0.05273,0.24497,0.19005 0.092714,-0.17997,-0.25139,-0.27736,-0.31632,0.18361,0.060251,-0.22542,-0.27736,-0.27736,0.20309,0.18361,0.1057,-0.14751,-0.28385,0.17712,0.20309,0.15764,0.13167,-0.12803,0.20309,0.19659,0.20309,0.15764,0.1057 0.77247,0.33318,0.029061,0.029061,-0.08921,0.33318,-0.021627,-0.123,0.012165,-0.15679,-0.021627,-0.0047308,-0.08921,-0.15679,-0.072314,0.062852,-0.021627,-0.055418,-0.10611,-0.123,-0.08921,-0.072314,-0.123,-0.1399,-0.10611 -0.12365,-0.12495,-0.12757,-0.12365,0.30685,-0.12757,-0.12234,-0.12365,-0.12887,0.32579,-0.12626,-0.12234,-0.11712,0.26243,0.40353,-0.12626,-0.12757,-0.11973,0.26243,0.27745,-0.12887,-0.12365,-0.1132,-0.11516,0.38393 -0.076272,-0.071863,-0.085089,0.3646,0.3613,-0.11815,-0.12367,-0.11044,-0.12697,0.35799,-0.12697,-0.12697,-0.099418,-0.098315,0.35028,-0.12146,-0.12587,-0.093907,-0.13248,0.35028,-0.13138,-0.12256,-0.11044,-0.12587,0.34366 -0.17264,-0.1796,0.15945,0.14786,0.14612,-0.16974,-0.17728,0.15597,0.16409,0.35709,-0.16743,-0.17206,-0.18539,0.16988,0.35535,-0.17322,-0.16105,-0.16743,-0.17148,0.35709,-0.16569,-0.15815,-0.15468,0.18379,0.17916 0.010957,0.0018413,-0.0022606,-0.092048,-0.092959,0.010045,0.0068548,0.00092977,-0.089313,-0.092503,0.0073106,0.0036644,-0.00043754,-0.091592,-0.10116,0.0082221,0.0027529,-0.083388,-0.09615,-0.098884,0.0077663,0.0095894,-0.083388,-0.097061,0.95121 -0.36233,-0.28684,-0.43781,-0.32459,-0.43781,0.015097,0.16607,0.015097,0.05284,-0.022646,0.015097,0.20381,0.12832,0.12832,-0.022646,0.12832,0.090582,-0.022646,0.20381,0.20381,0.05284,0.20381,0.05284,0.16607,0.090582 -0.032553,-0.020624,-0.015322,-0.023275,0.97877,-0.040506,-0.037855,-0.035204,-0.043157,-0.037855,-0.051109,-0.048459,-0.037855,-0.040506,-0.043157,-0.048459,-0.043157,-0.048459,-0.048459,-0.045808,-0.045808,-0.045808,-0.048459,-0.048459,-0.048459 -0.052298,-0.063609,-0.31845,-0.30514,-0.23927,-0.049636,-0.067601,-0.013041,-0.24259,-0.23394,0.016235,-0.00039922,0.034865,-0.23727,-0.24991,0.049503,0.2225,0.20786,0.31099,0.058153,0.3263,0.2378,0.19655,0.30234,0.11005 -0.16482,-0.15414,-0.11986,-0.11897,-0.1212,-0.16838,-0.1617,-0.13455,-0.097605,-0.12743,-0.16304,-0.15859,-0.10695,-0.094489,-0.13054,0.32214,-0.15859,0.23757,0.25582,-0.13366,0.31502,0.29721,0.29365,0.29454,0.29855 0.22484,0.26194,0.1526,0.16432,0.12722,0.2756,0.33222,0.18384,0.20141,0.15846,-0.042641,-0.030926,-0.21836,-0.23398,0.20141,-0.068022,-0.085594,-0.26326,-0.24374,-0.17345,-0.062165,-0.087546,-0.26912,-0.26912,-0.23593 -0.17357,-0.2035,0.13852,0.031636,0.030211,-0.18355,-0.20777,-0.15077,0.37508,0.36225,-0.18355,-0.20207,-0.15362,0.12427,0.33945,-0.2035,-0.19495,-0.16075,0.10289,0.34515,-0.17072,0.0031351,0.070113,0.095764,0.16987 0.13518,0.15941,0.17732,-0.23353,-0.28409,0.11622,0.15098,0.16151,0.054063,-0.26829,0.13096,0.11622,0.12254,0.046689,-0.27461,0.1415,0.16046,0.21103,-0.2567,-0.28725,-0.14714,0.17205,0.27107,-0.28725,-0.28831 0.13165,0.11576,0.11249,0.11249,0.10314,0.11482,0.11295,0.10921,0.10781,0.10314,0.11529,0.11529,0.11062,0.10875,0.10641,0.11669,-0.33493,0.1181,0.11062,0.10875,-0.35083,-0.35971,-0.36439,-0.36158,-0.36252 0.24141,0.23878,0.16651,0.23585,0.1668,0.2379,0.23878,0.16636,0.25033,0.24112,-0.1274,-0.12243,-0.12243,-0.12286,-0.12111,-0.12506,-0.1236,-0.12184,-0.25453,-0.25497,0.21113,-0.12447,-0.25482,-0.25936,-0.26009 -0.085599,-0.096239,0.066021,0.050061,0.95313,-0.084269,-0.092249,0.038091,0.051391,-0.090919,-0.049689,-0.057669,-0.061659,-0.0031388,0.0021812,-0.056339,-0.066979,-0.062989,-0.027079,-0.040379,-0.066979,-0.061659,-0.051019,-0.052349,-0.053679 0.17626,0.089856,0.046656,-0.38534,-0.34214,0.39225,0.046656,0.003456,-0.082944,-0.29894,0.17626,0.26266,0.089856,-0.082944,-0.082944,0.089856,0.17626,0.046656,0.003456,-0.34214,0.089856,0.30586,-0.082944,-0.21254,-0.082944 -0.29063,-0.29063,-0.29063,-0.29145,0.099543,-0.28925,-0.2909,-0.29365,-0.29008,0.10504,0.13966,0.13883,0.14625,0.14763,0.1218,0.14186,0.14653,0.14818,0.15532,0.12372,0.14186,0.14818,0.15202,0.14983,0.12097 -0.0067746,0.059861,0.037649,-0.023433,-0.25388,-0.0012216,0.02099,0.048755,-0.070633,-0.36494,0.012661,0.14871,0.045978,-0.045645,-0.34273,0.21257,0.29308,0.07652,-0.031763,-0.26776,0.35139,0.42635,0.087625,-0.070633,-0.34273 0.3312,0.27931,0.26385,0.26054,0.27489,0.27489,0.26385,-0.092735,0.29256,-0.15014,0.12254,-0.13248,-0.14793,-0.15014,-0.1667,-0.14131,-0.15235,-0.15345,-0.16008,-0.15566,-0.14131,-0.15014,-0.15014,-0.15897,-0.16008 0.5952,0.5952,-0.077549,-0.09131,-0.10354,0.16861,0.14415,-0.065318,-0.089781,-0.12495,0.15944,0.14874,0.014189,-0.088252,-0.11272,-0.095897,-0.054615,-0.07602,-0.10201,-0.12495,-0.13718,-0.13259,-0.11119,-0.12342,-0.11424 0.24128,0.25041,0.24675,0.23762,0.24675,-0.15501,0.24128,0.23945,0.24493,0.25041,-0.15501,-0.14953,0.24858,-0.16779,-0.16962,-0.16596,-0.16231,-0.16596,-0.16231,-0.15683,-0.16414,-0.15501,-0.15135,-0.18057,-0.18605 0.87283,0.15826,0.15579,-0.097944,-0.096294,-0.033583,-0.036059,0.1727,-0.095056,-0.086805,-0.034821,-0.031108,-0.07319,-0.095056,-0.08928,0.17353,-0.0604,-0.085567,-0.094643,-0.10166,-0.070714,-0.069477,-0.091343,-0.094231,-0.095881 0.53201,-0.01166,-0.040809,-0.070297,-0.096734,0.52862,-0.024878,-0.050299,-0.086227,-0.11165,0.53641,-0.039114,-0.067246,-0.09165,-0.12961,-0.011999,-0.042165,-0.070297,-0.10148,-0.12859,-0.022167,-0.054028,-0.079787,-0.11809,-0.14825 0.30445,0.16656,0.22172,0.24929,0.19414,-0.026474,0.13899,0.16656,0.19414,0.02868,-0.081627,-0.054051,0.13899,0.13899,0.19414,-0.32982,-0.16436,-0.19193,-0.1092,0.056257,-0.27466,-0.41255,-0.24709,-0.24709,-0.054051 0.45167,0.44735,-0.10651,-0.10676,-0.10676,0.36373,-0.10555,-0.10459,-0.10603,-0.10676,0.3534,-0.107,-0.10531,-0.10603,-0.10603,0.34931,-0.10748,-0.10291,-0.10483,-0.10676,0.051114,-0.107,-0.10627,-0.10676,-0.10724 0.22458,0.076976,0.080148,0.079775,-0.30984,0.22551,0.084067,0.081268,0.083134,-0.3091,0.24118,0.083134,0.084813,0.073617,-0.30891,0.18968,0.08388,0.084253,0.073617,-0.30854,0.22719,0.084626,-0.31003,-0.30705,-0.30798 -0.14571,-0.14161,-0.14243,0.25927,0.26255,-0.15802,-0.14407,-0.14407,0.25804,0.25886,-0.14243,-0.1531,-0.15843,0.27486,0.25927,-0.14243,-0.15884,-0.17033,0.27691,0.27363,-0.14161,-0.1375,-0.17033,0.27404,-0.14653 0.12753,0.12803,0.12753,0.12753,0.1282,0.1277,0.16928,0.12886,-0.2913,-0.29047,0.12786,0.16579,0.12786,-0.29047,-0.29097,0.12703,0.16479,0.12737,-0.29097,-0.29047,0.12753,0.16729,0.1267,-0.29163,-0.29063 0.21765,0.13583,0.054004,0.013092,-0.31421,0.25857,0.094916,-0.02782,0.013092,-0.19147,0.054004,0.21765,0.13583,-0.19147,-0.31421,0.21765,0.094916,0.13583,0.13583,-0.60059,0.054004,0.054004,-0.02782,0.013092,-0.23238 -0.097055,-0.10839,-0.10045,-0.11065,0.33699,-0.10499,-0.099321,-0.099321,-0.11519,0.36759,-0.094788,-0.10045,-0.10499,-0.11972,0.33133,-0.11292,-0.10839,-0.10952,-0.12879,0.37666,-0.12765,-0.13559,-0.15032,0.33473,0.38119 0.12998,0.12925,0.12852,0.12852,0.14314,0.14131,0.13656,0.12486,0.12925,0.14204,0.1457,0.13912,0.12925,0.12486,0.16179,0.14497,0.15119,-0.29599,-0.29453,-0.29197,-0.29088,-0.2927,-0.29014,-0.28832,-0.28576 -0.11269,-0.11534,-0.11667,-0.11622,0.36259,-0.11269,-0.11269,-0.11401,-0.12462,0.35994,-0.11136,-0.10827,-0.11269,-0.11755,0.35286,-0.10606,-0.10694,-0.10915,-0.11534,0.35242,-0.10473,-0.10871,-0.10915,0.35198,0.35508 0.18869,0.3761,0.32791,-0.154,-0.36818,0.13515,0.24224,0.044121,-0.16471,-0.19683,0.18334,0.12979,-0.10045,-0.14864,-0.20219,0.27437,-0.073678,-0.10045,-0.14864,-0.18077,0.3172,-0.030842,-0.11651,-0.11651,-0.11651 -0.13731,-0.13948,-0.14093,0.24507,0.24308,-0.13876,-0.1402,-0.14057,-0.14057,0.24182,-0.13984,-0.14111,-0.14039,-0.14039,0.3413,-0.13948,-0.13623,-0.11434,0.24435,0.32828,-0.14111,-0.127,-0.11361,0.34329,0.32412 -0.1718,-0.1718,-0.18805,-0.13523,-0.062088,-0.15554,-0.1718,-0.090531,-0.049898,-0.029581,-0.025518,0.023242,0.035432,0.019179,-0.025518,0.011052,0.080129,0.055749,0.027306,-0.017391,0.011052,0.047622,0.031369,0.059812,0.89279 0.32991,0.10394,0.10394,0.27342,0.10394,0.13219,0.24517,-0.0090385,0.16043,0.21692,0.075698,0.047452,0.075698,0.075698,0.047452,0.019207,-0.20676,-0.093775,0.019207,-0.20676,-0.29149,-0.12202,-0.31974,-0.31974,-0.46097 -0.11338,-0.11649,-0.1372,-0.1358,-0.13284,-0.11587,-0.13377,-0.14155,-0.13439,-0.13782,-0.14638,-0.14731,-0.14731,-0.14778,-0.15183,0.29055,-0.15027,-0.13969,0.29102,0.29039,0.29148,0.29148,0.29195,0.29102,0.2918 -0.10345,-0.097745,0.043147,0.044776,0.039483,-0.1067,-0.097745,0.044776,0.044776,0.045183,-0.10141,-0.09856,0.045998,0.047219,0.046812,-0.11322,-0.10222,-0.11118,0.047627,0.047627,-0.11159,-0.11688,-0.12136,-0.1234,0.90805 0.34444,0.33348,0.33074,0.30991,0.30772,-0.11373,-0.13949,-0.11757,0.30827,0.30827,-0.12469,-0.1236,-0.12963,-0.12579,-0.12853,-0.12469,-0.12524,-0.11921,-0.12634,-0.12141,-0.12141,-0.12579,-0.1225,-0.12579,-0.12743 0.13522,0.13726,-0.075485,-0.30588,-0.30613,0.13726,0.13829,-0.077019,-0.30562,-0.30588,0.13829,0.1434,0.14852,0.14494,-0.30537,0.14033,0.14136,0.15184,0.15107,-0.30792,0.14417,0.14749,0.14545,0.15337,-0.30895 0.2891,-0.14657,-0.14406,-0.15138,-0.15263,0.28303,-0.14426,-0.14447,-0.14908,-0.15159,0.28303,0.28554,-0.14447,-0.1474,-0.14866,0.28073,0.28471,-0.14364,-0.14615,-0.14761,0.28763,0.28324,-0.14489,-0.14594,0.075763 0.68235,-0.11143,-0.11042,-0.10434,-0.10332,0.25555,-0.10434,-0.11447,-0.11143,-0.095213,0.2515,-0.08102,-0.11143,-0.10434,-0.098254,0.25555,-0.09724,-0.10738,-0.10535,-0.098254,0.25352,0.26772,-0.10636,-0.095213,-0.10636 0.037472,-0.097056,-0.15087,-0.15821,-0.15331,0.013013,-0.082381,-0.11173,-0.12885,-0.11662,0.0056747,-0.077489,-0.092164,-0.11418,-0.053029,0.48998,-0.028569,-0.062813,-0.075043,-0.033461,0.5976,0.4753,-0.045691,-0.033461,-0.0041092 0.3451,0.37486,-0.12347,-0.12546,-0.12466,0.32606,0.27686,-0.12665,-0.12506,-0.12426,0.32685,0.27567,-0.12466,-0.12506,-0.12506,0.31098,-0.12228,-0.12307,-0.12387,-0.12426,-0.12546,-0.12109,-0.12625,-0.12149,-0.12426 0.26424,0.32061,-0.010941,-0.12532,-0.083881,0.27253,0.35045,-0.00099464,-0.1303,-0.18998,0.2344,-0.15682,-0.088855,-0.11538,-0.24634,0.3405,-0.18335,-0.11538,-0.12864,-0.16179,0.36868,-0.078908,-0.044096,-0.16843,-0.12201 -0.057191,-0.11099,-0.14213,-0.1761,-0.18177,0.18063,0.16082,-0.13647,-0.14496,-0.13647,0.33918,0.44111,-0.14779,-0.17327,-0.11948,0.24575,0.35334,-0.07701,-0.14496,-0.11948,0.13533,0.3222,0.030578,-0.17327,-0.16761 0.21566,0.24121,0.1901,-0.078188,-0.2315,0.16455,0.24121,0.22843,0.04957,-0.24427,0.21566,0.1901,-0.18039,-0.26983,-0.30815,0.21566,0.16455,-0.2315,-0.090964,-0.20595,0.17733,0.011243,-0.21872,-0.0015331,-0.24427 -0.05191,-0.0615,-0.062372,-0.07109,-0.07545,-0.064116,-0.064987,-0.069783,-0.081116,-0.081552,-0.066731,-0.058884,-0.060628,-0.08286,-0.080681,0.64731,-0.058884,-0.064551,-0.079373,-0.081116,0.6351,0.26021,-0.074142,-0.073706,-0.077193 0.58199,0.16797,-0.039036,-0.039036,-0.12775,0.40456,-0.0094633,-0.0094633,-0.0094633,-0.098182,0.31584,-0.12775,-0.068609,0.02011,-0.12775,0.25669,-0.098182,-0.068609,-0.15733,-0.15733,0.049682,-0.12775,0.02011,-0.24605,-0.30519 0.21054,0.1612,0.25989,0.27634,-0.0032898,0.17765,0.17765,0.14475,0.046057,-0.21712,0.24344,0.1612,0.046057,-0.11843,-0.28292,0.062505,0.046057,0.029608,-0.29937,-0.33227,0.095403,-0.069085,-0.13488,-0.34871,-0.33227 -0.083746,-0.078674,-0.085775,-0.086789,-0.090847,-0.086789,-0.089832,-0.075631,-0.082732,-0.090847,-0.087804,-0.086789,-0.086789,-0.094904,-0.095919,-0.098962,-0.096933,-0.091861,-0.099976,-0.071574,-0.068531,0.45995,0.45793,0.45387,0.45995 -0.21418,-0.21554,-0.21554,-0.21604,-0.21655,-0.21418,-0.21418,-0.21469,-0.21537,-0.21537,0.065954,0.070014,0.070014,0.23647,0.2363,0.069337,-0.0032344,-0.0066177,0.28181,0.27775,0.26912,-0.0050952,-0.0039111,0.2747,0.31902 0.30224,0.33474,0.33893,0.32111,0.33317,-0.12805,-0.12281,-0.13224,0.30539,0.30748,-0.12281,-0.12176,-0.12333,-0.12857,-0.13539,-0.12333,-0.12176,-0.12491,-0.12124,-0.127,-0.11966,-0.12333,-0.12176,-0.12176,-0.12333 0.56827,0.55836,-0.069088,-0.089672,-0.080905,0.49508,-0.067563,-0.070612,-0.078999,-0.080905,-0.067563,-0.073662,-0.069088,-0.072137,-0.077093,-0.065276,-0.071375,-0.075187,-0.073662,-0.078999,-0.06985,-0.072137,-0.073662,-0.0729,-0.071375 -0.1242,-0.12349,-0.1242,-0.12406,-0.12291,-0.12277,-0.12291,-0.12291,-0.12349,-0.12349,-0.12291,-0.12334,-0.12349,-0.12363,-0.12334,-0.12248,-0.1242,-0.12478,0.29921,0.30208,0.28442,0.29088,0.44715,0.30094,0.29792 0.080835,-0.10821,-0.11619,-0.10821,-0.11087,0.083498,-0.10554,-0.10821,-0.11619,-0.11353,-0.001704,0.032909,-0.065605,-0.11619,-0.11087,0.65861,0.083498,-0.0070291,-0.07093,-0.092231,0.61068,0.070185,-0.073593,-0.086906,-0.10821 -0.052626,-0.26036,-0.15649,0.085863,0.12049,-0.19111,-0.19111,0.15511,0.15511,0.39746,-0.15649,-0.15649,0.051241,0.25897,0.32822,-0.3296,-0.12187,-0.19111,0.051241,0.051241,-0.15649,-0.22574,0.016619,0.22435,0.2936 0.12092,0.12169,0.11996,0.54939,0.71593,-0.08677,-0.086386,-0.085809,-0.084847,0.012269,-0.084463,-0.083886,-0.08427,-0.084847,-0.087924,-0.087924,-0.084078,-0.086193,-0.087347,-0.087732,-0.08677,-0.086963,-0.087155,-0.086578,-0.090232 -0.20827,-0.20827,-0.20854,-0.21311,-0.21472,-0.20289,-0.2037,-0.20478,-0.20585,-0.21096,0.20444,0.19584,0.18832,-0.20504,0.17005,0.20767,0.19773,0.18993,0.1808,-0.20934,0.20901,0.20229,0.19155,0.18483,0.17301 0.34282,0.32911,0.32911,0.31539,0.32911,-0.1097,-0.013713,0,-0.027426,0.013713,0.041138,0,-0.041138,0.013713,0.027426,0.027426,-0.027426,-0.013713,-0.054851,-0.027426,-0.2194,-0.37025,-0.30168,-0.26054,-0.30168 0.23674,0.24168,0.22521,0.17416,-0.03827,0.30425,0.23674,0.2038,-0.079439,-0.12884,0.23674,0.23344,-0.20459,-0.16836,-0.15025,0.20051,-0.0053354,-0.18977,-0.226,-0.24741,0.011132,-0.16342,-0.16836,-0.27705,-0.25729 -0.049471,-0.034139,-0.018168,-0.018168,0.97776,-0.044999,-0.035416,-0.028389,-0.030945,-0.036055,-0.059053,-0.034139,-0.034139,-0.038611,-0.028389,-0.060331,-0.059053,-0.039249,-0.043721,-0.038611,-0.07183,-0.060331,-0.036055,-0.037972,-0.040527 -0.35163,-0.35306,-0.35536,-0.35565,-0.35824,0.10313,0.11549,0.11376,0.1221,-0.36054,0.11003,0.11348,0.10888,0.11779,0.10686,0.11348,0.10916,0.10945,0.10428,0.10773,0.11319,0.11808,0.10543,0.11089,0.1313 -0.20586,-0.20586,0.16175,0.16175,0.34555,-0.20586,-0.20586,0.16175,0.27203,0.051465,-0.13234,-0.20586,-0.022056,0.088226,0.23527,-0.13234,-0.24262,-0.20586,0.088226,0.27203,-0.1691,-0.31614,0.014704,0.30879,0.088226 -0.067953,-0.077569,-0.039105,-0.0070517,-0.045516,-0.051926,-0.080774,-0.064748,-0.08398,-0.067953,0.021796,-0.080774,-0.071158,-0.080774,-0.08398,0.6853,-0.029489,-0.077569,-0.087185,-0.08398,0.65325,0.037823,-0.071158,-0.074364,-0.071158 0.92357,0.045898,-0.046918,-0.051508,-0.049468,0.045388,0.040798,-0.047428,-0.052528,-0.060687,-0.18359,0.039268,-0.046918,-0.050998,-0.058137,-0.18512,0.041818,0.0076497,-0.050488,-0.055078,-0.17747,0.042838,0.034678,-0.052018,-0.053548 0.099748,0.11927,0.11406,0.12448,-0.32715,0.10105,0.1414,0.12187,0.13359,-0.33235,0.098446,0.13098,0.14009,-0.30112,-0.34146,0.1466,0.12838,0.11016,-0.30372,-0.31023,0.13879,0.10365,0.13229,0.15311,-0.32194 -0.13676,-0.13676,-0.13676,-0.13676,-0.13607,-0.13197,-0.13436,-0.13676,-0.13607,-0.13607,-0.12992,-0.13231,-0.13813,-0.13778,-0.13573,-0.010206,-0.015679,0.35098,0.35269,0.34858,-0.011574,-0.014311,0.34585,0.34379,0.34208 -0.21284,-0.19221,0.16684,0.0843,0.13933,-0.22247,-0.19496,0.10081,0.30853,0.095305,-0.19908,-0.21834,0.0843,0.17647,0.16546,-0.21972,-0.24861,-0.22935,0.28102,0.12557,-0.2321,-0.21559,0.26176,0.2425,0.15308 -0.29453,0.12949,0.13865,0.13657,0.14157,-0.29203,-0.28454,0.13157,0.13199,0.13949,-0.3012,0.14323,0.12907,0.13657,0.14115,-0.29453,-0.2887,0.13324,0.1374,0.13782,-0.28829,-0.28787,0.14782,0.13865,0.1374 -0.13905,-0.1389,-0.13958,-0.13852,-0.13654,-0.13966,-0.13874,-0.1392,-0.13874,-0.13677,-0.13791,-0.13844,-0.13943,-0.13821,-0.1373,-0.13874,0.29098,0.29319,0.2925,0.29159,-0.11607,0.28976,0.29121,0.29197,0.2906 -0.13073,-0.13073,-0.098374,0.22523,0.3223,-0.16309,-0.098374,-0.16309,0.28994,0.19287,-0.13073,-0.22781,-0.13073,0.095785,0.22523,-0.098374,-0.22781,-0.16309,0.28994,0.25758,-0.19545,-0.13073,-0.16309,0.38702,-0.033654 -0.12402,-0.12402,-0.12402,-0.12402,-0.12628,-0.12327,-0.12402,-0.12553,-0.1244,-0.12553,-0.12214,-0.12289,-0.12779,-0.12515,-0.12591,-0.12666,-0.12176,-0.12704,0.32263,0.32565,0.32112,0.31547,0.30454,0.32942,0.32565 0.19908,0.18995,-0.20992,-0.20992,-0.20586,0.19122,0.18767,-0.21145,-0.21043,-0.20383,0.17447,0.19046,-0.21145,-0.21094,-0.20155,0.17523,0.19604,0.193,-0.21348,-0.20307,0.18411,0.19401,0.19223,0.22776,-0.20333 0.033297,-0.073539,-0.098022,-0.14921,-0.12473,0.035523,0.028846,-0.06241,-0.13586,-0.020121,0.37606,0.39832,-0.10025,-0.16702,-0.17592,0.24474,0.3271,-0.1047,-0.21154,-0.19373,0.28703,0.34268,-0.029024,-0.20931,-0.21821 -0.30095,-0.29232,-0.36131,-0.4691,-0.52083,0.17764,0.14314,0.095716,0.1259,0.10434,0.082782,0.082782,0.10003,0.087093,0.069847,0.10003,0.091405,0.074159,0.082782,0.065536,0.095716,0.095716,0.095716,0.10003,0.074159 -0.16294,-0.17305,-0.19074,-0.17558,0.25655,-0.16294,-0.1958,-0.17053,-0.087133,0.28182,-0.16547,-0.16042,-0.14273,0.25655,0.25907,-0.17305,-0.16294,0.12767,0.24897,0.25402,-0.16042,-0.13515,0.24897,0.23886,0.24644 -0.013045,-0.0175,-0.021064,-0.020173,0.97423,-0.012154,-0.0175,-0.021955,-0.024628,-0.029084,-0.013936,-0.013936,-0.031757,-0.048687,-0.052251,-0.057597,-0.062943,-0.061161,-0.061161,-0.061161,-0.062943,-0.066507,-0.064725,-0.066507,-0.071854 0.01774,-0.1454,-0.13691,-0.1449,-0.1449,0.39839,0.051166,-0.13941,-0.1434,-0.13442,0.23326,0.067629,-0.14041,-0.14091,-0.14041,0.23226,0.39889,-0.13891,-0.13891,-0.13442,0.39989,0.32905,-0.1414,-0.14839,-0.015186 0.65336,0.0027074,-0.086811,-0.078078,-0.078078,0.65336,-0.060611,-0.097728,-0.084628,-0.091178,0.063842,0.0070742,-0.075894,-0.093361,-0.093361,0.081309,-0.058427,-0.097728,-0.10428,-0.1152,0.042008,-0.02786,-0.054061,-0.099912,-0.10646 0.31049,0.31733,-0.099158,-0.11968,-0.12809,0.32365,0.32049,-0.096352,-0.12459,-0.12529,0.32452,0.32154,-0.12388,-0.13826,-0.12581,0.324,-0.12213,-0.12564,-0.13967,-0.12652,-0.12529,-0.11985,-0.11985,-0.13949,-0.14247 -0.058107,0.12367,0.12888,0.10701,0.12263,0.11013,0.11638,0.13201,0.11326,0.11638,0.087734,0.10284,0.17055,0.22212,0.10388,0.064816,0.072108,0.10648,0.13774,-0.33729,-0.35187,-0.35083,-0.34875,-0.34719,-0.34458 0.21273,0.16089,0.10905,0.091169,0.23775,0.13407,0.089382,0.10726,0.10726,0.23954,0.071505,0.050054,0.12513,0.1305,0.18413,0.084019,-0.03039,-0.31105,-0.35753,0,-0.28423,-0.23775,-0.34144,-0.3897,-0.18234 0.1338,0.089931,-0.085544,-0.26102,-0.62294,0.12283,0.046062,-0.0087737,-0.10748,-0.41456,0.15573,0.18864,0.046062,0.0021934,-0.28295,0.22154,0.11187,0.14477,0.046062,-0.06361,0.17767,0.14477,0.15573,0.046062,0.013161 0.066404,0.011975,0.066404,0.093619,0.12083,0.12083,0.093619,0.12083,0.14805,0.12083,0.066404,0.12083,0.17526,0.093619,0.093619,0.011975,-0.096885,0.12083,0.14805,0.17526,-0.17853,-0.42346,-0.42346,-0.42346,-0.42346 -0.076248,-0.053573,-0.026363,0.13992,0.62667,-0.071713,-0.073225,-0.05055,0.10969,0.67353,-0.080783,-0.076248,-0.058108,-0.071713,-0.039968,-0.083806,-0.091364,-0.089853,-0.070201,-0.06869,-0.083806,-0.10346,-0.089853,-0.10346,-0.086829 -0.047099,-0.030096,0.12931,0.11868,0.18245,-0.17675,-0.049225,0.14844,0.1782,0.18882,-0.16187,-0.14274,0.14631,0.13994,0.17607,-0.21926,-0.22989,-0.164,0.1867,0.21433,-0.45305,-0.32978,-0.25752,0.22708,0.22495 0.1497,0.14616,0.14616,-0.30308,-0.33138,0.14086,0.13732,0.14262,-0.3243,-0.30661,0.13909,0.12671,0.13201,-0.26594,-0.26947,0.13201,0.13024,0.13024,-0.24471,-0.27832,0.14262,0.12671,0.13378,0.13024,0.13732 -0.01839,-0.058775,-0.08984,-0.08984,0.20838,-0.049455,-0.049455,-0.10848,-0.10227,0.14315,-0.024603,-0.030816,-0.083627,-0.083627,-0.08984,0.19596,0.037526,-0.10227,-0.071201,-0.13333,0.87007,0.043739,-0.083627,-0.1209,-0.10848 -0.35599,-0.35421,0.12899,0.10566,0.10584,-0.35546,0.10655,0.10869,0.10495,0.1062,-0.35653,0.10548,0.10442,0.1062,0.12364,-0.35564,0.11563,0.11118,0.1297,0.13166,-0.35581,0.10281,0.10744,0.10833,0.12026 0.085033,-0.098797,-0.11294,-0.13179,-0.17893,0.089746,-0.079942,-0.11765,-0.10351,0.033184,-0.0092386,0.0049021,-0.10822,-0.14122,0.19345,-0.028093,0.00018854,-0.065802,-0.13179,0.32071,-0.079942,-0.079942,-0.089369,0.014329,0.81564 0.13088,0.15685,-0.18074,-0.36251,-0.36251,0.13088,0.15685,0.18281,-0.050897,-0.36251,0.027007,0.18281,0.13088,-0.15477,-0.25864,0.078942,0.26072,0.15685,-0.024929,-0.31057,0.078942,0.28668,0.15685,0.0010387,-0.050897 0.29781,0.22823,0.089065,-0.11968,-0.4328,0.29781,0.089065,0.12386,-0.050099,-0.32843,0.054274,0.12386,0.19344,-0.015308,-0.22405,0.089065,-0.015308,-0.08489,-0.15447,-0.36322,0.12386,0.22823,-0.08489,0.15865,-0.22405 -0.28372,-0.2928,0.16826,0.1714,0.18049,-0.28617,-0.28547,0.17175,0.11971,0.17979,-0.28582,0.09945,0.1749,0.11587,0.2224,-0.28582,-0.29141,0.1005,0.10085,0.09456,-0.28826,0.10399,0.093163,0.099101,0.10329 -0.25772,0.10957,0.13386,0.1653,0.16721,-0.27154,0.1129,0.15864,0.16149,0.16149,-0.26439,-0.26868,0.16626,0.16054,0.15959,-0.26487,-0.26916,0.12434,0.16626,0.16149,-0.26582,-0.26439,-0.26534,0.12148,0.16149 0.058736,0.046487,-0.24323,-0.24229,-0.24323,0.18169,0.17981,0.18075,-0.23946,-0.24229,0.17698,0.17698,0.17933,-0.24229,-0.24229,0.17792,0.17651,0.17604,0.17557,-0.23994,0.17698,0.17604,0.17604,-0.23994,-0.24088 -0.21024,-0.094648,-0.087849,-0.030054,0.14673,-0.12185,-0.10825,-0.098048,-0.10485,0.061739,-0.10485,-0.11505,-0.10145,-0.11845,0.15013,-0.087849,-0.11505,-0.12185,0.078738,0.4969,-0.10825,-0.10145,-0.081049,0.4833,0.4935 -0.17121,-0.1723,-0.17449,0.20531,0.2034,-0.17203,-0.17285,-0.17695,0.20094,0.2034,-0.1723,-0.17285,-0.17777,0.20148,0.20421,-0.17339,-0.17339,-0.17667,0.2023,0.20012,-0.17203,-0.17476,0.40941,0.2023,0.20012 -0.15492,-0.1449,-0.054714,0.28098,0.30103,-0.16995,-0.15492,0.12566,0.24591,0.18579,-0.23008,-0.22507,0.13067,0.28599,0.16073,-0.2401,-0.23509,0.090588,0.24591,0.055515,-0.25513,-0.27016,-0.099808,0.22086,-0.094797 0.42361,0.26473,-0.097733,-0.097733,-0.097733,0.44844,-0.098636,-0.097733,-0.098636,-0.098636,0.45521,-0.099538,-0.099538,-0.099538,-0.097733,0.38344,-0.098636,-0.10044,-0.10044,-0.098636,-0.09683,-0.097733,-0.098636,-0.099538,-0.10134 -0.024341,-0.20332,-0.31071,0.011455,0.4947,-0.042239,-0.0064432,-0.095932,0.13674,0.36941,-0.042239,-0.095932,-0.14963,0.065148,0.38731,-0.095932,-0.14963,-0.14963,-0.042239,0.29782,-0.095932,-0.14963,-0.20332,-0.095932,0.19043 0.1389,0.1821,0.16158,0.16374,-0.23794,0.14646,0.1767,0.15294,0.1551,-0.23686,0.15942,0.19829,0.1551,-0.22823,-0.2455,0.16158,0.17238,-0.23362,-0.2455,-0.26602,0.16374,0.1551,-0.22283,-0.26386,-0.26278 0.099596,0.18987,0.10309,-0.2818,-0.2545,0.28574,0.20107,0.10869,-0.2741,-0.2678,0.27595,0.19267,-0.24961,-0.2671,-0.2727,0.056908,0.19547,0.099596,0.042912,-0.21392,0.04921,0.21506,0.11149,0.042212,-0.18802 -0.12932,-0.015396,-0.043108,-0.083136,-0.089295,-0.036949,-0.052345,-0.080057,-0.07082,-0.076978,0.0061582,-0.015396,-0.073899,-0.089295,-0.076978,0.68049,0.049266,-0.080057,-0.098532,-0.083136,0.64354,0.055424,-0.07082,-0.076978,-0.092374 -0.15219,-0.15219,-0.15235,-0.14865,0.13665,-0.15879,-0.15267,-0.155,0.14446,0.26432,-0.1608,-0.1612,0.14317,0.14494,0.14558,-0.1538,-0.15694,-0.15927,0.35802,0.26657,-0.15525,-0.15734,-0.15613,0.35593,0.37292 0.24323,0.24323,0.24069,-0.13117,-0.17829,0.24705,0.24323,0.25088,-0.14518,-0.1681,0.24323,0.24705,-0.16173,-0.17956,-0.16683,0.24578,-0.16046,-0.149,-0.17319,-0.15791,0.24196,-0.16937,-0.17447,-0.15918,-0.17192 0.45003,0.3214,0.097823,0.053414,0.079446,0.37806,0.28005,0.13764,0.048819,0.0059416,0.2969,-0.14107,-0.13954,-0.084408,-0.082877,-0.15944,-0.15485,-0.19007,-0.17935,-0.1671,-0.16863,-0.19007,-0.17782,-0.15485,-0.15944 0.011812,0.11025,0.28744,0.46462,0.72056,-0.04725,-0.126,0.070875,-0.027562,-0.027562,-0.066937,-0.10631,-0.10631,-0.066937,-0.10631,-0.126,-0.066937,-0.086625,-0.086625,-0.066937,-0.10631,-0.14569,-0.10631,-0.10631,-0.086625 -0.21723,-0.22091,0.21541,0.24201,0.30822,-0.21723,-0.22119,0.21145,0.2522,0.3085,-0.21752,-0.22233,0.22107,0.25163,0.026111,-0.21752,-0.2195,0.030073,0.025829,0.023565,-0.21808,-0.21865,0.024414,0.024131,0.025546 -0.11654,-0.034275,-0.0080985,-0.012372,0.95828,-0.13417,-0.062053,-0.0070301,-0.0043591,-0.0027565,-0.097311,-0.06419,-0.028932,-0.00061968,-0.0016881,-0.10532,-0.065793,-0.019851,0.0020513,-0.0011539,-0.090366,-0.073806,-0.030535,0.0020513,-0.0011539 -0.076269,-0.086331,-0.086331,-0.10142,0.36645,-0.086331,-0.12155,-0.12155,-0.086331,0.56266,-0.10142,-0.086331,-0.10142,-0.091362,0.1954,-0.086331,-0.091362,-0.086331,-0.086331,0.54757,-0.10142,-0.11149,-0.091362,-0.056145,0.18534 -0.35555,-0.31435,0.097643,0.094701,0.11677,-0.32318,-0.30847,0.094701,0.10206,0.10794,-0.30553,0.11383,0.093229,0.11677,0.16239,-0.32613,0.13443,0.18446,0.16533,0.15356,-0.29375,0.088815,0.13001,0.13443,0.1359 -0.34714,-0.33882,0.037237,0.040802,0.2517,-0.33347,-0.34001,0.024761,0.025356,0.26834,-0.32991,-0.028112,0.018227,0.016444,0.29626,-0.032865,0.018821,0.045554,0.015256,0.30576,-0.045341,-0.032865,0.085952,0.086546,0.29151 -0.092159,-0.24836,-0.28741,-0.32646,-0.20931,-0.24836,0.024992,-0.014058,-0.13121,-0.17026,0.14214,0.064043,-0.053109,-0.24836,-0.13121,0.2593,0.29835,0.024992,0.2593,-0.014058,0.29835,0.22025,0.2593,0.18119,0.14214 0.45466,0.31463,0.29889,0.28805,0.28172,-0.12426,-0.12263,-0.12263,0.30236,0.27865,-0.12488,-0.12426,-0.12345,-0.12283,-0.12283,-0.12365,-0.12385,-0.12345,-0.12447,-0.12283,-0.12263,-0.12263,-0.12222,-0.12263,-0.12283 -0.096984,-0.093428,-0.10854,-0.095206,-0.075646,-0.093428,-0.095206,-0.098762,-0.086315,-0.056974,-0.09165,-0.09165,-0.088093,-0.095206,-0.068533,-0.084537,-0.075646,-0.075646,-0.079202,-0.093428,0.46493,0.48983,0.4436,-0.084537,0.43026 -0.36384,-0.31337,0.20021,0.20317,0.15271,-0.33712,-0.32821,0.17052,0.23583,0.1438,-0.15306,0.057711,0.072554,0.075522,0.087397,-0.27478,0.078491,0.087397,0.10521,0.10818,-0.28368,-0.17384,0.10818,0.17052,0.17052 -0.29067,-0.28975,0.13776,0.1391,0.13734,-0.29025,-0.28899,0.13952,0.13551,0.13316,-0.29251,0.12154,0.13944,0.13994,0.13684,-0.29292,-0.29317,0.1233,0.13801,0.13442,-0.29301,0.14278,0.13551,0.13977,0.15733 -0.24129,-0.24174,-0.24069,-0.24189,-0.24249,-0.24189,-0.24129,-0.24009,-0.24084,0.17448,-0.24009,0.10959,0.11259,0.11635,0.17208,0.20738,0.21008,0.21924,0.1159,0.1183,0.20407,0.20813,0.21353,0.1129,0.1177 -0.22413,0.17641,0.17143,0.18671,0.20271,-0.22306,-0.23088,0.17037,0.17214,0.17392,-0.22271,-0.2252,0.16752,0.17961,0.1789,-0.22449,-0.2252,-0.22875,0.16432,0.18103,-0.22306,-0.22306,-0.22982,0.17356,0.18174 0.67679,0.4069,0.11838,0.10908,0.36036,0.17422,-0.039833,-0.10498,-0.10498,-0.11429,-0.086367,-0.058447,-0.1329,-0.086367,-0.11429,-0.086367,-0.095674,-0.12359,-0.067754,-0.12359,-0.077061,-0.10498,-0.11429,-0.12359,-0.086367 -0.11879,-0.069499,-0.15576,-0.22969,-0.36524,0.23856,0.17695,0.12766,0.066048,-0.35291,0.2016,0.16463,0.12766,0.016759,-0.2913,0.12766,0.18927,0.090693,0.078371,-0.31595,0.23856,0.17695,0.13998,0.041403,-0.30363 -0.1479,-0.14271,-0.14997,-0.123,-0.089816,-0.15101,-0.1313,-0.12197,-0.13338,-0.10641,-0.12508,-0.10641,-0.11989,-0.11574,-0.11367,0.34163,0.34578,-0.10019,-0.10226,-0.12404,0.33022,0.34578,0.40594,0.22236,0.21303 0.19177,0.17037,-0.12927,0.12756,0.10616,0.063353,0.19177,0.14897,0.14897,0.23458,0.063353,0.04195,-0.043662,0.12756,0.25598,0.063353,0.04195,0.020547,0.04195,-0.086469,-0.3219,-0.34331,-0.38611,-0.42892,-0.3005 0.33357,-0.11907,-0.12587,-0.12587,-0.12315,0.33765,-0.12383,-0.12587,-0.12587,-0.12791,0.42125,-0.11296,-0.12655,-0.12111,-0.12791,0.31182,-0.12383,-0.11772,-0.12587,-0.12451,0.286,0.26289,0.27172,-0.11907,-0.12791 -0.09982,-0.14248,-0.176,-0.176,-0.19428,-0.051068,-0.10591,-0.11201,-0.11201,-0.10287,-0.014504,-0.03888,-0.035833,-0.029739,-0.035833,0.083001,0.061672,0.089095,0.064719,0.07386,0.058625,0.031201,0.076907,0.0068253,0.88132 0.18742,0.1048,0.092932,0.098864,0.2103,0.087,0.095474,0.092085,0.092085,0.20649,0.089542,0.086152,0.09039,0.091237,0.097169,0.092085,-0.34139,0.096322,0.092085,0.10056,-0.34817,-0.34944,-0.35537,-0.3558,-0.35283 -0.4892,-0.41659,-0.29211,-0.178,-0.022406,-0.30248,-0.18838,-0.095019,0.019087,0.10207,-0.074272,-0.032779,0.11245,0.15394,0.17469,0.070953,0.13319,0.12282,0.14357,0.2058,0.13319,0.15394,0.2058,0.18506,0.17469 0.10906,0.21138,0.20524,0.21411,0.26527,0.23321,0.2223,0.22434,0.082458,0.067451,-0.24429,0.081776,0.081776,0.077683,0.053126,-0.26134,-0.24429,-0.23747,0.082458,0.079729,-0.26612,-0.26475,-0.26066,-0.25589,-0.25657 -0.21375,-0.12906,-0.17038,-0.22561,-0.22479,-0.21743,-0.1356,-0.045184,-0.17774,-0.18756,-0.14133,-0.14828,0.16879,-0.19083,-0.01409,0.24612,0.23793,0.39177,0.26207,-0.018591,0.36354,0.23957,0.10988,0.11233,0.10824 -0.093165,-0.093165,-0.077212,-0.22079,-0.20483,-0.14102,-0.10912,-0.093165,-0.17293,-0.18888,-0.17293,-0.14102,-0.10912,-0.14102,-0.15698,0.16208,0.16208,0.24185,0.35352,0.14613,-0.093165,0.11422,0.17803,0.40137,0.44923 0.088201,0.094489,0.16471,0.20453,0.2192,0.079293,0.096585,0.095013,0.16444,0.22497,0.091607,0.11519,0.14034,0.1461,0.14113,-0.28254,0.085057,0.13746,-0.28149,-0.2828,-0.29459,-0.30533,-0.27206,-0.28489,-0.28463 -0.042699,-0.045013,-0.041542,-0.026499,0.97848,-0.050799,-0.05427,-0.043856,-0.02187,-0.031127,-0.048484,-0.052534,-0.041542,-0.023027,-0.024763,-0.061792,-0.049642,-0.039227,-0.03807,-0.027656,-0.050799,-0.048484,-0.043856,-0.03807,-0.032863 -0.094354,-0.099,-0.099,-0.10069,-0.093932,-0.099845,-0.099845,-0.10111,-0.10322,0.18398,-0.099423,-0.099845,-0.099845,-0.10322,0.18313,-0.10027,-0.099423,-0.10238,0.18482,0.18271,-0.10238,-0.1028,-0.09351,0.62407,0.53538 -0.16631,-0.11412,-0.20111,-0.20111,-0.14892,-0.096726,-0.14892,-0.096726,-0.14892,-0.14892,-0.027139,-0.061933,-0.11412,0.059845,0.059845,-0.061933,-0.11412,-0.027139,0.286,0.33819,-0.061933,0.025051,0.18162,0.44257,0.54696 -0.18928,-0.19092,-0.048137,-0.048137,-0.051214,-0.18949,-0.19051,-0.042803,-0.041777,0.32257,-0.19277,-0.19461,-0.044649,-0.043623,0.3238,-0.19338,-0.041777,-0.040751,0.3275,0.32667,-0.19256,-0.043213,-0.041162,0.32791,0.39232 -0.079088,0.019443,0.032581,0.026012,0.012875,-0.022159,0.032581,0.028202,-0.01559,-0.0068315,-0.01559,-0.057192,-0.079088,-0.057192,-0.092225,-0.092225,-0.083467,-0.052813,-0.035296,-0.070329,-0.11412,-0.10098,-0.070329,-0.061571,0.95439 0.31869,0.32228,0.32013,0.32085,0.32372,0.31869,0.31941,-0.11432,-0.14664,-0.11863,-0.11719,-0.11576,-0.1215,-0.1294,-0.12007,-0.12725,-0.12366,-0.13156,-0.13012,-0.12007,-0.1215,-0.12294,-0.1215,-0.13515,-0.12653 -0.066674,-0.068829,-0.071907,-0.07006,-0.072215,-0.068829,-0.069137,-0.070676,-0.070984,-0.0716,0.39114,-0.070368,-0.071292,-0.070676,-0.069137,0.39237,-0.071907,-0.07006,-0.070368,-0.070368,0.76428,-0.070676,-0.0716,-0.070676,-0.069752 0.53312,0.51628,-0.00054735,-0.03002,-0.022652,0.54364,-0.018441,-0.027915,-0.05423,-0.051072,-0.027915,-0.03423,-0.071071,-0.083702,-0.08686,-0.044756,-0.097386,-0.10686,-0.1237,-0.11633,-0.090018,-0.11423,-0.12054,-0.13107,-0.13949 0.099228,0.10606,0.14023,0.08556,0.078727,0.14023,0.14023,0.099228,-0.016948,-0.064785,0.16757,0.1539,0.058225,-0.085287,-0.31764,0.1539,0.14023,0.065059,-0.15363,-0.44748,0.18124,0.14023,0.030889,-0.40648,-0.48849 0.2521,0.17526,0.15647,0.13222,0.12539,0.25415,0.17491,0.15647,0.13154,0.12676,-0.2356,0.16296,0.16023,0.13598,0.13222,-0.23867,-0.23218,-0.2356,0.14247,-0.25814,-0.23628,-0.23082,-0.23355,-0.25882,-0.2595 0.32193,0.32151,0.32214,0.32151,0.32193,-0.12062,-0.12409,-0.12083,0.31793,0.31793,-0.12336,-0.12294,-0.12336,-0.12315,-0.12336,-0.12546,-0.12504,-0.12504,-0.12472,-0.12546,-0.12766,-0.12766,-0.12714,-0.12745,-0.12756 0.13374,0.13374,0.25378,0.15287,0.25821,0.13443,0.13443,0.13415,0.13582,0.13249,0.094095,0.094927,0.098254,0.098115,-0.11701,0.13402,0.13402,-0.3173,-0.11618,-0.11784,-0.31772,-0.31869,-0.31772,-0.3173,-0.3173 -0.044857,-0.063864,-0.063864,-0.078119,-0.078119,-0.078119,-0.10188,-0.078119,-0.11613,-0.097126,-0.12564,-0.097126,-0.097126,-0.11138,-0.13039,-0.10663,-0.11138,-0.097126,-0.063864,0.045427,-0.0020908,0.14521,0.46358,0.53961,0.54912 -0.14363,-0.14608,-0.14485,-0.14179,-0.14485,-0.12955,-0.12955,-0.12955,-0.13199,-0.13444,-0.11852,-0.11852,-0.11056,-0.1124,-0.12036,0.45156,0.31929,0.20601,0.11478,-0.1173,0.44421,0.31562,0.20601,0.12641,-0.10995 -0.22487,-0.22238,-0.22259,0.2471,0.14746,-0.22425,-0.22363,-0.22633,0.2159,0.16951,-0.22425,-0.22425,0.20217,0.17076,0.17117,-0.22363,-0.22591,0.18012,0.17409,0.16951,-0.22425,0.11293,0.17325,0.17076,0.16161 0.44896,-0.071875,-0.17604,0.1625,-0.15,0.39688,-0.045833,-0.15,-0.071875,-0.17604,0.42292,0.00625,-0.25417,-0.019792,-0.15,0.24063,-0.097917,-0.25417,-0.045833,-0.097917,0.26667,0.00625,-0.045833,-0.097917,-0.045833 0.73508,0.15047,-0.0020334,-0.078287,-0.25621,0.30298,-0.0020334,-0.078287,-0.078287,-0.1037,0.27756,-0.027451,-0.1037,-0.027451,-0.20538,0.20131,-0.027451,-0.052869,-0.078287,-0.12912,-0.0020334,-0.027451,-0.1037,-0.12912,-0.15454 0.2482,0.11893,-0.010342,-0.26889,-0.26889,0.2482,0.2482,-0.010342,0.11893,-0.26889,0.42056,-0.13961,-0.010342,-0.010342,-0.26889,0.2482,-0.010342,-0.096523,-0.26889,-0.010342,0.29129,-0.010342,-0.010342,-0.010342,-0.26889 0.24692,0.1836,0.16537,-0.12055,-0.16564,0.18072,0.11836,-0.11959,-0.25199,-0.27118,0.13563,0.13563,0.093412,-0.25295,-0.29613,0.12028,0.14906,0.11452,-0.27406,-0.29421,0.12028,0.14426,0.17017,0.27091,-0.30284 -0.060754,-0.088067,-0.11182,-0.10707,-0.11182,-0.083317,-0.097567,-0.098755,-0.094005,-0.084505,-0.097567,-0.067879,-0.072629,-0.094005,-0.079754,-0.10707,-0.083317,-0.069067,-0.070254,-0.069067,-0.077379,0.45582,0.50213,0.4392,0.42851 0.085201,-0.0011514,-0.14507,-0.087504,-0.17386,0.11399,0.056417,0.027633,-0.11629,-0.029936,0.34426,0.14277,-0.20264,-0.26021,-0.087504,0.40183,-0.0011514,-0.087504,-0.087504,-0.05872,0.57453,0.14277,-0.087504,-0.20264,-0.26021 -0.054866,-0.052219,-0.081994,-0.10251,-0.082325,-0.052881,-0.047257,-0.10681,-0.10813,-0.095558,0.02652,-0.043948,-0.11442,-0.10747,-0.10548,0.46984,0.41095,-0.10482,-0.10416,-0.10284,0.4576,0.46752,-0.11012,-0.12335,-0.13129 -0.10504,-0.1169,-0.010196,0.12022,0.19135,-0.10504,-0.12876,-0.081332,0.084651,0.084651,-0.1584,-0.17618,-0.13468,0.084651,0.15579,-0.21175,-0.14061,-0.17025,0.39883,0.19728,-0.21767,-0.21175,-0.17618,0.49368,0.33363 0.17861,0.077169,0.07571,0.07425,-0.13447,0.17131,0.15708,0.15197,0.072061,-0.34247,0.15051,0.11731,0.11038,-0.33626,-0.33955,0.15599,0.11585,0.11329,0.14978,-0.3421,0.12205,0.11001,0.07498,-0.34028,-0.3432 0.062916,-0.019919,-0.031614,-0.026741,-0.047206,0.33091,0.34066,-0.10665,-0.09106,-0.13102,0.35625,0.33773,-0.095933,-0.12127,-0.14953,0.33578,-0.040384,-0.12907,-0.14953,-0.20995,0.31239,-0.088136,-0.1661,-0.23821,-0.23432 -0.34186,-0.11987,-0.19387,0.2501,0.3611,-0.15687,-0.11987,-0.19387,0.028118,0.065116,-0.26786,0.028118,0.065116,-0.0088794,0.2501,-0.26786,-0.11987,-0.11987,0.3241,0.2501,-0.11987,-0.0088794,-0.082874,0.21311,0.2871 -0.29178,-0.29178,-0.29178,-0.12707,-0.080006,-0.1506,-0.0094124,-0.080006,-0.1506,-0.080006,0.014119,-0.056474,-0.056474,0.084712,-0.12707,0.084712,0.084712,0.084712,-0.056474,-0.056474,0.43768,0.43768,0.43768,0.1553,0.084712 0.10097,0.093698,0.09255,0.09102,0.09102,0.08796,0.086812,0.087577,0.088342,0.091403,0.09102,0.091403,0.08796,0.08949,0.092933,0.10747,0.094081,0.097141,0.094081,0.090638,-0.027575,-0.45299,-0.45796,-0.45375,-0.45528 0.69725,0.50716,0.24104,0.069953,0.012926,-0.044101,0.050944,0.050944,-0.06311,0.031935,-0.082119,-0.025092,-0.13915,-0.082119,-0.082119,-0.044101,-0.13915,-0.15816,-0.10113,-0.10113,-0.12014,-0.12014,-0.15816,-0.10113,-0.10113 -0.023171,-0.1454,-0.14615,-0.14877,-0.15515,-0.029732,-0.011548,-0.013798,-0.016235,-0.1484,0.3752,-0.012673,-0.013798,-0.15477,-0.1484,0.38307,0.3797,-0.12665,-0.12534,-0.12722,0.39432,0.39657,-0.12797,-0.12534,-0.12834 -0.28911,-0.28559,0.19476,0.18101,0.18383,-0.28982,0.12105,0.11118,0.1863,0.18207,-0.28876,0.10836,0.11576,0.1334,0.11365,-0.28629,-0.29546,0.11506,0.11294,0.11294,-0.28418,-0.29193,0.11471,0.11224,0.11188 -0.046229,-0.033035,-0.031813,-0.017397,0.97878,-0.042564,-0.037922,-0.037433,-0.044274,-0.051116,-0.041342,-0.036456,-0.039632,-0.048184,-0.05136,-0.029125,-0.03279,-0.04965,-0.049894,-0.046962,-0.022039,-0.041342,-0.05136,-0.053559,-0.043297 -0.16265,-0.16364,0.24764,0.24736,0.2475,-0.16194,-0.16194,-0.16194,0.24538,0.24595,-0.16223,-0.16294,-0.16279,-0.16619,0.24481,-0.16265,-0.16294,-0.16393,0.24354,0.24283,-0.16393,-0.16393,-0.16577,0.24184,0.24255 0.044494,0.053826,0.21433,0.27406,-0.33811,0.076222,0.04636,0.059425,0.1938,-0.33438,0.12475,0.078088,0.04636,0.055692,-0.33438,0.11728,0.12101,0.093019,0.079955,-0.37357,0.13221,0.14341,0.10235,-0.33438,-0.34184 0.27615,0.26599,0.018507,-0.11958,-0.24272,0.27615,0.26599,-0.0065995,-0.11599,-0.23734,0.26659,0.24985,0.084861,-0.12377,-0.21762,0.24626,0.23072,0.12252,-0.13333,-0.23914,-0.16681,-0.16681,-0.15425,-0.14588,-0.23376 -0.12795,-0.12729,-0.12397,-0.10271,-0.086772,-0.116,-0.12928,-0.12131,-0.10006,-0.09275,0.01618,-0.13194,-0.12596,-0.10869,-0.090758,0.0095381,0.006217,-0.12795,-0.12463,0.10253,0.0042244,0.52098,0.47714,0.47183,0.22939 0.14113,0.14113,0.018051,0.059076,-0.26912,0.2642,0.1001,-0.10502,-0.18707,-0.10502,0.18215,0.22318,0.18215,-0.14605,-0.26912,0.34625,0.1001,-0.063999,-0.14605,-0.3922,0.2642,-0.022974,0.059076,-0.3922,0.018051 -0.083388,-0.11087,-0.11545,-0.11807,-0.12068,0.37006,-0.10302,-0.11545,-0.12003,-0.12134,0.36352,-0.097783,-0.11938,-0.11349,-0.12003,0.36221,0.33473,-0.11349,-0.11283,-0.1148,0.37006,0.33146,-0.10302,-0.11545,-0.11349 -0.13938,-0.14107,-0.14489,-0.14616,0.30704,-0.13938,-0.14616,-0.14446,0.30873,0.30789,-0.14107,-0.14446,-0.14616,0.31806,0.31001,-0.13174,-0.14489,-0.1487,0.3134,0.30789,-0.12072,-0.14785,-0.078752,-0.073665,0.10651 0.1757,0.17209,0.17209,0.16127,-0.13831,0.1757,0.1757,0.16307,0.099907,-0.25922,0.18112,0.1757,0.065618,0.022306,-0.39999,0.069228,0.051181,0.02772,-0.3639,-0.41623,0.038548,0.029525,0.016892,-0.0029597,-0.39277 -0.15583,-0.1647,-0.16343,-0.16597,0.28921,-0.1609,-0.16343,-0.1609,0.27399,0.27716,-0.1609,-0.1609,-0.15836,0.25434,0.26385,-0.1647,-0.1609,-0.16343,0.24864,0.15228,-0.1609,-0.1609,0.24737,0.25181,0.16749 0.060032,-0.11863,-0.14058,-0.14873,-0.15437,0.43053,-0.13493,-0.13995,-0.14998,-0.15562,0.27255,0.27757,-0.13055,-0.14873,-0.15499,0.27192,0.25562,-0.12804,-0.14747,-0.15311,0.25124,0.23933,0.25312,-0.15061,-0.15562 -0.13774,-0.13741,-0.1383,0.29703,0.30332,-0.13763,-0.13729,-0.13819,0.28929,0.30354,-0.1383,-0.13853,-0.13808,-0.13853,0.28335,-0.13718,-0.13853,-0.13853,-0.13886,0.28234,-0.12967,-0.13101,-0.13785,0.28829,0.28447 -0.076436,-0.06301,-0.049585,-0.22188,-0.29796,0.017543,-0.060773,-0.051822,-0.083149,-0.28453,0.29277,0.28381,-0.06301,-0.056298,-0.15475,0.33528,0.35094,-0.040634,-0.080911,-0.11224,0.3487,0.37779,-0.04511,-0.1279,-0.13685 -0.052316,0.40366,0.41527,0.45206,0.48014,-0.048443,-0.044571,-0.047475,-0.056188,-0.064901,-0.25174,-0.048443,-0.067805,-0.07071,-0.05522,-0.25078,-0.062965,-0.074582,-0.061029,-0.054252,-0.20334,-0.061997,-0.069742,-0.057156,-0.047475 -0.26584,-0.26752,0.17175,0.14995,0.11894,-0.23901,0.18432,0.2078,0.19606,0.22289,-0.27087,-0.28093,0.16504,0.14157,0.12397,-0.26081,-0.26165,0.11894,0.11726,0.11475,-0.2541,-0.27171,0.11475,0.11307,0.11139 -0.25124,0.17292,0.14362,0.12127,-0.30388,0.19329,0.16945,0.14163,-0.23286,-0.25769,0.1908,0.16547,0.14809,-0.22839,-0.23336,0.19428,0.16746,0.14262,-0.22938,-0.23336,0.18137,0.16398,0.13865,-0.23485,-0.22988 0.2466,0.46291,0.2466,0.39081,0.3187,-0.041821,-0.077873,-0.041821,-0.0057684,0.066337,0.030284,0.13844,-0.041821,-0.041821,-0.041821,-0.22208,-0.041821,-0.14998,-0.11393,-0.041821,-0.11393,-0.40235,-0.25814,-0.18603,-0.077873 0.29766,-0.18297,-0.24926,-0.2686,-0.27688,0.27832,0.024197,-0.20783,-0.23545,-0.25755,0.24517,0.16783,-0.09734,-0.17468,-0.2023,0.19822,0.20927,0.12916,-0.050383,-0.13325,0.18717,0.19545,0.19269,0.13745,0.073917 -0.070399,-0.063167,-0.068591,0.42927,0.7885,-0.075523,-0.070399,-0.073112,-0.064975,0.29667,-0.080947,-0.064975,-0.073413,-0.071605,-0.048098,-0.08155,-0.06166,-0.066482,-0.067687,-0.057441,-0.082756,-0.082153,-0.073112,-0.053824,-0.062564 0.093276,-0.061248,-0.13021,-0.22088,-0.31666,0.11371,-0.020382,-0.12255,-0.18257,-0.309,0.11115,0.0038823,-0.10722,-0.16852,-0.25408,0.21077,0.2925,0.15074,0.0307,-0.076572,0.49299,0.32442,0.17373,0.053687,-0.08168 0.35332,-0.13048,-0.074175,0.045339,-0.14696,0.34872,-0.12895,-0.080304,-0.14581,-0.14236,0.33838,-0.13393,-0.13163,-0.1504,-0.14044,0.26177,0.26138,-0.13163,-0.15002,-0.13929,0.2587,0.36443,-0.13317,-0.13432,-0.13815 -0.149,-0.14811,-0.15662,0.23507,-0.15528,-0.14856,-0.14811,-0.15214,0.23821,0.23641,-0.14631,-0.14542,-0.15124,0.2391,0.25165,-0.14452,-0.14497,-0.15169,0.25479,0.24986,-0.14183,-0.14497,-0.15349,0.34083,0.33635 -0.097344,-0.1,-0.1071,-0.093798,-0.093798,-0.092911,-0.088477,-0.094684,-0.08227,-0.089364,-0.08094,-0.08227,-0.07828,-0.080053,-0.08094,-0.084044,-0.079167,-0.078723,-0.078723,-0.077393,-0.091137,0.44267,0.46173,0.46085,0.46617 0.11046,-0.28731,-0.29302,-0.29988,-0.28159,0.11846,-0.28617,-0.29188,-0.30217,-0.28731,0.13332,0.12989,0.12875,0.12532,0.12875,0.14132,0.14247,0.14132,0.14361,0.13904,0.15047,0.14932,0.14932,0.14704,0.15047 0.043253,-0.012364,-0.012364,-0.013434,0.96629,-0.036964,-0.02306,-0.026269,-0.024129,-0.013434,-0.094721,-0.063703,-0.028408,-0.024129,-0.035895,-0.089373,-0.089373,-0.027338,-0.026269,-0.027338,-0.10756,-0.057286,-0.088303,-0.054077,-0.033755 0.18313,0.18313,0.22802,0.07092,-0.33305,0.13825,0.18313,0.22802,0.093363,-0.26572,0.18313,0.16069,0.18313,0.048477,-0.26572,0.093363,0.093363,0.07092,-0.063738,-0.33305,-0.018852,-0.10862,-0.1984,-0.086181,-0.46771 0.24574,0.24566,0.24196,-0.16146,-0.16114,0.2459,0.24597,0.24385,-0.16232,-0.16185,0.2459,0.2459,-0.16319,-0.16311,-0.1624,0.24377,-0.1646,-0.16413,-0.16421,-0.16264,0.24479,-0.16531,-0.16523,-0.16452,-0.16334 0.146,0.17311,-0.25729,-0.24543,-0.29287,0.16125,0.15955,-0.23018,-0.2539,-0.29118,0.16802,0.14938,0.16972,-0.22679,-0.26068,0.15616,0.15447,0.1765,0.15447,-0.23018,0.15786,0.16125,0.1765,0.16294,-0.13868 -0.030672,-0.016537,-0.023605,-0.12255,-0.034206,-0.04834,-0.041273,-0.11548,-0.083677,-0.11195,0.11067,-0.062475,-0.11901,-0.058941,-0.18262,0.66546,-0.0059365,-0.15082,-0.14728,-0.14375,0.4499,0.38276,0.061203,-0.04834,-0.12255 0.13653,0.13653,0.13041,0.13041,0.13857,0.14674,0.12428,0.13653,0.13041,0.13857,0.16715,0.12837,0.13449,0.12224,0.14674,-0.28809,-0.23501,0.14674,-0.29626,0.13041,-0.28809,-0.28605,-0.3085,-0.3085,-0.31463 -0.31968,0.11447,0.11972,0.12497,0.24095,-0.3258,0.11578,0.11535,0.12235,0.12497,-0.32405,0.10703,0.11185,0.11929,0.1241,-0.32318,-0.30873,0.10747,0.11972,0.12104,-0.31399,-0.31224,0.10703,0.11447,0.1171 0.2318,0.24586,0.26273,0.21493,0.096836,0.25992,0.2571,0.2318,0.21493,-0.13091,-0.12248,0.1362,-0.13373,0.25148,-0.054997,-0.19839,-0.16747,-0.13091,-0.20402,-0.20121,-0.23776,-0.20683,-0.18152,-0.21808,-0.21527 -0.0028582,0.17578,0.26867,0.27581,0.24723,-0.13862,0.018578,0.17578,0.25438,0.26867,-0.25295,-0.13862,0.018578,0.17578,0.26152,-0.25295,-0.22437,-0.16006,-0.0028582,0.10432,-0.25295,-0.25295,-0.22437,-0.20293,-0.13862 -0.24173,-0.24341,0.15164,0.15185,0.15101,-0.24236,-0.24341,0.15227,0.15143,0.15101,-0.2432,0.15269,0.15248,0.15269,0.15269,-0.24383,-0.24572,0.15898,0.15856,0.15646,-0.2453,-0.2453,-0.24488,0.22394,0.22143 -0.11755,-0.10963,-0.1014,-0.097746,0.019227,-0.11237,-0.10658,-0.10292,-0.10597,0.022274,-0.11541,-0.10932,-0.1078,0.015267,0.022883,-0.11633,-0.10963,-0.11145,0.36223,0.46031,-0.10902,-0.10932,-0.11115,0.48499,0.46641 0.39183,0.36652,0.2497,0.031621,-0.030686,0.33147,0.30032,-0.089099,0.010203,-0.032633,0.37431,0.01215,-0.17282,-0.15919,-0.098834,-0.067681,-0.16309,-0.17867,-0.13583,-0.16309,-0.09494,-0.17282,-0.16698,-0.16309,-0.17867 -0.21745,-0.19608,0.21403,0.20385,0.19368,-0.22254,-0.20422,-0.22152,0.18757,0.17841,-0.19506,-0.19811,-0.2032,0.22828,0.1835,-0.12383,-0.18692,-0.19913,0.22828,0.19062,-0.11772,-0.18895,0.23744,0.24049,0.18859 0.15467,0.14828,-0.094591,-0.14093,-0.13773,0.25693,0.14828,-0.10737,-0.12495,-0.17928,0.15147,0.13869,-0.10737,-0.12815,-0.22082,0.16745,0.18183,0.17225,-0.16969,-0.22561,0.55413,-0.19206,0.18343,-0.20644,-0.22242 -0.35004,0.099782,0.098804,0.085114,0.096849,-0.34222,0.093915,0.099782,0.091959,0.095871,-0.35493,0.10761,0.08707,0.095871,0.10565,-0.35493,0.13499,0.16432,0.13792,0.095871,-0.35395,-0.36569,0.17801,0.11738,0.13499 -0.34932,-0.18517,-0.25083,-0.18517,-0.086673,-0.25083,0.04465,-0.25083,-0.053843,-0.021012,-0.053843,0.077481,0.011819,-0.053843,-0.1195,-0.053843,-0.053843,0.14314,0.04465,0.04465,0.3073,0.43862,0.37296,0.17597,0.3073 -0.095143,-0.20165,-0.059642,-0.059642,0.29537,-0.095143,-0.23715,-0.16615,-0.024141,0.36637,-0.13064,-0.13064,-0.16615,0.082363,0.36637,0.11786,-0.13064,-0.13064,0.11786,0.25987,-0.16615,-0.16615,-0.23715,0.22437,0.36637 0.031128,-0.056621,-0.077404,-0.084331,-0.095877,0.0034176,-0.028911,-0.072785,-0.08664,-0.13051,0.33132,0.21817,-0.08664,-0.10973,-0.19979,0.24126,0.26897,-0.065858,-0.13513,-0.24828,0.40291,0.49758,-0.098186,-0.16284,-0.25521 -0.17417,-0.13825,-0.22148,-0.21249,-0.20052,-0.14423,-0.14184,-0.22267,-0.20411,0.14318,-0.14663,-0.14423,-0.22687,-0.22447,0.16234,0.23539,0.31263,0.19108,0.14677,0.13659,0.2821,0.33479,0.18689,0.13599,0.1342 -0.42685,-0.21199,0.11029,0.074484,0.39677,-0.17618,-0.10456,0.11029,0.1461,0.36096,-0.068754,-0.032945,0.074484,0.074484,0.11029,-0.42685,-0.068754,-0.032945,0.11029,0.1461,-0.21199,-0.2478,0.11029,0.1461,0.038674 0.029637,0.0023894,0.065269,-0.35393,-0.39061,0.044309,0.0034374,0.026493,0.11452,-0.37489,0.14072,0.11767,0.11138,0.15435,-0.30258,0.14282,0.1292,0.12291,0.1554,-0.30677,0.17321,0.18788,0.16483,0.17007,-0.32773 -0.28472,-0.28055,0.34836,0.36918,0.31087,-0.27222,-0.21391,0.0026656,0.044315,0.27339,-0.22224,-0.20142,-0.047314,0.0026656,0.17759,-0.15144,-0.068138,-0.030654,-0.0014994,0.26506,-0.18892,-0.063973,0.01516,0.069305,0.14844 -0.034897,-0.033534,-0.029448,-0.024681,0.97917,-0.042388,-0.038302,-0.03694,-0.032172,-0.025362,-0.04375,-0.045112,-0.04375,-0.043069,-0.036259,-0.045793,-0.046474,-0.047155,-0.048517,-0.04375,-0.047155,-0.048517,-0.047836,-0.047155,-0.047155 0.13776,0.11281,-0.23659,-0.18668,0.062892,0.15024,0.22511,-0.27403,-0.22412,-0.024458,0.28751,0.087849,-0.036937,-0.23036,-0.14924,0.27503,0.39981,-0.18668,-0.22412,-0.080612,0.23759,0.22511,0.012978,-0.24283,-0.11805 -0.16085,-0.096278,-0.043005,-0.096278,0.35573,-0.17538,-0.12695,-0.073677,-0.12211,0.33959,-0.16731,-0.13179,-0.12856,0.32667,0.31376,-0.14632,-0.12534,-0.12856,0.3186,0.28954,-0.13986,-0.13986,-0.12211,-0.094663,0.27501 -0.046128,-0.025161,-0.021348,-0.027067,0.97745,-0.053752,-0.053752,-0.021348,-0.0060995,-0.023254,-0.04994,-0.053752,-0.051846,-0.028973,-0.021348,-0.04994,-0.053752,-0.04994,-0.048034,-0.044222,-0.051846,-0.051846,-0.051846,-0.048034,-0.044222 -0.094802,-0.027541,-0.028379,-0.030475,0.97089,-0.093545,-0.026703,-0.027541,-0.029637,-0.019998,-0.093126,-0.026703,-0.027122,-0.026284,-0.019369,-0.093335,-0.027122,-0.026703,-0.027122,-0.022932,-0.093964,-0.026284,-0.026703,-0.027122,-0.028379 -0.030067,-0.033669,-0.038232,-0.040633,0.97952,-0.037992,-0.038952,-0.038232,-0.029827,-0.043515,-0.038712,-0.042314,-0.042795,-0.043995,-0.046157,-0.045436,-0.045917,-0.037511,-0.041354,-0.047117,-0.045196,-0.042555,-0.037752,-0.043515,-0.048078 -0.13195,-0.16596,-0.19997,0.10611,0.20813,-0.13195,-0.19997,-0.063935,0.072097,0.41218,0.004081,-0.26798,-0.19997,0.072097,0.27615,-0.13195,-0.16596,-0.19997,0.10611,0.48019,-0.029927,-0.19997,0.004081,0.20813,0.14011 -0.074649,-0.075067,-0.07444,-0.074858,-0.074858,-0.075067,-0.075485,-0.075276,-0.075276,-0.075067,-0.074858,-0.075276,-0.07444,-0.075276,-0.076322,0.56332,-0.07423,-0.07444,-0.07423,-0.070047,0.56332,0.49555,-0.067537,-0.067955,-0.067537 -0.33164,-0.27431,0.17993,0.17552,0.17111,-0.32723,-0.2699,0.15788,0.15127,0.15568,-0.33164,0.14686,0.12481,0.1226,0.12481,-0.34046,0.11599,0.098345,0.09614,0.08732,-0.33605,0.10055,0.065269,0.067474,0.069679 0.24261,0.25593,0.21596,-0.19704,-0.18372,0.23261,0.26592,0.20264,-0.22369,-0.23701,-0.14375,0.22928,0.082734,-0.22036,-0.25033,-0.073808,0.20264,0.0094591,-0.19704,-0.22702,0.26259,0.13269,-0.013856,-0.2137,-0.15374 -0.1123,-0.11284,-0.11094,-0.11094,0.3083,-0.11284,-0.11094,-0.1104,-0.1123,0.35976,-0.11121,-0.11257,-0.11094,0.30722,0.36247,-0.11257,-0.11121,-0.11067,-0.11392,0.36274,-0.11419,-0.11094,-0.11013,-0.11338,0.42476 0.32588,0.32477,0.31885,0.31959,0.31441,-0.1243,-0.12023,-0.11727,0.3107,0.33032,-0.12468,-0.12579,-0.12356,-0.12282,-0.12171,-0.12727,-0.12579,-0.12579,-0.12579,-0.12319,-0.12727,-0.12727,-0.12875,-0.12579,-0.12727 -0.29421,-0.29372,0.14004,0.14232,0.13261,-0.29074,0.12716,0.14222,0.14063,0.13191,-0.28965,-0.28985,0.1666,0.13677,0.13954,-0.29074,-0.29045,0.1227,0.14361,0.13895,-0.29084,0.1222,0.1222,0.144,0.13677 0.15414,0.15777,0.16031,0.14216,-0.26439,0.15233,0.15705,0.16322,0.1585,-0.26621,0.132,0.15995,0.16285,-0.26475,-0.26911,0.12184,0.16031,0.15886,-0.26621,-0.26621,0.12764,0.12728,-0.2673,-0.26584,-0.26621 0.036248,0.033039,-0.068602,-0.076091,-0.099629,0.033039,0.029829,-0.070742,-0.078231,-0.11568,0.033039,-0.0076177,-0.078231,-0.08786,-0.15419,0.034108,-0.017247,-0.081441,-0.09,0.1304,0.010571,-0.055763,-0.08572,-0.099629,0.92641 0.40389,0.35573,-0.090902,-0.10623,-0.1522,0.32507,0.32945,-0.11717,-0.12812,-0.14783,0.35354,-0.099659,-0.1522,-0.14783,-0.14783,0.34697,-0.090902,-0.12374,-0.088713,-0.099659,-0.06244,-0.12155,-0.093091,-0.077766,-0.066819 0.22786,0.3124,0.32448,0.30167,-0.1358,0.24128,0.26678,0.30435,0.32314,-0.13178,-0.10762,-0.10091,-0.061998,-0.083469,-0.16935,-0.13849,-0.14386,-0.14922,-0.12373,-0.16801,-0.13446,-0.15057,-0.1707,-0.16399,-0.16801 0.3222,0.30594,0.30826,0.31059,0.31755,0.32104,0.35471,-0.08769,-0.10395,-0.13414,-0.1411,-0.12601,-0.13181,-0.13646,-0.11672,-0.12717,-0.12252,-0.12369,-0.12369,-0.12949,-0.12485,-0.12833,-0.13298,-0.12136,-0.12833 -0.093697,-0.12176,-0.12011,0.2769,0.25131,-0.10938,-0.12176,-0.13001,0.2901,0.2868,-0.13166,-0.11516,-0.12424,-0.13084,0.51296,-0.13166,-0.12093,-0.12589,-0.10938,0.29753,-0.14735,-0.13249,-0.12424,-0.096173,0.27112 0.025522,-0.11515,-0.12358,-0.17364,-0.18523,0.025522,0.027629,-0.12833,-0.1573,-0.16521,0.033425,0.028683,0.023941,-0.13886,-0.16521,0.44228,0.35956,0.033952,-0.15836,-0.17522,0.34112,0.35482,0.32637,-0.17364,-0.1631 0.47828,0.42519,-0.081692,-0.090244,-0.098618,0.46563,-0.075456,-0.081158,-0.092026,-0.1004,0.46011,-0.073675,-0.08383,-0.090779,-0.10093,-0.068686,-0.075635,-0.085255,-0.093629,-0.10325,-0.067261,-0.077594,-0.087037,-0.097014,-0.10503 -0.13435,-0.10828,-0.11118,-0.10828,0.34795,-0.11552,-0.11118,-0.099589,-0.10828,0.37113,-0.11262,-0.10104,-0.10828,-0.10973,0.36968,-0.10973,-0.10538,-0.10828,0.26395,0.38416,-0.10828,-0.11407,-0.11262,-0.1358,0.38561 0.20625,-0.10668,-0.10668,-0.10734,-0.10372,0.20362,-0.10668,-0.10701,-0.10668,-0.10372,0.20296,-0.10734,-0.10734,-0.10569,-0.1047,0.46949,-0.10767,-0.10701,-0.10734,-0.10503,0.46916,0.4685,-0.10767,-0.10668,-0.10503 -0.26496,-0.22046,-0.17938,-0.14857,-0.083527,-0.17938,-0.17253,-0.12461,-0.076681,0.0054772,-0.16569,-0.10749,-0.062988,-0.021909,0.20745,-0.062988,-0.035602,0.0054772,0.25195,0.27934,-0.0082158,0.073942,0.10475,0.48473,0.50185 -0.053096,-0.059244,-0.064163,-0.077074,0.95275,-0.032807,-0.067237,-0.061089,-0.070311,0.11045,-0.016821,-0.059244,-0.061703,-0.066622,0.11045,-0.034036,-0.027888,-0.053096,-0.062933,-0.056785,-0.036496,-0.034036,-0.053096,-0.061703,-0.064163 -0.04505,-0.044595,-0.026833,-0.02319,0.97874,-0.042773,-0.04505,-0.029566,-0.022279,-0.032299,-0.049605,-0.032299,-0.026833,-0.045506,-0.04414,-0.046872,-0.040952,-0.04505,-0.049605,-0.040952,-0.059168,-0.039585,-0.051426,-0.048238,-0.046872 -0.14284,-0.21286,-0.14284,-0.10783,0.06722,-0.072822,-0.072822,-0.10783,-0.037811,0.52236,-0.072822,-0.037811,-0.10783,-0.037811,0.38231,-0.17785,-0.17785,-0.17785,-0.0028008,0.31229,-0.072822,-0.14284,-0.0028008,0.20726,0.41732 -0.17636,-0.099447,-0.10984,-0.25535,-0.29901,0.18118,0.16247,-0.057872,-0.10984,-0.25119,0.21029,0.12921,0.056459,-0.093211,-0.21794,0.27057,0.20405,0.11674,-0.049557,-0.23872,0.24978,0.46597,0.14169,-0.014219,-0.21586 -0.28499,-0.29143,-0.29357,-0.30216,-0.2807,0.1485,-0.29572,-0.3086,-0.27211,0.15065,0.14421,0.12061,0.13134,0.13992,0.14421,0.15709,0.13134,0.12919,0.12704,0.13134,0.14421,0.13777,0.13348,0.12061,0.13777 -0.091559,-0.19181,-0.24193,-0.20851,-0.25864,-0.024728,-0.024728,-0.074852,-0.12498,-0.12498,0.25931,0.092228,-0.12498,-0.24193,-0.24193,0.32614,0.27602,0.07552,0.025396,-0.19181,0.29272,0.32614,0.30943,0.15906,0.025396 -0.086752,-0.086752,-0.080285,-0.082872,-0.045367,-0.090631,-0.068646,-0.089338,-0.076406,0.44736,-0.16693,-0.057007,-0.066059,-0.069939,0.46159,-0.1346,-0.049247,-0.05442,-0.06218,0.45383,-0.14495,-0.17211,-0.085458,-0.036315,0.44348 0.49606,0.40751,0.29179,0.24046,-0.099664,0.26361,0.22436,0.24449,-0.1057,-0.11576,-0.089601,-0.10973,-0.12784,-0.13187,-0.13992,-0.11878,-0.1208,-0.1369,-0.1379,-0.13488,-0.11878,-0.093626,-0.1218,-0.13187,-0.13287 -0.28832,-0.28885,-0.28912,-0.28992,-0.29018,0.15638,0.15,-0.28566,-0.29125,-0.29071,0.17952,0.15718,0.11329,0.10585,0.1093,0.19335,0.11436,0.11356,0.11037,0.10877,0.19042,0.11994,0.16329,0.11409,0.11436 0.18148,0.12002,0.066954,-0.38349,-0.38554,0.17496,0.11202,0.069189,-0.38573,-0.3848,0.17775,0.12096,0.069189,0.03325,-0.38424,0.17794,0.1392,0.070493,0.042747,-0.0073442,0.16956,0.12598,0.069561,0.02096,-0.011068 -0.090744,-0.10589,-0.095793,-0.063817,-0.0655,-0.082329,-0.095793,-0.11094,-0.052036,0.46799,-0.084012,-0.090744,-0.10926,-0.046988,0.4478,-0.097476,-0.11094,-0.099159,-0.068866,0.45453,-0.072232,-0.10926,-0.11262,-0.060451,0.45453 0.24767,0.24767,-0.040028,-0.066833,-0.031093,0.24142,0.25482,-0.039135,-0.06862,-0.21604,0.2718,-0.029306,-0.033774,-0.0302,-0.22319,0.30307,-0.049856,0.28073,-0.24821,-0.25446,0.28609,-0.066833,-0.21604,-0.25625,-0.2634 -0.24446,-0.24328,-0.06244,-0.066563,0.19557,-0.2474,-0.061262,-0.060084,-0.06892,0.20735,-0.24976,-0.24446,-0.065974,0.1991,0.19792,-0.25094,-0.065385,-0.069509,0.20794,0.21029,-0.24976,0.17848,0.18496,0.30808,0.3605 -0.22496,0.17047,0.18158,0.17403,0.17358,-0.22585,-0.22585,0.18069,0.17092,0.17269,-0.22363,-0.22985,0.17492,0.17181,0.17625,-0.22363,-0.22363,-0.22674,0.17847,0.17891,-0.22452,-0.22407,-0.22852,0.19358,0.18336 0.29817,0.3243,0.31897,0.17875,-0.15446,0.28271,0.32643,0.17075,-0.14273,-0.16033,0.16489,0.16595,-0.14433,-0.15339,-0.16566,0.15103,-0.15926,-0.16246,-0.16459,-0.16779,-0.15499,-0.16033,-0.16139,-0.16246,-0.16779 -0.090394,-0.10281,-0.10472,-0.10281,-0.083708,-0.076067,-0.088484,-0.10281,-0.10759,-0.10472,0.3356,-0.086574,-0.081798,-0.11332,-0.11045,0.36998,0.36139,-0.064605,-0.10472,-0.11427,0.54,0.36139,-0.098035,-0.10854,-0.12191 -0.38498,0.19975,0.16364,0.19274,0.19759,-0.3866,0.18897,0.14316,0.040764,0.1146,-0.38067,0.055315,0.045614,0.033219,0.08765,-0.38283,0.036992,0.039147,0.035375,0.098429,-0.3866,0.032141,0.054237,0.045075,0.11729 -0.072974,0.00029307,0.073561,0.0296,0.93812,-0.094955,0.0076198,0.069897,0.044254,0.058907,-0.11327,-0.029014,-0.021687,-0.076638,-0.0070337,-0.091291,-0.069311,-0.091291,-0.091291,-0.040004,-0.054658,-0.080301,-0.091291,-0.10961,-0.087628 -0.16164,-0.16627,-0.12925,0.26715,0.29028,-0.16473,-0.12,0.23938,0.25635,0.30262,-0.16319,-0.15085,-0.13542,0.25172,0.29645,-0.16164,-0.16319,-0.16319,-0.12,0.24247,-0.13388,-0.1709,-0.16319,-0.12,0.24092 -0.082541,-0.10061,-0.11012,-0.10061,-0.079689,-0.0911,-0.10346,-0.10346,-0.11012,-0.085394,-0.094904,-0.085394,-0.0911,-0.088247,0.059148,0.55934,0.26455,-0.067326,-0.0911,-0.08159,0.55268,0.37486,-0.052111,-0.0911,-0.10061 -0.022767,-0.052207,-0.066927,0.031207,-0.066927,0.0263,0.0263,-0.10618,-0.062021,-0.022767,0.045927,0.021393,-0.17487,-0.15034,0.060647,0.036113,-0.11109,-0.10618,-0.1209,0.045927,0.045927,-0.062021,-0.16015,0.031207,0.91441 -0.06588,-0.075028,-0.068807,0.10647,0.11086,-0.049047,-0.15187,-0.15333,0.10683,0.17855,-0.040997,-0.14602,-0.15187,-0.046486,0.1727,-0.14858,-0.14711,-0.047584,-0.052707,0.58033,-0.14748,-0.14784,-0.14967,-0.046486,0.58106 0.040517,-0.056485,-0.075958,-0.078482,0.3528,-0.064418,-0.062976,-0.061533,-0.04747,-0.05937,-0.066943,-0.071991,-0.062255,-0.049273,-0.048912,-0.064779,-0.073073,-0.063697,-0.060812,0.038354,-0.063697,-0.068746,-0.073073,-0.045306,0.88758 0.010523,0.036829,0.11777,0.19062,0.2655,-0.15946,-0.18577,0.15015,0.10158,0.24931,-0.21814,-0.21207,-0.2141,0.24121,0.27359,-0.21207,-0.23231,-0.22219,-0.050185,0.25538,-0.2141,-0.22219,-0.19588,0.1886,0.2574 -0.14348,-0.14321,-0.14525,0.12744,0.12662,-0.1428,-0.14348,-0.14566,0.12662,0.12635,-0.1428,-0.14362,-0.14375,0.12771,0.6463,-0.1428,-0.14375,-0.14389,0.21892,0.21892,-0.14335,-0.14403,-0.14471,0.21797,0.21974 -0.047432,-0.049431,-0.043036,-0.031046,0.97891,-0.051029,-0.047432,-0.035043,-0.029447,-0.031046,-0.047432,-0.049431,-0.049031,-0.027449,-0.030247,-0.040638,-0.04983,-0.039439,-0.030247,-0.027049,-0.049431,-0.052628,-0.048631,-0.037441,-0.035043 -0.35478,-0.35418,0.11094,0.11482,0.11541,-0.35598,0.10765,0.11034,0.10974,0.11571,-0.35508,0.11213,0.11183,0.11362,0.1175,-0.35807,0.11064,0.11034,0.11303,0.11691,-0.35717,0.11004,0.11243,0.10855,0.11362 -0.18019,-0.17919,0.20636,0.2598,0.27229,-0.18319,-0.17869,0.20037,0.23783,0.26879,-0.18019,-0.1742,-0.14673,0.24082,0.25581,-0.1732,-0.14274,-0.14723,-0.14124,0.24981,-0.15572,-0.15472,-0.14673,-0.15472,0.24682 0.25029,0.25359,0.25406,-0.25163,-0.031068,0.25076,0.35209,0.23663,-0.24975,-0.24032,0.098066,0.098066,-0.029654,-0.25352,-0.24786,0.10184,-0.018814,-0.018814,-0.24409,-0.24221,0.2239,-0.015986,-0.018814,-0.022584,-0.23419 0.87238,0.12225,0.12115,0.11838,0.13773,-0.095543,0.11562,-0.081171,-0.076196,-0.081171,-0.092226,-0.092226,-0.093332,-0.084488,-0.081171,-0.095543,-0.096649,-0.092226,-0.08891,-0.077301,-0.095543,-0.09886,-0.09886,-0.095543,0.12944 0.12301,0.17696,0.096035,-0.092798,-0.57837,0.069059,0.12301,0.12301,-0.092798,-0.47047,0.20394,0.14999,-0.065822,-0.14675,-0.25466,0.20394,0.17696,0.096035,-0.038846,-0.22768,0.14999,0.12301,0.069059,0.042083,0.042083 0.36648,0.36899,-0.097387,-0.099895,-0.11995,0.38153,0.32636,-0.11494,-0.11243,-0.10992,0.35394,-0.089865,-0.11494,-0.10742,-0.12748,0.33388,-0.11494,-0.11995,-0.12246,-0.12497,-0.10742,-0.10742,-0.11995,-0.10992,-0.10992 0.33192,-0.067499,-0.065908,-0.065024,-0.32883,0.32644,-0.068737,-0.070151,-0.081821,-0.32706,0.1864,0.089686,0.094283,0.095167,-0.056183,0.17544,0.12487,0.085265,0.093045,-0.32016,0.28471,0.12522,0.081729,-0.32122,-0.32158 0.012642,0.011209,0.010389,0.0095699,0.97352,-0.047784,-0.048193,-0.050037,-0.050856,-0.050242,-0.050856,-0.050856,-0.051471,-0.05188,-0.051061,-0.052085,-0.052085,-0.051676,-0.05188,-0.051676,-0.050447,-0.051266,-0.049832,-0.051676,-0.051471 -0.10956,-0.10709,-0.10759,-0.12586,0.29451,-0.11006,-0.10561,-0.10512,0.28957,0.29154,-0.16341,-0.10413,-0.11598,0.28858,0.28858,-0.16439,-0.1639,-0.16439,0.28858,0.28957,-0.16933,-0.16785,-0.16736,-0.16489,0.28561 -0.18566,-0.15583,0.26046,-0.11822,0.24101,-0.18955,-0.1286,-0.097472,-0.10655,0.28899,-0.18436,-0.13638,-0.12341,0.2864,0.26176,-0.2116,-0.13378,-0.126,0.25916,0.26954,-0.20641,-0.14675,-0.12341,0.24749,0.25916 -0.1915,-0.1896,-0.19308,0.20477,0.20161,-0.19055,-0.1915,-0.19213,0.20951,0.23574,-0.1915,-0.1915,-0.19402,0.20445,0.20824,-0.19086,-0.19244,-0.19718,0.20224,0.2133,-0.19086,0.20603,0.20698,0.20192,0.20192 0.39071,0.11107,0.049623,-0.053684,-0.19707,0.41743,0.13512,0.047842,-0.036763,-0.18015,0.07634,0.065653,0.051404,-0.033201,-0.50521,0.054966,0.059419,0.044279,-0.051012,-0.15699,0.085246,0.078121,0.052295,-0.014499,-0.49096 -0.345,-0.20407,-0.11387,-0.11387,0.015784,-0.26044,-0.2097,-0.012402,-0.023676,0.36529,-0.20407,-0.16461,0.021421,0.04397,0.43294,-0.1477,-0.1026,0.10598,0.11725,0.30328,-0.091323,-0.068774,0.1849,0.21309,0.25818 -0.28894,-0.29127,0.14894,0.14389,0.14312,-0.28971,0.12837,0.14156,0.14312,0.14661,-0.29165,0.1272,0.14584,0.13768,0.14467,-0.29321,-0.287,0.12604,0.12875,0.14351,-0.29321,-0.29592,0.12875,0.12643,0.12643 0.91918,0.0052839,-0.091767,-0.094463,-0.091767,0.016067,0.051114,-0.10525,-0.067505,-0.064809,-0.075592,0.029547,-0.051329,-0.086376,-0.067505,-0.12951,-0.10525,0.018763,-0.062113,-0.067505,-0.099855,0.056505,-0.067505,0.069985,0.16164 -0.13488,-0.1247,-0.022932,0.30952,0.35701,-0.14167,-0.1247,-0.046679,0.32648,0.34684,-0.1281,-0.13149,-0.073818,0.34005,0.36719,-0.15184,-0.13827,-0.12131,-0.063641,0.11276,-0.15863,-0.15524,-0.15524,-0.13827,-0.14845 0.14829,0.15834,0.14829,0.19351,0.16839,-0.11293,0.10811,0.1282,0.13322,0.14327,-0.072741,0.098059,0.12318,0.1282,0.11313,-0.24354,-0.017482,0.11313,0.12318,0.13322,-0.41936,-0.41936,-0.35406,-0.32392,-0.19833 0.062903,0.21179,0.081514,0.43046,0.41185,0.1513,0.22109,0.17922,0.3281,-0.053412,-0.12785,-0.072022,-0.14646,0.03964,-0.095285,-0.11855,-0.16042,-0.1139,-0.1232,-0.011538,-0.23021,-0.22091,-0.2907,-0.12785,-0.22556 -0.33852,-0.33008,0.15123,0.11324,0.12168,-0.24353,-0.28786,0.15546,0.14701,0.15334,-0.21397,0.1829,0.1449,0.1829,0.17445,-0.24564,-0.23931,0.15757,0.13435,0.1449,-0.23086,-0.24353,0.1449,0.1449,0.11957 -0.060412,-0.062051,-0.07763,-0.08009,-0.070251,-0.065331,-0.070251,-0.069431,-0.083369,-0.07599,-0.066151,-0.066971,-0.062051,-0.07681,-0.082549,0.42826,-0.065331,-0.07271,-0.07927,-0.07845,0.59306,0.58814,-0.08091,-0.08009,-0.083369 -0.040044,-0.045707,-0.040044,-0.039415,-0.079056,-0.0048073,-0.049482,-0.026201,-0.073393,-0.09164,0.0065188,-0.050111,0.15627,-0.093528,-0.088494,-0.033752,-0.048224,0.026025,-0.092899,-0.08346,-0.036898,-0.050111,0.025396,-0.09227,0.94532 -0.22684,-0.19529,-0.1243,-0.15585,-0.10853,-0.21895,-0.1874,-0.092755,-0.10064,-0.092755,-0.19529,-0.1874,-0.10064,-0.021769,0.088654,-0.11642,0.080766,0.15175,0.096541,0.39626,0.080766,0.29372,0.1202,0.34894,0.46725 0.24278,0.24624,0.24451,0.24624,0.25258,-0.15785,0.24566,0.24278,0.24335,0.24047,-0.16823,0.24451,-0.16362,-0.1567,-0.16362,-0.17111,-0.16074,-0.15958,-0.16189,-0.16362,-0.16247,-0.16247,-0.16189,-0.1665,-0.16881 0.30268,0.21669,-0.041275,-0.25625,0.1307,0.34568,-0.041275,0.0017198,-0.17026,-0.21325,0.34568,0.1737,-0.12727,-0.17026,-0.17026,0.21669,0.30268,-0.17026,-0.17026,-0.12727,0.21669,-0.08427,-0.21325,-0.17026,-0.12727 0.32054,0.32054,0.32025,0.31967,0.32054,0.32228,0.32112,-0.12327,-0.12588,-0.12588,-0.12298,-0.12443,-0.12472,-0.12472,-0.13109,-0.12472,-0.12472,-0.12385,-0.12269,-0.12501,-0.12298,-0.12472,-0.12298,-0.1253,-0.12501 0.51875,0.50842,0.026509,0.038316,0.027985,0.51506,0.014701,-0.00079703,-0.028103,0.011749,-0.017033,-0.052456,-0.059836,-0.099688,-0.099688,-0.068692,-0.10264,-0.13437,-0.13806,-0.15208,-0.12183,-0.13364,-0.14544,-0.15061,-0.15651 0.28429,0.28378,0.28174,0.28149,0.28098,-0.11697,-0.11519,0.28225,0.28149,0.28149,-0.11799,-0.11824,-0.11926,-0.11773,-0.11671,-0.11697,-0.11926,-0.11875,-0.11799,-0.11875,-0.11697,-0.11697,-0.1162,-0.11697,-0.37658 -0.075146,-0.075395,-0.076638,0.49014,0.67094,-0.076141,-0.074648,-0.075395,-0.07813,0.43642,-0.076141,-0.075892,-0.076887,-0.078379,-0.071913,-0.076141,-0.077135,-0.076887,-0.078628,-0.035852,-0.076887,-0.077135,-0.076887,-0.076887,-0.03436 0.33565,0.22606,0.14779,0.13213,0.053854,0.27303,0.13213,0.022544,0.06951,0.022544,0.25737,0.10082,0.053854,0.13213,0.022544,0.038199,-0.087043,-0.19663,-0.087043,-0.19663,-0.040078,-0.33753,-0.30622,-0.38449,-0.38449 -0.087055,-0.087233,-0.088477,-0.088477,-0.088122,-0.087766,-0.087766,-0.088477,-0.088477,-0.087411,-0.0867,-0.086167,-0.0867,-0.086878,-0.086878,-0.084745,-0.085456,-0.085811,-0.084922,-0.085456,0.41971,0.41509,0.45011,0.53898,-0.084922 -0.17947,-0.16758,0.22954,0.2236,0.21387,-0.17568,-0.18109,0.22954,0.22954,0.21063,-0.17676,-0.17947,-0.17406,0.23602,0.21063,-0.17676,-0.17785,-0.17947,0.2344,0.23116,-0.17947,-0.17947,-0.17622,-0.1773,0.2317 0.33313,0.28601,0.53262,0.11951,0.039396,0.30643,0.26088,0.015834,0.091232,-0.0061575,-0.062706,-0.14439,-0.054852,-0.021865,-0.1114,-0.13496,-0.21979,-0.24806,-0.10669,-0.10198,-0.14596,-0.23392,-0.24335,-0.062706,-0.086268 -0.092996,-0.14161,-0.13875,-0.12302,-0.23026,-0.05868,-0.13875,-0.15591,-0.10729,-0.23026,0.29592,-0.064399,-0.077268,-0.13875,-0.19308,0.29592,0.33452,0.26732,-0.092996,-0.13303,0.34453,0.32737,0.28448,0.065715,-0.098715 -0.050945,0.046597,0.0047935,-0.11086,-0.1234,-0.038404,0.067499,0.12324,0.13578,-0.078814,0.00061312,0.029876,-0.013321,-0.03283,-0.12759,-0.076027,-0.081601,-0.052338,-0.050945,-0.18193,0.90915,-0.088568,-0.045371,-0.046765,-0.11783 -0.31862,-0.195,0.11819,0.10582,0.083158,-0.32274,-0.2939,0.10582,0.10788,0.09346,-0.30626,-0.13525,0.10582,0.17382,0.14291,-0.13525,0.10376,0.13261,0.2686,0.1697,-0.21354,-0.20736,-0.16409,0.3098,0.27066 0.10412,-0.17678,-0.20299,-0.18801,-0.21049,0.17153,-0.12809,-0.18801,-0.083145,-0.16554,0.26517,0.38502,-0.10562,-0.10562,-0.083145,0.30262,0.33633,-0.083145,-0.11685,-0.10562,0.33633,0.31386,-0.07191,-0.083145,-0.11685 0.18662,0.28278,0.13115,-0.044529,-0.28493,0.16813,0.070122,0.1108,-0.033434,-0.32191,0.064574,0.19957,0.1219,-0.34595,-0.14069,0.070122,0.19587,0.0072489,-0.31266,-0.32561,0.16813,0.084916,0.11265,0.16998,-0.33485 -0.11729,-0.11632,-0.11632,-0.11826,-0.11891,-0.14705,-0.13314,-0.127,-0.11729,-0.11729,-0.14672,-0.14349,-0.12603,-0.11762,-0.11859,0.3565,0.30928,-0.12441,-0.11632,-0.11632,0.35682,0.30217,0.30152,0.30475,0.30734 0.15778,0.0094903,0.17261,0.33572,0.18743,0.23192,0.053976,0.14295,0.17261,0.23192,0.0094903,0.0094903,0.14295,0.0094903,0.0094903,0.053976,-0.0053383,-0.079481,0.0094903,-0.25743,-0.2426,-0.3464,-0.43537,-0.3464,-0.22777 -0.065688,-0.081254,-0.10071,-0.077362,0.92275,-0.081254,-0.057905,-0.073471,-0.073471,0.10943,-0.06958,-0.06958,-0.061797,-0.061797,0.10943,-0.061797,-0.081254,-0.046231,-0.073471,0.093862,-0.057905,-0.054014,-0.054014,-0.06958,0.13667 -0.13381,-0.33575,-0.35331,-0.36648,-0.41038,0.16032,-0.081127,-0.14698,-0.21283,0.068133,0.20861,0.17788,-0.010887,-0.094297,0.072523,0.213,0.18227,0.063743,0.019843,0.1252,0.213,0.17349,0.13837,0.14276,0.18666 -0.097986,-0.077783,-0.067681,-0.085864,-0.072732,-0.091925,-0.091925,-0.091925,-0.097986,-0.094955,-0.097986,-0.097986,-0.094955,-0.094955,-0.097986,-0.081823,-0.079803,-0.078793,-0.087884,-0.087884,-0.055559,0.48488,0.40508,0.4475,0.48892 0.13255,-0.19067,-0.19867,-0.21227,-0.21787,0.13895,0.20576,-0.18867,-0.19707,-0.21267,0.13575,0.32136,0.20256,-0.18667,-0.19907,0.35696,0.17535,0.18255,-0.17707,-0.19267,0.21056,0.16335,0.17095,-0.039458,-0.18387 0.019301,-0.053078,-0.028951,-0.0048252,-0.14958,0.11581,-0.0048252,-0.077204,-0.10133,-0.028951,0.5742,-0.0048252,-0.22196,-0.077204,-0.12546,0.4777,-0.028951,-0.053078,-0.077204,-0.14958,0.42945,0.067553,-0.24609,-0.10133,-0.14958 0.16304,0.17006,0.18611,-0.16601,-0.16651,0.153,0.16755,0.18711,-0.163,-0.18456,0.17708,0.52468,-0.18456,-0.18456,-0.18607,0.13495,0.17909,-0.18156,-0.18456,-0.18808,0.14498,0.1525,-0.18156,-0.18607,-0.18306 -0.44866,-0.27508,-0.0023144,0.055545,0.022482,-0.43212,-0.20069,0.10514,0.096873,0.06381,-0.3412,-0.060173,0.21259,0.12167,0.12993,-0.24202,0.096873,0.22086,0.163,0.163,-0.068439,0.1382,0.17126,0.14647,0.163 -0.071287,-0.069434,-0.07175,-0.076846,0.60693,-0.07036,-0.069897,-0.069897,-0.071287,0.61295,-0.068044,-0.068971,-0.07175,-0.074067,0.37437,-0.072677,-0.073603,-0.072213,-0.072213,-0.082869,-0.07453,-0.074993,-0.072213,-0.076846,-0.068507 0.080545,0.23827,0.14889,-0.17182,-0.26382,0.1857,0.22513,0.24616,-0.298,-0.3164,0.23827,0.20673,0.21724,-0.22439,-0.28485,0.28559,-0.05615,-0.098211,-0.13501,-0.14553,0.21461,-0.043007,-0.090324,-0.07718,-0.082438 -0.15694,-0.14974,-0.14105,-0.13907,0.26025,-0.16066,-0.15197,-0.14081,-0.13907,0.26844,-0.15942,-0.15743,-0.1418,0.26472,0.2667,-0.15346,-0.15396,-0.14329,0.26943,0.27092,-0.15495,-0.1552,0.26645,0.26596,0.26596 -0.23602,0.12524,0.16538,0.10517,0.024887,-0.43673,0.085097,0.16538,0.065027,0.044957,-0.43673,0.044957,0.14531,0.14531,0.0048168,-0.31631,0.044957,0.18545,0.085097,0.044957,-0.47687,0.10517,0.14531,0.12524,0.044957 -0.23946,0.16288,0.16187,0.16844,0.16389,-0.24503,-0.23845,0.16541,0.1649,0.16187,-0.25211,-0.23339,-0.243,0.1649,0.16035,-0.24958,-0.23794,0.16136,0.1644,0.15883,-0.25363,-0.25616,0.16085,0.16338,0.16541 0.14058,0.16317,0.17823,0.17823,0.18325,0.14309,0.15062,0.15564,0.18827,0.18325,-0.30626,0.12301,0.16568,0.17572,0.17572,-0.364,-0.23095,-0.11798,-0.1456,0.032634,-0.35897,-0.2686,-0.17823,-0.18325,-0.18325 0.27061,0.2329,0.21475,-0.15536,0.11419,0.23989,0.22313,-0.14698,-0.1819,-0.19587,0.20357,0.22313,-0.17492,-0.14978,-0.19587,0.23989,0.21894,-0.17352,-0.18469,-0.19866,0.27201,-0.13721,-0.20006,-0.17352,-0.18469 0.2983,-0.040259,-0.079412,-0.06329,0.051866,0.2983,-0.086321,-0.12087,-0.12087,-0.1462,0.32363,-0.12547,-0.15081,-0.1462,-0.1416,0.35588,-0.051774,-0.15541,-0.13929,-0.1416,0.33745,0.45031,-0.12778,-0.13929,-0.13929 0.12626,0.12125,0.11125,0.071232,0.066229,0.12125,0.10625,0.096243,0.081236,-0.14386,0.10625,0.11125,0.10625,0.066229,-0.40898,0.12125,0.096243,0.081236,-0.013806,-0.48401,0.11625,0.11125,0.071232,-0.29393,-0.54404 -0.12522,-0.12477,-0.12433,-0.12477,-0.12522,-0.12522,-0.12492,-0.12611,-0.12552,-0.12537,-0.12373,-0.12522,-0.12447,-0.12477,-0.12522,0.32388,0.33548,-0.12224,-0.12299,-0.12343,0.2916,0.33295,0.32671,0.31838,0.31451 0.56573,0.18674,0.036816,0.032651,0.024322,0.51159,0.024322,-0.017325,-0.025654,-0.033984,0.36999,-0.067301,-0.08396,-0.079795,-0.092289,0.015992,-0.12977,-0.11728,-0.14226,-0.12977,-0.13394,-0.17558,-0.15892,-0.18808,-0.19224 -0.13926,-0.13243,-0.13532,0.29212,0.29763,-0.14031,-0.13873,-0.14215,0.29264,0.28975,-0.13926,-0.13926,-0.13821,0.29159,0.28817,-0.14005,-0.13821,-0.14162,0.28686,0.2929,-0.14162,-0.13847,-0.14057,-0.12323,-0.12297 0.47901,0.64031,-0.045325,-0.045725,-0.05333,0.47741,-0.040522,-0.044124,-0.044525,-0.072543,-0.03692,-0.040922,-0.045325,-0.10016,-0.10096,-0.036119,-0.090954,-0.097358,-0.098959,-0.10336,-0.096158,-0.097759,-0.10136,-0.10176,-0.10256 0.3066,-0.052366,-0.15794,-0.17906,-0.21777,0.34179,0.289,-0.041809,-0.19665,-0.23889,0.33123,0.32419,-0.010135,-0.14387,-0.17202,0.31012,0.25733,-0.069962,-0.11571,-0.12275,-0.059405,-0.094597,-0.091078,-0.10164,-0.094597 0.016045,0.087215,0.56599,0.49805,0.45276,-0.084238,-0.081003,-0.035714,-0.0033644,0.12927,-0.097178,-0.10365,-0.084238,-0.061594,-0.026009,-0.14247,-0.11335,-0.11335,-0.055124,-0.035714,-0.16835,-0.15217,-0.16188,-0.136,-0.093943 -0.15925,-0.16182,-0.15749,-0.15515,0.43435,-0.16217,-0.16616,-0.16288,0.22439,0.20612,-0.16147,-0.16417,-0.16686,0.22485,0.21818,-0.15831,-0.1555,0.22228,0.2293,0.21267,-0.15527,-0.15527,-0.15468,0.21045,0.21385 0.16318,-0.1108,-0.13715,-0.14373,-0.17205,0.16449,-0.12924,-0.1332,-0.15032,-0.17469,0.33178,0.34429,0.24023,-0.15032,-0.15888,0.35615,0.24418,-0.15625,-0.16152,-0.1681,0.23101,0.24089,-0.010037,-0.15032,-0.20959 -0.053564,-0.055903,-0.029004,-0.020818,0.97795,-0.037191,-0.034852,-0.046547,-0.023157,-0.024326,-0.041869,-0.065259,-0.044208,-0.044208,-0.023157,-0.046547,-0.060581,-0.034852,-0.046547,-0.029004,-0.041869,-0.060581,-0.027835,-0.03953,-0.046547 0.55288,0.54739,-0.084413,-0.078138,-0.093433,0.48386,0.13207,-0.077746,-0.088727,-0.092256,-0.066372,-0.055784,-0.078922,-0.083628,-0.091472,-0.058529,-0.068333,-0.083236,-0.087158,-0.091472,-0.073432,-0.076569,-0.092256,-0.098531,-0.095786 -0.32926,-0.20118,-0.10298,0.012296,-0.00051233,-0.36341,-0.21825,0.063529,0.05499,0.093415,-0.31645,0.11049,0.1233,0.1233,0.14038,-0.32926,0.13611,0.18307,0.18307,0.18734,-0.31218,0.10195,0.22577,0.22577,0.20869 -0.14056,-0.084111,0.02879,0.32515,0.60741,-0.14056,-0.14056,-0.084111,0.1558,0.3816,-0.15467,-0.11234,-0.11234,0.071127,0.24048,-0.14056,-0.15467,-0.084111,-0.013548,0.1558,-0.1829,-0.15467,-0.11234,0.0005645,-0.15467 0.0043282,-0.071782,-0.091955,-0.082786,-0.11213,-0.00025676,-0.053442,-0.085536,-0.089204,-0.11396,0.062098,-0.06628,-0.076367,-0.11855,-0.091955,0.52701,-0.025015,-0.088287,-0.10296,-0.092872,0.52609,0.53618,-0.070865,-0.10663,-0.11488 -0.095654,-0.097567,-0.096132,-0.09948,-0.10092,-0.039218,-0.10378,-0.0038262,-0.051175,-0.061697,0.27118,-0.10044,-0.090871,-0.061697,-0.061697,0.64519,-0.03874,-0.024392,-0.056914,-0.12674,0.61266,-0.048784,-0.014826,-0.021522,-0.13296 0.34212,0.31655,0.31676,0.31443,0.29702,0.34238,0.31391,-0.12355,-0.12407,-0.12442,-0.12429,-0.12433,-0.12455,-0.12476,-0.12507,-0.12433,-0.12459,-0.12485,-0.12511,-0.1252,-0.12437,-0.12459,-0.12485,-0.12502,-0.12524 0.34888,0.4191,0.34888,0.067978,-0.11461,0.27865,0.23652,0.23652,0.011798,-0.1427,0.11011,0.011798,0.011798,-0.030337,-0.19888,-0.058427,-0.12865,-0.044382,-0.15674,-0.28315,-0.18483,-0.17079,-0.18483,-0.15674,-0.22697 -0.089287,0.070756,0.049698,0.049698,0.062333,-0.37147,0.10024,0.083391,0.087602,0.087602,-0.37147,0.10024,0.096026,0.10445,0.11708,-0.40937,0.062333,0.13393,0.15499,0.14235,-0.44307,-0.32935,0.15499,0.18026,0.17605 -0.23356,-0.16606,-0.33481,-0.30106,-0.30106,0.0027001,0.036452,-0.19981,0.0027001,-0.43607,-0.031051,-0.031051,0.17146,-0.064803,0.10395,0.30646,0.20521,0.10395,0.17146,0.13771,0.17146,0.20521,0.20521,0.13771,0.13771 0.15713,0.15713,0.19159,0.19159,0.36389,0.12267,0.088215,0.29497,0.15713,0.088215,-0.049621,-0.08408,-0.049621,0.19159,0.15713,-0.22192,-0.25637,-0.11854,-0.153,-0.049621,-0.49759,-0.08408,-0.22192,-0.18746,-0.18746 0.67831,0.12133,0.074914,-0.036482,0.00064981,0.60869,-0.036482,-0.055048,-0.02952,-0.038803,0.03314,-0.078256,-0.048086,-0.082897,-0.10843,-0.017916,-0.087539,-0.082897,-0.13163,-0.13395,-0.066652,-0.11307,-0.12235,-0.12235,-0.12467 -0.15789,-0.15218,-0.15218,-0.1636,-0.18074,-0.16931,-0.12647,-0.13504,-0.15503,-0.11505,-0.13218,-0.069347,-0.060779,-0.01508,-0.029361,-0.1179,0.019193,0.2534,0.24483,0.30766,-0.1179,0.042043,0.27339,0.40477,0.50474 0.11085,0.19173,0.19098,-0.21006,-0.21138,0.24295,0.24824,0.21214,-0.21025,-0.21119,0.24352,0.24956,0.25183,-0.20874,-0.20817,0.24219,-0.1012,-0.10196,-0.187,-0.1904,0.24352,-0.11821,-0.11802,-0.17698,-0.17396 -0.034162,-0.040995,-0.035301,-0.026191,0.97932,-0.034162,-0.037579,-0.028469,-0.034162,-0.042134,-0.044411,-0.037579,-0.043272,-0.04555,-0.040995,-0.047827,-0.042134,-0.042134,-0.044411,-0.037579,-0.046688,-0.04555,-0.046688,-0.053521,-0.047827 -0.22446,-0.22461,-0.22568,0.18964,0.18804,-0.22522,-0.22507,-0.22652,0.18697,0.18758,-0.22515,-0.22568,0.18712,0.18384,0.16902,-0.22599,-0.22644,0.17108,0.16932,0.17138,-0.22576,0.17085,0.17054,0.1681,0.16711 0.28755,0.3024,0.25922,-0.155,-0.14691,0.29565,0.297,-0.12937,-0.1604,-0.1658,0.30644,-0.14421,-0.12802,-0.11183,-0.16984,0.29295,-0.11992,-0.14421,-0.12802,-0.11048,0.28216,-0.11318,-0.11857,-0.15365,-0.12397 -0.26318,-0.14134,-0.12393,-0.054307,-0.054307,-0.15874,-0.19356,-0.089119,-0.0020887,0.11975,-0.089119,-0.21096,-0.036901,0.259,0.20678,-0.24577,-0.22837,0.13716,0.29381,0.32863,-0.10653,-0.21096,0.20678,0.31122,0.34603 0.38499,0.38615,-0.12932,-0.12932,-0.13127,0.28882,0.2861,-0.13127,-0.13166,-0.13438,0.29739,0.29038,-0.12387,-0.13166,-0.13166,0.29583,-0.12037,-0.11569,-0.11453,-0.12075,-0.11764,-0.12153,-0.11141,-0.1153,-0.11803 0.10754,0.098516,-0.10673,-0.13266,-0.13266,0.11881,0.11656,-0.13266,-0.13154,-0.1383,0.4887,-0.083044,-0.11011,-0.1259,-0.13605,0.39623,0.38044,-0.12815,-0.13605,-0.13605,0.38495,-0.088683,-0.1056,-0.13717,-0.13041 -0.049639,-0.052864,-0.059315,-0.073829,-0.15608,-0.048832,-0.052058,-0.059315,-0.063346,-0.16414,-0.048832,-0.050445,-0.061734,-0.06254,-0.18027,0.55431,-0.042381,-0.059315,-0.068991,-0.15285,0.55996,0.43981,0.084215,0.015675,-0.14721 -0.15529,-0.12391,-0.14184,0.12041,0.42301,-0.15977,-0.13736,-0.054423,0.082307,0.16748,-0.15977,-0.16425,-0.13287,-0.072355,0.17197,-0.16874,-0.15529,-0.16874,0.29973,0.19438,-0.10598,-0.15081,-0.15529,0.45663,0.29076 0.14082,0.1058,0.12214,-0.20469,-0.31441,0.14315,0.11747,0.13381,0.20151,-0.29807,0.14782,0.14082,0.16183,0.13381,-0.28873,0.18517,0.17116,-0.16267,-0.16967,-0.26772,0.17817,0.19918,0.052106,-0.32375,-0.30507 -0.17216,-0.14296,0.3886,0.15495,0.17831,-0.24226,-0.13225,0.153,0.14619,0.19973,-0.2296,-0.14296,-0.13322,0.16079,0.19097,-0.22765,-0.25297,0.17637,0.15203,0.18123,-0.21597,-0.24907,-0.25881,0.15495,0.16274 0.15905,0.23538,0.24232,0.23816,0.24753,0.16009,0.23192,0.23677,0.2333,0.24232,-0.18063,-0.17682,-0.17578,-0.17682,-0.17578,-0.18861,-0.17612,-0.17682,-0.17473,-0.17959,0.24163,-0.16675,-0.17404,-0.16953,-0.17647 -0.11016,-0.10988,-0.11071,-0.1121,0.34216,-0.11766,-0.10793,-0.11182,0.3455,0.34272,-0.11849,-0.11738,-0.10682,-0.10849,0.34438,-0.11627,-0.11849,-0.1146,-0.10932,0.35189,-0.10821,-0.11099,-0.11294,-0.1096,0.40523 -0.039279,-0.04596,-0.019239,-0.0092186,0.95607,-0.05264,-0.025919,-0.0025385,0.0041417,-0.029259,-0.07936,-0.066,-0.042619,0.030862,-0.042619,-0.11276,-0.099401,-0.05932,-0.022579,0.0041417,-0.1328,-0.025919,0.00080162,-0.12612,0.037543 0.17601,0.17278,-0.21329,-0.22622,-0.28114,0.16955,0.17116,-0.20199,-0.21168,-0.26983,0.16632,0.16793,0.17601,-0.23106,-0.2666,0.14693,0.1647,0.17116,0.17116,-0.26014,0.13886,0.13724,0.14693,0.15986,-0.27468 0.3369,0.3369,-0.11401,-0.13506,-0.13506,0.33164,0.3483,-0.11664,-0.13418,-0.10699,0.38339,-0.10524,-0.12366,-0.1219,-0.11664,0.38866,-0.093831,-0.12366,-0.11138,-0.10962,-0.057864,-0.093831,-0.099972,-0.10962,-0.11664 -0.3278,-0.32235,0.12511,0.12874,0.13138,-0.31658,-0.31823,0.12495,0.12808,0.13385,-0.31724,0.11753,0.12115,0.12676,0.13154,-0.32054,0.11934,0.11753,0.12132,0.13138,-0.32136,0.1101,0.1195,0.12379,0.13204 -0.37551,-0.37449,-0.37449,-0.37703,-0.37398,0.22974,0.13725,0.075252,0.038155,0.0046143,0.23431,0.14487,0.084399,0.037138,0.0096962,0.21043,0.13268,0.082367,0.033581,-0.0014839,0.20738,0.1215,0.067629,0.032564,-0.0065657 -0.12441,-0.12441,-0.20028,-0.20028,-0.30143,0.077885,-0.1497,-0.17499,-0.20028,-0.20028,0.077885,-0.12441,-0.048552,-0.073839,-0.048552,0.30547,0.10317,0.002023,0.02731,0.002023,0.58363,0.2549,0.28018,0.17903,0.077885 -0.07874,-0.086107,-0.090527,-0.08758,-0.14357,-0.07874,-0.08316,-0.07432,-0.10526,-0.14062,-0.07874,-0.084634,-0.055165,-0.096421,-0.13915,0.45169,0.45169,-0.00064831,-0.059585,-0.1362,0.45022,0.44727,0.022927,-0.080213,-0.12442 -0.55224,-0.065685,-0.065685,0.208,0.29923,-0.33937,0.086364,0.025544,0.025544,0.208,-0.18732,0.025544,-0.035275,0.025544,0.208,-0.27855,0.055954,0.11677,0.025544,0.208,-0.18732,-0.12651,-0.065685,0.055954,0.32964 -0.039431,-0.041243,-0.037619,-0.040035,0.97896,-0.041847,-0.040035,-0.043055,-0.041243,-0.039431,-0.040035,-0.041243,-0.044867,-0.045471,-0.042451,-0.038223,-0.043659,-0.046075,-0.045471,-0.047283,-0.0025852,-0.040639,-0.043055,-0.047283,-0.046679 -0.036244,0.14498,0.2196,0.24092,0.23026,-0.21746,0.017056,0.113,0.25158,0.28356,-0.28142,-0.17482,0.049036,0.18762,0.17696,-0.2601,-0.24944,-0.13218,0.059696,0.20894,-0.24944,-0.27076,-0.24944,-0.17482,0.113 0.35828,0.35723,0.041576,-0.17983,-0.18218,0.37864,0.35828,0.015467,-0.17983,-0.17983,0.37916,0.014945,0.014684,-0.18139,-0.070954,0.013639,0.017556,-0.1827,-0.18296,-0.080092,-0.090535,0.0186,-0.18322,-0.18427,-0.090274 -0.1918,-0.44999,-0.37622,-0.18442,-0.1918,-0.081146,-0.30245,-0.25081,0.15492,-0.14016,0.11803,0.022131,-0.0073769,0.20655,0.11065,0.14016,0.11803,0.18442,0.21393,0.044261,0.21393,0.10328,0.22131,0.18442,0.14016 -0.19929,-0.20165,-0.20165,-0.20047,-0.19929,-0.20106,-0.20106,-0.20223,-0.20223,-0.19664,0.14891,0.1392,-0.20341,-0.20577,0.18011,0.15627,0.14332,0.42059,0.20219,0.18335,0.15127,0.14832,0.15392,0.20101,0.18629 -0.092807,-0.088807,-0.060805,-0.062805,-0.078806,-0.042803,-0.074806,-0.058805,-0.090807,-0.064805,-0.038803,-0.040803,-0.13081,-0.10281,-0.042803,0.49324,-0.040803,-0.062805,-0.11481,-0.072806,0.58525,0.53124,-0.054804,-0.10481,-0.086807 0.47417,0.46636,-0.065193,-0.071056,-0.088644,0.44095,-0.03588,-0.065193,-0.10232,-0.098415,0.44486,-0.074964,-0.10037,-0.10037,-0.088644,-0.069102,-0.084735,-0.092552,-0.096461,-0.10232,-0.078873,-0.10428,-0.096461,-0.10428,-0.10623 -0.054668,-0.069523,-0.15865,-0.010102,-0.010102,-0.084378,-0.12894,-0.15865,-0.069523,0.287,-0.099234,-0.084378,-0.099234,-0.1438,0.48012,-0.084378,-0.084378,-0.084378,-0.039812,0.49498,-0.054668,-0.069523,-0.084378,-0.099234,0.50983 0.81069,0.28635,-0.087472,-0.089551,-0.0079236,0.22422,0.19433,-0.085392,-0.091891,0.16131,-0.087732,-0.089551,-0.086172,-0.090071,-0.086172,-0.086432,-0.086432,-0.085652,-0.088252,-0.088252,-0.087472,-0.087732,-0.088252,-0.088772,-0.087732 0.20462,-0.2362,-0.23409,-0.24831,-0.24568,0.20146,0.20251,-0.23199,-0.23515,-0.22461,0.20251,0.20357,0.16459,-0.21935,-0.22303,0.20462,0.19988,0.15248,0.038194,-0.23199,0.19935,0.1983,0.16933,0.060841,-0.07188 0.24231,0.24642,0.24642,-0.1505,-0.16259,0.24231,0.24642,0.24739,-0.16259,-0.1621,0.24352,0.24497,-0.16356,-0.1638,-0.16501,0.24497,-0.16646,-0.16525,-0.16501,-0.16404,0.24449,-0.16476,-0.16501,-0.16452,-0.16404 0.10248,0.10303,0.10853,-0.21766,-0.21326,0.10275,0.10413,0.42674,-0.21986,-0.21573,0.10523,0.10303,0.10083,-0.22234,-0.21876,0.10495,0.10358,0.10083,-0.22317,-0.22372,0.10138,0.10055,0.43858,-0.22427,-0.22785 0.41036,0.39458,0.36832,-0.041795,-0.042678,0.41157,0.39238,-0.041574,-0.042236,-0.042567,-0.1176,-0.1176,-0.11749,-0.1176,-0.11715,-0.11826,-0.11793,-0.11804,-0.11782,-0.11771,-0.11848,-0.11749,-0.11804,-0.11693,-0.11826 0.60715,0.56828,-0.089979,-0.089115,-0.086523,0.43351,-0.080476,-0.083932,-0.089115,-0.089115,-0.077885,-0.073565,-0.063199,-0.075293,-0.057152,-0.064063,-0.072702,-0.074429,-0.071838,-0.056288,-0.064927,-0.069246,-0.059744,-0.066655,-0.053697 0.40822,0.28713,0.17293,0.028455,-0.021079,0.17568,0.16192,0.15367,0.021575,-0.30728,0.14266,0.093124,0.095876,0.049094,-0.33342,0.10138,0.033958,0.031206,-0.20683,-0.32929,0.047718,-0.036215,-0.13391,-0.27013,-0.36644 0.43074,0.21465,0.39472,0.1066,0.39472,-0.0014406,0.034574,0.21465,-0.037456,0.14262,0.07059,-0.1455,-0.037456,-0.073471,-0.10949,-0.1455,-0.1455,0.034574,-0.18152,-0.073471,-0.25355,-0.21753,-0.28956,-0.18152,-0.1455 -0.17212,-0.17336,-0.1771,-0.18707,0.22404,-0.17399,-0.17586,-0.18146,0.23401,0.22653,-0.17399,-0.17648,-0.17897,0.22466,0.23525,-0.17399,-0.17897,0.22466,0.21968,0.23089,-0.17772,-0.18022,0.22093,0.2228,0.21781 -0.225,-0.15227,-0.079527,-0.10377,-0.12802,-0.10377,-0.0067889,-0.10377,-0.0067889,-0.079527,-0.055281,-0.17651,-0.17651,-0.055281,0.11444,-0.20076,-0.031035,-0.055281,0.21143,0.38115,-0.10377,0.017457,0.090196,0.52663,0.50238 -0.18191,-0.18172,-0.18634,-0.18596,-0.19886,0.2118,-0.19039,-0.19886,-0.19308,-0.19539,0.21681,-0.19847,-0.1977,-0.19366,-0.19443,0.21873,0.20853,0.20449,0.20295,0.1991,0.21796,0.20911,0.20141,0.20295,0.20295 0.28433,0.23565,0.23565,0.25999,0.28433,0.23565,0.11393,0.25999,0.25999,0.065241,-0.20254,-0.27557,-0.27557,-0.27557,-0.22688,-0.10516,-0.10516,-0.10516,0.040897,-0.10516,-0.10516,-0.20254,-0.056477,-0.080821,-0.15385 -0.060023,-0.0014267,0.039336,0.33996,0.29156,-0.13136,-0.11352,-0.054928,0.32213,0.34506,-0.15429,-0.14155,-0.12371,-0.039642,0.38072,-0.16448,-0.15683,-0.15429,-0.11862,0.36289,-0.17976,-0.18231,-0.16703,-0.13391,-0.0039744 0.12098,0.46048,-0.002469,-0.15678,-0.24937,0.12098,0.15185,0.059257,-0.18765,-0.3111,0.059257,0.2753,0.15185,-0.064195,-0.43455,0.15185,0.059257,0.09012,0.09012,-0.21851,0.15185,0.059257,0.059257,-0.24937,-0.18765 -0.15586,-0.098561,-0.06991,-0.10572,-0.06991,-0.13438,-0.098561,-0.077073,-0.12005,-0.11289,-0.10572,-0.077073,-0.06991,-0.12721,-0.098561,-0.077073,-0.11289,0.051859,0.102,0.087674,-0.034095,-0.01977,0.38851,0.56759,0.56759 0.071866,0.17168,-0.09449,-0.09449,-0.49375,0.30476,0.17168,-0.027948,0.13841,-0.39393,0.20495,0.0053234,0.071866,-0.061219,-0.32739,0.20495,0.071866,0.20495,-0.16103,-0.22758,0.20495,0.10514,0.10514,-0.12776,-0.027948 -0.031825,-0.034677,-0.035944,-0.033726,0.97959,-0.035944,-0.037212,-0.036578,-0.038796,-0.038796,-0.043866,-0.038796,-0.045133,-0.045133,-0.043866,-0.043232,-0.042598,-0.045133,-0.0445,-0.0445,-0.042598,-0.041965,-0.046401,-0.043232,-0.045133 0.54909,0.51004,0.25619,0.13903,0.17808,0.25619,-0.017184,-0.075764,-0.11482,-0.1734,-0.075764,-0.056237,-0.11482,-0.15387,-0.15387,0.0023432,-0.075764,-0.075764,-0.19292,-0.21245,-0.017184,-0.056237,-0.11482,-0.056237,-0.15387 -0.37627,0.037557,0.036901,0.036639,0.036639,-0.37614,0.049497,0.04871,0.04543,0.040837,-0.37719,0.057107,0.051596,0.047529,0.36873,-0.37627,0.1109,0.11641,0.14056,0.14489,-0.37706,0.11733,0.13675,0.12048,0.13846 -0.2637,-0.23807,-0.19669,0.22113,0.20536,-0.2026,-0.18683,-0.17501,-0.1415,0.20339,-0.22428,-0.108,0.21718,0.21324,0.2093,-0.21837,-0.11983,0.19551,0.20142,0.19353,-0.20457,-0.18683,0.2093,0.20142,0.19551 0.075788,-0.023933,0.050858,-0.023933,0.025928,0.00099721,-0.023933,-0.098724,-0.098724,-0.073794,0.22537,-0.048863,-0.14858,-0.14858,-0.12365,0.47467,0.00099721,-0.048863,-0.19845,-0.098724,0.72398,-0.073794,-0.098724,-0.073794,-0.17351 0.70623,0.44323,0.19777,0.11011,0.16271,-0.13535,0.14517,-0.065223,-0.065223,-0.04769,-0.15289,-0.012624,-0.082756,-0.030157,-0.04769,-0.065223,-0.065223,-0.082756,-0.10029,-0.10029,-0.15289,-0.10029,-0.10029,-0.17042,-0.18795 -0.29241,0.11385,0.11145,0.17308,0.097095,-0.29062,0.16889,0.15274,0.14915,0.14735,-0.31036,-0.31096,0.16052,0.14616,0.15094,-0.30617,-0.30557,0.13958,0.14077,0.043845,-0.25292,-0.23916,0.12522,0.14137,0.14616 -0.33059,-0.34145,-0.03736,-0.28715,-0.31973,-0.28715,-0.11338,0.12555,-0.21113,-0.25457,-0.059081,0.14727,0.15813,0.13641,0.15813,0.12555,0.19071,0.15813,0.20157,0.20157,-0.015639,0.11469,0.12555,0.19071,0.22329 -0.063557,0.022331,-0.23533,0.15116,0.23705,-0.23533,-0.36417,-0.020613,0.15116,0.28,-0.063557,-0.14945,0.10822,0.15116,0.23705,-0.40711,0.022331,-0.020613,0.065275,0.32294,-0.27828,-0.23533,0.022331,0.15116,0.15116 0.17597,0.14668,0.34257,0.36088,0.19977,0.33525,0.31694,-0.1023,0.1119,0.12471,-0.19018,-0.096811,-0.1737,0.0038812,0.15034,-0.21215,-0.1499,-0.15173,-0.087657,-0.16821,-0.20849,-0.25426,-0.13526,-0.1792,-0.15906 -0.074597,-0.083444,0.035989,-0.0082453,-0.071059,-0.079905,0.031566,0.002371,-0.06575,-0.077251,0.028912,-0.038325,-0.070174,-0.071943,-0.088752,0.035105,0.0085638,-0.064866,-0.077251,-0.084329,0.035105,-0.020631,-0.071059,-0.084329,0.9543 -0.14172,-0.13874,-0.13874,-0.13874,-0.1447,-0.12681,-0.10892,-0.11786,-0.12383,-0.12383,-0.049268,-0.058215,-0.055233,-0.037339,-0.046286,-0.016463,-0.019445,-0.0015508,-0.0015508,0.0044139,0.4965,0.49948,0.5651,0.016343,0.0073962 -0.078813,0.011019,0.014014,-0.04288,0.94827,-0.090791,0.0050306,-0.048869,0.037969,0.08588,-0.036891,-0.10576,-0.057852,0.011019,0.011019,-0.072824,-0.12074,-0.090791,-0.093785,-0.018925,0.011019,-0.054858,-0.06983,-0.072824,-0.078813 0.015238,-0.39217,0.015238,0.13164,0.3327,-0.074709,-0.13291,-0.011217,0.057566,0.24275,-0.11704,-0.053545,0.02582,0.062857,0.3327,-0.23344,-0.15407,-0.18053,0.20042,0.38561,-0.33926,-0.16466,-0.12233,-0.032381,0.20572 -0.38134,-0.38134,-0.38148,-0.38189,-0.38217,0.30193,-0.020018,0.069442,0.071251,0.073199,0.067077,0.066242,0.066103,0.065269,0.065964,0.066521,0.065686,0.066521,0.065686,0.067077,0.17031,0.17087,0.17087,0.17059,0.067634 0.12646,0.14516,0.13447,0.13554,0.12913,0.13447,0.14729,0.14302,0.13661,0.13233,0.13447,0.14836,0.14195,0.13661,0.1334,0.13874,-0.28441,-0.29136,-0.2967,0.1334,-0.28121,-0.29189,-0.2935,-0.2951,-0.29724 0.30384,-0.13896,-0.13907,-0.14022,-0.14068,0.30177,-0.13873,-0.13873,-0.1393,-0.13999,0.30579,-0.13804,-0.13815,-0.13746,-0.13907,0.30556,0.27198,-0.13424,-0.13137,-0.1324,0.3051,0.27566,0.25956,-0.13148,-0.13137 0.21499,-0.0073499,-0.030319,-0.26735,-0.27011,0.19937,0.20947,-0.020212,-0.26276,-0.27011,0.17915,0.18559,-0.025725,-0.26276,-0.27654,0.15802,0.16445,0.18191,-0.26644,-0.29124,0.15435,0.15343,0.18099,0.21315,0.056043 0.085948,0.078572,0.078572,0.081031,-0.45,0.083489,0.073655,0.083489,0.088406,-0.46721,0.083489,0.088406,0.090865,0.090865,-0.45737,0.081031,0.095782,0.090865,0.090865,-0.45737,0.1007,0.085948,0.1007,0.095782,0.083489 -0.084133,-0.084623,-0.084256,-0.084256,-0.084011,-0.084256,-0.083889,-0.084133,-0.084011,-0.084378,-0.084011,-0.083889,-0.084133,-0.084501,-0.084256,-0.084011,-0.08499,-0.08499,-0.084746,-0.08499,0.5822,0.58245,0.052146,0.052391,0.41727 -0.24255,-0.13554,0.0071338,0.11414,0.36382,-0.24255,0.0071338,-0.24255,0.18548,0.11414,-0.24255,-0.17121,-0.099873,0.14981,0.29248,-0.34955,0.0071338,0.0071338,-0.064204,0.43516,-0.13554,0.042803,0.0071338,-0.064204,0.25682 0.6274,0.34368,-0.083327,-0.078614,-0.10501,0.3088,0.32105,-0.089925,-0.087097,-0.10783,0.31917,-0.059762,-0.089925,-0.09181,-0.10783,-0.10406,-0.096523,-0.087097,-0.098409,-0.11726,-0.10689,-0.097466,-0.10312,-0.089925,-0.1182 -0.12006,-0.13261,-0.13888,-0.14516,-0.14829,-0.082427,-0.10125,-0.13261,-0.12006,-0.15143,0.2469,-0.022834,-0.12006,-0.14516,-0.13888,0.35982,0.3755,-0.057335,-0.12006,-0.10125,0.34414,0.38491,0.38177,-0.063608,-0.051062 -0.29317,-0.24709,-0.039307,-0.061178,-0.058835,-0.28302,-0.047899,-0.012748,-0.025246,0.29736,-0.26974,-0.11664,-0.076801,0.28564,0.30127,-0.11039,-0.11117,-0.10492,0.30049,0.29892,-0.097891,-0.06274,-0.058054,0.29502,0.29814 -0.048636,-0.072236,-0.027089,-0.022984,0.97745,-0.043506,-0.044532,-0.027089,-0.029141,-0.035297,-0.040428,-0.044532,-0.037349,-0.016828,-0.022984,-0.050689,-0.043506,-0.041454,-0.020932,-0.035297,-0.040428,-0.051715,-0.053767,-0.056845,-0.070184 -0.1401,-0.13777,-0.14126,-0.13391,-0.12849,-0.13816,-0.13584,-0.13932,0.26685,0.27304,-0.14242,-0.13081,-0.12965,0.27459,0.33842,-0.14474,-0.137,-0.12849,0.27343,0.26298,-0.14474,-0.13391,-0.13468,0.27536,0.3566 0.22286,0.20343,0.05151,0.052394,0.047977,0.23876,0.20696,0.24626,0.055485,0.040912,0.15485,0.25465,0.24759,0.055927,0.0038156,-0.20551,0.15087,-0.26116,-0.26336,-0.25939,-0.20065,-0.26381,-0.25497,-0.26027,-0.26513 0.10024,0.1044,0.096084,0.097903,-0.3328,0.092837,0.10531,0.094006,0.10128,-0.33592,0.091538,0.40028,0.084654,0.091408,-0.3415,0.082187,0.081797,0.084005,-0.34163,-0.34137,0.07829,0.080628,0.084654,0.083226,-0.3415 0.57703,-0.10188,-0.10401,-0.10279,-0.094254,0.58374,0.22721,-0.097914,-0.095474,-0.093034,0.22812,-0.093644,-0.089069,-0.089679,-0.08419,0.22782,-0.089069,-0.094254,-0.090289,-0.08236,-0.091509,-0.088154,-0.093034,-0.08541,-0.083885 0.20203,0.51193,-0.042423,-0.13674,-0.11749,0.22513,0.26362,-0.071296,-0.15214,-0.15021,0.26555,-0.094393,-0.16561,-0.16369,-0.16176,0.2694,-0.094393,-0.18294,-0.16561,-0.10209,0.21743,0.26555,-0.13866,-0.17716,-0.10402 -0.071801,-0.039889,0.053186,0.094405,0.12898,-0.058504,-0.017285,0.089086,-0.07446,-0.10371,-0.069142,-0.055845,-0.055845,-0.087757,-0.11435,-0.069142,-0.053186,-0.066482,-0.10504,-0.0079779,0.91613,-0.063823,-0.13031,-0.121,0.083768 -0.68221,-0.19082,0.013923,0.034397,0.23914,-0.19082,-0.1294,-0.0065519,0.075347,0.15725,-0.17035,-0.027026,0.013923,0.13677,0.28009,-0.1294,-0.08845,0.034397,0.1163,0.13677,-0.19082,-0.027026,0.095821,0.23914,0.25962 -0.136,-0.136,-0.11949,-0.082789,0.1007,-0.11949,-0.12132,0.010789,0.11538,0.13373,-0.097468,-0.10114,-0.086459,0.13373,0.12272,-0.10114,-0.099303,-0.099303,-0.035083,0.18877,-0.099303,-0.080954,-0.057101,-0.080954,0.84749 0.33946,0.33585,0.31287,0.30814,0.30746,-0.12093,-0.118,-0.12228,0.32594,0.31287,-0.12003,-0.11868,-0.11868,-0.11778,-0.1313,-0.12003,-0.118,-0.11823,-0.13535,-0.13986,-0.12341,-0.12003,-0.12386,-0.13693,-0.13919 0.04667,0.068728,0.12213,0.35316,0.11401,0.055958,0.10472,0.19063,0.10356,0.10124,0.078016,0.11865,0.096591,0.067568,0.09543,0.073372,0.094269,0.081499,0.080338,-0.32832,-0.35734,-0.33877,-0.34573,-0.33761,-0.33877 -0.1889,-0.17491,-0.13297,-0.091023,-0.03859,-0.19239,-0.15744,-0.12248,-0.094518,-0.00013982,-0.16093,-0.14346,-0.087527,-0.010626,0.14667,-0.14346,-0.10151,-0.052572,0.15366,0.40883,-0.080536,0.024329,0.39835,0.41932,0.42282 0.016267,0.018194,-0.42124,-0.13985,-0.1331,0.31693,0.018194,0.017712,-0.14274,-0.14708,0.31115,0.018194,0.018194,-0.15141,-0.1543,0.31356,0.32705,-0.097447,-0.10467,-0.14852,0.31741,0.31886,-0.10516,-0.11479,-0.15141 -0.13658,-0.12776,-0.13311,-0.12883,-0.1315,0.24408,-0.13044,-0.12162,-0.13044,-0.12883,0.40864,-0.12349,-0.12002,-0.13658,-0.13044,0.4041,0.22645,0.050413,-0.12723,-0.13044,0.4057,0.23073,0.23073,-0.13097,-0.13257 -0.33289,-0.31826,0.10596,0.11793,0.11793,-0.30363,-0.27171,0.11261,0.11394,0.11926,-0.32624,0.12724,0.11926,0.13123,0.12458,-0.34619,0.13788,0.12192,0.13123,0.12458,-0.33954,0.15251,0.13522,0.12591,0.11926 -0.12511,-0.12555,-0.12555,-0.12526,-0.12584,-0.12452,-0.12482,-0.12452,-0.12482,-0.12467,-0.1232,-0.12423,-0.12393,-0.12393,-0.12349,-0.12335,-0.1232,-0.12364,0.36175,0.31124,0.28526,0.33018,0.34457,0.28805,0.31858 0.19419,0.15734,0.037585,0.028373,-0.036111,0.29552,0.24025,-0.026899,-0.1006,-0.1006,0.36922,0.26789,-0.19272,-0.072959,-0.16508,0.26789,0.10207,-0.35853,-0.091384,-0.19272,0.046797,0.083645,-0.11902,-0.38617,-0.24799 0.18262,0.095509,0.12719,0.17866,-0.27671,0.13511,0.12719,0.13511,-0.30839,-0.3361,0.12719,0.12719,0.12719,-0.15396,-0.11436,0.095509,0.11927,0.11135,0.10343,-0.39946,0.10343,0.10343,0.10343,-0.015364,-0.49845 0.16953,-0.18231,-0.18567,-0.19171,-0.19675,0.17792,0.23634,-0.18768,-0.18903,-0.19507,0.18094,0.22156,0.22895,-0.19104,-0.19373,0.18732,0.21149,0.25749,-0.19104,-0.1944,0.18094,0.21149,0.22324,-0.19305,-0.19574 -0.12077,-0.12359,-0.12641,-0.1297,-0.12876,-0.12359,-0.12453,-0.12688,-0.12829,-0.13064,-0.12171,-0.12359,-0.12218,-0.125,-0.12312,-0.11795,-0.11795,-0.11701,0.35306,0.3493,0.2581,0.25481,0.35306,0.34084,0.3225 0.13225,0.13636,-0.069673,-0.089373,-0.080344,0.13472,0.13882,-0.059823,-0.084448,-0.10989,0.14949,0.13472,-0.072956,-0.054898,-0.15094,0.18315,0.19628,0.18068,-0.12467,-0.49487,0.2209,0.23896,0.22008,-0.15586,-0.51867 -0.29071,0.13965,0.13793,0.14025,0.14419,-0.29066,-0.29033,0.13895,0.14009,0.14003,-0.27682,-0.29028,0.13576,0.13852,0.14371,-0.29796,0.13155,0.13187,0.13403,0.13906,-0.2972,-0.29763,0.13155,0.13749,0.12695 -0.064372,-0.064372,0.030665,0.44249,0.49951,-0.089715,-0.089715,-0.077043,0.10036,0.48051,-0.083379,-0.10872,-0.077043,-0.077043,0.33478,-0.10239,-0.1404,-0.089715,-0.1404,-0.083379,-0.11506,-0.089715,-0.10872,-0.12773,-0.15941 -0.18567,-0.15506,-0.099246,-0.12445,0.19604,-0.18567,-0.15686,-0.039828,-0.059634,0.17984,-0.12085,-0.10105,0.17984,0.18884,0.20685,-0.18567,-0.18207,-0.12085,0.25726,0.40131,-0.20008,-0.18927,-0.17847,0.35629,0.31848 0.20427,0.095371,0.27305,0.066714,0.04952,0.10683,0.14695,0.14695,-0.036452,-0.13389,0.10683,0.12976,0.12403,-0.23705,-0.38607,-0.0020633,0.14122,0.18134,-0.22559,-0.35741,0.15842,0.1183,0.060983,-0.32876,-0.40327 -0.04401,-0.043469,-0.04509,-0.042388,0.97949,-0.037525,-0.040227,-0.04401,-0.045631,-0.042929,-0.032661,-0.03104,-0.03104,-0.033202,-0.036984,-0.033742,-0.043469,-0.046171,-0.041308,-0.047252,-0.042388,-0.042929,-0.047792,-0.039686,-0.04455 -0.17226,-0.17409,-0.10477,-0.12301,0.32935,-0.16132,-0.14125,-0.090181,-0.13031,0.32388,-0.15402,-0.084708,-0.097477,-0.11024,0.3184,-0.16861,-0.088356,-0.11024,0.3184,0.30928,-0.13396,-0.090181,-0.090181,0.31658,0.30928 -0.2074,-0.2074,-0.23346,-0.31163,-0.28557,0.0010422,-0.051069,-0.025014,-0.23346,-0.25952,0.07921,0.07921,0.07921,0.053154,-0.077125,0.36582,0.15738,0.13132,0.0010422,-0.18135,0.44399,0.18343,0.20949,0.18343,0.10527 -0.22452,-0.22499,-0.22594,0.18114,0.18114,-0.22452,-0.22641,-0.22783,0.17546,0.18209,-0.22641,-0.22357,0.17688,0.17593,0.18114,-0.22688,-0.22168,0.17073,0.17688,0.1783,-0.2283,0.19108,0.17593,0.15795,0.17641 -0.021135,-0.023066,0.0104,-0.003115,0.95261,-0.073266,-0.04173,-0.0069765,0.011044,0.018767,-0.096435,-0.097722,-0.086138,-0.080345,-0.082276,-0.035938,-0.091286,-0.08485,-0.041087,-0.064899,-0.089356,-0.083563,0.013618,0.018767,0.077977 0.30373,0.25311,0.16071,0.035064,-0.0017185,0.30696,0.23634,0.088032,0.026236,-0.030262,0.33256,0.24487,0.08656,0.026825,-0.040855,-0.16268,-0.16121,-0.16297,-0.16239,-0.36513,-0.16356,-0.16121,-0.16297,-0.16209,-0.36396 0.45199,0.32503,0.34671,-0.0063172,-0.062058,0.47057,0.055617,-0.027994,-0.071348,-0.10541,0.29716,-0.043478,-0.080638,-0.10541,-0.15496,-0.046574,-0.15496,-0.13328,-0.099218,-0.15805,-0.043478,-0.13328,-0.15805,-0.22309,-0.13947 -0.084521,-0.085011,-0.084032,-0.085011,-0.083298,-0.046361,-0.076204,-0.080607,-0.084521,-0.082809,-0.043914,-0.045137,-0.045627,-0.046116,-0.067153,-0.13785,-0.045871,-0.047584,-0.049051,-0.051498,-0.14103,0.21441,0.2237,0.22052,0.85458 0.22767,0.33267,0.32659,0.32466,0.34952,-0.12269,-0.12338,-0.12241,0.32355,0.34856,-0.12296,-0.12338,-0.12448,-0.12379,-0.12448,-0.12407,-0.12379,-0.1249,-0.12407,-0.12531,-0.12324,-0.12434,-0.12504,-0.12545,-0.12545 -0.355,-0.35684,-0.35763,-0.35763,-0.35921,-0.34791,0.11689,0.10875,0.09955,0.11085,0.11085,0.11899,0.10717,0.09955,0.12215,0.114,0.12004,0.11295,0.10586,0.097448,0.114,0.11899,0.11742,0.11794,0.12083 -0.30755,0.082314,0.036783,0.10874,0.035563,-0.30551,0.081094,0.034343,0.13272,0.13272,-0.30186,-0.31324,0.038002,0.21159,0.18517,-0.30429,-0.31121,0.10142,0.2124,0.2063,-0.30429,0.098981,0.031904,0.20996,0.20793 -0.001288,0.0058676,0.0094455,0.045224,0.90748,-0.11936,0.016601,0.023757,0.066691,0.077424,-0.14082,-0.12293,-0.012022,0.016601,0.077424,-0.13367,-0.13367,-0.10505,-0.040644,0.020179,-0.13725,-0.13367,-0.1122,-0.094312,0.020179 -0.05203,-0.05203,-0.045746,0.035943,0.67479,-0.079259,-0.070881,-0.058313,-0.018516,0.65175,-0.079259,-0.085543,-0.070881,-0.058313,0.010808,-0.10439,-0.098111,-0.085543,-0.064597,0.027565,-0.11277,-0.10439,-0.098111,-0.085543,0.023376 -0.16092,-0.17221,-0.12533,0.38677,0.3885,-0.17177,-0.16439,-0.12577,-0.12794,0.37982,-0.1696,-0.11622,-0.11883,0.34554,0.15589,-0.16656,-0.1275,-0.11275,0.15068,0.15242,-0.13922,-0.13098,-0.11883,0.14157,0.14764 -0.20222,-0.20397,0.12472,0.12191,0.12753,-0.20152,-0.20222,0.12121,0.12261,0.12613,-0.20327,-0.20468,0.12613,0.12472,0.12542,-0.20222,-0.20152,0.12683,0.12542,0.12472,-0.19976,-0.20222,-0.19133,0.12472,0.59283 0.64264,0.30764,0.30235,0.29618,0.14102,-0.096128,-0.10583,-0.099654,0.29353,-0.099213,-0.10583,-0.10494,-0.10406,-0.10715,-0.10715,-0.10538,-0.10583,-0.1045,-0.10494,-0.10318,-0.10671,-0.10538,-0.10538,-0.10671,-0.10538 -0.030791,-0.15233,-0.26037,-0.31439,-0.35491,0.063743,-0.044296,-0.071306,-0.12532,-0.36841,0.15828,0.063743,0.063743,-0.017286,-0.24687,0.29333,0.13127,0.13127,0.063743,-0.12532,0.27982,0.27982,0.25281,0.23931,0.090752 0.32861,0.25928,0.15529,0.39794,0.22462,0.32861,0.12063,-0.018025,-0.018025,0.12063,-0.018025,0.051302,-0.018025,-0.12202,-0.12202,-0.018025,-0.12202,-0.12202,-0.018025,-0.087353,-0.22601,-0.36466,-0.12202,-0.36466,-0.22601 -0.033032,-0.038129,-0.024111,-0.022199,0.97754,-0.040678,-0.043226,-0.034306,-0.033032,-0.073174,-0.026023,-0.049598,-0.024748,-0.044501,-0.061705,-0.052784,-0.05151,-0.036855,-0.033032,-0.059156,-0.05597,-0.025385,-0.029208,-0.027297,-0.057882 0.12484,-0.13207,-0.13052,-0.12625,-0.11539,0.12484,-0.1313,-0.11849,-0.12315,-0.10957,0.12523,-0.12781,-0.030395,-0.12548,-0.11966,0.4683,0.38331,-0.036605,-0.12664,-0.12897,0.45433,0.36468,-0.12004,-0.12431,-0.11888 -0.099272,-0.087283,-0.096874,0.32515,0.32156,-0.099272,-0.13764,-0.11126,0.33714,0.34314,-0.13644,-0.13404,-0.11726,-0.053712,0.39349,-0.11246,-0.14963,-0.14963,-0.10647,0.3851,-0.15322,-0.16042,-0.11486,-0.053712,-0.032132 -0.12337,-0.12321,-0.12368,-0.12321,-0.12368,-0.12337,-0.12384,-0.12337,-0.12337,-0.12368,-0.12384,-0.12243,-0.12306,-0.12337,-0.12337,0.23144,0.36644,-0.1229,-0.12306,-0.12368,0.23364,0.36455,0.36628,0.32789,0.33025 -0.13322,-0.20371,-0.13322,-0.1156,-0.18609,-0.080357,-0.18609,-0.062735,-0.13322,-0.18609,0.14873,0.025376,-0.062735,-0.045113,-0.25658,0.25447,0.25447,0.095865,0.042998,-0.23896,0.41307,0.41307,0.34258,0.13111,-0.09798 -0.24387,-0.24477,-0.24532,0.17675,0.17675,-0.24468,-0.24296,0.17192,0.17338,0.17429,-0.24396,-0.24387,0.17083,0.17192,0.17402,-0.24496,0.16974,0.17092,0.17192,0.17411,-0.24368,-0.24359,0.12188,0.12088,0.12234 -0.15226,-0.21818,-0.36649,-0.36649,-0.54775,0.029003,0.12788,0.06196,-0.036912,-0.15226,0.16083,0.12788,0.094918,-0.020434,-0.036912,0.24323,0.19379,0.12788,0.094918,-0.0039549,0.29266,0.1114,0.17731,0.094918,-0.036912 -0.10311,-0.092537,-0.097381,-0.081527,-0.069196,-0.10267,-0.10002,-0.084169,-0.070957,0.46061,-0.10002,-0.092977,-0.069196,-0.074921,0.4584,-0.088133,-0.088133,-0.083289,-0.082408,0.45708,-0.093418,-0.091216,-0.082848,-0.082848,0.45488 0.15933,0.1637,0.16627,0.16732,0.16928,0.16174,0.16416,0.16521,0.16792,0.16973,0.16325,0.16687,0.16853,0.16958,-0.30771,-0.094156,-0.094307,-0.094005,-0.30786,-0.30816,-0.095814,-0.096266,-0.30695,-0.30861,-0.30906 -0.082622,-0.079943,-0.066548,-0.03172,0.95149,-0.079943,-0.071906,-0.058511,0.059368,0.0057868,-0.045115,-0.069227,-0.042436,0.037935,0.072763,-0.055832,-0.10673,-0.069227,0.021861,0.00042865,-0.058511,-0.066548,-0.11209,-0.042436,-0.010288 0.17605,0.17728,0.19312,-0.26039,-0.26121,0.16679,0.20299,0.189,-0.26039,-0.26491,0.16288,0.20319,0.22068,-0.26039,-0.091531,0.16946,0.19702,0.18509,-0.26183,-0.090709,0.16946,-0.13534,-0.13452,-0.26059,-0.13123 -0.08296,-0.080708,-0.058189,0.043146,0.75474,-0.089715,-0.080708,-0.089715,-0.026662,0.37643,-0.098723,-0.085212,-0.091967,-0.064945,0.39894,-0.08296,-0.091967,-0.096471,-0.049181,-0.026662,-0.064945,-0.080708,-0.089715,-0.096471,-0.044678 -0.096755,-0.080682,-0.10479,-0.10479,-0.080682,-0.080682,-0.088718,-0.088718,-0.11283,-0.080682,-0.088718,-0.096755,-0.072646,-0.088718,-0.096755,-0.096755,-0.056574,-0.06461,-0.06461,-0.088718,-0.072646,0.40148,0.40952,0.40952,0.58631 -0.091612,-0.10674,-0.15265,-0.20691,-0.21265,0.30906,-0.094742,-0.11404,-0.16413,-0.21004,0.28558,0.30123,-0.094742,-0.12657,-0.17665,0.25845,0.27776,-0.091612,-0.1057,-0.13961,0.25637,0.30488,0.29862,-0.090568,-0.113 -0.4381,-0.44679,0.020716,-0.37727,-0.40855,-0.076608,-0.045325,0.024192,0.015502,0.013764,-0.071394,0.064164,0.036357,0.048523,0.020716,0.074592,0.17192,0.16844,0.17713,0.10414,0.18756,0.19103,0.18582,0.18061,0.17887 0.35118,-0.058773,-0.10342,-0.13995,-0.10342,0.73678,0.018346,-0.11154,-0.16025,-0.19272,0.26594,0.026464,-0.091245,-0.16836,-0.10342,0.19288,-0.0060072,-0.10748,-0.079068,-0.087186,0.075171,0.022405,-0.13589,0.038641,-0.079068 -0.041524,-0.038831,-0.045372,-0.025749,0.97965,-0.039216,-0.043063,-0.042294,-0.041524,-0.043063,-0.0396,-0.039216,-0.040755,-0.043833,-0.043833,-0.043448,-0.04037,-0.04037,-0.04037,-0.041139,-0.041139,-0.040755,-0.041909,-0.041139,-0.041139 0.068671,0.2476,0.43783,0.43934,0.065688,-0.025775,0.067891,0.24503,0.44081,0.065872,-0.13633,-0.13633,-0.13656,-0.13637,-0.13615,-0.13693,-0.13702,-0.13702,-0.13693,-0.13702,-0.13725,-0.13748,-0.1372,-0.13711,-0.13729 0.048514,0.046211,0.25642,0.62212,0.61406,0.018567,-0.030961,-0.041903,-0.043055,-0.043055,-0.13002,-0.1185,-0.05918,-0.047662,-0.051118,-0.13232,-0.12599,-0.12426,-0.12483,-0.045934,-0.13002,-0.12714,-0.1162,-0.05918,-0.054573 -0.077284,-0.099438,-0.10509,0.092877,0.61538,-0.098024,-0.10274,-0.10509,0.082507,0.6644,-0.10132,-0.10297,-0.097553,0.096648,0.041027,-0.099438,-0.089069,-0.086947,-0.075635,0.043855,-0.099203,-0.076577,-0.074928,-0.073985,-0.071392 -0.084117,-0.085159,-0.084117,-0.083076,0.46583,-0.099741,-0.091408,-0.093492,-0.079951,0.45333,-0.095575,-0.09245,-0.099741,-0.084117,0.44604,-0.099741,-0.089325,-0.091408,-0.079951,0.46583,-0.091408,-0.091408,-0.084117,-0.071619,-0.05912 0.56984,0.55361,-0.095791,-0.097413,-0.098387,0.20408,0.2057,-0.093519,-0.095791,-0.09936,0.20343,0.2083,-0.095791,-0.097089,-0.097413,-0.11234,-0.11234,-0.11299,-0.10715,-0.095141,-0.11104,-0.10975,-0.11169,-0.10585,-0.096115 -0.085757,-0.031923,-0.05884,0.42162,0.52121,-0.09114,-0.081719,-0.045382,-0.013082,0.65176,-0.09114,-0.09114,-0.085757,-0.069607,-0.065569,-0.061532,-0.083065,-0.088448,-0.083065,-0.09114,-0.039998,-0.083065,-0.087102,-0.080373,-0.085757 0.66605,-0.043638,-0.12402,-0.094166,-0.2802,0.39504,-0.029858,-0.057418,-0.11484,-0.10795,0.22967,0.16536,-0.01378,-0.096463,-0.12862,0.30087,-0.022967,-0.066605,-0.12173,-0.12402,-0.029858,-0.0045935,-0.057418,-0.087276,-0.15158 0.096542,0.097018,0.096542,0.095591,0.096067,0.099396,0.098207,0.098445,0.097731,-0.052581,0.20642,0.23068,0.18882,-0.049727,-0.050916,0.23258,0.21665,0.11081,-0.046397,-0.048538,-0.36486,-0.36486,-0.36415,-0.36129,-0.3582 0.36684,0.36684,-0.10887,-0.11801,-0.099741,0.35162,0.35314,-0.11116,-0.11344,-0.092891,0.34553,-0.10355,-0.11725,-0.10431,-0.12181,0.34705,-0.096697,-0.11649,-0.11953,-0.1378,-0.087563,-0.097458,-0.11649,-0.12866,-0.13932 -0.11447,-0.11447,-0.18785,-0.11447,0.25243,-0.041093,-0.18785,-0.16339,-0.041093,0.49703,-0.016633,-0.065553,-0.11447,-0.016633,0.32581,-0.041093,-0.18785,-0.13893,0.056747,0.22797,-0.11447,-0.16339,-0.016633,-0.041093,0.52148 -0.11472,-0.11263,-0.10845,-0.12047,0.35128,-0.10845,-0.1095,-0.10845,-0.11263,0.34919,-0.11368,-0.1095,-0.1095,-0.11263,0.34919,-0.11054,-0.11472,-0.11263,-0.1236,0.35702,-0.1095,-0.1095,-0.11368,0.36695,0.3612 -0.20101,-0.19452,-0.45115,-0.28872,-0.20101,0.078353,-0.054834,-0.15229,-0.064579,-0.11006,-0.13605,-0.12955,0.0068867,0.045868,0.065359,-0.18477,0.091347,0.23428,0.14982,0.15956,0.27976,0.27976,0.26351,0.23753,0.27651 0.08002,0.10217,0.091093,0.098475,0.087402,0.10217,0.08002,0.068948,0.08002,-0.31491,0.098475,0.076329,0.08002,0.12062,-0.49946,0.08002,0.072639,0.08002,0.08002,-0.47363,0.098475,0.08002,0.083711,0.065257,-0.51792 -0.038979,-0.036521,-0.03617,-0.036872,0.97975,-0.040384,-0.040384,-0.041086,-0.040384,-0.040735,-0.041789,-0.042491,-0.042491,-0.041789,-0.042491,-0.040735,-0.043193,-0.041789,-0.041086,-0.043545,-0.040735,-0.041789,-0.040384,-0.041789,-0.04214 -0.042287,-0.030615,-0.037372,-0.028773,0.97925,-0.041672,-0.026316,-0.033073,-0.037987,-0.03983,-0.037987,-0.03553,-0.04413,-0.042287,-0.034915,-0.043515,-0.047815,-0.041672,-0.040444,-0.045972,-0.048429,-0.049658,-0.051501,-0.052115,-0.045358 -0.11773,-0.11358,-0.10458,-0.1077,0.3366,-0.090396,-0.11081,-0.1032,0.32484,0.32588,-0.11462,-0.11323,-0.11185,-0.11531,0.33176,-0.12015,-0.11496,-0.11358,-0.10908,0.40512,-0.12292,-0.11739,-0.11185,-0.11358,0.40235 0.27464,0.21,0.1789,0.14201,-0.13516,0.28257,0.22464,0.17616,0.14963,-0.13516,0.27129,0.22098,0.17433,0.14109,-0.1315,-0.20194,-0.20377,-0.20468,-0.20377,-0.19889,-0.2059,-0.20651,-0.20712,-0.2059,-0.2059 0.15854,-0.14824,-0.15405,-0.14556,-0.17641,0.19164,0.44162,-0.15674,-0.15226,-0.16479,0.19074,0.19164,-0.15808,-0.14645,-0.16747,0.20058,0.19119,0.19834,-0.15003,-0.17149,0.38036,0.20148,-0.15271,-0.13661,-0.16523 -0.25042,-0.33119,-0.27061,0.032312,-0.33119,-0.0080779,-0.27061,-0.12925,-0.0080779,-0.39178,0.052507,0.012117,0.032312,0.052507,-0.048468,0.19387,0.23426,0.092896,0.17368,0.17368,0.31504,0.17368,0.25445,0.17368,0.072701 -0.127,-0.093222,-0.02567,0.10943,0.81873,-0.127,-0.16077,-0.059446,0.075658,0.27831,-0.093222,-0.093222,0.0081063,-0.127,0.21076,-0.02567,-0.127,-0.127,0.041882,0.075658,-0.093222,-0.02567,-0.059446,-0.127,-0.127 -0.055422,-0.10438,-0.10634,-0.12103,-0.10242,-0.014296,-0.071088,-0.087735,-0.1034,-0.078922,-0.0329,-0.0329,-0.061297,-0.072068,-0.072068,0.4939,-0.016254,-0.041713,-0.08088,-0.084797,0.57027,0.54286,-0.09361,-0.088714,-0.084797 -0.16927,-0.10626,-0.10294,0.34146,0.47412,-0.18254,-0.086361,0.059564,0.18227,0.35473,-0.20907,-0.11289,-0.10958,-0.059829,-0.073095,-0.26877,-0.12616,-0.10626,0.21212,0.20217,-0.24224,-0.14937,-0.03993,0.092729,0.22539 -0.17086,-0.17359,-0.1809,-0.19185,-0.1882,0.1587,-0.14347,-0.17359,-0.18638,-0.17359,0.25638,0.19521,-0.15808,-0.18181,-0.18546,0.27098,0.28011,0.13405,-0.14438,-0.14164,0.27463,0.2938,0.3221,0.12401,0.08384 -0.19004,-0.13477,-0.17162,-0.21998,-0.24992,-0.20847,-0.19004,-0.19004,-0.16241,-0.18313,-0.14398,-0.10714,-0.21307,0.079407,0.34655,0.2268,0.16692,0.1531,0.19916,0.25674,0.11626,0.097831,0.12316,0.29819,0.3005 -0.040238,-0.039853,-0.039082,-0.039275,0.97978,-0.039467,-0.039853,-0.03966,-0.040431,-0.040431,-0.041201,-0.039853,-0.040238,-0.041009,-0.041394,-0.041009,-0.040623,-0.040238,-0.041201,-0.041394,-0.043706,-0.044669,-0.040431,-0.041972,-0.04255 0.050092,0.050639,0.050639,-0.21521,-0.21594,0.049545,0.051733,0.056839,-0.21612,-0.21558,0.093307,0.094401,0.093672,-0.21612,-0.21558,0.094036,0.37429,0.28312,-0.21576,-0.21503,0.097136,0.34111,0.37283,-0.21412,-0.21394 0.30218,0.51346,0.11023,0.10547,0.10351,0.50057,0.11079,0.10771,0.10435,0.10547,-0.15064,-0.14728,-0.15372,-0.14812,0.031496,-0.1512,-0.15176,-0.14896,-0.1484,-0.14924,-0.1498,-0.14924,-0.14924,-0.14924,-0.1484 -0.041344,-0.043182,-0.045938,-0.031238,0.97849,-0.056045,-0.050532,-0.033994,-0.030319,-0.027563,-0.061557,-0.049613,-0.039507,-0.032157,-0.030319,-0.063395,-0.05237,-0.039507,-0.032157,-0.033994,-0.051451,-0.040426,-0.032157,-0.029401,-0.030319 -0.19033,-0.2275,-0.17174,-0.19033,-0.20892,-0.13457,-0.041635,-0.11598,-0.20892,-0.2275,0.2,0.14423,0.10706,0.014126,-0.20892,0.31152,0.25576,0.25576,0.014126,-0.24609,0.34869,0.29293,0.21858,0.088474,-0.078809 -0.12278,-0.16483,-0.17397,-0.163,-0.16848,0.02713,-0.22516,-0.2087,-0.19225,-0.1502,0.083803,-0.22698,-0.18311,-0.17397,-0.086216,0.18069,0.12219,0.1094,0.39093,0.4147,0.074662,0.13865,0.12951,0.26113,0.30684 -0.35613,-0.35649,-0.35685,-0.35793,-0.35613,-0.35038,0.11729,0.11189,0.1047,0.098953,0.12304,0.11872,0.11477,0.1065,0.10075,0.12448,0.12016,0.11333,0.10938,0.10075,0.12448,0.1216,0.11657,0.10722,0.099313 0.092853,0.08683,0.095262,0.091649,0.096467,0.084421,0.090444,0.092853,0.090444,-0.47212,0.063942,0.073579,0.068761,0.075988,-0.43357,0.088035,0.083216,0.089239,0.08683,-0.45887,0.095262,0.095262,0.096467,0.092853,-0.4661 -0.21573,-0.093155,-0.052298,0.029417,0.31542,-0.17487,-0.13401,-0.01144,0.070275,0.19285,-0.13401,-0.093155,-0.17487,-0.052298,0.31542,-0.093155,-0.13401,0.029417,0.27456,0.31542,-0.37916,-0.29744,0.23371,-0.052298,0.31542 -0.035815,-0.043065,-0.02494,-0.01769,0.97738,-0.037628,-0.044878,-0.026753,-0.030378,-0.048503,-0.044878,-0.043065,-0.026753,-0.023128,-0.030378,-0.050315,-0.043065,-0.050315,-0.021315,-0.059378,-0.035815,-0.043065,-0.052128,-0.066628,-0.077503 0.37004,0.24983,0.11563,-0.071682,-0.040929,0.36445,0.35327,-0.13319,-0.099639,-0.11641,0.28897,-0.054908,-0.080069,-0.1891,-0.14437,0.023372,-0.046521,-0.17792,-0.22824,-0.20308,0.17434,0.23864,-0.19469,-0.19469,-0.20308 0.65756,0.29892,0.25398,0.22639,0.19523,-0.10276,-0.095862,-0.098478,0.22544,0.19357,-0.10799,-0.10466,-0.10133,-0.1049,-0.10561,-0.11822,-0.11917,-0.11846,-0.11346,-0.11441,-0.13035,-0.13082,-0.13154,-0.12725,-0.12583 0.31158,0.2615,0.20642,0.016125,0.30407,0.33662,0.40172,0.0086132,0.31909,-0.07151,-0.14412,-0.036456,-0.10907,-0.14913,-0.15414,-0.20421,-0.17417,-0.17417,-0.15414,-0.15414,-0.17918,-0.12409,-0.074014,-0.13411,-0.1291 -0.036615,-0.038212,-0.040608,-0.03941,0.97977,-0.03941,-0.040208,-0.041406,-0.041007,-0.042204,-0.041406,-0.042604,-0.039809,-0.039809,-0.042604,-0.040608,-0.041406,-0.042204,-0.040608,-0.042204,-0.040208,-0.042204,-0.042604,-0.040608,-0.041805 0.07015,-0.0045325,-0.10754,-0.12299,-0.099817,0.065,0.041822,-0.12299,-0.11527,-0.097242,0.090752,0.1165,-0.061188,-0.11269,-0.097242,0.65216,-0.030285,-0.11012,-0.10754,-0.094667,0.61096,-0.058613,-0.099817,-0.11527,-0.089516 0.1376,0.072257,-0.23123,-0.28641,-0.36338,0.18117,0.22182,0.22618,-0.24866,-0.34014,0.20295,0.19859,0.16229,-0.27044,-0.24721,0.15067,0.15938,0.072257,0.072257,-0.24285,0.13905,0.12453,0.034502,0.040311,0.034502 -0.17128,-0.18732,-0.21939,-0.2087,-0.22474,0.05859,-0.17662,-0.16593,-0.19266,-0.19801,0.27777,-0.075055,-0.10713,-0.11247,-0.12851,0.43814,0.17085,0.1067,0.053244,0.037207,0.45418,0.20293,0.15481,0.12274,0.090664 -0.02143,-0.019774,-0.01867,-0.019774,0.97389,-0.02143,-0.022534,-0.070837,-0.067525,-0.017014,-0.068077,-0.066973,-0.069181,-0.073597,-0.07553,-0.042959,-0.062005,-0.020326,-0.01867,-0.016186,-0.047928,-0.030263,-0.053724,-0.029711,-0.019774 0.16425,0.17569,0.18331,0.17569,0.1795,0.17187,0.17569,0.17187,0.1795,0.18521,0.16806,0.17378,0.18521,-0.16921,-0.23018,0.1814,-0.16921,-0.23018,-0.2378,-0.23971,-0.21684,-0.24352,-0.24161,-0.24543,-0.24733 -0.10742,-0.092311,-0.063983,0.045551,0.91616,-0.065872,-0.096088,-0.088534,0.083321,0.08521,-0.077203,-0.11875,-0.13008,0.081433,0.062548,-0.075314,-0.10742,-0.092311,0.032331,0.0077807,-0.071537,-0.065872,-0.092311,0.070102,-0.039432 -0.34981,-0.35095,-0.34867,-0.34602,-0.25214,0.10222,0.11017,-0.34337,-0.22942,0.096917,0.10638,0.097295,0.10903,0.11357,0.145,0.12645,0.1325,0.13478,0.13743,0.13175,0.10903,0.14424,0.14424,0.1397,0.1397 0.86344,0.037688,-0.070572,-0.068556,-0.069186,0.035672,0.035798,-0.067799,-0.06906,-0.07095,0.39599,-0.067799,-0.069438,-0.069186,-0.068682,-0.067043,-0.068556,-0.070194,-0.066539,-0.068051,-0.068178,-0.068682,-0.066791,-0.066035,-0.067295 -0.19447,-0.19536,-0.19894,-0.20311,-0.20549,-0.18851,-0.18822,-0.18762,-0.18464,-0.19179,0.25939,0.22306,0.18732,-0.18256,-0.18256,0.22872,0.21859,0.18554,0.17333,-0.18017,0.25701,0.21502,0.19119,0.17481,0.16945 0.2559,-0.16436,-0.16971,-0.16971,-0.16971,0.24387,-0.16303,-0.16236,-0.1677,-0.16637,0.24855,0.23786,-0.16035,-0.15835,-0.16436,0.25991,0.24989,0.23853,-0.1637,-0.15167,0.23318,0.23519,0.24521,-0.15234,-0.16436 -0.071045,-0.073868,-0.073162,-0.075985,-0.09292,-0.067517,-0.066106,-0.069634,-0.075985,-0.09786,-0.059755,-0.063989,-0.069634,-0.077396,-0.095037,0.56122,-0.056932,-0.057638,-0.075279,-0.10351,0.54781,0.50971,-0.026589,-0.072456,-0.096449 -0.37878,-0.3821,0.11315,0.11149,0.11149,-0.3767,0.10817,0.10941,0.109,0.10983,-0.37712,0.11107,0.10983,0.11149,0.11066,-0.30821,0.11107,0.11149,0.11107,0.10983,-0.30489,0.11896,0.11771,0.11564,0.11647 0.20465,0.20545,-0.18851,-0.19171,-0.19051,0.20625,-0.18771,-0.19131,-0.19211,-0.19331,0.20945,0.20905,0.21065,-0.1945,-0.19171,0.21065,0.21145,0.21105,-0.19211,-0.1949,0.21464,0.21304,0.19107,-0.1969,-0.19211 -0.099894,-0.099668,-0.10057,-0.098765,-0.098991,0.42396,-0.098765,-0.098087,-0.10125,-0.099216,0.42554,-0.097862,-0.098765,-0.098087,-0.099668,0.44248,-0.0947,-0.097862,-0.099216,-0.10057,0.41628,0.272,-0.098765,-0.099894,-0.099668 -0.13026,-0.13026,-0.081895,0.014831,-0.033532,-0.081895,-0.13026,-0.13026,0.19216,0.30501,-0.13026,-0.13026,-0.081895,0.063194,0.40173,-0.11414,-0.21086,-0.13026,0.15992,0.40173,-0.13026,-0.098016,-0.27535,0.014831,0.46622 0.23167,0.22173,-0.17307,-0.17919,-0.18186,0.23358,0.22594,0.2225,-0.18186,-0.17689,0.22594,0.22823,0.22747,-0.18224,-0.17307,0.21332,0.24084,-0.18072,-0.17842,-0.17498,0.2095,-0.16887,-0.17842,-0.17651,-0.1746 -0.11377,-0.138,-0.14338,-0.13172,-0.11736,-0.11916,-0.13621,-0.13979,-0.12634,-0.12813,-0.12185,-0.1371,-0.14159,-0.13621,-0.12813,0.080934,-0.11647,-0.13172,0.34832,0.33755,0.081831,0.37165,0.33576,0.30435,0.34653 -0.36584,-0.36098,-0.36098,-0.36584,-0.36179,0.10888,0.11374,0.10888,-0.31804,0.1105,0.11536,0.1105,0.11212,0.11212,0.11212,0.1105,0.11374,0.11536,0.1105,0.11212,0.11698,0.1105,0.1105,0.11536,0.11374 0.3747,0.28028,0.21221,0.14194,0.091436,0.0057971,0.30663,0.22099,0.13975,0.087045,-0.13694,-0.17866,0.2166,0.13975,0.080457,-0.20501,-0.24453,-0.18085,-0.14791,-0.23355,-0.20501,-0.24892,-0.18524,-0.095213,-0.23575 0.23583,0.25794,0.2432,0.21372,0.1695,0.21372,0.2432,0.21372,0.051588,-0.18424,0.20635,0.19898,-0.081067,-0.19161,-0.22846,0.16213,-0.081067,-0.18424,-0.18424,-0.20635,-0.14739,-0.19898,-0.22109,-0.23583,-0.26531 -0.36968,-0.067372,-0.024185,0.019002,0.3645,-0.15375,-0.24012,0.14856,0.10538,0.10538,-0.41287,-0.024185,0.10538,0.23494,0.10538,-0.41287,0.10538,-0.024185,0.062189,0.27812,-0.11056,-0.15375,0.062189,0.10538,0.19175 0.55731,-0.088477,-0.097685,-0.088477,-0.078432,0.5682,-0.078432,-0.078851,-0.060436,-0.061273,0.49161,-0.073829,-0.076758,-0.06504,-0.048298,-0.06504,-0.054576,-0.054576,-0.072155,-0.097685,-0.049554,-0.060436,-0.062947,-0.10187,-0.10229 -0.27479,0.079679,0.070111,0.074667,0.19541,-0.27479,0.0733,0.061454,0.075123,0.19996,-0.27479,0.072389,0.058265,0.20543,0.21454,-0.27479,-0.28573,-0.29393,0.20179,0.21044,-0.27798,-0.28618,0.062821,0.19404,0.19358 0.38801,0.068641,-0.10933,-0.12618,-0.10317,0.38718,-0.10892,-0.11879,-0.1044,-0.10769,0.38554,0.38677,-0.11057,-0.12084,-0.10152,0.38677,-0.1229,-0.12125,-0.13317,-0.10646,0.073162,-0.12454,-0.11879,-0.13893,-0.098646 -0.28886,-0.29199,-0.29199,-0.29511,-0.28752,0.15699,0.15833,-0.29199,-0.2911,-0.2911,0.14762,0.14539,0.14539,0.14449,0.14762,0.13334,0.13512,0.132,0.132,0.13512,0.12352,0.1253,0.12307,0.12218,0.12218 -0.17791,-0.20615,-0.19203,-0.13555,-0.07907,-0.16379,-0.16379,-0.16379,-0.06495,-0.022591,-0.06495,-0.14967,-0.06495,-0.022591,-0.022591,-0.036711,-0.10731,-0.06495,0.14684,0.30216,-0.036711,0.21744,0.28804,0.48571,0.49983 0.20093,0.15812,0.17157,-0.22904,-0.13852,0.16607,0.15689,-0.25473,-0.24861,-0.19234,0.15934,0.15445,-0.24983,-0.25779,-0.23332,0.19237,0.15689,0.2101,-0.16298,-0.15687,0.25965,0.20766,0.25475,-0.16421,-0.16054 -0.20295,-0.16432,-0.16152,-0.16234,0.23945,-0.20543,-0.16449,0.21915,0.22278,0.23169,-0.20691,-0.16399,0.21981,0.21865,0.23153,-0.20592,-0.16498,-0.16928,0.22014,0.22377,-0.16961,-0.16548,-0.16845,0.22427,0.22443 -0.17078,-0.15602,-0.16914,0.23584,0.23584,-0.16422,-0.14619,-0.14783,-0.18062,0.25387,-0.13963,-0.14619,-0.16094,0.24732,0.24568,-0.1675,-0.14946,-0.1675,0.25059,0.22764,-0.19865,-0.17898,0.26043,0.25715,0.22928 -0.039105,-0.037248,-0.039384,-0.038548,0.97975,-0.042541,-0.040034,-0.03762,-0.037341,-0.037062,-0.042634,-0.041798,-0.041148,-0.040869,-0.040869,-0.042541,-0.042448,-0.042448,-0.042169,-0.042262,-0.043005,-0.042169,-0.041891,-0.042355,-0.042262 -0.038573,-0.038339,-0.037871,-0.038105,0.97975,-0.039975,-0.039742,-0.039274,-0.038105,-0.038573,-0.041378,-0.040443,-0.04091,-0.039742,-0.039742,-0.044183,-0.042547,-0.041612,-0.042079,-0.04091,-0.043949,-0.043482,-0.043949,-0.043482,-0.042781 -0.096987,0.15281,0.3248,0.45675,0.67787,-0.10836,-0.10017,0.051342,0.050432,0.048612,-0.11018,-0.11155,-0.10063,-0.094712,0.044517,-0.112,-0.11382,-0.11291,-0.10609,-0.078788,-0.11291,-0.11155,-0.112,-0.11291,-0.11155 0.32109,0.32804,-0.12741,-0.139,-0.13205,0.29559,-0.12799,-0.13552,-0.10423,-0.12567,0.30312,0.33326,-0.14016,-0.094961,-0.099597,0.32804,-0.139,-0.12857,-0.099017,-0.13552,0.32978,-0.13436,-0.10829,-0.13784,-0.12973 0.33472,0.081166,0.07151,0.069364,0.066503,0.30611,0.22743,0.2328,0.076159,0.068649,0.30432,0.22815,0.11264,-0.20529,0.12658,-0.20565,-0.20958,-0.20815,-0.20994,-0.2103,-0.2103,-0.21137,-0.21101,-0.2128,-0.21173 0.23594,0.16136,0.15426,0.16136,0.13651,0.16136,0.14716,0.13295,0.14716,0.1294,0.13651,0.14006,0.1294,0.1081,-0.1973,0.14716,0.1223,-0.16889,-0.28963,-0.31094,-0.18665,-0.26832,-0.30384,-0.31449,-0.31094 0.094207,0.104,0.11379,0.1089,-0.020043,-0.020043,0.041978,-0.055949,-0.0331,-0.15877,0.12195,-0.059214,-0.06411,-0.085328,-0.17183,0.14807,-0.088592,-0.085328,-0.11307,-0.17836,0.85151,-0.090224,-0.062478,-0.12613,-0.17183 0.93651,-0.10752,-0.071522,-0.035521,-0.059522,0.072483,-0.089523,0.00048002,-0.01152,-0.01152,-0.083523,-0.095523,-0.029521,0.018481,0.024481,-0.10752,-0.10752,-0.089523,0.12048,-0.01152,-0.10752,-0.095523,-0.059522,0.00048002,0.00048002 -0.033072,-0.034997,-0.36193,-0.37572,-0.37027,-0.034355,-0.035317,-0.034997,-0.035317,-0.037884,-0.033713,-0.034034,-0.034997,-0.034997,-0.034355,-0.030184,-0.03243,-0.03243,-0.034034,-0.034355,0.33845,0.33942,0.33845,0.33653,0.33653 -0.067824,-0.070331,-0.06983,-0.063061,0.019663,-0.077601,-0.079105,-0.078603,-0.077601,0.026181,-0.077601,-0.079105,-0.079355,-0.079105,0.31973,-0.07384,-0.075094,-0.074091,-0.076598,0.83538,-0.072336,-0.077099,-0.072838,-0.074342,0.29441 -0.099309,-0.058417,-0.03505,0.34077,0.72242,-0.089573,-0.087626,-0.066206,0.31156,0.33298,-0.089573,-0.083731,-0.081784,-0.075942,-0.027261,-0.09152,-0.12073,-0.093467,-0.09152,-0.062312,-0.087626,-0.15383,-0.087626,-0.077889,-0.046734 -0.17942,-0.17363,-0.16784,-0.14533,-0.15305,-0.19679,-0.18521,-0.17749,-0.14083,-0.13118,-0.19808,0.28374,-0.18907,-0.15176,-0.13568,0.28824,0.29081,0.28631,0.077245,0.074672,0.29017,0.29339,0.28888,0.075958,0.075958 -0.28814,-0.28783,0.19687,0.16291,0.1521,-0.28783,-0.28906,0.17649,0.16785,0.14685,-0.28875,-0.29153,0.11166,0.12061,0.11567,-0.29061,0.14593,0.11166,0.11228,0.11505,-0.29431,0.14469,0.11011,0.10765,0.11969 0.22138,-0.17793,-0.1774,-0.17365,-0.16669,0.22432,0.22834,-0.1766,-0.16857,-0.17231,0.22405,0.22753,0.22807,-0.17285,-0.17606,0.22432,0.22539,0.22619,-0.1683,-0.17285,0.22298,0.22379,-0.16696,-0.16669,-0.23949 -0.083526,-0.084854,-0.085941,-0.086424,-0.086303,-0.08413,-0.085216,-0.086182,-0.086182,-0.087148,0.34041,-0.084975,-0.085458,-0.086303,-0.088114,0.52128,-0.085699,-0.086665,-0.085699,-0.087631,0.52551,0.4242,-0.087752,-0.088356,-0.088839 0.29336,-0.084567,-0.084806,-0.32781,-0.32733,0.18983,0.18695,-0.084327,-0.080493,-0.32637,0.18647,0.18216,0.18959,-0.080732,-0.32589,0.18671,0.18504,0.18935,-0.080972,-0.32637,0.075038,0.079831,0.078393,0.18647,-0.079534 0.059069,0.049237,-0.033349,-0.091356,-0.1356,0.046288,0.027607,-0.050063,-0.1002,-0.15133,0.043338,0.018759,-0.054979,-0.11888,-0.14248,0.63226,0.017776,-0.043181,-0.11495,-0.14248,0.63422,0.027607,-0.091356,-0.12675,-0.15919 0.43676,0.49473,-0.08949,-0.090826,-0.088688,0.43997,0.44291,-0.086819,-0.090024,-0.093764,0.041139,-0.088688,-0.095634,-0.09136,-0.093764,-0.086551,-0.090024,-0.10311,-0.10525,-0.082277,-0.083613,-0.092963,-0.10525,-0.10445,-0.092963 0.13464,0.086572,0.084569,-0.24694,-0.28099,0.13164,0.094584,0.079561,-0.24393,-0.27798,0.11962,0.11562,0.10159,-0.24393,-0.26196,0.12864,0.13264,0.28187,-0.25395,-0.25094,0.1026,0.12463,0.29188,0.28788,-0.23792 -0.2872,-0.095734,-0.15956,-0.22338,-0.12765,-0.063823,-0.095734,-0.063823,-0.12765,-0.12765,-0.095734,0,0,-0.12765,-0.25529,0.063823,0.25529,-0.12765,0.063823,-0.031911,0.22338,0.35102,0.31911,0.22338,0.51058 0.11003,0.069681,-0.07873,-0.11043,-0.25596,0.075445,0.055272,-0.048471,-0.17815,-0.21705,0.095617,0.10858,0.11579,-0.2012,-0.24875,0.47313,0.1374,-0.19544,-0.21417,-0.20553,0.44719,0.14173,0.16478,0.14605,-0.1868 0.25934,0.36811,0.35322,0.12692,0.1128,0.3559,0.34597,-0.15358,0.12386,0.12615,-0.15015,-0.15053,-0.15282,-0.15358,0.12234,-0.14939,-0.15397,-0.15435,-0.1532,-0.15397,-0.15397,-0.15511,-0.15473,-0.15397,-0.15129 -0.031176,-0.030421,-0.10061,-0.10388,-0.10841,-0.029666,-0.031176,-0.10187,-0.10766,-0.10992,-0.031679,-0.03344,-0.10791,-0.10816,-0.10992,0.48154,0.33588,-0.10564,-0.1074,-0.10942,0.48657,0.49035,-0.1064,-0.10841,-0.11118 0.10168,0.10102,0.10135,0.10301,0.10168,0.095725,0.095394,0.095063,0.094732,-0.45877,0.088442,0.0848,0.085793,0.087449,-0.46043,0.077517,0.076193,0.07851,0.078842,-0.45844,0.07189,0.070896,0.070896,0.069572,-0.45282 -0.080822,-0.082876,-0.082876,0.49802,0.62077,-0.083903,-0.079281,-0.079281,-0.08493,0.49648,-0.045383,-0.070549,-0.074658,-0.07774,-0.071577,-0.069009,-0.065413,-0.066954,-0.071577,-0.074145,-0.069522,-0.069522,-0.070036,-0.070549,-0.074658 -0.093153,-0.15538,0.21136,0.20606,0.1915,-0.087857,-0.13949,-0.017688,0.18488,0.18752,-0.20834,-0.15141,-0.052111,0.19282,0.2246,-0.20437,-0.2229,-0.17259,0.28814,0.29476,-0.19377,-0.2229,-0.2176,-0.19642,0.35434 -0.12971,-0.049215,-0.0032197,0.13477,0.67521,-0.1872,-0.10671,-0.072212,0.019778,0.46823,-0.1642,-0.1527,-0.060714,0.054274,0.21526,-0.1987,-0.09521,-0.049215,0.042775,0.077272,-0.2332,-0.12971,-0.037716,0.0082791,-0.026217 -0.039614,-0.040467,-0.04132,-0.0426,0.97974,-0.037907,-0.037907,-0.041747,-0.043027,-0.0426,-0.038334,-0.039614,-0.039614,-0.04388,-0.043454,-0.037907,-0.039614,-0.040467,-0.040467,-0.043027,-0.037907,-0.04004,-0.040467,-0.046441,-0.04132 -0.020747,-0.023705,-0.026663,-0.030607,0.97025,-0.0099001,-0.041454,-0.028635,-0.028635,-0.0049698,-0.022719,-0.054273,-0.044412,-0.041454,-0.068078,-0.057231,-0.053287,-0.062161,-0.071036,-0.036524,-0.14598,-0.040468,-0.016803,-0.03258,-0.0079279 -0.14815,-0.14193,-0.13447,-0.13385,-0.14691,-0.13447,-0.1494,-0.13074,-0.1326,-0.13945,-0.12949,-0.13322,-0.11643,-0.11954,-0.11518,0.51249,0.38559,0.049045,0.057754,0.055266,0.38248,0.39243,0.055266,0.061486,0.054021 -0.013356,-0.0241,-0.078649,-0.096005,-0.11171,-0.017488,-0.024927,-0.076169,-0.096831,-0.10427,-0.01005,-0.021621,-0.05716,-0.086913,-0.099311,0.67841,-0.0017852,-0.052201,-0.068731,-0.096005,0.65693,0.0040002,-0.045589,-0.065425,-0.091046 -0.091959,-0.087976,-0.086598,-0.084607,-0.084607,-0.091652,-0.088589,-0.086904,-0.084913,-0.083535,-0.091193,-0.085832,-0.085679,-0.085219,-0.083994,-0.093337,-0.086138,-0.086292,-0.086138,-0.083994,-0.093643,0.45253,0.45835,0.46142,0.4605 0.29961,-0.13338,-0.13464,-0.1374,-0.15297,0.30136,-0.13313,-0.13464,-0.1364,-0.1374,0.30011,-0.13439,-0.13514,-0.1374,-0.13765,0.29734,0.28278,-0.13765,-0.13916,-0.1364,0.30187,0.28328,0.26419,-0.1364,-0.1364 0.089412,0.077991,0.076311,0.083365,-0.45682,0.085381,0.077655,0.076311,0.091092,-0.45615,0.089412,0.077655,0.076983,0.091764,-0.45816,0.12301,0.093108,0.078326,0.081014,-0.45883,0.11998,0.089076,0.081686,0.077319,0.093108 -0.1619,-0.14548,-0.14274,-0.14274,-0.15004,-0.20569,-0.14548,-0.11629,-0.12085,-0.13271,-0.19839,-0.09987,-0.093484,-0.086187,0.21485,-0.11811,-0.12541,-0.10626,0.23856,0.23765,0.33252,0.3234,0.31245,0.34347,0.28874 -0.13448,-0.13538,-0.13582,0.2667,0.27563,-0.13538,-0.13538,-0.13582,-0.14386,0.28277,-0.13538,-0.13582,-0.13493,0.27786,0.28545,-0.13448,-0.13582,-0.13627,-0.1385,0.39746,-0.13582,-0.13627,-0.13672,0.26001,0.27027 -0.14248,-0.064622,-0.20087,-0.10355,-0.084087,-0.064622,-0.12302,-0.064622,-0.14248,0.0327,-0.20087,-0.084087,-0.025693,-0.0062287,0.16895,-0.064622,-0.084087,-0.064622,0.07163,0.48038,-0.12302,-0.0062287,0.052165,0.13002,0.71396 -0.43488,0.10594,0.11389,0.074124,0.026405,-0.49851,0.10594,0.1457,0.09003,0.050264,-0.46669,0.15366,0.13775,0.042311,0.050264,-0.244,0.13775,0.12184,0.066171,0.097983,-0.27582,0.11389,0.11389,0.082077,0.09003 -0.38386,-0.39194,-0.38183,-0.38942,-0.38739,0.16003,0.17621,0.022039,0.033664,0.11909,0.038719,0.032654,0.17317,0.14335,0.11353,0.024566,0.031137,0.16812,0.13931,0.11403,0.031137,0.036697,0.14942,0.12566,0.1019 0.86324,0.16933,0.16031,-0.065351,-0.11725,0.16144,-0.063094,-0.084532,-0.065351,-0.115,-0.082275,-0.091302,-0.054068,0.0034752,-0.12515,-0.10033,-0.065351,0.019271,-0.058581,-0.12628,-0.10033,0.15805,9.0264e-05,-0.12628,-0.094687 -0.017034,0.018751,-0.0062982,-0.055204,0.97421,-0.0062982,-0.026576,-0.011069,-0.015841,-0.045662,-0.043276,-0.045662,-0.055204,-0.055204,-0.050433,-0.050433,-0.055204,-0.05759,-0.059976,-0.055204,-0.055204,-0.05759,-0.052819,-0.062361,-0.052819 -0.29105,-0.29132,0.13303,0.13213,0.13294,-0.29105,-0.29204,0.17509,0.13204,0.13357,-0.29105,0.13375,0.13537,0.13537,0.13591,-0.29096,-0.29177,0.13474,0.1351,0.13465,-0.29123,0.13402,0.13618,0.13447,0.14213 0.23123,0.21849,0.20256,0.17708,0.16434,0.21849,0.18345,0.15479,0.11657,0.11975,0.23441,0.15479,-0.15734,0.030575,-0.186,0.1739,-0.17326,-0.27836,-0.25607,-0.21466,-0.074528,-0.27199,-0.26562,-0.27518,-0.2274 -0.03813,-0.039171,-0.04056,-0.041948,0.97967,-0.03813,-0.037436,-0.042642,-0.041948,-0.0475,-0.043683,-0.035701,-0.037436,-0.041254,-0.043336,-0.042989,-0.043336,-0.041601,-0.036395,-0.03813,-0.039865,-0.041948,-0.041948,-0.048194,-0.036395 0.55648,-0.05507,-0.061217,-0.082728,-0.089643,0.55187,-0.057375,-0.075046,-0.088875,-0.088106,0.50654,-0.045083,-0.090411,-0.090411,-0.090411,-0.038936,-0.042778,-0.090411,-0.096557,-0.094253,-0.028181,-0.040473,-0.081192,-0.091948,-0.095789 -0.11157,-0.13675,-0.12836,-0.10317,-0.17033,-0.15564,-0.17243,-0.17663,-0.16614,-0.16404,-0.14515,-0.12836,-0.16614,-0.14095,-0.12206,0.054231,0.6083,0.23892,0.21793,0.22633,0.12559,0.19065,0.18225,0.16756,0.17596 0.1464,0.20398,0.38474,-0.22951,-0.2839,0.1528,0.20718,0.40394,-0.040758,-0.2919,0.16559,0.10801,-0.059954,-0.096745,-0.2935,0.1256,0.045621,-0.031161,-0.12394,-0.2839,0.020027,0.1304,-0.016764,-0.099944,-0.24231 -0.31251,-0.2146,-0.29782,-0.072644,-0.082435,-0.2244,-0.22929,-0.1167,-0.048169,-0.08733,-0.13139,-0.13139,0.064421,0.04484,0.084001,-0.19013,0.00078323,0.1819,0.23575,0.24065,0.025259,0.30918,0.30918,0.32876,0.31407 0.26279,-0.0053631,-0.094749,-0.13944,-0.094749,0.17341,-0.094749,-0.13944,-0.0053631,-0.0053631,0.30749,-0.094749,-0.18413,-0.094749,-0.050056,0.53095,-0.22883,-0.18413,-0.0053631,-0.22883,0.44156,0.17341,0.03933,-0.13944,-0.13944 -0.18688,-0.18564,0.12868,0.13366,0.26294,-0.18844,-0.1819,0.12463,0.12525,0.58598,-0.18751,-0.18252,-0.18501,0.12525,0.12276,-0.18937,-0.18564,-0.1819,0.12619,0.12276,-0.18844,-0.18595,0.12525,0.12463,0.1212 0.10766,0.1648,0.16386,0.1633,-0.29011,0.10521,0.13567,0.16302,-0.28983,-0.28964,0.10644,0.13548,0.13463,-0.28889,-0.29171,0.10709,0.13632,0.13482,-0.28908,-0.29133,0.10493,0.13839,0.16067,0.15992,-0.29162 0.083873,-0.14332,-0.14137,-0.14267,-0.15089,0.083441,-0.14375,-0.14116,-0.14137,-0.1457,0.30782,0.3048,-0.14159,-0.14332,-0.1511,0.30523,0.30674,-0.14375,-0.14289,-0.14743,0.30415,0.30523,0.3048,-0.14267,-0.1431 -0.035666,-0.055799,-0.073057,-0.080247,-0.078809,-0.058676,-0.075933,-0.074495,-0.086,-0.083124,0.51226,-0.061552,-0.081686,-0.077371,-0.083124,0.52952,-0.078809,-0.068742,-0.074495,-0.084562,0.57841,-0.065866,-0.070181,-0.077371,-0.094629 0.82793,0.051254,-0.069999,-0.10277,-0.089662,0.2315,0.087303,-0.10932,-0.10932,-0.11588,0.25444,-0.069999,-0.096216,-0.10932,-0.063445,0.028314,-0.11588,-0.11588,-0.10277,0.14957,-0.063445,-0.11588,-0.12243,-0.040505,-0.017565 0.20005,-0.20005,-0.2131,-0.21528,-0.20005,0.1957,0.19788,-0.2044,-0.2044,-0.2044,0.20005,0.21745,-0.12177,-0.18701,-0.20223,0.2131,0.20223,0.21962,-0.17179,-0.19136,0.21528,0.20223,0.21745,0.20658,-0.17179 0.58321,0.28117,0.17371,0.15145,-0.073148,0.58031,-0.016031,-0.073148,-0.02668,-0.090574,-0.055723,-0.14963,-0.039265,-0.066372,-0.10606,-0.040233,-0.1322,-0.099286,-0.094446,-0.12446,-0.041201,-0.1322,-0.13414,-0.14091,-0.13414 0.10061,0.086778,0.084472,0.10061,-0.38123,0.11444,0.084472,0.096,0.091389,-0.35587,0.096,0.077556,0.13289,0.096,-0.38354,0.10292,0.077556,0.13289,-0.33051,-0.33973,0.10292,0.086778,0.179,0.25277,-0.30515 -0.28901,-0.29112,0.15616,0.14774,0.14423,-0.28883,-0.29217,0.12124,0.11879,0.11774,-0.29041,-0.2927,0.11545,0.11668,0.11826,-0.29024,0.15932,0.12089,0.11949,0.14774,-0.29164,0.16108,0.15739,0.15441,0.1495 0.2183,0.20973,0.084885,-0.19429,-0.19261,0.22395,0.22186,-0.19303,-0.19282,-0.19052,0.22583,-0.18509,-0.18781,-0.19261,-0.1855,0.22186,0.19739,0.2252,-0.19345,-0.1876,0.22081,0.20178,0.22479,-0.19429,-0.18676 0.071914,0.3041,0.27557,-0.055207,-0.28091,0.060239,0.32097,0.26908,-0.096715,-0.30426,0.022622,0.061537,0.056348,-0.15249,-0.2861,0.0057593,0.053754,0.33005,-0.11098,-0.30685,0.032999,0.055051,0.11213,-0.12006,-0.31853 -0.081564,0.38405,0.3791,0.38264,0.64053,-0.087923,-0.081564,-0.082977,-0.081564,-0.090749,-0.082977,-0.085803,-0.083683,-0.080857,-0.083683,-0.083683,-0.08651,-0.085803,-0.088629,-0.083683,-0.08651,-0.087923,-0.085096,-0.087216,-0.087923 -0.14306,-0.18417,-0.060841,0.00082218,-0.019732,-0.20472,-0.16361,-0.10195,-0.10195,-0.040287,-0.14306,-0.16361,-0.040287,-0.10195,0.20637,-0.18417,-0.16361,0.021377,0.24747,0.39136,-0.18417,0.021377,0.24747,0.39136,0.47357 0.15711,0.14189,0.14082,0.13907,0.3195,0.15478,0.15352,0.14237,0.14004,0.26404,-0.20277,-0.20354,0.15119,0.26608,0.26356,-0.20141,-0.20315,-0.20393,-0.20315,-0.20228,-0.20189,-0.20354,-0.20267,-0.20248,-0.20315 -0.037277,-0.037076,-0.037076,-0.036274,0.97971,-0.040286,-0.038481,-0.037879,-0.03828,-0.037678,-0.042493,-0.041089,-0.040286,-0.040888,-0.040487,-0.0447,-0.043697,-0.042894,-0.042092,-0.041691,-0.045101,-0.0447,-0.042894,-0.043296,-0.043095 -0.11884,-0.10555,-0.11352,-0.11884,-0.11352,-0.11086,-0.11086,-0.11086,-0.10555,-0.10821,-0.10555,-0.10821,-0.097578,-0.097578,-0.09492,-0.076319,-0.077648,0.1097,0.12697,0.12963,0.097737,0.10704,0.14424,0.24256,0.81655 0.086253,0.11765,0.052084,0.049314,-0.45029,0.10288,0.11119,0.0881,0.026227,0.09087,0.12319,0.089947,0.054855,0.026227,-0.44659,0.1195,0.089023,0.091794,0.060395,-0.45491,0.14351,0.12227,0.0881,0.080712,-0.46229 0.28884,0.32454,0.31725,0.3113,0.26677,0.26331,0.26197,0.26139,-0.12612,-0.2171,-0.1244,-0.12536,-0.12536,-0.12612,-0.2125,-0.12536,-0.12593,-0.12612,-0.12728,-0.21442,-0.12113,-0.12113,-0.11,-0.093112,-0.073918 -0.43977,-0.43977,-0.38145,-0.17731,-0.32312,-0.089821,-0.031496,0.02683,-0.031496,0.11432,0.085155,0.02683,0.085155,0.11432,0.085155,0.20181,0.055992,0.11432,0.20181,0.28929,0.17264,0.02683,-0.002333,0.085155,0.23097 0.34449,0.34178,0.33975,-0.13211,-0.14329,0.34246,0.34382,-0.13075,-0.13177,-0.14465,0.34178,0.13331,-0.13007,-0.1355,-0.14702,-0.070073,-0.075158,-0.12804,-0.13414,-0.14499,-0.070751,-0.073124,-0.12228,-0.13414,-0.13956 -0.13264,-0.13342,-0.13413,-0.13528,0.35612,-0.13371,-0.13314,-0.13406,-0.13528,0.35662,-0.13364,-0.13399,-0.13406,0.35776,0.36895,-0.13364,-0.13421,-0.13599,0.21214,0.21114,-0.13406,-0.13378,-0.13413,0.21206,0.20437 -0.30312,-0.31904,-0.32103,-0.32252,-0.32401,0.10984,0.11282,-0.31755,-0.326,0.067048,0.12725,0.12327,0.12824,0.099387,0.088442,0.14367,0.13869,0.13969,0.11232,0.10387,0.13073,0.15063,0.15461,0.15461,0.14815 -0.24488,-0.245,0.17042,0.17309,0.16629,-0.24403,-0.24403,-0.24598,0.16921,0.16289,-0.24403,-0.24488,0.16496,0.16095,0.15597,-0.24561,-0.24452,0.16824,0.15682,0.15803,-0.24598,0.16593,0.16192,0.15925,0.15499 -0.041418,-0.041418,-0.040845,-0.036836,0.97972,-0.040845,-0.0397,-0.043136,-0.044282,-0.041991,-0.0397,-0.040845,-0.042563,-0.043709,-0.042563,-0.0397,-0.035691,-0.040845,-0.043136,-0.044854,-0.035691,-0.035691,-0.0397,-0.040845,-0.043709 0.16882,0.16623,0.17108,0.16494,0.1575,0.15458,0.16008,0.16752,0.16785,0.1685,-0.20418,-0.19513,0.23578,0.29175,0.28722,-0.20354,-0.20936,-0.20742,-0.20354,-0.20451,-0.20774,-0.20677,-0.20321,-0.20774,-0.20871 0.14749,0.14749,-0.013409,-0.3084,-0.32181,0.14749,0.13409,0.14749,-0.3084,-0.29499,0.17431,0.14749,0.067043,-0.28158,-0.25476,0.14749,0.18772,0.013409,-0.25476,-0.20113,0.24136,0.14749,0.18772,0.013409,0.18772 0.0028949,-0.0016691,-0.0036252,-0.0059072,0.97243,0.0022429,-0.0036252,-0.049266,-0.05709,-0.054156,-0.0036252,-0.052852,-0.056764,-0.059046,-0.05872,-0.052852,-0.050896,-0.059046,-0.059046,-0.057416,-0.062632,-0.056438,-0.057742,-0.057742,-0.057416 -0.077138,-0.087506,-0.088725,-0.09086,0.48304,-0.075308,-0.09086,-0.094519,-0.091775,0.45742,-0.078662,-0.08903,-0.092689,-0.08903,0.44492,-0.084761,-0.08964,-0.094519,-0.096349,0.44553,-0.085371,-0.089945,-0.091775,-0.091775,-0.060671 0.2388,0.24145,0.23853,-0.16278,-0.16331,0.24409,0.24939,0.25151,-0.16172,-0.16119,0.24992,0.24939,-0.16331,-0.16305,-0.16014,0.24409,-0.16702,-0.16384,-0.16278,-0.16066,0.24198,-0.16861,-0.16516,-0.16278,-0.16278 -0.33744,-0.33744,-0.31086,-0.32415,-0.30516,-0.26529,-0.25769,0.11256,0.059391,0.029012,0.22838,0.16762,0.12395,0.082176,0.049898,0.23217,0.14104,0.10876,0.066986,0.044202,0.27015,0.17331,0.12774,0.066986,0.053695 0.084481,0.10891,0.16998,-0.28824,-0.28944,0.085152,0.16823,0.16689,-0.28904,-0.28864,0.1077,0.1222,0.1736,-0.28944,-0.28904,0.10783,0.12072,0.17038,0.18273,-0.28824,0.11401,0.12193,0.12085,0.18434,-0.28783 0.34351,-0.082112,-0.083526,-0.069386,-0.17332,0.43118,-0.012472,-0.013886,-0.016714,-0.23589,0.39123,0.1466,-0.010704,-0.044994,-0.22281,0.38699,0.25584,-0.087061,-0.1719,-0.066204,-0.054185,-0.058781,-0.17296,-0.17756,-0.20089 0.11334,0.11489,0.11412,0.10713,0.1017,0.11645,0.11334,0.10946,0.1017,0.10636,0.11955,0.11334,0.11567,0.11101,0.10946,0.12731,0.118,0.11024,-0.3562,0.11101,-0.34921,-0.34145,-0.35464,-0.35853,-0.37405 0.10419,-0.15301,-0.1156,-0.12963,-0.19978,0.25851,-0.13898,0.1416,-0.050131,-0.25589,0.29125,0.18837,0.20707,-0.13898,-0.21848,0.17901,0.22578,0.13225,-0.26057,-0.30733,0.19772,0.22578,0.20707,-0.096895,-0.29331 0.040471,0.04155,0.042629,0.21575,0.23139,-0.32519,0.04155,0.038314,0.043707,0.27616,-0.32573,0.040471,0.038314,0.0491,0.2562,-0.32789,-0.3322,0.037235,0.036157,0.22438,-0.32627,-0.32358,0.048022,0.051258,0.2082 -0.35488,-0.35866,0.09239,0.10374,0.099958,-0.35412,0.10601,0.095796,0.11623,0.12758,-0.35299,0.10563,0.10071,0.095796,0.1238,-0.35564,0.12191,0.10336,0.099958,0.11623,-0.35374,0.16504,0.1185,0.11623,0.12115 0.093525,0.097,0.091788,0.095262,0.10395,0.088314,0.086577,0.098737,0.095262,-0.4276,0.079629,0.090051,0.079629,0.088314,-0.44845,0.083103,0.079629,0.081366,0.079629,-0.47624,0.077891,0.077891,0.077891,0.08484,-0.47798 -0.20674,-0.20674,-0.20657,-0.20623,-0.20589,-0.20623,0.0036166,0.0031106,0.00074897,-0.0017813,0.006653,0.0058096,0.0064843,-0.00060052,-0.0017813,0.05709,0.059789,0.079188,0.0031106,-0.001444,0.85042,0.06097,0.035667,0.049499,0.021835 -0.11015,-0.0028611,0.032902,-0.11015,0.4263,-0.28897,-0.21744,0.17596,0.14019,0.14019,-0.21744,-0.21744,0.032902,0.14019,0.21172,-0.28897,-0.038625,-0.074388,0.14019,0.17596,-0.39626,-0.18168,0.24748,0.14019,0.14019 0.16129,0.16312,0.16312,0.16129,-0.24732,0.1622,0.16312,0.16357,0.16266,-0.24778,0.16312,0.16403,0.16312,-0.24504,-0.24869,0.1622,0.16586,-0.23407,-0.24184,-0.25189,0.16586,0.16449,-0.23498,-0.24458,-0.25281 0.057237,0.074775,0.074087,0.22746,-0.017043,0.064459,0.072024,0.07959,0.23124,-0.44622,0.063771,0.080621,0.082685,0.091626,-0.44518,0.063771,0.072712,0.078902,0.080965,-0.44278,0.064802,0.072024,0.078902,0.086811,-0.44725 -0.36592,0.089632,0.092494,0.090586,0.08677,-0.36521,0.17168,0.17478,0.18074,0.23274,-0.36425,0.01951,0.17454,0.24586,0.23584,-0.36616,0.019749,0.018318,0.023326,0.017363,-0.34732,-0.12789,0.023565,0.02118,0.018079 -0.17259,-0.12443,-0.074901,0.35024,0.34198,-0.25239,-0.22349,0.05718,0.34611,0.3805,-0.27027,-0.12168,0.044798,0.047549,0.33923,-0.16571,-0.15057,0.035167,0.029663,0.047549,-0.13406,-0.14094,-0.12994,-0.099666,0.04067 -0.046841,-0.042528,-0.046122,-0.040371,0.97933,-0.045403,-0.048279,-0.049357,-0.040371,-0.04145,-0.045044,-0.0472,-0.041809,-0.04145,-0.035339,-0.042528,-0.046122,-0.037855,-0.027791,-0.026713,-0.041809,-0.04109,-0.042887,-0.02851,-0.032464 0.047407,0.26798,0.22189,-0.0052674,-0.22255,-0.011852,0.06716,0.06716,0.077036,-0.22255,-0.02502,0.070452,0.027654,0.12642,-0.33119,0.063868,0.10008,0.03753,0.24164,-0.48921,0.047407,0.21201,0.133,0.0013169,-0.50238 0.17127,0.21019,0.01557,-0.37368,-0.37368,0.13234,0.054495,0.13234,-0.17905,-0.1012,0.13234,0.24912,0.21019,-0.14013,-0.14013,0.24912,0.13234,-0.06228,-0.4126,-0.1012,0.24912,0.13234,0.09342,-0.21798,-0.06228 0.31852,0.075746,-0.021364,-0.021364,-0.3127,0.17286,0.26997,-0.26414,0.027191,-0.16703,0.36708,0.17286,-0.21558,-0.16703,-0.26414,0.027191,0.027191,-0.069919,0.027191,-0.3127,0.36708,0.1243,-0.021364,0.027191,-0.16703 -0.05528,-0.047559,-0.05914,-0.035978,0.97735,-0.043699,-0.028258,-0.051419,-0.035978,-0.0089559,-0.051419,-0.051419,-0.05914,-0.051419,-0.032118,-0.024397,-0.05528,-0.035978,-0.028258,-0.024397,-0.047559,-0.020537,-0.05528,-0.05528,-0.018607 -0.32179,-0.30239,0.21582,0.22136,0.32944,-0.23034,-0.21371,0.19919,0.18256,0.18811,-0.21926,0.14931,0.13823,0.11606,0.12714,-0.23034,-0.2442,-0.011417,0.080031,0.1216,-0.2442,-0.25805,0.063404,0.063404,0.080031 0.45872,0.47663,-0.11092,-0.10375,-0.11307,0.29822,0.30037,-0.1102,-0.1059,-0.11522,0.27815,-0.10232,-0.10447,-0.10089,-0.11665,0.27529,-0.10304,-0.1102,-0.1016,-0.11522,-0.10662,-0.1102,-0.12238,-0.12167,-0.11307 -0.037881,-0.050347,-0.049957,-0.042945,0.97887,-0.039439,-0.044503,-0.048009,-0.039439,-0.019182,-0.039439,-0.046062,-0.048009,-0.033985,-0.016845,-0.036712,-0.046841,-0.051126,-0.044503,-0.033985,-0.041777,-0.046841,-0.049957,-0.040997,-0.03009 -0.15091,-0.14467,-0.14467,-0.11556,-0.11556,-0.13843,-0.1218,-0.098917,-0.13219,-0.11556,0.048751,-0.0594,-0.076039,-0.088518,-0.12804,0.45224,0.39401,-0.06772,-0.055241,-0.1218,0.33161,0.40232,0.36281,-0.0053244,-0.1114 -0.034593,-0.07243,-0.018378,-0.051484,0.95456,-0.084591,-0.082564,-0.022432,-0.055538,-0.0095942,-0.085943,-0.081213,-0.064997,-0.047431,0.0052701,-0.087969,-0.060268,-0.046079,0.09851,0.039728,-0.091348,-0.024458,-0.050133,-0.061619,0.034999 -0.1493,-0.14051,-0.13596,-0.069889,-0.073526,0.44655,-0.079588,-0.0808,-0.080194,-0.078376,0.44746,-0.081406,-0.082922,-0.082012,-0.079588,0.45928,-0.077769,-0.079588,-0.075345,-0.074132,0.46928,-0.079588,-0.080194,-0.07292,-0.06898 0.4025,0.25291,0.3089,0.32278,0.28381,0.40026,0.24574,-0.11391,-0.12107,-0.12018,-0.13048,-0.11928,-0.12645,-0.11883,-0.12286,-0.12421,-0.12197,-0.12286,-0.12421,-0.12555,-0.12286,-0.12421,-0.12421,-0.12689,-0.12689 -0.064181,-0.085155,0.051177,0.50212,0.47066,-0.10613,-0.085155,-0.03272,0.10361,0.47066,-0.13759,-0.053694,-0.11662,-0.064181,0.27141,-0.14808,-0.03272,-0.13759,-0.064181,-0.043207,-0.11662,-0.14808,-0.15856,-0.15856,-0.11662 -0.15418,-0.15103,0.25501,0.27235,0.26604,-0.15024,-0.14551,-0.1668,0.26053,0.32991,-0.15024,-0.14393,-0.15813,0.25028,0.25422,-0.15024,-0.14788,-0.14078,-0.15891,0.25264,-0.14315,-0.1392,-0.13763,-0.15497,0.25185 0.91201,-0.054149,-0.053076,-0.054149,-0.056296,-0.052897,-0.05254,-0.053076,-0.054149,-0.054149,-0.05254,-0.053076,-0.054507,-0.054865,-0.052897,-0.045386,-0.053076,-0.053613,-0.053255,-0.053255,0.31965,-0.053971,-0.056832,-0.055223,-0.054686 -0.11576,-0.10076,-0.12025,-0.094763,0.35806,-0.14874,-0.10526,-0.11426,0.33857,0.31158,-0.15924,-0.13375,-0.10976,0.30408,0.29958,-0.12025,-0.15924,-0.12625,-0.11725,0.29659,-0.13075,-0.12625,-0.13825,-0.11426,0.32657 0.30464,0.25564,0.26506,0.23679,-0.11188,0.29333,0.24433,0.37061,0.31218,-0.14015,-0.045911,-0.068528,-0.14015,-0.1213,-0.17596,-0.060989,-0.1458,-0.15522,-0.17596,-0.17973,-0.11188,-0.1458,-0.16653,-0.16088,-0.17596 -0.17212,-0.12781,-0.088424,-0.063807,-0.12781,-0.16966,-0.093348,-0.095809,-0.019497,-0.044114,-0.16966,-0.1672,-0.11058,0.00019694,0.28083,-0.10319,-0.10319,-0.11304,0.21929,0.48515,0.007582,0.0026586,-0.11796,0.44084,0.45069 0.35028,0.3066,0.3066,0.11006,0.044549,0.39395,0.17557,0.1319,-0.086477,-0.10831,0.24109,0.044549,-0.086477,-0.10831,-0.23934,-0.042802,-0.020964,-0.15199,-0.15199,-0.28302,-0.086477,-0.10831,-0.064639,-0.23934,-0.32669 0.041039,-0.099781,-0.099781,-0.16013,-0.14002,0.041039,-0.1199,-0.16013,-0.16013,-0.28084,0.020922,0.020922,-0.1199,-0.16013,-0.14002,0.28245,0.10139,0.00080469,-0.059547,-0.079664,0.54397,0.4635,0.32268,0.041039,-0.099781 -0.1177,-0.11619,-0.12259,0.066393,0.49029,-0.12297,-0.11883,-0.11619,0.070534,0.49104,-0.12598,-0.11883,-0.12109,-0.11996,0.5125,-0.1177,-0.11958,-0.11694,-0.12109,0.069404,-0.11657,-0.11469,0.067522,0.069781,0.069404 0.86303,0.1185,0.10641,0.087985,0.09547,-0.083033,0.10008,0.090288,0.10468,-0.062879,-0.076699,-0.062303,-0.072668,-0.068062,-0.074971,-0.072092,-0.074971,-0.07382,-0.076123,-0.071516,-0.22123,-0.22468,-0.081881,-0.083609,-0.085912 0.071106,0.050436,0.038033,0.053192,-0.42636,0.053192,0.022875,0.042167,0.050436,-0.35057,0.071106,0.036655,0.064216,0.093154,-0.48424,0.16481,0.10418,0.076618,0.032521,-0.49388,0.20753,0.20477,0.15654,0.15379,0.0077169 -0.14506,-0.15232,-0.016753,0.20113,0.61268,-0.14506,-0.15232,-0.14506,0.041349,0.60784,-0.1499,-0.12085,-0.084537,0.026823,0.026823,-0.077275,-0.11117,-0.033699,0.031665,0.026823,-0.13053,-0.11359,-0.060329,0.012298,0.051032 0.18454,0.1545,0.16493,0.061902,0.055645,0.20331,0.16243,0.21374,0.22041,-0.12581,0.19538,0.26212,0.27339,0.22125,-0.13373,-0.26096,-0.26304,-0.14416,-0.14458,-0.13582,-0.26221,-0.25929,-0.25845,-0.25261,-0.1329 -0.041592,-0.095967,-0.10817,-0.10041,-0.10817,-0.042701,-0.094857,-0.099296,-0.097077,-0.11483,0.45777,-0.066005,-0.088199,-0.079322,-0.11594,0.45445,-0.063786,-0.075992,-0.075992,-0.093748,0.45666,0.45555,-0.068224,-0.08376,-0.11039 -0.13655,-0.13688,-0.13887,0.29716,0.28724,-0.13457,-0.13655,-0.13821,0.29782,0.2846,-0.13688,-0.13722,-0.13821,-0.14052,0.28526,-0.1349,-0.13755,-0.13821,-0.13523,0.28923,-0.1349,-0.13755,-0.1392,0.30146,0.28923 0.27339,0.23834,0.16824,-0.04206,-0.18226,0.30844,0.30844,-0.11216,-0.11216,-0.18226,0.34349,0.09814,-0.00701,-0.25236,-0.04206,0.20329,0.16824,-0.25236,-0.35751,-0.18226,0.02804,-0.00701,-0.18226,-0.18226,-0.04206 0.44463,0.43405,0.43088,0.072413,-0.088316,0.36638,0.26909,-0.087259,-0.095718,-0.11264,-0.092546,-0.087259,-0.11369,-0.11052,-0.1211,-0.10629,-0.11475,-0.11369,-0.11792,-0.10312,-0.11581,-0.10206,-0.11158,-0.11052,-0.11264 0.79882,0.14961,0.069984,-0.0065738,-0.11273,0.15471,0.12511,0.044465,-0.065779,-0.14438,0.15267,0.056714,-0.022906,-0.12294,-0.15663,0.081213,0.0087379,-0.10457,-0.18521,-0.18317,0.044465,-0.047405,-0.12907,-0.20563,-0.1995 -0.0069984,-0.018449,-0.13799,-0.13662,-0.14074,0.10659,0.11117,-0.12837,-0.13524,-0.13616,0.41758,0.40017,-0.13799,-0.13753,-0.13707,0.42216,0.41483,-0.13295,-0.13845,-0.13891,0.0901,0.091474,-0.13478,-0.12929,-0.12654 -0.14746,-0.16098,-0.082352,-0.08342,-0.065987,-0.14354,-0.10085,-0.078439,-0.083775,-0.077372,-0.13607,-0.13643,-0.05816,-0.084487,-0.08591,-0.082352,-0.0094206,-0.010844,0.38761,0.47335,-0.075593,-0.084487,-0.005863,0.46303,0.46979 -0.10847,0.28919,0.2894,0.28961,0.2894,-0.10868,0.2927,0.29305,0.29333,0.29354,-0.1402,-0.14083,-0.14118,-0.14083,-0.14062,-0.14104,-0.1409,-0.14097,-0.14097,-0.14013,-0.14146,-0.14118,-0.14118,-0.14104,-0.14055 -0.13195,-0.1291,-0.12294,0.34999,0.35473,-0.13289,-0.12294,-0.11915,-0.122,0.35141,-0.10446,-0.12247,-0.12247,-0.1291,0.3533,-0.074607,-0.11773,-0.12768,-0.12816,0.35662,-0.058022,-0.056126,-0.072712,-0.12816,0.35662 0.35102,0.29347,0.37979,0.29347,0.17838,0.20716,0.14961,0.063298,0.034526,-0.051789,-0.023017,0.063298,-0.080561,0.034526,-0.25319,-0.023017,-0.1381,-0.22442,-0.31074,-0.10933,-0.023017,-0.22442,-0.080561,-0.33951,-0.16688 -0.12025,-0.12379,-0.12379,-0.12177,-0.12379,-0.12126,-0.11974,-0.12025,-0.1167,-0.12025,-0.097962,-0.098468,-0.101,-0.097962,-0.10151,0.017019,0.0079018,0.0089148,0.0084083,0.026643,0.022591,0.51645,0.51341,0.51645,0.070711 -0.05418,-0.052481,-0.032415,-0.034008,0.97895,-0.051632,-0.050464,-0.030717,-0.033371,-0.034539,-0.051207,-0.047704,-0.031885,-0.033689,-0.033796,-0.052057,-0.046324,-0.034751,-0.03422,-0.034114,-0.051632,-0.048447,-0.036344,-0.034326,-0.034645 -0.039837,-0.040824,-0.039837,-0.044446,0.97978,-0.039837,-0.039837,-0.039507,-0.041153,-0.04247,-0.040495,-0.039507,-0.041483,-0.040495,-0.04247,-0.040495,-0.040495,-0.040495,-0.040495,-0.040495,-0.040824,-0.041483,-0.039507,-0.041812,-0.041483 0.086587,0.065485,0.057766,0.11798,0.11283,0.11592,0.071147,0.11283,0.10975,0.11078,0.10151,0.12982,0.1046,0.11592,0.11541,0.10357,0.12158,0.12107,0.11335,-0.22684,-0.53307,-0.53924,-0.21603,-0.23456,-0.23816 -0.12639,-0.12639,-0.075966,-0.16,-0.12639,-0.12639,-0.16,-0.12639,-0.21042,-0.16,-0.075966,-0.12639,-0.16,0.0080672,0.058487,-0.092773,-0.12639,0.058487,0.15933,0.37782,-0.075966,0.15933,0.36101,0.39462,0.47866 -0.14714,-0.14714,-0.15188,-0.14872,-0.15345,-0.14714,-0.15345,-0.1503,-0.14398,-0.14556,-0.12977,-0.13135,-0.082411,-0.079253,-0.082411,-0.091883,0.12441,0.23492,0.26807,0.4812,-0.12819,0.17177,0.25228,0.33596,0.34543 -0.095618,0.27595,0.53628,0.53344,0.44353,-0.092489,-0.093627,-0.090782,-0.090782,-0.089928,-0.092773,-0.09192,-0.09192,-0.089928,-0.091066,-0.070012,-0.066029,-0.090782,-0.089644,-0.093058,-0.068021,-0.060624,-0.066029,-0.091351,-0.082815 0.50264,0.40768,0.34438,0.37603,0.21777,-0.16206,-0.14623,-0.0037983,-0.20954,-0.11458,-0.03545,-0.19371,-0.14623,-0.03545,-0.20954,-0.067103,-0.067103,-0.082929,-0.17789,-0.019624,-0.0037983,-0.0037983,-0.051277,-0.0037983,-0.11458 -0.040239,-0.053866,-0.036451,-0.038467,0.97968,-0.039689,-0.039689,-0.039384,-0.039201,-0.039506,-0.039689,-0.039445,-0.039934,-0.039934,-0.040973,-0.042011,-0.039812,-0.039628,-0.039812,-0.043784,-0.039506,-0.039689,-0.043234,-0.042928,-0.042806 -0.12486,-0.13866,-0.12064,-0.11911,0.31724,-0.13406,-0.12103,-0.12179,0.31877,0.318,-0.131,-0.11911,-0.11719,0.3065,0.32874,-0.13598,-0.12179,-0.11911,-0.12026,0.32529,-0.13483,-0.11949,-0.12371,-0.12103,0.32912 -0.024688,0.049587,0.26357,0.26888,0.26357,-0.17854,-0.21391,0.24942,0.26888,0.15746,-0.24044,-0.24751,-0.18031,0.17161,0.12917,-0.25989,-0.24221,-0.13964,0.12563,0.1327,-0.25636,-0.24044,-0.11665,0.10795,0.15216 -0.38802,0.19514,0.065723,0.056004,0.0647,-0.38597,0.20077,0.0647,0.065211,0.058561,-0.38546,0.054981,0.061119,0.063165,0.2064,-0.38188,0.053957,0.0647,0.052423,0.20691,-0.37881,0.0514,0.056515,0.067258,0.21049 -0.06,-0.18121,-0.14333,-0.097879,-0.0069697,0.24303,-0.15849,-0.18879,-0.082728,-0.075152,0.40212,-0.10546,-0.15091,-0.090303,-0.067576,0.41727,0.068788,-0.13576,-0.12061,-0.044849,0.44,0.40212,-0.082728,-0.10546,-0.075152 -0.054731,-0.047512,-0.042514,-0.041403,0.97924,-0.048622,-0.045846,-0.039738,-0.039182,-0.03474,-0.05251,-0.042514,-0.036406,-0.040848,-0.035295,-0.051399,-0.043069,-0.041403,-0.033074,-0.029742,-0.039182,-0.038072,-0.038627,-0.037516,-0.0253 0.39842,0.24279,0.12606,-0.1852,-0.26302,0.20388,0.12606,-0.30193,-0.22411,-0.1852,0.24279,0.16497,0.16497,-0.068479,-0.26302,0.2817,0.12606,-0.068479,0.087155,-0.22411,-0.02957,0.087155,-0.1463,-0.068479,-0.22411 0.42563,0.51903,0.077165,-0.055754,-0.10246,0.38971,0.42563,-0.098864,-0.10964,-0.14197,0.062796,-0.091679,-0.13479,-0.095271,-0.088086,-0.080901,-0.10246,-0.10246,-0.080901,-0.055754,-0.1743,-0.14197,-0.070124,-0.084494,-0.088086 -0.22462,-0.22515,-0.2273,-0.22783,-0.23105,0.17545,-0.19302,-0.22569,-0.22622,-0.22997,0.17867,0.17385,0.16474,-0.23105,-0.23051,0.20652,0.20544,0.15778,0.16206,0.15028,0.20652,0.21294,0.16421,0.14653,0.16742 -0.31575,-0.36639,0.092779,0.14005,0.16368,-0.3225,-0.28536,0.10291,0.15018,0.17719,-0.23809,-0.3225,0.11979,0.1468,0.18731,-0.11655,-0.28874,0.11641,0.13329,0.16706,0.048888,0.079274,0.10966,0.13667,0.18394 -0.27978,-0.27158,-0.23878,-0.091182,-0.00098398,-0.28798,-0.25518,-0.13218,-0.025584,0.13021,-0.27158,-0.18138,0.040015,0.12201,0.22861,-0.14858,0.0072159,0.12201,0.22861,0.27781,0.064615,0.13841,0.22861,0.25321,0.34341 -0.34778,-0.35378,-0.14396,-0.17593,-0.19791,-0.35478,0.1388,-0.15994,-0.15195,-0.17693,0.14979,0.14879,0.14879,-0.16594,-0.14096,0.15379,0.15579,0.15379,0.15279,0.15878,0.20674,0.20874,0.20275,0.19276,0.19775 0.31728,0.31567,-0.12769,-0.14703,-0.13575,0.33824,0.3189,-0.13736,-0.14381,-0.13897,0.25763,0.24151,-0.063199,-0.1422,-0.14059,0.25441,0.26892,-0.11963,-0.14059,-0.13575,-0.16477,-0.14703,-0.15348,-0.14381,-0.13091 0.020132,-0.063752,-0.14764,-0.42725,-0.14764,0.10402,0.1879,0.020132,-0.11967,-0.34337,0.27178,0.10402,0.10402,-0.0078292,-0.34337,0.35567,0.27178,0.10402,-0.11967,-0.14764,0.27178,0.1879,0.048093,-0.11967,-0.063752 0.32159,0.23013,0.092928,0.22098,0.0014634,0.4222,0.23013,0.33988,0.33988,-0.044269,-0.16317,-0.12659,-0.18147,-0.12659,-0.15403,-0.15403,-0.17232,-0.19061,-0.16317,-0.13573,-0.080855,-0.099148,-0.14488,-0.12659,-0.13573 0.23141,0.24195,-0.083657,-0.18747,-0.18516,0.23371,0.24393,-0.088271,-0.090248,-0.18945,0.23668,0.24525,0.24525,-0.08893,-0.080361,0.23371,0.24821,-0.2023,-0.2023,-0.19011,0.238,-0.19966,-0.20131,-0.20527,-0.20362 -0.20132,-0.18592,-0.18918,-0.18726,0.20233,-0.20028,-0.18711,-0.18933,0.20662,0.20396,-0.18829,-0.18785,0.20958,0.20781,0.20588,-0.19984,-0.18859,0.21284,0.21018,0.20662,-0.20309,-0.18918,0.21358,0.21003,0.20781 0.34016,0.34016,0.343,0.34867,0.13784,-0.08055,-0.07866,-0.090005,0.33544,0.33355,-0.12026,-0.11648,-0.10324,-0.072987,-0.042733,-0.14862,-0.14862,-0.13633,-0.12782,-0.11553,-0.17037,-0.16564,-0.16375,-0.15429,-0.14295 -0.17472,-0.15689,-0.22821,-0.085578,-0.10341,-0.21038,-0.15689,-0.19255,-0.12124,-0.04992,-0.19255,-0.19255,-0.032092,-0.014263,0.34231,-0.10341,-0.032092,0.18185,0.28883,0.28883,-0.085578,0.021394,0.32448,0.34231,0.34231 -0.19327,-0.18619,-0.18265,-0.17733,-0.23754,0.26184,0.2034,0.085638,-0.055144,-0.22692,0.276,0.19632,0.04668,-0.064884,-0.26853,0.276,0.22819,0.059961,-0.086134,-0.25171,0.31585,0.23705,0.086524,-0.079936,-0.26322 -0.3459,-0.38556,-0.38556,-0.3459,-0.48473,0.050774,0.11027,0.11027,0.11027,0.14994,0.090441,0.011107,0.090441,0.11027,0.20944,0.11027,0.11027,0.050774,0.14994,0.050774,0.090441,0.050774,0.11027,0.13011,0.050774 -0.039434,-0.0046393,0.20413,0.3549,0.74924,-0.06263,-0.039434,-0.027836,0.06495,0.28531,-0.15542,-0.06263,-0.074228,-0.06263,0.030155,-0.085826,-0.10902,-0.085826,-0.13222,-0.12062,-0.10902,-0.097424,-0.13222,-0.15542,-0.13222 -0.074818,-0.074376,-0.065539,-0.064213,-0.066864,-0.077027,-0.071725,-0.067748,-0.065097,-0.069957,-0.077469,-0.074376,-0.068632,-0.068632,0.44924,-0.074818,-0.077911,-0.071283,-0.069957,0.45013,-0.077027,-0.081004,-0.077027,-0.076586,0.69272 0.16297,0.067172,0.064744,-0.27739,-0.27761,0.23448,0.16054,0.060771,-0.27761,-0.27672,0.23735,0.065406,0.06651,-0.27761,-0.27827,0.23426,0.065186,0.06651,-0.27761,-0.27827,0.13229,0.28327,0.067834,0.1484,0.10337 0.31016,0.31409,-0.13571,-0.11959,-0.097965,0.31173,-0.12195,-0.13886,-0.13296,-0.10347,0.31409,-0.097572,-0.13846,-0.13414,-0.097965,0.31763,-0.15144,-0.14161,-0.13689,-0.088529,0.32903,0.34043,-0.14593,-0.12745,-0.12667 0.40604,0.27177,0.24491,0.1375,-0.023632,0.35233,0.11064,0.16435,0.0032225,0.11064,0.24491,-0.023632,-0.023632,-0.1042,-0.077341,0.056932,-0.13105,-0.18476,-0.18476,-0.13105,-0.13105,-0.23847,-0.31903,-0.21161,-0.31903 -0.096523,-0.11375,-0.11469,-0.11658,0.37684,-0.11233,-0.11469,-0.11516,-0.11847,0.37637,-0.11422,-0.11469,-0.11516,-0.12366,0.37873,-0.11658,-0.11752,-0.10738,-0.038001,0.37849,-0.11847,-0.11988,-0.11469,0.38439,0.20765 -0.20046,-0.15938,-0.40585,-0.15938,-0.44692,-0.15938,0.087084,-0.1183,-0.077226,-0.24154,0.087084,0.087084,0.0049293,-0.036148,0.16924,0.21032,0.12816,0.16924,-0.077226,-0.036148,0.29247,0.29247,0.25139,0.16924,0.16924 -0.13661,-0.12365,-0.10033,-0.10552,-0.10292,-0.11847,-0.12365,-0.11847,-0.12625,-0.11588,-0.058873,-0.058873,-0.11588,-0.12365,-0.12625,0.40237,0.40237,-0.056282,-0.082195,-0.12106,0.38682,0.38164,0.40496,-0.020004,-0.043326 0.20736,0.15172,0.13317,0.11462,0.068254,0.19809,0.17954,0.13317,0.1239,-0.015209,0.15172,0.096075,0.096075,0.068254,-0.23778,0.10535,0.068254,0.012612,-0.21923,-0.42325,0.040433,-0.015209,-0.11722,-0.39543,-0.52526 -0.58624,-0.11423,-0.13783,-0.25583,-0.25583,0.074578,-0.16143,-0.067026,-0.090627,-0.20863,0.14538,0.0037761,0.027377,-0.090627,-0.043425,0.23978,0.074578,0.19258,0.098179,0.050977,0.31058,0.23978,0.23978,0.14538,0.16898 0.18548,0.21813,0.21269,0.2018,0.22901,0.21813,0.20724,0.23446,0.25078,0.23446,-0.12474,-0.14651,-0.10297,-0.092085,-0.14107,-0.29345,-0.27168,-0.2608,-0.24447,-0.19005,-0.23903,-0.19005,-0.070315,0.049417,0.12561 -0.19981,-0.041589,-0.041589,-0.22241,0.071425,-0.086795,-0.1094,-0.1094,-0.064192,0.13923,-0.1094,-0.17721,-0.041589,0.0036165,0.20704,-0.086795,-0.041589,-0.041589,0.048822,0.47828,-0.17721,-0.17721,-0.018986,0.13923,0.6591 0.17153,0.16617,-0.27128,-0.26342,-0.23788,0.1701,0.16617,-0.2302,-0.25789,-0.24681,0.16832,0.16385,0.16046,-0.2452,-0.2436,0.16724,0.16153,0.15742,0.15563,-0.22948,0.16492,0.16206,0.1576,0.15313,-0.22037 -0.27049,-0.27457,0.14048,0.13893,0.13096,-0.27108,-0.2701,0.14145,0.14437,0.13387,-0.27205,0.13698,0.14126,0.14009,0.14029,-0.32024,0.1364,0.1364,0.13174,0.12766,-0.32257,-0.32509,0.1432,0.12979,0.13232 0.41657,0.38689,-0.089374,-0.16286,-0.18265,0.30634,0.17914,-0.12329,-0.20526,-0.16004,0.18621,0.16784,-0.13742,-0.19113,-0.16145,0.17208,0.17208,-0.15721,-0.18265,-0.11764,0.17208,-0.14449,-0.16004,-0.14732,0.1636 0.28477,0.080898,0.050996,0.21002,0.21818,0.23856,0.24128,0.28749,0.20866,0.21002,0.093131,0.24944,-0.2222,-0.22492,-0.19773,-0.082203,-0.1189,-0.22899,-0.21268,-0.16104,-0.12842,-0.17463,-0.24666,-0.18686,-0.18822 0.18389,0.32423,0.2817,0.3221,0.31997,-0.011738,0.024411,0.28808,0.32635,-0.13719,-0.0053584,-0.0074848,-0.0096111,-0.14145,-0.16058,-0.0011057,-0.041507,-0.17121,-0.18823,-0.19035,-0.13294,-0.17547,-0.18823,-0.20524,-0.30305 -0.090682,-0.089703,-0.089703,-0.091172,-0.090682,-0.086763,-0.085784,-0.087743,-0.084804,-0.085294,-0.085294,-0.087253,-0.085784,-0.084314,-0.084314,-0.086763,-0.087743,-0.083334,-0.089703,-0.084314,-0.088233,0.44326,0.44473,0.51037,0.43101 -0.087703,-0.087927,-0.088822,-0.090165,-0.091285,-0.087703,-0.088374,-0.089718,-0.08927,-0.087479,-0.087255,-0.089494,-0.091061,-0.089718,0.17761,-0.088374,-0.090837,-0.091061,0.17806,0.17559,-0.096211,-0.10248,0.17671,0.17738,0.82958 -0.19584,-0.19584,-0.19422,-0.19487,-0.19487,-0.19195,-0.19066,-0.18968,-0.18968,-0.19066,0.35662,0.20077,0.12494,-0.17867,-0.17348,0.36051,0.20465,0.13693,0.083469,0.041022,0.35533,0.18456,0.12883,0.079256,0.023524 -0.083495,-0.081788,-0.082812,0.61241,0.62709,-0.082471,-0.081447,-0.079058,0.22162,0.21924,-0.078717,-0.079058,-0.078717,-0.079399,-0.084178,-0.078376,-0.078376,-0.078717,-0.079741,-0.081106,-0.077352,-0.077352,-0.079399,-0.079399,-0.079399 0.2742,0.29377,-0.1187,-0.11404,-0.11637,0.29843,0.3003,-0.1159,-0.11637,-0.11357,0.2989,0.30729,-0.12616,-0.15039,-0.12662,0.2975,0.25322,-0.15319,-0.15365,-0.14992,-0.15692,-0.15738,-0.15412,-0.15272,-0.14759 -0.10078,-0.10898,-0.10898,-0.11881,-0.12701,-0.10898,-0.1057,-0.11554,-0.11881,-0.12701,-0.10078,-0.10406,-0.10406,-0.089307,-0.086029,-0.041769,-0.040129,0.0057702,0.09593,0.046752,0.60738,0.63525,0.12052,0.12216,0.07298 0.24121,0.24842,0.24842,0.25262,-0.35893,0.057383,0.060987,0.26344,0.063991,-0.36434,0.053178,0.054379,0.060386,0.057984,-0.36013,0.04717,0.0027153,-0.00028836,0.058584,-0.36073,0.008122,-0.0092995,0.012928,0.026745,-0.36494 0.028863,0.010952,-0.20143,-0.2219,0.044215,0.057009,0.03398,-0.12978,-0.24748,-0.093958,0.30009,0.059568,-0.014636,-0.23213,-0.21934,0.318,0.26427,0.03398,-0.15025,-0.25004,0.35639,0.31544,0.26171,-0.073488,-0.25004 0.074699,0.073849,0.071585,0.074699,0.078662,0.08404,0.073849,0.073566,0.08857,-0.45353,0.086305,0.077246,0.070453,0.080077,-0.45041,0.083474,0.076397,0.083191,0.074982,-0.45268,0.083757,0.078379,0.24568,0.074416,-0.45126 -0.036344,-0.038664,-0.041757,-0.043304,0.97975,-0.040211,-0.040984,-0.040984,-0.039437,-0.039437,-0.040211,-0.043304,-0.039437,-0.039437,-0.045624,-0.043304,-0.040984,-0.041757,-0.04253,-0.040984,-0.040984,-0.039437,-0.04253,-0.040984,-0.037118 0.44733,0.33143,-0.13614,-0.1353,-0.12653,0.25114,0.25397,-0.13473,-0.14265,-0.12597,0.25312,0.25623,-0.14321,-0.13388,-0.12484,0.24436,0.25227,-0.14349,-0.1353,-0.12371,-0.13473,-0.1483,-0.14406,-0.13219,-0.12484 0.24239,0.21986,0.039648,-0.14057,-0.072988,0.19734,0.26492,0.062175,-0.18562,0.062175,0.24239,0.10723,0.084702,-0.2532,-0.050461,0.17481,0.10723,0.084702,-0.32079,-0.27573,0.17481,0.10723,-0.11804,-0.41089,-0.34331 0.21885,0.21885,0.21885,0.20909,0.21885,0.20584,0.19933,0.22536,0.22536,0.085485,0.18632,-0.14221,-0.11294,-0.16824,-0.11944,-0.19426,-0.23655,-0.21378,-0.21703,0.23512,-0.23329,-0.23329,-0.20402,-0.21703,-0.15523 0.52074,0.24667,0.34945,0.10963,0.28093,0.0068519,0.24667,0.17815,-0.027408,0.075371,-0.13019,-0.027408,-0.23296,-0.095926,-0.061667,-0.095926,-0.1987,-0.1987,0.0068519,-0.095926,-0.23296,-0.027408,-0.1987,-0.1987,-0.1987 0.21565,0.046768,0.0017988,0.0067953,-0.24803,0.20766,0.20965,0.080744,-0.22205,-0.23104,0.20166,0.19966,0.17968,0.21665,-0.23104,0.19766,0.18767,-0.22305,-0.22105,-0.23204,0.19766,0.18967,-0.22904,-0.25602,-0.24603 -0.24063,-0.27969,0.071875,0.071875,0.11094,-0.24063,-0.24063,-0.045313,0.071875,0.42344,-0.27969,-0.045313,0.071875,0.18906,0.18906,-0.1625,-0.084375,-0.045313,0.15,0.071875,-0.27969,-0.045313,0.22812,-0.084375,0.42344 -0.28696,0.14652,0.14906,0.14906,0.13131,-0.27175,-0.24133,0.16427,0.15413,0.13131,-0.27936,0.13638,0.15666,0.13131,0.1085,-0.30724,-0.29964,0.14652,0.13131,0.11357,-0.30978,-0.32499,0.14652,0.12117,0.10343 -0.084961,-0.048759,-0.087928,0.38447,0.74708,-0.059442,-0.0814,-0.099798,-0.12472,0.38625,-0.054694,-0.076059,-0.11463,-0.11642,-0.010777,0.030172,-0.090302,-0.12057,-0.10395,-0.011371,-0.049946,-0.011371,-0.10395,-0.090896,-0.0060297 0.15203,0.017728,0.00094011,0.017728,0.22254,0.12517,0.14867,0.088236,0.2494,0.23261,0.22254,0.20575,0.18896,0.19568,0.22254,-0.23073,-0.30124,-0.29117,-0.23073,-0.18708,-0.18037,-0.13,-0.23073,-0.27102,-0.23745 -0.040225,-0.041291,-0.041291,-0.040225,0.97979,-0.040225,-0.041025,-0.041025,-0.041025,-0.042091,-0.041025,-0.040758,-0.040758,-0.041291,-0.041025,-0.040491,-0.040491,-0.039958,-0.042091,-0.039424,-0.038624,-0.040491,-0.042091,-0.041558,-0.041291 0.52397,0.54113,-0.08382,-0.084043,-0.084266,0.16536,0.16424,-0.085157,-0.084489,-0.084489,0.16469,0.16157,-0.085157,-0.086717,-0.17074,0.15845,-0.082037,-0.1674,-0.17074,-0.1723,0.158,-0.08226,-0.16785,-0.17453,-0.17141 0.30894,0.3387,0.31164,-0.23771,-0.23771,0.31435,0.30082,0.057263,-0.23771,-0.24042,0.070793,0.046438,0.038319,-0.21606,-0.24583,0.10868,0.062675,0.032907,-0.14299,-0.24312,-0.023923,-0.010392,0.032907,0.049144,-0.23771 -0.37347,-0.37132,-0.28105,-0.30684,-0.37562,0.2219,0.12088,0.026308,-0.098353,-0.11125,0.16386,0.12088,0.092937,-0.038172,-0.070412,0.092937,0.18966,0.14237,0.056398,0.00051584,0.15957,0.38739,0.10583,0.073593,0.071444 -0.098299,0.18762,0.16216,-0.28273,-0.28343,0.13864,0.14059,0.18497,-0.28219,-0.28308,0.13687,0.13741,0.14023,-0.28202,-0.28237,0.13245,0.13829,0.14289,0.15279,-0.28219,0.13687,0.13617,0.14855,0.14183,-0.28202 0.31256,0.34845,-0.16694,-0.16951,-0.16182,0.34162,0.34674,-0.013094,-0.17977,-0.17378,0.3382,0.35187,-0.0054019,-0.13276,-0.17036,-0.032753,-0.024206,-0.024206,-0.1584,-0.16865,-0.036172,-0.017368,-0.10113,-0.14643,-0.15669 -0.11466,-0.11093,-0.015943,0.073459,0.87994,-0.12583,-0.10348,-0.0084932,0.051108,0.073459,-0.12583,-0.1128,-0.027119,0.047383,0.079046,-0.15563,-0.15005,-0.028981,0.03062,0.086496,-0.15377,-0.14632,-0.096033,0.075321,0.079046 0.28269,0.23655,0.1785,-0.086451,-0.16088,0.28418,0.22613,0.16064,-0.14748,-0.16981,0.28269,0.2425,-0.099848,-0.15194,-0.16534,0.28418,0.22762,-0.12366,-0.15046,-0.17427,-0.18469,-0.19213,-0.19511,-0.19511,-0.20851 -0.22574,-0.22517,0.14018,0.13931,0.14884,-0.22632,0.13844,0.19794,0.1962,0.19563,-0.22343,-0.22401,0.19101,0.19418,0.19534,-0.22343,-0.22286,-0.22574,0.19909,0.19592,-0.22343,-0.22401,-0.22517,0.13613,0.20111 -0.17693,0.1662,0.22547,0.2629,0.29721,-0.24556,0.013351,0.10693,0.25354,0.35024,-0.22996,-0.16757,-0.039678,0.10069,0.22547,-0.24244,-0.205,-0.1239,-0.08023,0.18803,-0.23308,-0.21436,-0.17693,-0.16757,0.11317 -0.096288,-0.082733,-0.080269,0.033714,0.44282,-0.096904,-0.092591,-0.085198,-0.098753,0.45946,-0.093207,-0.096904,-0.095056,-0.10245,0.46993,-0.089511,-0.092591,-0.085814,-0.10183,0.44529,-0.089511,-0.079037,-0.085814,-0.096288,-0.11046 0.24784,0.28517,0.1172,0.09854,-0.14408,0.15453,0.17319,0.1172,0.042552,-0.20007,0.22918,0.24784,0.13587,0.023889,-0.25606,0.13587,0.1172,-0.0321,-0.14408,-0.31204,-0.0321,-0.088089,-0.14408,-0.27472,-0.49867 -0.16282,-0.034951,0.30603,0.49784,0.39128,-0.16282,-0.066918,0.16751,0.29538,0.23144,-0.15216,-0.13085,-0.066918,0.13554,0.092918,-0.22675,-0.20544,-0.098886,-0.098886,-0.034951,-0.15216,-0.13085,-0.13085,-0.13085,-0.13085 -0.06853,-0.011705,-0.012311,0.17859,0.92541,-0.065295,-0.065497,-0.064486,-0.065699,-0.066103,-0.065295,-0.06489,-0.066508,-0.06125,-0.062463,-0.065295,-0.065092,-0.066508,-0.053565,-0.055183,-0.064688,-0.06489,0.17839,-0.053768,-0.053363 -0.13476,-0.047255,-0.17852,-0.17852,-0.17852,0.1934,-0.047255,-0.11289,-0.17852,-0.15664,0.39029,0.23715,-0.24415,-0.17852,-0.15664,0.45592,0.17152,0.062131,-0.13476,-0.069132,0.39029,0.17152,-0.0035004,-0.069132,-0.0035004 -0.086387,-0.089232,-0.089232,-0.086031,-0.08781,-0.087454,-0.088165,-0.089232,-0.086743,-0.08781,-0.087098,-0.087454,-0.08781,-0.086743,-0.087454,-0.084964,-0.08532,-0.085676,-0.087098,-0.091011,-0.084253,0.45922,0.45922,0.45673,0.4578 0.18726,0.25819,0.25819,0.080861,0.22272,0.22272,0.045396,0.045396,-0.025535,0.18726,0.11633,0.11633,0.080861,0.18726,0.11633,-0.38019,0.11633,-0.13193,-0.20286,-0.23833,-0.34472,-0.23833,-0.23833,-0.20286,-0.23833 -0.10045,-0.011763,0.072257,0.048918,0.9568,-0.10278,-0.098117,-0.056107,-0.058441,-0.056107,-0.10045,-0.018765,-0.021098,-0.042103,-0.056107,-0.011763,0.020912,-0.016431,-0.037436,-0.044437,-0.0094289,-0.072444,-0.056107,-0.063109,-0.065442 0.53608,0.52432,0.030196,-0.067843,-0.054118,0.54196,-0.0090196,-0.030588,-0.056079,-0.044314,-0.052157,-0.10314,-0.075687,-0.079608,-0.071765,-0.099216,-0.091373,-0.08353,-0.095294,-0.10314,-0.087451,-0.095294,-0.12275,-0.11098,-0.099216 0.38584,-0.069331,0.44884,0.4953,0.49451,-0.089018,-0.089018,-0.085081,-0.084293,-0.063031,-0.081931,-0.087443,-0.086656,-0.092168,-0.096893,-0.083506,-0.085868,-0.089806,-0.090593,-0.095318,-0.086656,-0.091381,-0.092168,-0.088231,-0.096106 -0.26848,0.16522,0.16797,0.17899,0.05645,-0.28362,-0.23681,0.18174,0.19275,0.020652,-0.28087,-0.24232,0.20928,0.17623,0.067464,-0.28638,-0.22855,0.13217,0.18725,0.092247,-0.24645,-0.24783,0.25196,0.15971,0.081232 -0.24472,-0.2578,0.074392,0.060057,0.22896,-0.23848,-0.26092,0.06816,0.070029,0.088727,0.13796,-0.24659,0.089974,0.081248,0.3212,-0.24596,-0.24846,0.089974,0.083118,0.32183,-0.22664,-0.24534,0.092467,0.084364,0.32245 0.21862,0.16817,0.11772,0.05045,0.016817,0.21862,0.16817,0.16817,0.016817,-0.033634,0.2018,0.15135,0.016817,0.016817,-0.05045,0.16817,0.11772,0.033634,0.016817,0.016817,-0.42042,-0.47087,-0.4036,-0.21862,-0.28589 -0.0059677,0.03363,0.052029,0.04363,0.95318,-0.0087675,0.04483,0.052429,-0.058765,-0.078764,-0.076764,-0.075164,-0.064765,-0.072764,-0.076764,-0.079164,-0.077964,-0.067164,-0.065165,-0.063565,-0.068764,-0.065165,-0.056765,-0.060365,-0.057165 0.28698,0.19915,0.083277,-0.16902,-0.16341,0.31315,0.23839,-0.1765,-0.18397,-0.15781,0.32062,0.14495,-0.18023,-0.19892,-0.16341,0.18046,0.09449,0.079539,-0.15594,-0.19145,0.10944,0.10197,-0.31292,0.1898,-0.28863 -0.10877,-0.10745,-0.11315,0.42754,0.42229,-0.10833,-0.11533,-0.11008,-0.11271,0.4271,-0.10702,-0.10702,-0.11358,-0.11227,0.33692,-0.10833,-0.10833,-0.11052,-0.10789,0.24104,-0.10833,-0.10702,-0.11183,-0.11139,0.23447 0.4391,-0.10902,-0.11345,-0.11345,-0.10637,0.44707,-0.081572,-0.10459,-0.11079,-0.10017,0.44176,0.16814,-0.10814,-0.10814,-0.10371,0.4391,-0.085999,-0.10194,-0.093969,-0.07803,-0.096625,-0.082457,-0.093969,-0.082457,-0.06032 0.32349,0.15898,0.15957,0.15481,0.16315,0.12321,0.61734,0.097585,0.13216,0.13514,0.10772,-0.10746,-0.13487,-0.1462,-0.14858,-0.15931,-0.15991,-0.16348,-0.16468,-0.16527,-0.16408,-0.16468,-0.16527,-0.16289,-0.16646 0.2475,0.23667,0.21142,0.099576,-0.32976,0.21142,0.2042,0.12844,0.10679,-0.34779,0.031027,0.070713,0.26193,0.19338,-0.30811,-0.0086588,-0.0014431,-0.02309,-0.062776,-0.34779,-0.02309,-0.005051,-0.051953,-0.13132,-0.36223 -0.12483,-0.15233,-0.14598,-0.12906,0.30466,-0.16079,-0.15656,-0.13541,0.3237,0.32794,-0.16926,-0.15445,-0.12483,0.20311,0.31736,-0.18618,-0.16503,0.16714,0.2158,0.31524,-0.1756,-0.19465,-0.12271,0.13964,-0.016926 0.13216,0.1363,0.15353,-0.26448,0.15146,0.13354,0.13664,0.15698,-0.26379,-0.26207,0.12941,0.13285,0.2931,-0.26276,-0.26379,0.13527,0.13975,0.13906,-0.26241,-0.26586,0.13871,0.13285,0.1301,-0.2631,-0.26345 0.054688,0.040796,-0.0078258,-0.12012,-0.12591,0.031535,0.0014355,-0.013614,-0.11317,-0.13054,-0.0089835,-0.025191,-0.063394,-0.12475,-0.12128,0.0095392,-0.012457,-0.021718,-0.071498,-0.11317,0.01417,0.0060662,-0.013614,-0.0089835,0.93799 -0.37695,0.035769,0.10455,0.10455,0.035769,-0.23937,0.081626,0.24213,0.19627,0.081626,-0.37695,0.19627,0.035769,0.035769,0.035769,-0.44573,0.035769,0.10455,0.19627,0.035769,-0.4228,-0.033017,0.19627,0.10455,0.035769 0.31009,0.32955,0.0021985,0.17049,-0.28283,0.29696,0.28917,0.021655,0.0099809,-0.27894,0.085859,0.076618,0.071754,0.040624,-0.28137,0.067863,0.065917,0.066403,-0.27797,-0.2838,0.023114,0.022627,0.026519,-0.28672,-0.28575 -0.39512,-0.39397,-0.39569,-0.39454,-0.39512,0.089413,0.086164,0.090751,0.10241,0.24882,0.087502,0.08215,0.090369,0.10547,0.10528,0.098206,0.082915,0.089222,0.10509,0.10547,0.08215,0.081577,0.081577,0.079856,0.080048 0.22384,0.25068,0.25298,0.09974,0.027711,0.25114,0.085518,0.37364,0.024499,0.022435,0.073131,0.071525,-0.053953,-0.071158,0.021517,0.074278,0.055467,-0.054871,-0.07047,0.023352,-0.33267,-0.33404,-0.33542,-0.33473,-0.34414 0.12436,0.12436,0.1157,0.11786,0.12436,0.12219,0.12003,0.12219,0.12869,0.1157,0.12436,0.13302,0.11353,0.12436,0.13085,-0.32597,-0.26751,0.14168,0.12869,0.12436,-0.33896,-0.35411,-0.34545,-0.32813,-0.27617 0.14767,0.16409,0.46151,0.40439,0.38995,0.15621,0.14308,0.16868,-0.083436,-0.082779,-0.047325,-0.068335,-0.082123,-0.090002,-0.089345,-0.28172,-0.084093,-0.088688,-0.090002,-0.089345,-0.29879,-0.28434,-0.087375,-0.091315,-0.096567 -0.089291,-0.12212,-0.13619,-0.14244,-0.12525,-0.090854,-0.1018,-0.11274,-0.097107,-0.10649,-0.040831,-0.029889,-0.062716,-0.087728,-0.081475,0.41876,0.44064,-0.05959,0.0013756,-0.13619,0.41094,0.51568,0.0013756,-0.014257,-0.15182 -0.34763,-0.34706,-0.34877,-0.34678,-0.34678,0.18731,0.14283,0.1106,0.071539,-0.34963,0.17391,0.14197,0.10262,0.063554,0.041883,0.17647,0.13741,0.099198,0.068972,0.038461,0.18104,0.13627,0.10519,0.068972,0.038461 0.16166,0.16771,0.19073,0.19677,0.86355,-0.078057,-0.077194,-0.078057,-0.078057,-0.07633,-0.07892,-0.077769,-0.078633,-0.078345,-0.079208,-0.080072,-0.079496,-0.080072,-0.080072,-0.079784,-0.080359,-0.078633,-0.080359,-0.08151,-0.079496 -0.15596,-0.3063,-0.065751,-0.10584,-0.09582,-0.12589,-0.075774,-0.2161,-0.085797,-0.15596,-0.045705,-0.085797,-0.10584,-0.015636,-0.025659,-0.11587,-0.12589,0.014433,0.094617,0.1748,-0.0056129,0.38528,0.42538,0.42538,0.39531 0.47807,0.52991,0.042556,0.050851,0.048777,0.46147,0.063294,-0.0030693,-0.021734,-0.030029,0.075737,0.0031523,-0.04662,-0.050768,-0.052842,-0.12957,-0.10884,-0.10884,-0.12543,-0.13372,-0.19594,-0.18349,-0.1752,-0.18349,-0.20423 -0.041015,-0.037094,-0.037094,-0.042797,0.97972,-0.039233,-0.038164,-0.038876,-0.04244,-0.047074,-0.042797,-0.039589,-0.039589,-0.041371,-0.044222,-0.043153,-0.041728,-0.041371,-0.039589,-0.040658,-0.035669,-0.04244,-0.041015,-0.039946,-0.042797 -0.38603,-0.39233,-0.39143,-0.39863,-0.38423,0.13592,0.13952,0.15302,0.11793,0.12692,0.14672,0.13502,0.15392,0.11433,0.055831,0.15932,0.15302,0.055831,0.057631,0.034233,0.052231,0.032433,0.054031,0.051331,0.023434 -0.15779,-0.15779,-0.13923,0.29137,0.27281,-0.16026,-0.12438,-0.11324,0.30993,0.28518,-0.16026,-0.12314,-0.11943,0.29261,0.29013,-0.11448,-0.13428,-0.12685,0.29013,0.29261,-0.11819,-0.16769,-0.15655,-0.13057,-0.12067 0.27885,0.27885,-0.12241,-0.12325,-0.12472,0.28306,-0.12388,-0.12451,-0.12472,-0.12346,0.28474,-0.12493,-0.12346,-0.12367,-0.12346,0.36503,0.37617,-0.12304,-0.12346,-0.12409,0.36356,-0.12388,-0.12409,-0.12493,-0.1243 -0.24878,-0.26911,-0.26911,-0.33009,-0.37074,-0.0048781,-0.0048781,-0.025204,-0.0048781,-0.08618,0.056098,0.09675,0.035773,0.035773,-0.10651,0.015447,-0.025204,0.035773,-0.0048781,-0.045529,0.23903,0.32033,0.2187,0.48293,0.25935 0.34381,0.13158,-0.054118,-0.1337,-0.26634,0.37033,0.15811,-0.1337,-0.3194,-0.054118,0.21117,0.15811,-0.10717,-0.21329,0.10505,0.37033,0.078524,-0.054118,-0.10717,-0.080646,0.051995,0.10505,-0.080646,-0.080646,-0.39899 -0.19392,-0.19525,-0.19481,-0.19592,-0.19681,-0.19258,-0.19436,-0.19481,-0.19058,-0.19481,0.20733,0.20956,0.21,-0.1868,-0.18524,0.20244,0.20377,0.20244,0.19999,-0.18102,0.20822,0.20511,0.22913,0.20755,0.21134 -0.0875,-0.088145,-0.090079,-0.089112,-0.089112,-0.089757,-0.089435,-0.089112,-0.090079,-0.091369,-0.087823,-0.086856,-0.087178,-0.08879,-0.088467,-0.08202,-0.088145,-0.084599,-0.0875,-0.089435,-0.050752,0.51144,0.48114,0.48275,0.33994 -0.040743,-0.042649,-0.042268,-0.042649,0.97974,-0.040362,-0.038075,-0.040362,-0.040362,-0.044555,-0.039599,-0.039981,-0.039218,-0.039218,-0.047223,-0.042649,-0.039599,-0.039981,-0.039599,-0.036169,-0.041887,-0.042268,-0.039981,-0.041505,-0.038837 0.44867,0.44808,-0.099594,-0.10588,-0.099791,0.44808,0.45004,-0.099005,-0.10745,-0.10274,0.050092,-0.095666,-0.098023,-0.10372,-0.10588,0.050878,-0.093505,-0.093898,-0.10195,-0.10392,-0.093505,-0.095862,-0.096648,-0.10195,-0.096844 -0.049262,-0.037785,-0.037286,-0.038783,0.97968,-0.039781,-0.038783,-0.038783,-0.035789,-0.049262,-0.038783,-0.04028,-0.041777,-0.041777,-0.038783,-0.041278,-0.041278,-0.041278,-0.041278,-0.039781,-0.041278,-0.043773,-0.039282,-0.041278,-0.042276 -0.16056,-0.17155,-0.15506,-0.13031,-0.13856,-0.14406,-0.14956,-0.13856,-0.10832,-0.13031,-0.10007,-0.067082,-0.086326,-0.047837,-0.14131,0.14186,-0.0010997,0.23259,0.17485,-0.13031,0.3673,0.44153,0.41953,0.33156,-0.10832 -0.038314,-0.038991,-0.038652,-0.03933,0.97965,-0.03933,-0.038314,-0.040515,-0.044918,-0.030185,-0.040176,-0.040685,-0.044072,-0.04187,-0.035943,-0.042717,-0.043563,-0.043902,-0.040685,-0.037636,-0.042717,-0.042717,-0.041023,-0.044749,-0.048644 -0.17863,-0.17588,-0.17439,0.25102,0.25091,-0.17886,-0.17439,-0.17611,0.3504,0.3496,-0.17611,-0.17519,-0.17668,0.36211,0.33307,-0.17565,-0.17588,0.018407,0.01726,0.018063,-0.1768,0.014391,0.019211,0.11159,0.018522 0.48477,-0.24093,-0.071602,-0.095792,-0.095792,0.43639,-0.095792,-0.023222,-0.095792,-0.071602,0.50896,-0.16836,-0.023222,-0.071602,-0.095792,0.21868,-0.095792,0.049347,-0.14417,-0.095792,0.1703,-0.16836,-0.11998,-0.023222,-0.071602 -0.10925,-0.10199,-0.10289,-0.18548,-0.19955,0.26284,-0.19592,-0.10199,-0.18366,-0.19864,0.271,0.26148,-0.10289,-0.18366,-0.19546,0.26874,0.26919,0.25558,-0.10153,-0.19501,0.25875,0.26238,0.25059,-0.10244,-0.10017 -0.0067696,-0.0067696,0.28783,0.30664,0.30664,-0.025574,0.012035,0.13113,0.28783,0.26276,-0.081988,-0.050647,0.012035,0.24396,0.30664,-0.19481,-0.17601,-0.21362,-0.17601,-0.19481,-0.21362,-0.21362,-0.20108,-0.19481,-0.20735 -0.057405,-0.065757,-0.086636,-0.094988,-0.10195,-0.051837,-0.040701,-0.078284,-0.094988,-0.097772,-0.032349,-0.029565,-0.057405,-0.10195,-0.09638,0.52026,-0.01843,-0.078284,-0.097772,-0.10195,0.56063,0.5314,-0.060189,-0.088028,-0.079676 -0.12015,-0.11929,-0.10896,-0.10465,0.35751,-0.11756,-0.1167,-0.10552,-0.11326,0.35579,-0.1167,-0.11584,-0.10552,0.35235,0.35751,-0.12015,-0.11498,-0.10896,-0.11068,0.35579,-0.11584,-0.11326,-0.10293,-0.10379,0.35579 0.1294,0.37785,0.37735,0.37436,0.38184,0.1259,-0.12804,0.37486,-0.12305,-0.12654,-0.11806,-0.12056,-0.11207,-0.12255,-0.11656,-0.11806,-0.097606,-0.11607,-0.12704,-0.11507,-0.12056,-0.11457,-0.11806,-0.13203,-0.11507 -0.21052,-0.19527,-0.20398,-0.20398,-0.2127,-0.13425,-0.1495,-0.13643,-0.17783,-0.18655,-0.16694,0.17086,0.16214,-0.095019,-0.10156,-0.075405,0.18394,0.2188,0.32341,-0.10809,0.34956,0.18611,0.31687,0.20791,0.23842 0.23907,-0.22482,-0.19583,-0.20825,-0.26624,0.33433,-0.10471,-0.10471,-0.17097,-0.29109,0.40888,0.21836,0.0071239,-0.10471,-0.24139,0.30948,0.26806,0.060968,-0.042578,-0.063287,0.15209,0.077535,-0.0011597,-0.030152,-0.026011 -0.040086,-0.037291,-0.042415,-0.035893,0.97977,-0.042881,-0.041018,-0.041018,-0.041018,-0.03962,-0.041018,-0.041018,-0.042415,-0.041018,-0.040086,-0.041484,-0.042881,-0.041018,-0.040086,-0.041484,-0.042881,-0.041484,-0.041484,-0.040086,-0.040086 0.086447,0.090952,0.086447,0.088699,0.10221,0.087573,0.087573,0.089825,0.099961,-0.46201,0.085321,0.084194,0.089825,0.09433,-0.45187,0.07969,0.080816,0.080816,0.080816,-0.45751,0.083068,0.090952,0.081942,0.080816,-0.46088 0.44872,0.45121,0.44266,-0.075515,0.48896,-0.091541,-0.086199,-0.077652,-0.086199,-0.087623,-0.089404,-0.087267,-0.089404,-0.086555,-0.086199,-0.08798,-0.089048,-0.088692,-0.089048,-0.088692,-0.088336,-0.089404,-0.086911,-0.089048,-0.090829 -0.041091,-0.042062,-0.0419,-0.043842,0.97971,-0.041253,-0.041738,-0.0419,-0.041253,-0.036237,-0.042224,-0.042224,-0.041576,-0.041415,-0.03381,-0.042062,-0.0419,-0.0419,-0.042385,-0.033972,-0.042547,-0.042224,-0.042224,-0.041415,-0.036561 -0.18823,-0.18279,-0.18372,-0.18212,0.17529,-0.18942,-0.10719,0.17887,0.17582,0.17993,-0.18809,-0.18756,0.18139,0.18218,0.1794,-0.32628,-0.18942,0.22091,0.18709,0.18285,-0.32748,-0.18862,0.22131,0.18987,0.18603 -0.14552,-0.13308,-0.1347,0.20546,0.21898,-0.14389,-0.1374,-0.13362,0.22763,0.23682,-0.13795,-0.13254,-0.12605,-0.1228,0.25305,-0.14443,-0.13037,-0.12821,-0.12821,0.38554,-0.13795,-0.13146,-0.13146,0.38013,0.37202 -0.11103,-0.10914,-0.11103,-0.11443,0.35745,-0.11065,-0.11367,-0.11027,0.3548,0.36765,-0.10989,-0.11103,-0.1133,-0.11367,0.36463,-0.11103,-0.11178,-0.11216,-0.11443,0.34535,-0.11103,-0.11556,-0.11254,-0.11821,0.34497 0.9342,-0.06006,-0.060959,-0.06006,-0.055118,-0.063205,-0.06006,-0.064104,-0.061408,-0.056915,-0.060959,-0.061408,-0.062756,-0.066799,0.14796,-0.056915,-0.060959,-0.06006,-0.065901,0.15425,-0.060959,-0.060959,-0.060959,-0.06635,0.050463 0.25347,-0.13551,-0.13156,-0.13156,-0.1276,0.24556,0.20682,-0.15211,-0.145,-0.13946,0.20682,0.27403,0.21947,-0.14579,-0.14974,0.21315,0.20524,0.21789,-0.2288,-0.23829,0.21157,0.18152,-0.22801,-0.24066,-0.24145 -0.079619,-0.077758,-0.079154,-0.077758,0.063256,-0.081481,-0.078689,-0.074966,-0.081946,0.065118,-0.079619,-0.076827,-0.075431,-0.080085,0.062325,-0.098235,-0.082412,-0.0745,-0.074966,0.7539,-0.12057,-0.073569,-0.069846,0.054414,0.53842 -0.087012,-0.15817,-0.12767,-0.097177,-0.12767,-0.16833,-0.15817,-0.066682,-0.12767,-0.066682,-0.097177,-0.12767,-0.066682,0.055297,0.045132,-0.15817,-0.10734,0.024802,0.10612,0.4009,-0.12767,0.055297,0.17728,0.35008,0.65503 -0.049982,-0.08066,-0.071408,-0.086017,-0.14056,-0.048034,-0.053877,-0.049008,-0.03099,-0.14786,-0.045599,-0.045599,-0.032938,-0.03586,-0.1503,0.66195,-0.042677,-0.039268,-0.036834,-0.14056,0.64101,0.14432,-0.039268,-0.045599,-0.034399 -0.20695,-0.20533,-0.20788,-0.15044,-0.22602,0.22862,0.19281,-0.098817,-0.13044,-0.21951,0.26048,0.20304,0.14839,-0.12812,-0.19068,0.30373,0.19304,0.14978,-0.12975,-0.19882,0.36187,0.20095,0.14955,-0.11137,-0.18812 -0.07988,-0.080462,-0.080171,-0.081917,-0.067368,-0.079007,-0.081335,-0.076097,-0.068241,-0.067368,-0.079589,-0.080171,-0.072023,-0.067077,-0.064749,0.55795,-0.076388,-0.072896,-0.069114,-0.067368,0.55678,0.50819,-0.07115,-0.072023,-0.068532 0.11162,0.13495,0.15829,0.20262,0.32161,0.10696,0.10929,0.13029,0.25862,0.16762,0.11629,0.13729,-0.12403,0.26795,-0.051704,-0.34103,-0.28969,-0.13103,-0.096036,-0.086703,-0.38769,-0.32469,-0.15903,-0.12637,-0.10537 -0.058163,-0.056936,-0.058572,0.47937,0.64014,-0.057959,-0.056322,-0.05714,-0.057959,0.47691,-0.057549,-0.057549,-0.056936,-0.058163,-0.12627,-0.057345,-0.058163,-0.055913,-0.1185,-0.12689,-0.058163,-0.058572,-0.055504,-0.12014,-0.12771 0.16806,0.18183,0.18183,0.099181,0.057855,0.18183,0.18183,0.099181,0.14051,0.057855,0.22316,0.14051,0.12673,0.057855,0.002755,0.04408,0.085406,-0.03857,-0.21765,-0.27275,-0.14877,-0.1901,-0.1901,-0.43805,-0.53447 -0.1577,-0.35593,-0.3339,-0.3339,-0.53213,0.062552,0.17268,0.018501,-0.0035241,-0.11365,0.12863,0.15065,0.15065,0.018501,-0.047575,0.17268,0.15065,0.15065,0.12863,-0.025549,0.1947,0.21673,0.1947,0.084577,-0.091626 0.61509,0.33085,0.075039,0.41612,0.30243,-0.095504,-0.06708,0.046615,-0.12393,-0.038656,-0.23762,0.018191,-0.06708,-0.038656,-0.038656,-0.038656,-0.12393,-0.12393,-0.12393,-0.2092,-0.06708,-0.15235,-0.095504,-0.038656,-0.12393 -0.19261,-0.1921,-0.19176,-0.19329,0.20651,-0.19278,-0.19125,-0.19193,0.20922,0.2204,-0.1921,-0.19075,0.20787,0.22447,0.22701,-0.19193,-0.19227,0.19889,0.19923,0.19381,-0.19159,-0.1921,0.20329,0.2038,0.20194 -0.082417,-0.081656,-0.077853,-0.082417,-0.083939,-0.080135,-0.072147,-0.070626,-0.070245,-0.074429,0.47634,-0.068724,-0.068344,-0.071006,-0.072908,0.68173,-0.066822,-0.066442,-0.069485,-0.071767,0.43792,-0.06492,-0.06492,-0.067203,-0.067583 -0.13791,-0.1402,-0.13944,-0.1303,-0.12903,-0.13614,-0.1402,-0.13868,-0.13817,-0.13259,-0.13741,-0.14045,-0.13715,-0.13994,-0.13741,-0.13715,0.2873,0.29009,0.29288,0.29491,-0.13994,0.29237,0.28983,0.29288,0.29186 -0.10874,-0.11001,-0.11413,0.2889,0.28953,-0.10969,-0.11223,-0.11191,-0.10494,0.29143,-0.11001,-0.10621,-0.10621,-0.10716,0.28953,-0.10811,-0.10557,-0.10589,-0.10874,0.5937,-0.10494,-0.10431,-0.10716,-0.10652,0.29935 -0.13402,-0.13402,-0.13335,-0.13447,-0.1356,-0.13245,-0.13245,-0.13335,-0.13357,-0.13515,-0.13222,-0.13312,-0.13312,-0.1347,-0.13447,-0.132,-0.13267,0.39215,0.3091,0.31248,0.1851,0.18735,0.19073,0.38742,0.3064 -0.2211,0.095551,-0.060958,-0.2219,-0.22029,0.31579,0.099585,-0.11017,-0.10533,-0.22029,0.33677,0.094744,-0.10936,-0.098068,-0.10533,0.31821,0.31579,-0.10694,-0.10129,-0.10533,0.31902,0.31741,-0.10856,-0.10694,-0.21101 0.2779,0.036247,-0.1752,0.0060412,0.036247,0.39872,-0.084577,0.0060412,-0.11478,0.036247,0.3081,0.036247,-0.054371,-0.2054,-0.024165,0.3081,0.09666,-0.054371,-0.29602,-0.26581,0.3081,0.12687,-0.11478,-0.32623,-0.26581 0.0348,-0.18403,-0.20538,-0.22407,-0.21339,0.042806,-0.14934,-0.18137,-0.18937,-0.18137,0.12821,-0.034587,-0.10664,-0.14667,-0.12799,0.44311,0.061487,-0.0078994,-0.021243,-0.058605,0.44845,0.36839,0.19759,0.2136,0.093512 -0.0026734,-0.024337,-0.0049781,-0.071813,0.97497,-0.034939,-0.033095,-0.048767,-0.057064,-0.057524,-0.049689,-0.049228,-0.049228,-0.026642,-0.057064,-0.044157,-0.048306,-0.046001,-0.044157,-0.060751,-0.04554,-0.041853,-0.051993,-0.046001,0.020834 -0.3511,-0.38584,0.19415,0.11664,0.0017106,-0.16667,-0.19875,0.16208,0.22088,0.063185,-0.16133,-0.030363,-0.025017,0.25563,0.12466,-0.14529,-0.15598,0.1407,0.20484,0.24761,-0.35377,-0.16667,-0.035708,0.21019,0.23424 0.34722,0.56596,0.1552,0.15458,0.15583,-0.13593,0.34008,0.15117,0.15365,0.16173,-0.1381,-0.13593,-0.1409,-0.13717,-0.13189,-0.13562,-0.14183,-0.135,-0.1381,-0.13655,-0.13531,-0.13437,-0.13406,-0.13655,-0.1381 -0.24416,-0.2516,0.1475,0.19489,0.17452,-0.24377,-0.24573,0.14907,0.13849,0.13536,-0.24377,-0.24299,-0.24769,0.15533,0.15533,-0.24612,-0.24299,0.17139,0.17061,0.17061,-0.23554,0.15063,0.17139,0.17727,0.18197 -0.13,-0.12972,-0.12915,-0.12872,-0.12858,-0.12986,-0.12929,-0.12773,-0.12802,-0.12943,-0.12575,-0.12632,-0.12632,-0.1266,-0.12745,-0.12462,-0.1249,0.1435,0.40157,0.39973,0.14378,0.14152,0.14293,0.40001,0.39945 0.25214,0.2509,-0.097539,-0.13232,-0.13956,0.25129,-0.097995,-0.11995,-0.13226,-0.14034,0.25188,0.2507,-0.1232,-0.13259,-0.13995,0.57582,0.25246,-0.12386,-0.13285,-0.13858,0.088894,-0.12379,-0.12444,-0.13402,-0.14086 -0.21949,0.27254,0.19767,0.18163,0.21104,-0.27832,-0.25693,0.18965,0.20302,0.18965,-0.29437,-0.23286,0.17628,0.15756,0.16558,-0.26762,-0.17403,-0.059044,0.12012,0.11745,-0.25158,-0.23019,-0.10718,0.11477,0.074661 -0.083806,0.5304,0.50641,0.40742,0.37246,-0.089043,-0.092084,-0.085665,-0.084144,-0.077894,-0.091746,-0.090395,-0.087692,-0.080766,-0.081273,-0.09107,-0.09107,-0.089043,-0.087016,-0.082962,-0.089043,-0.089719,-0.085834,-0.085665,-0.080766 -0.14435,-0.13926,-0.13577,0.3466,0.35008,-0.14516,-0.13202,-0.13497,0.34874,0.34981,-0.13094,-0.13229,-0.13631,0.35008,0.34472,-0.13175,-0.1296,-0.12719,-0.017793,-0.025033,-0.12907,-0.13282,-0.13094,-0.016989,-0.017793 -0.18512,-0.33995,-0.1163,-0.064688,-0.047484,-0.21953,-0.1335,-0.1335,-0.064688,0.09015,-0.1335,-0.081892,-0.013075,0.055742,0.22778,-0.18512,-0.099096,0.055742,0.15897,0.38262,-0.1163,-0.047484,0.10735,0.43423,0.46864 0.099504,0.024876,0.14926,0.024876,0.17413,0.074628,0,0.17413,0.17413,0.17413,0,0.24876,0.14926,0.074628,0.24876,0.099504,0.14926,-0.074628,-0.099504,-0.14926,-0.37314,-0.44777,-0.37314,-0.29851,-0.22388 0.25055,-0.10863,-0.11169,-0.10608,-0.102,0.25259,0.24902,0.24289,-0.10557,-0.10251,0.42912,-0.10761,-0.11424,-0.12088,-0.12241,0.37759,-0.10659,-0.10455,-0.10965,-0.21883,0.37554,-0.10965,-0.10761,-0.10353,-0.21526 -0.038898,-0.041412,-0.04267,-0.042041,0.97976,-0.04047,-0.041412,-0.041727,-0.038898,-0.036069,-0.038898,-0.041098,-0.042041,-0.043298,-0.041098,-0.042041,-0.040784,-0.041727,-0.042355,-0.037012,-0.040155,-0.041412,-0.041727,-0.043927,-0.038584 0.081156,0.082692,0.082692,0.094984,0.1042,0.082692,0.085765,0.084997,0.087302,-0.46198,0.085765,0.087302,0.087302,0.087302,-0.45661,0.087302,0.084229,0.08807,0.085765,-0.45507,0.087302,0.08807,0.088838,0.088838,-0.45891 0.24047,0.1438,0.12754,0.10877,-0.27978,0.13755,0.14725,0.11002,-0.28979,0.11878,0.14161,0.13317,0.11753,-0.29166,-0.29354,0.13817,0.12879,0.13098,-0.29229,-0.2926,0.14255,0.13755,0.11127,-0.29198,-0.28416 -0.026206,-0.034182,-0.035321,-0.047855,0.97875,-0.01937,-0.0376,-0.036461,-0.043297,-0.054691,-0.03874,-0.044437,-0.053552,-0.042158,-0.046715,-0.033043,-0.039879,-0.042158,-0.046715,-0.05697,-0.021649,-0.03874,-0.039879,-0.046715,-0.052412 -0.19245,-0.19279,0.19612,0.20379,0.20958,-0.19415,-0.19449,0.19553,0.2037,0.21477,-0.19236,-0.19356,0.19417,0.22499,0.21324,-0.19211,-0.19202,-0.19177,0.21086,0.21384,-0.1904,-0.19134,-0.18955,-0.18972,0.21614 0.34801,0.35535,0.15414,0.14994,0.15099,0.35325,0.36059,0.15204,0.15623,-0.13615,-0.14873,-0.16864,-0.15502,-0.16026,-0.1655,-0.18226,-0.16235,-0.14978,-0.13406,-0.13825,-0.17178,-0.1613,-0.14978,-0.13615,0.13946 0.2414,0.47057,0.31779,0.31779,0.27959,0.088614,-0.025973,0.088614,-0.064169,0.012223,0.050418,-0.064169,-0.14056,0.12681,-0.21695,-0.21695,0.012223,0.050418,-0.10236,-0.14056,-0.21695,-0.14056,-0.29334,-0.25515,-0.17876 0.46096,0.46278,0.42942,-0.078636,0.47862,-0.086627,-0.086066,-0.086627,-0.086487,-0.086907,-0.087468,-0.087468,-0.087468,-0.088029,-0.087608,-0.088169,-0.087748,-0.088169,-0.087748,-0.088029,-0.088589,-0.08915,-0.088169,-0.088589,-0.088029 -0.054836,-0.054836,-0.013294,-0.054836,-0.054836,-0.096379,-0.013294,-0.13792,0.069792,-0.11715,-0.11715,-0.054836,-0.013294,-0.034065,0.25673,-0.034065,-0.096379,-0.096379,-0.054836,0.23596,-0.054836,-0.034065,-0.26255,0.049021,0.83833 0.034827,0.037845,0.22904,-0.21864,-0.21974,0.16814,0.26882,0.24331,-0.21946,-0.22166,0.16842,0.16238,0.16293,-0.21919,-0.21645,0.26333,0.15937,0.16897,-0.21974,-0.21892,-0.21151,0.16732,0.16732,-0.21919,-0.21754 0.44123,0.43356,-0.1571,-0.16094,-0.17244,0.51411,0.046179,-0.1571,-0.1571,-0.16094,0.28781,-0.11875,-0.11875,-0.11491,-0.16094,0.030837,0.019331,0.00015342,-0.045872,-0.12258,0.027002,0.034673,0.027002,-0.084227,-0.13025 -0.090326,-0.092297,-0.09164,-0.091859,0.28541,-0.091202,-0.092517,-0.090983,-0.094707,0.28541,-0.092297,-0.092078,-0.092955,-0.093174,0.28826,-0.093831,-0.093393,-0.09405,-0.095365,0.28672,-0.090107,-0.093174,-0.093831,-0.093174,0.70715 -0.13441,-0.1154,-0.1059,-0.072626,0.043823,-0.13917,-0.1059,-0.10352,-0.060743,0.38129,-0.13441,-0.10114,-0.089261,0.33138,0.4098,-0.16056,-0.096391,-0.10114,-0.05599,0.42881,-0.18432,-0.10352,-0.065496,-0.065496,0.4003 -0.13606,-0.13606,-0.13691,-0.13635,-0.1372,-0.13578,-0.13635,-0.13691,-0.13947,-0.1372,-0.13663,-0.13748,-0.13748,-0.13918,-0.13947,-0.13635,0.298,0.28665,0.28296,0.29147,-0.1372,0.29743,0.29715,0.28608,0.29233 0.31092,0.26636,0.065855,0.045804,-0.10792,0.3176,0.23294,0.048032,-0.043309,-0.1547,0.29755,0.31315,-0.094549,-0.16584,-0.16584,0.34879,-0.14802,-0.13911,-0.16807,-0.18366,-0.17475,-0.14802,-0.15693,-0.1948,-0.20149 0.086268,0.086268,0.0063902,-0.15337,-0.28649,0.059642,0.16615,-0.17999,-0.17999,-0.15337,0.2194,-0.020236,0.086268,-0.073487,-0.28649,0.13952,0.40578,0.086268,-0.17999,-0.15337,0.40578,0.3259,-0.12674,0.0063902,-0.28649 0.93388,-0.023132,-0.080964,-0.039922,-0.062308,-0.080964,-0.062308,-0.067905,-0.062308,0.042161,-0.080964,-0.080964,-0.097753,-0.060443,0.029102,-0.10148,-0.088426,-0.088426,-0.043653,0.07574,0.064547,-0.079098,-0.024998,-0.058577,0.13917 0.41665,0.42752,-0.0035692,-0.17366,-0.1745,0.41776,-0.0032904,0.0008923,-0.17785,-0.17339,0.41302,-0.003848,-0.0013385,5.5769e-05,-0.17366,-0.0083096,-0.003848,-0.0024538,-0.16669,-0.20573,-0.0091461,-0.0063576,-0.0027327,-0.16669,-0.21884 0.49065,0.49962,-0.08098,-0.075538,-0.069825,0.62505,-0.069553,-0.069281,-0.072273,-0.069553,-0.069281,-0.071729,-0.074994,-0.077715,-0.076627,-0.069553,-0.070913,-0.077715,-0.077443,-0.078259,-0.070097,-0.067104,-0.070913,-0.078531,-0.077443 0.11716,0.11735,0.1197,0.11872,0.15181,0.11402,0.11931,0.12381,0.12518,0.15377,0.134,0.12049,0.17629,0.17413,0.14966,-0.29128,-0.2899,-0.28971,0.15769,0.15103,-0.2899,-0.2901,-0.2901,-0.29108,-0.29206 0.43399,0.25514,0.25284,0.26204,0.27987,-0.11865,-0.15718,0.25457,0.27182,0.2793,-0.15027,-0.1566,-0.15258,-0.15258,-0.10139,-0.129,-0.1589,-0.1543,-0.15258,-0.10139,-0.10139,-0.1589,-0.15085,-0.10082,-0.092194 0.10142,-0.064451,-0.13554,-0.13554,-0.11184,-0.064451,-0.064451,-0.13554,-0.20662,-0.25401,0.1725,0.03033,0.0066347,-0.23032,-0.20662,0.31467,0.36206,0.14881,0.03033,-0.18293,0.40946,0.33837,0.1962,-0.064451,-0.25401 -0.32182,-0.27315,-0.21168,-0.2168,-0.1835,-0.32182,-0.22448,0.090572,-0.16045,0.072642,-0.25522,-0.19631,0.098256,0.10338,0.11875,0.2084,0.16998,0.13412,0.15461,0.17254,0.24938,0.22889,0.18534,0.17254,0.20584 0.33916,0.30026,0.18358,-0.049785,-0.20536,0.26137,0.22248,0.028004,0.066898,-0.20536,0.18358,0.26137,-0.20536,-0.20536,-0.088679,0.028004,0.066898,-0.049785,-0.088679,-0.24426,0.10579,0.066898,-0.049785,-0.39983,-0.32204 0.06097,-0.036666,0.32241,0.33682,0.32359,0.20242,-0.038431,0.34505,0.31741,0.31888,-0.14254,-0.14283,-0.14283,-0.14371,-0.14371,-0.14283,-0.14342,-0.14342,-0.14371,-0.14224,-0.14283,-0.14371,-0.1446,-0.1446,-0.14548 0.24046,0.11406,-0.024399,-0.45594,-0.45652,0.081722,0.09054,0.038509,-0.057323,-0.45888,0.22723,0.14522,0.029102,-0.024399,-0.072315,0.24987,0.09789,0.030278,-0.11082,-0.076136,0.30043,0.12993,0.029396,-0.007937,-0.059968 -0.13271,-0.14342,-0.13033,-0.17556,-0.18509,0.27799,0.2518,-0.12914,-0.17556,-0.15533,0.29941,0.24942,-0.14461,-0.18271,-0.15533,0.28037,0.2518,-0.13628,-0.14461,-0.13747,0.2637,0.2518,0.2637,-0.1339,-0.12795 -0.13834,-0.13754,-0.13887,-0.20816,-0.20046,0.30233,0.18128,0.049345,-0.13754,-0.1917,0.30286,0.18606,0.18473,-0.21771,-0.2071,0.17624,0.29517,0.19004,-0.20205,-0.20763,0.17916,0.18314,0.18022,-0.21267,-0.21081 -0.11694,-0.12658,-0.13301,0.048513,0.072608,-0.12819,-0.13943,-0.12337,0.08064,0.38585,-0.13301,-0.1571,-0.11694,-0.12498,0.38906,-0.12498,-0.11534,-0.10891,-0.11373,0.38746,-0.12819,-0.11855,-0.092849,0.37943,0.35854 0.46493,0.46048,-0.074574,-0.13019,-0.12463,0.29474,0.32032,-0.077911,-0.12463,-0.12797,0.28027,0.26136,-0.081248,-0.10795,-0.12352,-0.095709,-0.11351,-0.079023,-0.11239,-0.12352,-0.10572,-0.13353,-0.13019,-0.092372,-0.12352 0.27776,0.33499,0.32083,-0.10194,-0.11669,0.28336,0.25209,-0.10784,-0.11315,-0.13675,0.29398,0.27215,-0.11492,-0.13114,-0.1515,0.27894,-0.11905,-0.1276,-0.1515,-0.1754,-0.12613,-0.1276,-0.14884,-0.17008,-0.19398 -0.15423,-0.14533,-0.13127,0.25577,0.30044,-0.15458,-0.13875,-0.13412,0.26111,0.29617,-0.15298,-0.13697,-0.127,0.29884,0.30133,-0.14782,-0.13768,-0.13109,0.3355,0.27535,-0.13412,-0.13839,-0.11899,-0.12095,-0.12024 0.44129,0.12213,0.094023,0.098038,-0.033442,0.46437,0.11209,0.10005,0.10807,0.014734,0.11911,0.11711,0.12012,0.12413,0.1161,-0.20005,-0.19905,-0.20708,-0.21109,-0.20005,-0.2141,-0.22012,-0.22012,-0.22012,-0.22615 -0.077661,-0.36529,-0.053691,0.11409,0.20997,-0.029722,-0.22148,-0.053691,0.20997,0.16203,-0.14957,-0.26942,-0.053691,0.042186,0.23394,-0.077661,-0.24545,-0.1256,0.23394,0.32982,-0.077661,-0.053691,-0.26942,0.186,0.40173 -0.099691,-0.057773,-0.013732,-0.019038,0.44896,-0.09916,-0.086425,-0.095976,-0.09916,0.46169,-0.094384,-0.096507,-0.095446,-0.092793,0.5519,-0.097568,-0.078997,-0.097038,-0.095976,0.33753,-0.10394,-0.098099,-0.093323,-0.093323,-0.091731 0.34646,0.34646,0.098637,-0.11203,-0.14411,0.34695,0.3458,-0.10482,-0.11956,-0.14558,0.34695,0.34695,-0.10351,-0.11481,-0.14804,-0.10106,-0.10188,-0.10466,-0.12643,-0.14902,-0.10466,-0.10613,-0.11203,-0.12905,-0.15082 0.13749,-0.17348,-0.23153,-0.24812,0.10847,0.17481,-0.049093,-0.19836,-0.18592,-0.0076293,0.33652,0.017249,-0.16519,-0.14031,-0.13202,0.43603,0.071152,-0.11543,-0.098849,-0.090557,0.50237,0.22457,-0.057386,-0.057386,-0.057386 -0.039573,-0.039573,-0.040536,-0.037646,0.97962,-0.039573,-0.042463,-0.040536,-0.0415,-0.056913,-0.039573,-0.039573,-0.039573,-0.039573,-0.04439,-0.042463,-0.039573,-0.039573,-0.039573,-0.042463,-0.039573,-0.042463,-0.033793,-0.039573,-0.039573 -0.080092,-0.080092,-0.084666,-0.08924,-0.11211,-0.082379,-0.075518,-0.070944,-0.082379,-0.10525,-0.061796,-0.059509,-0.045787,-0.048074,-0.096101,-0.061796,-0.042356,-0.028634,-0.059509,-0.084666,0.69636,0.47909,0.40362,-0.050361,-0.077805 -0.15574,-0.132,-0.27445,-0.060778,-0.037036,-0.132,-0.10826,-0.17948,-0.060778,0.10541,-0.17948,-0.27445,-0.084519,0.12915,0.20038,-0.10826,-0.060778,-0.060778,0.24786,0.39031,-0.037036,-0.060778,0.08167,0.31908,0.53275 -0.04233,-0.043377,-0.044632,-0.046934,0.97973,-0.03961,-0.037099,-0.039401,-0.04254,-0.044423,-0.039191,-0.037727,-0.037727,-0.041493,-0.040028,-0.040028,-0.041075,-0.037099,-0.041075,-0.040866,-0.040447,-0.04233,-0.038145,-0.040866,-0.041284 0.24701,0.12654,-0.22213,-0.21653,-0.21806,0.24574,0.13316,-0.21169,-0.21933,-0.22646,0.24574,0.13189,-0.21653,-0.2206,-0.22697,0.25058,0.13036,0.13265,-0.22137,-0.22595,0.25542,0.12731,0.13087,0.13622,0.13214 -0.30002,-0.30328,0.19806,-0.085163,0.20783,-0.37815,-0.23817,0.1883,-0.046097,0.20457,-0.30979,-0.21538,0.14923,0.14272,0.18178,-0.06563,-0.1047,0.17202,0.18178,0.20783,-0.1047,-0.15353,0.12644,0.159,0.18504 -0.043171,-0.047016,-0.047871,-0.052144,0.97842,-0.046589,-0.050007,-0.05428,-0.038471,-0.023517,-0.042744,-0.049153,-0.051289,-0.040607,-0.013262,-0.04488,-0.044453,-0.048725,-0.036335,-0.028217,-0.019244,-0.043171,-0.047871,-0.04018,-0.025226 0.27149,0.17615,0.17245,-0.24343,-0.16453,0.15766,0.28546,0.17409,0.15355,-0.16576,0.16012,0.16505,-0.21836,-0.21589,-0.19494,0.18889,0.1667,-0.21713,-0.21466,-0.19946,0.19382,0.19916,-0.21589,-0.21425,-0.20028 0.1145,0.077454,0.094292,-0.23236,-0.3014,0.17175,0.11281,0.11113,0.16164,-0.27614,0.18185,0.14817,0.090925,0.1768,-0.29972,0.1347,0.11618,0.10608,0.12123,-0.34686,0.080822,0.095976,0.10776,-0.35023,-0.39738 0.5126,0.12706,0.13707,-0.13227,-0.15997,0.53183,0.18247,0.15015,-0.13073,-0.16997,0.090127,0.17631,-0.087634,-0.12919,-0.15381,0.098592,-0.10533,-0.11995,-0.17074,-0.15843,0.097822,-0.10918,-0.13919,-0.16766,-0.16997 -0.035312,-0.041874,-0.048437,-0.046249,0.97961,-0.0375,-0.034875,-0.043624,-0.047562,-0.036187,-0.038375,-0.0375,-0.0375,-0.046249,-0.044937,-0.038375,-0.03925,-0.040562,-0.041,-0.044062,-0.036187,-0.037937,-0.041874,-0.041,-0.043187 -0.13614,-0.13405,-0.13145,-0.13197,-0.13509,-0.13457,-0.13457,-0.13197,-0.13457,-0.13353,-0.12311,-0.1278,-0.13561,-0.13926,-0.1377,-0.13093,-0.11322,0.17483,0.29306,0.41391,0.41391,0.1691,0.17118,0.30244,0.30713 -0.088371,-0.089417,-0.084709,0.026186,0.53097,-0.089417,-0.088633,-0.086279,-0.086279,0.53306,-0.088371,-0.090202,-0.085232,-0.087063,0.53437,-0.090725,-0.087586,-0.086279,-0.089679,0.020693,-0.088633,-0.089417,-0.087586,-0.085232,0.023832 -0.26254,-0.25658,-0.25062,-0.2536,-0.27446,-0.092717,-0.14039,-0.14039,-0.19997,-0.13443,0.068167,0.05625,0.094981,0.026456,0.10094,0.16351,0.092002,0.044332,0.086043,0.37206,0.16946,0.05327,0.059229,0.065188,0.5538 -0.28944,-0.29278,0.13431,0.13431,0.13542,-0.29019,-0.29575,0.13542,0.13468,0.1332,-0.28907,0.13839,0.13913,0.13839,0.13802,-0.28907,-0.29575,0.13913,0.13913,0.13802,-0.29019,0.13913,0.13913,0.13839,0.13802 -0.14041,-0.14103,-0.14072,-0.14227,-0.14319,-0.13948,-0.14134,-0.13948,-0.14227,-0.14319,-0.13577,-0.12556,-0.13979,-0.14103,-0.14227,0.15098,0.14603,0.34369,0.12592,0.112,0.1386,0.66106,0.15191,0.15129,0.11633 -0.1713,-0.17371,-0.17371,-0.17612,-0.18816,-0.16648,-0.18575,-0.18335,-0.18575,-0.17612,-0.17853,-0.1713,-0.16889,0.21167,0.25021,-0.15444,0.12978,0.21649,0.24298,0.27911,0.14905,0.22131,0.23335,0.25021,0.26948 0.07048,0.12161,-0.24297,-0.17298,-0.27401,0.21716,0.11795,0.1003,-0.26062,-0.27401,0.23055,0.13134,0.12648,-0.27279,-0.2801,0.14534,0.13743,0.12343,0.17273,-0.2801,0.071089,0.24759,0.17517,0.15082,-0.28192 -0.19597,-0.19634,-0.19634,-0.19634,-0.19523,-0.19671,-0.19485,-0.19708,-0.19671,-0.19708,-0.19523,-0.19485,0.18842,0.11072,0.11407,0.35607,0.35682,0.19808,0.11184,0.11035,0.2583,0.25347,0.09994,0.098825,0.095851 -0.25653,-0.15862,-0.12598,-0.20758,-0.28917,-0.20758,-0.20758,-0.17494,-0.12598,-0.044388,-0.028069,0.0045693,0.020888,-0.1423,0.020888,0.13512,0.069845,0.1188,0.18408,0.23303,0.62469,0.21672,0.18408,0.053526,0.10248 0.45239,0.45659,-0.1047,-0.08677,-0.10547,0.44934,-0.10852,-0.11234,-0.080665,-0.08677,0.44705,-0.11081,-0.11272,-0.081428,-0.077612,0.071965,-0.09173,-0.11157,-0.084862,-0.074941,-0.10814,-0.082191,-0.098217,-0.079138,-0.078757 -0.35802,-0.35431,-0.35475,-0.35453,-0.35147,-0.36108,0.10529,0.10857,0.1114,0.12276,0.1173,0.10595,0.10267,0.10704,0.11577,0.12887,0.10835,0.10442,0.10464,0.1114,0.12996,0.11402,0.10791,0.11402,0.11381 0.31111,0.30857,-0.12828,-0.12828,-0.1469,0.29333,0.29418,-0.13166,-0.13336,-0.15198,0.27724,0.28317,-0.13082,-0.1232,-0.14267,0.27894,0.28148,-0.13505,-0.1215,-0.13505,-0.1723,-0.1469,-0.14098,-0.12574,-0.13336 -0.040837,-0.038363,-0.036243,-0.047905,0.97973,-0.04013,-0.040837,-0.039777,-0.04225,-0.040837,-0.040837,-0.043311,-0.042957,-0.044017,-0.04013,-0.03695,-0.04119,-0.03907,-0.042604,-0.039423,-0.03907,-0.041544,-0.04119,-0.040837,-0.039423 0.12684,0.12732,0.127,-0.15129,-0.15241,0.12955,-0.14866,-0.15049,-0.15018,-0.15065,0.40169,-0.14858,-0.14834,-0.14874,-0.14986,0.40113,0.21327,-0.15456,-0.15472,-0.15536,0.39986,0.21207,0.13362,-0.15433,-0.15417 -0.18761,-0.18758,-0.18768,-0.18773,-0.18785,-0.18715,-0.18722,-0.18739,-0.18751,-0.18763,0.24805,0.2508,-0.18705,-0.1872,-0.18729,0.248,0.24957,0.24725,0.24771,0.11415,0.24846,0.24358,0.11195,0.11408,0.11333 0.073125,0.12611,0.09962,0.073125,0.073125,0.1791,0.1791,0.2056,0.25859,0.23209,0.046631,0.12611,-0.085843,0.12611,0.28508,-0.11234,-0.19182,-0.059348,0.020136,-0.059348,-0.21832,-0.43027,-0.27131,-0.43027,-0.24481 -0.039328,-0.041737,-0.042941,-0.038846,0.97976,-0.039569,-0.040773,-0.041737,-0.04246,-0.04511,-0.041737,-0.041978,-0.041255,-0.042941,-0.041737,-0.041496,-0.040532,-0.040532,-0.04005,-0.039569,-0.041737,-0.038364,-0.0374,-0.038605,-0.039328 -0.20948,-0.17183,-0.10503,0.079577,0.050428,-0.19612,-0.18276,-0.14025,-0.091673,0.066217,-0.14997,-0.19005,-0.077099,-0.072241,0.35406,-0.11111,-0.12325,-0.038234,0.38564,0.40872,-0.069812,-0.04795,-0.072241,0.32127,0.38321 0.09562,0.095442,0.095977,0.094551,0.094907,0.09758,0.097759,-0.19662,-0.19537,-0.19662,0.27239,0.2699,-0.19627,-0.19573,-0.19573,0.28219,0.28397,-0.1968,-0.19627,-0.19698,0.28611,0.2895,-0.19716,-0.19627,-0.19609 0.26201,0.24428,0.15207,-0.038549,-0.23316,0.31476,0.28861,0.13345,-0.055395,-0.24202,0.28417,0.22876,0.16182,-0.037219,-0.24734,-0.025694,0.076708,0.066512,-0.121,-0.27837,-0.039879,-0.19681,-0.20479,-0.21321,-0.2797 0.19914,0.20129,-0.045388,-0.21484,-0.23415,0.21416,-0.13548,-0.1698,-0.17623,-0.24273,0.2163,0.22703,-0.11403,-0.21484,-0.24487,0.2163,0.22274,-0.079708,-0.19339,-0.18052,0.23561,0.22059,0.22703,0.2399,-0.17409 -0.2062,-0.24744,-0.37115,-0.041239,-0.24744,-0.12372,0,0.12372,-0.28868,-0.12372,-0.12372,-0.16496,-0.12372,-0.12372,0,0.28868,0.28868,0.082479,0.12372,0.16496,0.2062,0.16496,0.12372,0.32991,0.28868 0.020068,-0.43403,-0.43374,-0.43489,-0.4346,0.023618,0.022467,0.020931,0.019492,0.017956,0.025633,0.025058,0.023234,0.022467,0.022179,0.1644,0.17879,0.16257,0.027553,0.162,0.16056,0.15998,0.15988,0.15921,0.15921 -0.039103,-0.040295,-0.041486,-0.041486,0.97978,-0.04228,-0.041486,-0.04228,-0.04228,-0.039898,-0.039898,-0.041486,-0.043074,-0.041089,-0.041486,-0.039103,-0.040692,-0.040692,-0.041089,-0.043074,-0.039103,-0.038706,-0.039501,-0.040295,-0.039898 -0.018013,-0.12036,-0.18177,-0.38646,-0.34552,0.14574,-0.018013,-0.079422,-0.1613,-0.36599,0.22762,0.0024563,0.0024563,-0.20224,-0.1613,0.18668,0.16621,0.12527,0.084334,-0.018013,0.28903,0.3095,0.28903,0.14574,0.084334 -0.19846,-0.257,-0.27521,-0.32075,-0.34546,-0.15814,0.082528,0.073422,-0.20627,-0.32205,0.22823,0.1827,0.14367,0.11375,-0.22448,0.14627,0.1905,0.21522,0.098139,0.098139,0.23213,0.11505,0.16058,0.14237,0.08513 -0.18052,-0.27078,-0.20308,-0.13539,-0.11282,-0.20308,-0.22565,-0.045129,-0.11282,0,-0.13539,-0.11282,0.067694,0.13539,0.13539,-0.13539,-0.067694,0.15795,0.27078,0.29334,-0.20308,0,0.31591,0.3836,0.3836 -0.083454,-0.10112,-0.14086,-0.13865,-0.14086,0.36473,-0.085662,-0.14527,-0.13865,-0.13865,0.33382,-0.070207,-0.1254,-0.14527,-0.074623,0.34265,0.36914,-0.10112,-0.11878,-0.070207,0.34706,0.36031,-0.11436,-0.061376,-0.12319 0.46184,0.45653,-0.15094,-0.14033,-0.14121,0.15301,0.44768,-0.14165,-0.14298,-0.12661,0.15877,0.16319,-0.14254,-0.13679,-0.12572,0.0061234,0.1654,-0.13767,-0.13059,-0.13236,0.0052385,0.010105,-0.12661,-0.12307,-0.12882 0.48154,0.16527,-0.18778,-0.18422,-0.18347,0.17411,0.17368,0.17443,-0.18325,-0.18379,0.17292,0.17389,-0.18261,-0.18336,-0.18379,0.17271,0.17443,-0.18228,-0.18325,-0.18433,0.17346,0.1726,-0.18185,0.17745,-0.1825 0.35057,0.30984,0.26356,-0.10574,-0.12055,0.35057,0.30521,-0.09463,-0.13073,-0.13628,0.34316,0.31077,-0.10574,-0.13721,-0.13813,-0.11314,-0.10759,-0.10574,-0.14183,-0.13906,-0.12332,-0.11962,-0.13165,-0.14183,-0.14091 0.37287,0.38527,-0.085679,-0.1022,-0.11047,0.45136,-0.085679,-0.098072,-0.12699,-0.13112,0.51127,-0.036106,-0.087745,-0.12906,-0.1022,0.038254,0.096089,-0.079482,-0.093941,-0.1621,-0.00099146,0.036188,-0.085679,-0.17243,-0.20135 0.13747,0.13537,0.1337,0.12072,-0.033802,0.13579,0.13705,0.13747,0.10481,-0.017889,0.13914,0.13914,0.13831,0.12993,-0.037152,0.13998,0.14207,0.14082,0.13705,-0.34452,-0.34368,-0.342,-0.34242,-0.34368,-0.34368 0.4089,0.25877,0.10562,-0.0075443,-0.18408,0.38023,0.2384,0.10713,-0.036967,-0.19087,0.37495,0.19842,0.10939,-0.039231,-0.20068,-0.14183,-0.12524,-0.13052,-0.14032,-0.19012,-0.14938,-0.14938,-0.14938,-0.1539,-0.19238 0.10833,0.1194,-0.21452,-0.27171,-0.31783,0.11386,0.099106,0.12309,-0.28462,-0.32337,0.1563,0.1028,0.14707,0.14154,-0.31414,0.136,0.136,0.13231,0.16921,-0.28462,0.12124,0.16552,0.19319,0.14523,-0.29938 0.27792,-0.0086384,-0.075088,-0.19276,-0.29935,0.29731,0.039814,-0.077857,-0.19414,-0.25644,-0.1983,0.12288,-0.014176,-0.15538,-0.20937,0.40944,0.17548,0.052274,-0.065397,-0.16646,0.42328,0.18517,0.073039,-0.016945,-0.12631 -0.19037,0.028792,-0.067898,-0.080789,-0.057154,-0.20971,0.0030081,-0.11517,-0.11517,0.00085946,-0.16244,0.14482,-0.037816,-0.0077352,0.028792,-0.055006,-0.097979,-0.0055865,0.073914,0.035238,-0.046411,-0.046411,0.026643,0.058873,0.8947 0.059409,0.034655,-0.16337,-0.33665,-0.41091,0.15842,0.084163,-0.13862,-0.23764,-0.41091,0.25744,0.15842,0.059409,0.10892,-0.23764,0.20793,0.084163,0.13367,0.084163,-0.18813,0.28219,0.18318,0.13367,0.059409,0.034655 -0.0079371,0.079457,-0.16052,-0.19848,-0.20135,-0.015101,0.27,0.17401,-0.20063,-0.2121,0.23275,0.22846,-0.17485,-0.2035,-0.2035,0.22631,0.25998,0.24637,-0.19634,-0.20207,0.18404,0.21198,0.25496,-0.1949,-0.19705 -0.15222,-0.18913,0.020604,0.096109,0.27061,-0.17739,-0.21262,-0.11866,-0.12873,0.32766,-0.169,0.074297,-0.14383,0.081008,0.57598,-0.15725,-0.14383,-0.12034,0.0071813,0.37464,-0.14383,-0.1153,0.0071813,0.010537,0.12631 -0.042902,-0.18041,-0.070404,-0.070404,0.36962,-0.097906,-0.12541,-0.015401,-0.12541,0.45213,-0.097906,-0.18041,-0.20791,-0.15291,0.36962,-0.070404,-0.12541,-0.12541,0.17711,0.25962,-0.042902,-0.20791,-0.097906,0.039602,0.36962 0.46171,0.072628,-0.03545,-0.1111,-0.13272,0.50494,0.051013,-0.046257,-0.046257,-0.13272,0.39686,0.13748,-0.046257,-0.1003,-0.14353,0.27798,0.040205,-0.067873,-0.1003,-0.13272,-0.2408,-0.16514,-0.13272,-0.15434,-0.15434 -0.074171,-0.074171,-0.12799,-0.18008,-0.19223,-0.048128,-0.081116,-0.11237,-0.14015,-0.20786,-0.013404,-0.053336,-0.088061,-0.12626,-0.17314,0.39287,0.019584,0.0022224,-0.049864,-0.1332,0.40502,0.40676,0.41023,0.29391,-0.055073 -0.18214,-0.18642,-0.17785,-0.085666,0.16087,-0.16713,-0.14998,-0.14998,0.31737,0.19303,-0.11997,-0.13069,-0.11353,0.3238,0.30236,-0.1071,-0.11997,-0.1071,0.33666,0.33023,-0.10925,-0.12211,-0.11353,-0.13497,0.31308 -0.28475,-0.29662,0.13221,0.13696,0.13506,-0.28902,0.13554,0.13791,0.13696,0.13696,-0.29045,0.13554,0.13696,0.13649,0.13649,-0.29187,-0.29805,0.13791,0.13886,0.13886,-0.28808,-0.2933,0.13886,0.13981,0.14076 -0.04111,-0.041815,-0.041815,-0.040758,0.97978,-0.042167,-0.041463,-0.041463,-0.040758,-0.040406,-0.040406,-0.04111,-0.041815,-0.040934,-0.040053,-0.040053,-0.04111,-0.041463,-0.04111,-0.040582,-0.035649,-0.040053,-0.041463,-0.040406,-0.041815 -0.23197,-0.049853,-0.035596,0.16676,0.59492,-0.21818,-0.040195,-0.045714,0.14284,0.59171,-0.036516,-0.053072,-0.048473,-0.050313,0.14238,-0.21082,-0.046174,-0.048013,-0.052152,-0.048933,-0.21036,-0.048933,-0.058591,-0.051693,-0.053072 -0.06136,-0.04956,-0.06726,-0.03481,-0.04366,-0.10561,-0.06726,-0.05251,-0.03776,-0.04366,-0.10266,-0.11151,-0.04661,-0.02301,0.05664,-0.11446,-0.12036,-0.03481,0.01239,0.67909,-0.12036,-0.11151,-0.06136,0.01829,0.64369 -0.040275,-0.043568,-0.039099,-0.039569,0.97954,-0.042627,-0.041686,-0.039334,-0.045686,-0.045686,-0.042627,-0.041686,-0.044745,-0.046391,-0.044745,-0.041686,-0.042157,-0.023807,-0.038628,-0.0311,-0.039804,-0.040745,-0.039099,-0.042863,-0.041922 0.52488,0.4066,-0.050517,0.039428,-0.038195,0.42878,0.42508,-0.038195,-0.057909,-0.057909,-0.055445,-0.048052,-0.10719,-0.1343,-0.10227,-0.073927,-0.08748,-0.092408,-0.14046,-0.13923,-0.097337,-0.098569,-0.11212,-0.14416,-0.14909 0.045728,0.045728,-0.015243,0.2134,0.88408,0.045728,-0.060971,-0.060971,-0.13718,0.13718,-0.060971,-0.15243,0,0,-0.12194,-0.015243,-0.12194,-0.030486,-0.15243,-0.060971,-0.060971,-0.045728,-0.060971,-0.060971,-0.15243 -0.037631,-0.043279,-0.043279,-0.039043,0.97975,-0.039749,-0.041514,-0.040455,-0.040102,-0.037631,-0.041161,-0.041514,-0.043632,-0.040102,-0.037984,-0.043279,-0.039749,-0.041514,-0.041161,-0.037984,-0.044691,-0.042926,-0.041867,-0.039043,-0.040455 0.12818,0.12719,0.12025,0.12223,0.11231,0.12619,0.12619,0.12421,0.12421,0.11628,0.12818,0.12719,0.12619,0.13016,0.11628,0.12917,0.13115,0.12818,-0.30411,-0.31303,-0.32294,-0.31799,-0.32889,-0.32096,-0.33583 -0.13163,-0.13033,-0.095271,0.32632,0.32407,-0.13379,-0.12869,-0.12687,0.32433,0.31723,-0.1286,-0.12851,-0.12739,0.31835,0.31446,-0.12938,-0.13301,-0.12955,-0.092933,0.31593,-0.13379,-0.14107,-0.12921,-0.12912,-0.091548 0.21898,0.062565,0.14077,0.29718,0.29718,0.14077,0.25808,0.14077,0.14077,0.29718,-0.054744,-0.015641,0.14077,-0.13295,0.023462,-0.25026,-0.21116,-0.17205,0.023462,-0.36757,-0.32847,-0.093847,-0.21116,-0.13295,-0.21116 0.44905,0.45333,0.093018,-0.086872,-0.072416,0.4528,0.44584,-0.09169,-0.085266,-0.092226,-0.093297,-0.093564,-0.092226,-0.092226,-0.096509,-0.095974,-0.097044,-0.096509,-0.099721,-0.1016,-0.099186,-0.099989,-0.099721,-0.1016,-0.10641 0.082939,0.13305,0.17368,-0.27731,-0.29492,0.093774,0.1019,0.16284,0.15878,-0.29086,0.1168,0.15607,0.20212,-0.2746,-0.29356,0.10596,0.12492,0.20212,-0.29492,-0.29221,0.11003,0.10867,0.13169,0.14253,-0.2895 0.87821,0.027124,0.019603,0.030687,-0.0021693,0.027916,0.021978,0.022374,0.021978,0.026728,0.025145,0.021978,0.021978,0.022374,0.01604,0.019999,0.019999,0.018811,-0.16526,-0.18624,-0.18387,-0.17872,-0.17635,-0.17595,-0.17437 -0.10861,-0.22956,-0.22956,-0.24126,-0.21395,0.2035,-0.12032,-0.21395,-0.21395,-0.22956,0.25812,0.16448,-0.053995,-0.19054,-0.22566,0.2191,0.2035,0.23471,0.14498,-0.15543,0.23471,0.19179,0.2269,0.2074,0.13717 -0.07742,-0.075019,-0.10222,-0.11182,-0.11102,-0.070219,-0.085421,-0.10062,-0.11182,-0.11182,0.40825,-0.091822,-0.10222,-0.11503,-0.11182,0.39945,0.39865,-0.095823,-0.10862,-0.10222,0.39865,0.39145,-0.099023,-0.10622,-0.10622 0.42366,-0.11224,0.074424,-0.03396,-0.11224,0.43871,-0.042992,-0.088152,-0.12127,-0.11525,0.38753,0.062381,-0.097184,-0.11826,-0.15138,-0.009875,-0.097184,-0.1002,-0.13331,-0.16041,0.50495,-0.082131,-0.10622,-0.097184,-0.11224 -0.14817,-0.1564,0.072814,0.078691,0.071639,-0.14268,-0.15365,0.073598,0.079083,0.072031,-0.28883,-0.28413,0.083393,0.083785,0.072814,-0.28687,-0.29275,0.25226,0.30438,0.27656,-0.29431,-0.15365,0.29536,0.2934,0.091621 0.12939,0.11608,0.10277,0.098329,0.098329,0.14714,0.10277,0.1072,0.089455,-0.15903,0.14714,0.10277,0.085018,0.062831,-0.38089,0.12939,0.10277,0.08058,-0.16791,-0.4652,0.12939,0.10277,0.085018,-0.38089,-0.4652 -0.084398,-0.085787,-0.086018,-0.085556,-0.086713,-0.084861,-0.085324,-0.085324,-0.086944,-0.086944,-0.084398,-0.083935,-0.084861,-0.086481,-0.085787,-0.083935,-0.083935,-0.084398,-0.085093,-0.084398,0.22853,0.80763,0.19775,0.23409,0.23709 0.0030875,-0.12556,-0.30566,-0.30566,-0.38284,0.028816,0.0030875,-0.04837,-0.33139,-0.33139,0.13173,0.15746,-0.04837,-0.022641,-0.074099,0.15746,0.15746,0.18319,0.13173,-0.04837,0.31183,0.2861,0.26038,0.054545,0.15746 -0.060119,-0.036304,-0.03895,-0.038068,0.9789,-0.054826,-0.029248,-0.035422,-0.036304,-0.054826,-0.049534,-0.031012,-0.03454,-0.040714,-0.045124,-0.04336,-0.041596,-0.029248,-0.03895,-0.032776,-0.046888,-0.056591,-0.037186,-0.03454,-0.032776 0.14165,0.059069,0.093072,0.034781,0.010492,0.12222,0.12222,0.10279,0.083357,0.10279,0.15136,0.16108,0.078499,0.088214,0.1125,0.16108,0.30681,-0.013796,-0.13524,-0.018653,-0.50441,-0.36354,-0.42184,-0.32954,-0.14495 0.016815,0.018424,0.01896,0.022713,0.96132,-0.046456,0.021641,0.019496,0.028879,-0.061737,-0.065223,-0.063882,-0.064686,-0.063614,-0.065223,-0.067635,-0.066563,-0.067635,-0.067099,-0.067904,-0.067904,-0.068708,-0.067904,-0.068976,-0.067099 -0.19373,-0.1914,-0.19207,-0.19373,-0.19373,-0.18475,-0.19207,-0.19373,-0.19207,-0.19373,0.19767,0.19468,0.19634,-0.19174,-0.19174,0.19701,0.19701,0.19634,0.19634,-0.18774,0.201,0.205,0.22164,0.2263,0.26291 0.42039,0.24165,0.24165,0.17016,0.2059,0.38464,0.17016,0.13441,0.027168,-0.11582,-0.11582,0.098662,0.098662,-0.080074,-0.18731,-0.22306,-0.11582,-0.080074,-0.11582,-0.18731,-0.25881,-0.22306,-0.0085793,-0.22306,-0.25881 -0.038216,-0.071161,0.060618,0.25829,0.52184,-0.20294,-0.0052711,-0.10411,0.093563,0.39007,-0.038216,-0.20294,-0.071161,-0.038216,0.32418,-0.20294,-0.16999,-0.23588,-0.038216,0.29123,-0.16999,-0.13705,-0.13705,-0.071161,-0.0052711 -0.39878,0.082321,0.0021382,0.0021382,0.10905,-0.31859,-0.078045,0.10905,0.055594,0.055594,-0.37205,0.055594,0.1625,0.055594,0.26941,-0.29187,-0.051317,0.082321,0.18923,0.1625,-0.37205,-0.078045,0.3496,0.1625,0.055594 0.18252,0.24752,0.14352,0.02652,-0.10348,0.15652,0.18252,0.078521,-0.10348,-0.10348,0.16952,0.22152,0.02652,-0.14248,-0.14248,0.14352,0.15652,0.02652,-0.14248,-0.22048,0.14352,0.091522,-0.14248,-0.22048,-0.67549 -0.12319,-0.12319,-0.1251,-0.1251,0.28616,-0.12482,-0.12428,-0.12564,-0.12591,0.33349,-0.12401,-0.12374,-0.12618,-0.12945,0.3275,-0.12428,-0.12292,-0.12374,0.3256,0.32805,-0.12401,-0.12346,-0.12428,0.32179,0.3207 -0.26583,-0.18624,-0.027061,0.13212,0.17192,-0.30563,-0.14645,0.05253,0.17192,0.2913,-0.18624,-0.027061,0.21171,0.2913,-0.027061,-0.34542,0.05253,-0.10665,0.05253,0.3311,-0.22604,-0.26583,0.13212,-0.027061,0.25151 -0.36399,-0.33758,-0.33069,-0.30658,-0.30199,-0.30773,-0.28247,0.12401,0.10449,0.11482,0.16994,0.1619,0.11138,0.10793,0.13434,0.14812,0.1332,0.10449,0.11253,0.11138,0.14583,0.13779,0.11138,0.096452,0.10105 -0.13162,-0.13297,-0.1323,-0.1323,-0.13263,-0.12621,-0.1029,-0.11303,-0.13196,-0.13297,-0.1181,-0.072481,-0.074509,-0.13399,-0.13263,0.13468,-0.074171,-0.07755,0.13366,0.134,0.13501,0.134,0.13366,0.57096,0.57636 -0.28303,-0.28335,-0.28292,-0.28357,-0.28433,0.11498,0.11356,-0.2815,-0.28314,-0.28281,0.10964,0.10823,0.11302,0.11291,0.29096,0.10725,0.10627,0.10997,0.11215,0.29096,0.11051,0.10311,0.10311,0.12978,0.12825 0.15258,0.14781,0.14076,0.046261,0.045125,0.14826,0.13077,0.13509,-0.31312,-0.31153,0.14463,0.15031,0.14054,-0.30994,-0.31494,0.13849,0.13849,0.14599,-0.31744,-0.3163,0.14031,0.14099,0.1369,-0.31721,-0.022799 -0.16593,-0.17969,-0.12811,0.465,0.50798,-0.15046,-0.12295,-0.1625,0.097099,0.48907,-0.14015,-0.076537,-0.10061,0.050681,0.11429,-0.13499,-0.13843,0.0077019,0.055839,0.062715,-0.1092,-0.10404,-0.090291,-0.090291,0.043804 -0.49216,-0.48031,-0.37958,-0.187,-0.21663,-0.23737,0.10334,0.073711,0.082599,0.13593,0.044085,0.085562,0.15963,0.061861,0.14185,0.044085,0.18926,0.15074,0.11223,0.14185,0.064823,0.14185,0.14185,0.052973,0.064823 -0.16549,-0.28041,-0.2038,-0.31872,-0.2038,-0.16549,-0.2038,-0.16549,-0.16549,0.026049,0.14097,-0.16549,-0.012258,-0.012258,0.10266,0.17928,0.40913,-0.012258,-0.050566,0.10266,0.2942,0.2942,0.33251,0.10266,0.14097 0.43799,0.48724,0.13847,0.03081,-0.075453,0.43644,0.13925,0.031121,0.030655,-0.073278,0.15416,-0.079337,-0.079492,0.14282,-0.13247,-0.16851,-0.16851,-0.16789,-0.16571,-0.13433,-0.15282,-0.15297,-0.15779,-0.1595,-0.1609 -0.044297,-0.039581,-0.036751,-0.039109,0.97966,-0.045712,-0.041939,-0.037694,-0.039581,-0.044297,-0.045712,-0.042883,-0.036751,-0.037223,-0.038166,-0.043826,-0.045241,-0.038166,-0.035808,-0.036751,-0.044769,-0.044769,-0.044297,-0.039109,-0.037223 0.40778,0.29513,-0.058451,-0.12103,-0.18987,0.57675,0.2701,-0.06158,-0.17736,-0.17423,0.10113,0.17623,-0.15858,-0.18987,-0.16484,0.044808,-0.011515,-0.074097,-0.052193,-0.039677,0.076099,-0.055322,-0.16484,-0.20239,-0.052193 -0.023854,-0.025532,-0.022456,-0.023295,0.96979,-0.03364,-0.024693,-0.027489,-0.023295,-0.025532,-0.035037,-0.030844,-0.03364,-0.035317,-0.036995,-0.014348,-0.030844,-0.035317,-0.047339,-0.049296,-0.035876,-0.045662,-0.043984,-0.13261,-0.13289 0.020509,0.031616,0.17637,0.28521,0.060122,0.028654,0.030875,0.27114,0.27632,0.061232,0.029765,0.029394,0.27151,0.059381,0.063083,-0.10795,0.030135,0.025692,0.063083,0.059381,-0.35155,-0.35155,-0.35229,-0.35451,-0.35562 -0.094222,-0.094665,-0.095107,-0.095992,-0.095329,-0.094001,-0.092895,-0.095107,-0.097541,-0.093116,-0.094222,-0.094001,-0.094665,-0.09555,0.11286,-0.095107,-0.095992,-0.09732,0.42857,0.51264,-0.094444,-0.095329,-0.097762,0.42525,0.42304 0.184,0.19886,0.22515,0.22972,0.28572,0.18629,0.184,0.2,0.20572,-0.13714,0.16343,-0.19086,0.19657,0.21715,-0.14743,-0.19657,-0.19657,-0.20229,-0.21372,-0.18286,-0.19543,-0.20229,-0.20229,-0.21143,-0.19772 -0.38514,0.078835,0.061265,0.05671,0.063651,-0.38579,0.085126,0.082523,0.073846,0.069725,-0.39187,0.091633,0.074714,0.076015,0.076883,-0.39035,0.25193,0.10595,0.07992,0.08339,-0.39122,0.24608,0.07428,0.10378,0.10812 -0.058058,0.074991,0.099182,0.10725,0.24433,-0.37254,-0.32012,0.054832,0.099182,0.16369,-0.36447,-0.28787,0.074991,0.099182,0.16772,-0.2919,0.010483,0.083055,0.13144,0.12337,-0.38867,0.083055,0.066928,0.23626,0.16369 -0.29344,-0.29573,0.11469,0.099784,0.10666,-0.21548,-0.19943,0.15596,0.10666,0.10552,-0.20631,-0.19026,0.14335,0.13762,0.11354,-0.20516,-0.20058,0.14449,0.52511,0.11583,-0.20402,-0.2109,0.12844,0.049342,0.1743 -0.25361,-0.26133,0.30454,0.10906,0.12706,-0.24332,-0.23303,0.1425,0.13221,0.15278,-0.17902,-0.16873,0.047327,0.06276,0.25567,-0.11214,-0.21246,-0.032409,-0.037553,0.3817,-0.14301,-0.18416,-0.027264,-0.047841,0.42028 -0.088981,-0.028202,-0.040358,-0.088981,-0.064669,-0.088981,-0.088981,-0.14976,-0.064669,-0.10114,-0.088981,-0.12545,-0.12545,0.12983,0.16629,-0.088981,-0.064669,-0.13761,0.14198,0.44588,-0.052514,-0.12545,-0.14976,0.15414,0.72547 -0.22275,-0.22173,0.16572,0.16521,0.16572,-0.22635,0.16264,0.16264,0.16264,0.16161,-0.22635,-0.22661,0.16213,0.15982,0.15982,-0.22532,-0.22429,-0.21967,0.17676,0.2258,-0.22763,-0.22815,-0.22275,0.22041,0.22067 0.18663,0.19182,0.18922,-0.19915,-0.19395,0.19572,0.18922,0.19182,0.19702,-0.20954,0.19312,0.18922,-0.20824,-0.22253,-0.21473,0.19312,0.18792,-0.22642,-0.20694,-0.21733,0.19572,0.19572,-0.20434,-0.19525,-0.19785 0.15701,0.19811,0.13646,0.074805,0.054254,0.21866,0.13646,0.095356,-0.0485,-0.0485,0.21866,0.11591,-0.0073983,-0.23346,-0.37731,0.17756,0.095356,-0.11015,-0.37731,-0.45952,0.23921,0.15701,-0.0073983,-0.19236,-0.21291 -0.13655,-0.14469,0.1658,0.1658,0.34198,-0.14701,-0.14934,0.16348,0.16406,0.33093,-0.14817,-0.14178,-0.14178,-0.14817,0.32977,-0.14585,-0.14701,-0.1441,-0.13945,0.3321,-0.14527,-0.14585,-0.14876,-0.14934,0.32919 0.29549,0.30459,0.20061,-0.13732,-0.13559,0.30503,0.30633,-0.13732,-0.13646,-0.13689,0.30243,0.30156,-0.13429,-0.13342,-0.13862,0.30546,-0.13949,-0.13386,-0.13559,-0.13516,-0.13992,-0.13906,-0.13516,-0.13689,-0.13646 -0.082802,-0.082802,-0.090025,-0.087425,-0.095081,0.16797,-0.093059,-0.092336,-0.090603,-0.094648,0.16841,-0.093925,-0.096237,-0.098115,-0.091181,0.3809,-0.091325,-0.097826,-0.098404,-0.089447,0.55931,0.5622,-0.094792,-0.092336,-0.086414 -0.24582,-0.24764,-0.24461,-0.24582,-0.24704,-0.24643,-0.24522,-0.24643,-0.010599,0.20126,-0.24704,-0.0014933,0.0003278,-0.0084742,0.20186,0.20247,0.0012383,0.20429,0.20247,0.20247,0.20338,0.20338,0.2055,0.20368,0.20429 0.25174,0.25612,0.3072,-0.16205,-0.16718,0.23012,0.22911,0.22894,-0.16365,-0.16601,0.22801,0.22826,-0.15793,-0.16516,-0.16601,0.22885,-0.15675,-0.15919,-0.16483,-0.1666,0.25393,-0.15666,-0.15995,-0.16483,-0.1655 0.3382,0.43773,0.41561,-0.010175,-0.093121,0.19995,0.38244,0.0064145,-0.071002,-0.09865,0.23313,0.045123,-0.1263,-0.10971,-0.10418,-0.082061,-0.1263,-0.17607,-0.14842,-0.1263,-0.14289,-0.17607,-0.14842,-0.17054,-0.14842 0.154,0.15281,0.154,0.154,-0.24932,0.1534,0.154,0.154,0.15638,-0.24694,0.15757,0.15519,0.16054,-0.24396,-0.24872,0.16292,0.18612,-0.23028,-0.2404,-0.24872,0.19623,0.19385,-0.2404,-0.24694,-0.24932 0.19034,0.16568,0.067063,0.067063,0.16568,0.16568,0.19034,0.19034,0.14103,0.11637,0.19034,0.14103,0.067063,0.14103,-0.031559,-0.13018,-0.13018,0.067063,-0.17949,0.017752,-0.54932,-0.35208,-0.13018,-0.25346,-0.32742 -0.20504,-0.20708,-0.20844,-0.20708,-0.20844,-0.20572,-0.20572,-0.20776,-0.20776,-0.20776,0.024457,0.026494,0.029889,0.30013,0.31065,0.02955,0.024457,0.023099,0.3076,0.30896,0.025136,0.020723,0.025476,0.30658,0.3076 -0.1224,-0.1233,-0.12421,0.3624,0.30656,-0.12512,-0.12149,-0.1233,0.35105,0.30475,-0.12603,-0.1233,-0.12421,-0.12694,0.29431,-0.12149,-0.1233,-0.1233,-0.13057,0.31156,-0.12149,-0.1233,-0.12784,-0.12875,0.30974 -0.039557,-0.036713,-0.036902,-0.033964,0.97941,-0.06373,-0.035196,-0.03586,-0.038324,-0.038135,-0.038419,-0.036902,-0.037566,-0.039272,-0.04041,-0.04496,-0.040599,-0.044012,-0.04278,-0.040884,-0.043254,-0.046098,-0.043822,-0.042685,-0.039367 0.15628,0.1443,0.14321,0.15084,0.20206,0.15519,0.1443,0.1443,0.14321,0.1443,0.15737,0.13667,0.15301,0.1443,-0.13253,0.24238,-0.30145,-0.14451,-0.15323,-0.17612,-0.32761,-0.32543,-0.30581,-0.29273,-0.20228 -0.042386,-0.040661,-0.046701,-0.050153,0.97931,-0.042386,-0.042386,-0.046701,-0.035483,-0.017362,-0.045838,-0.036346,-0.050153,-0.043249,-0.038072,-0.044112,-0.041524,-0.038935,-0.041524,-0.041524,-0.039798,-0.044112,-0.038935,-0.038935,-0.032031 0.33362,0.071845,0.072333,0.073113,-0.2674,0.064625,0.27586,0.31118,0.071259,-0.26681,0.06443,0.064137,0.27098,-0.26525,-0.26779,0.064625,0.14161,0.063747,-0.26564,-0.2672,0.063551,0.063259,0.062966,-0.26574,-0.2673 -0.12084,-0.11747,-0.1431,-0.11882,-0.14041,-0.13231,-0.12287,-0.1512,-0.14783,-0.12017,-0.099935,-0.035857,-0.11815,-0.12692,0.07139,-0.025739,-0.042602,0.026198,0.41337,0.43158,-0.016296,-0.044625,-0.027763,0.42888,0.48149 -0.022842,0.39869,0.31402,0.27979,0.25638,-0.094898,-0.053466,0.40589,0.29961,0.23836,-0.11111,-0.12012,-0.12012,-0.12192,-0.14173,-0.13273,-0.13813,-0.14173,-0.14894,-0.14354,-0.12552,-0.13273,-0.13993,-0.14714,-0.15615 -0.066688,-0.06884,-0.072068,-0.076372,-0.082828,-0.06615,-0.067764,-0.072606,-0.07691,-0.077986,-0.067764,-0.06884,-0.07422,-0.079062,0.46053,-0.064536,-0.070454,-0.075834,-0.080138,0.47344,-0.065612,-0.072606,-0.076372,-0.078524,0.66819 -0.041415,-0.032914,-0.033664,-0.034164,0.97921,-0.046666,-0.038165,-0.037415,-0.038415,-0.028163,-0.038915,-0.037665,-0.041415,-0.046916,-0.048666,-0.041415,-0.039665,-0.048166,-0.046666,-0.035164,-0.045916,-0.046916,-0.051666,-0.053667,-0.025413 -0.043731,-0.043046,-0.040306,-0.047842,0.97968,-0.042361,-0.040306,-0.038936,-0.043731,-0.031401,-0.039621,-0.040306,-0.039621,-0.038251,-0.042361,-0.041676,-0.042361,-0.043731,-0.039621,-0.038251,-0.041676,-0.040306,-0.043731,-0.040306,-0.036196 0.14632,0.15748,0.14421,0.18009,0.19487,-0.17728,0.143,0.15054,0.34446,0.34204,-0.17849,0.14451,0.15386,0.15898,0.15838,-0.20051,-0.20563,-0.20624,-0.20533,-0.20624,-0.20654,-0.20684,-0.20774,-0.20895,-0.20895 -0.12865,-0.11652,-0.12009,-0.11367,0.3138,-0.12223,-0.11938,-0.12509,-0.11509,0.3138,-0.12294,-0.12937,-0.12794,-0.12865,0.32165,-0.12794,-0.12509,-0.12509,0.31808,0.31808,-0.15649,-0.12152,-0.11724,0.33449,0.32308 -0.11588,-0.1126,-0.1025,-0.10905,0.3386,-0.11506,-0.11206,-0.10741,-0.10577,0.38475,-0.1167,-0.11342,-0.10987,0.3629,0.34734,-0.12134,-0.11561,-0.10823,-0.10577,0.34897,-0.1279,-0.12134,-0.10632,-0.10632,0.35061 -0.14666,-0.14666,-0.14627,-0.14512,-0.14512,-0.14704,-0.14589,-0.14436,-0.14589,-0.14474,-0.14436,-0.14282,-0.14474,-0.14512,-0.14206,0.50784,0.50669,0.13614,0.1576,0.13461,0.14457,0.15339,0.14112,0.15454,0.14036 -0.38006,-0.37851,-0.37644,-0.38006,-0.37541,0.21256,0.11904,0.14022,0.030173,0.031723,0.22444,0.18517,0.052907,0.042573,0.04929,0.23529,0.18827,0.054973,0.032757,0.022423,0.08804,0.065307,0.054457,0.04309,0.017773 0.55321,0.55564,-0.072307,-0.070099,-0.069657,0.51502,-0.07319,-0.072307,-0.072307,-0.071424,-0.074515,-0.073632,-0.074957,-0.07319,-0.071865,-0.076723,-0.075619,-0.075398,-0.073632,-0.07319,-0.077827,-0.078048,-0.076723,-0.074515,-0.072749 -0.039602,-0.062829,-0.081701,-0.099122,-0.11945,-0.054119,-0.054119,-0.067184,-0.10203,-0.10493,-0.036699,-0.064281,-0.096218,-0.090411,-0.077346,0.66447,0.070727,0.060565,-0.090411,-0.083153,0.64995,0.037338,0.0054003,-0.094767,-0.070088 0.055126,0.10563,0.12006,0.1345,0.15614,-0.20463,0.12728,0.098418,0.1345,0.14171,-0.36337,0.03348,0.11285,0.12728,0.14171,-0.38501,-0.22628,0.098418,0.1345,0.15614,-0.45717,-0.39223,-0.060321,0.091203,0.12006 -0.039615,0.018073,0.018953,-0.039615,0.97587,-0.047102,-0.048423,-0.048863,-0.052826,-0.040936,-0.047982,-0.048863,-0.051505,-0.047102,-0.040496,-0.048863,-0.048423,-0.048423,-0.044459,-0.041377,-0.042258,-0.04578,-0.052826,-0.044019,-0.043138 -0.28973,0.11436,0.12703,0.13068,0.14047,-0.28992,0.1158,0.12281,0.13183,0.12511,-0.33283,0.11561,0.11849,0.12118,0.12665,-0.33187,-0.33225,0.11955,0.11849,0.12847,-0.33177,-0.33254,0.12031,0.12223,0.14181 -0.26995,-0.041179,-0.041179,0.073208,0.37824,-0.38434,0.11134,0.22572,0.11134,0.22572,-0.30808,-0.1937,0.11134,0.035079,0.14947,-0.11744,-0.30808,-0.11744,0.22572,0.1876,-0.26995,-0.0030503,-0.0030503,-0.0030503,0.22572 -0.21877,-0.31943,0.21743,0.049659,0.18387,-0.25232,-0.25232,-0.051001,0.18387,0.15032,-0.11811,-0.21877,-0.15166,0.31808,0.35164,-0.11811,-0.051001,0.11677,0.15032,0.18387,-0.11811,-0.35298,0.016106,0.15032,0.15032 0.28728,0.33664,0.23792,0.28728,0.43536,-0.058245,0.040475,-0.058245,0.089835,0.16388,0.040475,-0.058245,-0.13228,0.040475,-0.058245,-0.231,-0.058245,-0.058245,0.040475,-0.20632,-0.42844,-0.20632,-0.15696,-0.082925,-0.20632 -0.14244,-0.15092,0.010175,0.26454,0.28998,-0.16788,0.018653,-0.083093,0.25606,0.24758,-0.14244,-0.03222,-0.040698,-0.083093,0.19671,-0.16788,-0.2018,-0.15092,0.078005,0.30693,-0.19332,-0.31202,-0.11701,-0.14244,0.45955 0.19168,-0.085754,-0.11098,-0.26231,-0.41364,0.26735,0.015133,-0.060532,-0.11098,-0.33797,0.26735,-0.085754,0.040355,-0.1362,-0.28753,0.26735,0.11602,0.19168,0.040355,-0.16142,0.19168,0.19168,0.26735,0.11602,-0.11098 0.030477,0.0065839,-0.11288,0.20038,0.90391,-0.014655,-0.086334,-0.091644,-0.035893,-0.070405,-0.049167,-0.059786,-0.10757,-0.022619,0.17118,-0.019964,0.0065839,-0.065096,-0.096954,-0.10757,-0.038548,-0.059786,-0.054477,-0.1235,-0.10226 0.38835,0.40042,0.32914,0.025744,0.02869,0.020148,0.32737,0.32973,0.024861,0.024861,0.019853,0.018675,0.024861,0.025744,-0.18104,-0.17897,-0.17838,-0.17897,-0.18162,-0.18251,-0.18045,-0.18074,-0.18104,-0.1828,-0.18192 0.11372,0.11148,0.11045,0.17405,0.42559,0.11495,0.11004,0.11424,0.10176,0.099205,0.10892,0.11015,0.10728,0.10094,0.10033,0.10749,0.10565,-0.27657,-0.27718,-0.27637,-0.27729,-0.27729,-0.27729,-0.27698,-0.27729 -0.19775,-0.03528,0.10398,0.12719,0.26646,-0.15133,-0.012069,0.080772,0.1504,0.17361,-0.24417,-0.081701,0.057562,0.12719,0.19682,-0.29059,0.011141,-0.03528,0.17361,0.17361,-0.68517,-0.12812,0.080772,0.011141,0.12719 -0.037692,-0.062285,-0.076524,-0.21373,-0.23055,0.29626,0.29885,-0.13736,-0.18266,-0.21761,0.3092,0.28331,-0.14124,-0.15936,-0.20726,0.31956,0.24707,-0.12312,-0.1283,-0.18913,0.043853,0.21601,0.18365,0.08139,-0.17231 -0.043274,-0.041305,-0.039336,-0.039336,0.97951,-0.041797,-0.039336,-0.037367,-0.036383,-0.041305,-0.044258,-0.037367,-0.039336,-0.040321,-0.031953,-0.049672,-0.046227,-0.050657,-0.038352,-0.03343,-0.038352,-0.047211,-0.049672,-0.039336,-0.033922 -0.042495,-0.043429,-0.038058,-0.035956,0.97972,-0.044364,-0.041561,-0.042028,-0.040627,-0.038759,-0.043897,-0.042262,-0.042729,-0.041328,-0.039459,-0.042262,-0.042962,-0.038992,-0.038292,-0.037124,-0.046232,-0.042262,-0.039226,-0.037591,-0.037824 -0.048303,-0.036558,-0.03594,-0.038103,0.97969,-0.043976,-0.044594,-0.037794,-0.036558,-0.042121,-0.044285,-0.044285,-0.041503,-0.038103,-0.041812,-0.041812,-0.042739,-0.040576,-0.040576,-0.040576,-0.040267,-0.041812,-0.039958,-0.038721,-0.038721 -0.085062,-0.085633,-0.087631,-0.08706,-0.067645,-0.08706,-0.086489,-0.087917,-0.092485,0.45485,-0.087917,-0.08706,-0.087917,-0.091914,0.45685,-0.08706,-0.087346,-0.088202,-0.091914,0.45857,-0.08706,-0.087917,-0.089345,-0.091914,0.46228 0.33985,0.34343,0.22967,0.22161,0.21534,-0.13535,-0.1246,0.23505,0.3506,0.36045,-0.13445,-0.13266,-0.13445,-0.1358,-0.13624,-0.1358,-0.1358,-0.13804,-0.1358,-0.1358,-0.13624,-0.1358,-0.1358,-0.13669,-0.13669 -0.073489,-0.072279,-0.069859,-0.075505,0.56782,-0.080749,-0.081152,-0.067842,-0.070262,0.5654,-0.074295,-0.073489,-0.068649,-0.069052,0.48796,-0.079135,-0.073892,-0.075909,-0.075909,-0.076715,-0.075505,-0.075102,-0.072682,-0.073085,-0.066632 -0.12558,-0.12658,-0.12457,-0.12357,-0.1301,0.31846,-0.12407,-0.12156,-0.12407,-0.12859,0.31997,0.32047,-0.12256,-0.12307,-0.12759,0.32198,0.31947,-0.12106,-0.12507,-0.12708,0.32097,0.32349,-0.11905,-0.12206,-0.12859 -0.32367,-0.31827,-0.32259,-0.32043,-0.32205,0.11396,0.12422,0.13233,-0.31827,-0.31827,0.11666,0.12044,0.12314,0.1199,0.11882,0.11558,0.12206,0.12638,0.12206,0.13125,0.11936,0.12098,0.14853,0.13611,0.13179 -0.098672,-0.095187,-0.098091,-0.097801,-0.091993,0.56464,-0.095187,-0.080376,-0.073115,-0.090831,0.46851,-0.078053,-0.078343,-0.061208,-0.089669,0.38662,-0.079214,-0.078924,-0.082118,-0.083861,0.39242,-0.093445,-0.090541,-0.089669,-0.085894 0.28607,0.27153,0.20174,0.10142,0.14795,0.22937,0.2032,0.20029,0.17993,0.15376,0.20465,0.20901,-0.21843,-0.21407,-0.25914,-0.065774,-0.10939,-0.20099,-0.25623,-0.25187,-0.097759,-0.10212,-0.15155,-0.23297,-0.22861 0.27155,0.14652,0.26229,0.16967,0.15578,0.22987,0.19283,0.23914,0.30397,0.15115,-0.094284,-0.1267,-0.22395,-0.098915,0.012225,-0.17764,-0.29341,-0.29341,-0.19153,0.012225,-0.2471,-0.29341,-0.20542,0.030749,0.067795 0.29513,0.27448,0.27324,0.30338,-0.20204,0.30545,0.28645,0.27283,0.2976,-0.015807,-0.13845,-0.13886,-0.13927,-0.13762,-0.13597,-0.14134,-0.1401,-0.13968,-0.1401,-0.13927,-0.1401,-0.13927,-0.1401,-0.14051,-0.1401 0.089849,-0.086462,-0.077497,-0.070524,-0.064548,0.37274,-0.061559,-0.083474,-0.078493,-0.3315,0.47534,-0.076501,-0.069528,-0.069528,-0.32752,0.41259,-0.095427,-0.094431,0.0091642,0.034067,0.39267,-0.067536,-0.06654,-0.03068,-0.034665 -0.35703,-0.35654,-0.35183,-0.35009,-0.35703,0.12349,0.1064,-0.34291,0.12523,-0.011073,0.11631,0.1054,0.15769,0.11978,0.13886,0.11631,0.10788,0.11333,0.11606,0.11333,0.11333,0.11234,0.11383,0.11309,0.11383 -0.31986,-0.29154,-0.29469,-0.29311,-0.020896,-0.29311,-0.29626,-0.30098,0.087675,-0.02247,0.23401,0.18523,0.13803,0.090822,0.024735,0.25132,0.18681,0.15219,0.093969,0.037323,0.23558,0.18366,0.13645,0.10341,-0.0083081 0.35713,-0.13753,-0.14044,-0.090682,-0.14044,0.34697,-0.13862,-0.14044,-0.14407,-0.14407,0.34588,-0.13644,-0.10812,-0.085234,-0.081602,0.35423,0.34733,-0.14008,-0.086687,-0.015138,0.35023,-0.13354,-0.1408,-0.084871,-0.012959 0.18215,0.18101,-0.22776,-0.22533,-0.22516,0.17841,0.17744,-0.22841,-0.22679,-0.22614,0.17727,0.17679,0.17646,0.1776,-0.22549,0.17695,0.17516,0.1763,-0.22354,-0.225,0.1763,0.17516,0.17483,-0.22289,-0.22533 -0.21306,-0.21259,-0.21539,0.14527,0.14899,-0.21073,-0.21306,-0.22237,0.14759,0.14992,-0.22097,-0.21399,0.14945,0.1462,0.15132,-0.21725,-0.21818,0.14713,0.1462,0.14527,-0.22143,0.14899,0.14992,0.15876,0.44402 0.22604,-0.13423,-0.12629,-0.13712,-0.06781,0.24626,0.2477,-0.14362,-0.13134,-0.13929,0.25059,-0.14867,-0.13279,-0.13279,-0.14578,0.26719,0.31846,-0.12846,-0.14723,-0.14578,0.27514,0.4513,-0.13784,-0.14001,-0.14362 -0.10593,-0.042371,-0.042371,-0.084743,0.25423,-0.16949,-0.042371,-0.10593,-0.12711,0.42371,-0.1483,-0.021186,-0.10593,-0.084743,0.36016,-0.042371,-0.12711,-0.10593,-0.1483,0.25423,-0.10593,-0.10593,-0.10593,-0.063557,0.5932 -0.39461,-0.096952,0.22197,0.030616,0.13692,-0.52218,0.11566,0.094401,0.13692,-0.033168,-0.39461,0.073139,0.17945,0.15818,0.051878,-0.26704,0.073139,0.17945,0.094401,0.030616,-0.20326,-0.075691,0.13692,0.20071,0.073139 -0.18999,-0.19225,-0.19112,-0.19253,0.20072,-0.19281,-0.19281,-0.19479,0.20777,0.20524,-0.19253,-0.19281,0.20834,0.2106,0.20777,-0.19309,-0.19366,0.20834,0.20777,0.2089,-0.19338,-0.18604,0.21172,0.21172,0.2089 0.13005,0.13057,0.13283,0.12849,0.91063,-0.073773,-0.07169,-0.069085,-0.072905,-0.070995,-0.071169,-0.071169,-0.071169,-0.070821,-0.070127,-0.071169,-0.070474,-0.07169,-0.071863,-0.071863,-0.072037,-0.073078,-0.07221,-0.072731,-0.072558 -0.038612,-0.02959,-0.056655,-0.08823,-0.25964,-0.02508,-0.0070367,-0.020569,-0.083719,-0.2867,0.13731,0.1328,0.083178,-0.092741,-0.25964,0.23203,0.18692,0.15084,-0.065676,-0.25964,0.57034,0.32225,0.10573,-0.061165,-0.2867 -0.028311,0.0091594,-0.001249,-0.057455,0.97506,-0.047046,-0.040801,-0.026229,-0.036638,-0.013739,-0.05121,-0.053291,-0.047046,-0.059536,-0.019984,-0.053291,-0.05121,-0.053291,-0.067863,-0.059536,-0.044964,-0.055373,-0.057455,-0.049128,-0.0095758 -0.10107,0.18738,0.19063,0.18598,0.57895,-0.1034,-0.098752,-0.09643,0.18134,0.57848,-0.1034,-0.10247,-0.098752,-0.10154,-0.10154,-0.099681,-0.10618,-0.10015,-0.10293,-0.097823,-0.076456,-0.10433,-0.1034,-0.102,-0.10247 -0.1898,-0.19241,-0.19189,-0.19241,0.20738,-0.18902,-0.19267,-0.19163,0.20503,0.20608,-0.19085,-0.19475,0.20972,0.20738,0.21025,-0.19293,-0.19423,0.20764,0.2079,0.2092,-0.19267,-0.19267,0.20998,0.20842,0.20894 0.33544,0.32063,0.31749,0.31479,0.32242,-0.1286,-0.11649,0.31838,0.31524,-0.11693,-0.12142,-0.12411,-0.12232,-0.12367,-0.13085,-0.12456,-0.12367,-0.12456,-0.12726,-0.12501,-0.12815,-0.12771,-0.12726,-0.12591,-0.12591 -0.035427,-0.041664,-0.045228,-0.04701,0.97944,-0.038991,-0.036318,-0.041664,-0.039882,-0.031863,-0.046119,-0.035427,-0.039882,-0.043446,-0.036318,-0.04701,-0.041664,-0.037209,-0.047901,-0.033645,-0.049683,-0.048792,-0.041664,-0.043446,-0.02919 0.25602,0.25798,0.25915,-0.15506,-0.15577,0.2619,0.25751,0.26174,-0.15522,-0.16487,0.25931,0.29406,-0.16181,-0.15491,-0.16495,0.1597,-0.16557,-0.15663,-0.16377,-0.16526,0.15907,-0.16636,-0.16565,-0.16542,-0.16518 -0.10874,-0.11585,-0.11585,0.43758,0.41899,-0.11311,-0.11366,-0.11202,-0.10108,0.31782,-0.11038,-0.10983,-0.10382,-0.10218,0.31508,-0.11147,-0.11147,-0.1164,-0.11366,0.30743,-0.11093,-0.11475,-0.11585,-0.1153,0.31946 -0.13707,-0.13836,-0.13836,0.2897,0.28905,-0.13675,-0.13804,-0.13788,0.29115,0.29277,-0.13772,-0.13788,-0.1395,0.29067,0.29358,-0.13804,-0.13788,-0.13901,0.29293,0.29245,-0.13772,-0.13707,-0.13432,-0.13319,-0.13351 0.22149,0.25541,0.2728,-0.16804,-0.16783,0.24976,0.25395,0.28557,-0.16846,-0.16762,0.28431,0.25604,-0.16699,-0.16762,-0.16804,0.28327,-0.060398,-0.16511,-0.16762,-0.16888,-0.061864,-0.062492,-0.16595,-0.16762,-0.16804 0.13425,0.1301,0.13301,-0.29038,-0.29412,0.13384,0.1355,0.13425,-0.28996,-0.29245,0.13799,0.13758,0.13675,-0.28996,-0.29162,0.13965,0.13841,0.13841,-0.29038,-0.29329,0.14173,0.14132,0.14049,0.1409,0.13799 -0.078829,0.41301,0.35528,0.3579,0.65143,-0.081078,-0.082202,-0.082577,-0.082952,-0.081453,-0.085576,-0.081078,-0.082202,-0.082202,-0.083327,-0.087076,-0.083327,-0.084452,-0.083327,-0.083327,-0.09045,-0.091949,-0.09045,-0.09045,-0.089325 -0.11838,-0.12056,-0.1231,-0.1387,-0.14559,-0.12092,-0.11983,-0.14233,-0.15176,-0.14922,-0.11874,-0.12056,-0.14378,-0.15212,-0.15611,-0.11838,0.25169,0.37215,-0.14813,0.24226,0.3609,0.37469,0.22412,0.21976,0.24262 0.58183,0.51913,-0.074504,-0.07522,-0.071279,0.52164,-0.079878,-0.074504,-0.072354,-0.071279,-0.079519,-0.078803,-0.072354,-0.06913,-0.06913,-0.074862,-0.073429,-0.074504,-0.072712,-0.070205,-0.071279,-0.072712,-0.07737,-0.074504,-0.073071 0.65526,-0.016232,-0.030724,-0.10802,-0.10319,0.66975,-0.030724,-0.095941,-0.10319,-0.088694,0.024831,-0.0041545,-0.086279,-0.088694,-0.10077,0.034492,-0.025893,-0.076617,-0.076617,-0.098356,0.027246,-0.050048,-0.071786,-0.076617,-0.079033 0.32974,0.29682,0.29976,0.32436,0.37398,0.29837,-0.12433,-0.12409,-0.12458,0.31695,-0.12417,-0.12458,-0.12376,-0.12449,-0.1249,-0.12425,-0.12474,-0.12433,-0.12458,-0.12449,-0.12409,-0.12482,-0.12482,-0.12425,-0.12474 -0.03962,-0.03962,-0.04202,-0.050419,0.97968,-0.03782,-0.03782,-0.04202,-0.04502,-0.03902,-0.04022,-0.03962,-0.04202,-0.04202,-0.046219,-0.03782,-0.034821,-0.03782,-0.04202,-0.04202,-0.03962,-0.04202,-0.03842,-0.03962,-0.04202 -0.042314,-0.038536,-0.037906,-0.042314,0.97964,-0.044203,-0.042314,-0.044833,-0.040425,-0.039795,-0.042314,-0.039795,-0.043573,-0.042944,-0.038536,-0.044203,-0.037277,-0.039795,-0.036017,-0.041684,-0.036017,-0.037277,-0.037906,-0.037277,-0.052389 -0.05407,-0.051648,-0.040989,-0.036144,0.35776,-0.053586,-0.055524,-0.043411,-0.036628,0.36551,-0.056977,-0.051648,-0.044865,-0.16502,0.28169,-0.056008,-0.16647,-0.15921,-0.1689,0.46047,-0.16599,-0.16744,-0.16599,-0.16938,0.44448 -0.18238,-0.18238,-0.18238,-0.18963,-0.1679,-0.17474,-0.18399,-0.18238,-0.1856,0.14925,-0.1691,-0.18037,-0.18238,-0.18399,0.13919,0.13798,0.13235,0.37464,0.14241,0.13637,0.35532,0.3682,0.13758,0.13718,0.13678 0.60946,0.079644,-0.061068,-0.061728,-0.076923,0.61012,-0.13506,-0.13968,-0.141,-0.090796,0.11928,-0.12118,-0.1344,-0.12449,-0.11854,0.12126,-0.07362,-0.045213,-0.10533,-0.11854,0.11862,0.11928,-0.054462,-0.080886,-0.094759 -0.11206,-0.13062,-0.13062,-0.037849,-0.14917,-0.074957,-0.037849,0.017812,-0.037849,-0.037849,-0.056403,-0.056403,-0.18628,-0.037849,0.092026,-0.13062,-0.11206,-0.16773,0.31467,0.53731,-0.11206,-0.019296,-0.13062,0.20335,0.59298 -0.24752,-0.22362,-0.13905,-0.085741,-0.067358,-0.17766,-0.14825,-0.11148,-0.082065,0.30215,-0.096772,-0.10413,-0.074711,0.29848,0.30951,-0.10964,-0.10964,-0.094933,0.32238,0.33524,-0.11516,-0.12435,-0.083903,0.32789,0.30032 -0.2582,-0.25146,-0.11476,-0.14502,-0.14666,-0.26294,0.029774,-0.14593,-0.14538,-0.14702,-0.2613,0.12637,-0.11294,-0.11804,-0.14775,0.1364,0.44807,0.28403,0.13184,0.13257,0.13421,0.27783,0.28275,0.13549,0.13804 0.39763,0.36418,-0.082564,-0.099287,-0.087342,0.38807,0.34985,-0.046729,-0.096898,-0.10407,0.43107,-0.089731,-0.056285,-0.04434,-0.10645,-0.089731,-0.14707,-0.15185,-0.10884,-0.1184,0.099001,-0.13034,-0.15901,-0.14468,-0.16618 0.1524,0.15031,0.14266,0.13536,0.038367,0.15309,0.14579,0.14058,0.13397,0.11972,0.1444,0.14197,0.14058,0.1305,0.13154,-0.28947,-0.28982,-0.28634,0.12806,0.18716,-0.28912,-0.29121,-0.28947,-0.29156,-0.28947 0.12209,0.14402,0.17472,0.17604,-0.26652,0.12209,0.13876,0.17253,0.17121,-0.26081,0.16595,0.12297,0.17648,-0.26388,-0.26915,0.17867,0.12692,0.11113,-0.26257,-0.26564,0.13613,0.14972,-0.26257,-0.27002,-0.26827 -0.077803,-0.082409,-0.089944,-0.096224,0.59665,-0.077385,-0.070686,-0.081571,-0.089526,0.59456,-0.06943,-0.070686,-0.068174,-0.095387,0.41161,-0.058545,-0.071523,-0.072361,-0.069012,-0.072779,-0.029239,-0.058545,-0.066081,-0.068174,-0.067337 0.095772,-0.071272,0.095772,-0.015591,0.26282,-0.099112,0.01225,0.01225,0.095772,0.095772,-0.26616,-0.23832,-0.071272,0.20713,0.26282,-0.294,-0.26616,-0.099112,0.12361,0.34634,-0.34968,-0.26616,-0.071272,0.17929,0.3185 -0.13956,-0.15257,-0.15487,-0.13191,0.22626,-0.15257,-0.15257,-0.14339,-0.16099,0.2232,-0.15487,-0.15564,-0.14263,0.27218,0.26529,-0.1587,-0.15411,-0.15564,0.28136,0.2783,-0.15564,-0.12655,0.26529,0.29284,0.28749 0.039981,-0.27643,-0.27643,-0.2752,-0.27551,0.036915,0.043353,-0.27704,-0.27766,-0.27827,0.054084,0.072173,0.064815,0.064509,-0.27306,0.069414,0.0734,0.20309,0.20095,0.2037,0.22394,0.22701,0.21842,0.208,0.20585 -0.12549,-0.12283,-0.12336,-0.12603,0.33126,-0.12496,-0.12283,-0.12256,-0.12229,0.33233,-0.12469,-0.12363,-0.12176,-0.12309,0.31847,-0.12523,-0.12549,-0.12709,0.31874,0.31287,-0.12656,-0.12523,-0.13136,0.3158,0.31501 0.4731,0.21081,0.006652,0.11752,-0.15965,0.40685,-0.040669,-0.031205,-0.11233,-0.19345,0.35142,-0.024445,-0.046077,-0.092046,-0.17722,0.33384,-0.054189,-0.15289,-0.12179,-0.13802,-0.10151,0.11752,-0.15154,-0.23131,-0.18939 -0.1587,-0.15457,-0.15339,-0.15811,0.28259,-0.13628,-0.13687,-0.14395,0.29793,0.28672,-0.12979,-0.12743,-0.12861,0.29911,0.28731,-0.13156,-0.12389,-0.1233,-0.13215,0.28495,-0.13569,-0.13038,-0.12448,0.30147,0.28908 -0.14896,-0.1488,-0.14865,-0.1502,0.27307,-0.14896,-0.14927,-0.1502,-0.15128,0.27493,-0.14927,-0.14896,-0.15221,0.26827,0.27586,-0.14927,-0.1502,-0.15298,0.263,0.27369,-0.14927,-0.15082,0.25526,0.26192,0.25324 -0.33802,-0.32586,-0.19515,-0.049244,0.31856,-0.31978,-0.20731,-0.027965,-0.027965,0.17874,-0.19819,-0.067482,0.081465,0.15442,0.45839,-0.067482,-0.064442,-0.031005,0.10274,0.28817,-0.049244,0.01763,-0.00060794,0.19089,0.17874 -0.040411,-0.042885,-0.040411,-0.042885,0.97977,-0.042885,-0.040961,-0.040411,-0.042336,-0.041511,-0.04371,-0.039312,-0.042061,-0.038487,-0.040961,-0.041236,-0.040411,-0.041511,-0.037662,-0.038487,-0.041511,-0.041236,-0.041511,-0.038487,-0.038487 0.15559,0.12111,0.10883,-0.14776,-0.13256,0.16319,0.13922,0.059734,0.029926,-0.13373,0.17838,0.099479,0.044538,0.031095,-0.57326,0.17546,0.10006,0.057396,0.032848,-0.56859,0.22164,0.069086,0.05915,-0.13957,-0.15126 0.40508,-0.12792,-0.12792,-0.23452,-0.12792,0.049747,0.049747,0.049747,-0.12792,-0.12792,0.40508,0.15635,-0.056854,-0.12792,-0.12792,0.15635,0.29848,0.049747,-0.23452,-0.12792,0.40508,-0.056854,0.049747,-0.23452,-0.23452 -0.13408,-0.1343,-0.1343,-0.13386,-0.13231,-0.1332,-0.13474,-0.13408,-0.13408,-0.12945,-0.13408,-0.13386,-0.13452,-0.13231,-0.12614,0.34666,0.34865,0.35041,-0.0074977,-0.038591,0.34909,0.34975,0.34975,-0.0099235,-0.043002 -0.20609,-0.20685,-0.20747,-0.20762,-0.20778,-0.20701,-0.20839,-0.20716,-0.20793,-0.20808,-0.20901,0.20164,0.20287,0.20564,0.20794,-0.20808,0.19856,0.19779,0.19687,0.19641,0.19764,0.19779,0.19748,0.14704,0.14381 0.21137,0.20262,-0.22689,-0.22765,-0.22271,0.21289,0.20034,0.2011,-0.22613,-0.22385,0.21289,0.2011,0.19501,-0.1645,-0.21396,0.21518,0.20833,0.19958,-0.16222,-0.15879,0.22164,-0.16831,-0.16374,-0.16222,-0.16108 -0.32183,-0.31936,-0.12284,-0.12367,-0.12284,-0.32245,-0.31956,-0.12181,-0.12284,-0.12222,-0.32265,0.17389,0.17719,0.1741,0.17843,0.14564,0.15265,0.17471,0.17678,0.1809,0.15595,0.14997,0.15224,0.17492,0.17471 -0.16139,-0.13298,0.0016151,0.16911,0.18556,-0.16289,-0.18532,-0.05671,-0.074656,0.29025,-0.13148,-0.17934,0.01657,-0.089611,0.36353,-0.17934,-0.14345,-0.12999,0.34558,0.39344,-0.12849,-0.076151,-0.17037,-0.13298,0.36951 -0.045979,-0.037546,-0.042606,-0.036702,0.97953,-0.045979,-0.040919,-0.040919,-0.042606,-0.042606,-0.045136,-0.040076,-0.042606,-0.038389,-0.035859,-0.044293,-0.035859,-0.049353,-0.029956,-0.039232,-0.051039,-0.035016,-0.042606,-0.037546,-0.036702 0.19137,-0.1779,-0.20705,-0.28479,-0.33338,0.20433,-0.022415,-0.13579,-0.2362,-0.31718,0.20109,0.20433,-0.054808,-0.15522,-0.19085,0.20109,0.19137,0.19461,-0.041851,-0.18114,0.20433,0.20757,0.20433,0.19785,0.13631 -0.18107,-0.17877,-0.17762,-0.16956,-0.14999,-0.17071,-0.16035,-0.13157,-0.13272,-0.14193,-0.12926,-0.13502,-0.13847,-0.14423,0.26677,-0.14078,-0.10969,0.27368,0.26217,0.26217,0.26447,0.27368,0.26217,0.26217,0.26447 0.2585,0.2585,0.3546,0.30655,0.4507,-0.10186,0.066308,0.042283,0.066308,0.066308,-0.19796,-0.053815,0.042283,0.018259,-0.10186,-0.34211,-0.17394,0.018259,-0.053815,-0.10186,-0.29406,-0.31809,-0.07784,-0.053815,-0.07784 -0.13191,-0.13191,-0.13156,-0.13191,-0.13034,-0.13138,-0.13121,-0.13086,-0.13051,-0.13016,-0.12859,-0.13016,-0.12999,-0.13051,-0.12947,0.35933,0.35811,0.30403,-0.12755,-0.12894,0.34903,0.30246,0.36229,0.09173,0.089985 -0.35321,0.10981,0.11007,0.11386,0.11425,-0.35647,-0.35699,0.10902,0.11137,0.11503,-0.35621,0.10941,0.11281,0.11529,0.11399,-0.35647,0.11059,0.11386,0.11542,0.11568,-0.35595,0.11137,0.11046,0.11255,0.11046 -0.13349,-0.11323,-0.10943,-0.12209,-0.08727,-0.13349,-0.094867,-0.068909,-0.092335,-0.099299,-0.12462,-0.088536,-0.031555,-0.098666,-0.11386,-0.10246,-0.089169,-0.035354,0.43632,0.43442,-0.1069,0.023527,0.027959,0.46608,0.45722 0.46859,0.30511,-0.086912,-0.096921,-0.15197,0.46692,-0.062723,-0.079405,-0.11027,-0.13445,0.096587,-0.069396,-0.07023,-0.14113,-0.082741,0.093251,-0.062723,-0.080239,-0.15447,-0.10776,0.48694,-0.069396,-0.067728,-0.15364,-0.13529 -0.31368,-0.3194,-0.32238,-0.32123,-0.32307,0.11685,0.1228,0.12601,-0.32261,-0.32215,0.12417,0.12623,0.13081,0.12761,0.12166,0.12578,0.12509,0.12143,0.12074,0.12234,0.13356,0.13425,0.12211,0.12166,0.12143 -0.066365,-0.03579,-0.037038,-0.033295,0.97877,-0.066988,-0.038286,-0.033295,-0.029551,-0.03579,-0.045774,-0.038286,-0.039534,-0.032047,-0.033295,-0.039534,-0.043278,-0.047022,-0.03579,-0.040782,-0.039534,-0.04827,-0.048894,-0.038286,-0.032047 -0.28767,-0.28333,-0.20418,-0.21827,-0.21881,-0.026891,-0.29363,-0.083275,-0.21177,-0.22207,0.19268,0.19214,0.19593,0.17967,-0.21881,0.19648,0.19214,0.17208,0.18943,0.19648,-0.13315,0.17642,0.14606,0.18834,0.18401 -0.35731,0.27521,0.016883,0.026341,0.15403,-0.34903,0.0097893,0.012154,0.014518,0.13984,-0.35731,-0.0026247,0.0056513,0.15698,0.14339,-0.35554,-0.012674,0.0015133,0.16112,0.1623,-0.36972,-0.012083,0.0056513,0.28053,0.25038 0.30495,0.24368,0.24368,0.19208,0.21788,0.14209,0.15015,0.18563,0.19046,0.19046,0.12274,-0.17557,-0.18202,-0.18202,-0.17718,0.12597,-0.20137,-0.23684,-0.23684,-0.22233,0.13564,-0.17879,-0.2062,-0.21588,-0.23039 -0.042098,0.4799,0.44039,0.43475,0.44039,-0.11828,-0.10699,-0.095709,-0.10135,-0.10417,-0.10982,-0.1211,-0.1211,-0.13239,-0.13521,-0.10699,-0.10135,-0.11264,-0.11264,-0.092887,-0.042098,-0.0054175,-0.0082391,-0.0025959,-0.022347 0.26025,0.20305,0.19898,0.2018,0.19929,0.23336,0.25743,0.24462,0.2093,-0.16516,0.21367,0.25212,-0.17516,-0.17923,-0.17298,-0.17298,-0.17548,-0.17798,-0.18142,-0.1811,-0.17548,-0.17579,-0.17735,-0.1811,-0.18267 0.49361,0.38833,0.049932,-0.17567,-0.24334,0.14769,-0.11551,0.095052,0.012333,-0.23582,0.17777,-0.10047,-0.085426,-0.055347,-0.19822,0.34321,0.034892,-0.040307,-0.24334,-0.24334,0.17025,0.064972,0.0048127,-0.025267,-0.22078 0.22628,0.37256,0.39656,0.31313,0.30056,0.20342,0.26742,-0.12914,-0.11314,-0.11771,0.19428,-0.14171,-0.15428,-0.13142,-0.15085,-0.057141,-0.12457,-0.15542,-0.14857,-0.144,-0.16228,-0.12914,-0.12342,-0.14742,-0.144 -0.11639,-0.10865,0.019164,0.027297,0.43939,-0.12104,-0.1191,-0.11794,0.023037,0.44171,-0.12375,-0.1253,-0.1222,0.023037,0.01684,-0.12491,-0.1315,-0.13072,0.021875,0.43397,-0.13034,-0.13266,-0.13615,-0.13576,0.43009 0.10008,0.24037,0.28714,0.63787,0.38066,-0.040218,0.0065471,0.10008,0.076694,-0.086982,-0.040218,-0.20389,0.0065471,-0.11036,-0.20389,-0.0636,-0.0636,-0.18051,-0.040218,-0.0636,-0.25066,-0.0636,-0.18051,-0.13375,-0.11036 -0.21096,-0.22767,-0.226,-0.24103,-0.25272,-0.15919,-0.17923,-0.17422,-0.20595,-0.226,-0.10909,0.28338,-0.089049,0.29173,0.28839,0.022847,0.23161,0.18651,0.27169,0.14476,-0.018905,0.20823,0.14476,0.15645,0.08965 -0.14524,-0.14399,-0.14586,-0.12902,-0.11841,0.31901,0.31714,-0.13526,-0.13526,-0.13151,0.26722,0.31339,-0.139,-0.139,-0.14337,0.26846,0.28344,-0.14087,-0.13775,-0.14025,0.27782,0.28094,-0.14087,-0.1365,-0.12527 -0.31998,0.1211,0.1211,0.12432,0.12646,-0.32454,0.11708,0.1219,0.12432,0.12325,-0.32186,0.11708,0.12995,0.12512,0.12995,-0.31891,-0.31837,0.13558,0.12244,0.12217,-0.31891,-0.32186,0.13638,0.12325,0.12298 -0.083498,-0.044991,-0.073364,-0.075391,-0.15443,-0.13822,-0.13822,-0.14632,-0.17064,-0.13011,-0.049045,-0.16456,-0.16051,-0.030805,-0.12808,0.49207,0.3117,0.11714,0.013781,-0.11592,0.53058,0.30967,0.14957,-0.014592,-0.10579 -0.085889,-0.086029,-0.087147,-0.082813,-0.086169,-0.085609,-0.086169,-0.086728,-0.087147,-0.020038,-0.08491,-0.086588,-0.086588,-0.08519,0.24043,-0.084771,-0.083932,-0.084351,-0.024652,0.69734,-0.02549,-0.02549,-0.02591,-0.024931,0.57878 0.32437,-0.2444,-0.20501,-0.20344,-0.12938,0.29759,-0.15932,-0.15617,-0.1861,-0.1152,0.25978,0.25347,0.059682,-0.15932,-0.13726,0.28814,0.24087,0.1227,-0.16877,-0.16247,0.25978,0.14003,0.11798,-0.17823,-0.15932 -0.085459,-0.083584,-0.088272,-0.087803,0.5103,-0.086866,-0.086397,-0.085459,-0.089209,0.50608,-0.087803,-0.088272,-0.086397,-0.086397,0.40296,-0.091084,-0.085459,-0.084053,-0.084991,0.40343,-0.093897,-0.087803,-0.086397,-0.084053,-0.083116 -0.098362,-0.1019,-0.10341,-0.11856,-0.12158,0.31712,-0.10139,-0.10846,-0.11755,-0.11755,0.46453,-0.10038,-0.11351,-0.11856,-0.12158,0.33378,0.34034,-0.10442,-0.11098,-0.11755,0.32418,0.33782,-0.10947,-0.11048,-0.12209 0.03932,0.029946,0.28704,0.27891,0.32366,0.03932,0.027071,0.32341,0.32691,0.32716,-0.1589,-0.1589,-0.15978,-0.15965,0.23367,-0.1599,-0.15965,-0.1594,-0.1594,-0.16015,-0.16015,-0.16015,-0.16028,-0.16015,-0.1599 0.10702,0.10337,0.10045,0.10337,-0.4623,0.07779,0.079983,0.10191,0.099716,-0.46376,0.069751,0.073405,0.0946,0.093869,-0.46157,0.069751,0.070482,0.093138,0.091676,-0.44184,0.06902,0.067559,0.089484,0.088022,0.085099 0.27992,0.51595,-0.077459,-0.10738,-0.1373,0.28324,0.52426,-0.069148,-0.13564,-0.14561,0.088762,0.080451,-0.11237,-0.13564,-0.16722,0.0871,-0.010971,-0.10738,-0.14229,-0.17387,0.12201,-0.10572,-0.042553,-0.14395,-0.16722 0.47967,0.42008,-0.046134,-0.044587,-0.031819,0.48934,0.38294,-0.048456,-0.036462,-0.030271,-0.042265,-0.046908,-0.15601,-0.15137,-0.14402,-0.031432,-0.043039,-0.14518,-0.1475,-0.14131,-0.026789,-0.050777,-0.10649,-0.14905,-0.15215 -0.28795,-0.29381,0.087717,0.1569,0.075999,-0.2875,0.086591,0.14811,0.14834,0.0609,-0.28389,0.14699,0.15623,0.15037,0.075097,-0.28434,-0.2866,0.14563,0.15397,0.2013,-0.28344,-0.29043,0.14834,0.14856,0.20693 0.54436,0.51693,-0.066805,-0.058644,-0.090621,0.55935,-0.055032,-0.068946,-0.058243,-0.091156,-0.069214,-0.056503,-0.058778,-0.090353,-0.092895,-0.068812,-0.068946,-0.062524,-0.091022,-0.090621,-0.064932,-0.065601,-0.068545,-0.091423,-0.091022 -0.10542,-0.10196,-0.10265,-0.09954,-0.10854,-0.11061,-0.11165,-0.10508,-0.098156,-0.10992,0.49456,-0.11857,-0.0075015,-0.09781,-0.1113,0.50044,0.1745,-0.0095776,-0.103,-0.11027,0.49802,0.17865,-0.014422,-0.10923,-0.11096 0.20394,-0.16912,-0.18419,-0.18608,-0.16912,0.1851,0.21524,-0.19173,-0.17477,-0.17477,0.20394,0.51482,-0.11636,-0.18608,-0.16912,0.18887,0.21524,0.10596,-0.16347,-0.15028,0.17379,0.16814,0.15872,-0.15216,-0.14651 0.32394,0.31271,0.28222,-0.128,-0.10072,0.33036,-0.12265,-0.13014,-0.13121,-0.10714,0.32822,-0.12211,-0.12425,-0.13121,-0.12158,0.33143,-0.12105,-0.12586,-0.13174,-0.13121,0.3325,-0.12158,-0.13228,-0.13121,-0.12746 -0.35825,-0.32547,-0.16978,-0.030483,0.067848,-0.35006,-0.21076,-0.12062,0.0022944,0.15798,-0.2927,-0.12062,0.010489,0.11701,0.24812,-0.10423,0.026877,0.16618,0.25632,0.18257,-0.046871,0.14979,0.21534,0.2727,0.25632 -0.1101,-0.10942,-0.1101,-0.10965,-0.10987,-0.10851,-0.1101,-0.10851,-0.10942,-0.10919,-0.10919,-0.1101,-0.10942,-0.10965,-0.10965,-0.10965,-0.10851,-0.10942,-0.10919,0.44018,0.23078,0.23716,0.30255,0.43129,0.43767 -0.20688,-0.20514,-0.20688,0.15394,0.19729,-0.20793,-0.20654,-0.20898,0.19345,0.19589,-0.20619,-0.20863,-0.21143,0.19065,0.1924,-0.20758,-0.21248,0.1917,0.20114,0.1889,-0.20688,0.18925,0.20254,0.20603,0.1924 0.71592,0.0033618,-0.12453,-0.098955,-0.10626,0.59534,-0.025872,-0.10626,-0.098955,-0.098955,0.05452,-0.0039465,-0.087992,-0.10626,-0.11357,-0.011255,-0.022217,-0.011255,-0.07703,-0.091647,-0.0039465,-0.022217,0.01067,-0.080684,-0.087992 0.12553,0.099971,0.1015,0.12451,-0.31308,0.12758,0.11377,0.11735,0.15365,-0.31615,0.11275,0.11326,0.12298,-0.31206,-0.3274,0.11633,0.11122,0.13269,0.15825,-0.3274,0.11377,0.1332,0.16029,-0.3141,-0.32842 -0.22887,-0.2251,0.17274,0.17249,-0.22184,-0.22485,-0.22535,0.18203,0.17475,0.17023,-0.22485,-0.22561,0.17726,0.17626,0.17575,-0.2251,-0.22686,0.17701,0.18028,0.17902,-0.22711,-0.22611,0.17902,0.18304,0.18178 -0.13526,-0.13389,-0.13526,-0.12746,0.39342,-0.1348,-0.13458,-0.12884,-0.1293,0.37231,-0.13343,-0.13136,-0.1293,0.37047,0.37116,-0.13366,-0.13022,-0.1293,0.19929,0.1986,-0.13526,-0.12815,-0.13182,0.16763,0.169 -0.056722,-0.059178,-0.047716,-0.049354,0.97857,-0.029294,-0.059588,-0.047716,-0.037482,-0.020288,-0.039119,-0.041166,-0.033797,-0.028885,-0.026019,-0.046079,-0.041985,-0.040347,-0.035026,-0.035435,-0.03871,-0.055903,-0.039529,-0.032979,-0.036254 -0.18899,-0.17876,-0.1773,0.080078,0.10494,-0.19338,-0.18022,-0.19046,0.10201,0.04352,-0.19777,-0.16267,-0.17876,0.28188,0.29212,-0.18753,-0.17583,0.29943,0.30528,0.29358,-0.14805,-0.1773,0.12834,0.11517,0.29066 0.31143,0.19878,0.21835,-0.24598,-0.24598,0.20936,0.26912,0.22258,-0.25179,-0.24968,-6.3462e-05,0.19561,0.27758,-0.25655,-0.2317,0.0083981,0.0046962,0.0046962,0.0073404,-0.283,0.0015231,0.049648,0.047533,0.02585,-0.28776 -0.0093141,-0.040224,-0.036103,-0.05877,0.97568,-0.019617,-0.046406,-0.048466,-0.044345,-0.02786,-0.013435,-0.031981,-0.052588,-0.054648,-0.054648,-0.034042,-0.044345,-0.064952,-0.064952,-0.052588,-0.052588,0.00098911,-0.048466,-0.067012,-0.0093141 -0.17653,-0.1855,-0.14813,-0.1571,-0.14364,-0.15261,-0.14813,-0.14813,-0.12869,-0.13318,-0.10477,-0.083841,-0.019555,-0.12421,-0.10627,0.39905,0.44988,-0.098791,0.034266,0.046226,0.32879,0.43643,0.16583,0.10603,0.092572 -0.021108,-0.018516,-0.15174,-0.14914,-0.15744,-0.016961,-0.017479,-0.014887,-0.14552,-0.15485,-0.015406,-0.019034,-0.007112,-0.16314,-0.16366,0.43091,0.43039,-0.010222,-0.15899,-0.16729,0.43454,0.43454,-0.0065936,-0.0065936,-0.1647 -0.15444,0.060061,-0.031869,0.18263,0.12135,-0.21573,-0.1238,-0.031869,0.029417,0.39714,-0.43023,-0.062512,0.18263,0.060061,0.12135,-0.1238,-0.062512,-0.21573,0.15199,0.39714,-0.3383,-0.15444,-0.031869,-0.0012257,0.27456 -0.1538,-0.15065,-0.14697,-0.032413,-0.025582,-0.12911,-0.1517,-0.14697,-0.035566,-0.016122,-0.13226,-0.13226,-0.1475,0.3449,0.38221,-0.11912,-0.11282,-0.11649,0.33071,0.36592,-0.1186,-0.11334,-0.11019,0.33702,0.33071 -0.045485,-0.050243,-0.046845,-0.042767,0.9795,-0.048884,-0.045485,-0.044806,-0.040728,-0.048204,-0.041407,-0.044126,-0.038009,-0.038009,-0.044126,-0.036649,-0.03597,-0.03597,-0.03597,-0.040048,-0.03461,-0.03461,-0.033251,-0.036649,-0.036649 -0.061615,-0.061615,-0.061615,-0.13497,-0.20832,-0.35502,-0.28167,-0.13497,-0.061615,-0.061615,-0.098291,0.048412,-0.024939,-0.20832,-0.098291,0.19511,0.048412,-0.024939,-0.024939,-0.024939,0.23179,0.30514,0.52519,0.26847,0.30514 -0.18548,-0.18395,-0.18266,0.30387,0.25079,-0.18219,-0.18336,-0.18231,0.24445,0.24704,-0.17843,-0.18383,0.29283,0.28003,0.25279,-0.18595,-0.18606,-0.18735,0.10529,0.10506,-0.18642,-0.18677,0.10412,0.10412,0.10435 0.043004,-0.084157,-0.28068,-0.39628,-0.55812,0.14704,0.043004,-0.049477,-0.22288,-0.32692,0.18172,0.14704,0.13548,0.043004,-0.084157,0.1586,0.17016,0.13548,0.11236,0.019883,0.17016,0.1586,0.12392,0.13548,0.077684 0.20216,0.19077,0.18621,0.18545,-0.27332,0.19153,0.18545,0.20596,0.20444,-0.27256,0.16267,0.095066,0.094307,-0.25281,-0.27256,0.093547,0.08899,0.086711,-0.23838,-0.2718,0.087471,0.08823,-0.25205,-0.25205,-0.26344 -0.32104,-0.31177,-0.33957,-0.33762,-0.31811,-0.042498,-0.0029854,-0.0049366,-0.030791,-0.10543,0.090186,0.098967,-0.0010342,-0.0093269,-0.022498,0.21897,0.20385,0.19604,0.21604,0.12726,-0.19665,0.19799,0.19165,0.20287,0.30043 -0.10024,-0.1061,-0.10903,-0.091444,-0.12661,-0.088513,-0.079721,-0.088513,-0.091444,-0.12368,-0.070928,-0.065066,-0.062135,-0.070928,-0.094375,-0.029895,-0.021102,-0.0093789,-0.029895,-0.094375,0.52698,0.5387,0.52698,0.058032,-0.097306 -0.12091,0.046824,0.064668,0.1646,0.42512,-0.27794,-0.24225,0.21099,0.30378,0.1646,-0.30293,-0.29579,0.068237,0.053961,0.20742,-0.31363,-0.203,0.053961,0.050392,0.096788,-0.28508,0.00042826,0.053961,0.043255,0.032548 -0.13761,-0.13726,-0.14114,0.41147,0.12227,-0.13938,-0.13973,-0.14114,0.11557,0.41747,-0.14009,-0.13761,-0.13973,0.31048,0.30872,-0.13832,-0.13797,-0.13761,-0.14256,0.31331,-0.14468,-0.13797,-0.13867,0.11521,0.11698 0.29209,0.29451,0.28766,-0.13698,-0.13738,0.29008,0.2937,-0.13618,-0.13577,-0.13658,0.29129,-0.13819,-0.13618,-0.13618,-0.13618,0.29129,-0.13658,-0.13658,-0.1398,-0.1394,0.29169,-0.13698,-0.13658,-0.13738,-0.1394 -0.11531,-0.061171,0.3719,0.37867,0.37867,-0.12546,-0.10854,0.20611,0.37528,0.38543,-0.11531,-0.11531,-0.088238,-0.051021,-0.067938,-0.14576,-0.11869,-0.10854,-0.11531,-0.12207,-0.13561,-0.13561,-0.11531,-0.12207,-0.12884 -0.17788,-0.16949,-0.17788,-0.17908,-0.17788,-0.092844,-0.12758,-0.14674,-0.15991,-0.17788,0.40539,0.25688,0.12992,-0.071285,-0.15872,0.36586,0.26167,0.08561,-0.052123,-0.11799,0.37904,0.2473,0.074831,-0.074878,-0.14434 -0.0023405,-0.021845,-0.15838,-0.15838,0.6023,-0.099863,-0.13887,-0.080358,-0.021845,0.46577,-0.021845,-0.15838,-0.13887,-0.099863,0.29023,-0.080358,-0.080358,-0.0023405,-0.080358,0.29023,-0.15838,-0.080358,-0.099863,-0.13887,0.1732 0.11359,0.11701,0.1249,0.1249,0.44391,0.11149,0.11622,0.12911,0.44601,0.43733,-0.14309,-0.14361,-0.14282,-0.14808,-0.14125,-0.14335,-0.14388,-0.14467,-0.14493,-0.14493,-0.1444,-0.14414,-0.1444,-0.14467,-0.14624 -0.1166,0.42037,0.41883,0.45182,0.52776,-0.11583,-0.095887,-0.083613,-0.091284,-0.085147,-0.097421,-0.099722,-0.099722,-0.098955,-0.077476,-0.096654,-0.098955,-0.075942,-0.072107,-0.059833,-0.095887,-0.097421,-0.059066,-0.039122,-0.062135 -0.1275,-0.14245,-0.1275,-0.13497,-0.1331,-0.092,-0.1275,-0.13871,-0.13871,-0.14431,0.3452,-0.060237,-0.11629,-0.13124,-0.14245,0.3396,0.35081,-0.04529,-0.080789,-0.14431,0.35642,0.35455,0.36015,-0.037816,-0.041553 -0.24818,0.25953,0.22709,0.20763,0.19303,-0.24818,-0.20601,0.16059,0.15248,0.19303,-0.20925,-0.19627,-0.085971,0.10057,0.14761,-0.23196,-0.20601,-0.18005,0.095703,0.19303,-0.26602,-0.20601,-0.13626,0.23196,0.25791 -0.084561,-0.084561,-0.085754,-0.087343,-0.083766,-0.085356,-0.086946,-0.086151,-0.084959,-0.084561,0.33196,-0.083369,-0.082574,-0.084959,-0.086151,0.33117,-0.083766,-0.084561,-0.085754,-0.084561,0.60263,0.51559,-0.084164,-0.082574,-0.084959 -0.19301,-0.24764,-0.10197,-0.1566,-0.17481,-0.17481,-0.10197,-0.10197,-0.21122,-0.1566,-0.047343,-0.010925,-0.10197,-0.083761,-0.083761,0.17116,0.06191,0.025492,0.13475,0.244,0.098328,0.080119,0.098328,0.42609,0.60818 -0.058066,-0.078762,-0.037371,0.027673,0.9649,-0.04624,-0.05511,-0.058066,-0.040327,-0.087632,-0.061023,-0.069893,-0.04624,-0.061023,0.02176,-0.05511,-0.049197,-0.043284,-0.078762,-0.013718,0.027673,0.039499,-0.013718,-0.066936,-0.061023 0.397,0.36437,-0.11757,-0.042271,-0.223,0.37441,0.42461,-0.16276,-0.18535,-0.20292,0.18866,-0.084943,-0.13013,-0.1477,-0.16025,0.21627,-0.10251,-0.079922,-0.11004,-0.03223,0.11838,-0.082433,-0.087453,-0.049801,-0.082433 -0.13189,-0.13027,-0.11895,0.34135,0.3551,-0.11248,-0.11895,-0.11329,0.33973,0.33811,-0.074456,-0.12866,-0.11167,0.34944,0.35186,-0.13675,-0.13513,-0.13189,-0.13351,0.046078,-0.14645,-0.13836,-0.15292,-0.13998,0.033944 0.13724,0.1308,0.12221,0.11684,0.11362,0.13294,0.13294,0.12865,0.11899,0.11255,0.13724,0.13187,0.12543,0.12114,0.11362,-0.31364,-0.29968,0.12543,0.12758,0.11362,-0.32008,-0.32974,-0.33511,-0.32759,-0.31686 0.51624,0.4461,0.4461,0.025251,0.23567,-0.11503,0.025251,-0.0098198,-0.0098198,-0.0098198,-0.11503,-0.18517,-0.11503,0.025251,-0.079961,0.025251,-0.11503,-0.04489,-0.18517,-0.0098198,-0.0098198,-0.11503,-0.25531,-0.18517,-0.18517 -0.064251,-0.19591,-0.090584,-0.090584,0.093744,-0.064251,-0.11692,-0.11692,-0.011586,0.43607,0.067411,-0.22225,-0.14325,-0.064251,0.48873,-0.011586,-0.11692,-0.14325,-0.064251,0.40973,-0.037919,-0.11692,-0.14325,-0.064251,0.3834 -0.22078,-0.226,-0.23056,0.18549,0.18288,-0.22404,-0.226,-0.22665,0.18288,0.17701,-0.22208,-0.22795,0.18418,0.17636,0.16462,-0.22795,-0.22078,0.18027,0.17766,0.16658,-0.22665,0.17701,0.19918,0.17897,0.14636 0.24422,0.40837,0.2034,-0.19708,-0.20094,0.24637,0.24465,0.19653,-0.20223,-0.20782,0.24465,0.2468,-0.13477,-0.19407,-0.20395,0.1643,0.17504,-0.13434,-0.13262,-0.13305,-0.11844,-0.11629,-0.13735,-0.1309,-0.13047 -0.078772,-0.084555,-0.0807,-0.082628,-0.073632,-0.08841,-0.090338,-0.081985,-0.084555,0.45195,-0.089695,-0.089695,-0.084555,-0.08584,0.45323,-0.087125,-0.089053,-0.091623,-0.094193,0.47122,-0.092908,-0.091623,-0.091623,-0.09869,0.4558 -0.37449,-0.35973,-0.35973,-0.35973,-0.37449,-0.020083,0.0094509,0.038985,0.0094509,0.038985,0.17189,0.20142,0.17189,0.17189,0.20142,0.15712,0.18666,0.21619,0.12759,0.15712,0.024218,0.068519,-0.0053161,-0.03485,-0.064384 -0.043298,-0.045848,-0.036923,-0.030548,0.97923,-0.036923,-0.053498,-0.052223,-0.043298,-0.047123,-0.040748,-0.048398,-0.038198,-0.036923,-0.042023,-0.035648,-0.040748,-0.034373,-0.034373,-0.053498,-0.030548,-0.035648,-0.034373,-0.034373,-0.049673 -0.057746,-0.063526,-0.063526,-0.059994,0.97651,-0.068663,-0.054214,-0.038159,-0.0099026,-0.012471,-0.060315,-0.03848,-0.025636,-0.007976,-0.031416,-0.048113,-0.031416,-0.028847,-0.04137,-0.045544,-0.032379,-0.034627,-0.0327,-0.043939,-0.045544 -0.0043563,-0.029171,-0.0071134,-0.22493,-0.23734,0.26722,0.25206,0.045272,-0.16289,-0.20149,0.29204,0.29755,-0.026413,-0.14084,-0.14084,0.36372,0.4423,-0.058121,-0.16427,-0.18771,0.0080509,-0.0029777,0.001158,-0.12843,-0.2525 -0.20247,-0.24017,-0.23263,-0.23498,-0.23027,-0.22038,0.024162,0.020392,-0.23734,0.021806,-0.24865,0.022277,0.021806,0.021806,0.018508,0.024162,0.027931,0.027931,0.027931,-0.00033924,0.26305,0.25598,0.53915,0.26917,0.26116 -0.16041,-0.17399,-0.12645,-0.022321,0.23914,-0.13664,-0.16041,-0.16041,0.25046,0.25952,-0.17399,-0.13325,-0.13211,0.26405,0.25952,-0.18531,-0.15362,0.27763,0.26744,0.2697,-0.1921,-0.17626,-0.16154,-0.12079,0.28216 -0.053982,-0.040383,-0.029374,-0.030022,0.9789,-0.05981,-0.03844,-0.03326,-0.03844,-0.037145,-0.061105,-0.037145,-0.03326,-0.040383,-0.041678,-0.055277,-0.044268,-0.033907,-0.040383,-0.03585,-0.044916,-0.040383,-0.039735,-0.028079,-0.041678 0.21626,0.1682,0,-0.24028,0.14417,0.14417,0.21626,0,-0.24028,-0.12014,0.26431,0.19223,-0.096114,-0.24028,-0.048057,0.28834,0.14417,-0.048057,-0.3364,-0.14417,0.19223,0.14417,0.072085,-0.31237,-0.36043 -0.055695,-0.04434,-0.041502,-0.037243,0.97758,-0.057114,-0.024469,-0.037243,-0.042921,0.0010787,-0.052856,-0.038663,-0.021631,-0.047179,-0.055695,-0.047179,-0.057114,-0.020211,-0.050018,-0.042921,-0.047179,-0.050018,-0.025889,-0.042921,-0.038663 -0.13643,-0.13643,-0.13627,-0.13564,-0.13643,-0.13627,-0.13619,-0.13643,-0.13627,-0.13611,-0.13627,-0.13627,-0.13611,-0.13627,-0.13627,-0.14448,0.29095,0.28953,0.29126,0.29079,-0.14408,0.29387,0.29111,0.29253,0.29221 -0.38827,-0.38678,0.1122,0.11388,0.11332,-0.36103,0.11705,0.11407,0.11127,0.11873,-0.36065,0.11444,0.11369,0.10847,0.10642,-0.35692,0.11743,0.11687,0.11332,0.10698,-0.27127,0.11761,0.1122,0.096526,0.10044 -0.089601,-0.091948,-0.093513,-0.090383,-0.093513,-0.090383,-0.091166,-0.091166,-0.090383,-0.087254,-0.086471,-0.088818,-0.087254,-0.088036,-0.080994,-0.080212,-0.084124,-0.084124,-0.084124,-0.069258,-0.073953,0.48781,0.48938,0.49798,0.3415 -0.32982,-0.31535,0.11885,0.11715,0.11374,-0.31961,-0.32727,0.12055,0.11885,0.11885,-0.31535,0.12822,0.12396,0.12481,0.12055,-0.31279,0.12651,0.13333,0.13162,0.12566,-0.32386,0.12992,0.12992,0.13077,0.13077 -0.073766,-0.090238,-0.063224,-0.054,-0.048729,-0.086284,-0.10737,-0.081014,-0.057295,-0.046753,0.47441,-0.10605,-0.087602,-0.069154,-0.054,0.52646,-0.097485,-0.08299,-0.069813,-0.044776,0.61013,-0.087602,-0.079037,-0.071131,-0.052683 0.10525,0.27336,0.28706,-0.22848,-0.23595,0.049212,0.28332,0.12766,0.057929,-0.2621,0.046722,0.29826,0.16627,-0.23969,-0.22972,0.034269,0.057929,0.29079,-0.24218,-0.23471,0.029288,0.03676,0.015591,-0.24965,-0.2372 0.082103,0.13407,0.082103,0.030139,0.21201,0.030139,0.13407,0.082103,0.056121,0.16005,0.13407,0.0041571,0.16005,0.056121,0.13407,-0.2037,0.030139,0.082103,0.18603,0.16005,-0.51548,-0.43753,-0.38557,-0.25566,-0.15173 -0.070974,-0.035438,-0.067067,-0.069631,-0.072318,-0.071463,-0.03666,-0.037636,-0.071341,-0.071463,0.30393,-0.070608,-0.067922,-0.071097,-0.069998,0.84991,-0.070852,-0.069875,-0.070852,-0.07012,0.29477,-0.070608,-0.071951,-0.071707,-0.069021 -0.037634,-0.037634,-0.029743,-0.04991,0.97863,-0.044649,-0.032373,-0.045526,-0.031496,-0.043772,-0.055171,-0.042895,-0.040265,-0.044649,-0.035004,-0.04991,-0.037634,-0.037634,-0.034127,-0.03325,-0.072708,-0.04991,-0.036757,-0.032373,-0.023605 -0.015428,-0.027693,-0.042685,-0.060402,0.97673,-0.031782,-0.039959,-0.063128,-0.037233,-0.039959,-0.037233,-0.05495,-0.07403,-0.049499,-0.048136,-0.018153,-0.027693,-0.044048,-0.01679,-0.052225,-0.023605,-0.05495,-0.042685,-0.014065,-0.060402 -0.032329,-0.036035,-0.050856,-0.055951,0.97924,-0.033719,-0.03094,-0.03094,-0.049467,-0.043445,-0.042982,-0.037887,-0.034645,-0.050393,-0.042982,-0.036035,-0.036498,-0.042982,-0.050393,-0.043909,-0.036961,-0.034182,-0.038351,-0.046224,-0.04113 -0.18491,-0.17341,-0.15425,-0.15425,-0.14275,-0.16958,-0.18108,-0.16958,-0.13891,-0.10058,-0.13891,-0.096749,-0.058418,0.0067464,0.13707,-0.089083,-0.069917,-0.066084,-0.046918,0.42456,0.25207,0.3479,0.33257,0.34023,0.29423 0.19297,0.17405,0.13621,0.15513,0.15513,0.11729,0.11729,0.13621,0.21189,0.098376,0.11729,0.11729,0.11729,0.079458,0.041621,-0.14756,0.15513,-0.1854,0.060539,-0.29891,-0.4881,-0.33675,-0.14756,-0.31783,-0.26108 0.025101,-0.1754,-0.18299,-0.22092,-0.24802,-0.22959,-0.21442,-0.18732,-0.17215,-0.16131,-0.22526,-0.20033,-0.1624,0.15949,0.19309,0.078207,0.2527,0.27762,0.25703,0.12915,0.24078,0.24619,0.27762,0.13565,0.10747 -0.15976,-0.18529,-0.18894,-0.16705,-0.23271,-0.04304,-0.090457,-0.15976,-0.16705,-0.19259,0.33265,0.044499,-0.075867,-0.15976,-0.178,0.31806,0.32535,-0.010213,-0.072219,-0.10505,0.31806,0.33265,0.14298,0.28888,0.084621 -0.20085,-0.21047,0.1261,0.21906,0.31361,-0.22329,-0.20405,0.15174,0.20623,0.27515,-0.22168,-0.19123,0.24951,-0.17521,0.20303,-0.2313,-0.172,-0.19444,0.14533,0.17739,-0.20726,-0.19764,0.14533,0.095648,0.12129 -0.35288,0.10024,0.10024,0.10426,0.10259,-0.35188,0.10796,0.10695,0.10796,0.10426,-0.35389,-0.35523,0.1093,0.12172,0.10863,-0.35758,0.11198,0.097551,0.16132,0.12675,-0.35926,0.10191,0.09923,0.12809,0.12977 -0.12815,-0.11905,-0.091743,-0.12815,-0.15545,-0.15545,-0.21916,-0.19186,-0.14635,-0.19186,0.12669,0.090287,0.035678,-0.037134,-0.16456,0.36333,0.31782,0.1631,0.035678,-0.19186,0.44525,0.32693,0.23591,-0.018931,-0.20096 0.16368,0.21753,0.22845,0.23136,0.22554,0.18115,0.21753,0.20734,0.22408,0.22408,0.18988,-0.18708,-0.18927,-0.20018,-0.20237,-0.18272,-0.18854,-0.19145,-0.19145,-0.19654,0.17969,-0.19145,-0.18927,-0.18636,-0.19363 0.22815,0.2295,0.22747,0.22271,0.22611,0.22339,0.22611,0.22611,0.22271,-0.17824,0.22611,0.22271,-0.18299,-0.17348,-0.16397,-0.18911,-0.18639,-0.16736,-0.17144,-0.17416,-0.1728,-0.17824,-0.18096,-0.18164,-0.18028 -0.014962,-0.059779,-0.23043,-0.25801,-0.24594,-0.0046196,-0.023581,-0.056332,-0.20285,-0.23905,0.32462,0.31772,0.09191,-0.094254,-0.083912,0.33496,0.32979,-0.099426,-0.094254,-0.10287,0.32806,0.32462,-0.075293,-0.066674,-0.099426 -0.15308,-0.06955,0.31644,0.31877,0.31828,-0.15381,-0.15762,-0.15811,0.31657,0.31755,-0.15479,-0.15774,-0.15774,0.15233,0.15233,-0.1559,-0.15762,-0.15811,0.15111,0.15086,-0.24139,-0.15712,-0.15467,-0.15737,0.15037 -0.10728,-0.10578,-0.088366,-0.087165,-0.31862,0.28448,0.29559,-0.082662,-0.084763,-0.33633,0.28118,0.029611,-0.071555,-0.078759,-0.31111,0.28178,0.3124,-0.061048,-0.08026,-0.092869,0.28328,0.28868,0.031112,-0.084163,-0.097372 0.05621,0.059076,0.055254,0.094422,0.19282,-0.20363,-0.20459,0.22434,0.19282,0.19855,-0.23133,-0.2256,-0.21509,0.23198,0.20237,-0.22656,-0.22178,-0.22369,0.2444,0.2167,-0.24089,-0.21414,-0.1893,0.22052,0.20715 0.36556,0.39207,0.056579,0.058408,0.062369,0.35947,0.39024,0.072729,0.059322,0.07151,0.024584,0.07151,0.073948,-0.18963,-0.19207,0.025499,-0.19633,-0.18933,-0.18719,-0.19024,-0.18354,-0.1939,-0.18567,-0.18689,-0.18902 -0.37664,-0.35111,-0.34878,-0.3395,-0.36271,-0.34646,0.13873,0.10855,0.10623,0.08766,0.1457,0.13177,0.11088,0.10391,0.083017,0.15034,0.11784,0.10855,0.10391,0.076053,0.14106,0.12248,0.10623,0.099268,0.083017 0.0027995,-0.050525,-0.043859,-0.063856,-0.14384,0.1761,-0.050525,-0.047192,-0.14051,-0.073854,0.066122,-0.10385,-0.11385,-0.053857,-0.067188,0.036127,0.042793,-0.14384,-0.030528,0.0061323,0.029462,-0.017197,-0.083852,-0.047192,0.91597 0.51667,0.27438,0.16991,0.16102,0.11212,-0.043478,0.50333,0.17436,0.16102,0.012092,-0.13239,-0.13684,-0.13239,-0.1235,-0.12572,-0.14573,-0.1524,-0.13017,-0.14795,-0.13684,-0.13461,-0.13461,-0.13906,-0.13239,-0.13684 -0.34953,-0.31752,-0.24817,0.039904,0.1626,-0.34953,-0.28551,-0.15748,0.1466,0.17861,-0.30685,-0.15215,0.12526,0.1626,0.17861,-0.1148,0.077246,0.1626,0.17861,0.16794,0.061242,0.12526,0.15727,0.1626,0.19461 -0.081406,-0.080119,-0.074603,-0.069822,0.86758,-0.081958,-0.077177,-0.074235,-0.064305,0.21684,-0.077728,-0.076809,-0.054928,0.20912,0.21684,-0.075522,-0.069822,-0.06688,-0.068718,-0.072212,-0.076625,-0.069822,-0.065776,-0.065225,-0.066696 -0.11121,-0.13546,-0.11121,-0.070799,0.66467,-0.062717,-0.11121,-0.11121,-0.070799,0.58385,-0.022307,-0.062717,-0.10313,-0.086964,0.28886,-0.014225,-0.054635,-0.078882,-0.086964,-0.014225,-0.010183,-0.046553,-0.046553,-0.062717,-0.062717 -0.13396,-0.13846,0.243,0.24535,0.30958,-0.13572,-0.13925,-0.13768,0.243,0.31076,-0.13807,-0.13611,-0.13572,-0.13553,0.30919,-0.13631,-0.13651,-0.13513,-0.13572,0.33191,-0.13709,-0.13651,-0.13513,-0.1369,0.32701 0.22315,0.35158,-0.12171,-0.12047,-0.11953,0.41346,0.41346,-0.12202,-0.12358,-0.12638,0.23248,-0.12296,-0.11953,-0.12296,-0.12451,0.23683,-0.12078,-0.11953,-0.12202,-0.12544,0.32608,-0.11891,-0.12047,-0.12264,-0.12358 -0.11134,-0.10901,-0.11134,-0.13347,-0.1195,-0.093873,-0.12299,-0.11833,-0.095038,-0.099697,-0.10319,-0.076403,-0.082227,-0.076403,-0.075239,-0.049616,-0.047286,-0.062427,-0.032145,-0.037969,0.49429,-0.056604,0.44072,0.42674,0.45236 -0.32297,0.1081,0.14327,0.13155,0.12934,-0.32187,0.12668,0.12513,0.11916,0.12425,-0.32098,0.12624,0.12624,0.11739,0.13133,-0.3201,-0.31921,0.12182,0.11562,0.13221,-0.31943,-0.31921,0.12911,0.11739,0.11894 0.16414,0.1638,-0.24482,-0.24449,-0.24482,0.16313,0.1672,-0.24618,-0.24245,-0.24618,0.1577,0.16041,0.15973,-0.2455,-0.24449,0.15973,0.1638,0.16177,0.16754,-0.24516,0.17127,0.16245,0.16177,0.16482,-0.24516 -0.3368,0.016411,0.024821,0.075881,0.012206,-0.34161,0.026623,0.14977,0.12934,0.13295,-0.34581,-0.34341,0.13175,0.13655,0.12214,-0.36444,0.14316,0.15818,0.14316,0.12033,-0.35302,0.14136,0.14917,0.14376,0.12754 0.15061,0.21259,0.27457,-0.019834,-0.28325,0.10413,0.25908,0.16611,-0.081813,-0.29874,0.011156,0.24358,0.10413,-0.14379,-0.26775,-0.1283,0.16611,0.1971,-0.14379,-0.28325,-0.14379,0.24358,0.15061,-0.19028,-0.29874 -0.32506,-0.044835,-0.044835,0.20036,0.27041,-0.18495,-0.18495,-0.11489,0.060247,0.20036,-0.21997,-0.18495,0.02522,0.095275,0.48058,-0.21997,-0.18495,0.060247,-0.11489,0.41052,0.02522,-0.079863,-0.0098077,-0.11489,0.20036 -0.14347,-0.14717,-0.14717,-0.148,-0.14758,0.32929,-0.14758,-0.14882,-0.14717,-0.148,0.33422,0.21747,-0.14758,-0.14882,-0.14717,0.33463,0.21007,0.19856,-0.148,-0.14717,0.32847,0.20473,0.19979,-0.14594,-0.14758 -0.087041,-0.086146,-0.088831,-0.088831,-0.087936,-0.08525,-0.087041,-0.086146,-0.087936,-0.087936,-0.083907,-0.087041,-0.084355,-0.086146,-0.087041,-0.082564,-0.084355,-0.08525,-0.08525,-0.087936,0.40134,0.39911,0.41074,0.59607,-0.080326 -0.24282,-0.24282,-0.24282,-0.27939,-0.20625,-0.096543,0.013165,-0.096543,-0.059974,-0.096543,0.013165,0.013165,-0.16968,-0.096543,-0.096543,0.013165,0.23258,-0.096543,0.26915,0.12287,0.12287,0.12287,0.26915,0.30572,0.52514 0.23292,0.24444,-0.23025,-0.2579,-0.26712,0.20527,0.2214,-0.18647,-0.26712,-0.26712,0.2237,0.19836,0.20296,-0.25329,-0.27633,0.14075,0.11079,0.13614,-0.21181,-0.12194,0.1684,0.080836,0.053184,0.06701,0.053184 0.21782,0.27766,0.24774,0.36742,0.24774,0.0083777,0.27766,0.038298,0.15798,0.12806,-0.14122,-0.20106,-0.081383,0.038298,0.038298,0.038298,-0.29083,-0.051463,-0.1113,-0.051463,-0.38059,-0.081383,-0.32075,-0.17114,-0.20106 -0.036598,-0.03382,-0.039376,-0.048637,0.9793,-0.041229,-0.037524,-0.042155,-0.043081,-0.046785,-0.054193,-0.054193,-0.034746,-0.048637,-0.046785,-0.042155,-0.036598,-0.031968,-0.036598,-0.034746,-0.03382,-0.044933,-0.03382,-0.044007,-0.032894 0.0010844,-0.026027,-0.069158,-0.087642,-0.096269,-0.0013802,-0.048208,-0.074087,-0.075319,-0.10243,-0.034653,-0.029723,-0.059299,-0.077784,-0.092572,0.6727,-0.014936,-0.044511,-0.077784,-0.097501,0.66777,-0.011239,-0.053138,-0.075319,-0.092572 -0.10021,-0.084311,-0.073941,-0.07325,-0.037302,-0.086384,-0.07325,-0.072559,-0.076015,-0.065646,0.38162,-0.076015,-0.073941,-0.073941,-0.076015,0.38093,-0.067028,-0.071867,-0.073941,-0.052511,0.77221,-0.061498,-0.071867,-0.076015,-0.017255 0.8516,-0.067503,-0.059875,-0.051866,-0.084283,-0.062545,-0.070172,-0.075511,-0.054917,-0.065214,0.22997,-0.062926,-0.080469,-0.093436,-0.082376,0.23035,-0.060257,-0.081613,-0.10411,-0.059875,0.22615,-0.064452,-0.078181,-0.1125,-0.065977 -0.35994,0.10606,0.11239,0.11344,0.11344,-0.35678,0.10564,0.11429,0.11344,0.11344,-0.35298,-0.35551,0.11197,0.11471,0.11471,-0.35509,0.10733,0.1126,0.1145,0.11471,-0.35488,0.10648,0.1145,0.11576,0.11576 0.19834,-0.20308,-0.1126,-0.18581,-0.19321,0.34558,0.31515,0.20574,-0.17018,-0.18498,0.18107,0.20739,0.17942,-0.16771,-0.17922,0.17037,0.19176,-0.16853,-0.16524,-0.18005,0.23536,0.2041,-0.17264,-0.17429,-0.17676 0.63775,0.59498,0.29307,0.055671,-0.066109,-0.026965,-0.034214,-0.035664,-0.030227,-0.10598,-0.062122,-0.050524,-0.047625,-0.045812,-0.080969,-0.095104,-0.088943,-0.061035,-0.022979,-0.070821,-0.1299,-0.13389,-0.13099,-0.15164,-0.10996 0.21488,-0.16825,-0.15933,-0.15785,-0.15636,0.25018,-0.16974,-0.16937,-0.15822,-0.15859,0.24795,0.24721,-0.16899,-0.16156,-0.16156,0.24275,0.24089,0.24238,-0.16379,-0.16491,0.25167,0.24981,0.25985,-0.16379,-0.16528 0.16216,0.097676,0.028054,-0.51808,-0.51123,0.19412,0.10795,0.052593,-0.021594,-0.17453,0.19583,0.11365,0.042321,-0.0078981,-0.15684,0.19184,0.12849,0.05887,-0.016458,-0.36628,0.22494,0.14447,0.077703,0.014929,-0.062682 0.056272,-0.069335,-0.069335,0.031151,-0.019092,0.081394,-0.069335,-0.094457,-0.11958,-0.069335,0.15676,-0.044214,-0.11958,-0.019092,-0.16982,0.48334,-0.019092,-0.19494,-0.044214,-0.044214,0.73455,-0.044214,-0.19494,-0.1447,0.0060292 0.1493,0.13871,-0.15057,-0.13528,0.17869,0.14577,0.14342,-0.15527,-0.17173,-0.14586,0.15988,0.19516,-0.1635,-0.16703,-0.17173,0.15518,0.20221,-0.16703,-0.1929,-0.16938,0.42094,0.43505,-0.17408,-0.19996,-0.15997 0.35424,-0.0085268,-0.23666,-0.20674,-0.21048,0.18594,-0.098282,-0.15064,-0.21796,-0.19926,0.2009,-0.023486,0.05131,-0.10576,-0.19552,0.56366,-0.012267,0.05879,0.06253,-0.15064,0.35424,-0.0010471,0.0064325,0.06253,-0.083323 -0.055503,0.022236,-0.048169,-0.050809,0.97711,-0.054036,-0.050222,-0.046409,-0.051982,-0.027634,-0.052569,-0.038781,-0.039075,-0.034381,-0.035555,-0.034381,-0.038781,-0.037901,-0.045235,-0.048169,-0.035555,-0.033794,-0.044062,-0.046115,-0.050222 -0.032069,-0.012251,0.038194,0.036393,0.96062,0.01117,0.00036032,0.0039636,0.01117,-0.073506,-0.039275,-0.028466,-0.03387,-0.057291,-0.095125,-0.04468,-0.057291,-0.041077,-0.087919,-0.095125,-0.046482,-0.062696,-0.073506,-0.084316,-0.096927 -0.1418,-0.1001,-0.16961,-0.35034,-0.67009,-0.0027805,-0.1001,-0.0027805,-0.072292,-0.26692,0.038926,0.038926,0.080633,0.052829,0.080633,0.12234,0.094536,0.17795,0.10844,0.17795,0.17795,0.19185,0.20575,0.15014,0.17795 0.002269,-0.071321,-0.089718,-0.098917,-0.098917,-0.00079723,-0.060589,-0.086652,-0.098917,-0.097384,0.0007359,-0.022261,-0.088185,-0.088185,-0.095851,0.66765,-0.011529,-0.07592,-0.085119,-0.085119,0.66611,-0.017662,-0.028393,-0.020728,-0.014595 -0.036665,-0.035465,-0.039665,-0.048063,0.97955,-0.037265,-0.033666,-0.038465,-0.048063,-0.048063,-0.037265,-0.036665,-0.039665,-0.043864,-0.050463,-0.036065,-0.037265,-0.043264,-0.043864,-0.045064,-0.036065,-0.039065,-0.040864,-0.040864,-0.043864 -0.20626,-0.20516,0.19731,0.20117,0.20043,-0.20663,-0.20828,0.18554,0.20705,0.20888,-0.20699,-0.2092,0.194,0.18775,0.17948,-0.20791,-0.20957,0.18463,0.18169,0.18297,-0.20699,-0.20773,-0.20791,-0.21379,0.18554 -0.040309,0.0067346,-0.010597,-0.025453,0.9674,-0.025453,-0.018025,-0.072496,-0.042784,-0.010597,-0.010597,-0.060116,-0.0824,-0.077448,-0.042784,0.024066,-0.062592,-0.0824,-0.074972,-0.0081211,0.0092105,-0.062592,-0.079924,-0.079924,-0.037833 0.13103,0.12259,0.13525,0.12259,0.13525,0.13103,0.13525,0.12259,0.10993,0.12681,0.11837,0.13103,0.12259,0.13525,0.10148,0.076155,0.093041,0.11415,-0.21935,-0.35865,-0.10959,-0.34599,-0.35865,-0.3882,-0.38398 -0.083856,-0.091566,-0.10956,-0.1027,-0.11384,-0.094136,-0.080429,-0.11041,-0.11041,-0.10527,0.43103,-0.078715,-0.09585,-0.11213,-0.11555,0.40961,0.39591,-0.081286,-0.10699,-0.1147,0.37449,0.38306,-0.071862,-0.096706,-0.11812 -0.073964,-0.080746,-0.091483,-0.096005,-0.094874,-0.055315,-0.073964,-0.089788,-0.098265,-0.093744,-0.047403,-0.05475,-0.079051,-0.086397,-0.089788,0.54203,-0.046273,-0.058141,-0.067183,-0.07566,0.54655,0.53073,-0.044578,-0.059836,-0.062097 -0.21403,-0.21738,-0.20531,-0.2033,-0.20397,-0.21604,-0.21336,-0.18452,-0.18586,-0.18452,0.32245,0.30635,0.039458,0.013305,0.011963,0.31842,0.30367,0.029399,0.012634,0.009281,0.31708,0.30233,0.020681,0.011293,0.0099516 -0.083199,-0.083199,-0.078292,0.29219,0.77063,-0.084426,-0.089333,-0.084426,0.29587,0.30262,-0.086879,-0.094853,-0.098534,-0.089333,-0.018181,-0.086879,-0.093013,-0.097307,-0.031062,-0.040876,-0.084426,-0.09056,-0.096694,-0.093013,-0.056824 0.020084,-0.026622,-0.071382,-0.061652,-0.079167,0.020084,-0.079167,-0.079167,-0.090843,-0.098628,-0.026622,0.0025688,-0.071382,-0.10252,-0.094736,0.69538,-0.020784,-0.06749,-0.10252,-0.10641,0.63116,0.0045149,-0.0013233,-0.090843,-0.10252 0.53119,0.54396,0.25609,0.024064,0.26461,-0.11246,-0.11366,0.25712,0.023724,0.026107,-0.11332,-0.11366,-0.11297,-0.11349,-0.11383,-0.11366,-0.1128,-0.11332,-0.11366,-0.11383,-0.11263,-0.11263,-0.11383,-0.11332,-0.11383 -0.085774,-0.087553,-0.086663,-0.087997,-0.077773,-0.088442,-0.084885,-0.088442,-0.088442,0.45565,-0.087553,-0.086219,-0.087108,-0.091109,0.46143,-0.087108,-0.087997,-0.087997,-0.087108,0.46143,-0.089775,-0.085774,-0.084885,-0.09422,0.45432 -0.087912,-0.076351,-0.089952,-0.095392,-0.091992,-0.051871,-0.051871,-0.086551,-0.080431,-0.072951,-0.036911,-0.062071,-0.093352,-0.051871,-0.055951,-0.053231,-0.021271,-0.071591,-0.051871,-0.043711,0.85662,-0.021951,-0.078391,0.28813,0.28269 0.39879,0.41008,-0.14435,-0.11815,-0.1121,0.39274,0.39476,-0.14234,-0.14032,-0.093145,0.38992,-0.072581,-0.080645,-0.12419,-0.12742,-0.070968,-0.074194,-0.077016,-0.083468,-0.11573,-0.068952,-0.072581,-0.072581,-0.10081,-0.094758 -0.10779,-0.10654,-0.082143,-0.072135,-0.069633,-0.091526,-0.10341,-0.07839,-0.074637,-0.075888,-0.095279,-0.082143,-0.076514,-0.077765,-0.081518,-0.10967,-0.10591,-0.075888,-0.079641,-0.076514,-0.10654,0.45956,0.45956,0.45455,0.4558 -0.28311,-0.27916,-0.28022,-0.28048,-0.276,0.109,-0.28153,-0.28074,-0.28048,0.12717,0.11085,0.1069,0.10953,0.11927,0.12691,0.11164,0.10874,0.10532,0.11848,0.12665,0.11927,0.10795,0.11532,0.12059,0.39815 -0.11164,-0.12645,-0.12792,-0.12808,0.32087,-0.11196,-0.12303,-0.12662,-0.13004,0.3238,-0.11782,-0.12678,-0.12597,-0.12857,0.31924,-0.12531,-0.12759,-0.12613,0.31891,0.32054,-0.12743,-0.12531,-0.12776,0.32054,0.32054 0.43773,0.08377,0.17226,0.34924,0.29025,-0.034216,0.17226,0.17226,0.20176,0.08377,-0.034216,0.054274,0.024777,-0.034216,-0.12271,-0.27019,-0.093209,-0.12271,-0.29969,-0.034216,-0.35868,-0.1522,-0.12271,-0.27019,-0.093209 -0.1734,-0.17236,-0.18529,-0.17495,0.2543,-0.093753,-0.16874,-0.19046,0.24551,0.25482,-0.13047,-0.17443,0.2362,0.25844,0.33188,-0.17029,-0.15426,-0.15633,0.20621,0.25741,-0.17236,-0.15116,-0.15116,0.18086,0.19379 0.052743,0.21266,0.17849,-0.262,-0.28017,0.064373,0.15887,0.071642,-0.25618,-0.28162,0.14724,0.15451,0.19158,-0.25836,-0.27436,-0.0039543,0.17631,0.15669,0.15378,-0.30125,0.0062221,0.2381,0.12834,0.14869,-0.32233 -0.16018,-0.16883,-0.16883,-0.15096,-0.050034,-0.086943,-0.17229,-0.16364,-0.15557,-0.055801,-0.16364,-0.17691,-0.17114,-0.080599,-0.047728,0.28272,0.36288,0.24178,-0.088673,-0.041384,0.2683,0.41652,0.3427,0.24293,-0.054648 -0.071262,-0.08369,-0.086176,-0.088661,0.44978,-0.089593,-0.083069,-0.085865,-0.088972,0.45382,-0.10078,-0.085865,-0.086797,-0.090215,0.45879,-0.10016,-0.095497,-0.081204,-0.074369,0.46904,-0.1014,-0.10016,-0.084311,-0.076544,-0.076855 0.23561,0.20777,0.19167,0.19863,0.19863,0.22169,0.233,0.18906,0.18254,-0.1959,0.22865,0.21603,0.18906,-0.18981,-0.19677,-0.18329,-0.18894,-0.17415,-0.18981,-0.19938,-0.1959,-0.19851,-0.18981,-0.18938,-0.20069 -0.081497,0.10164,-0.058605,0.239,0.58238,-0.17307,-0.058605,0.14743,0.14743,0.5366,-0.17307,-0.19596,-0.035712,-0.058605,0.14743,-0.10439,-0.12728,-0.081497,-0.081497,-0.035712,-0.12728,-0.10439,-0.12728,-0.15017,-0.12728 -0.18367,-0.18367,-0.15806,-0.11452,-0.1555,-0.088914,-0.073549,-0.063305,-0.11452,-0.12221,-0.027453,-0.012087,-0.04794,-0.094036,-0.10684,0.085227,0.10315,0.085227,-0.068427,-0.083793,0.50521,0.51034,0.49497,-0.032575,-0.053062 -0.15542,-0.17609,-0.17291,-0.16019,-0.15701,-0.12839,-0.1745,-0.16337,-0.16417,-0.15701,-0.11886,0.20944,-0.16576,-0.15383,-0.16337,0.34776,0.36048,0.14267,-0.1586,0.17367,0.33106,0.13631,0.21978,0.21898,0.22932 -0.075995,-0.081207,0.16116,0.14422,0.13119,-0.083814,-0.06948,0.14162,0.13901,0.1338,-0.38482,0.090798,0.12337,0.14683,0.1338,-0.35225,-0.34703,0.13119,0.13641,0.14162,-0.37961,-0.38091,0.14422,0.14162,0.11425 0.12603,0.29646,0.2346,0.23243,0.22594,0.14769,0.15078,0.23151,-0.14801,0.26986,0.25161,0.15078,-0.14491,-0.14801,0.1217,-0.20183,-0.19842,-0.19533,-0.1944,-0.19657,-0.20152,-0.20183,-0.20368,-0.20244,-0.20244 0.049185,0.023568,0.023568,0.10042,-0.13013,0.023568,0.10042,0.25412,-0.053284,-0.20699,0.20289,0.15165,0.25412,-0.13013,-0.20699,0.15165,0.25412,0.023568,-0.13013,-0.43754,0.2285,0.25412,-0.13013,-0.28384,-0.38631 0.16751,0.16487,0.16165,0.15842,-0.24564,0.16722,0.16341,0.16077,-0.24447,-0.24476,0.16678,0.16341,0.16106,-0.24476,-0.24505,0.16619,0.16443,0.15989,-0.24447,-0.24417,-0.24622,0.16341,0.16033,-0.24534,-0.24447 0.20479,0.20288,0.22623,-0.11399,-0.11661,0.20645,0.21598,0.23075,-0.11613,-0.11375,0.21312,0.21384,-0.11851,-0.11542,-0.11446,0.20193,0.19216,-0.11732,-0.11351,-0.3558,-0.089208,0.19621,-0.11565,-0.35175,-0.35223 0.79565,0.32761,0.24789,-0.027695,-0.10513,-0.06072,-0.016307,0.2422,-0.081218,-0.1188,-0.068691,-0.070969,-0.072108,-0.077802,-0.14043,-0.064136,-0.068691,-0.066414,-0.078941,-0.10513,-0.067553,-0.067553,-0.067553,-0.077802,-0.10969 0.51645,0.53232,0.53708,0.037197,0.0022852,-0.050083,-0.05167,0.029263,-0.09293,-0.077061,-0.035801,-0.094517,-0.10086,-0.11356,-0.073887,-0.038975,-0.11039,-0.11039,-0.11832,-0.11832,-0.050083,-0.089756,-0.11515,-0.11991,-0.09293 -0.21179,-0.21179,-0.10224,-0.21179,0.482,-0.21179,-0.13876,-0.065727,0.080333,0.15336,-0.21179,-0.10224,-0.13876,0.043818,0.26291,-0.10224,-0.13876,0.007303,0.080333,0.40897,-0.065727,-0.029212,0.043818,-0.029212,0.40897 0.53643,0.52934,-0.080536,-0.081324,-0.082111,0.53774,-0.081324,-0.081324,-0.083161,-0.082899,0.0825,-0.081586,-0.081586,-0.081849,-0.082636,-0.062421,-0.081586,-0.081586,-0.082374,-0.083161,-0.062684,-0.081324,-0.083949,-0.082636,-0.083949 -0.12794,-0.12569,-0.12868,-0.12719,-0.12719,-0.12345,-0.11896,-0.11522,-0.11447,-0.1212,0.35538,-0.101,-0.10774,-0.10699,-0.11148,0.38156,0.32321,-0.088283,-0.099506,-0.099506,0.42047,0.3464,0.29403,-0.086039,-0.090528 0.032623,0.034207,0.41922,0.42278,0.71471,-0.063629,-0.068383,-0.077493,-0.078681,-0.080662,-0.079077,-0.081454,-0.081454,-0.084227,-0.085019,-0.081454,-0.082246,-0.083038,-0.084623,-0.088188,-0.081454,-0.083038,-0.085019,-0.085415,-0.08898 0.30631,-0.070244,0.43639,0.39874,0.25154,0.21046,0.18307,0.1283,0.0050663,0.080377,-0.015473,0.073531,0.070107,-0.13529,-0.12502,-0.10105,-0.12502,-0.17636,-0.26194,-0.14555,-0.2106,-0.2106,-0.20033,-0.20033,-0.16609 0.28792,0.27386,0.27386,0.032825,-0.11536,0.28511,0.27855,0.27479,0.075967,-0.13974,0.2823,0.27479,-0.12474,-0.14537,-0.18101,-0.14537,-0.14256,-0.16506,-0.17351,-0.17913,-0.15287,-0.16225,-0.16506,-0.17257,-0.17538 0.26401,0.26401,0.2645,0.28231,0.28281,-0.10459,0.26351,0.26895,0.41541,-0.16842,-0.12092,-0.12488,-0.12587,-0.1605,-0.16199,-0.13082,-0.13131,-0.13082,-0.12933,-0.13725,-0.13576,-0.1328,-0.1328,-0.13477,-0.14269 0.23383,0.067994,-0.18077,-0.18077,-0.18077,0.10945,-0.056385,-0.014926,-0.18077,0.15091,0.35821,0.10945,-0.13931,-0.18077,-0.18077,0.27529,0.10945,-0.18077,-0.014926,-0.18077,0.48259,0.27529,-0.18077,-0.13931,-0.18077 -0.072208,-0.037412,-0.030031,-0.040575,0.97802,-0.066936,-0.040575,-0.025813,-0.034248,-0.023704,-0.044793,-0.053228,-0.031085,-0.036357,-0.050065,-0.046902,-0.054283,-0.025813,-0.034248,-0.033194,-0.050065,-0.043738,-0.026867,-0.042684,-0.033194 -0.28725,-0.28976,0.14228,0.11826,0.1143,-0.2883,-0.29143,0.13393,0.13455,0.11471,-0.2906,-0.29289,0.14207,0.13622,0.11471,-0.29039,0.14938,0.14416,0.14082,0.11409,-0.2908,0.21474,0.14332,0.14854,0.11534 -0.21385,-0.21324,-0.21385,-0.21202,-0.21202,-0.21354,-0.21537,-0.21628,-0.21142,-0.21506,0.30627,0.069163,0.31722,0.028733,0.026301,0.069771,0.071899,0.31509,0.32512,0.026301,0.069163,0.068555,0.33211,0.078587,0.032381 -0.12978,-0.12978,-0.019866,0.00048851,0.96732,-0.0015469,-0.052433,-0.01376,-0.046327,-0.028008,-0.058539,-0.01783,-0.04022,-0.058539,-0.036149,-0.048362,-0.054468,-0.04022,-0.052433,-0.050397,-0.01376,-0.01783,-0.0035824,-0.021901,-0.032079 -0.39947,-0.3511,0.17028,0.11116,0.12191,-0.36453,-0.30003,0.16759,0.22672,0.26972,-0.25703,-0.20328,0.19447,0.15684,0.17028,-0.047408,-0.042033,-0.017845,0.027843,0.14878,-0.042033,-0.039345,-0.03397,0.16491,0.16759 -0.21329,-0.22853,-0.19535,-0.19894,-0.21598,-0.18459,-0.16396,-0.16127,-0.18907,-0.20342,-0.14693,0.2611,0.28621,-0.16935,-0.18907,0.22882,0.21447,0.23151,0.2342,0.21088,0.15528,0.17412,0.13645,0.16336,0.16336 -0.28697,-0.2875,-0.28732,-0.28857,-0.28786,0.18136,0.15646,-0.2843,-0.28786,-0.28786,0.1835,0.15646,0.087982,0.092962,0.096697,0.19026,0.15664,0.15575,0.086737,0.091895,0.19933,0.1698,0.11502,0.087092,0.090294 0.64516,-0.0069398,0.0020341,-0.039844,-0.036853,0.64815,0.011008,-0.0548,-0.075739,-0.060783,0.052886,-0.0099311,-0.084713,-0.1236,-0.12659,0.019982,-0.015914,-0.1236,-0.12958,-0.13557,0.052886,-0.0099311,-0.13257,-0.12958,-0.13557 0.13209,0.12839,0.12767,-0.27054,-0.274,0.13281,0.12731,0.12576,0.12755,-0.52088,0.1297,0.12779,0.12612,-0.27866,-0.27544,0.1291,0.12576,0.12457,0.12648,-0.27448,0.0042903,0.12385,0.12385,0.12612,-0.2752 0.73928,0.52985,0.1843,-0.01466,-0.035603,0.037697,-0.025131,-0.01466,-0.12984,-0.0041885,-0.1089,-0.035603,-0.067017,-0.067017,-0.077488,-0.098431,-0.067017,-0.067017,-0.056545,-0.077488,-0.12984,-0.1089,-0.14032,-0.087959,-0.077488 -0.084877,-0.1081,-0.10757,-0.11074,-0.0051927,-0.089099,-0.092793,-0.10968,-0.097543,-0.0051927,-0.11074,-0.10546,-0.12129,0.01275,0.042302,-0.10968,-0.11812,-0.12023,0.46078,0.44125,-0.10968,-0.11654,-0.11918,0.42595,0.45867 0.15418,0.0039913,0.13926,0.13,-0.28609,0.15521,0.0091346,0.13823,0.12537,-0.28918,0.15829,0.0081059,0.14132,0.13412,-0.29021,0.15932,0.14595,0.13926,-0.28764,-0.32261,0.16035,0.14903,0.13155,-0.3617,-0.34524 -0.098115,-0.14267,-0.16495,-0.185,-0.15381,0.2227,-0.14267,-0.17832,-0.16941,-0.14044,0.23606,0.1826,-0.16941,-0.15604,-0.12485,0.24498,0.24052,0.2227,-0.13376,-0.14936,0.34077,0.33186,0.33409,-0.10257,-0.1449 -0.1397,-0.13937,-0.14034,-0.14388,-0.14484,-0.14034,-0.14002,-0.14066,-0.14227,-0.14291,-0.13777,-0.14098,-0.1397,-0.14291,-0.14227,0.29633,0.29922,0.31273,0.30951,-0.1413,-0.048374,0.29955,0.30212,0.30533,0.18282 0.36432,0.33046,-0.085342,-0.16248,-0.15872,0.3869,0.31164,-0.055239,-0.13238,-0.14555,0.38878,0.32293,-0.047713,-0.1399,-0.14743,-0.08346,-0.08346,-0.079698,-0.12861,-0.1399,-0.085342,-0.096631,-0.079698,-0.11921,-0.13426 -0.31422,-0.22033,0.12393,0.12393,-0.095141,-0.28292,-0.095141,0.030045,0.34301,0.12393,-0.22033,-0.25162,0.12393,0.21782,0.12393,-0.31422,0.030045,0.21782,0.21782,0.12393,-0.22033,-0.25162,0.12393,0.21782,0.12393 -0.39524,-0.37568,-0.21914,0.015653,0.13305,-0.31698,-0.23871,-0.12131,0.11349,0.21132,-0.25828,-0.14088,0.11349,0.13305,0.28958,-0.082179,-0.0039133,0.17219,0.21132,0.21132,-0.0039133,0.11349,0.13305,0.11349,0.19175 0.28806,0.287,0.2886,0.28647,0.287,-0.21119,-0.10074,0.28487,0.28434,0.28407,-0.20294,-0.1034,-0.105,-0.10447,-0.105,-0.20533,-0.105,-0.10553,-0.10607,-0.10607,-0.20533,-0.2032,-0.10686,-0.1082,-0.10607 -0.030639,0.075014,0.18067,0.075014,0.25991,0.18067,-0.0042261,0.18067,0.12784,0.075014,0.075014,-0.030639,0.18067,0.022187,0.12784,0.075014,0.18067,0.022187,0.022187,0.022187,-0.29477,-0.29477,-0.29477,-0.40043,-0.53249 -0.12348,-0.1237,-0.12415,-0.12426,-0.1237,-0.12247,-0.12258,-0.12236,-0.12303,-0.12303,-0.12079,-0.12158,-0.12146,-0.12191,-0.12214,0.39502,0.34636,-0.12023,-0.12079,-0.12135,0.39334,0.34468,0.30083,0.23304,0.18975 -0.40058,-0.40973,-0.38573,-0.3903,-0.37544,0.17883,0.10797,0.12854,0.1194,0.12854,0.15826,0.11026,0.082832,0.096546,0.11483,0.095403,0.088546,0.048547,0.11026,0.098831,0.08626,0.00054856,-0.0051656,0.12626,0.08626 -0.11251,-0.11302,-0.11502,-0.11502,0.39577,-0.11051,-0.11302,-0.11352,-0.12104,0.35964,-0.1075,-0.11402,-0.11552,0.32903,0.33706,-0.108,-0.1085,-0.10699,-0.11854,0.35261,-0.1095,-0.108,-0.109,-0.11302,0.35813 0.18469,0.18738,0.17006,0.27903,-0.24073,0.15603,0.15484,0.15573,-0.24043,-0.24222,0.15006,0.14886,0.14886,-0.24372,-0.24431,0.15006,0.14857,-0.23954,-0.24222,-0.24342,0.14946,0.12558,0.11632,-0.24222,-0.2467 0.15518,-0.040479,-0.041427,-0.28238,-0.28262,0.1566,0.1566,0.15897,-0.28214,-0.28357,0.15518,0.15518,0.15826,0.16063,-0.28238,0.14806,0.15044,0.15968,0.15897,-0.28309,0.15423,0.15565,0.14949,-0.27716,-0.27788 -0.11743,-0.12328,-0.12783,-0.12978,0.33111,-0.12133,-0.12133,-0.12133,-0.13563,0.30381,-0.11873,-0.12523,-0.12588,-0.12458,0.30576,-0.11938,-0.12783,-0.13043,0.28951,0.30121,-0.12393,-0.12133,-0.12458,0.34801,0.36036 0.14577,0.080371,-0.072232,-0.1013,-0.057698,0.13124,-0.064965,-0.094032,-0.10857,-0.1122,0.29111,-0.050432,-0.097666,-0.10493,-0.11583,0.80342,-0.028631,-0.086765,-0.10493,-0.1122,0.23661,-0.024998,-0.079499,-0.1231,-0.14853 -0.14729,-0.146,-0.14643,-0.14665,-0.14643,-0.14557,-0.14621,-0.146,-0.14276,-0.14254,-0.14514,-0.14492,-0.14492,0.029568,-0.023556,0.025681,0.029784,0.030648,0.41979,0.42173,0.041229,0.033023,0.030648,0.4254,0.42691 0.54895,0.51993,-0.081179,-0.083598,-0.061828,0.55379,-0.059409,-0.072713,-0.067875,-0.066666,-0.071504,-0.0582,-0.070294,-0.069085,-0.082389,-0.077551,-0.076342,-0.072713,-0.082389,-0.087227,-0.070294,-0.05699,-0.077551,-0.088436,-0.088436 0.31832,0.31973,0.32019,0.31832,0.31552,-0.12823,0.32674,0.32019,-0.10953,-0.10766,-0.14974,-0.13946,-0.10392,-0.10953,-0.10766,-0.14787,-0.14086,-0.13338,-0.10953,-0.1086,-0.14554,-0.14086,-0.14133,-0.10813,-0.10719 0.14182,0.17093,0.15568,-0.27538,-0.30033,0.057272,0.1335,0.19588,0.13628,-0.27677,0.047569,0.097467,0.13073,0.12796,-0.2837,0.25964,0.046183,0.20835,-0.25875,-0.29894,0.1335,0.039253,0.17647,-0.26152,-0.3031 -0.37266,-0.37143,-0.37143,-0.36917,-0.36896,-0.034102,-0.035335,0.1208,0.12799,0.12388,-0.032253,0.15921,0.16188,0.12573,0.12162,-0.03328,-0.031226,0.16188,0.16209,0.12716,-0.032664,0.15757,0.17072,0.16558,0.1664 0.89209,-0.0040326,0.046374,0.057576,-0.15525,-0.065641,0.046374,0.057576,-0.17206,-0.17766,-0.065641,0.051975,0.046374,-0.15525,-0.032036,-0.043238,0.029572,0.023971,-0.099246,-0.076843,0.063177,0.040774,-0.015234,-0.12165,-0.17206 0.14738,0.14764,0.14893,0.1479,0.14582,0.14297,0.14271,0.14245,-0.29095,-0.2938,0.13468,0.13545,0.13675,-0.29224,-0.29121,0.12794,0.12975,0.13001,-0.29069,-0.2938,0.12379,0.12379,0.12275,-0.28628,-0.29173 0.33062,0.32371,0.31719,0.31661,0.31968,-0.11873,-0.11642,0.32179,0.3145,-0.13292,-0.11911,-0.12064,-0.12218,-0.13407,-0.13407,-0.12391,-0.12141,-0.12602,-0.13388,-0.12026,-0.12256,-0.12391,-0.12314,-0.13177,-0.11911 -0.14596,-0.14661,0.1421,0.1408,0.14123,-0.14509,-0.14661,-0.14661,0.31875,0.31507,-0.14379,-0.14466,-0.14488,0.31745,0.31723,-0.14444,-0.14509,-0.14553,-0.14596,0.31658,-0.14444,-0.14639,-0.14423,-0.14466,0.31572 -0.3956,-0.084006,-0.084735,-0.083276,-0.085465,-0.075979,-0.077438,-0.080357,-0.085465,-0.085465,-0.074519,-0.054817,-0.075979,-0.077438,-0.079627,0.11375,-0.070871,-0.075979,-0.079627,-0.081087,0.12105,0.14075,0.49539,0.47861,0.45818 0.089829,0.14783,0.14957,0.16059,-0.3179,0.073299,0.10056,0.15305,0.15885,-0.3179,0.082869,0.10027,0.15479,0.14377,-0.3179,0.071559,0.16291,0.15363,-0.31848,-0.31674,0.069239,0.10288,0.14522,-0.315,-0.31674 -0.13534,-0.13805,-0.13379,-0.12255,-0.026832,-0.13805,-0.13573,-0.12681,-0.12759,-0.025282,-0.13069,-0.12333,-0.12643,-0.02567,-0.028382,-0.11984,-0.12798,-0.025282,0.39053,0.3917,-0.11441,-0.022182,0.38821,0.39208,0.3917 -0.17204,-0.17442,-0.1768,-0.17961,-0.18134,-0.17226,-0.17507,-0.17572,-0.17853,-0.18048,0.2363,0.23522,-0.1768,-0.17875,-0.17961,0.23436,0.23306,0.22895,0.20754,-0.17853,0.23198,0.23111,0.2283,0.2084,0.20473 0.029298,-0.0022537,-0.27946,-0.20959,-0.16677,0.029298,0.0022537,-0.21861,-0.22312,-0.072118,0.065357,-0.0067611,0,-0.099162,0.0090148,0.015776,0.022537,-0.020283,-0.011268,0.074372,0.83387,0.14649,-0.0090148,0.0022537,0.087894 0.31112,-0.11654,-0.11698,-0.12544,-0.13703,0.30889,-0.12322,-0.12233,-0.1299,-0.12589,0.30221,0.32181,-0.12856,-0.11832,-0.11119,0.30399,0.39353,-0.12812,-0.12945,-0.11965,0.29508,-0.12277,-0.12723,-0.12901,-0.125 -0.087914,-0.087275,-0.086763,-0.089576,0.45835,-0.086507,-0.089832,-0.087403,-0.086763,0.4526,-0.087275,-0.089576,-0.087019,-0.084206,0.45861,-0.088681,-0.089576,-0.087019,-0.085868,0.46334,-0.089832,-0.089065,-0.086635,-0.084717,-0.081393 0.48731,0.49798,0.0084828,-0.084882,-0.1489,0.47664,0.059166,0.031157,-0.047536,-0.12223,0.068503,0.068503,0.061834,-0.10489,-0.12356,0.035158,0.036492,-0.12089,-0.10889,-0.11556,-0.095552,-0.16091,-0.21426,-0.18758,-0.19559 -0.35297,0.10324,0.1022,0.05637,0.16261,-0.35453,0.10689,0.10585,0.10585,0.14751,-0.35141,-0.36026,0.10168,0.098554,0.14751,-0.35297,0.096471,0.10376,0.10012,0.14022,-0.34985,0.098554,0.10168,0.089701,0.15324 -0.038683,-0.059938,-0.081192,-0.1051,-0.11573,-0.038683,-0.030713,-0.075879,-0.10245,-0.11307,-0.038683,-0.028056,-0.03337,-0.11042,-0.11839,0.5405,0.0064826,-0.025399,-0.11307,-0.12636,0.50596,0.54847,-0.030713,-0.097133,-0.11839 -0.050282,-0.044527,-0.041238,-0.054393,0.97657,-0.051104,-0.048638,-0.046171,-0.042883,-0.040416,-0.051926,-0.051104,-0.042883,-0.046171,-0.040416,-0.042061,-0.046171,-0.047816,-0.040416,-0.042883,-0.045349,0.027821,-0.0091751,-0.03795,-0.040416 -0.19464,-0.19263,-0.19394,0.1759,0.18295,-0.19316,-0.19124,-0.19185,0.21632,0.19053,-0.19159,-0.19072,-0.19002,0.21571,0.19027,-0.1915,-0.19072,-0.18915,0.22895,0.21675,-0.19246,0.22398,0.22015,0.21971,0.2124 -0.32512,0.12434,0.12678,0.12488,0.12597,-0.32186,0.12326,0.12543,0.12407,0.12461,-0.31915,0.12461,0.12488,0.12326,0.12244,-0.31834,-0.32376,0.12515,0.12353,0.12326,-0.31834,-0.31834,0.12624,0.12488,0.12732 -0.32276,-0.34837,-0.16906,0.21517,0.39448,-0.2203,-0.24591,-0.066601,-0.066601,0.39448,-0.092217,-0.066601,-0.040985,0.010246,0.2664,-0.040985,-0.092217,-0.066601,0.061478,0.24079,0.010246,-0.066601,-0.040985,0.035862,0.31764 0.11599,0.11599,0.13941,0.13233,0.14526,0.1138,0.11355,0.16648,0.13185,0.12477,0.11575,0.11136,0.12233,0.13185,0.1255,0.10867,0.11209,0.1138,-0.31844,-0.31942,-0.32015,-0.31966,-0.32039,-0.32112,-0.32161 -0.076663,-0.07823,-0.074052,-0.070918,-0.16231,0.38812,-0.079274,-0.076663,-0.071963,-0.16805,0.38864,-0.071963,-0.075618,-0.076663,-0.17014,0.38655,-0.074052,-0.074574,-0.07823,-0.1691,0.39439,0.41005,-0.075618,-0.077707,-0.16596 -0.22195,-0.22542,-0.22763,-0.22448,-0.22763,0.16917,-0.227,-0.22637,-0.22259,-0.22763,0.1679,0.178,0.178,-0.2229,-0.22637,0.16664,0.17642,0.16854,0.20954,0.17957,0.1679,0.1821,0.17579,0.18178,0.17863 0.13516,0.13516,0.19126,0.20852,0.20852,-0.17124,-0.011565,0.13947,0.16968,0.20852,-0.31364,-0.17987,0.018643,0.14379,0.18263,-0.32659,-0.26186,0.022958,0.048851,0.18263,-0.39564,-0.33954,-0.17555,0.048851,0.13084 0.86622,0.19745,-0.12102,0.1656,-0.025477,0.070062,-0.21656,0.0063693,-0.025477,-0.057324,0.038216,-0.025477,-0.15286,-0.057324,-0.057324,-0.025477,-0.12102,-0.12102,-0.025477,-0.15286,0.038216,-0.025477,0.038216,-0.08917,-0.12102 -0.078627,0.56735,0.41032,0.41408,0.42302,-0.080507,-0.074396,-0.083328,-0.098373,-0.1059,-0.079567,-0.080037,-0.075806,-0.098373,-0.098373,-0.078627,-0.075336,-0.076276,-0.099313,-0.099313,-0.078627,-0.077687,-0.075806,-0.10119,-0.099313 -0.17429,-0.12813,0.028802,0.33344,0.37959,-0.10044,-0.14659,-0.05428,0.33344,0.34267,-0.1189,-0.14659,-0.091206,0.30574,0.37036,-0.15583,-0.16506,-0.13736,-0.017355,0.0011078,-0.12813,-0.13736,-0.1189,-0.10967,-0.16506 -0.17757,-0.17757,-0.17757,-0.17904,-0.17659,-0.18248,-0.17757,-0.1761,-0.17806,-0.17708,0.23817,0.234,-0.1761,-0.17659,-0.17561,0.23449,0.22689,0.21781,0.21757,-0.17316,0.23106,0.22566,0.21929,0.21487,0.22125 -0.2071,0.19594,0.19913,0.17826,0.19168,-0.20817,-0.20561,0.19871,0.19189,0.19274,-0.20838,-0.20667,-0.20987,0.18976,0.19359,-0.20838,-0.20604,-0.2071,0.19083,0.19189,-0.21285,-0.20817,-0.20923,0.19061,0.19253 0.24466,0.17141,-0.01172,-0.23148,-0.15823,0.24466,0.17141,-0.2681,-0.30473,-0.2681,0.35454,0.24466,-0.19485,0.024906,-0.15823,0.17141,0.061532,0.024906,0.024906,-0.084973,0.31792,0.024906,-0.2681,0.061532,-0.19485 -0.029202,-0.05624,-0.083279,-0.029202,0.59268,0.024875,-0.029202,-0.029202,-0.16439,0.53861,-0.0021631,-0.029202,-0.11032,-0.11032,0.29526,-0.029202,-0.11032,-0.05624,-0.19143,0.13303,-0.083279,-0.19143,-0.19143,-0.19143,0.13303 0.45867,0.45867,-0.077386,-0.076042,-0.077386,0.46405,-0.042455,-0.090821,-0.080073,-0.085447,0.44792,-0.069325,-0.085447,-0.090821,-0.090821,-0.093508,-0.10157,-0.08679,-0.089477,-0.098882,-0.10157,-0.1056,-0.097538,-0.098882,-0.089477 -0.26096,-0.26366,-0.26433,-0.25826,-0.26062,-0.26231,-0.26231,-0.26771,0.089762,0.090775,-0.25083,0.096513,0.19542,0.19407,0.092125,0.097526,0.10664,0.19508,0.19542,0.19373,0.098539,0.20183,0.20183,0.19778,0.10394 -0.18736,0.20955,0.21316,0.20697,0.20182,-0.19097,-0.19252,-0.19922,0.20852,0.20491,-0.18994,-0.192,-0.19252,0.2013,0.21161,-0.19046,-0.19149,-0.19303,0.20852,0.21316,-0.19046,-0.19097,-0.19664,0.2147,0.20336 0.12122,0.3055,-0.19616,-0.25076,-0.15179,0.20312,0.13145,-0.21322,-0.24052,-0.10743,0.20653,0.15876,-0.2064,-0.21322,-0.17909,0.26796,0.11098,-0.18592,-0.19616,0.090503,0.40105,0.19971,0.046139,-0.17909,0.076852 -0.028036,-0.19527,0.0051645,0.030987,0.95076,0.030987,-0.0046727,-0.01451,-0.061237,-0.073533,-0.037873,-0.053859,-0.024347,-0.046481,-0.067385,-0.10919,-0.063696,-0.029266,-0.024347,-0.019428,-0.071074,-0.073533,-0.046481,-0.028036,0.05435 -0.17189,-0.1384,-0.041264,0.035771,0.035771,-0.19198,-0.14844,0.35061,0.35396,0.30037,-0.22213,-0.20538,-0.074757,0.33051,0.28027,-0.20538,-0.22213,-0.084805,0.055867,0.153,-0.22213,-0.20538,-0.054661,0.11281,0.17979 -0.089169,-0.091001,-0.093444,-0.092222,-0.094665,-0.09039,-0.092222,-0.094665,-0.094665,-0.092222,-0.089779,-0.089169,-0.091612,-0.094055,-0.093444,-0.089779,-0.075732,-0.087947,-0.092222,-0.093444,0.62174,0.044584,0.38965,0.38843,0.37744 -0.042684,-0.061405,-0.11757,-0.090824,-0.11489,-0.031986,-0.066754,-0.080126,-0.11757,-0.10152,0.00010698,-0.045358,-0.074777,-0.093498,-0.090824,0.62593,-0.031986,-0.053382,-0.085475,-0.080126,0.46011,0.51092,-0.050707,-0.088149,-0.077452 0.94205,-0.025494,-0.021852,-0.0084978,0.002428,-0.15903,-0.026708,-0.015782,-0.010926,-0.0060699,-0.16632,-0.025494,-0.0060699,-0.002428,0.0048559,-0.13961,-0.026708,-0.0072839,-0.002428,-0.002428,-0.13839,-0.1299,-0.0097118,-0.0097118,-0.0084978 0.31846,0.31846,-0.049388,-0.044836,-0.2767,0.31334,0.32045,-0.043129,-0.041422,-0.27357,0.31306,0.32244,-0.041707,-0.041707,-0.273,-0.035732,-0.034594,-0.034594,-0.034594,-0.27129,-0.036301,-0.033741,-0.035732,-0.032887,-0.27129 0.41988,0.35647,0.022135,0.010606,0.17201,0.3507,0.35647,0.027899,0.045192,0.21812,0.085543,-0.06433,-0.12774,-0.15656,-0.018215,-0.087388,-0.13927,-0.22573,-0.22573,-0.13927,-0.093152,-0.17962,-0.17962,-0.20844,-0.21997 -0.3218,0.13056,0.12949,0.12949,0.12896,-0.3194,0.12175,0.12095,0.12202,0.12068,-0.32207,0.12148,0.12068,0.12068,0.12095,-0.3178,-0.3234,0.12228,0.12228,0.12175,-0.31967,-0.32047,0.12896,0.13029,0.13136 0.00071618,-0.12324,-0.21552,-0.18384,-0.19072,0.16048,-0.00066109,-0.17695,-0.18935,-0.18797,0.13431,0.323,-0.12875,-0.18246,-0.17695,0.21006,0.30096,0.31198,-0.15492,-0.18797,0.18803,0.2803,0.27342,0.12054,-0.2045 -0.14888,-0.14958,-0.1493,-0.14958,0.22997,-0.1493,-0.14972,-0.14944,-0.15111,0.26738,-0.1493,-0.14972,-0.15055,0.271,0.2685,-0.14986,-0.15041,-0.15222,0.27197,0.26919,-0.14999,-0.14916,0.27712,0.27323,0.26975 0.84877,0.20697,0.11719,-0.13887,-0.1555,-0.032456,0.14379,0.15044,0.030727,-0.1688,-0.088987,-0.025805,0.060655,-0.02248,-0.092313,-0.12889,-0.098964,-0.062384,-0.062384,-0.062384,-0.13887,-0.12889,-0.088987,-0.049083,-0.012503 -0.16974,-0.19371,-0.24166,-0.12179,0.022056,-0.12179,-0.24166,-0.025892,-0.097815,0.1659,-0.16974,-0.16974,-0.025892,0.093979,0.28577,-0.19371,-0.14576,0.070005,0.1659,0.28577,-0.14576,-0.049866,0.21385,0.28577,0.52552 -0.089614,-0.10601,-0.065025,0.044261,0.90352,-0.088248,-0.082784,-0.089614,-0.017213,-0.021311,-0.049998,-0.086882,-0.08415,-0.048632,0.048359,-0.043168,-0.070489,-0.075954,-0.043168,0.078413,-0.066391,-0.070489,-0.099177,-0.043168,0.26693 0.15049,0.13201,0.13201,0.12431,0.12277,0.15357,0.15049,0.12893,0.13047,0.12585,0.15203,0.15203,0.13971,0.13201,0.12739,-0.29149,0.14741,-0.29149,-0.30689,0.12739,-0.27609,-0.27455,-0.30689,-0.28995,-0.29149 0.24644,-0.17739,-0.1485,-0.20244,-0.21785,0.21754,0.25993,-0.14272,-0.20051,-0.22363,0.22525,0.24837,-0.14657,-0.19859,-0.20051,0.21754,0.21176,-0.13886,-0.16006,-0.15042,0.21369,0.19828,0.20406,0.21947,-0.15428 -0.088819,-0.080039,-0.090415,-0.096801,0.46431,-0.084828,-0.078443,-0.08403,-0.095204,0.46431,-0.088819,-0.080039,-0.08403,-0.096801,0.4667,-0.08403,-0.079241,-0.089617,-0.094406,0.43637,-0.087223,-0.079241,-0.087223,-0.099993,-0.082434 -0.085158,-0.12458,-0.085158,0.033117,0.38794,-0.36113,-0.045733,0.11197,0.11197,0.34852,-0.36113,0.11197,-0.085158,0.11197,0.15139,-0.36113,-0.045733,-0.12458,0.15139,0.15139,-0.12458,-0.12458,-0.006308,-0.085158,0.34852 -0.025532,-0.028492,-0.0504,-0.050992,0.97809,-0.026716,-0.030861,-0.058098,-0.050992,-0.052769,-0.024348,-0.029677,-0.049808,-0.053361,-0.050992,-0.021979,-0.030269,-0.048624,-0.053953,-0.050992,-0.026124,-0.028492,-0.037374,-0.046848,-0.0504 0.12819,0.11091,-0.094023,-0.17056,-0.13106,0.37017,-0.11624,-0.14834,-0.16069,-0.15081,0.41708,-0.13353,-0.1681,-0.1434,-0.12859,0.39979,-0.089085,-0.16316,-0.11871,-0.12118,0.39979,-0.037234,-0.056986,0.19486,0.11091 -0.11211,-0.11041,-0.10531,-0.10914,-0.11041,-0.11041,-0.11084,-0.10701,-0.10701,-0.10914,-0.10573,-0.10743,-0.10786,-0.10871,0.39374,-0.10573,-0.10531,-0.10701,0.39119,0.3963,-0.10531,-0.10531,0.08657,0.38864,0.39374 0.17141,0.19227,0.2171,0.53093,0.5061,-0.092759,0.19426,-0.093752,-0.12553,0.25782,-0.095738,-0.10269,-0.093752,-0.13447,-0.092759,-0.10666,-0.10865,-0.1295,-0.13844,-0.11361,-0.092759,-0.13745,-0.14043,-0.13646,-0.13447 -0.15403,-0.15403,-0.23482,0.30375,0.14218,-0.1271,-0.073245,-0.18096,0.19604,0.38454,-0.046317,-0.15403,-0.1271,0.14218,0.30375,-0.1271,-0.15403,-0.26174,0.11525,0.088325,-0.073245,-0.073245,-0.28867,0.19604,0.35761 0.39182,0.38851,-0.0515,0.19222,0.19442,0.38135,0.36866,-0.058117,0.18836,0.0058448,-0.16013,-0.15571,-0.047089,-0.03937,-0.043229,-0.16013,-0.16178,-0.1513,-0.15351,-0.14413,-0.15957,-0.16013,-0.15737,-0.15406,-0.15406 -0.17876,-0.17876,-0.17725,-0.17675,-0.17675,-0.17299,-0.17851,-0.1765,-0.17776,-0.17525,0.22619,0.22895,-0.17801,-0.17926,-0.17725,0.22293,0.22519,0.22469,0.23321,-0.17776,0.21516,0.22018,0.22669,0.22619,0.2322 0.28469,-0.13892,-0.13478,-0.14511,-0.13134,0.30053,-0.14305,-0.14718,-0.1396,-0.12927,0.31293,0.32326,-0.14511,-0.12721,-0.11481,0.30398,0.3763,-0.13065,-0.11274,-0.10172,0.33015,-0.088634,-0.10379,-0.11205,-0.085878 0.20002,0.22715,0.28143,0.31083,0.066581,0.14121,0.080151,0.28596,0.26108,-0.10982,0.059797,0.066581,0.23168,-0.12113,-0.15279,-0.1053,0.012303,-0.082684,-0.15279,-0.19576,-0.18219,-0.1935,-0.29301,-0.28849,-0.34729 -0.10942,-0.10424,-0.099865,-0.098273,-0.098671,-0.10902,-0.10862,-0.10186,-0.10225,-0.10225,-0.091904,-0.10822,-0.10424,-0.099865,-0.096283,0.44946,0.44468,-0.0039328,-0.0059231,-0.12295,0.45662,0.45105,-0.00074835,-0.0083115,-0.12494 0.36271,0.32985,0.1163,-0.11367,-0.19581,0.39556,0.24772,0.034168,-0.14653,-0.097247,0.34628,0.16558,-0.03154,-0.24509,-0.17938,-0.080821,0.034168,0.067022,-0.22866,-0.24509,-0.1301,-0.097247,0.017741,-0.16296,-0.16296 0.057263,0.0038547,-0.065344,-0.067666,-0.46521,0.059121,0.18405,0.0022292,-0.069756,-0.46869,0.056334,0.1873,0.1866,0.0040869,-0.46544,0.18359,0.18266,0.18451,0.0047835,-0.085082,0.1808,0.18173,0.18335,-0.072078,-0.082992 -0.2999,-0.29882,-0.29925,-0.40566,-0.40415,0.11364,0.11191,0.11493,0.11472,-0.40912,0.11147,0.11018,0.11255,0.11364,0.11255,0.11018,0.10953,0.11191,0.11255,0.11191,0.10823,0.10715,0.10953,0.11126,0.10909 0.10387,-0.30585,-0.292,-0.30992,-0.30748,0.17474,0.072104,0.0012381,-0.28874,-0.27978,0.21058,0.12179,0.028933,-0.045191,-0.13561,0.25864,0.18451,0.085137,-0.0020201,-0.072886,0.38489,0.22931,0.15112,0.063144,-0.030529 -0.16024,-0.078928,-0.14746,-0.14959,-0.15136,-0.17089,-0.076087,-0.075732,-0.076797,-0.078928,0.16466,-0.073247,-0.076087,-0.077508,-0.074312,0.15152,0.15578,-0.079993,-0.079283,-0.072892,0.80132,0.16963,0.16821,0.16679,-0.078573 0.43983,0.079372,-0.020557,-0.081227,-0.084796,0.55403,0.0044254,-0.095503,-0.095503,-0.095503,0.58615,-0.059814,-0.081227,-0.095503,-0.095503,-0.016988,-0.095503,-0.095503,-0.095503,-0.095503,-0.10621,-0.10621,-0.081227,-0.081227,-0.084796 -0.26711,-0.27793,0.13413,0.19544,0.19635,-0.25899,-0.26981,0.13413,0.13864,0.23241,-0.24817,-0.27162,0.13323,0.13413,0.14766,0.13413,-0.26711,0.13233,0.13233,0.13774,-0.25899,-0.2626,0.13052,0.13052,0.13864 0.56779,0.50286,-0.02961,-0.068571,-0.081558,0.34701,0.33402,0.035325,-0.081558,-0.15948,-0.081558,-0.081558,-0.042597,-0.055584,-0.14649,-0.081558,-0.10753,-0.094545,-0.17247,-0.15948,-0.081558,-0.068571,-0.055584,-0.042597,-0.094545 0.37233,-0.1151,-0.11886,-0.12074,-0.13107,0.33194,-0.12074,-0.11886,0.064277,-0.12356,0.3094,-0.11886,0.16383,-0.06439,-0.10759,0.28592,0.14411,-0.2541,-0.025884,-0.16206,0.34321,0.17979,-0.083173,-0.25692,-0.27289 0.22723,0.26277,0.052087,0.23992,0.29831,0.11808,0.19677,0.1587,0.18662,0.18154,0.04701,-0.17636,0.041933,0.041933,0.12062,-0.1789,-0.21698,-0.30582,-0.22205,-0.21952,0.13331,-0.27028,-0.25505,-0.21698,-0.2449 -0.18954,-0.19283,-0.19941,-0.19868,-0.19978,-0.20088,-0.19978,-0.19978,-0.20014,-0.20014,-0.20088,-0.19905,0.22813,0.17985,0.1089,0.332,0.22996,0.22923,0.11585,0.10415,0.32761,0.23727,0.095735,0.091346,0.10086 0.44747,0.4836,-0.031252,-0.056092,-0.10577,0.44295,-0.074157,-0.05835,-0.056092,-0.096738,0.44521,-0.060608,-0.087705,-0.092221,-0.10351,-0.05835,-0.10803,-0.12609,-0.09448,-0.10125,-0.062866,-0.12384,-0.11932,-0.10125,-0.10125 0.32096,0.31925,0.32096,0.31925,0.31925,0.32301,-0.11513,-0.11786,-0.11581,0.32164,-0.1247,-0.12162,-0.11957,-0.1182,-0.11957,-0.12778,-0.12915,-0.12675,-0.12812,-0.12231,-0.13154,-0.13154,-0.13223,-0.13154,-0.13086 0.42561,0.11042,0.14489,-0.0077814,-0.12598,0.40837,0.088255,0.051318,-0.015169,-0.19493,0.3739,0.016843,-0.020094,-0.08658,-0.20232,0.32465,-0.0053189,-0.057031,-0.21217,-0.1703,-0.18262,-0.00039399,-0.21709,-0.25895,-0.18754 -0.18215,-0.19988,0.21913,0.21868,0.22267,-0.1755,-0.18791,-0.17638,0.22046,0.22001,-0.17594,-0.18215,-0.17638,0.21735,0.2209,-0.17816,-0.18968,-0.18481,0.23775,0.22134,-0.16131,-0.19811,0.24041,-0.10411,0.23376 -0.22546,-0.064478,0.28137,0.2424,0.24397,-0.22546,-0.061149,-0.06017,0.23633,0.28196,-0.22565,-0.22761,-0.057232,-0.05214,0.24064,-0.22467,-0.22742,-0.078383,0.23731,0.23731,-0.22585,-0.22526,0.035792,0.23476,-0.090916 -0.033394,-0.036597,-0.048341,-0.038732,0.97549,-0.024854,-0.023786,-0.023786,-0.03553,-0.033394,-0.030192,-0.032327,-0.036597,-0.032327,-0.020583,-0.045138,-0.038732,-0.038732,-0.03553,-0.036597,-0.09745,-0.091045,-0.029124,-0.073963,-0.038732 -0.18066,-0.19334,-0.19583,-0.19764,0.20138,-0.18983,-0.19334,-0.19628,0.20263,0.20444,-0.18983,-0.19481,0.20229,0.20229,0.20218,-0.18156,-0.19481,0.20297,0.2032,0.20399,-0.19176,-0.19617,0.20761,0.23173,0.23116 0.41675,0.38935,-0.10279,-0.10174,-0.10341,0.40504,0.40169,-0.10237,-0.10132,-0.10069,0.38642,-0.1009,-0.10132,-0.10007,-0.10028,-0.092538,-0.10132,-0.10111,-0.099231,-0.10069,-0.093793,-0.099021,-0.10007,-0.09944,-0.097139 -0.33122,-0.32943,0.14208,0.1376,0.15103,-0.31332,-0.33838,0.14118,0.13939,0.10271,-0.31869,0.13224,0.13939,0.10092,0.12061,-0.30348,0.11971,0.1045,0.10719,0.14745,-0.30169,0.090186,0.09287,0.13403,0.13313 -0.13836,-0.1037,-0.15702,-0.090374,-0.078378,-0.10504,-0.081044,-0.05705,-0.058383,-0.12903,-0.019728,-0.027725,-0.050386,-0.049053,-0.069047,-0.041055,-0.051719,-0.018395,-0.03439,-0.059716,0.74672,0.39216,0.38949,-0.033057,-0.075712 -0.11324,-0.11433,-0.11214,-0.10959,-0.30092,-0.11797,-0.11397,-0.10121,-0.099752,-0.30238,-0.11943,-0.11943,-0.090642,-0.091735,-0.093922,0.49172,0.25739,0.22933,-0.090277,-0.089548,0.22605,0.22641,0.25083,0.24864,0.2501 -0.25443,-0.25598,-0.2486,-0.25249,-0.25365,0.053975,0.060189,-0.25016,-0.2486,-0.25404,0.016298,0.015133,0.017852,0.061743,0.060578,0.013579,0.017463,0.30606,0.308,0.060189,0.30334,0.3045,0.30334,0.058247,0.05747 -0.29763,-0.31222,-0.30377,-0.31836,-0.31989,0.087805,0.11007,0.069378,-0.30531,-0.30991,0.095483,0.10546,0.093947,0.084734,0.083966,0.080895,0.099322,0.10239,0.26824,0.23676,0.099322,0.089341,0.096251,0.10239,0.26133 -0.37387,-0.25352,-0.37387,-0.29364,-0.25352,-0.093065,-0.052951,-0.052951,-0.29364,0.027278,0.18774,0.18774,0.22785,0.22785,0.027278,0.10751,0.14762,0.30808,0.027278,0.14762,0.10751,-0.052951,0.027278,0.10751,0.22785 -0.19757,-0.20102,-0.20517,-0.20655,0.30084,-0.16853,-0.18443,-0.2024,0.31881,0.31259,-0.1395,-0.12844,-0.18305,0.17365,0.31812,-0.1471,-0.13466,0.058896,0.15775,0.31674,-0.11392,-0.11738,0.1377,0.11282,0.1218 -0.092459,-0.087115,-0.090084,-0.091865,-0.088897,-0.091272,-0.091865,-0.091865,-0.093053,-0.090678,-0.091865,-0.091865,-0.094834,-0.093053,-0.088897,-0.091865,-0.090084,-0.088897,0.45142,0.46389,-0.091865,-0.07999,-0.015271,0.44607,0.46626 0.48436,0.63946,-0.073099,-0.069376,-0.070307,0.48746,-0.085818,-0.073099,-0.069686,-0.068446,-0.070307,-0.084887,-0.073719,-0.067825,-0.065343,-0.076201,-0.078683,-0.082095,-0.069376,-0.064103,-0.076511,-0.081785,-0.077442,-0.067825,-0.065343 -0.19359,-0.14905,0.12768,0.10223,0.14358,-0.20154,-0.17768,-0.12202,0.37579,0.14358,-0.18882,-0.18563,-0.18404,-0.1252,0.16267,-0.15383,-0.16814,-0.15065,0.17221,0.38374,-0.15224,-0.15383,0.10541,0.20879,0.38056 0.20473,0.20298,0.20823,0.19773,-0.18494,0.21699,0.22049,0.20823,-0.1683,-0.19457,0.20999,0.22837,-0.18144,-0.1937,-0.20421,0.20123,0.19948,-0.17706,-0.20683,-0.20508,0.19597,-0.18407,-0.20683,-0.19632,-0.19107 -0.20942,-0.16859,0.236,0.17847,0.22301,-0.20571,-0.1853,0.24342,0.17847,0.19517,-0.17045,-0.1723,-0.22427,0.23414,0.13578,-0.17602,-0.17602,-0.21128,0.27683,0.11165,-0.1723,-0.17602,-0.20757,0.27126,0.17104 -0.16378,-0.16222,0.1249,0.12802,-0.3687,0.12022,0.12685,0.12724,0.12802,-0.36831,0.10893,0.11555,0.12139,0.12802,-0.36636,0.10581,0.11945,0.11516,0.12217,-0.37143,0.10581,0.11828,0.12646,0.13191,-0.37337 0.19657,0.20248,0.21521,0.21089,-0.040094,0.18793,0.20862,0.21317,0.2168,0.18725,-0.20446,-0.20833,0.21385,0.21953,0.19293,-0.20515,-0.20833,-0.19469,-0.19446,-0.19446,-0.20537,-0.20878,-0.20446,-0.19992,-0.19673 -0.12422,-0.13459,-0.1294,-0.13135,-0.12292,-0.078537,-0.056505,-0.12876,-0.08858,-0.091172,0.39903,-0.065577,-0.086312,-0.085664,-0.099596,0.39839,0.39806,-0.089228,-0.0902,-0.10219,0.39774,0.39709,-0.0902,-0.08696,-0.10834 -0.034128,-0.049899,-0.068824,-0.087749,-0.059361,-0.035705,-0.043591,-0.098789,-0.11298,-0.087749,0.5352,-0.035705,-0.10037,-0.079864,-0.079864,0.52889,-0.042014,-0.10825,-0.084595,-0.068824,0.54939,-0.062516,-0.11298,-0.086172,-0.073555 -0.33371,-0.33088,-0.3238,-0.3153,-0.3153,0.13292,0.13576,0.13434,-0.30751,-0.3153,0.12938,0.13151,0.13221,0.13009,0.13292,0.12443,0.12443,0.12443,0.12726,0.084065,0.12089,0.12159,0.11876,0.12089,0.11593 0.27048,0.2767,0.27126,0.036596,0.037764,0.27126,0.26853,0.024921,0.037764,0.044768,-0.0062109,0.28254,0.061502,0.045158,0.038153,-0.26266,-0.28329,-0.04357,-0.041235,0.050217,-0.28212,-0.28329,-0.28524,-0.2615,-0.2685 -0.06496,-0.070628,-0.070628,-0.14195,-0.14116,0.44121,0.43633,-0.071415,-0.14211,-0.14085,0.28377,0.28503,-0.14163,-0.14305,-0.14258,0.28487,0.058788,-0.14195,-0.14431,-0.14494,0.28566,0.056269,-0.14226,-0.14336,-0.14415 0.076376,-0.087287,-0.0054554,0.15821,0.24004,-0.0054554,-0.0054554,0.076376,0.10365,0.26732,-0.25095,-0.087287,-0.06001,0.076376,0.32187,-0.41461,-0.25095,-0.14184,-0.0054554,0.24004,-0.41461,-0.22367,-0.032733,0.15821,0.26732 0.22041,0.21456,0.20925,-0.13939,-0.13886,0.22253,0.21031,-0.13673,-0.13992,-0.14152,0.57755,0.2034,-0.13939,-0.14046,-0.14205,0.19277,-0.13727,-0.13939,-0.14152,-0.14205,0.19862,-0.14205,-0.14311,-0.14311,-0.14258 -0.35525,-0.35516,-0.3548,-0.35561,-0.35598,-0.35598,0.12376,0.1252,0.10656,0.10194,0.12955,0.13045,0.10457,0.1023,0.10131,0.12756,0.12466,0.10185,0.10095,0.10221,0.12493,0.11443,0.10249,0.10466,0.10339 0.40217,0.40369,-0.11847,-0.11761,-0.11674,0.40304,0.4039,-0.11674,-0.11869,-0.11739,0.36064,-0.11501,-0.11804,-0.11739,-0.12194,-0.028059,-0.11566,-0.1161,-0.11696,-0.02568,-0.028492,-0.10831,-0.11134,-0.11393,-0.030871 -0.11182,-0.11277,-0.11242,-0.11301,-0.11301,-0.11277,-0.11253,-0.11301,-0.11324,-0.11301,-0.11194,-0.11242,-0.11277,-0.11194,-0.11324,-0.11111,-0.11111,-0.021914,0.2516,0.25089,0.00032652,0.03073,0.51471,0.44124,0.44455 -0.15539,-0.16203,-0.1576,-0.14875,-0.12663,-0.16424,-0.15318,-0.14654,-0.080173,-0.03814,-0.15097,-0.13548,-0.12663,-0.022654,0.032653,-0.044777,-0.089023,0.20742,0.40653,0.41317,-0.08681,-0.084598,0.33574,0.30919,0.36892 -0.14634,-0.14978,0.26598,0.26101,0.24228,-0.14901,-0.1494,-0.15589,0.24687,0.2419,-0.14749,-0.14825,-0.15589,0.2461,0.27094,-0.14825,-0.14672,-0.15398,-0.1471,0.31183,-0.14557,-0.14825,-0.15016,-0.15092,0.3061 -0.30067,-0.14648,0.18117,0.1619,0.046257,-0.24285,-0.069385,0.25827,0.10408,0.06553,-0.35849,-0.18503,0.18117,0.21972,0.046257,-0.35849,0.0077094,0.29681,0.1619,0.046257,-0.30067,-0.14648,0.25827,0.10408,-0.030838 -0.4515,-0.4219,-0.43505,-0.47123,0.002368,0.018812,0.078012,0.11419,0.045124,-0.040388,0.11419,0.097746,0.097746,0.097746,-0.020654,0.091168,0.097746,0.094457,0.1109,0.1109,0.14708,0.13063,0.13721,0.13721,0.11748 0.22665,0.20458,-0.21118,-0.23789,-0.25763,0.25801,-0.18679,-0.21466,-0.19608,-0.20886,0.23246,0.20923,-0.18447,-0.059043,-0.1113,0.2011,0.20342,0.21852,-0.038139,-0.19724,0.2371,0.21968,0.19762,-0.12176,-0.18331 -0.31124,-0.33035,0.12245,0.12316,0.11962,-0.30912,-0.33388,0.12245,0.12175,0.11962,-0.3162,0.12387,0.12316,0.11679,0.12387,-0.32186,0.11962,0.12316,0.1267,0.13094,-0.32115,0.12316,0.12811,0.13731,0.13802 0.050803,0.042298,0.049669,0.093894,0.1007,0.076317,0.11544,0.088224,0.10467,-0.45609,0.054204,0.076317,0.090492,0.095028,-0.45552,0.078018,0.091626,0.10353,0.09276,-0.45722,0.10693,0.1007,0.11771,0.095028,-0.45552 -0.0069324,-0.064702,-0.064702,0.19526,0.54188,0.050837,-0.23801,-0.18024,0.16638,0.36857,-0.12247,-0.18024,-0.093587,0.13749,0.19526,-0.12247,-0.23801,-0.12247,-0.064702,0.3108,-0.18024,-0.15136,-0.18024,-0.064702,0.10861 -0.081077,-0.088723,-0.10402,-0.074449,0.41902,-0.079037,-0.10096,-0.091782,-0.086684,0.45981,-0.089743,-0.099939,-0.081586,-0.084135,0.47969,-0.085155,-0.0979,-0.077508,-0.084135,0.47102,-0.081077,-0.10249,-0.078018,-0.081077,-0.080057 0.22978,-0.0036308,-0.0036308,-0.029565,-0.17221,0.12604,-0.042533,-0.029565,-0.12034,-0.15924,-0.042533,0.08714,-0.12034,-0.12034,-0.14627,0.34649,0.24275,-0.094402,-0.18517,-0.18517,0.56693,0.35945,-0.10737,-0.17221,-0.22407 0.14897,0.40457,0.16421,0.16277,-0.21934,0.14926,0.1622,0.16593,-0.21675,-0.22078,0.15271,0.1622,-0.21906,-0.21733,-0.21244,0.16162,0.16881,-0.21675,-0.22078,-0.21244,0.16795,0.16881,0.053226,-0.22078,-0.21675 -0.098271,-0.10908,-0.087463,-0.080978,-0.064765,-0.07125,-0.069088,-0.108,-0.068007,-0.065846,-0.026935,-0.015045,-0.031258,-0.056118,-0.074492,0.65725,0.01738,-0.044229,-0.052875,-0.061522,0.68319,-0.00099438,-0.025854,-0.065846,-0.079897 0.31357,0.31357,0.30416,-0.09737,-0.18834,0.28533,0.31043,-0.094233,-0.10051,-0.18207,0.21946,0.24142,-0.059727,-0.15697,-0.15383,0.087708,-0.20716,-0.091096,-0.1507,-0.16638,0.23828,-0.18834,-0.16638,-0.14756,-0.16325 -0.2874,0.014486,0.016804,0.12504,0.012347,-0.27314,-0.27314,0.12344,0.11934,0.0069971,-0.27474,-0.27492,0.18014,0.12219,0.21028,-0.28598,-0.27777,0.17818,0.21687,0.18086,-0.28134,0.18139,0.17996,0.18246,0.17765 -0.11387,-0.11387,-0.11314,-0.11387,0.33949,-0.11338,-0.1129,-0.11387,-0.11509,0.34728,-0.11387,-0.11363,-0.11095,0.35483,0.35532,-0.10851,-0.11071,-0.10973,-0.11387,0.36432,-0.11046,-0.10924,-0.11071,-0.1129,0.37333 -0.09808,-0.09232,-0.057757,-0.080799,-0.11152,-0.050077,-0.051997,-0.038556,-0.11152,-0.12112,-0.055837,-0.048157,-0.050077,-0.12496,-0.11152,0.46068,0.453,-0.076959,-0.11536,-0.12304,0.4434,0.45876,-0.065438,-0.11536,-0.11536 0.10312,0.10466,-0.213,-0.2529,-0.28513,0.14763,0.15377,-0.22374,-0.22221,-0.29127,0.15991,0.18446,0.21055,-0.22221,-0.25597,0.15684,0.15377,0.17832,0.1998,-0.22988,0.15684,0.16911,0.16911,0.17832,-0.22988 0.40205,0.40258,-0.092534,-0.098346,-0.098875,0.3973,0.39994,-0.093591,-0.097818,-0.098346,0.39782,-0.096233,-0.10152,-0.10046,-0.10257,-0.10205,-0.097818,-0.10257,-0.1031,-0.10522,-0.093591,-0.10205,-0.10363,-0.10469,-0.10469 0.53761,0.53761,-0.057388,-0.070035,-0.082048,0.54331,-0.051065,-0.059918,-0.073828,-0.090268,-0.042845,-0.057388,-0.071299,-0.086475,-0.098488,-0.044742,-0.063711,-0.072564,-0.086475,-0.10165,-0.05233,-0.067505,-0.080151,-0.097856,-0.1105 -0.12246,-0.10475,-0.083053,0.0072798,-0.026374,0.058646,-0.13265,-0.086596,-0.018403,0.025435,0.077686,0.077686,-0.091466,-0.13088,0.02942,0.07193,-0.13353,-0.062241,-0.13619,0.026321,0.049347,0.051561,-0.10962,-0.14018,0.90308 -0.098439,-0.098439,-0.1193,-0.035872,0.75665,-0.1193,-0.035872,-0.056728,-0.098439,0.33953,-0.098439,-0.1193,-0.1193,-0.1193,0.19354,-0.077584,-0.056728,-0.035872,-0.056728,0.27696,-0.18186,-0.077584,-0.056728,-0.056728,0.15183 0.31395,-0.038105,-0.18686,-0.18616,-0.067079,0.31253,0.31348,-0.18663,-0.039047,-0.067315,0.31147,-0.038812,-0.18616,-0.039754,-0.15224,0.31018,-0.038105,-0.18592,-0.18816,-0.152,0.18768,0.38179,-0.18569,-0.040343,-0.15271 -0.08943,-0.094819,-0.071327,-0.069945,-0.069669,-0.081001,-0.068287,-0.070913,-0.06884,-0.066214,-0.093714,-0.070498,-0.071466,-0.069807,-0.064694,-0.072156,-0.071327,-0.070498,-0.070913,0.56683,-0.071466,-0.071742,-0.072295,0.49428,0.55992 -0.16835,-0.17004,-0.17805,-0.18395,-0.18564,-0.13209,-0.1304,-0.14853,-0.15949,-0.1713,0.14496,0.14749,-0.11269,-0.12239,-0.14347,0.17068,0.16688,0.15381,0.14074,-0.13588,0.46965,0.46459,0.20947,0.17574,-0.10173 0.17083,0.16769,-0.24086,-0.24164,-0.24282,0.16222,0.17474,-0.24047,-0.24086,-0.24203,0.17943,0.27805,0.15165,-0.23929,-0.24438,0.14108,0.145,0.14578,0.14108,-0.24555,0.13247,0.14187,0.15048,0.14578,-0.25025 0.4504,-0.076019,-0.084609,-0.10394,-0.085564,-0.0722,-0.074587,-0.098927,-0.096302,-0.028292,0.45708,-0.077689,-0.10084,-0.10012,-0.092007,0.46615,-0.078882,-0.096064,-0.096064,-0.097734,0.45422,-0.082939,-0.095348,-0.095825,-0.093916 -0.21942,-0.21126,-0.32276,-0.32412,-0.34179,-0.22214,-0.0011965,0.009001,-0.33363,-0.034508,0.2585,0.26394,-0.00051667,0.0022027,-0.031789,0.097379,0.1069,0.25918,0.26462,0.26462,0.0933,0.10622,0.10282,0.11234,0.10214 -0.19296,-0.19237,-0.19178,-0.19267,-0.19089,-0.19267,-0.19237,-0.19267,-0.19207,-0.19118,-0.19237,0.16592,0.1677,0.17037,-0.17666,0.22727,0.22579,0.23023,0.17807,-0.17992,0.2732,0.26728,0.24387,0.13718,0.1837 0.04466,0.016032,0.10192,-0.15574,-0.069852,0.30231,-0.09848,-0.012596,-0.041224,-0.21299,0.13054,0.13054,-0.012596,-0.27025,-0.069852,0.44545,0.016032,-0.12711,-0.12711,-0.15574,0.53134,0.15917,-0.012596,-0.21299,-0.29888 -0.052063,-0.054442,-0.050159,-0.057774,0.95255,-0.05587,-0.057774,-0.056346,0.18826,-0.046352,-0.036834,-0.048256,-0.05825,-0.0454,-0.050159,-0.043021,-0.048256,-0.050635,-0.048256,-0.047304,-0.047304,-0.047304,-0.047304,-0.046352,-0.0454 -0.060817,0.0052884,-0.093869,0.2036,0.89771,0.0052884,-0.12692,-0.060817,0.071393,-0.060817,-0.12692,-0.12692,-0.093869,-0.12692,-0.027764,0.0052884,0.0052884,-0.060817,-0.12692,-0.093869,-0.093869,0.0052884,0.10445,-0.060817,0.038341 -0.10554,-0.093792,-0.12198,-0.10788,0.31332,-0.11571,-0.09849,-0.12119,-0.1071,0.33054,-0.12119,-0.12511,-0.12354,-0.11885,0.31332,-0.12667,-0.12433,-0.10319,0.28748,0.31802,-0.15016,-0.12276,-0.23706,0.32115,0.34072 0.34451,0.16177,-0.13369,-0.13123,-0.12767,0.34068,0.50318,-0.13177,-0.12931,-0.12876,0.33986,-0.12275,-0.12767,-0.13068,-0.12986,0.16341,0.1749,-0.13013,-0.13095,-0.12767,0.1697,-0.12822,-0.12876,-0.13013,-0.12876 -0.34156,-0.34156,-0.33839,-0.3574,-0.3669,0.22242,0.14638,0.067171,-0.0088716,-0.081746,0.22242,0.17807,0.067171,0.00063369,-0.069072,0.24777,0.17807,0.098855,0.02915,-0.050061,0.26361,0.1749,0.08935,0.019644,-0.050061 0.21203,-0.19142,-0.19094,-0.19311,-0.19697,0.21155,0.20721,-0.19142,-0.19166,-0.19335,0.21228,0.20673,-0.18973,-0.19118,-0.19166,0.2089,0.20793,0.20624,-0.19335,-0.19166,0.20745,0.20938,0.20504,0.20311,-0.19142 -0.1478,-0.1478,-0.15018,-0.14886,0.25909,-0.1486,-0.1478,-0.15098,-0.15362,0.262,-0.14754,-0.14833,-0.15151,0.26491,0.26702,-0.15018,-0.14939,-0.15389,0.26861,0.2702,-0.15018,-0.15309,0.26967,0.26808,0.2702 -0.10231,-0.10205,-0.10098,-0.09884,-0.098038,-0.10231,-0.10151,-0.10124,-0.097771,-0.098573,0.37655,-0.10205,-0.10044,-0.098305,-0.097771,0.43346,0.38002,-0.099909,-0.09884,-0.09884,0.42598,0.38082,-0.098305,-0.099641,-0.099107 0.17305,0.17305,0.14634,0.17305,-0.040591,0.14634,0.092933,0.012818,0.039523,-0.14741,0.11964,0.066228,0.039523,0.11964,-0.38775,0.092933,-0.013886,0.012818,-0.013886,-0.46787,0.092933,0.012818,0.092933,0.092933,-0.6281 -0.1363,-0.14214,-0.13316,-0.13271,-0.13585,-0.1381,-0.13899,-0.13495,-0.13046,-0.13675,-0.14034,-0.14169,-0.13405,-0.13316,-0.1354,-0.14393,0.29968,0.30642,0.28531,0.28621,-0.14348,0.28172,0.29789,0.28801,0.28621 0.10296,-0.078028,-0.15847,-0.3093,-0.6009,0.17335,0.052689,-0.057918,-0.18864,-0.28919,0.19346,0.10296,0.062744,-0.067973,-0.2188,0.22363,0.14319,0.15324,0.022524,-0.027752,0.25379,0.19346,0.14319,0.15324,0.022524 0.19539,0.040406,0.12663,0.13258,0.1192,0.19724,0.045981,0.12217,0.13592,0.12291,0.20022,0.17048,0.12589,0.14038,0.13889,0.14633,0.13555,-0.28702,-0.28591,-0.28665,-0.28776,-0.28553,-0.28516,-0.28888,-0.28925 0.2449,0.2449,0.23771,0.23771,0.2467,0.2503,-0.16387,0.2449,0.2485,0.24311,-0.16207,-0.17061,0.2503,-0.15847,-0.16072,-0.16297,-0.16747,-0.16027,-0.16072,-0.15982,-0.16657,-0.15937,-0.16792,-0.16297,-0.16522 -0.30253,-0.30522,0.15209,0.15815,0.16589,-0.30522,-0.3059,0.15916,0.1595,0.1664,-0.30623,0.0029623,0.003299,0.16354,0.16488,-0.30758,0.16135,0.0056554,0.16522,0.16858,-0.30943,0.16,0.0070019,0.0085167,0.16993 0.18939,0.13844,0.066246,0.061999,0.070492,0.078985,0.057753,0.04926,0.061999,0.053506,0.083232,0.061999,0.057753,0.066246,0.12994,0.083232,0.070492,0.083232,0.24035,0.22337,-0.32868,-0.37539,-0.41361,-0.3669,-0.44334 -0.048427,-0.016856,-0.00038434,-0.038819,0.97832,-0.038819,-0.053918,-0.037446,-0.033328,-0.042937,-0.047055,-0.040191,-0.052545,-0.040191,-0.048427,-0.042937,-0.042937,-0.045682,-0.040191,-0.045682,-0.042937,-0.048427,-0.0498,-0.045682,-0.034701 0.39861,0.41379,-0.014949,-0.1079,-0.12308,0.38723,-0.0073606,-0.073758,-0.13257,-0.12688,-0.026331,-0.062375,-0.10032,-0.13067,-0.12877,0.39292,-0.049096,-0.10032,-0.14774,-0.14585,0.36446,-0.058581,-0.12688,-0.14205,-0.15154 -0.060171,-0.060471,-0.10345,-0.10315,-0.10325,-0.060271,-0.06057,-0.10325,-0.1033,-0.10335,-0.060371,-0.060171,-0.060271,-0.103,-0.10285,0.42956,0.42926,-0.059972,-0.10285,-0.10305,0.48181,0.48156,-0.103,-0.1028,-0.1026 -0.4033,-0.37179,-0.24226,-0.24226,-0.22825,-0.32978,0.065816,0.079819,-0.21425,-0.081219,0.08332,0.093822,0.090321,-0.053213,0.22685,0.10082,0.097323,0.051812,0.22685,0.24086,0.10082,0.093822,0.16034,0.23386,0.21985 0.33589,0.11256,0.11256,-0.066106,-0.11077,0.35822,0.20189,0.11256,-0.043773,-0.22244,0.33589,0.24656,-0.043773,-0.24477,-0.1331,0.33589,0.023226,-0.088439,-0.2001,-0.066106,-0.17777,-0.11077,-0.22244,-0.2001,-0.24477 -0.20434,-0.18935,-0.19376,0.33113,0.32142,-0.20081,-0.17611,-0.0076218,0.33642,0.3223,-0.18846,-0.18405,-0.0014467,-0.013797,0.32054,-0.17435,-0.20258,0.0073748,-0.0093861,0.3223,-0.012915,-0.1867,0.008257,-0.00056458,-0.023501 -0.11161,-0.18984,0.097007,0.30563,0.17524,-0.18984,-0.18984,0.097007,0.30563,0.057891,-0.22896,-0.22896,0.097007,0.37082,0.057891,-0.22896,-0.22896,0.018776,0.26651,0.057891,-0.18984,-0.242,-0.20288,0.25347,0.07093 -0.36343,-0.36109,0.072236,0.08629,0.072236,-0.34938,0.12142,0.095659,0.10034,0.090975,-0.39388,0.1425,0.12611,0.12142,0.090975,-0.34938,0.14953,0.13782,0.13314,0.10034,-0.30253,0.13079,0.11674,0.13548,0.095659 0.13599,0.14238,0.14336,0.17184,-0.28309,0.13427,0.13452,0.1738,0.17405,-0.28334,0.13845,0.13108,0.17331,-0.28407,-0.28432,-0.0041933,0.13747,0.16496,-0.28481,-0.2853,-0.0044388,0.15981,0.16963,-0.28604,-0.2853 0.11429,-0.090371,-0.20732,-0.20998,-0.21795,0.29769,-0.050502,-0.17808,-0.19137,-0.19935,0.29769,-0.11961,-0.17011,-0.19935,-0.19137,0.26048,0.26048,0.098345,-0.077081,-0.14885,0.27643,0.26048,0.27111,0.19669,-0.082397 -0.39564,-0.39772,-0.39287,-0.39287,-0.39772,0.15725,0.15517,0.15656,0.15656,0.15517,0.089961,0.091348,0.092736,0.089961,0.089961,0.079555,0.07678,0.078862,0.078862,0.079555,0.069843,0.071231,0.068456,0.070537,0.068456 -0.020103,-0.038445,-0.040891,-0.056787,0.97771,-0.020103,-0.024994,-0.050673,-0.061678,-0.059233,-0.032331,-0.040891,-0.051896,-0.050673,-0.053119,-0.040891,-0.029885,-0.053119,-0.051896,-0.048228,-0.040891,-0.028663,-0.043336,-0.024994,-0.013989 -0.12612,-0.12358,-0.12527,0.41977,0.31008,-0.12978,-0.12245,-0.12245,0.4271,0.30783,-0.13091,-0.1202,-0.10948,-0.11568,0.30613,-0.13063,-0.13091,-0.10694,-0.11456,0.20942,-0.13006,-0.1295,-0.10835,-0.11512,0.21168 0.16557,-0.12552,0.092469,-0.087666,0.12771,0.18515,0.16557,-0.13596,-0.11638,-0.1216,0.44882,-0.14379,-0.15293,-0.13205,-0.15554,0.42794,-0.12944,-0.15293,-0.14249,-0.12683,0.42794,0.13293,-0.16076,-0.13466,-0.15554 -0.087223,0.5351,0.53719,0.36672,0.36756,-0.086665,-0.084154,-0.084154,-0.086944,-0.083317,-0.086805,-0.082899,-0.083038,-0.089455,-0.085689,-0.08541,-0.086386,-0.084852,-0.086805,-0.085549,-0.086805,-0.087223,-0.084852,-0.086526,-0.091827 -0.049537,-0.040691,-0.042165,-0.049537,0.97953,-0.040691,-0.039217,-0.040691,-0.045114,-0.046588,-0.04364,-0.040691,-0.045114,-0.04364,-0.034794,-0.039217,-0.039217,-0.036268,-0.04364,-0.040691,-0.040691,-0.040691,-0.034794,-0.031845,-0.030371 -0.095268,-0.085261,-0.090264,-0.045232,-0.065247,-0.07025,-0.080257,-0.080257,-0.085261,-0.090264,0.014811,-0.10528,-0.065247,-0.060243,-0.075254,0.40009,0.024818,-0.15531,-0.025218,-0.050236,0.61524,0.55019,-0.19534,-0.035225,-0.050236 -0.12374,-0.12332,-0.12127,-0.12004,-0.1188,-0.11736,-0.11942,-0.11819,-0.11819,-0.1186,-0.11428,-0.11551,-0.11613,-0.11675,-0.11428,0.11596,-0.11675,-0.11531,-0.11942,0.38998,0.11452,0.3795,0.33818,0.39553,0.39368 -0.21813,-0.22187,-0.04244,-0.042765,0.22452,-0.21764,-0.22041,0.22956,-0.042928,-0.04244,-0.21862,-0.21878,0.22842,0.22793,0.22744,-0.21846,-0.21927,0.22679,0.22614,0.23509,-0.21878,-0.21927,0.17799,0.17636,0.18157 0.66982,0.6553,0.013248,-0.068098,-0.076814,0.094594,-0.0012783,-0.044856,-0.076814,-0.085529,0.0045321,-0.082624,-0.079719,-0.088435,-0.079719,-0.059382,-0.085529,-0.085529,-0.073908,-0.036141,-0.085529,-0.088435,-0.094245,-0.082624,-0.062288 -0.21117,-0.21048,-0.20908,-0.20978,-0.20839,-0.18751,-0.18124,-0.05944,-0.089369,-0.12626,0.11735,0.10204,-0.04552,-0.078928,-0.083105,0.26978,0.11874,0.12013,-0.065008,-0.082409,0.23846,0.44309,0.44309,0.27674,-0.081713 0.21558,0.13056,0.14057,0.11889,0.11723,0.1339,0.10889,0.10556,0.10389,-0.29454,0.10556,0.10723,0.10889,-0.30621,-0.31787,0.1589,0.11223,0.10723,-0.29287,-0.34121,0.12223,0.13056,0.097223,-0.30454,-0.36789 0.13639,0.10911,0.14814,0.1238,0.13136,0.15486,0.10869,0.11877,0.13513,0.20983,0.14898,0.10702,0.13052,0.15654,0.18046,-0.078898,0.1066,-0.33028,-0.33825,-0.33657,-0.059593,-0.06295,-0.3286,-0.33616,-0.3349 0.23589,-0.12273,-0.20242,-0.16257,-0.08288,0.19604,-0.16257,-0.08288,-0.08288,-0.08288,0.39527,0.076504,-0.08288,-0.16257,-0.043034,0.1562,0.1562,-0.20242,-0.12273,-0.16257,0.5945,0.23589,-0.12273,-0.12273,-0.043034 -0.074288,-0.066711,-0.071447,-0.064817,-0.062923,-0.080917,-0.074288,-0.074288,-0.065764,-0.067658,-0.082811,-0.082811,-0.073341,-0.067658,0.50437,-0.06387,-0.0866,-0.073341,-0.076182,0.54793,-0.069552,-0.0705,-0.087547,-0.084706,0.56972 -0.24418,0.15198,0.15141,-0.2404,-0.2455,0.15424,0.16537,0.16273,-0.24286,-0.24682,0.17028,0.16783,0.16802,-0.2438,-0.24512,0.17235,0.14632,0.16632,-0.24418,-0.24682,0.16537,0.18122,0.1799,0.14387,-0.24757 0.101,0.101,0.066411,0.066411,0.066411,0.066411,0.23936,0.101,-0.037356,0.066411,0.066411,0.066411,0.13559,0.031822,0.066411,0.20477,0.13559,0.27395,-0.0027671,0.066411,-0.31407,-0.41784,-0.34866,-0.38325,-0.41784 0.10791,0.12822,0.11725,0.12642,-0.32823,0.029461,0.13068,0.11512,0.13002,-0.32872,0.029133,0.029461,0.034538,0.033719,-0.32905,0.029788,0.030443,0.031917,0.032572,-0.33053,0.28037,0.28004,0.27939,-0.3284,-0.33151 -0.28611,0.077534,0.08175,0.085841,0.086461,-0.28549,-0.2876,0.079022,0.12142,0.12452,-0.28561,-0.28747,0.12242,0.12279,0.12477,-0.28487,-0.28698,0.20177,0.19978,0.13159,-0.28561,0.1916,0.20313,0.20524,0.1301 -0.17158,-0.19416,-0.19416,-0.149,-0.19416,0.14449,-0.12643,-0.35219,-0.19416,-0.26188,0.12191,0.076759,0.031607,-0.21673,-0.12643,0.25737,0.27994,0.16706,0.14449,-0.17158,0.25737,0.23479,0.25737,0.21222,0.16706 -0.31703,-0.32541,0.13363,0.12657,0.12878,-0.32188,-0.32982,0.13142,0.1226,0.12657,-0.3135,0.12393,0.12525,0.12084,0.1226,-0.32409,0.11952,0.12304,0.11996,0.12304,-0.31262,0.13275,0.12216,0.11996,0.12172 0.073251,-0.20499,-0.23717,-0.21445,-0.22297,0.068519,-0.21256,-0.21445,-0.21919,-0.21067,0.072305,0.16316,-0.21256,-0.21635,-0.2154,0.075144,0.25969,0.16978,0.11962,0.2436,0.14518,0.25591,0.25401,0.24076,0.23982 -0.17242,-0.16614,0.22848,0.22953,0.25395,-0.16544,-0.17102,0.22953,0.23441,0.26302,-0.16265,-0.15776,-0.15846,0.2379,0.24558,-0.16823,-0.16265,-0.15288,-0.15358,0.26163,-0.17312,-0.16858,-0.15776,-0.15567,0.26233 0.55454,0.54207,-0.070111,-0.074566,-0.073675,0.52781,-0.067437,-0.073675,-0.075457,-0.074566,-0.06922,-0.071002,-0.075457,-0.075457,-0.076348,-0.071893,-0.073675,-0.076348,-0.074566,-0.077239,-0.073675,-0.074566,-0.075457,-0.075457,-0.074566 0.10064,0.16489,0.097259,0.10233,-0.38531,0.1047,0.11856,0.11045,-0.38329,-0.38464,0.10605,0.1118,0.11112,0.099288,-0.3843,0.11248,0.11045,0.18958,0.099626,-0.38498,0.11045,0.10909,0.11721,-0.072504,-0.080959 -0.11066,-0.10535,-0.093583,-0.10724,-0.1118,-0.10649,-0.10421,-0.086752,-0.093583,-0.10573,0.35536,-0.094342,-0.089788,-0.090547,-0.099275,0.36978,0.37129,-0.092824,-0.09548,-0.10231,0.44454,0.44985,-0.10079,-0.099275,-0.10079 0.69148,0.24247,0.055378,-0.16913,-0.019457,0.42956,0.017961,-0.13171,0.017961,-0.16913,0.13021,-0.019457,-0.094293,-0.13171,-0.24396,-0.019457,0.017961,-0.13171,-0.094293,-0.019457,0.017961,0.055378,-0.094293,-0.16913,-0.16913 0.039947,0.14992,0.25395,0.35798,0.4412,-0.096776,-0.061109,0.010225,0.36689,0.3877,-0.15028,-0.17108,-0.18,-0.15622,-0.037331,-0.15919,-0.16217,-0.18892,-0.12947,-0.0076089,-0.11164,-0.18297,-0.17108,-0.010581,-0.031387 0.04431,-0.056395,-0.022827,-0.022827,0.41356,-0.19067,-0.1571,-0.022827,-0.022827,0.21215,-0.22424,-0.056395,-0.12353,-0.089963,0.51427,-0.12353,-0.1571,-0.022827,-0.022827,0.27929,-0.12353,-0.1571,-0.19067,-0.089963,0.41356 0.039025,0.039025,0.11813,-0.092817,-0.19829,0.27634,0.35545,0.039025,0.039025,-0.25103,0.091762,0.27634,0.039025,-0.19829,-0.17192,0.065394,0.27634,0.11813,-0.22466,-0.2774,0.012657,0.27634,-0.092817,-0.11919,-0.43561 0.084343,0.093663,0.1356,-0.29077,-0.28844,0.10298,0.10298,0.11929,-0.29543,-0.30708,0.12162,0.11929,0.12861,-0.27213,-0.30009,0.12628,0.12628,0.12395,0.25443,-0.28378,0.14958,0.12861,0.13327,0.24045,-0.2535 -0.34228,-0.31528,0.15903,0.074193,0.085762,-0.35384,0.12047,0.15903,0.09733,0.074193,-0.38469,0.09733,0.15132,0.09733,0.11276,-0.34999,0.12432,0.14746,0.11276,0.11276,-0.3577,0.13589,0.13589,-0.0067869,0.11276 -0.045175,0.045175,-0.060234,-0.030117,-0.090351,-0.045175,-0.090351,-0.090351,-0.12047,-0.13553,-0.090351,-0.13553,-0.045175,-0.060234,-0.090351,-0.045175,-0.045175,-0.045175,-0.090351,-0.045175,0,-0.045175,0.13553,0.46681,0.7981 -0.14079,-0.14142,-0.14315,0.52581,0.26881,-0.14158,-0.14189,-0.14221,0.16221,0.16692,-0.14126,-0.14142,-0.14315,0.2776,0.16315,-0.14064,-0.14174,-0.14205,0.27823,0.26975,-0.14032,-0.14079,-0.14252,-0.13891,0.15137 0.46378,0.17347,0.16576,-0.068031,-0.11685,0.72841,0.14778,-0.044909,-0.075739,-0.10657,-0.11171,-0.0063715,-0.098861,-0.057755,-0.083446,-0.15281,-0.14254,-0.093723,-0.032063,-0.029494,-0.037201,-0.13997,-0.12198,-0.11171,-0.047478 -0.23023,-0.23023,0.028041,0.028041,0.24942,-0.15644,-0.045752,0.10183,-0.045752,0.36011,-0.41472,0.10183,-0.082648,0.21252,-0.0088552,-0.23023,-0.19334,0.17563,0.13873,0.36011,-0.23023,-0.15644,-0.082648,0.10183,0.24942 -0.36446,-0.351,-0.36446,-0.35997,-0.37567,-0.31062,0.13351,0.11556,0.16267,0.14472,0.12005,0.086404,0.09089,0.095376,0.10659,0.10211,0.11108,0.11108,0.099862,0.10211,0.10659,0.10435,0.11108,0.11108,0.11108 0.093205,-0.036848,-0.052202,-0.052202,-0.054008,0.1212,0.029081,-0.089231,-0.090134,-0.092843,0.054369,-0.10007,-0.1082,-0.10458,-0.087424,0.65225,-0.099165,-0.10549,-0.10549,-0.072071,0.6369,-0.099165,-0.098262,-0.085618,-0.054008 -0.028276,-0.086472,-0.086044,-0.03769,-0.02143,-0.01929,-0.087328,-0.087756,-0.018006,-0.022286,-0.087756,-0.089468,-0.089895,-0.090323,0.43815,-0.084761,-0.094175,-0.090751,-0.087756,0.44285,-0.086472,-0.094175,-0.09931,-0.084761,0.69318 -0.092233,-0.10196,-0.10298,-0.104,-0.10298,-0.083534,-0.098886,-0.10298,-0.104,-0.10656,0.4113,-0.095303,-0.10298,-0.10451,-0.104,0.4113,0.38418,-0.096327,-0.10093,-0.099909,0.41437,0.37702,-0.092745,-0.10247,-0.098886 -0.12898,-0.13944,-0.010938,0.45675,0.43733,-0.14093,-0.13795,-0.10956,0.4433,0.42836,-0.13645,-0.11852,-0.10806,-0.0049608,-0.00047815,-0.13048,-0.14093,-0.09312,-0.021397,0.018947,-0.13048,-0.12599,-0.088637,-0.034845,0.017452 0.78592,0.5205,0.094261,-0.0098258,-0.091534,-0.063431,-0.06291,-0.05042,-0.033766,-0.092575,-0.061869,-0.063431,-0.061869,-0.063431,-0.12016,-0.055624,-0.057706,-0.055104,-0.056665,-0.11131,-0.045215,-0.05042,-0.048338,-0.048338,-0.096738 -0.085209,-0.07164,0.028765,0.52808,0.53622,-0.085209,-0.082495,-0.068927,0.0016282,0.53622,-0.093349,-0.093349,-0.090636,-0.079781,0.0016282,-0.093349,-0.090636,-0.082495,-0.093349,-0.030936,-0.090636,-0.096063,-0.11506,-0.096063,-0.093349 0.047054,-0.017111,-0.081275,-0.31655,-0.50904,0.11122,-0.017111,-0.017111,-0.18822,-0.46626,0.11122,0.089831,0.025666,-0.038499,-0.2096,0.17538,0.17538,0.17538,0.047054,-0.038499,0.28232,0.26094,0.154,0.154,0.089831 -0.085918,-0.15304,-0.22198,-0.12764,0.31501,-0.067776,-0.15304,-0.17844,0.10457,0.1989,-0.11676,-0.17481,-0.1222,0.42749,0.2878,-0.10769,-0.17118,-0.17844,0.31864,0.25696,-0.06052,-0.14941,-0.19658,0.20072,0.15536 0.032777,0.01446,-0.076157,-0.086762,-0.094474,0.026028,-0.011568,-0.079049,-0.082905,-0.085797,0.037597,-0.051093,-0.074229,-0.083869,-0.083869,0.64107,-0.080977,-0.074229,-0.080013,-0.077121,0.68638,-0.072301,-0.080013,-0.080977,-0.082905 -0.0048698,-0.0073047,0.47724,0.48747,0.63843,-0.070125,-0.070125,-0.074995,-0.076943,-0.07743,-0.074995,-0.077917,-0.078891,-0.079865,-0.080839,-0.078891,-0.0823,-0.0823,-0.082787,-0.084248,-0.079865,-0.084248,-0.084248,-0.084248,-0.085709 0.0084423,0.026682,0.15436,0.076189,0.92302,0.00062536,-0.017614,0.011048,0.00062536,0.031893,-0.054093,-0.048882,-0.046276,-0.098389,-0.11923,-0.030642,-0.087967,-0.093178,-0.11402,-0.08015,-0.015009,-0.067121,-0.11663,-0.12184,-0.12184 -0.012073,-0.23159,-0.20415,-0.14927,-0.12183,0.12512,-0.039513,0.015366,-0.094392,-0.14927,0.18,-0.012073,-0.039513,-0.12183,-0.14927,0.53671,0.097684,0.070245,-0.039513,-0.14927,0.61903,-0.039513,0.070245,0.015366,-0.17671 0.31196,0.28631,0.235,0.13238,-0.047205,0.26065,0.28631,0.20934,-0.047205,-0.02155,0.10672,0.10672,0.13238,0.13238,-0.22679,-0.07286,-0.02155,-0.17548,-0.047205,-0.22679,-0.20113,-0.2781,-0.2781,-0.2781,-0.2781 -0.21463,-0.21705,-0.2086,-0.2086,-0.20558,-0.22731,-0.21946,-0.21041,-0.20558,-0.20679,0.17588,0.44146,0.06241,0.055167,0.050942,0.18011,0.19158,0.066032,0.059392,0.053356,0.1795,0.43723,0.060599,0.058789,0.051546 -0.049719,-0.071392,-0.091981,-0.095232,-0.10499,-0.028045,-0.06489,-0.074643,-0.086563,-0.10282,0.55172,-0.060555,-0.075726,-0.077894,-0.10499,0.54738,-0.045384,-0.072475,-0.07681,-0.074643,0.51812,-0.041049,-0.065973,-0.075726,-0.075726 0.15537,0.16695,0.16318,0.16347,0.16463,0.1412,0.16752,0.16463,0.16463,0.16347,0.16405,0.16868,-0.24611,0.16926,0.16347,-0.24408,-0.24582,-0.24495,-0.24379,0.1681,-0.24437,-0.24669,-0.24379,-0.24235,-0.24669 0.23601,-0.098387,-0.10356,-0.060467,-0.30178,0.22911,-0.091493,-0.10356,-0.055296,-0.065638,0.21532,0.39803,-0.11562,-0.12597,-0.25697,0.20153,0.38769,-0.10356,-0.11045,-0.26214,0.19119,0.18257,0.16878,-0.12252,-0.23283 -0.20603,-0.2052,-0.21031,0.20142,0.21561,-0.20791,-0.20437,-0.20489,0.1936,0.20048,-0.2099,-0.20405,-0.2052,0.1936,0.19276,-0.21449,0.1745,0.16803,0.19318,0.19214,-0.2124,-0.21104,0.18713,0.19203,0.1913 -0.15353,-0.12643,-0.099325,-0.116,-0.16396,-0.16604,-0.14728,-0.099325,-0.078476,-0.076391,-0.17438,-0.11392,-0.065966,-0.053457,-0.030523,-0.17855,-0.024268,0.19256,0.35935,0.44275,-0.10766,-0.076391,0.3114,0.35935,0.38646 0.64801,-0.064605,-0.070602,-0.0736,-0.13357,0.64801,-0.066604,-0.081596,-0.078597,-0.12557,0.21324,-0.059608,-0.076598,-0.062606,-0.064605,-0.049613,-0.049613,-0.080596,-0.062606,-0.047614,-0.045615,-0.046615,-0.070602,-0.05461,-0.043616 -0.15118,-0.1455,-0.1455,-0.14327,-0.14673,0.075785,-0.14574,-0.14476,-0.14154,-0.1408,0.39572,-0.14228,-0.14599,-0.14525,-0.096543,0.40486,0.10941,0.11163,-0.098027,-0.1,0.40412,0.4108,0.10644,0.1188,-0.10445 0.26019,0.13113,0.23438,0.014971,0.014971,0.002065,0.027878,0.027878,0.05369,0.05369,0.18275,0.20857,0.014971,0.027878,0.11822,0.13113,0.066597,0.092409,0.11822,0.079503,-0.34641,-0.28187,-0.38512,-0.38512,-0.46256 -0.34806,-0.34773,0.094758,0.099392,0.10105,-0.35137,0.10369,0.097737,0.28936,0.10038,-0.34971,0.10237,0.10403,0.099061,0.088139,-0.3507,0.11164,0.10403,0.094427,0.094758,-0.3507,0.10634,0.11428,0.096744,0.096082 -0.085373,-0.068299,-0.10245,-0.1366,-0.017075,-0.051224,-0.11952,-0.085373,-0.10245,0.11952,-0.068299,-0.1366,-0.068299,0.15367,0.30734,-0.17075,-0.22197,-0.1366,0.11952,0.44394,-0.11952,-0.1366,-0.17075,0.30734,0.54639 0.092242,0.12408,0.1778,0.18576,-0.22014,0.1002,0.10816,0.22157,-0.14453,-0.23606,0.15591,0.14994,0.24346,-0.22412,-0.26789,0.20963,0.22953,-0.16443,-0.24202,-0.25396,0.19372,0.22754,-0.24998,-0.2281,-0.1883 -0.047712,0.16588,0.12151,-0.08589,-0.11065,-0.02398,-0.015725,-0.071445,-0.083827,-0.122,0.011103,-0.031203,-0.052871,-0.077636,-0.0012795,0.023485,-0.09105,-0.053903,-0.070413,-0.0054068,-0.086922,-0.077636,-0.068349,-0.070413,0.92634 -0.21988,-0.2292,-0.23355,-0.23728,-0.23604,-0.20248,-0.22298,-0.2205,-0.23044,0.15736,-0.19813,0.15487,0.15487,-0.23604,0.15549,0.16109,0.16357,0.16109,0.16046,0.16295,0.25182,0.1934,0.21578,0.19278,0.18097 0.55329,-0.07341,-0.073181,-0.073583,-0.07364,0.55426,-0.07341,-0.07341,-0.07364,-0.073813,0.5165,-0.073813,-0.073813,-0.074158,-0.074158,-0.074043,-0.07364,-0.07387,-0.073928,-0.074273,-0.07341,-0.074273,-0.0741,-0.0741,-0.074387 -0.14984,-0.1673,-0.15982,-0.12865,0.32886,-0.13987,-0.15234,-0.16231,-0.11992,0.3139,-0.13488,-0.15982,-0.13364,-0.12616,0.3139,-0.12117,-0.068813,-0.12491,0.31141,0.32387,-0.10247,-0.045128,-0.013962,0.30767,0.31141 0.20321,0.21482,0.16002,0.18971,0.17891,0.15165,0.21239,0.21455,0.19673,0.18404,0.1557,-0.28786,0.15246,0.15354,-0.11103,-0.093485,-0.28516,-0.28948,-0.11076,-0.11265,-0.28165,-0.28192,-0.28786,-0.11211,-0.11373 0.34633,0.2459,-0.1862,-0.16518,-0.081094,0.23422,0.20152,-0.18853,-0.17686,-0.071751,0.23889,0.23889,-0.20255,-0.16751,-0.036716,0.24823,0.15481,-0.20722,-0.081094,-0.048395,0.35567,-0.2586,-0.23291,-0.055402,-0.10445 0.20778,0.19276,0.21316,-0.2103,-0.21016,0.21051,0.20883,0.20722,-0.21072,-0.21023,0.20869,0.20443,0.20317,-0.21058,-0.21009,0.21191,0.21184,0.20387,-0.20995,-0.21009,-0.14845,-0.14803,-0.14803,-0.14761,-0.20995 0.26547,0.26909,0.29628,-0.11789,-0.12061,0.26456,0.27725,-0.12786,-0.11336,-0.14236,0.28359,-0.1197,-0.14508,-0.1342,-0.13783,0.34522,-0.13964,-0.15505,-0.1478,-0.14326,0.32075,-0.12695,-0.15051,-0.15051,-0.14961 0.26732,0.0094397,0.0076653,0.26436,0.26002,0.0045109,0.0037223,0.26357,0.26258,0.26081,0.0005678,-0.028611,-0.025456,0.27934,0.26061,-0.20861,-0.20901,-0.20861,-0.2094,-0.20979,-0.20822,-0.20881,-0.20822,-0.21019,-0.2096 -0.12939,0.019906,-0.063036,-0.079625,0.48438,-0.12939,0.019906,-0.12939,-0.046448,0.36827,-0.14598,-0.046448,-0.046448,-0.14598,0.35168,-0.12939,-0.063036,-0.079625,-0.12939,0.40144,-0.17916,-0.013271,-0.24551,-0.12939,0.28532 -0.19016,-0.19242,-0.19242,-0.19242,-0.19242,-0.19041,-0.19192,-0.19267,-0.19242,-0.19267,0.20992,0.2049,0.20365,-0.19367,-0.19292,0.21217,0.20891,0.20666,0.20666,-0.19117,0.20992,0.20064,0.20565,0.20967,0.21894 -0.26054,-0.25968,-0.25956,-0.25907,-0.25883,0.060368,0.058659,-0.25932,-0.25907,-0.25883,0.058903,0.19403,0.18878,0.18463,-0.2581,0.058903,0.19244,0.18731,0.18072,0.17621,0.058903,0.19073,0.18695,0.18121,0.17425 0.085675,0.0725,0.11579,0.14402,0.13838,0.12708,0.087557,0.11955,0.12896,0.13461,0.16473,0.12144,0.1252,0.14214,0.1459,0.13085,0.13838,0.11014,-0.30205,-0.30393,-0.31334,-0.31334,-0.31899,-0.33781,-0.34345 -0.19834,0.13445,0.16772,0.16772,0.201,-0.19834,-0.16506,0.13445,0.26756,0.23428,-0.19834,-0.19834,0.067888,0.201,0.16772,-0.33146,-0.36473,0.201,0.067888,0.201,-0.36473,-0.098505,-0.098505,0.03461,-0.031948 0.89008,0.012172,-0.18102,-0.18514,-0.18637,0.0072339,0.010114,0.015052,-0.18472,-0.18431,0.0078512,0.011349,0.011555,0.0022961,-0.18472,0.006411,0.0099086,0.0099086,0.004765,0.030689,0.0029133,0.0132,0.015669,0.011143,0.033981 -0.0071824,0.022744,0.067634,0.11252,0.21727,0.0077809,0.052671,0.052671,0.14245,0.15741,0.037708,0.067634,0.12749,0.082598,0.21727,0.0077809,0.037708,0.097561,0.15741,0.23223,-0.38127,-0.38127,-0.41119,-0.33638,-0.38127 -0.21767,-0.046545,0.021903,-0.012321,0.1588,-0.21767,-0.21767,-0.046545,0.090352,-0.046545,-0.25189,-0.18344,-0.18344,0.22725,0.22725,-0.21767,-0.012321,0.090352,0.39837,0.26147,-0.32034,-0.18344,0.1588,0.2957,0.22725 0.39611,0.37746,0.32151,0.047991,-0.1758,0.27178,0.35881,0.21584,0.047991,-0.20688,-0.014174,0.054207,0.010692,-0.12607,-0.18823,-0.11364,-0.23797,-0.094987,-0.12607,-0.1385,-0.088771,-0.16958,-0.088771,-0.1385,-0.19445 0.87904,0.068425,0.059178,0.022192,0.031438,0.031438,0.099247,-0.033288,-0.057945,-0.12267,-0.098014,0.012945,-0.094932,-0.15658,-0.15041,-0.088767,0.016027,-0.17507,-0.17507,-0.13192,0.053014,0.080754,0.10233,-0.088767,-0.082603 0.17728,-0.06133,-0.10385,-0.28577,-0.28577,0.22926,-0.16528,-0.12275,-0.19835,-0.29522,0.24816,0.23871,-0.15347,-0.11803,-0.20308,0.24579,0.24816,0.20563,-0.0093554,-0.08968,0.25288,0.23634,0.20091,-0.19835,0.0071819 -0.32017,-0.32095,0.12536,0.12455,0.12348,-0.32047,-0.32091,0.12514,0.12385,0.12399,-0.32051,0.14054,0.11923,0.12388,0.12078,-0.32043,0.13496,0.11897,0.11953,0.12182,-0.32102,0.12385,0.1244,0.12499,0.12514 0.39757,0.40393,-0.10373,-0.10245,-0.10227,0.40012,-0.10155,-0.10245,-0.10318,-0.10318,0.39612,-0.10336,-0.10245,-0.10318,-0.10227,0.39903,-0.10391,-0.10064,-0.10318,-0.10227,-0.044857,-0.10245,-0.10318,-0.10318,-0.103 -0.020275,-0.026169,-0.060354,-0.067426,-0.046208,-0.017917,-0.086287,-0.076857,-0.045029,-0.053281,0.27914,-0.055638,-0.050923,-0.048566,-0.032063,-0.027348,-0.069784,-0.067426,-0.046208,-0.039136,-0.074499,-0.069784,-0.065069,-0.055638,0.92275 0.45743,0.45833,-0.079229,-0.084668,-0.091921,0.45833,-0.080136,-0.086481,-0.093734,-0.098266,0.45743,-0.071977,-0.091014,-0.093734,-0.091921,-0.071071,-0.080136,-0.091921,-0.092827,-0.091014,-0.081949,-0.07379,-0.085575,-0.092827,-0.10733 -0.13872,-0.14493,-0.081954,-0.056233,-0.12808,-0.13606,-0.13606,-0.095258,-0.061554,-0.081067,-0.064215,-0.11388,-0.083728,-0.069537,-0.078406,-0.050911,-0.083728,-0.058007,-0.038494,-0.076632,0.41385,0.37216,-0.019868,0.49989,0.51142 -0.19771,-0.19771,-0.23277,-0.33793,-0.1276,0.047675,-0.16266,-0.30288,-0.19771,-0.19771,0.01262,-0.1276,-0.1276,0.047675,0.25801,0.01262,0.08273,0.29306,0.29306,0.25801,0.08273,0.11779,0.1879,0.29306,0.22295 0.72086,-0.020858,-0.064038,-0.04764,-0.050373,0.61318,-0.023044,-0.074423,-0.052013,-0.060758,0.020683,-0.072783,-0.080436,-0.058026,-0.080982,0.016857,-0.086995,-0.084808,-0.067864,-0.09574,0.0031921,-0.090274,-0.09246,-0.074423,-0.096833 0.12775,0.12775,0.12471,0.12775,0.12775,0.12724,0.12724,0.12775,0.12471,0.12623,0.1232,0.12168,0.12218,0.12218,0.12168,0.11966,0.1232,0.12218,-0.31881,-0.32286,-0.32185,-0.31831,-0.32033,-0.32286,-0.31982 -0.11339,-0.029397,-0.050395,-0.17638,-0.26038,0.033597,0.15958,0.075593,0.075593,-0.28137,0.20158,0.18058,0.18058,-0.11339,-0.26038,0.11759,0.28557,0.18058,-0.050395,-0.28137,0.26458,0.36957,0.054595,-0.23938,-0.32337 -0.11954,-0.10673,-0.10076,-0.11186,0.41738,-0.11442,-0.11015,-0.10417,-0.12125,0.3747,-0.11954,-0.11954,-0.10673,0.33714,0.33202,-0.11868,-0.10759,-0.10332,-0.12381,0.33287,-0.11783,-0.10076,-0.10417,-0.11698,0.33372 0.44898,0.45981,0.46049,0.016383,-0.0025726,0.2276,0.32238,-0.10818,-0.014081,-0.12308,-0.10615,-0.12037,-0.11089,-0.12037,-0.12714,-0.098028,-0.10886,-0.12714,-0.11766,-0.091935,-0.10886,-0.12308,-0.12308,-0.090581,-0.1136 0.11349,-0.026621,-0.23678,-0.35938,-0.48197,0.11349,0.043434,0.0084065,-0.20176,-0.48197,0.16603,0.078461,0.060947,-0.0091071,-0.079161,0.16603,0.18354,0.131,0.11349,-0.079161,0.18354,0.18354,0.23608,0.11349,0.060947 -0.12848,-0.1293,-0.12104,-0.12021,-0.13096,0.31939,-0.11526,-0.11774,-0.11774,-0.12269,0.31939,0.31609,-0.12517,-0.11856,-0.12021,0.29213,0.29791,-0.12765,-0.11774,-0.13013,0.32518,0.3698,-0.126,-0.1417,-0.1293 0.048214,0.046878,0.046878,0.046878,0.049217,0.052892,0.058905,0.054896,0.047212,0.04788,0.20122,0.18619,0.060241,0.058571,0.050553,0.19888,0.19287,0.20356,0.20089,0.055564,-0.3754,-0.38308,-0.38241,-0.38475,-0.38275 0.1196,0.056431,0.077488,-0.090964,-0.46998,0.14066,0.077488,0.077488,-0.090964,-0.46998,0.056431,0.18277,0.1196,0.014318,-0.53315,0.1196,0.098544,0.098544,0.014318,-0.19625,0.18277,0.098544,0.098544,0.14066,0.077488 -0.085757,-0.085408,-0.085059,-0.089252,0.51496,-0.084709,-0.08436,-0.086107,-0.085757,0.50553,-0.086806,-0.084709,-0.085408,-0.09065,0.40139,-0.086456,-0.085757,-0.086806,-0.087854,0.39999,-0.085757,-0.087505,-0.086456,-0.088553,-0.092747 0.46373,-0.073579,-0.087802,-0.089382,-0.092543,0.45898,-0.081481,-0.092543,-0.094123,-0.094913,0.46373,-0.086222,-0.091753,-0.093333,-0.093333,-0.068838,-0.07911,-0.086222,-0.087802,-0.087012,0.44555,-0.090172,-0.083851,-0.090172,-0.087802 -0.31719,-0.30776,-0.31988,-0.32393,-0.32033,0.14372,0.14057,0.10868,-0.32483,-0.32617,0.14057,0.13967,0.12305,0.11766,0.098794,0.14147,0.13293,0.12305,0.10508,0.10194,0.13114,0.13608,0.13698,0.10688,0.11182 -0.28923,-0.29194,-0.28991,-0.29397,-0.2933,-0.28313,-0.28517,-0.28584,0.17002,0.1497,0.10025,0.096185,0.11989,0.17137,0.17069,0.097539,0.096862,0.12463,0.17137,0.1646,0.10025,0.099571,0.14495,0.16053,0.17408 0.072838,0.021504,0.015904,0.078438,0.074705,-0.25383,-0.23423,0.026171,0.048571,0.37898,-0.25383,-0.24263,0.030838,0.047638,0.36871,-0.2529,-0.2277,0.051371,0.089638,0.43218,-0.2585,-0.23423,0.052305,0.052305,0.11577 -0.34061,-0.33564,0.13575,0.1373,0.12112,-0.33657,-0.33253,0.12859,0.13668,0.12766,-0.3291,-0.32537,0.1289,0.12517,0.13232,-0.12873,0.14352,0.13761,0.1261,0.13139,-0.12842,0.14352,0.13481,0.13388,0.13263 0.077879,0.11038,0.17242,-0.27074,-0.28847,0.083787,0.12515,0.10447,-0.27961,-0.29438,0.063106,0.11333,0.20492,-0.24415,-0.29733,0.060152,0.13106,0.41468,0.086742,-0.29142,0.063106,0.10447,0.15469,0.12219,-0.22643 -0.0077197,-0.057661,-0.08644,-0.10168,-0.11099,-0.053428,-0.066125,-0.08898,-0.096598,-0.10506,-0.04835,-0.067818,-0.085594,-0.079669,-0.10506,0.51454,-0.053428,-0.07459,-0.076283,-0.058507,0.53994,0.55941,-0.046657,-0.072897,-0.070357 -0.036153,-0.10237,-0.11561,-0.13547,-0.14541,-0.019599,-0.092435,-0.11561,-0.10568,-0.13547,0.02344,-0.029532,-0.026221,-0.065949,-0.062639,0.6591,-0.0063566,-0.02291,-0.02291,-0.026221,0.6591,-0.012978,0.00026486,-0.016289,-0.046085 0.54647,0.52236,-0.078568,-0.074746,-0.078568,0.555,-0.076804,-0.075922,-0.075334,-0.077098,-0.071512,-0.06328,-0.077098,-0.077098,-0.075922,-0.07063,-0.060928,-0.072394,-0.07798,-0.081508,-0.07504,-0.068278,-0.063868,-0.072394,-0.078862 -0.43259,-0.34209,-0.35717,-0.29684,-0.35717,0.23108,0.18583,-0.040423,-0.055507,-0.010257,0.29141,0.18583,0.0048267,0.06516,-0.055507,0.21599,0.095327,0.14058,0.06516,0.01991,0.17074,0.11041,0.034993,0.034993,0.095327 0.16203,0.16223,0.16163,0.16421,-0.24268,0.16381,0.16282,0.16232,-0.24417,-0.24487,0.16451,0.16431,0.16371,-0.24467,-0.24546,0.16461,0.16381,0.16411,-0.24546,-0.24576,-0.24556,0.16262,0.16272,-0.24546,-0.24536 0.39324,0.39279,0.39369,-0.15031,-0.15302,0.23317,0.23272,-0.15182,-0.15091,-0.14911,0.23272,0.23302,-0.15167,-0.15182,-0.14911,0.0005886,0.0011892,-0.15182,-0.15061,-0.15031,-0.00016216,0.0005886,-0.15332,-0.15001,-0.14971 0.21389,0.21035,0.20326,0.21815,0.21531,0.2472,0.21673,0.20539,0.22807,-0.1589,0.26209,0.255,-0.16953,-0.17591,-0.16882,-0.17661,-0.16527,-0.17236,-0.17591,-0.1837,-0.1837,-0.1837,-0.18725,-0.18583,-0.18795 0.029797,0.036891,0.015608,0.036891,0.87758,-0.019864,0.0014189,0.0014189,-0.023412,0.12202,-0.055337,-0.051789,-0.065978,-0.041148,0.12912,-0.12273,-0.12628,-0.12273,-0.083714,0.13621,-0.17239,-0.17239,-0.17239,-0.14402,-0.01277 0.32444,0.15925,0.16055,-0.14067,-0.13355,0.33156,0.3212,-0.13614,-0.12707,-0.13614,0.32832,0.32962,-0.13355,-0.1329,-0.1329,0.32768,-0.13549,-0.13225,-0.1316,-0.13743,-0.13031,-0.14132,-0.1342,-0.13355,-0.13355 -0.094102,-0.022664,0.00082202,0.064431,-0.0021138,-0.12052,-0.11759,-0.09508,-0.021686,-0.041258,0.0066936,-0.10878,-0.12542,0.027244,-0.059851,0.012565,-0.10095,-0.10976,0.039966,-0.055936,0.019415,0.18871,-0.07453,-0.1215,0.91189 -0.17551,-0.093542,-0.094747,0.22068,0.22068,-0.18475,-0.19319,0.22228,0.22068,0.22148,-0.19118,-0.196,0.22831,0.22228,0.22148,-0.19038,-0.18917,-0.19399,0.22831,0.2263,-0.18877,-0.18998,-0.19239,-0.18837,0.22952 -0.32061,0.1103,0.1189,0.10686,0.13266,-0.31803,0.14298,0.14298,0.14556,0.13266,-0.32233,-0.32835,0.19459,0.16276,0.14814,-0.30771,-0.29136,0.10084,0.17824,0.15072,-0.30426,0.023429,0.013108,0.03117,0.15674 0.37226,0.38376,0.38376,-0.054943,-0.10475,0.39717,0.43548,-0.068353,-0.012797,-0.10284,-0.062606,-0.068353,-0.083679,-0.10667,-0.10284,-0.097089,-0.085594,-0.10092,-0.11816,-0.10092,-0.11241,-0.13732,-0.15648,-0.17755,-0.11816 0.01559,0.013064,0.012222,0.013064,0.012222,0.014327,0.017694,0.013064,0.013064,0.012222,-0.066483,-0.070271,-0.09847,0.011381,-0.090894,-0.065641,-0.086685,-0.097628,-0.097628,-0.098891,-0.081635,-0.094682,-0.073217,-0.076163,0.95037 -0.3702,-0.37387,0.12628,0.10567,0.10659,-0.35371,0.12674,0.12399,0.10521,0.10384,-0.34547,0.12399,0.12216,0.10476,0.10247,-0.34593,0.1217,0.12262,0.10109,0.10109,-0.34318,0.11666,0.1185,0.098344,0.10063 0.09815,0.28171,0.2733,0.10235,0.35765,0.10011,0.094507,0.10067,0.099832,0.38651,0.20856,0.1074,-0.17312,0.09815,-0.18937,-0.1961,-0.19694,-0.19638,-0.1933,-0.1933,-0.19722,-0.19806,-0.19694,-0.19274,-0.18545 0.33055,0.33347,0.31424,-0.10915,-0.12159,0.32932,0.32414,-0.10925,-0.11622,-0.13074,0.32527,-0.10849,-0.11226,-0.12772,-0.1379,0.28154,-0.11038,-0.12008,-0.13168,-0.14629,-0.10991,-0.11462,-0.13102,-0.14139,-0.15986 -0.26765,-0.27216,0.163,0.1683,0.17085,-0.25823,0.15339,0.163,0.17026,0.1683,-0.2547,-0.25431,0.34303,0.16202,0.1683,-0.24,-0.25529,0.033181,0.15947,0.16281,-0.24078,-0.2396,0.032397,0.032397,0.032005 -0.16617,-0.17331,0.34273,0.16683,0.15826,-0.17284,-0.16022,-0.17046,0.16493,0.16064,-0.17546,-0.15641,-0.16355,0.16635,0.50126,-0.17117,-0.16474,-0.15475,0.1654,0.16731,-0.17403,-0.16998,-0.15284,0.16588,0.16635 -0.022379,-0.10642,-0.051193,-0.02478,-0.029582,-0.039187,-0.10882,-0.11602,-0.068001,-0.082408,0.45065,-0.099216,-0.10642,-0.11122,-0.060798,0.5563,-0.12083,-0.036786,-0.039187,-0.015175,0.58512,-0.10642,-0.13523,-0.060798,-0.051193 -0.14627,-0.14435,-0.14819,-0.14627,0.31186,-0.14499,-0.14819,-0.14947,-0.14371,0.30866,-0.14627,-0.14819,-0.14947,0.30802,0.30738,-0.14499,-0.14819,-0.15075,0.30802,0.30546,-0.14435,-0.14819,0.16981,0.16278,0.16981 0.12606,0.12747,0.12566,0.12747,0.12908,0.12063,0.12686,0.12344,0.12686,0.13149,0.11801,0.12304,0.12224,0.12425,0.12968,0.11962,0.12083,0.12204,-0.31941,-0.32102,-0.31981,-0.32082,-0.32142,-0.32082,-0.32142 0.0089078,-0.010457,-0.00077459,-0.10728,-0.14601,0.028273,0.015363,0.015363,-0.091144,-0.17829,0.26711,0.041183,0.01859,-0.11374,-0.13633,0.28647,0.30584,0.24774,-0.26866,-0.32998,0.20256,0.28647,0.28647,-0.2977,-0.32998 -0.12656,-0.12617,-0.12637,-0.12774,-0.12696,-0.12519,-0.12597,-0.12656,-0.12656,-0.12617,-0.12362,-0.12283,-0.12401,-0.12303,-0.12322,-0.12145,-0.12145,0.31998,0.32115,-0.12086,0.3129,0.32057,0.3188,0.32174,0.32961 -0.13053,-0.12911,-0.14188,-0.15394,-0.14826,-0.13762,-0.1284,-0.14684,-0.14613,-0.14472,-0.1362,-0.13478,-0.14684,-0.14897,-0.13762,0.15394,0.12627,0.53062,0.13124,0.12485,0.14755,0.13337,0.52991,0.11563,0.11847 -0.034451,-0.017563,-0.077877,-0.11165,-0.12613,-0.070639,-0.051339,-0.060989,-0.11165,-0.13337,0.54697,-0.044101,-0.060989,-0.085114,-0.11889,0.53491,-0.024801,-0.046514,-0.070639,-0.12613,0.51561,-0.012738,-0.022388,-0.063402,-0.12613 -0.12417,-0.091433,-0.11673,-0.092921,-0.054229,0.44877,-0.089945,-0.11376,-0.095898,-0.060182,0.45473,-0.098874,-0.11524,-0.067622,-0.051253,0.45919,-0.10185,-0.1212,-0.052741,-0.031906,0.45324,-0.1331,-0.10483,-0.042324,-0.055717 0.61535,-0.0085684,-0.093837,-0.11671,-0.11671,0.13285,0.026787,-0.10216,-0.10839,-0.11047,0.11829,-0.014808,-0.11047,-0.12087,-0.12919,0.60495,0.014308,-0.10424,-0.11671,-0.12919,0.14325,0.0767,-0.10839,-0.12503,-0.11671 -0.28358,0.16068,0.16579,0.19092,0.19433,-0.28145,-0.16389,0.16878,0.19391,0.098069,-0.26867,-0.16261,0.19902,0.2003,0.094236,-0.26185,-0.27846,0.19646,0.20498,0.099347,-0.25674,-0.27378,0.11042,0.10403,-0.15026 -0.44846,-0.4251,-0.28496,-0.20321,-0.14481,-0.28496,-0.14481,0.0070071,0.042043,0.042043,-0.14481,0.030364,0.19386,0.20554,0.14715,0.10044,0.053721,0.11211,0.25226,0.20554,0.088757,0.0654,0.11211,0.20554,0.21722 -0.084771,-0.087011,-0.090993,-0.089002,0.45762,-0.085517,-0.087758,-0.089251,-0.092487,0.45712,-0.088006,-0.087509,-0.087758,-0.087011,0.45811,-0.086264,-0.088006,-0.084771,-0.086264,0.4601,-0.085268,-0.088255,-0.085766,-0.084771,-0.086513 0.18762,0.14464,-0.3293,-0.31736,-0.32213,0.1912,0.13509,0.096888,-0.29587,-0.31139,0.18404,0.14464,0.092113,-0.29587,-0.30661,0.18523,0.14942,0.10286,0.056299,0.022873,0.18881,0.13509,0.099276,0.051524,0.010935 -0.15653,-0.16481,-0.17978,-0.18137,-0.18264,-0.18137,-0.18201,-0.18264,-0.18169,-0.18041,-0.18137,-0.18264,-0.1836,0.10172,0.26413,0.34692,0.10236,0.097582,0.25362,0.034531,0.30138,0.29151,0.24375,0.25011,0.033258 0.048196,0.12903,0.20986,0.24017,0.2629,-0.062947,0.00020208,0.25533,0.27301,0.29574,-0.15136,-0.1362,-0.10084,0.30079,0.29322,-0.2044,-0.18167,-0.15893,-0.17156,-0.12862,-0.2044,-0.2044,-0.2044,-0.20693,-0.19177 -0.17391,-0.17391,-0.17391,-0.17658,0.18418,-0.17332,-0.17361,-0.1748,0.26273,0.19366,-0.1745,-0.17569,-0.18191,0.25769,0.24346,-0.17687,-0.17717,0.26481,0.19722,0.23902,-0.18013,-0.1834,0.19959,0.19426,0.23309 0.40156,0.39624,-0.094225,-0.096882,-0.10964,0.4005,0.4005,-0.10379,-0.10432,-0.10538,0.4005,-0.094757,-0.099008,-0.098477,-0.11442,-0.096882,-0.096351,-0.1006,-0.099008,-0.10698,-0.092631,-0.088912,-0.097945,-0.098477,-0.1006 -0.13164,-0.12077,-0.022959,-0.045375,0.92666,-0.081377,-0.10787,-0.079339,0.10542,0.10678,-0.069829,-0.086132,0.0048908,0.0089664,-0.037224,-0.075263,-0.083415,-0.077301,-0.011412,-0.030431,0.11697,-0.075263,-0.061678,-0.052168,-0.020242 0.23896,0.2201,0.33058,0.34405,0.22549,0.088061,-0.18679,0.22549,0.26321,0.25782,-0.10056,-0.20835,-0.13021,-0.062839,-0.01703,-0.12751,-0.27572,-0.22182,-0.15446,-0.0035569,0.0018324,-0.26763,-0.20835,-0.16524,-0.065534 0.55298,-0.074613,-0.075145,-0.077273,-0.080038,0.48171,-0.074082,-0.075571,-0.076422,-0.082804,0.57521,-0.086314,-0.084612,-0.076422,-0.079294,0.0045272,-0.085889,-0.087697,-0.085251,-0.080038,0.0028252,-0.07472,-0.086102,-0.087272,-0.087697 -0.43954,-0.37815,-0.46,-0.35769,-0.21445,-0.030285,0.072028,0.031103,0.17434,0.15388,-0.050747,-0.0098221,0.051566,0.13342,0.17434,0.031103,0.11295,0.15388,0.11295,0.21527,0.11295,0.031103,0.072028,0.13342,0.17434 -0.088323,-0.088909,-0.088909,-0.088323,-0.089494,-0.085981,-0.087738,-0.086859,-0.08803,-0.088909,-0.084518,-0.087738,-0.087445,-0.085981,-0.088909,-0.085103,-0.086859,-0.085981,-0.086567,-0.08803,0.44884,0.4506,0.45645,-0.083932,0.47665 0.22158,0.21634,0.21259,0.22757,0.23094,0.25828,0.22158,0.21259,0.20959,-0.17728,0.23993,0.22832,-0.17578,-0.17616,-0.17653,-0.18402,-0.17578,-0.17578,-0.17728,-0.17878,-0.17391,-0.17653,-0.17503,-0.17578,-0.18065 0.58051,0.56725,-0.093903,-0.094985,-0.095797,0.2383,-0.091469,-0.094985,-0.093903,-0.094985,0.23667,-0.090657,-0.093903,-0.096609,-0.093903,0.23586,-0.09201,-0.091469,-0.093092,-0.094174,-0.089034,-0.089846,-0.089846,-0.090657,-0.093362 -0.35429,0.11007,0.11243,0.11138,0.11034,-0.35534,0.10824,0.10797,0.10824,0.11427,-0.35482,-0.35875,0.11086,0.11348,0.11873,-0.35429,0.10456,0.10666,0.11558,0.1224,-0.35744,0.10929,0.11296,0.11558,0.12188 -0.1327,-0.12023,-0.095282,-0.10775,-0.095282,-0.10775,-0.10775,-0.10775,-0.095282,-0.070339,-0.045396,-0.057868,-0.082811,-0.070339,-0.057868,-0.070339,-0.045396,-0.045396,0.041904,0.029433,-0.070339,-0.045396,0.35993,0.58442,0.61559 0.064487,0.13147,-0.17393,-0.16939,-0.21026,0.10309,0.23138,0.27339,-0.16939,-0.22162,0.16553,0.20413,0.27225,-0.21708,-0.18415,0.28474,0.19619,0.17234,-0.2114,-0.20345,0.019074,0.26431,-0.20572,-0.20345,-0.21253 -0.30529,-0.3061,-0.30671,-0.38973,-0.39196,0.032486,0.044057,0.13845,0.14251,-0.39135,0.044463,0.051364,0.13236,0.13966,0.14372,0.049943,0.12769,0.12586,0.13621,0.14048,0.12221,0.12485,0.12525,0.12749,0.1421 0.24503,0.27427,0.26784,-0.14039,-0.15618,0.25263,0.31287,0.29708,-0.1474,-0.15676,0.23275,0.27895,-0.13629,-0.14916,-0.16904,0.22397,-0.12518,-0.14214,-0.1591,-0.17665,-0.11465,-0.12635,-0.14039,-0.16495,-0.18074 -0.11896,-0.11896,-0.11896,-0.037852,0.016222,0.016222,-0.146,-0.17304,-0.22711,-0.17304,0.070296,0.016222,-0.146,-0.146,-0.17304,-0.010815,0.016222,0.15141,-0.146,-0.17304,0.52992,0.47585,0.34066,0.20548,0.070296 -0.086435,-0.086929,-0.084706,-0.084212,-0.082977,-0.086682,-0.084459,-0.0852,-0.086682,0.28873,-0.086682,-0.084459,-0.084212,-0.087423,0.49941,-0.087423,-0.0852,-0.083471,-0.084706,0.50336,-0.086435,-0.08767,-0.087176,-0.08767,0.50929 -0.16717,-0.15035,-0.12979,-0.11297,-0.13353,-0.15595,-0.11857,-0.12792,-0.075585,-0.066239,-0.12231,-0.10362,-0.071847,-0.041942,0.39916,-0.092406,-0.10923,-0.043811,0.39916,0.41037,-0.051287,-0.041942,-0.051287,0.38047,0.3786 0.25728,0.24921,0.28418,0.25728,0.19809,0.25728,0.24921,0.24921,-0.13009,-0.16237,0.25728,0.17388,-0.16237,-0.16237,-0.16237,-0.14085,-0.13547,-0.17851,-0.17582,-0.17044,-0.16237,-0.1543,-0.16237,-0.17851,-0.19465 -0.1972,-0.1972,-0.19255,0.0040802,0.0018924,-0.19555,-0.19993,0.20098,0.19387,0.19278,-0.19692,-0.19938,-0.19911,0.1966,0.1977,-0.19638,-0.20075,0.21028,0.19715,0.2152,-0.19665,-0.19911,0.20098,0.20043,0.35877 ================================================ FILE: src/matlab/for_distribution/jython/quick_povray.sh ================================================ #!/bin/bash povray +Itorus.pov +H600 +W800 +Q3 +A ================================================ FILE: src/matlab/for_distribution/jython/representatives_example.jy ================================================ #!/usr/bin/env jython import sys # Todo: make sure that this points to the correct location libs = [ "../lib/javaplex.jar" ] for s in libs: sys.path.append(s) import edu.stanford.math.plex4 import edu.stanford.math.plex4.api import edu.stanford.math.plex4.examples import edu.stanford.math.plex4.io # get a new ExplicitSimplexStream stream = edu.stanford.math.plex4.api.Plex4.createExplicitSimplexStream() dimension = 5 # construct simplicial sphere stream.addElement(range(0, dimension + 2)) stream.ensureAllFaces() stream.removeElementIfPresent(range(0, dimension + 2)) stream.finalizeStream() # get the default persistence computation over Z/2Z persistence = edu.stanford.math.plex4.api.Plex4.getModularSimplicialAlgorithm(dimension + 1, 2) # compute and print the intervals n_sphere_intervals = persistence.computeAnnotatedIntervals(stream) print "n-Sphere intervals: \n%s" % repr(n_sphere_intervals) ================================================ FILE: src/matlab/for_distribution/jython/sphere_witness_example.jy ================================================ #!/usr/bin/env jython import sys # Todo: make sure that this points to the correct location libs = [ "../lib/javaplex.jar" ] for s in libs: sys.path.append(s) import edu.stanford.math.plex4 import edu.stanford.math.plex4.api import edu.stanford.math.plex4.examples import edu.stanford.math.plex4.io # This script calculates the intervals for a Lazy-Witness complex generated # from random points on the 2-sphere dimension = 2 num_points = 10000 num_landmark_points = 100 max_filtration_value = 0.1 # create the set of points point_cloud = edu.stanford.math.plex4.examples.PointCloudExamples.getRandomSpherePoints(num_points, dimension) # create a randomized landmark selector landmark_selector = edu.stanford.math.plex4.api.Plex4.createRandomSelector(point_cloud, num_landmark_points) # create a Lazy-Witness Stream - note that this sets the number of # divisions to the default value of 20 stream = edu.stanford.math.plex4.api.Plex4.createLazyWitnessStream(landmark_selector, dimension + 1, max_filtration_value, 1000) # print out the size of the stream - will be quite large since the complex # construction is very sensitive to the maximum filtration value size = stream.getSize() # get the default persistence algorithm persistence = edu.stanford.math.plex4.api.Plex4.getDefaultSimplicialAlgorithm(dimension + 1) # compute the intervals and transform them to filtration values filtration_value_intervals = persistence.computeIntervals(stream) ## Output # create the barcode plots edu.stanford.math.plex4.io.BarcodeWriter.getInstance().writeToFile(filtration_value_intervals, 0, max_filtration_value, "Lazy-Witness Sphere", "lw_sphere_0.png") edu.stanford.math.plex4.io.BarcodeWriter.getInstance().writeToFile(filtration_value_intervals, 1, max_filtration_value, "Lazy-Witness Sphere", "lw_sphere_1.png") edu.stanford.math.plex4.io.BarcodeWriter.getInstance().writeToFile(filtration_value_intervals, 2, max_filtration_value, "Lazy-Witness Sphere", "lw_sphere_2.png") ================================================ FILE: src/matlab/for_distribution/jython/torus_witness_example.jy ================================================ #!/usr/bin/env jython import sys # Todo: make sure that this points to the correct location libs = [ "../lib/javaplex.jar" ] for s in libs: sys.path.append(s) import edu.stanford.math.plex4 import edu.stanford.math.plex4.api import edu.stanford.math.plex4.examples import edu.stanford.math.plex4.io # This script calculates the intervals for a Lazy-Witness complex generated # from random points on the 2-sphere dimension = 2 num_points = 10000 num_landmark_points = 100 max_filtration_value = 0.1 # create the set of points point_cloud = edu.stanford.math.plex4.examples.PointCloudExamples.getRandomTorusPoints(num_points, 0.5, 1) # create a randomized landmark selector landmark_selector = edu.stanford.math.plex4.api.Plex4.createMaxMinSelector(point_cloud, num_landmark_points) # create a Lazy-Witness Stream - note that this sets the number of # divisions to the default value of 20 stream = edu.stanford.math.plex4.api.Plex4.createLazyWitnessStream(landmark_selector, dimension + 1, max_filtration_value, 1000) # print out the size of the stream - will be quite large since the complex # construction is very sensitive to the maximum filtration value size = stream.getSize() # get the default persistence algorithm persistence = edu.stanford.math.plex4.api.Plex4.getDefaultSimplicialAlgorithm(dimension + 1) # compute the intervals and transform them to filtration values filtration_value_intervals = persistence.computeIntervals(stream) ## Output # create the barcode plots edu.stanford.math.plex4.io.BarcodeWriter.getInstance().writeToFile(filtration_value_intervals, 0, max_filtration_value, "Lazy-Witness Torus", "lw_torus_0.png") edu.stanford.math.plex4.io.BarcodeWriter.getInstance().writeToFile(filtration_value_intervals, 1, max_filtration_value, "Lazy-Witness Torus", "lw_torus_1.png") edu.stanford.math.plex4.io.BarcodeWriter.getInstance().writeToFile(filtration_value_intervals, 2, max_filtration_value, "Lazy-Witness Torus", "lw_torus_2.png") ================================================ FILE: src/matlab/for_distribution/jython/visualization_example.jy ================================================ #!/usr/bin/env jython import sys # Todo: make sure that this points to the correct location libs = [ "../lib/javaplex.jar", "../lib/plex-viewer.jar" ] for s in libs: sys.path.append(s) import edu.stanford.math.plex4 import edu.stanford.math.plex4.api import edu.stanford.math.plex4.examples import edu.stanford.math.plex4.io import edu.stanford.math.plex_viewer.pov torus_points = edu.stanford.math.plex4.examples.PointCloudExamples.getRandomTorusPoints(400, 0.4, 0.8) torus_stream = edu.stanford.math.plex4.api.Plex4.createVietorisRipsStream(torus_points, 2, 0.4) writer = edu.stanford.math.plex_viewer.pov.SimplexStreamPovWriter() writer.writeToFile(torus_stream, torus_points, 'torus.pov') ================================================ FILE: src/matlab/for_distribution/load_javaplex.m ================================================ % This script prepares the javaplex library for use clc; clear all; close all; % clear import; javaaddpath('./lib/javaplex.jar'); import edu.stanford.math.plex4.*; javaaddpath('./lib/plex-viewer.jar'); import edu.stanford.math.plex_viewer.*; cd './utility'; addpath(pwd); cd '..'; ================================================ FILE: src/matlab/for_distribution/tutorial_examples/bottleneck_distance_example.m ================================================ % This script shows the bottleneck distance example %% Bottleneck Distance Example clc; clear; close all; import edu.stanford.math.plex4.*; % get new ExplicitSimplexStreams streamA = api.Plex4.createExplicitSimplexStream(); streamB = api.Plex4.createExplicitSimplexStream(); % construct complex A streamA.addVertex(1, 0); streamA.addVertex(2, 0); streamA.addVertex(3, 0); streamA.addVertex(4, 0); streamA.addVertex(5, 1); streamA.addElement([1, 2], 0); streamA.addElement([2, 3], 0); streamA.addElement([3, 4], 0); streamA.addElement([4, 1], 0); streamA.addElement([3, 5], 2); streamA.addElement([4, 5], 3); streamA.addElement([3, 4, 5], 7); streamA.finalizeStream(); % construct complex B streamB.addVertex(1, 0); streamB.addVertex(2, 0); streamB.addVertex(3, 0); streamB.addVertex(4, 0); streamB.addVertex(5, 2); streamB.addElement([1, 2], 0); streamB.addElement([2, 3], 0); streamB.addElement([3, 4], 0); streamB.addElement([4, 1], 0); streamB.addElement([3, 5], 2); streamB.addElement([4, 5], 2); streamB.addElement([3, 4, 5], 10); streamB.finalizeStream(); % get persistence algorithm over Z/2Z persistence = api.Plex4.getModularSimplicialAlgorithm(3, 2); % compute and print the intervals intervalsA = persistence.computeIntervals(streamA) intervalsB = persistence.computeIntervals(streamB) % compute the bottleneck distances intervalsA_dim0=intervalsA.getIntervalsAtDimension(0); intervalsB_dim0=intervalsB.getIntervalsAtDimension(0); bottleneck_distance_dim0 = edu.stanford.math.plex4.bottleneck.BottleneckDistance.computeBottleneckDistance(intervalsA_dim0,intervalsB_dim0) intervalsA_dim1=intervalsA.getIntervalsAtDimension(1); intervalsB_dim1=intervalsB.getIntervalsAtDimension(1); bottleneck_distance_dim1 = edu.stanford.math.plex4.bottleneck.BottleneckDistance.computeBottleneckDistance(intervalsA_dim1,intervalsB_dim1) ================================================ FILE: src/matlab/for_distribution/tutorial_examples/coreSubset.m ================================================ function core = coreSubset(points, densities, numPoints) % INPUT: % points - N x n matrix of N points in R^n % densities - vertical vector of length N whose i-th entry is the % estimated density of the i-th point. % numPoints - nonnegative integer less than or equal to N % % OUTPUT: % core - numPoints x n matrix of the top numPoints densest points (as % ranked by densities) import edu.stanford.math.plex4.*; [A,sortedDensityIndices] = sort(densities,'descend'); core = points(sortedDensityIndices(1:numPoints),:); ================================================ FILE: src/matlab/for_distribution/tutorial_examples/core_subsets_example.m ================================================ % This script demonstrates the use of the dense core subjects - % Appendix A clc; clear; close all; import edu.stanford.math.plex4.*; %% Prime Numbers Example % get a list of the first 500 primes p = primes(3571)'; length(p) % estimate the density at each point with k = 1 densities1 = kDensitySlow(p, 1); % get the core subset of the top 10% densest points core1 = coreSubset(p, densities1, 10) % estimate the density at each point with k = 50 densities50 = kDensitySlow(p, 50); % get the core subset of the top 10% densest points core50 = coreSubset(p, densities50, 10) ================================================ FILE: src/matlab/for_distribution/tutorial_examples/cyclo_octane_example.m ================================================ % This shows the cyclo-octane example - Section 6 clc; clear; close all; import edu.stanford.math.plex4.*; load pointsCycloOctane.mat size(pointsCycloOctane) max_dimension = 3; num_landmark_points = 100; max_filtration_value = 0.5; nu = 1; num_divisions = 1000; % create a sequential maxmin landmark selector landmark_selector = api.Plex4.createMaxMinSelector(pointsCycloOctane, num_landmark_points); R = landmark_selector.getMaxDistanceFromPointsToLandmarks() % create a lazy witness stream stream = streams.impl.LazyWitnessStream(landmark_selector.getUnderlyingMetricSpace(), landmark_selector, max_dimension, max_filtration_value, nu, num_divisions); stream.finalizeStream() % print out the size of the stream num_simplices = stream.getSize() % get persistence algorithm over Z/2Z persistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension, 2); % compute the intervals intervals = persistence.computeIntervals(stream); % create the barcode plots options.filename = 'lazyCycloOctane'; options.max_filtration_value = max_filtration_value; options.max_dimension = max_dimension - 1; plot_barcodes(intervals, options); ================================================ FILE: src/matlab/for_distribution/tutorial_examples/dct.m ================================================ function changeBasisDct = dct(patchSize) % INPUT: % patchSize - size of the square patches. % % OUTPUT: % changeBasisDct - patchSize^2 x patchSize^2-1 change-of-basis matrix. % Let p be a matrix of patches, with mean zero and Euclidean norm % one, in the pixel basis. We switch to the DCT (discrete cosine % transform) basis by multiplying by matrix changeBasisDct: % pDct = p * changeBasisDct; changeBasisDct = zeros(patchSize^2,patchSize^2-1); v = zeros(patchSize^2,1); for i = 0:patchSize-1 for j = 0:patchSize-1 for k = 0:patchSize-1 for m = 0:patchSize-1 v(1+k+patchSize*m,1) = cos(pi/patchSize*(k+1/2)*i)*cos(pi/patchSize*(m+1/2)*j); end end if i~=0 || j~=0 changeBasisDct(:,i+patchSize*j) = v/norm(v); end end end ================================================ FILE: src/matlab/for_distribution/tutorial_examples/eulerCharacteristic.m ================================================ function eulerCharacteristic(stream, max_dimension) % INPUT: % stream - an instance of the class AbstractFilteredStream<Simplex>. % max_dimension - the maximal dimension of a simplex in stream. % % OUTPUT: % This function prints two Euler characteristic calculations: the first % using the alternating sum of cells, and the second using the % alternating sum of Betti numbers. import edu.stanford.math.plex4.*; persistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension + 1, 2); intervals = persistence.computeIntervals(stream); infinite_barcodes = intervals.getInfiniteIntervals(); betti_sequence = infinite_barcodes.getBettiSequence(); eulerCharCell = 0; eulerCharBetti = 0; cellStr = []; bettiStr = []; for i = 0:(length(betti_sequence) - 1) eulerCharBetti = eulerCharBetti + (-1)^(i) * betti_sequence(i + 1); if mod(i,2)==0 bettiStr = [bettiStr, ' + ', int2str(betti_sequence(i + 1))]; else bettiStr = [bettiStr, ' - ', int2str(betti_sequence(i + 1))]; end end for i = 0:(max_dimension) skeleton_size = streams.utility.StreamUtility.getSkeletonSize(stream, i); eulerCharCell = eulerCharCell + (-1)^(i) * skeleton_size; if mod(i,2)==0 cellStr = [cellStr, ' + ', int2str(skeleton_size)]; else cellStr = [cellStr, ' - ', int2str(skeleton_size)]; end end disp(['The Euler characteristic is ', int2str(eulerCharCell), ' = ', cellStr(4:end), ', using the alternating sum of cells.']) disp(['The Euler characteristic is ', int2str(eulerCharBetti), ' = ', bettiStr(4:end), ', using the alternating sum of Betti numbers.']) ================================================ FILE: src/matlab/for_distribution/tutorial_examples/euler_characteristic_example.m ================================================ % This script shows an Euler characteristic example - Section 7.1 clc; clear; close all; import edu.stanford.math.plex4.*; dimension = 6; % get a new ExplicitSimplexStream stream = api.Plex4.createExplicitSimplexStream(); % construct simplicial sphere stream.addElement(0:(dimension + 1)); stream.ensureAllFaces(); stream.removeElementIfPresent(0:(dimension + 1)); stream.finalizeStream(); eulerCharacteristic(stream, dimension) ================================================ FILE: src/matlab/for_distribution/tutorial_examples/explicit_metric_space_example.m ================================================ % This script demonstrates the use of the explicit metric space - Section % 4.2 clc; clear; close all; import edu.stanford.math.plex4.*; %% House example % create distance matrix distances = [0,2,sqrt(8),2,sqrt(10); 2,0,2,sqrt(8),sqrt(10); sqrt(8),2,0,2,sqrt(2); 2,sqrt(8),2,0,sqrt(2); sqrt(10),sqrt(10),sqrt(2),sqrt(2),0] % create the metric space m_space = metric.impl.ExplicitMetricSpace(distances); % again, remember that indexing is 0-based! m_space.distance(0, 2) ================================================ FILE: src/matlab/for_distribution/tutorial_examples/explicit_simplex_example.m ================================================ % This script demonstrates the use of the explicit simplex streams - % Section 3.1 %% Circle Example clc; clear; close all; import edu.stanford.math.plex4.*; % get a new ExplicitSimplexStream stream = api.Plex4.createExplicitSimplexStream(); % construct a triangle stream.addVertex(0); stream.addVertex(1); stream.addVertex(2); stream.addElement([0, 1]); stream.addElement([0, 2]); stream.addElement([1, 2]); stream.finalizeStream(); % print out the total number of simplices in the complex num_simplices = stream.getSize() % get persistence algorithm over Z/2Z persistence = api.Plex4.getModularSimplicialAlgorithm(3, 2); % compute and print the intervals intervals = persistence.computeIntervals(stream) % compute and print the intervals annotated with a representative cycle intervals = persistence.computeAnnotatedIntervals(stream) %% 9-sphere Example dimension = 9; % get a new ExplicitSimplexStream stream = api.Plex4.createExplicitSimplexStream(); % construct simplicial sphere stream.addElement(0:(dimension + 1)); stream.ensureAllFaces(); stream.removeElementIfPresent(0:(dimension + 1)); stream.finalizeStream(); % print out the total number of simplices in the complex num_simplices = stream.getSize() % get persistence algorithm over Z/2Z persistence = api.Plex4.getModularSimplicialAlgorithm(dimension + 1, 2); % compute and print the intervals intervals = persistence.computeIntervals(stream) % compute and print the intervals annotated with a representative cycle intervals = persistence.computeAnnotatedIntervals(stream) ================================================ FILE: src/matlab/for_distribution/tutorial_examples/house_example.m ================================================ % This script shows the house example - Section 3.2 %% House Example clc; clear; close all; import edu.stanford.math.plex4.*; % get a new ExplicitSimplexStream stream = api.Plex4.createExplicitSimplexStream(); % construct the complex stream.addVertex(1, 0); stream.addVertex(2, 0); stream.addVertex(3, 0); stream.addVertex(4, 0); stream.addVertex(5, 1); stream.addElement([1, 2], 0); stream.addElement([2, 3], 0); stream.addElement([3, 4], 0); stream.addElement([4, 1], 0); stream.addElement([3, 5], 2); stream.addElement([4, 5], 3); stream.addElement([3, 4, 5], 7); stream.finalizeStream(); % get persistence algorithm over Z/2Z persistence = api.Plex4.getModularSimplicialAlgorithm(3, 2); % compute and print the intervals intervals = persistence.computeIntervals(stream) % store the intervals as Matlab matrices intervals_dim0 = edu.stanford.math.plex4.homology.barcodes.BarcodeUtility.getEndpoints(intervals, 0, 0) intervals_dim1 = edu.stanford.math.plex4.homology.barcodes.BarcodeUtility.getEndpoints(intervals, 1, 0) % compute and print the intervals annotated with a representative cycle intervals = persistence.computeAnnotatedIntervals(stream) % get the infinite barcodes infinite_barcodes = intervals.getInfiniteIntervals() % print out betti numbers array betti_numbers_array = infinite_barcodes.getBettiSequence() % print out betti numbers in form {dimension: betti number} betti_numbers_string = infinite_barcodes.getBettiNumbers() % create the barcode plots options.filename = 'house'; options.max_filtration_value = 8; options.file_format = 'eps'; plot_barcodes(intervals, options); % validate stream.validateVerbose() % add illegal simplex stream.addElement([1, 4, 5], 0); % validate again stream.validateVerbose() ================================================ FILE: src/matlab/for_distribution/tutorial_examples/kDensitySlow.m ================================================ function densities = kDensitySlow(points, k) % INPUT: % points - N x n matrix of N points in R^n % k - positive integer less than N. This integer is a parameter for our % density estimate. % % OUTPUT: % densities - vertical vector of length N whose i-th entry is the % estimated density of the i-th point. The estimated density at a % point is the reciprocal of the distance from that point to its % k-th closest neighbor. % % NOTES: % The function kDensitySlow.m uses the function slmetric_pw.m, written by % Dahua Lin, to compute distance matrices. Please see % http://www.mathworks.com/matlabcentral/fileexchange/15935-computing-pairwise-distances-and-metrics % for more information about the function slmetric_pw.m. % % File kdDensitySlow.m is slow for large datasets (thus the name). If you % are interested in a faster version, please email Henry Adams. The faster % version relies on a MATLAB kd-tree package available here: % http://www.mathworks.com/matlabcentral/fileexchange/21512-kd-tree-for-matlab % CONSTANTS: blockSize = 500; % If blockSize too small, the function will be slower than % it would be otherwise. If blockSize is too large, there will not be % enough memory for the computation. My default is blockSize = 500. maxMatrixSize = 25000000; % This m-file will not create a matrix bigger than % maxMatrixSize. Constant blocksize will be lowered so that % N*blockSize<=maxMatrixSize. N = size(points,1); % N is the number of points if N*blockSize > maxMatrixSize blockSize = floor(maxMatrixSize/N); disp('Constant blockSize has been lowered. Expect a very long computation time. Please open m-file kDensitySlow.m for details.') end densities = zeros(N,1); for i = 1:floor(N/blockSize) distances = slmetric_pw(points', points(blockSize*(i-1)+1:blockSize*i,:)', 'eucdist'); sortedDistances = sort(distances); densities(blockSize*(i-1)+1:blockSize*i) = 1./sortedDistances(k+1,:)'; end %remaining points nextPoint = floor(N/blockSize)*blockSize+1; if nextPoint <= N distances = slmetric_pw(points', points(nextPoint:N,:)', 'eucdist'); sortedDistances = sort(distances); densities(nextPoint:N) = 1./sortedDistances(k+1,:)'; end function M = slmetric_pw(X1, X2, mtype, varargin) %SLMETRIC_PW Compute the metric between column vectors pairwisely % % [ Syntax ] % - M = slmetric_pw(X1, X2, mtype); % - M = slmetric_pw(X1, X2, mtype, ...); % % [ Arguments ] % - X1, X2: the sample matrices % - mtype: the string indicating the type of metric % - M: the resulting metric matrix % % [ Description ] % - M = slmetric_pw(X1, X2, mtype) Computes the metrics between % column vectors of X1 and X2 pairwisely, using the metric % specified by mtype. % % Both X1 and X2 are matrices with each column representing a % sample. X1 and X2 should have the same number of rows. Suppose % the size of X1 is d x n1, and the size of X2 is d x n2. Then % the output metric matrix M will be of size n1 x n2, in which % M(i, j) is the metric value between X1(:,i) and X2(:,j). % % - M = slmetric_pw(X1, X2, mtype, ...) Some metric types requires % extra parameters, which should be specified in params. % % The supported metrics of this function are listed as follows: % \{: % - eucdist: Euclidean distance: % $ ||x - y|| $ % % - sqdist: Square of Euclidean distance: % $ ||x - y||^2 $ % % - dotprod: Canonical dot product: % $ <x,y> = x^T * y $ % % - nrmcorr: Normalized correlation (cosine angle): % $ (x^T * y ) / (||x|| * ||y||) $ % % - corrdist: Normalized Correlation distance % $ 1 - nrmcorr(x, y) $ % % - angle: Angle between two vectors (in radian) % $ arccos (nrmcorr(x, y)) $ % - quadfrm: Quadratic form: % $ x^T * Q * y $ % Q is specified in the 1st extra parameter % % - quaddiff: Quadratic form of difference: % $ (x - y)^T * Q * (x - y) $ % Q is specified in the 1st extra parameter % % - cityblk: City block distance (abssum of difference) % $ sum_i |x_i - y_i| $ % % - maxdiff: Maximum absolute difference % $ max_i |x_i - y_i| $ % % - mindiff: Minimum absolute difference % $ min_i |x_i - y_i| $ % % - minkowski: Minkowski distance % $ (\sum_i |x_i - y_i|^p)^(1/p) $ % The order p is specified in the 1st extra parameter % % - wsqdist: Weighted square of Euclidean distance % $ \sum_i w_i (x_i - y_i)^2 $ % the weights w is specified in 1st extra parameter % as a d x 1 column vector % % - hamming: Hamming distance with threshold t % \{ % ht1 = x > t % ht2 = y > t % d = sum(ht1 ~= ht2) % \} % use threshold t as the first extra param. % (by default, t is set to zero). % % - hamming_nrm: Normalized hamming distance, which equals the % ratio of the elements that differ. % \{ % ht1 = x > t % ht2 = y > t % d = sum(ht1 ~= ht2) / length(ht1) % \} % use threshold t as the first extra param. % (by default, t is set to zero). % % - intersect: Histogram Intersection % $ d = sum min(x, y) / min(sum(x), sum(y))$ % % - intersectdis: Histogram intersection distance % $ d = 1 - sum min(x, y) / min(sum(x), sum(y)) $ % % - chisq: Chi-Square Distance % $ d = sum (x(i) - y(i))^2/(2 * (x(i)+y(i))) $ % % - kldiv: Kull-back Leibler divergence % $ d = sum x(i) log (x(i) / y(i)) $ % % - jeffrey: Jeffrey divergence % $ d = KL(h1, (h1+h2)/2) + KL(h2, (h1+h2)/2) $ % \:} % % [ Remarks ] % - Both X1 and X2 should be a matrix of numeric values, except % for case when metric type is 'hamming' or 'hamming_nrm'. % For hamming or hamming_nrm metric, the input matrix can be logical. % % [ Examples ] % - Compute different types of metrics in pairwise manner % \{ % % prepare sample matrix % X1 = rand(10, 100); % X2 = rand(10, 150); % % % compute the euclidean distances (L2) % % between the samples in X1 and X2 % M = slmetric_pw(X1, X2, 'eucdist'); % % % compute the eucidean distances between the samples % % in X1 in a pairwise manner % M = slmetric_pw(X1, X1, 'eucdist'); % % % compute the city block distances (L1) % M = slmetric_pw(X1, X2, 'cityblk'); % % % compute the normalize correlations % M = slmetric_pw(X1, X2, 'nrmcorr'); % % % compute hamming distances % M = slmetric_pw(X1, X2, 'hamming', 0.5); % M2 = slmetric_pw((X1 > 0.5), (X2 > 0.5), 'hamming'); % assert(isequal(M, M2)); % \} % % - Compute the parameterized metrics % \{ % % compute weighted squared distances with user-supplied weights % weights = rand(10, 1); % M = slmetric_pw(X1, X2, 'wsqdist', weights); % % % compute quadratic distances (x-y)^T * Q (x-y) % Q = rand(10, 10); % M = slmetric_pw(X1, X2, 'quaddiff', Q); % % % compute Minkowski distance of order 3 % M = slmetric_pw(X1, X2, 'minkowski', 3); % \} % % [ History ] % - Created by Dahua Lin on Dec 06th, 2005 % - Modified by Dahua Lin on Apr 21st, 2005 % - regularize the error reporting % - Modified by Dahua Lin on Sep 11st, 2005 % - completely rewrite the core codes based on new mex computation % cores, and the runtime efficiency in both time and space is % significantly increased. % - Modified by Dahua Lin on Jul 02, 2007 % - rewrite the core computation based on the bsxfun introduced in % MATLAB R2007a % - rewrite the core-mex for cityblk, maxdiff, mindiff % - introduce new metrics: corrdist, minkowski % - Modified by Dahua Lin on Jul 30, 2007 % - Add the metric types for histograms, which are originally % implemented in slhistmetric_pw in sltoolbox v1. % - Modified by Dahua Lin on Aug 16, 2007 % - revise some of the help contents % %% parse and verify input arguments error(nargchk(3, inf, nargin)); assert(ischar(mtype), 'sltoolbox:slmetric_pw:invalidarg', ... 'The metric type should be a string.'); if strcmp(mtype, 'hamming') || strcmp(mtype, 'hamming_nrm') assert((isnumeric(X1) || islogical(X1)) && ndims(X1) == 2 && ... (isnumeric(X2) || islogical(X2)) && ndims(X2) == 2, ... 'sltoolbox:slmetric_pw:invalidarg', 'X1 and X2 should be numeric or logical matrices.'); else assert(isnumeric(X1) && ndims(X1) == 2 && isnumeric(X2) && ndims(X2) == 2, ... 'sltoolbox:slmetric_pw:invalidarg', 'X1 and X2 should be numeric matrices.'); end assert(isa(X2, class(X1)), ... 'sltoolbox:slmetric_pw:invalidarg', 'X1 and X2 should be of the same class.'); if isempty(X1) || isempty(X2) M = []; return; end %% compute switch mtype case {'eucdist', 'sqdist'} checkdim(X1, X2); M = bsxfun(@plus, sum(X1 .* X1, 1)', (-2) * X1' * X2); M = bsxfun(@plus, sum(X2 .* X2, 1), M); M(M < 0) = 0; if strcmp(mtype, 'eucdist') M = sqrt(M); end case 'dotprod' checkdim(X1, X2); M = X1' * X2; case {'nrmcorr', 'corrdist', 'angle'} checkdim(X1, X2); ns1 = sqrt(sum(X1 .* X1, 1)); ns2 = sqrt(sum(X2 .* X2, 1)); ns1(ns1 == 0) = 1; ns2(ns2 == 0) = 1; M = bsxfun(@times, X1' * X2, 1 ./ ns1'); M = bsxfun(@times, M, 1 ./ ns2); switch mtype case 'corrdist' M = 1 - M; case 'angle' M = real(acos(M)); end case 'quadfrm' Q = varargin{1}; M = X1' * Q * X2; case 'quaddiff' checkdim(X1, X2); Q = varargin{1}; M = X1' * (-(Q + Q')) * X2; M = bsxfun(@plus, M, sum(X1 .* (Q * X1), 1)'); M = bsxfun(@plus, M, sum(X2 .* (Q * X2), 1)); case 'cityblk' checkdim(X1, X2); M = pwmetrics_cimp(X1, X2, int32(1)); case 'maxdiff' checkdim(X1, X2); M = pwmetrics_cimp(X1, X2, int32(3)); case 'mindiff' checkdim(X1, X2); M = pwmetrics_cimp(X1, X2, int32(2)); case 'minkowski' checkdim(X1, X2); pord = varargin{1}; if ~isscalar(pord) error('sltoolbox:slmetric_pw:invalidparam', ... 'the mikowski order should be a scalar'); end pord = cast(pord, class(X1)); M = pwmetrics_cimp(X1, X2, int32(4), pord); case 'wsqdist' d = checkdim(X1, X2); w = varargin{1}; if ~isequal(size(w), [d, 1]) error('sltoolbox:slmetric_pw:invalidparam', ... 'the weights should be given as a d x 1 vector.'); end wX2 = bsxfun(@times, X2, w); M = bsxfun(@plus, (-2) * X1' * wX2, sum(wX2 .* X2, 1)); clear wX2; wX1 = bsxfun(@times, X1, w); M = bsxfun(@plus, M, sum(wX1 .* X1, 1)'); case {'hamming', 'hamming_nrm'} checkdim(X1, X2); if islogical(X1) && islogical(X2) H1 = X1; H2 = X2; else if isempty(varargin) t = 0; else t = varargin{1}; assert(isnumeric(t) && isscalar(t), ... 'sltoolbox:slmetric_pw:invalidparam', 't should be a numeric scalar.'); end H1 = X1 > t; H2 = X2 > t; end M = pwhamming_cimp(H1, H2); if strcmp(mtype, 'hamming_nrm') M = M / size(H1, 1); end case 'intersect' checkdim(X1, X2); M = pwmetrics_cimp(X1, X2, int32(5)); case 'intersectdis' checkdim(X1, X2); M = 1 - pwmetrics_cimp(X1, X2, int32(5)); case 'chisq' checkdim(X1, X2); M = pwmetrics_cimp(X1, X2, int32(6)); case 'kldiv' checkdim(X1, X2); M = pwmetrics_cimp(X1, X2, int32(7)); case 'jeffrey' checkdim(X1, X2); M = pwmetrics_cimp(X1, X2, int32(8)); otherwise error('sltoolbox:slmetric_pw:unknowntype', 'Unknown metric type %s', mtype); end %% Auxiliary function function d = checkdim(X1, X2) d = size(X1, 1); if d ~= size(X2, 1) error('sltoolbox:slmetric_pw:sizmismatch', ... 'X1 and X2 have different sample dimensions'); end ================================================ FILE: src/matlab/for_distribution/tutorial_examples/landmark_example.m ================================================ % This script shows the difference between randomized and maxmin landmark % selection - Section 5.2 clc; clear; close all; import edu.stanford.math.plex4.*; %% Figure 8 Example % initialize the point cloud point_cloud = examples.PointCloudExamples.getRandomFigure8Points(1000); % create the landmark selectors num_landmark_points = 100; random_selector = api.Plex4.createRandomSelector(point_cloud, num_landmark_points); maxmin_selector = api.Plex4.createMaxMinSelector(point_cloud, num_landmark_points); % extract the subset of landmark points from the original point cloud % Note: we need to increment the indices by 1 since Java uses 0-based % arrays random_points = point_cloud(random_selector.getLandmarkPoints() + 1, :); maxmin_points = point_cloud(maxmin_selector.getLandmarkPoints() + 1, :); % Plot the landmark points subplot(1, 2, 1); scatter(random_points(:,1), random_points(:, 2), '+'); title('Random landmark selection'); subplot(1, 2, 2); scatter(maxmin_points(:,1), maxmin_points(:, 2), '+'); title('Maxmin landmark selection'); print('-depsc', 'landmarks.eps'); system('epstopdf landmarks.eps') ================================================ FILE: src/matlab/for_distribution/tutorial_examples/lazy_witness_example.m ================================================ % This script calculates the intervals for a lazy witness complex - % Section 5.3 clc; clear; close all; import edu.stanford.math.plex4.*; %% 2-Sphere Example max_dimension = 3; num_points = 1000; num_landmark_points = 50; nu = 1; num_divisions = 1000; % create the set of points point_cloud = examples.PointCloudExamples.getRandomSpherePoints(num_points, max_dimension - 1); % create a sequential maxmin landmark selector landmark_selector = api.Plex4.createMaxMinSelector(point_cloud, num_landmark_points); R = landmark_selector.getMaxDistanceFromPointsToLandmarks() max_filtration_value = 2 * R; % create a lazy witness stream stream = streams.impl.LazyWitnessStream(landmark_selector.getUnderlyingMetricSpace(), landmark_selector, max_dimension, max_filtration_value, nu, num_divisions); stream.finalizeStream() % print out the size of the stream num_simplices = stream.getSize() % get persistence algorithm over Z/2Z persistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension, 2); % compute the intervals intervals = persistence.computeIntervals(stream); % create the barcode plots options.filename = 'lazySphere'; options.max_filtration_value = max_filtration_value; options.max_dimension = max_dimension - 1; plot_barcodes(intervals, options); ================================================ FILE: src/matlab/for_distribution/tutorial_examples/optical_image_example.m ================================================ % This shows the optical image patch example - Section 6 clc; clear; close all; import edu.stanford.math.plex4.*; % k = 300 load pointsOpticalDct_k300.mat size(pointsOpticalDct_k300) max_dimension = 3; num_landmark_points = 50; nu = 1; num_divisions = 1000; % create a sequential maxmin landmark selector landmark_selector = api.Plex4.createMaxMinSelector(pointsOpticalDct_k300, num_landmark_points); R = landmark_selector.getMaxDistanceFromPointsToLandmarks() max_filtration_value = R / 4; % create a lazy witness stream stream = streams.impl.LazyWitnessStream(landmark_selector.getUnderlyingMetricSpace(), landmark_selector, max_dimension, max_filtration_value, nu, num_divisions); stream.finalizeStream() % print out the size of the stream num_simplices = stream.getSize() % get persistence algorithm over Z/2Z persistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension, 2); % compute the intervals intervals = persistence.computeIntervals(stream); % create the barcode plots options.filename = 'lazyOpticalDct-k300'; options.max_filtration_value = max_filtration_value; options.max_dimension = max_dimension - 1; plot_barcodes(intervals, options); % plot a projection of the dataset onto the first two DCT basis vectors figure scatter(pointsOpticalDct_k300(:,1), pointsOpticalDct_k300(:,2), '.') axis square % k = 15 load pointsOpticalDct_k15.mat size(pointsOpticalDct_k15) max_dimension = 3; num_landmark_points = 50; nu = 1; num_divisions = 500; % create a sequential maxmin landmark selector landmark_selector = api.Plex4.createMaxMinSelector(pointsOpticalDct_k15, num_landmark_points); R = landmark_selector.getMaxDistanceFromPointsToLandmarks() max_filtration_value = R / 4; % create a lazy witness stream stream = streams.impl.LazyWitnessStream(landmark_selector.getUnderlyingMetricSpace(), landmark_selector, max_dimension, max_filtration_value, nu, num_divisions); stream.finalizeStream() % print out the size of the stream num_simplices = stream.getSize() % get persistence algorithm over Z/2Z persistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension, 2); % compute the intervals intervals = persistence.computeIntervals(stream); % create the barcode plots options.filename = 'lazyOpticalDct-k15'; options.max_filtration_value = max_filtration_value; options.max_dimension = max_dimension - 1; plot_barcodes(intervals, options); % plot a projection of the dataset onto the first two DCT basis vectors figure scatter(pointsOpticalDct_k15(:,1), pointsOpticalDct_k15(:,2), '.') axis square ================================================ FILE: src/matlab/for_distribution/tutorial_examples/pointcloud_example.m ================================================ % This script demonstrates the use of various point clouds - Section 4.1 clc; clear; close all; import edu.stanford.math.plex4.*; %% House Example % create the set of points point_cloud = [-1,0; 1,0; 1,2; -1,2; 0,3] % various examples of metric space methods m_space = metric.impl.EuclideanMetricSpace(point_cloud); % NB: javaPlex uses 0-based arrays! m_space.getPoint(0) m_space.getPoint(2) m_space.distance(m_space.getPoint(0), m_space.getPoint(2)) %% Figure 8 Example % create the set of points point_cloud = examples.PointCloudExamples.getRandomFigure8Points(1000); figure scatter(point_cloud(:,1), point_cloud(:,2), '.') axis equal %% Torus Example % create the set of points point_cloud = examples.PointCloudExamples.getRandomTorusPoints(2000, 1, 2); figure scatter3(point_cloud(:,1), point_cloud(:,2), point_cloud(:,3), '.') axis equal view(60,40) %% Sphere Product Example % create the set of points % The following gets 1000 points on the torus S^1 x S^1 in R^4 % One can use the same to get uniformly random points on S^k x ... x S^k % (any finite product of k-spheres) point_cloud = examples.PointCloudExamples.getRandomSphereProductPoints(1000, 1, 2); figure scatter(point_cloud(:,3), point_cloud(:,4), '.') axis equal ================================================ FILE: src/matlab/for_distribution/tutorial_examples/range_image_example.m ================================================ % This shows the range image patch example - Section 6 clc; clear; close all; import edu.stanford.math.plex4.*; load pointsRange.mat size(pointsRange) max_dimension = 3; num_landmark_points = 50; nu = 1; num_divisions = 1000; % create a sequential maxmin landmark selector landmark_selector = api.Plex4.createMaxMinSelector(pointsRange, num_landmark_points); R = landmark_selector.getMaxDistanceFromPointsToLandmarks() max_filtration_value = R / 3; % create a lazy witness stream stream = streams.impl.LazyWitnessStream(landmark_selector.getUnderlyingMetricSpace(), landmark_selector, max_dimension, max_filtration_value, nu, num_divisions); stream.finalizeStream() % print out the size of the stream - will be quite large since the complex % construction is very sensitive to the maximum filtration value num_simplices = stream.getSize() % get persistence algorithm over Z/2Z persistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension, 2); % compute the intervals intervals = persistence.computeIntervals(stream); % create the barcode plots options.filename = 'lazyRange'; options.max_filtration_value = max_filtration_value; options.max_dimension = max_dimension - 1; plot_barcodes(intervals, options); %% DCT pointsRangeDct = pointsRange * dct(5); figure; scatter(pointsRangeDct(:,1), pointsRangeDct(:,5), '.') axis square ================================================ FILE: src/matlab/for_distribution/tutorial_examples/rips_example.m ================================================ %% This script demonstrates the use of plex on a simple "house" example - %% Section 5.1 clc; clear; close all; import edu.stanford.math.plex4.*; %% House Example max_dimension = 3; max_filtration_value = 4; num_divisions = 1000; % create the set of points point_cloud = [-1,0; 1,0; 1,2; -1,2; 0,3]; % create a Vietoris-Rips stream stream = api.Plex4.createVietorisRipsStream(point_cloud, max_dimension, max_filtration_value, num_divisions); % get persistence algorithm over Z/2Z persistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension, 2); % compute the intervals intervals = persistence.computeIntervals(stream); % create the barcode plots options.filename = 'ripsHouse'; options.max_filtration_value = max_filtration_value; options.max_dimension = max_dimension - 1; plot_barcodes(intervals, options); %% Torus Example max_dimension = 3; max_filtration_value = 0.9; num_divisions = 1000; % create the set of points load pointsTorusGrid.mat point_cloud = pointsTorusGrid; size(point_cloud) % create a Vietoris-Rips stream stream = api.Plex4.createVietorisRipsStream(point_cloud, max_dimension, max_filtration_value, num_divisions); num_simplices = stream.getSize() % get persistence algorithm over Z/2Z persistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension, 2); % compute the intervals intervals = persistence.computeIntervals(stream); % create the barcode plots options.filename = 'ripsTorus'; options.max_filtration_value = max_filtration_value; options.max_dimension = max_dimension - 1; options.side_by_side = true; plot_barcodes(intervals, options); % get the infinite barcodes infinite_barcodes = intervals.getInfiniteIntervals(); % print out betti numbers array betti_numbers_array = infinite_barcodes.getBettiSequence() ================================================ FILE: src/matlab/for_distribution/tutorial_examples/sublevelset_example.m ================================================ % This script shows a sublevelset persistence example - Section 7.6 clc; clear; close all; import edu.stanford.math.plex4.*; %% Example: Random input filename='random'; M=rand(100,100); intervals_sub = sublevelset_persistence(M,filename) ================================================ FILE: src/matlab/for_distribution/tutorial_examples/sublevelset_persistence.m ================================================ function intervals = sublevelset_persistence(M,filename) % INPUT: % M - a matrix of size n x m % % OUTPUT: % This function computes the sublevelset persistent homology of M in % homological dimension 0 and 1. import edu.stanford.math.plex4.*; [n,m]=size(M); max_dimension=2; % get a new ExplicitSimplexStream stream = api.Plex4.createExplicitSimplexStream(max(max(M))); % The parameter max(max(M)) is supposed to be an upper bound on all % filtration values; if it is not added then Javaplex will round all % filtration values to be integers. % add vertices for i=1:n for j=1:m stream.addVertex(ijNum(i,j,n),M(i,j)); end end % add horizontal edges for i=1:n for j=1:m-1 stream.addElement([ijNum(i,j,n),ijNum(i,j+1,n)],max(M(i,j),M(i,j+1))); end end % add vertical edges for i=1:n-1 for j=1:m stream.addElement([ijNum(i,j,n),ijNum(i+1,j,n)],max(M(i,j),M(i+1,j))); end end % add triangles and diagonal edges for i=1:n-1 for j=1:m-1 filtValue=max([M(i,j),M(i,j+1),M(i+1,j),M(i+1,j+1)]); stream.addElement([ijNum(i,j,n),ijNum(i+1,j+1,n)],filtValue); stream.addElement([ijNum(i,j,n),ijNum(i,j+1,n),ijNum(i+1,j+1,n)],filtValue); stream.addElement([ijNum(i,j,n),ijNum(i+1,j,n),ijNum(i+1,j+1,n)],filtValue); end end %iterator = stream.iterator(); %while (iterator.hasNext()) % simplex = iterator.next() % filtration_value = stream.getFiltrationValue(simplex); % disp(filtration_value) %end stream.finalizeStream(); % num_simplimces = stream.getSize(); persistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension, 2); intervals = persistence.computeIntervals(stream); % create the barcode plots options.filename = filename; options.max_dimension = max_dimension - 1; plot_barcodes(intervals, options); end % The input to this function are the indices i,j in a matrix, and the % number of rows in the matrix n. % The output is the corresponding vertex number from 0 to (n+1)*(m+1)-1. % Vertices are counted from 0 to n*m-1, with the first column % labeled from 0 to n-1, where i ranges from 1 to the number of rows n, and % j ranges from 1 to the number of columns m. function vertexNumber=ijNum(i,j,n) vertexNumber=(i-1)+(j-1)*n; end ================================================ FILE: src/matlab/for_distribution/tutorial_examples/witness_example.m ================================================ % This script calculates the intervals for a witness complex - Section 5.3 clc; clear; close all; import edu.stanford.math.plex4.*; %% Torus Example num_points = 10000; num_landmark_points = 50; max_dimension = 3; num_divisions = 1000; % create the set of points point_cloud = examples.PointCloudExamples.getRandomSphereProductPoints(num_points, 1, 2); % create a sequential maxmin landmark selector landmark_selector = api.Plex4.createMaxMinSelector(point_cloud, num_landmark_points); R = landmark_selector.getMaxDistanceFromPointsToLandmarks() max_filtration_value = R / 8; % create a witness stream stream = api.Plex4.createWitnessStream(landmark_selector, max_dimension, max_filtration_value, num_divisions); % print out the size of the stream num_simplices = stream.getSize() % get persistence algorithm over Z/2Z persistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension, 2); % compute the intervals intervals = persistence.computeIntervals(stream); % create the barcode plots options.filename = 'witnessTorus'; options.max_filtration_value = max_filtration_value; options.max_dimension = max_dimension - 1; plot_barcodes(intervals, options); ================================================ FILE: src/matlab/for_distribution/tutorial_solutions/exercise_1.m ================================================ % Exercise 1 % We order the vertices in a clockwise fashion, starting with % vertex 1 on the top left. clc; clear; close all; import edu.stanford.math.plex4.*; % get a new ExplicitSimplexStream stream = api.Plex4.createExplicitSimplexStream(); % add simplices for i = 1:6 stream.addVertex(i); end stream.addElement([1, 2]); stream.addElement([1, 6]); stream.addElement([2, 3]); stream.addElement([2, 5]); stream.addElement([3, 4]); stream.addElement([3, 5]); stream.addElement([4, 5]); stream.addElement([5, 6]); stream.addElement([2, 3, 5]); stream.finalizeStream(); % get persistence algorithm over Z/2Z persistence = api.Plex4.getModularSimplicialAlgorithm(3, 2); % compute and print the intervals intervals = persistence.computeIntervals(stream) ================================================ FILE: src/matlab/for_distribution/tutorial_solutions/exercise_11.m ================================================ % Exercise 11 %% This script demonstrates the Vietoris-Rips complex on n evenly spaced %% points around the circle. clc; clear; close all; import edu.stanford.math.plex4.*; max_dimension = 4; max_filtration_value = 2; num_divisions = 1000; % Select n evenly-spaced points from the circle n=15; point_cloud = [cos(2*pi/n*(0:n-1)'),sin(2*pi/n*(0:n-1)')]; scatter(point_cloud(:,1),point_cloud(:,2)), axis equal % create a Vietoris-Rips stream stream = api.Plex4.createVietorisRipsStream(point_cloud, max_dimension, max_filtration_value, num_divisions); % get persistence algorithm over Z/2Z persistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension, 2); % compute the intervals intervals = persistence.computeIntervals(stream); % create the barcode plots options.filename = 'ripsCircle'; options.max_filtration_value = max_filtration_value; options.max_dimension = max_dimension - 1; plot_barcodes(intervals, options); ================================================ FILE: src/matlab/for_distribution/tutorial_solutions/exercise_12.m ================================================ % Exercise 12 % Our planar dataset is 6 evenly spaced points on the unit circle. We build % a Vietoris-Rips stream which, at the correct filtration value, is an % octahedron. clc; clear; close all; import edu.stanford.math.plex4.*; n = 6; angles = 2 * pi/n * (1:n)'; pointsS1 = [cos(angles), sin(angles)]; scatter(pointsS1(:,1), pointsS1(:,2)), axis equal max_dimension = 2; max_filtration_value = 2; num_divisions = 1000; % create a Vietoris-Rips stream stream = api.Plex4.createVietorisRipsStream(pointsS1, max_dimension + 1, max_filtration_value, num_divisions); % get persistence algorithm over Z/2Z persistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension + 1, 2); % compute and print the intervals intervals = persistence.computeIntervals(stream) ================================================ FILE: src/matlab/for_distribution/tutorial_solutions/exercise_13.m ================================================ % Exercise 13 % Our planar dataset is 14 evenly spaced points on the unit circle. We % build a Vietoris-Rips stream which, at the correct filtration value, is % homeomorphic to the 6-sphere. It has 14 vertices because it is obtained % by suspending the 0-sphere six times, for a total of 2 + (6 * 2) = 14 % vertices. clc; clear; close all; import edu.stanford.math.plex4.*; n = 14; angles = 2 * pi/n * (1:n)'; pointsS1 = [cos(angles), sin(angles)]; scatter(pointsS1(:,1), pointsS1(:,2)), axis equal max_dimension = 7; max_filtration_value = 2; num_divisions = 1000; % create a Vietoris-Rips stream stream = api.Plex4.createVietorisRipsStream(pointsS1, max_dimension + 1, max_filtration_value, num_divisions); % get persistence algorithm over Z/2Z persistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension + 1, 2); % compute and print the intervals intervals = persistence.computeIntervals(stream) ================================================ FILE: src/matlab/for_distribution/tutorial_solutions/exercise_14.m ================================================ % Exercise 14 clc; clear; close all; import edu.stanford.math.plex4.*; max_dimension = 4; max_filtration_value = 5; num_divisions = 1000; % Select the 8 vertices of the cube point_cloud = [1,1,1;1,1,-1;1,-1,1;1,-1,-1;-1,1,1;-1,1,-1;-1,-1,1;-1,-1,-1]; scatter3(point_cloud(:,1),point_cloud(:,2),point_cloud(:,3)), view(100,10) % create a Vietoris-Rips stream stream = api.Plex4.createVietorisRipsStream(point_cloud, max_dimension, max_filtration_value, num_divisions); % get persistence algorithm over Z/2Z persistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension, 2); % compute the intervals intervals = persistence.computeIntervals(stream); % create the barcode plots options.filename = 'ripsCube'; options.max_filtration_value = max_filtration_value; options.max_dimension = max_dimension - 1; plot_barcodes(intervals, options); ================================================ FILE: src/matlab/for_distribution/tutorial_solutions/exercise_2.m ================================================ % Exercise 2 % We use 9 vertices, which we think of as a 3x3 grid numbered as a % telephone keypad. We identify opposite sides. For a picture, see % Appendix B of the tutorial. clc; clear; close all; import edu.stanford.math.plex4.*; % get a new ExplicitSimplexStream stream = api.Plex4.createExplicitSimplexStream(); % add simplices stream.addElement([1, 2, 7]); stream.addElement([2, 7, 8]); stream.addElement([2, 3, 8]); stream.addElement([3, 8, 9]); stream.addElement([1, 3, 9]); stream.addElement([1, 7, 9]); stream.addElement([4, 7, 8]); stream.addElement([4, 5, 8]); stream.addElement([5, 8, 9]); stream.addElement([5, 6, 9]); stream.addElement([6, 7, 9]); stream.addElement([4, 6, 7]); stream.addElement([1, 4, 5]); stream.addElement([1, 2, 5]); stream.addElement([2, 5, 6]); stream.addElement([2, 3, 6]); stream.addElement([3, 6, 4]); stream.addElement([1, 3, 4]); stream.ensureAllFaces(); stream.finalizeStream(); % get persistence algorithm over Z/2Z persistence = api.Plex4.getModularSimplicialAlgorithm(3, 2); % compute and print the intervals intervals = persistence.computeIntervals(stream) ================================================ FILE: src/matlab/for_distribution/tutorial_solutions/exercise_21.m ================================================ % Exercise 21 clc; clear; close all; import edu.stanford.math.plex4.*; max_dimension = 3; num_points = 1000; num_landmark_points = 50; nu = 1; num_divisions = 1000; % select points from the square [0,1] x [0,1] and then compute the distance % matrix for these points under the induced metric on the flat torus distances = flatTorusDistanceMatrix(num_points); % create an explicit metric space from this distance matrix m_space = metric.impl.ExplicitMetricSpace(distances); % create a sequential maxmin landmark selector landmark_selector = api.Plex4. createMaxMinSelector(m_space, num_landmark_points); R = landmark_selector.getMaxDistanceFromPointsToLandmarks() max_filtration_value = R; % create a lazy witness stream stream = streams.impl.LazyWitnessStream(landmark_selector.getUnderlyingMetricSpace(), landmark_selector, max_dimension, max_filtration_value, nu, num_divisions); stream.finalizeStream(); % print out the size of the stream num_simplices = stream.getSize() % get persistence algorithm over Z/2Z persistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension, 2); % compute the intervals intervals = persistence.computeIntervals(stream); % create the barcode plots options.filename = 'lazyWitnessFlatTorus'; options.max_filtration_value = max_filtration_value; options.max_dimension = max_dimension - 1; plot_barcodes(intervals, options); ================================================ FILE: src/matlab/for_distribution/tutorial_solutions/exercise_22.m ================================================ % Exercise 22 clc; clear; close all; import edu.stanford.math.plex4.*; max_dimension = 3; num_points = 1000; num_landmark_points = 50; nu = 1; num_divisions = 1000; % select points from the square [0,1] x [0,1] and then compute the distance % matrix for these points under the induced metric on the flat Klein bottle distances = flatKleinDistanceMatrix(num_points); % create an explicit metric space from this distance matrix m_space = metric.impl.ExplicitMetricSpace(distances); % create a sequential maxmin landmark selector landmark_selector = api.Plex4. createMaxMinSelector(m_space, num_landmark_points); R = landmark_selector.getMaxDistanceFromPointsToLandmarks() max_filtration_value = R; % create a lazy witness stream stream = streams.impl.LazyWitnessStream(landmark_selector.getUnderlyingMetricSpace(), landmark_selector, max_dimension, max_filtration_value, nu, num_divisions); stream.finalizeStream(); % print out the size of the stream num_simplices = stream.getSize() % get persistence algorithm over Z/2Z Z2_persistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension, 2); % compute the intervals Z2_intervals = Z2_persistence.computeIntervals(stream); % create the barcode plots options = struct; options.filename = 'lazyWitnessFlatKlein-Z2'; options.max_filtration_value = max_filtration_value; options.max_dimension = max_dimension - 1; plot_barcodes(Z2_intervals, options); % get persistence algorithm over Z/3Z Z3_persistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension, 3); % compute the intervals Z3_intervals = Z3_persistence.computeIntervals(stream); % create the barcode plots options = struct; options.filename = 'lazyWitnessFlatKlein-Z3'; options.max_filtration_value = max_filtration_value; options.max_dimension = max_dimension - 1; plot_barcodes(Z3_intervals, options); ================================================ FILE: src/matlab/for_distribution/tutorial_solutions/exercise_23.m ================================================ % Exercise 23 clc; clear; close all; import edu.stanford.math.plex4.*; max_dimension = 3; num_points = 1000; num_landmark_points = 50; nu = 1; num_divisions = 1000; % select points from the unit sphere S^2 and then compute the distance % matrix for these points under the induced metric on the projective plane distances = projPlaneDistanceMatrix(num_points); % create an explicit metric space from this distance matrix m_space = metric.impl.ExplicitMetricSpace(distances); % create a sequential maxmin landmark selector landmark_selector = api.Plex4. createMaxMinSelector(m_space, num_landmark_points); R = landmark_selector.getMaxDistanceFromPointsToLandmarks() max_filtration_value = 1.5 * R; % create a lazy witness stream stream = streams.impl.LazyWitnessStream(landmark_selector.getUnderlyingMetricSpace(), landmark_selector, max_dimension, max_filtration_value, nu, num_divisions); stream.finalizeStream(); % print out the size of the stream num_simplices = stream.getSize() % get persistence algorithm over Z/2Z Z2_persistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension, 2); % compute the intervals Z2_intervals = Z2_persistence.computeIntervals(stream); % create the barcode plots options = struct; options.filename = 'lazyWitnessProjPlane-Z2'; options.max_filtration_value = max_filtration_value; options.max_dimension = max_dimension - 1; plot_barcodes(Z2_intervals, options); % get persistence algorithm over Z/3Z Z3_persistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension, 3); % compute the intervals Z3_intervals = Z3_persistence.computeIntervals(stream); % create the barcode plots options = struct; options.filename = 'lazyWitnessProjPlane-Z3'; options.max_filtration_value = max_filtration_value; options.max_dimension = max_dimension - 1; plot_barcodes(Z3_intervals, options); ================================================ FILE: src/matlab/for_distribution/tutorial_solutions/exercise_24.m ================================================ % Exercise 24 % Thanks to Ulrich Bauer for this solution. clc; clear; close all; import edu.stanford.math.plex4.*; max_dimension = 3; num_points = 10000; num_landmark_points = 200; nu = 1; num_divisions = 1000; % create the set of points point_cloud = getDoubleTorusPoints(num_points, 0.001); % create a sequential maxmin landmark selector landmark_selector = api.Plex4.createMaxMinSelector(point_cloud, num_landmark_points); landmarks = point_cloud(landmark_selector.getLandmarkPoints() + 1, :); % plot point cloud in blue and landmarks in red hold on; plot3(point_cloud(:,1), point_cloud(:,2), point_cloud(:,3), '.') plot3(landmarks(:, 1), landmarks(:, 2) , landmarks(:, 3), '.r') axis equal % create a lazy witness stream max_filtration_value = 0.1; stream = streams.impl.LazyWitnessStream(landmark_selector.getUnderlyingMetricSpace(), landmark_selector, max_dimension, max_filtration_value, nu, num_divisions); stream.finalizeStream() % print out the size of the stream num_simplices = stream.getSize() % get persistence algorithm over Z/2Z persistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension, 2); % compute the intervals intervals = persistence.computeIntervals(stream); % create the barcode plots options.filename = 'doubleTorus'; options.max_filtration_value = max_filtration_value; options.max_dimension = max_dimension - 1; plot_barcodes(intervals, options); % Note: Between filtration values 0.04 and 0.08, the correct Betti barcodes % Betti_0 = 1, Betti_1 = 4, and Betti_2 = 1 are generally obtained. ================================================ FILE: src/matlab/for_distribution/tutorial_solutions/exercise_3.m ================================================ % Exercise 3 % We use 9 vertices, which we think of as a 3x3 grid numbered as a % telephone keypad. We identify opposite sides, with left and right sides % identified with a twist. For a picture, see % Appendix B of the tutorial. clc; clear; close all; import edu.stanford.math.plex4.*; % get a new ExplicitSimplexStream stream = api.Plex4.createExplicitSimplexStream(); % add simplices stream.addElement([1, 2, 7]); stream.addElement([2, 7, 8]); stream.addElement([2, 3, 8]); stream.addElement([3, 8, 9]); stream.addElement([1, 3, 9]); stream.addElement([1, 4, 9]); stream.addElement([4, 7, 8]); stream.addElement([4, 5, 8]); stream.addElement([5, 8, 9]); stream.addElement([5, 6, 9]); stream.addElement([6, 4, 9]); stream.addElement([4, 6, 7]); stream.addElement([1, 4, 5]); stream.addElement([1, 2, 5]); stream.addElement([2, 5, 6]); stream.addElement([2, 3, 6]); stream.addElement([3, 6, 7]); stream.addElement([1, 3, 7]); stream.ensureAllFaces(); stream.finalizeStream(); % get persistence algorithm over Z/2Z Z2_persistence = api.Plex4.getModularSimplicialAlgorithm(3, 2); % compute and print the intervals Z2_intervals = Z2_persistence.computeIntervals(stream) % get persistence algorithm over Z/3Z Z3_persistence = api.Plex4.getModularSimplicialAlgorithm(3, 3); % compute and print the intervals Z3_intervals = Z3_persistence.computeIntervals(stream) ================================================ FILE: src/matlab/for_distribution/tutorial_solutions/exercise_4.m ================================================ % Exercise 4 % We use the minimal triangulation for the projective plane, which contains % 6 vertices. For a picture, see Appendix B of the tutorial. clc; clear; close all; import edu.stanford.math.plex4.*; % get a new ExplicitSimplexStream stream = api.Plex4.createExplicitSimplexStream(); % add simplices stream.addElement([1, 2, 5]); stream.addElement([1, 2, 6]); stream.addElement([1, 3, 4]); stream.addElement([1, 3, 6]); stream.addElement([1, 4, 5]); stream.addElement([2, 3, 4]); stream.addElement([2, 3, 5]); stream.addElement([2, 4, 6]); stream.addElement([3, 5, 6]); stream.addElement([4, 5, 6]); stream.ensureAllFaces(); stream.finalizeStream(); % get persistence algorithm over Z/2Z Z2_persistence = api.Plex4.getModularSimplicialAlgorithm(3, 2); % compute and print the intervals Z2_intervals = Z2_persistence.computeIntervals(stream) % get persistence algorithm over Z/3Z Z3_persistence = api.Plex4.getModularSimplicialAlgorithm(3, 3); % compute and print the intervals Z3_intervals = Z3_persistence.computeIntervals(stream) ================================================ FILE: src/matlab/for_distribution/tutorial_solutions/exercise_5.m ================================================ % Exercise 5 % select points from the square [0,1] x [0,1] and then compute the distance % matrix for these points under the induced metric on the flat torus clc; clear; close all; import edu.stanford.math.plex4.*; num_points = 1000; distances = flatTorusDistanceMatrix(num_points); % create an explicit metric space from this distance matrix m_space = metric.impl.ExplicitMetricSpace(distances); ================================================ FILE: src/matlab/for_distribution/tutorial_solutions/exercise_6.m ================================================ % Exercise 6 % select points from the square [0,1] x [0,1] and then compute the distance % matrix for these points under the induced metric on the flat Klein bottle clc; clear; close all; import edu.stanford.math.plex4.*; num_points = 1000; distances = flatKleinDistanceMatrix(num_points); % create an explicit metric space from this distance matrix m_space = metric.impl.ExplicitMetricSpace(distances); ================================================ FILE: src/matlab/for_distribution/tutorial_solutions/exercise_7.m ================================================ % Exercise 7 % select points from the unit sphere S^2 and then compute the distance % matrix for these points under the induced metric on the projective plane clc; clear; close all; import edu.stanford.math.plex4.*; num_points = 1000; distances = projPlaneDistanceMatrix(num_points); % create an explicit metric space from this distance matrix m_space = metric.impl.ExplicitMetricSpace(distances); ================================================ FILE: src/matlab/for_distribution/tutorial_solutions/exercise_8.m ================================================ % Exercise 8 %% This script demonstrates the Vietoris-Rips complex on the "house with a %% garage" clc; clear; close all; import edu.stanford.math.plex4.*; max_dimension = 4; max_filtration_value = 5; num_divisions = 1000; % Select n evenly-spaced points from the circle n=9; point_cloud = [-1,0;1,0;1,2;-1,2;0,3;4,0;4,2]; scatter(point_cloud(:,1),point_cloud(:,2)), axis equal % create a Vietoris-Rips stream stream = api.Plex4.createVietorisRipsStream(point_cloud, max_dimension, max_filtration_value, num_divisions); % get persistence algorithm over Z/2Z persistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension, 2); % compute the intervals intervals = persistence.computeIntervals(stream); % create the barcode plots options.filename = 'ripsHouseWithGarage'; options.max_filtration_value = max_filtration_value; options.max_dimension = max_dimension - 1; plot_barcodes(intervals, options); ================================================ FILE: src/matlab/for_distribution/tutorial_solutions/exercise_9.m ================================================ % Exercise 9 %% This script demonstrates the Vietoris-Rips complex of 75 points randomly %% sampled from a figure 8. clc; clear; close all; import edu.stanford.math.plex4.*; max_dimension = 3; max_filtration_value = 1.1; num_divisions = 1000; % Select 75 random points from the figure 8 space. point_cloud = examples.PointCloudExamples.getRandomFigure8Points(75); scatter(point_cloud(:,1),point_cloud(:,2)), axis equal % create a Vietoris-Rips stream stream = api.Plex4.createVietorisRipsStream(point_cloud, max_dimension, max_filtration_value, num_divisions); % get persistence algorithm over Z/2Z persistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension, 2); % compute the intervals intervals = persistence.computeIntervals(stream); % create the barcode plots options.filename = 'ripsFigure8'; options.max_filtration_value = max_filtration_value; options.max_dimension = max_dimension - 1; plot_barcodes(intervals, options); ================================================ FILE: src/matlab/for_distribution/tutorial_solutions/flatKleinDistanceMatrix.m ================================================ function distances = flatKleinDistanceMatrix(numPoints) % INPUT: % numPoints - number of points % % OUTPUT: % distances - numPoints x numPoints distance matrix for randomly chosen % points on the flat Klein bottle import edu.stanford.math.plex4.*; % sample numPoints random points from [0,1] x [0,1] points = rand(numPoints, 2); % create an empty matrix of size numPoints x numPoints distances = zeros(numPoints); for i = 1 : numPoints for j = i : numPoints; % compute the distance between points i and j in the induced metric % on the flat Klein bottle xDiff = abs(points(i, 1) - points(j, 1)); yDiff1 = abs(points(i, 2) - points(j, 2)); yDiff2 = abs(points(i, 2) - (1 - points(j, 2))); distances(i, j) = min( [norm([xDiff, yDiff1]), norm([xDiff, 1 - yDiff1]), norm([1 - xDiff, yDiff2]), norm([1 - xDiff, 1 - yDiff2])] ); distances(j, i) = distances(i, j); end end ================================================ FILE: src/matlab/for_distribution/tutorial_solutions/flatTorusDistanceMatrix.m ================================================ function distances = flatTorusDistanceMatrix(numPoints) % INPUT: % numPoints - number of points % % OUTPUT: % distances - numPoints x numPoints distance matrix for randomly chosen % points on the flat torus import edu.stanford.math.plex4.*; % sample numPoints random points from [0,1] x [0,1] points = rand(numPoints, 2); % create an empty matrix of size numPoints x numPoints distances = zeros(numPoints); for i = 1 : numPoints for j = i : numPoints; % compute the distance between points i and j in the induced metric % on the flat torus xDiff = abs(points(i, 1) - points(j, 1)); yDiff = abs(points(i, 2) - points(j, 2)); distances(i, j) = sqrt((min(xDiff, 1 - xDiff))^2 + (min(yDiff, 1 - yDiff))^2); distances(j, i) = distances(i, j); end end ================================================ FILE: src/matlab/for_distribution/tutorial_solutions/getDoubleTorusPoints.m ================================================ function points = getDoubleTorusPoints(numPoints, tolerance) % INPUT: % numPoints - number of points % tolerance - tolerance level for accepting a point on the torus % % OUTPUT: % distances - numPoints x 3 matrix of random points on a double torus % embedded in R^3. import edu.stanford.math.plex4.*; points = zeros(numPoints, 3); accepted = 0; while (accepted < numPoints) x = 1.1*(2*rand(1) - 1); y = 0.7*(2*rand(1) - 1); z = 0.3*(2*rand(1) - 1); if (abs(((1-x^2)*x^2-y^2)^2 + z^2 - 0.045) < tolerance) accepted = accepted + 1; points(accepted, :) = [x, y, z]; end end ================================================ FILE: src/matlab/for_distribution/tutorial_solutions/projPlaneDistanceMatrix.m ================================================ function distances = projPlaneDistanceMatrix(numPoints) % INPUT: % numPoints - number of points % % OUTPUT: % distances - numPoints x numPoints distance matrix for randomly chosen % points on the projective plane import edu.stanford.math.plex4.*; % sample points from the unit sphere S^2 point_cloud = zeros(numPoints, 3); for i = 1 : numPoints point = randn(1, 3); while norm(point) == 0 point = randn(1, 3); end point_cloud(i, :) = point / norm(point); end % create an empty matrix of size numPoints x numPoints distances = zeros(numPoints); for i = 1 : numPoints for j = i : numPoints % compute the distance between points i and j in the induced metric % on the projective plane dist1 = norm(point_cloud(i, :) - point_cloud(j, :)); dist2 = norm(point_cloud(i, :) + point_cloud(j, :)); distances(i, j) = min(dist1, dist2); distances(j, i) = distances(i, j); end end ================================================ FILE: src/matlab/for_distribution/utility/convert_sparse_matrix.m ================================================ function matlab_sparse_matrix = convert_sparse_matrix(sparse_primitivelib_matrix) % matlab_sparse_matrix = convert_sparse_matrix(formal_sum, matrix_converter) % % INPUTS: % sparse_primitivelib_matrix: an object of type DoubleSparseMatrix or % IntSparseMatrix % % OUTPUTS: % matlab_sparse_matrix: a matlab sparse matrix equivalent of the java % sparse matrix import edu.stanford.math.plex4.*; m = sparse_primitivelib_matrix.getNumRows(); n = sparse_primitivelib_matrix.getNumColumns(); i = sparse_primitivelib_matrix.getRows()' + 1; j = sparse_primitivelib_matrix.getColumns()' + 1; s = sparse_primitivelib_matrix.getValues()'; matlab_sparse_matrix = sparse(m, n); for k = 1:length(i) matlab_sparse_matrix(i(k), j(k)) = s(k); end end ================================================ FILE: src/matlab/for_distribution/utility/create_landmark_pov_file.m ================================================ function [filename] = create_landmark_pov_file(landmark_selector, filename) import edu.stanford.math.plex_viewer.*; pov_writer = pov.LandmarkSelectorPovWriter(); pov_writer.writeToFile(landmark_selector, filename); end ================================================ FILE: src/matlab/for_distribution/utility/create_pov_file.m ================================================ function [filename] = create_pov_file(stream, points, filename) import edu.stanford.math.plex_viewer.*; pov_writer = pov.SimplexStreamPovWriter(); pov_writer.writeToFile(stream, points, filename); end ================================================ FILE: src/matlab/for_distribution/utility/flatten.m ================================================ function index = flatten(i, j, I, J) index = J * (i - 1) + j; end ================================================ FILE: src/matlab/for_distribution/utility/persistence_diagram.m ================================================ function persistence_diagram(intervals, min_dimension, max_dimension, filename) % INPUT: % intervals - the barcode collection to draw % min_dimension - the minimum dimension to draw persistence diagram for (inclusive) % max_dimension - the maximum dimension to draw persistence diagram for (inclusive) % filename - the png filename to save to (optional) % OUTPUT: % This function produces a persistence diagram for dimensions 0, ..., % max_dimension, and displays it on screen. If a filename is specified, % it also saves it to a file. import edu.stanford.math.plex4.*; threshold = 1e20; max_finite_endpoint = -threshold; min_finite_endpoint = threshold; max_finite_startpoint = -threshold; min_finite_startpoint = threshold; left_infinite_interval_found = 0; right_infinite_interval_found = 0; for dimension = min_dimension:max_dimension endpoints = homology.barcodes.BarcodeUtility.getEndpoints(intervals, dimension, false); num_intervals = size(endpoints, 1); for i = 1:num_intervals start = endpoints(i, 1); finish = endpoints(i, 2); if (finish >= threshold) right_infinite_interval_found = 1; end if (start <= -threshold) left_infinite_interval_found = 1; end if (finish < threshold && finish > max_finite_endpoint) max_finite_endpoint = finish; end if (start < threshold && start > max_finite_startpoint) max_finite_startpoint = start; end if (start > -threshold && start < min_finite_startpoint) min_finite_startpoint = start; end if (finish > -threshold && finish < min_finite_endpoint) min_finite_endpoint = finish; end end end h = figure; hold on; if (right_infinite_interval_found) y_max = max_finite_endpoint + 0.2 * (max_finite_endpoint - min_finite_endpoint); else y_max = max_finite_endpoint; end y_min = min_finite_endpoint; if (left_infinite_interval_found) x_min = min_finite_startpoint - 0.2 * (max_finite_startpoint - min_finite_startpoint); else x_min = min_finite_startpoint; end x_max = max_finite_startpoint; for dimension = min_dimension:max_dimension endpoints = homology.barcodes.BarcodeUtility.getEndpoints(intervals, dimension, false); num_intervals = size(endpoints, 1); subhandle = subplot(1, max_dimension + 1, dimension + 1); for i = 1:num_intervals start = endpoints(i, 1); finish = endpoints(i, 2); y = num_intervals - i + 1; if (finish >= threshold && start <= -threshold) line([x_min, x_min], [y_max, y_max], 'Marker', '<'); end if (finish >= threshold && start > -threshold) line([start, start], [y_max, y_max], 'Marker', '^'); end if (finish < threshold && start <= -threshold) line([x_min, x_min], [finish, finish], 'Marker', '<'); end if (finish < threshold && start > -threshold) line([start, start], [finish, finish], 'Marker', 'o'); end end axis([min(x_min, y_min), x_max, min(x_min, y_min), y_max]); title(sprintf('Dim %d', dimension)); xlabel('Start'); ylabel('End'); %set(subhandle,'YTick',[]); set(subhandle,'XGrid','on','YGrid','on'); end hold off; if (exist('filename')) saveas(h, filename, 'png'); end end ================================================ FILE: src/matlab/for_distribution/utility/plot_barcodes.m ================================================ function [handle] = plot_barcodes(intervals, options) % INPUT: % intervals - the barcode collection to draw % OPTIONS: % min_filtration_value - the minimum filtration value (default value is 0) % max_filtration_value - the maximum filtration value (default value inferred from intervals) % min_dimension - the minimum dimension to draw intervals for (inclusive) % max_dimension - the maximum dimension to draw intervals for (inclusive) % filename - the filename to save to without the extension (equal to caption if not specified) % caption - the caption for the image (equal to filename if not specified) % file_format - the file type - png, eps, jpg, etc. % side_by_side - whether to stack the plots side-by-side or not (default is false) % line_width - the thickness of the barcodes (default value 0.5) % OUTPUT: % This function produces a plot of the barcodes for dimensions 0, ..., % max_dimension, and displays it on screen. If a filename is specified, % it also saves it to a file. It also returns a handle to the figure drawn. import edu.stanford.math.plex4.*; if (~exist('options', 'var')) options = struct; end if (isfield(options, 'min_filtration_value')) min_filtration_value = options.min_filtration_value; end if (isfield(options, 'max_filtration_value')) max_filtration_value = options.max_filtration_value; end if (isfield(options, 'min_dimension')) min_dimension = options.min_dimension; else min_dimension = 0; end if (isfield(options, 'max_dimension')) max_dimension = options.max_dimension; else max_dimension = length(intervals.getBettiSequence()) - 1; end if (isfield(options, 'filename')) filename = options.filename; else if (isfield(options, 'caption')) filename = options.caption; end end if (isfield(options, 'caption')) caption = options.caption; else if (isfield(options, 'filename')) caption = options.filename; end end if (isfield(options, 'file_format')) file_format = options.file_format; else file_format = 'png'; end if (isfield(options, 'side_by_side')) side_by_side = options.side_by_side; else side_by_side = false; end if (isfield(options, 'line_width')) line_width = options.line_width; else line_width = 0.5; end import edu.stanford.math.plex4.*; threshold = 1e20; epsilon = 1e-6; max_finite_endpoint = -threshold; min_finite_endpoint = threshold; left_infinite_interval_found = 0; right_infinite_interval_found = 0; for dimension = min_dimension:max_dimension endpoints = homology.barcodes.BarcodeUtility.getEndpoints(intervals, dimension, false); num_intervals = size(endpoints, 1); for i = 1:num_intervals start = endpoints(i, 1); finish = endpoints(i, 2); if (finish >= threshold) right_infinite_interval_found = 1; end if (start <= -threshold) left_infinite_interval_found = 1; end if (finish < threshold && finish > max_finite_endpoint) max_finite_endpoint = finish; end if (start < threshold && start > max_finite_endpoint) max_finite_endpoint = start; end if (start > -threshold && start < min_finite_endpoint) min_finite_endpoint = start; end if (finish > -threshold && finish < min_finite_endpoint) min_finite_endpoint = finish; end end end handle = figure; hold on; if (exist('max_filtration_value', 'var')) x_max = max_filtration_value; elseif (right_infinite_interval_found) x_max = max_finite_endpoint + 0.2 * (max_finite_endpoint - min_finite_endpoint); else x_max = max_finite_endpoint; end if (exist('min_filtration_value', 'var')) x_min = min_filtration_value; elseif (left_infinite_interval_found) x_min = min_finite_endpoint - 0.2 * (max_finite_endpoint - min_finite_endpoint); else x_min = min_finite_endpoint; end point_width = 0.006 * (x_max - x_min); for dimension = min_dimension:max_dimension endpoints = homology.barcodes.BarcodeUtility.getEndpoints(intervals, dimension, false); num_intervals = size(endpoints, 1); if (side_by_side) subhandle = subplot(1, max_dimension + 1 - min_dimension, dimension + 1 - min_dimension); else subhandle = subplot(max_dimension + 1 - min_dimension, 1, dimension + 1 - min_dimension); end for i = 1:num_intervals start = endpoints(i, 1); finish = endpoints(i, 2); y = num_intervals - i + 1; if (finish >= threshold && start <= -threshold) line([x_min, x_max], [y, y], 'LineWidth', line_width); line([x_min, x_min], [y, y], 'Marker', '<', 'LineWidth', line_width); line([x_max, x_max], [y, y], 'Marker', '>', 'LineWidth', line_width); end if (finish >= threshold && start > -threshold) line([start, x_max], [y, y], 'LineWidth', line_width); line([x_max, x_max], [y, y], 'Marker', '>', 'LineWidth', line_width); end if (finish < threshold && start <= -threshold) line([x_min, finish], [y, y], 'LineWidth', line_width); line([x_min, x_min], [y, y], 'Marker', '<', 'LineWidth', line_width); end if (finish < threshold && start > -threshold) if (abs(finish - start) < epsilon) line([start - 0.5 * point_width, finish + 0.5 * point_width], [y, y], 'LineWidth', line_width); else line([start, finish], [y, y], 'LineWidth', line_width); end end end axis([x_min, x_max, 0, num_intervals + 1]); set(subhandle,'YTick',[]); set(subhandle,'XGrid','on','YGrid','on'); if (exist('caption', 'var')) title(sprintf('%s (dimension %d)', caption, dimension)); else ylabel(sprintf('Dim %d', dimension)); end end hold off; if (exist('filename', 'var')) saveas(handle, filename, file_format); end end ================================================ FILE: src/matlab/for_distribution/utility/render_onscreen.m ================================================ function [filename] = render_onscreen(stream, points) import edu.stanford.math.plex_viewer.*; Api.drawSimplexStream(stream, points); end ================================================ FILE: src/matlab/for_distribution/utility/render_pov_file.m ================================================ function result = render_pov_file(pov_file, width, height) if (~exist('width', 'var')) width = 1200; end if (~exist('height', 'var')) height = 900; end quality = 3; command = sprintf('povray +I%s +W%d, +H%d +Q%d +A', pov_file, width, height, quality); result = system(command); end ================================================ FILE: src/matlab/for_distribution/utility/to_sparse_matlab_matrix.m ================================================ function matlab_sparse_matrix = to_sparse_matlab_matrix(formal_sum, matrix_converter) % matlab_sparse_matrix = to_sparse_matlab_matrix(formal_sum, matrix_converter) % % INPUTS: % formal_sum: an object of type DoubleSparseFormalSum<ObjectObjectPair<M, N>> % matrix_converter: the object of type DoubleMatrixConverter<M, N> % % OUTPUTS: % matlab_sparse_matrix: a sparse matrix which represents the same linear % transformation as the given formal sum import edu.stanford.math.plex4.*; sparse_matrix_object = matrix_converter.toSparseMatrix(formal_sum); matlab_sparse_matrix = convert_sparse_matrix(sparse_matrix_object); end ================================================ FILE: src/matlab/for_distribution/visualization_examples/landmark_set_pov.m ================================================ % This script calculates the intervals for a Lazy-Witness complex generated % from random points on the 2-sphere clc; clear; close all; import edu.stanford.math.plex4.*; dimension = 2; num_points = 1000; num_landmark_points = 100; max_filtration_value = 0.01; % create the set of points point_cloud = examples.PointCloudExamples.getRandomSpherePoints(num_points, dimension); % create a randomized landmark selector landmark_selector = api.Plex4.createMaxMinSelector(point_cloud, num_landmark_points); % create a Lazy-Witness Stream - note that this sets the number of % divisions to the default value of 20 stream = api.Plex4.createLazyWitnessStream(landmark_selector, dimension + 1, max_filtration_value); % print out the size of the stream - will be quite large since the complex % construction is very sensitive to the maximum filtration value size = stream.getSize() % get the default persistence algorithm persistence = api.Plex4.getDefaultSimplicialAlgorithm(dimension + 1); % compute the intervals and transform them to filtration values filtration_value_intervals = persistence.computeIntervals(stream); %% Output filename = 'sphere_landmark.pov'; create_landmark_pov_file(landmark_selector, filename); render_pov_file(filename); ================================================ FILE: src/matlab/for_distribution/visualization_examples/witness_sphere_opengl.m ================================================ % This script calculates the intervals for a Lazy-Witness complex generated % from random points on the 2-sphere clc; clear; close all; import edu.stanford.math.plex4.*; dimension = 2; num_points = 1000; num_landmark_points = 80; max_filtration_value = 0.1; % create the set of points point_cloud = examples.PointCloudExamples.getRandomSpherePoints(num_points, dimension); % create a maxmin-landmark selector landmark_selector = api.Plex4.createMaxMinSelector(point_cloud, num_landmark_points); % create a Lazy-Witness Stream stream = api.Plex4.createLazyWitnessStream(landmark_selector, dimension + 1, max_filtration_value); % print out the size of the stream - will be quite large since the complex % construction is very sensitive to the maximum filtration value size = stream.getSize() % get the default persistence algorithm persistence = api.Plex4.getDefaultSimplicialAlgorithm(dimension + 1); % compute the intervals and transform them to filtration values filtration_value_intervals = persistence.computeIntervals(stream); %% Output render_onscreen(stream, point_cloud); ================================================ FILE: src/matlab/for_distribution/visualization_examples/witness_sphere_pov.m ================================================ % This script calculates the intervals for a Lazy-Witness complex generated % from random points on the 2-sphere clc; clear; close all; import edu.stanford.math.plex4.*; dimension = 2; num_points = 1000; num_landmark_points = 100; max_filtration_value = 0.01; % create the set of points %point_cloud = examples.PointCloudExamples.getRandomSpherePoints(num_points, dimension); point_cloud = examples.PointCloudExamples.getRandomTorusPoints(num_points, 0.4, 0.8); % create a randomized landmark selector landmark_selector = api.Plex4.createMaxMinSelector(point_cloud, num_landmark_points); % create a Lazy-Witness Stream - note that this sets the number of % divisions to the default value of 20 stream = api.Plex4.createLazyWitnessStream(landmark_selector, dimension + 1, max_filtration_value); % print out the size of the stream - will be quite large since the complex % construction is very sensitive to the maximum filtration value size = stream.getSize() % get the default persistence algorithm persistence = api.Plex4.getDefaultSimplicialAlgorithm(dimension + 1); % compute the intervals and transform them to filtration values filtration_value_intervals = persistence.computeIntervals(stream); %% Output filename = 'sphere.pov'; create_pov_file(stream, point_cloud, filename); render_pov_file(filename); ================================================ FILE: src/processing/javaplex/library.properties ================================================ name=javaPlex authorList=Andrew Tausz and Mikael Vejdemo-Johansson and Henry Adams url=http://code.google.com/p/javaplex category=Geometry, Math sentence=Framework for computational topology paragraph= version=@VERSION@ prettyVersion=@PRETTYVERSION@ ================================================ FILE: src/processing/javaplexDemo/State.java ================================================ public enum State { ADDPOINTS, MOVEBOARD, ANIMATE }; ================================================ FILE: src/processing/javaplexDemo/javaplexDemo.pde ================================================ //***************************************** // javaPlex called from Processing // Demo (c) 2012 Mikael Vejdemo-Johansson // Released under the New BSD License with // javaPlex. //***************************************** // Imports //***************************************** import edu.stanford.math.plex4.api.*; import edu.stanford.math.plex4.examples.*; import edu.stanford.math.plex4.streams.impl.VietorisRipsStream; import edu.stanford.math.plex4.homology.chain_basis.Simplex; import edu.stanford.math.plex4.homology.filtration.FiltrationConverter; import edu.stanford.math.plex4.homology.interfaces.AbstractPersistenceAlgorithm; import edu.stanford.math.plex4.homology.barcodes.*; import java.util.Map.Entry; import java.util.List; //***************************************** // Global variables //***************************************** double[][] pts; float offsetX,offsetY,sizeX,sizeY; int dragX,dragY,oldmouseX,oldmouseY; double eps = 0.01; double f = eps; double maxeps = 0.3; State state = State.ADDPOINTS; VietorisRipsStream<double[]> vrs; FiltrationConverter fc; AbstractPersistenceAlgorithm<Simplex> algo; BarcodeCollection<Double> ints=null; //***************************************** // Compute a new VietorisRipsStream //***************************************** void setupVRS() { vrs = Plex4.createVietorisRipsStream(pts,2,maxeps,1000); fc = vrs.getConverter(); ints=null; } //***************************************** // Reset the points buffer //***************************************** void resetPoints() { pts=new double[0][2]; dragX=0; dragY=0; offsetX=0; offsetY=0; sizeX=5; sizeY=5; f = 10; eps = 10; maxeps = 300; } //***************************************** // Global setup function //***************************************** void setup() { size(400,400,P2D); frame.setResizable(true); background(255); resetPoints(); setupVRS(); } //***************************************** // On mousepress: // * if we can move the board, remember // position for mouse-down so we can // use it in mouseDragged() below. // * if we can add points, add a point. //***************************************** void mousePressed() { if(state == State.MOVEBOARD) { oldmouseX = mouseX; oldmouseY = mouseY; } else if(state == State.ADDPOINTS) { double[] pt = new double[2]; translate(dragX,dragY); translate(offsetX,offsetY); pt[0] = mouseX; pt[1] = mouseY; println(pt[0]+","+pt[1]); pts = (double[][]) append(pts,pt); setupVRS(); } } //***************************************** // On mousedrag: // Update translation to reflect the offset // dragged. //***************************************** void mouseDragged() { if(state == State.MOVEBOARD) { dragX=mouseX-oldmouseX; dragY=mouseY-oldmouseY; } } //***************************************** // On keypress: // Implement state changes and other // effects as needed. // // Key mapping implemented is case // insensitive: // M -- start moving the board // Q -- quit // P -- start adding points // A -- animate the construction of a // Vietoris-Rips complex // C -- clear the board from its points // V -- recompute a Vietoris-Rips complex // H -- run a homology computation // + -- increase step size by a factor of 10 // - -- decrease step size by a factor of 10 // § -- output number of points // LEFT -- step Vietoris-Rips complex back // RIGHT -- step Vietoris-Rips complex forward //***************************************** void keyPressed() { switch(key) { case 'm': case 'M': state=State.MOVEBOARD; break; case 'q': case 'Q': exit(); break; case 'p': case 'P': state=State.ADDPOINTS; break; case 'a': case 'A': state=State.ANIMATE; f=eps; break; case 'c': case 'C': state=State.ADDPOINTS; resetPoints(); setupVRS(); break; case 'v': case 'V': setupVRS(); ints = null; break; case 'h': case 'H': algo = Plex4.getDefaultSimplicialAlgorithm(2); ints = algo.computeIntervals(vrs); println(ints); break; case '+': eps *= 10; println(f+": "+eps); break; case '-': eps /= 10; println(f+": "+eps); break; case '§': println(pts.length); break; case CODED: switch(keyCode) { case RIGHT: f += eps; println(f+": "+eps); break; case LEFT: f -= eps; println(f+": "+eps); if(f<0) f=0; break; } } } //***************************************** // Main drawing loop. // Draws black circles for each point, // black lines for each edge, and // alpha-channel translucent triangles for // each 2-simplex // This is also where the Vietoris-Rips // parameter is stepped up in the animation // mode. //***************************************** void draw() { background(255); stroke(0); fill(0); if(state == State.ANIMATE && f < maxeps) { f += eps; println(f); } translate(dragX,dragY); translate(offsetX,offsetY); for(Simplex s : vrs) { double fv = fc.getFiltrationValue(vrs.getFiltrationIndex(s)); if(fv > f) continue; int[] ix; ix = s.getVertices(); switch(s.getDimension()) { case 0: fill(0); ellipse((float)pts[ix[0]][0],(float)pts[ix[0]][1],sizeX,sizeY); break; case 1: fill(0); line((float)pts[ix[0]][0],(float)pts[ix[0]][1], (float)pts[ix[1]][0],(float)pts[ix[1]][1]); break; case 2: fill(0,0,255,20); triangle((float)pts[ix[0]][0],(float)pts[ix[0]][1], (float)pts[ix[1]][0],(float)pts[ix[1]][1], (float)pts[ix[2]][0],(float)pts[ix[2]][1]); break; default: continue; } } } ================================================ FILE: src/processing/readme.txt ================================================ This source code directory (src/processing) carries files relevant for using javaPlex as a Processing library. The subdirectory javaplex has the raw templates for files needed to build the Processing plugin library, which gets deposited in dist/Processing as part of the build process. The subdirectory javaplexDemo is a Processing sketch that relies on a working installation of the javaplex Processing plugin, and that demonstrates how to integrate the library in a sketch. In particular, the javaplexDemo sketch allows the user to place points in a plane and to step through the Vietoris-Rips complex on the placed points. ================================================ FILE: src_test/java/edu/stanford/math/mapper/ClusteringTest.java ================================================ package edu.stanford.math.mapper; import java.util.Arrays; import java.util.List; import java.util.Set; import edu.stanford.math.clustering.DisjointSetSystem; import edu.stanford.math.clustering.HierarchicalClustering; import edu.stanford.math.clustering.SingleLinkageClustering; import edu.stanford.math.plex4.examples.PointCloudExamples; import edu.stanford.math.plex4.metric.impl.EuclideanMetricSpace; import edu.stanford.math.plex4.utility.RandomUtility; public class ClusteringTest { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int n = 40; int d = 2; RandomUtility.initializeWithSeed(0); double[][] points = PointCloudExamples.getGaussianPoints(n, d); /* * double[][] points = new double[][]{ new double[]{1}, new double[]{2}, * * new double[]{6}, new double[]{7.1}, new double[]{9}, }; */ EuclideanMetricSpace metricSpace = new EuclideanMetricSpace(points); SingleLinkageClustering clustering = new SingleLinkageClustering(metricSpace); double[] mergeTimes = clustering.getMergedDistances(); System.out.println(Arrays.toString(mergeTimes)); // List<Set<Integer>> clusters = clustering.getClusterAssignments(4); DisjointSetSystem setSystem = clustering.thresholdByNumClusters(3); List<Set<Integer>> clusters = HierarchicalClustering.getImpliedClusters(setSystem); System.out.println(clusters); } } ================================================ FILE: src_test/java/edu/stanford/math/mapper/HistogramTest.java ================================================ package edu.stanford.math.mapper; import edu.stanford.math.plex4.utility.RandomUtility; public class HistogramTest { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub double[] values = RandomUtility.normalArray(10000); HistogramCreator hist = new HistogramCreator(values, 20); System.out.println(hist); } } ================================================ FILE: src_test/java/edu/stanford/math/mapper/MapperTest.java ================================================ package edu.stanford.math.mapper; import java.io.IOException; import java.util.List; import edu.stanford.math.plex4.examples.PointCloudExamples; import edu.stanford.math.plex4.graph.AbstractWeightedUndirectedGraph; import edu.stanford.math.plex4.graph.io.GraphDotWriter; import edu.stanford.math.plex4.metric.impl.EuclideanMetricSpace; import edu.stanford.math.plex4.streams.filter.RandomProjectionFilterFunction; import gnu.trove.TIntHashSet; public class MapperTest { /** * @param args */ public static void main(String[] args) { int n = 1000; double[][] points = PointCloudExamples.getRandomCirclePoints(n); EuclideanMetricSpace metricSpace = new EuclideanMetricSpace(points); RandomProjectionFilterFunction filter = new RandomProjectionFilterFunction(points); MapperSpecifier specifier = MapperSpecifier.create().numIntervals(6).overlap(0.4).numHistogramBuckets(6); List<TIntHashSet> partialClustering = MapperPipeline.producePartialClustering(filter, metricSpace, specifier); AbstractWeightedUndirectedGraph graph = MapperPipeline.intersectionGraph(partialClustering); System.out.println(graph); GraphDotWriter writer = new GraphDotWriter(); try { writer.writeToFile(graph, "out.dot"); } catch (IOException e) { e.printStackTrace(); } } } ================================================ FILE: src_test/java/edu/stanford/math/plex/CRCTest.java ================================================ package edu.stanford.math.plex; import static org.junit.Assert.assertEquals; import java.util.Random; import org.junit.After; import org.junit.Before; import org.junit.Test; /** * The <code>CRCTest</code> class. * * <p>Among the facilities provided by the <code>CRCTest</code> class * are whatever we want it to do. * * @version $ID$ */ public class CRCTest { private java.util.List<Object> emptyList; private static Random rand = new Random(); static byte[] make_random_vecb(int len) { byte[] return_val = new byte[len]; for (int i = 0; i < len; i++) return_val[i] = (byte)rand.nextInt(); return return_val; } static short[] make_random_vecs(int len) { short[] return_val = new short[len]; for (int i = 0; i < len; i++) return_val[i] = (short)rand.nextInt(); return return_val; } static int[] make_random_veci(int len) { int[] return_val = new int[len]; for (int i = 0; i < len; i++) return_val[i] = rand.nextInt(); return return_val; } static long[] make_random_vecl(int len) { long[] return_val = new long[len]; for (int i = 0; i < len; i++) return_val[i] = rand.nextLong(); return return_val; } /** * Sets up the test fixture. * (Called before every test case method.) */ @Before public void setUp() { emptyList = new java.util.ArrayList<Object>(); } /** * Tears down the test fixture. * (Called after every test case method.) */ @After public void tearDown() { emptyList = null; } @Test public void testSomeBehavior() { assertEquals("hash64() vs known results", 6032571786410196032L, CRC.hash64(6493655788058667850L, -8059720649035354885L)); assertEquals("hash64() vs known results", -7545405129268806290L, CRC.hash64(-4826024319188083941L, 2296441913178217571L)); assertEquals("hash64() vs known results", 8482303710699910840L, CRC.hash64(7793617151736177165L, -8742675927873901475L)); assertEquals("hash64() vs known results", 7186347300825138971L, CRC.hash64(-8590399596178740821L, -3136225913772387823L)); assertEquals("hash64() vs known results", 6361592763524364868L, CRC.hash64(7966436672045297884L, -7513189249503151647L)); assertEquals("hash64() vs known results", -7567370645069542008L, CRC.hash64(-7877688441466048790L, -8284931960287653334L)); assertEquals("hash64() vs known results", 1837677831603613060L, CRC.hash64(1705758918867886652L, -4608094936528631270L)); assertEquals("hash64() vs known results", -8324081773154746428L, CRC.hash64(-2333750770659246085L, -7151290098236933228L)); assertEquals("hash64() vs known results", 3238470636471372185L, CRC.hash64(-8333681197765536164L, 149075111678084331L)); assertEquals("hash64() vs known results", 1172654483595358935L, CRC.hash64(-5226751851997133591L, 3928364761344881872L)); assertEquals("hash64() vs known results", -3153723631256078275L, CRC.hash64(6493655788058667850L, 0)); assertEquals("hash64() vs known results", 3532864025510917699L, CRC.hash64(-8059720649035354885L, 0)); assertEquals("hash64() vs known results", 834313021983521126L, CRC.hash64(-4826024319188083941L, 0)); assertEquals("hash64() vs known results", -233124034201179335L, CRC.hash64(2296441913178217571L, 0)); assertEquals("hash64() vs known results", -8035689059781312722L, CRC.hash64(7793617151736177165L, 0)); assertEquals("hash64() vs known results", -4713891799828465575L, CRC.hash64(-8742675927873901475L, 0)); assertEquals("hash64() vs known results", 8538319044851116518L, CRC.hash64(-8590399596178740821L, 0)); assertEquals("hash64() vs known results", 6071268795809598228L, CRC.hash64(-3136225913772387823L, 0)); assertEquals("hash64() vs known results", -1436724243492114223L, CRC.hash64(7966436672045297884L, 0)); assertEquals("hash64() vs known results", -7638551461710678782L, CRC.hash64(-7513189249503151647L, 0)); assertEquals("hash32() vs known results", 388237006, CRC.hash32(-7258739192358877901L, 0)); assertEquals("hash32() vs known results", -577998612, CRC.hash32(5838237949386953820L, 0)); assertEquals("hash32() vs known results", 1247909994, CRC.hash32(-3662795734954562691L, 0)); assertEquals("hash32() vs known results", 840130721, CRC.hash32(5568351980849578531L, 0)); assertEquals("hash32() vs known results", -934514563, CRC.hash32(8685604269466863285L, 0)); assertEquals("hash32() vs known results", -1748466434, CRC.hash32(-4872510571857784608L, 0)); assertEquals("hash32() vs known results", -1163897527, CRC.hash32(-4062244458711989170L, 0)); assertEquals("hash32() vs known results", -1660784663, CRC.hash32(8190802628558026886L, 0)); assertEquals("hash32() vs known results", 177484261, CRC.hash32(-4771253648750399554L, 0)); assertEquals("hash32() vs known results", 74797589, CRC.hash32(8220262932303541715L, 0)); } @Test(expected=IndexOutOfBoundsException.class) public void testForException() { @SuppressWarnings("unused") Object o = emptyList.get(0); } } ================================================ FILE: src_test/java/edu/stanford/math/plex/ChainTest.java ================================================ package edu.stanford.math.plex; import static org.junit.Assert.assertTrue; import org.junit.After; import org.junit.Before; import org.junit.Test; /** * The <code>ChainTest</code> class. * * <p>Among the facilities provided by the <code>ChainTest</code> class * are whatever we want it to do. * * @version $ID$ */ public class ChainTest { private java.util.List<Object> emptyList; /** * Sets up the test fixture. * (Called before every test case method.) */ @Before public void setUp() { emptyList = new java.util.ArrayList<Object>(); } /** * Tears down the test fixture. * (Called after every test case method.) */ @After public void tearDown() { emptyList = null; } /** * Tests some behavior. * * @exception whatever * @throws what is the difference between these 2 * * @see java.lang.System#getProperty(java.lang.String) * @see SecurityManager#checkPermission */ @Test public void testSomeBehavior() { int p = Persistence.baseModulus(); int[] vertices = new int[] {1, 3, 4, 2}; int[] v6 = new int[] {1, 3, 4, 2, 33, 11}; Simplex test = Simplex.getSimplex(vertices); Simplex t6 = Simplex.getSimplex(v6); Chain tchain = Chain.fromBoundary(test.boundaryArray(), p); Chain tc6 = Chain.fromBoundary(t6.boundaryArray(), p); assertTrue("BDY(BDY(x)) is zero", (tchain.boundary(p).equals(Chain.zero(p)))); assertTrue("BDY(BDY(x)) is zero", (tc6.boundary(p).equals(Chain.zero(p)))); assertTrue("BDY(BDY(x)) is zero", (((tchain.add(tc6, 4)).boundary(p)).equals(Chain.zero(p)))); for (int i = 0; i < 1000; i++) { Chain foo = Chain.random(p); Chain bar = Chain.random(p); Chain bfoo = foo.boundary(p); Chain bbar = bar.boundary(p); assertTrue("x+0 is x", foo.add(Chain.zero(p),1).equals(foo)); assertTrue("0+x is x", Chain.zero(p).add(foo,1).equals(foo)); assertTrue("BDY(BDY(x)) is zero", ((bfoo.equals(Chain.zero(p))) || ((bfoo.boundary(p)).equals(Chain.zero(p))))); if ((!bfoo.equals(Chain.zero(p))) && (!bbar.equals(Chain.zero(p))) && (!((foo.add(bar, 1))).equals(Chain.zero(p)))) { assertTrue("BDY(x + y) equals BDY(x) + BDY(y)", ((foo.add(bar, 1)).boundary(p)).ceq(bfoo.add(bbar, 1))); } } } /** * Tests some exceptional behavior. * * @exception IndexOutOfBoundsException * * @see java.lang.System#getProperty(java.lang.String) * @see SecurityManager#checkPermission */ @Test(expected=IndexOutOfBoundsException.class) public void testForException() { @SuppressWarnings("unused") Object o = emptyList.get(0); } } ================================================ FILE: src_test/java/edu/stanford/math/plex/CubeHashTest.java ================================================ package edu.stanford.math.plex; import static org.junit.Assert.assertEquals; import org.junit.After; import org.junit.Before; import org.junit.Test; /** * The <code>CubeHashTest</code> class. * * <p>Among the facilities provided by the <code>CubeHashTest</code> class * are whatever we want it to do. * * @version $ID$ */ public class CubeHashTest { private java.util.List<Object> emptyList; /** * Sets up the test fixture. * (Called before every test case method.) */ @Before public void setUp() { emptyList = new java.util.ArrayList<Object>(); } /** * Tears down the test fixture. * (Called after every test case method.) */ @After public void tearDown() { emptyList = null; } /** * Tests some behavior. * * @exception whatever * @throws what is the difference between these 2 * * @see java.lang.System#getProperty(java.lang.String) * @see SecurityManager#checkPermission */ @Test public void testSomeBehavior() { assertEquals("Empty list should have 0 elements", 0, emptyList.size()); } /** * Tests some exceptional behavior. * * @exception IndexOutOfBoundsException * * @see java.lang.System#getProperty(java.lang.String) * @see SecurityManager#checkPermission */ @Test(expected=IndexOutOfBoundsException.class) public void testForException() { @SuppressWarnings("unused") Object o = emptyList.get(0); } } ================================================ FILE: src_test/java/edu/stanford/math/plex/ExplicitStreamTest.java ================================================ package edu.stanford.math.plex; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import java.util.Iterator; import org.junit.Test; /** * The <code>ExplicitStreamTest</code> class. * * <p>Among the facilities provided by the <code>ExplicitStreamTest</code> class * are whatever we want it to do. * * @version $ID$ */ @SuppressWarnings("unused") public class ExplicitStreamTest { private static boolean member(int x, int[][] set) { for (int i = 0; i < set.length; i++) { for (int j = 0; j < set[i].length; j++) { if (x == set[i][j]) return true; } } return false; } /** * Tests some behavior. * * @exception whatever * @throws what is the difference between these 2 * * @see java.lang.System#getProperty(java.lang.String) * @see SecurityManager#checkPermission */ @Test public void testSomeBehavior() { // make sure that next() and size() agree { ExplicitStream ex1 = new ExplicitStream(); ex1.add(new int[] {1}, 0.0); ex1.add(new int[] {2}, 0.0); ex1.add(new int[] {3}, 0.0); ex1.add(new int[] {1,2}, 1.0); ex1.add(new int[] {2,3}, 1.0); ex1.add(new int[] {1,3}, 1.0); ex1.add(new int[] {1,2,3}, 2.0); ex1.close(); assertTrue("ex1 has 7 elements", ex1.size() == 7); int ex1_counter = 0; while (ex1.hasNext()) { ex1.next(); ex1_counter++; } assertTrue("ex1 really has 7 elements", ex1_counter == 7); } // make sure that next() and dump() agree { PointData rdata = (PointData) new EuclideanArrayData(20, 4); RipsStream zstr = new RipsStream(0.0, 2, 2.0, rdata); SimplexStream zstream = (SimplexStream) zstr; ExplicitStream estream = Plex.makeExplicit(zstr); assertEquals("converted right number of simplices", zstr.size(), estream.size()); ExplicitStream.DComplex points = estream.dump(0); int counter = (points.C()).length; while (points.hasNext()) { points = points.next(); counter += (points.C()).length; } assertEquals("counted right number of simplices", zstr.size(), counter); ExplicitStream.DComplex triangles = estream.dump(2); int[][] tvec = triangles.C(); int[] s2 = tvec[tvec.length/2]; int[] l1 = new int[] {s2[0], s2[1]}; estream.remove(l1); boolean caught_the_ise = false; assertFalse("verification fails", (estream.verify(false))); try{ estream.close(); } catch(IllegalStateException ise) { caught_the_ise = true; estream.ensure_all_faces(); } finally{} assertTrue("catch occurred", caught_the_ise); assertTrue("verification succeeds after catch", (estream.verify(false))); estream.close(); Iterator<Simplex> iterator = estream.iterator(); int last_fi = -1; int last_dimension = -1; Simplex iterator_current = null; Simplex stream_current = null; assertTrue("iterator start check", iterator.hasNext()); assertTrue("iterator start check", estream.hasNext()); while(iterator.hasNext()) { iterator_current = iterator.next(); assertTrue("iterator check", (estream.hasNext() && ((stream_current = estream.next()) != null) && (iterator_current.equals(stream_current)))); if (iterator_current.dimension() > last_dimension) { last_dimension = iterator_current.dimension(); last_fi = -1; } assertTrue("nondecreasing fi's", (last_fi <= iterator_current.findex())); last_fi = iterator_current.findex(); } assertTrue("estream iterator end check", !estream.hasNext()); } // check prune() operations { PointData rdata = (PointData) new EuclideanArrayData(20, 4); ExplicitStream ex2 = Plex.makeExplicit(new RipsStream(0.0, 3, 2.0, rdata)); int before_size = ex2.size(); ex2.prune(new int[] {1}); ex2.close(); int after_size = ex2.size(); assertTrue("ex2 got smaller", (before_size > after_size)); ExplicitStream.DComplex pruned = ex2.dump(0); assertTrue("1 has been removed", !member(1, pruned.C())); while (pruned.hasNext()) { pruned = pruned.next(); assertTrue("1 has been removed", !member(1, pruned.C())); } } // check iterator and stream next equivalence ExplicitStream estream2 = Plex.ExplicitStream(); estream2.add(new double[][] { {2.1, 3.1}, {1.4, 2.3}, {2.9, .99} }, new double[] {0.0, 0.0, 1.0}); estream2.add(new int[][] { {1}, {3}, {2} }, new double[] {0.0, 0.0, 0.0}); ExplicitStream.DComplex force_close = estream2.dump(1); } /** * Tests trying to close inconsistent stream. */ @Test(expected=IllegalStateException.class) public void testForException1() { ExplicitStream estream = Plex.ExplicitStream(); estream.add(new int[][] { {2, 3}, {1, 2}, {3, 1} }, new double[] {0.0, 0.0, 1.0}); estream.add(new int[][] { {1}, {3}, {2} }, new double[] {0.0, 0.0, 0.0}); estream.remove(new int[] {1}); ExplicitStream.DComplex loser = estream.dump(1); } /** * Tests mismatch of arguments to add(). */ @Test(expected=IllegalArgumentException.class) public void testForException2() { ExplicitStream estream = Plex.ExplicitStream(); estream.add(new int[][] { {2, 3}, {1, 2}, {3, 1} }, new double[] {0.0, 0.0, 1.0, 0.0}); } } ================================================ FILE: src_test/java/edu/stanford/math/plex/LazyWitnessStreamTest.java ================================================ package edu.stanford.math.plex; import static org.junit.Assert.assertTrue; import org.junit.After; import org.junit.Before; import org.junit.Test; /** * Tests for <code>LazyWitnessStream</code>. * * @version $ID$ */ public class LazyWitnessStreamTest { private java.util.List<Object> emptyList; /** * Sets up the test fixture. * (Called before every test case method.) */ @Before public void setUp() { emptyList = new java.util.ArrayList<Object>(); } /** * Tears down the test fixture. * (Called after every test case method.) */ @After public void tearDown() { emptyList = null; } /** * Tests some behavior. * * @exception whatever * @throws what is the difference between these 2 * * @see java.lang.System#getProperty(java.lang.String) * @see SecurityManager#checkPermission */ @Test public void testSomeBehavior() { { Persistence p = Plex.Persistence(); PointData data = (PointData) new EuclideanArrayData(5000, 3); int[] landmarks = WitnessStream.makeRandomLandmarks(data, 20); double R_max = WitnessStream.estimateRmax(data, landmarks); double granularity = .00001; assertTrue("R_max not too big", (R_max < .8)); LazyWitnessStream lstr = new LazyWitnessStream(granularity, 3, R_max, 2, landmarks, data); LazyWitnessStream zstr = new LazyWitnessStream(0, 3, R_max, 2, landmarks, data); PersistenceInterval.Float[] lci = p.computeIntervals(lstr); PersistenceInterval.Float[] zci = p.computeIntervals(zstr); assertTrue("0-granularity test", Plex.equalPersistenceIntervals(lci, zci, granularity)); } /* if (false) { PointData data = (PointData) new EuclideanArrayData(1000, 4); int[] landmarks = WitnessStream.makeRandomLandmarks(data, 20); double R_max = WitnessStream.estimateRmax(data, landmarks); assertTrue("R_max not too big", (R_max < .25)); long lazy_time = System.currentTimeMillis(); LazyWitnessStream lstr = new LazyWitnessStream(.01, 3, R_max, 2, landmarks, data); lazy_time = System.currentTimeMillis() - lazy_time; assertTrue("Didn't take too long", (lazy_time < 100)); long w_time = System.currentTimeMillis(); WitnessStream wstr = new WitnessStream(.01, 3, R_max, landmarks, data); w_time = System.currentTimeMillis() - w_time; assertTrue("Didn't take too long", (w_time < 2000)); SimplexTable ltbl = new SimplexTable(lstr.size()); Simplex s; while((s = lstr.next()) != null) ltbl.put(s); while((s = wstr.next()) != null) { assertTrue("found all witness simplices in lzw stream", (ltbl.get(s) != null)); } } */ } /** * Tests some exceptional behavior. * * @exception IndexOutOfBoundsException * * @see java.lang.System#getProperty(java.lang.String) * @see SecurityManager#checkPermission */ @Test(expected=IndexOutOfBoundsException.class) public void testForException() { @SuppressWarnings("unused") Object o = emptyList.get(0); } } ================================================ FILE: src_test/java/edu/stanford/math/plex/MappedBufferDataTest.java ================================================ package edu.stanford.math.plex; import static org.junit.Assert.assertTrue; import org.junit.After; import org.junit.Before; import org.junit.Test; /** * The <code>MappedBufferDataTest</code> class contains tests. * * @version $Id$ */ @SuppressWarnings("unused") public class MappedBufferDataTest { private java.util.List<Object> emptyList; /** * Sets up the test fixture. * (Called before every test case method.) */ @Before public void setUp() { emptyList = new java.util.ArrayList<Object>(); } /** * Tears down the test fixture. * (Called after every test case method.) */ @After public void tearDown() { emptyList = null; } double val(int p, int d, int dim) { return (p + ((double)d)/((double) (1 + dim))); } /** * Tests some behavior. * * @exception whatever * @throws what is the difference between these 2 * * @see java.lang.System#getProperty(java.lang.String) * @see SecurityManager#checkPermission */ @Test public void testSomeBehavior() { String filename = "tmp_mbd.bin"; MappedBufferData.delete(filename); int len = 1000; int dim = 39; double[][] test_vals = new double[len+1][dim]; for (int p = 1; p <= len; p++) { for (int d = 0; d < dim; d++) { test_vals[p][d] = val(p, d, dim); } } { MappedBufferData test = new MappedBufferData(filename, len, dim, 0.0, 1.0); test = null; System.gc(); System.gc(); System.gc(); } boolean loser = false; { MappedBufferData test = new MappedBufferData(filename, true); double[][] check_vals = new double[len+1][dim]; for (int p = 1; p <= len; p++) { test.set_pt(p, test_vals[p]); } for (int p = 1; p <= len; p++) { test.get_pt(p, check_vals[p]); } for (int p = 1; p <= len; p++) { for (int d = 0; d < dim; d++) { assertTrue("test/check the same", test_vals[p][d] == check_vals[p][d]); } } test.force(); test = null; System.gc(); System.gc(); System.gc(); } { MappedBufferData test = new MappedBufferData(filename, false); double[][] check_vals = new double[len+1][dim]; for (int p = 1; p <= len; p++) { test.get_pt(p, check_vals[p]); } for (int p = 1; p <= len; p++) { for (int d = 0; d < dim; d++) { assertTrue("test/check the same", test_vals[p][d] == check_vals[p][d]); } } test = null; System.gc(); System.gc(); System.gc(); } MappedBufferData.delete(filename); } /** * Tests some exceptional behavior. * * @exception IndexOutOfBoundsException * * @see java.lang.System#getProperty(java.lang.String) * @see SecurityManager#checkPermission */ @Test(expected=IndexOutOfBoundsException.class) public void testForException() { Object o = emptyList.get(0); } } ================================================ FILE: src_test/java/edu/stanford/math/plex/Packed2SimplexTest.java ================================================ package edu.stanford.math.plex; import static org.junit.Assert.assertEquals; import org.junit.After; import org.junit.Before; import org.junit.Test; /** * The <code>Packed2SimplexTest</code> class contains tests. * * @version $Id$ */ public class Packed2SimplexTest { private java.util.List<Object> emptyList; /** * Sets up the test fixture. * (Called before every test case method.) */ @Before public void setUp() { emptyList = new java.util.ArrayList<Object>(); } /** * Tears down the test fixture. * (Called after every test case method.) */ @After public void tearDown() { emptyList = null; } /** * Tests some behavior. * * @exception whatever * @throws what is the difference between these 2 * * @see java.lang.System#getProperty(java.lang.String) * @see SecurityManager#checkPermission */ @Test public void testSomeBehavior() { assertEquals("Empty list should have 0 elements", 0, emptyList.size()); } /** * Tests some exceptional behavior. * * @exception IndexOutOfBoundsException * * @see java.lang.System#getProperty(java.lang.String) * @see SecurityManager#checkPermission */ @Test(expected=IllegalArgumentException.class) @SuppressWarnings("unused") public void testForException() { Simplex sloser0 = Simplex.getSimplex(new int[] {-1, Integer.MAX_VALUE}); Simplex sloser1 = Simplex.getSimplex(new int[] {1, 1}); } } ================================================ FILE: src_test/java/edu/stanford/math/plex/Packed4SimplexTest.java ================================================ package edu.stanford.math.plex; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import org.junit.After; import org.junit.Before; import org.junit.Test; /** * The <code>Packed4SimplexTest</code> class. * * <p>Among the facilities provided by the <code>Packed4SimplexTest</code> class * are whatever we want it to do. * * @version $ID$ */ @SuppressWarnings("unused") public class Packed4SimplexTest { private java.util.List<Object> emptyList; /** * Sets up the test fixture. * (Called before every test case method.) */ @Before public void setUp() { emptyList = new java.util.ArrayList<Object>(); } /** * Tears down the test fixture. * (Called after every test case method.) */ @After public void tearDown() { emptyList = null; } /** * Tests some behavior. * * @exception whatever * @throws what is the difference between these 2 * * @see java.lang.System#getProperty(java.lang.String) * @see SecurityManager#checkPermission */ @Test public void testSomeBehavior() { assertTrue("Check constants", Packed4Simplex.checkConstants()); assertTrue("Packed4Simplex instances should get used", (Simplex.getSimplex(new int[] {1, 2, 5})) instanceof Packed4Simplex); assertEquals("Packed4Simplex instances should be equal", Simplex.getSimplex(new int[] {1, 2, 5}), Simplex.getSimplex(new int[] {5, 2, 1})); Simplex s4 = Simplex.getSimplex(new int[] {1, 2, 3, Integer.MAX_VALUE}); assertTrue("s4 is okay", s4.dimension() == 3); assertTrue("s4 is okay", s4 instanceof Packed4Simplex); } /** * Tests some exceptional behavior. * * @exception IndexOutOfBoundsException * * @see java.lang.System#getProperty(java.lang.String) * @see SecurityManager#checkPermission */ @Test(expected=IllegalArgumentException.class) public void testForException() { Simplex sloser0 = Simplex.getSimplex(new int[] {0, 1, 4, Integer.MAX_VALUE}); Simplex sloser1 = Simplex.getSimplex(new int[] {1, 1, 4, Integer.MAX_VALUE}); } } ================================================ FILE: src_test/java/edu/stanford/math/plex/Packed6SimplexTest.java ================================================ package edu.stanford.math.plex; import static org.junit.Assert.assertTrue; import org.junit.After; import org.junit.Before; import org.junit.Test; /** * The <code>Packed6SimplexTest</code> class contains tests. * * @version $Id$ */ @SuppressWarnings("unused") public class Packed6SimplexTest { private java.util.List<Object> emptyList; /** * Sets up the test fixture. * (Called before every test case method.) */ @Before public void setUp() { emptyList = new java.util.ArrayList<Object>(); } /** * Tears down the test fixture. * (Called after every test case method.) */ @After public void tearDown() { emptyList = null; } /** * Tests some behavior. * * @exception whatever * @throws what is the difference between these 2 * * @see java.lang.System#getProperty(java.lang.String) * @see SecurityManager#checkPermission */ @Test public void testSomeBehavior() { Simplex s6 = Simplex.getSimplex(new int[] {1, 2, 3, 4, Integer.MAX_VALUE}); assertTrue("s6 is okay", s6.dimension() == 4); assertTrue("s6 is okay", s6 instanceof Packed6Simplex); } /** * Tests some exceptional behavior. * * @exception IndexOutOfBoundsException * * @see java.lang.System#getProperty(java.lang.String) * @see SecurityManager#checkPermission */ @Test(expected=IllegalArgumentException.class) public void testForException() { Simplex sloser0 = Simplex.getSimplex(new int[] {0, 2, 1, 4, Integer.MAX_VALUE}); Simplex sloser1 = Simplex.getSimplex(new int[] {1, 2, 1, 4, Integer.MAX_VALUE}); } } ================================================ FILE: src_test/java/edu/stanford/math/plex/PersistenceBasisTest.java ================================================ package edu.stanford.math.plex; import static org.junit.Assert.assertEquals; import org.junit.Test; /** * The <code>PersistenceTest</code> class. * * <p>Among the facilities provided by the <code>PersistenceTest</code> class * are whatever we want it to do. * * @version $ID$ */ @SuppressWarnings("unused") public class PersistenceBasisTest { /** * Tests some behavior. * * @exception whatever * @throws what is the difference between these 2 * * @see java.lang.System#getProperty(java.lang.String) * @see SecurityManager#checkPermission */ @Test public void testSomeBehavior() { SimplexStream stream = TmpStream.PaperTestCase(); PersistenceBasis P = new PersistenceBasis(); PersistenceInterval[] expected = new PersistenceInterval[5]; expected[0] = new PersistenceInterval.Int(0, 0, 1); expected[1] = new PersistenceInterval.Int(0, 0); //expected[2] = new PersistenceInterval.Int(0, 1, 1); expected[2] = new PersistenceInterval.Int(0, 1, 2); expected[3] = new PersistenceInterval.Int(1, 2, 5); expected[4] = new PersistenceInterval.Int(1, 3, 4); PersistenceBasisInterval[] intervals = P.computeRawIntervals(stream, 7); int counter = 0; for (PersistenceBasisInterval i : intervals) { System.out.println(i); assertEquals("Got expected results", i.toPersistenceInterval(),(expected[counter++])); } // make sure that the homology of the d-sphere is what we expect for (int d = 1; d <= 5; d++) { SimplexStream ds = PointData.Discrete.DSphere(d); PersistenceBasis p = new PersistenceBasis(); Plex.BettiNumbers gen = Plex.FilterInfinite(PersistenceBasis.computeIntervals(ds)); int[] exp_init = new int[d+1]; exp_init[0] = 1; exp_init[d] = 1; Plex.BettiNumbers exp_bn = new Plex.BettiNumbers(exp_init); assertEquals("sphere H* generators", exp_bn, gen); } // Make sure that the homology of the S(d,k) (the k-skeleton of the // d-sphere) is what we expect. { SimplexStream ds; PersistenceBasis p; Plex.BettiNumbers gen_dk; p = new PersistenceBasis(); ds = PointData.Discrete.DSphereKskeleton(3,1); gen_dk = Plex.FilterInfinite(PersistenceBasis.computeIntervals(ds)); assertEquals("S(d,k) homology", gen_dk, new Plex.BettiNumbers(new int[] {1, 6})); p = new PersistenceBasis(); ds = PointData.Discrete.DSphereKskeleton(3,2); gen_dk = Plex.FilterInfinite(PersistenceBasis.computeIntervals(ds)); assertEquals("S(d,k) homology", gen_dk, new Plex.BettiNumbers(new int[] {1, 0, 4})); p = new PersistenceBasis(); ds = PointData.Discrete.DSphereKskeleton(4,1); gen_dk = Plex.FilterInfinite(PersistenceBasis.computeIntervals(ds)); assertEquals("S(d,k) homology", gen_dk, new Plex.BettiNumbers(new int[] {1, 10})); p = new PersistenceBasis(); ds = PointData.Discrete.DSphereKskeleton(4,2); gen_dk = Plex.FilterInfinite(PersistenceBasis.computeIntervals(ds)); assertEquals("S(d,k) homology", gen_dk, new Plex.BettiNumbers(new int[] {1, 0, 10})); p = new PersistenceBasis(); ds = PointData.Discrete.DSphereKskeleton(4,3); gen_dk = Plex.FilterInfinite(PersistenceBasis.computeIntervals(ds)); assertEquals("S(d,k) homology", gen_dk, new Plex.BettiNumbers(new int[] {1, 0, 0, 5})); p = new PersistenceBasis(); ds = PointData.Discrete.DSphereKskeleton(5,1); gen_dk = Plex.FilterInfinite(PersistenceBasis.computeIntervals(ds)); assertEquals("S(d,k) homology", gen_dk, new Plex.BettiNumbers(new int[] {1, 15})); p = new PersistenceBasis(); ds = PointData.Discrete.DSphereKskeleton(5,2); gen_dk = Plex.FilterInfinite(PersistenceBasis.computeIntervals(ds)); assertEquals("S(d,k) homology", gen_dk, new Plex.BettiNumbers(new int[] {1, 0, 20})); p = new PersistenceBasis(); ds = PointData.Discrete.DSphereKskeleton(5,3); gen_dk = Plex.FilterInfinite(PersistenceBasis.computeIntervals(ds)); assertEquals("S(d,k) homology", gen_dk, new Plex.BettiNumbers(new int[] {1, 0, 0, 15})); p = new PersistenceBasis(); ds = PointData.Discrete.DSphereKskeleton(5,4); gen_dk = Plex.FilterInfinite(PersistenceBasis.computeIntervals(ds)); assertEquals("S(d,k) homology", gen_dk, new Plex.BettiNumbers(new int[] {1, 0, 0, 0, 6})); p = new PersistenceBasis(); ds = PointData.Discrete.DSphereKskeleton(6,1); gen_dk = Plex.FilterInfinite(PersistenceBasis.computeIntervals(ds)); assertEquals("S(d,k) homology", gen_dk, new Plex.BettiNumbers(new int[] {1, 21})); p = new PersistenceBasis(); ds = PointData.Discrete.DSphereKskeleton(6,2); gen_dk = Plex.FilterInfinite(PersistenceBasis.computeIntervals(ds)); assertEquals("S(d,k) homology", gen_dk, new Plex.BettiNumbers(new int[] {1, 0, 35})); p = new PersistenceBasis(); ds = PointData.Discrete.DSphereKskeleton(6,3); gen_dk = Plex.FilterInfinite(PersistenceBasis.computeIntervals(ds)); assertEquals("S(d,k) homology", gen_dk, new Plex.BettiNumbers(new int[] {1, 0, 0, 35})); p = new PersistenceBasis(); ds = PointData.Discrete.DSphereKskeleton(6,4); gen_dk = Plex.FilterInfinite(PersistenceBasis.computeIntervals(ds)); assertEquals("S(d,k) homology", gen_dk, new Plex.BettiNumbers(new int[] {1, 0, 0, 0, 21})); p = new PersistenceBasis(); ds = PointData.Discrete.DSphereKskeleton(6,5); gen_dk = Plex.FilterInfinite(PersistenceBasis.computeIntervals(ds)); assertEquals("S(d,k) homology", gen_dk, new Plex.BettiNumbers(new int[] {1, 0, 0, 0, 0, 7})); } } } ================================================ FILE: src_test/java/edu/stanford/math/plex/PersistenceIntervalTest.java ================================================ package edu.stanford.math.plex; import static org.junit.Assert.assertEquals; import org.junit.After; import org.junit.Before; import org.junit.Test; /** * The <code>PersistenceIntervalTest</code> class. * * <p>Among the facilities provided by the <code>PersistenceIntervalTest</code> class * are whatever we want it to do. * * @version $ID$ */ public class PersistenceIntervalTest { private java.util.List<Object> emptyList; /** * Sets up the test fixture. * (Called before every test case method.) */ @Before public void setUp() { emptyList = new java.util.ArrayList<Object>(); } /** * Tears down the test fixture. * (Called after every test case method.) */ @After public void tearDown() { emptyList = null; } /** * Tests some behavior. * * @exception whatever * @throws what is the difference between these 2 * * @see java.lang.System#getProperty(java.lang.String) * @see SecurityManager#checkPermission */ @Test public void testSomeBehavior() { assertEquals("Empty list should have 0 elements", 0, emptyList.size()); } /** * Tests some exceptional behavior. * * @exception IndexOutOfBoundsException * * @see java.lang.System#getProperty(java.lang.String) * @see SecurityManager#checkPermission */ @Test(expected=IndexOutOfBoundsException.class) public void testForException() { @SuppressWarnings("unused") Object o = emptyList.get(0); } } ================================================ FILE: src_test/java/edu/stanford/math/plex/PersistenceTest.java ================================================ package edu.stanford.math.plex; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import org.junit.After; import org.junit.Before; import org.junit.Test; /** * The <code>PersistenceTest</code> class. * * <p>Among the facilities provided by the <code>PersistenceTest</code> class * are whatever we want it to do. * * @version $ID$ */ public class PersistenceTest { private java.util.List<Object> emptyList; /** * Sets up the test fixture. * (Called before every test case method.) */ @Before public void setUp() { emptyList = new java.util.ArrayList<Object>(); } /** * Tears down the test fixture. * (Called after every test case method.) */ @After public void tearDown() { emptyList = null; } /** * Tests some behavior. * * @exception whatever * @throws what is the difference between these 2 * * @see java.lang.System#getProperty(java.lang.String) * @see SecurityManager#checkPermission */ @Test public void testSomeBehavior() { SimplexStream stream = TmpStream.PaperTestCase(); Persistence P = new Persistence(); PersistenceInterval[] expected = new PersistenceInterval[5]; expected[0] = new PersistenceInterval.Int(0, 0, 1); expected[1] = new PersistenceInterval.Int(0, 0); //expected[2] = new PersistenceInterval.Int(0, 1, 1); expected[2] = new PersistenceInterval.Int(0, 1, 2); expected[3] = new PersistenceInterval.Int(1, 2, 5); expected[4] = new PersistenceInterval.Int(1, 3, 4); PersistenceInterval[] intervals = P.computeRawIntervals(stream, false, 7); int counter = 0; for (PersistenceInterval i : intervals) { assertTrue("Got expected results", i.equals(expected[counter++])); } // make sure that the homology of the d-sphere is what we expect for (int d = 1; d <= 5; d++) { SimplexStream ds = PointData.Discrete.DSphere(d); Persistence p = Plex.Persistence(); Plex.BettiNumbers gen = Plex.FilterInfinite(p.computeIntervals(ds)); int[] exp_init = new int[d+1]; exp_init[0] = 1; exp_init[d] = 1; Plex.BettiNumbers exp_bn = new Plex.BettiNumbers(exp_init); assertEquals("sphere H* generators", exp_bn, gen); } // Make sure that the homology of the S(d,k) (the k-skeleton of the // d-sphere) is what we expect. { SimplexStream ds; Persistence p; Plex.BettiNumbers gen_dk; p = Plex.Persistence(); ds = PointData.Discrete.DSphereKskeleton(3,1); gen_dk = Plex.FilterInfinite(p.computeIntervals(ds)); assertEquals("S(d,k) homology", gen_dk, new Plex.BettiNumbers(new int[] {1, 6})); p = Plex.Persistence(); ds = PointData.Discrete.DSphereKskeleton(3,2); gen_dk = Plex.FilterInfinite(p.computeIntervals(ds)); assertEquals("S(d,k) homology", gen_dk, new Plex.BettiNumbers(new int[] {1, 0, 4})); p = Plex.Persistence(); ds = PointData.Discrete.DSphereKskeleton(4,1); gen_dk = Plex.FilterInfinite(p.computeIntervals(ds)); assertEquals("S(d,k) homology", gen_dk, new Plex.BettiNumbers(new int[] {1, 10})); p = Plex.Persistence(); ds = PointData.Discrete.DSphereKskeleton(4,2); gen_dk = Plex.FilterInfinite(p.computeIntervals(ds)); assertEquals("S(d,k) homology", gen_dk, new Plex.BettiNumbers(new int[] {1, 0, 10})); p = Plex.Persistence(); ds = PointData.Discrete.DSphereKskeleton(4,3); gen_dk = Plex.FilterInfinite(p.computeIntervals(ds)); assertEquals("S(d,k) homology", gen_dk, new Plex.BettiNumbers(new int[] {1, 0, 0, 5})); p = Plex.Persistence(); ds = PointData.Discrete.DSphereKskeleton(5,1); gen_dk = Plex.FilterInfinite(p.computeIntervals(ds)); assertEquals("S(d,k) homology", gen_dk, new Plex.BettiNumbers(new int[] {1, 15})); p = Plex.Persistence(); ds = PointData.Discrete.DSphereKskeleton(5,2); gen_dk = Plex.FilterInfinite(p.computeIntervals(ds)); assertEquals("S(d,k) homology", gen_dk, new Plex.BettiNumbers(new int[] {1, 0, 20})); p = Plex.Persistence(); ds = PointData.Discrete.DSphereKskeleton(5,3); gen_dk = Plex.FilterInfinite(p.computeIntervals(ds)); assertEquals("S(d,k) homology", gen_dk, new Plex.BettiNumbers(new int[] {1, 0, 0, 15})); p = Plex.Persistence(); ds = PointData.Discrete.DSphereKskeleton(5,4); gen_dk = Plex.FilterInfinite(p.computeIntervals(ds)); assertEquals("S(d,k) homology", gen_dk, new Plex.BettiNumbers(new int[] {1, 0, 0, 0, 6})); p = Plex.Persistence(); ds = PointData.Discrete.DSphereKskeleton(6,1); gen_dk = Plex.FilterInfinite(p.computeIntervals(ds)); assertEquals("S(d,k) homology", gen_dk, new Plex.BettiNumbers(new int[] {1, 21})); p = Plex.Persistence(); ds = PointData.Discrete.DSphereKskeleton(6,2); gen_dk = Plex.FilterInfinite(p.computeIntervals(ds)); assertEquals("S(d,k) homology", gen_dk, new Plex.BettiNumbers(new int[] {1, 0, 35})); p = Plex.Persistence(); ds = PointData.Discrete.DSphereKskeleton(6,3); gen_dk = Plex.FilterInfinite(p.computeIntervals(ds)); assertEquals("S(d,k) homology", gen_dk, new Plex.BettiNumbers(new int[] {1, 0, 0, 35})); p = Plex.Persistence(); ds = PointData.Discrete.DSphereKskeleton(6,4); gen_dk = Plex.FilterInfinite(p.computeIntervals(ds)); assertEquals("S(d,k) homology", gen_dk, new Plex.BettiNumbers(new int[] {1, 0, 0, 0, 21})); p = Plex.Persistence(); ds = PointData.Discrete.DSphereKskeleton(6,5); gen_dk = Plex.FilterInfinite(p.computeIntervals(ds)); assertEquals("S(d,k) homology", gen_dk, new Plex.BettiNumbers(new int[] {1, 0, 0, 0, 0, 7})); } } /** * Tests some exceptional behavior. * * @exception IndexOutOfBoundsException * * @see java.lang.System#getProperty(java.lang.String) * @see SecurityManager#checkPermission */ @Test(expected=IndexOutOfBoundsException.class) public void testForException() { @SuppressWarnings("unused") Object o = emptyList.get(0); } } ================================================ FILE: src_test/java/edu/stanford/math/plex/PlexSortTest.java ================================================ package edu.stanford.math.plex; import static org.junit.Assert.assertTrue; import java.util.Random; import org.junit.After; import org.junit.Before; import org.junit.Test; /** * The <code>PlexSortTest</code> class provides tests for PlexSort.java. * * @version $ID$ */ @SuppressWarnings("unused") public class PlexSortTest { private java.util.List<Object> emptyList; /** * Sets up the test fixture. * (Called before every test case method.) */ @Before public void setUp() { emptyList = new java.util.ArrayList<Object>(); } /** * Tears down the test fixture. * (Called after every test case method.) */ @After public void tearDown() { emptyList = null; } public static int[] random_vec(int len, int max, Random rand) { int[] test = new int[len]; for (int i = 0; i < len; i++) { int val = rand.nextInt() % max; test[i] = val; } return test; } public static class TestComp extends PlexSort.Comp { public final boolean increasing; public int fn(int i, int j) { if (increasing) return (i - j); else return (j - i); } public TestComp(boolean incr) { increasing = incr; } public boolean check_random_vec(int[] vec) { for (int i = 1; i < vec.length; i++) { if (increasing) { if (vec[i-1] > vec[i]) return false; } else { if (vec[i-1] < vec[i]) return false; } } return true; } } public static boolean check_vec(int[] vec) { for (int i = 1; i < vec.length; i++) { if (vec[i-1] > vec[i]) { System.out.printf("\n### "); for (int j = 0; j < vec.length; j++) { if (j == (i-1)) System.out.printf(" >>> %d ", vec[j]); else if (j == i) System.out.printf("%d <<< ", vec[j]); else System.out.printf("%d ", vec[j]); } System.out.printf("\n\n"); return false; } } return true; } /** * Tests some behavior. * * @exception whatever * @throws what is the difference between these 2 * * @see java.lang.System#getProperty(java.lang.String) * @see SecurityManager#checkPermission */ @Test public void testSomeBehavior() { int len_increasing = 100; TestComp tc_increasing = new TestComp(true); int[] tv_increasing = new int[len_increasing]; for (int i = 0; i < tv_increasing.length; i++) { tv_increasing[i] = tv_increasing.length - i; } //PlexSort.comp_sort(tv_increasing, 0, tv_increasing.length, tc_increasing); //assertTrue("Sorted correctly", tc_increasing.check_random_vec(tv_increasing)); Random rand = new Random(1); int counter = 100; int max_len = 1000; int min_len = 10; while(counter-- > 0) { TestComp tc = new TestComp(rand.nextInt(2) == 1); int len = rand.nextInt(max_len - min_len) + min_len; int max = ((counter % 10) == 0)?2:(3+rand.nextInt(len-3)); int[] vec = random_vec(len, max, rand); PlexSort.comp_sort(vec, 0, vec.length, tc); // PlexSort.xsort(vec, 0, vec.length); assertTrue("Sorted correctly", tc.check_random_vec(vec)); } // FIX THIS! /* if (false) { int pts[] = new int[] { 1, 6, 7, 8, 22, 30, 41, 42, 49 }; double wts[] = new double[] { 1.0, 6.0, 7.0, 8.0, 22.0, 30.0, 41.0, 42.0, 49.0 }; PlexSort.reverse_sort(pts, wts); for (int i = 0; i < pts.length-1; i++) assertTrue("sorting by decreasing weights", (pts[i] > pts[i+1])); } */ // FIX THIS! } /** * tests some exceptional behavior. * * @exception IndexOutOfBoundsException * * @see java.lang.System#getProperty(java.lang.String) * @see SecurityManager#checkPermission */ @Test(expected=IndexOutOfBoundsException.class) public void testForException() { Object o = emptyList.get(0); } } ================================================ FILE: src_test/java/edu/stanford/math/plex/PlexTest.java ================================================ package edu.stanford.math.plex; import static org.junit.Assert.assertTrue; import org.junit.After; import org.junit.Before; import org.junit.Test; @SuppressWarnings("unused") public class PlexTest { private java.util.List<Object> emptyList; /** * Sets up the test fixture. * (Called before every test case method.) */ @Before public void setUp() { emptyList = new java.util.ArrayList<Object>(); } /** * Tears down the test fixture. * (Called after every test case method.) */ @After public void tearDown() { emptyList = null; } private static boolean is_present(int x, int[] y) { for (int i = 0; i < y.length; i++) { if (x == y[i]) return true; } return false; } @Test public void testSomeBehavior() { int[] set = new int[] {2, 4, 6, 8, 10, 15, 23, 45, 99, 1000}; int[] subset = new int[3]; int[] subset2 = new int[5]; int[] subset3 = new int[50]; int subset2_len = subset2.length - 1; int subset3_len = subset3.length/2; Plex.random_subset(set, set.length, subset, subset.length); Plex.random_subset(set, set.length, subset2, subset2_len); Plex.random_subset(100, subset3, subset3_len); for(int i = 0; i < subset.length-1; i++) { assertTrue("increasing subset", (subset[i] < subset[i+1])); assertTrue("is present", is_present(subset[i], set)); assertTrue("is present", is_present(subset[i+1], set)); } for(int i = 0; i < subset2_len-1; i++) { assertTrue("increasing subset", (subset2[i] < subset2[i+1])); assertTrue("is present", is_present(subset2[i], set)); assertTrue("is present", is_present(subset2[i+1], set)); } for(int i = 0; i < subset3_len-1; i++) assertTrue("increasing subset", (subset3[i] < subset3[i+1])); } @Test(expected=IndexOutOfBoundsException.class) public void testForException() { Object o = emptyList.get(0); } } ================================================ FILE: src_test/java/edu/stanford/math/plex/RipsStreamTest.java ================================================ package edu.stanford.math.plex; import static java.lang.Math.PI; import static java.lang.Math.cos; import static java.lang.Math.sin; import static java.lang.Math.sqrt; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import java.util.Iterator; import org.junit.After; import org.junit.Before; import org.junit.Test; /** * The <code>RipsStreamTest</code> class. * * <p>Among the facilities provided by the <code>RipsStreamTest</code> class * are whatever we want it to do. * * @version $ID$ */ @SuppressWarnings("unused") public class RipsStreamTest { private java.util.List<Object> emptyList; /** * Sets up the test fixture. * (Called before every test case method.) */ @Before public void setUp() { emptyList = new java.util.ArrayList<Object>(); } /** * Tears down the test fixture. * (Called after every test case method.) */ @After public void tearDown() { emptyList = null; } /** * Tests some behavior. * * @exception whatever * @throws what is the difference between these 2 * * @see java.lang.System#getProperty(java.lang.String) * @see SecurityManager#checkPermission */ @Test public void testSomeBehavior() { // check some misc things about RipsStreams { assertEquals("edge indices are okay", true, RipsStream.check_edge_index(222)); PointData data = (PointData) new Torus(); PointData rdata = (PointData) new EuclideanArrayData(40, 4); RipsStream str = new RipsStream(.1, 3, 2.0, data); RipsStream rstr = new RipsStream(.05, 3, 2.0, rdata); RipsStream zstr = new RipsStream(0.0, 3, 2.0, rdata); SimplexStream stream = (SimplexStream) str; SimplexStream rstream = (SimplexStream) rstr; SimplexStream zstream = (SimplexStream) zstr; assertTrue("big enough stream", (rstr.size() > 100000)); assertTrue("big enough stream", (zstr.size() > 0)); } // check iterator and stream next for equivalence { Persistence p = Plex.Persistence(); PointData data = (PointData) new EuclideanArrayData(100, 3); double max_dist = 2.0; RipsStream str = new RipsStream(.1, 2, max_dist, data); RipsStream strcpy = new RipsStream(.1, 2, max_dist, data); Iterator<Simplex> iterator = strcpy.iterator(); if (str.size() < 1000000) { while(iterator.hasNext()) { assertTrue("iterator check", (str.hasNext() && (iterator.next()).equals(str.next()))); } assertTrue("iterator check", !str.hasNext()); } } // make sure that the fixed dimensional iterators work { PointData data = (PointData) new EuclideanArrayData(20, 3); RipsStream rc = Plex.RipsStream(.1, 3, 20, data); RipsStream zc = Plex.RipsStream(0, 3, 20, data); int test_dimension = 1; Iterator<Simplex> it_dim = rc.iterator(test_dimension); Iterator<Simplex> it = rc.iterator(); int counter = 0; while(it.hasNext()) { Simplex n = it.next(); if (n.dimension() == test_dimension) { Simplex n_d = it_dim.next(); counter++; assertEquals("fixed d iterator", n, n_d); } } assertTrue("fixed d iterator test", (counter > 0)); assertFalse("fixed d iterator done", it_dim.hasNext()); double cutoff = .75; Simplex[] matches_le = rc.matchingSimplices(test_dimension, cutoff, SimplexStream.ComparisonType.LE); Simplex[] matches_gt = rc.matchingSimplices(test_dimension, cutoff, SimplexStream.ComparisonType.GT); assertTrue("matching simplex test", ((matches_gt.length > 0) && (matches_le.length > 0))); assertTrue("matching simplex test", (counter == (matches_gt.length + matches_le.length))); Simplex[] zmatches_le = zc.matchingSimplices(test_dimension, cutoff, SimplexStream.ComparisonType.LE); Simplex[] zmatches_gt = zc.matchingSimplices(test_dimension, cutoff, SimplexStream.ComparisonType.GT); assertTrue("matching simplex test", ((zmatches_gt.length > 0) && (zmatches_le.length > 0))); assertTrue("matching simplex test", (counter == (zmatches_gt.length + zmatches_le.length))); } // Check our calculation for the Homology of the 2-Torus for both a // RipsStream and an explicitly constructed one. { Persistence p = Plex.Persistence(); int n = 20; int d = 2; double incr = (2.0 * PI)/n; Torus tor = Plex.Torus(n, d); double slop = 1.2 * sqrt(((double)d) * (((1.0 - cos(incr)) * (1.0 - cos(incr))) + (sin(incr) * sin(incr)))); double granularity = slop/1000.0; RipsStream rc = Plex.RipsStream(granularity, d+1, slop, tor); RipsStream zc = Plex.RipsStream(0, d+1, slop, tor); PersistenceInterval.Float[] rci = p.computeIntervals(rc); Plex.BettiNumbers gen_rc = Plex.FilterInfinite(rci); PersistenceInterval.Float[] zci = p.computeIntervals(zc); Plex.BettiNumbers expected_rc = new Plex.BettiNumbers(new int[] {1, 2, 1}); assertEquals("2-torus betti numbers", gen_rc, expected_rc); assertEquals("rci/zci lengths", rci.length, zci.length); /* if (false) { System.out.printf("\n\n rci/zci (granularity = %f): \n", granularity); for (int idx = 0; idx < rci.length; idx++) { System.out.printf("%s/%s\n", rci[idx].toString(), zci[idx].toString()); } System.out.printf("\n\n"); } */ assertTrue("0-granularity test", Plex.equalPersistenceIntervals(rci, zci, granularity)); /* if (false) { // example for the doc -- make sure it works System.out.printf("\n\np = Plex.Persistence()\n"); System.out.printf("tor = Plex.Torus(%d, %d)\n", n, d); System.out.printf("rc = Plex.RipsStream(%f, %d, %f, tor)\n", slop/10, d+1, slop); System.out.printf("rc.size()\n"); System.out.printf("res = Plex.FilterInfinite(p.computeIntervals(rc))\n"); System.out.printf(" %s\n\n", gen_rc.toString()); } */ } // test the homology calculation for a handmade torus { SimplexStream ttor = TmpStream.Torus(); Persistence pt = new Persistence(); Plex.BettiNumbers gen_tt = Plex.FilterInfinite(pt.computeIntervals(ttor)); Plex.BettiNumbers expected_tt = new Plex.BettiNumbers(new int[] {1, 2, 1}); assertEquals("2-torus betti numbers", gen_tt, expected_tt); } } /** * Tests some exceptional behavior. * * @exception IndexOutOfBoundsException * * @see java.lang.System#getProperty(java.lang.String) * @see SecurityManager#checkPermission */ @Test(expected=IllegalArgumentException.class) public void testForException() { EuclideanArrayData edata = new EuclideanArrayData(40, 4); double x = edata.coordinate(10, 4); } } ================================================ FILE: src_test/java/edu/stanford/math/plex/SimplexFaceIteratorTest.java ================================================ package edu.stanford.math.plex; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import org.junit.After; import org.junit.Before; import org.junit.Test; /** * The <code>SimplexFaceIteratorTest</code> class. * * <p>Among the facilities provided by the <code>SimplexFaceIteratorTest</code> class * are whatever we want it to do. * * @version $ID$ */ @SuppressWarnings("unused") public class SimplexFaceIteratorTest { private java.util.List<Object> emptyList; /** * Sets up the test fixture. * (Called before every test case method.) */ @Before public void setUp() { emptyList = new java.util.ArrayList<Object>(); } /** * Tears down the test fixture. * (Called after every test case method.) */ @After public void tearDown() { emptyList = null; } /** * Tests some behavior. * * @exception whatever * @throws what is the difference between these 2 * * @see java.lang.System#getProperty(java.lang.String) * @see SecurityManager#checkPermission */ @Test public void testSomeBehavior() { assertEquals("Empty list should have 0 elements", 0, emptyList.size()); assertTrue("vectors of the same length are equal", Plex.equalPtArrays((new int[5]),(new int[5]))); SimplexFaceIterator test = new SimplexFaceIterator(new int[] {3, 17, 57, 81}, 1); assertTrue("explicit face iterator hasNext", test.hasNext()); assertTrue("we know next", Plex.equalPtArrays(test.next(), new int[] {3, 17})); assertTrue("we know next", Plex.equalPtArrays(test.next(), new int[] {3, 57})); assertTrue("we know next", Plex.equalPtArrays(test.next(), new int[] {3, 81})); assertTrue("we know next", Plex.equalPtArrays(test.next(), new int[] {17, 57})); assertTrue("we know next", Plex.equalPtArrays(test.next(), new int[] {17, 81})); assertTrue("we know next", Plex.equalPtArrays(test.next(), new int[] {57, 81})); assertFalse("explicit face iterator !hasNext", test.hasNext()); int[] test_array = new int[] {1, 3, 17, 57, 81}; assertTrue("array is length 5", (test_array.length == 5)); SimplexFaceIterator test3 = new SimplexFaceIterator(test_array, 3); int counter = 0; while (test3.hasNext()) { int[] tmp = test3.next(); counter++; } assertTrue("there are 5 cofaces", (counter == 5)); SimplexFaceIterator test4 = new SimplexFaceIterator(test_array, 4); assertTrue("face iterator has one entry", test4.hasNext()); test4.next(); assertFalse("face iterator of length 1 !hasNext", test4.hasNext()); SimplexFaceIterator test5 = new SimplexFaceIterator(test_array, 5); assertFalse("impossible face iterator !hasNext", test5.hasNext()); } /** * Tests some exceptional behavior. * * @exception IndexOutOfBoundsException * * @see java.lang.System#getProperty(java.lang.String) * @see SecurityManager#checkPermission */ @Test(expected=IndexOutOfBoundsException.class) public void testForException() { Object o = emptyList.get(0); } } ================================================ FILE: src_test/java/edu/stanford/math/plex/SimplexTableTest.java ================================================ package edu.stanford.math.plex; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import java.util.Iterator; import org.junit.After; import org.junit.Before; import org.junit.Test; /** * The <code>SimplexTableTest</code> class. * * <p>Test code for the specialized Simplex interning class SimplexTable. * * @version $ID$ */ @SuppressWarnings("unused") public class SimplexTableTest { private java.util.List<Object> emptyList; /** * Sets up the test fixture. * (Called before every test case method.) */ @Before public void setUp() { emptyList = new java.util.ArrayList<Object>(); } /** * Tears down the test fixture. * (Called after every test case method.) */ @After public void tearDown() { emptyList = null; } // Some not very precise timing information -- a very simple-minded // test suggested that Simplex creation was within a factor of 2 of a // handcrafted C code implementation. The numbers here are only // interesting as relative values, because they were collected without // trying for the best performance. I think that we can probably halve // these times when running in production mode. // // Construction only: 8.5M simplices Time: 3.6 secs // Construction and interning of 8.5M simplices -- Time: 6.8 secs // Construction, interning, bdy operation on 8.5M -- Time: 19.4 secs // Simplex construction -- Chain construction on 8.5M -- Time: 22.5 secs // Simplex construction -- add chains together on 8.5M -- Time: 25.8 secs /** * Tests creating a RipsStream and interning the elements in it, as * well as doing some Chain arithmetic. * */ @Test public void testSomeBehavior() { PointData rdata = (PointData) new EuclideanArrayData(40, 4); // EuclideanArrayData(120, 4); int rstr_size = 0; int rtbl_size = 0; Simplex s, t; RipsStream rstr = new RipsStream(.05, 3, 2.0, rdata); int rstr_initial_size = rstr.size(); SimplexTable rtbl = new SimplexTable(1000); int initial_limit = rtbl.limit(); Iterator<Simplex> riter = rstr.iterator(); while ((riter.hasNext() && ((s = riter.next()) != null)) && (riter.hasNext() && ((t = riter.next()) != null))) { Simplex[] b = s.boundaryArray(); Simplex[] c = t.boundaryArray(); if (b != null) for (int i = 0; i < b.length; i++) b[i] = rtbl.get(b[i]); rtbl.put(s); if (c != null) for (int i = 0; i < c.length; i++) c[i] = rtbl.get(c[i]); rtbl.put(t); Chain d = Chain.fromBoundary(b, Persistence.baseModulus()); Chain e = Chain.fromBoundary(c, Persistence.baseModulus()); if(d != null) assert(rtbl.get(d.maxS()) != null); if(e != null) { if (d != null) e = e.add(d, 1); assert((e == null) || (rtbl.get(e.maxS()) != null)); } } assertTrue("table big enough", ((rtbl.size() >= (rstr_initial_size - 2)) && (rtbl.size() > 0))); assertTrue("table grew", (rtbl.limit() > initial_limit)); int found = 0; while (((s = rstr.next()) != null) && ((t = rstr.next()) != null)) { assertTrue("found s", rtbl.get(s) != null); assertTrue("found t", rtbl.get(t) != null); found += 2; } assertEquals("found all", rtbl.size(), found); assertEquals("stream empty", rstr.size(), 0); } /** * Tests some exceptional behavior. * * @exception IndexOutOfBoundsException * * @see java.lang.System#getProperty(java.lang.String) * @see SecurityManager#checkPermission */ @Test(expected=IndexOutOfBoundsException.class) public void testForException() { Object o = emptyList.get(0); } } ================================================ FILE: src_test/java/edu/stanford/math/plex/SimplexTest.java ================================================ package edu.stanford.math.plex; import static org.junit.Assert.assertTrue; import org.junit.After; import org.junit.Before; import org.junit.Test; @SuppressWarnings("unused") public class SimplexTest { private java.util.List<Object> emptyList; /** * Sets up the test fixture. * (Called before every test case method.) */ @Before public void setUp() { emptyList = new java.util.ArrayList<Object>(); } /** * Tears down the test fixture. * (Called after every test case method.) */ @After public void tearDown() { emptyList = null; } @Test public void testSomeBehavior() { int[] vertices = new int[] {1, 3, 4, 2}; int[] v6 = new int[] {1, 3, 4, 6, 2, 8}; Simplex test = Simplex.getSimplex(vertices); Simplex t6 = Simplex.getSimplex(v6); assertTrue("test.subset(t6)", test.subset(t6)); assertTrue("test.subset(t6)", test.subset(t6, new int[10], new int[8])); int[] tverts = test.vertices(); int[] t6verts = t6.vertices(); assertTrue("s.vertices equals original vertices", Plex.equalPtArrays(Simplex.getSimplex(vertices).vertices(), Simplex.vertex_sort(vertices))); assertTrue("s.vertices equals original vertices", Plex.equalPtArrays(Simplex.getSimplex(v6).vertices(), Simplex.vertex_sort(v6))); Simplex[] test_bdy = test.boundaryArray(); Simplex[] t6_bdy = t6.boundaryArray(); assertTrue("second bdy elt is correct", test_bdy[1].equals(Simplex.getSimplex(new int[] {1, 3, 4}))); assertTrue("second bdy elt is correct", t6_bdy[1].equals(Simplex.getSimplex(new int[] {1, 3, 4, 6, 8}))); Simplex e2 = Simplex.makeEdge(1, Integer.MAX_VALUE, -1); assertTrue("e2 is okay", e2.dimension() == 1); assertTrue("e2 is okay", e2 instanceof Packed2Simplex); } @Test(expected=IndexOutOfBoundsException.class) public void testForException() { Object o = emptyList.get(0); } } ================================================ FILE: src_test/java/edu/stanford/math/plex/TorusTest.java ================================================ package edu.stanford.math.plex; import org.junit.After; import org.junit.Before; import org.junit.Test; /** * The <code>TorusTest</code> class. * * <p>Among the facilities provided by the <code>TorusTest</code> class * are whatever we want it to do. * * @version $ID$ */ @SuppressWarnings("unused") public class TorusTest { private java.util.List<Object> emptyList; /** * Sets up the test fixture. * (Called before every test case method.) */ @Before public void setUp() { emptyList = new java.util.ArrayList<Object>(); } /** * Tears down the test fixture. * (Called after every test case method.) */ @After public void tearDown() { emptyList = null; } /** * Tests some behavior. * * @exception whatever * @throws what is the difference between these 2 * * @see java.lang.System#getProperty(java.lang.String) * @see SecurityManager#checkPermission */ @Test public void testSomeBehavior() { Torus tdata = new Torus(); RipsStream rstr = new RipsStream(0.1, 3, 2.0, tdata); } /** * Tests some exceptional behavior. * * @exception IndexOutOfBoundsException * * @see java.lang.System#getProperty(java.lang.String) * @see SecurityManager#checkPermission */ @Test(expected=IndexOutOfBoundsException.class) public void testForException() { Object o = emptyList.get(0); } } ================================================ FILE: src_test/java/edu/stanford/math/plex/WitnessStreamTest.java ================================================ package edu.stanford.math.plex; import org.junit.After; import org.junit.Before; import org.junit.Test; /** * The <code>WitnessStreamTest</code> class. * * <p>Among the facilities provided by the <code>WitnessStreamTest</code> class * are whatever we want it to do. * * @version $ID$ */ @SuppressWarnings("unused") public class WitnessStreamTest { private java.util.List<Object> emptyList; /** * Sets up the test fixture. * (Called before every test case method.) */ @Before public void setUp() { emptyList = new java.util.ArrayList<Object>(); } /** * Tears down the test fixture. * (Called after every test case method.) */ @After public void tearDown() { emptyList = null; } /** * Tests some behavior. * * @exception whatever * @throws what is the difference between these 2 * * @see java.lang.System#getProperty(java.lang.String) * @see SecurityManager#checkPermission */ @Test public void testSomeBehavior() { ///// ///// OLD NUMBERS -- not necessarily correct any longer ///// /////for N=1000 L=40 ///// LZW stream has 19668 simplices, took 0.285000 seconds ///// Witness stream has 12916 simplices, took 10.476000 seconds /////for N=5000 L=40 ///// LZW stream has 39137 simplices, took 0.161000 seconds ///// Witness stream has 28216 simplices, took 11.702000 seconds /////for N=10000 L=40 ///// LZW stream has 53498 simplices, took 0.095000 seconds ///// Witness stream has 40272 simplices, took 3.201000 seconds /////for N=100,000 L=100 ///// LZW stream has 119788 simplices, took 16.521000 seconds /////for N=100,000 L=200 ///// LZW stream has 437243 simplices, took 48.663000 seconds /////for N=100,000 L=400 ///// LZW stream has 1664175 simplices, took 191.450000 seconds /////for N=100,000 L=1000 ///// LZW stream has 9878405 simplices, took 1201.353000 seconds ///// ///// end of OLD NUMBERS ///// // For N=100,000 and L=100 //With D: LZW stream has 119788 simplices, took 15.858000 seconds //No D, i_cache: LZW stream has 119788 simplices, took 29.480000 seconds //No D: LZW stream has 119788 simplices, took 42.405000 seconds //Witness stream has 101736 simplices, took 385.740000 seconds // For N=100,000 and L=1000 //With D: LZW stream has 9878405 simplices, took 1218.642000 seconds //No D: LZW stream has 9878405 simplices, took 4898.634000 seconds //No D, i_cache: LZW stream has 9878405 simplices, took 3323.336000 seconds // got bored waiting for the Witness results. I'll do it overnight. // For N=2,000,000 and L=100 //LZW stream has 49840 simplices, took 416.387000 seconds // For N=2,000,000 and L=100, R_max/4 //LZW stream has 26781 simplices, took 320.568000 seconds /* if (false) { // skip for now int N = 60000; // 00; int L = 100; // 0; PointData data = (PointData) new EuclideanArrayData(N, 4); int[] landmarks = WitnessStream.makeRandomLandmarks(data, L); double R_max = 0.025631; // WitnessStream.estimateRmax(data, landmarks); long lazy_time = System.currentTimeMillis(); LazyWitnessStream lstr = new LazyWitnessStream(.01, 3, R_max, 2, landmarks, data); lazy_time = System.currentTimeMillis() - lazy_time; System.out.printf(" For N=%d and L=%d\nLZW stream has %d simplices, took %f seconds\n", N, L, lstr.size(), ((double)lazy_time)/1000); long w_time = System.currentTimeMillis(); WitnessStream wstr = new WitnessStream(.01, 3, R_max, landmarks, data); w_time = System.currentTimeMillis() - w_time; System.out.printf("Witness stream has %d simplices, took %f seconds\n", wstr.size(), ((double)w_time)/1000); } if (false) { // skip for now int N = 600; // 00; PointData data = (PointData) new EuclideanArrayData(N, 4); long lazy_time = System.currentTimeMillis(); RipsStream rstr = new RipsStream(.01, 2, 20.0, data); lazy_time = System.currentTimeMillis() - lazy_time; System.out.printf(" For N=%d Rips stream has %d simplices, took %f seconds\n", N, rstr.size(), ((double)lazy_time)/1000); } */ } /** * Tests some exceptional behavior. * * @exception IndexOutOfBoundsException * * @see java.lang.System#getProperty(java.lang.String) * @see SecurityManager#checkPermission */ @Test(expected=IndexOutOfBoundsException.class) public void testForException() { Object o = emptyList.get(0); } } ================================================ FILE: src_test/java/edu/stanford/math/plex4/bottleneck/BottleneckDistanceTest.java ================================================ package edu.stanford.math.plex4.bottleneck; import java.util.List; import org.junit.After; import org.junit.Before; import org.junit.Test; import edu.stanford.math.plex4.api.Plex4; import edu.stanford.math.plex4.examples.PointCloudExamples; import edu.stanford.math.plex4.homology.barcodes.BarcodeCollection; import edu.stanford.math.plex4.homology.barcodes.Interval; import edu.stanford.math.plex4.homology.chain_basis.Simplex; import edu.stanford.math.plex4.homology.interfaces.AbstractPersistenceAlgorithm; import edu.stanford.math.plex4.streams.impl.VietorisRipsStream; public class BottleneckDistanceTest { @Before public void setUp() throws Exception { } @After public void tearDown() throws Exception { } //@Test public void test1() { BarcodeCollection<Double> collection1 = new BarcodeCollection<Double>(); collection1.addInterval(0, 1.0, 2.0); BarcodeCollection<Double> collection2 = new BarcodeCollection<Double>(); collection2.addInterval(0, 2.0, 3.0); collection2.addInterval(0, 0.1, 0.2); double distance = BottleneckDistance.computeBottleneckDistance(collection1.getIntervalsAtDimension(0), collection2.getIntervalsAtDimension(0)); System.out.println(distance); } @Test public void test2() { double maxFiltrationValue = 0.2; int n = 100; double[][] points1 = PointCloudExamples.getRandomCirclePoints(n); double[][] points2 = PointCloudExamples.getRandomCirclePoints(n/2); VietorisRipsStream<double[]> vr_complex1 = Plex4.createVietorisRipsStream(points1, 1, maxFiltrationValue, 1000); VietorisRipsStream<double[]> vr_complex2 = Plex4.createVietorisRipsStream(points2, 1, maxFiltrationValue, 1000); AbstractPersistenceAlgorithm<Simplex> peristenceAlgorithm = Plex4.getDefaultSimplicialAlgorithm(1); BarcodeCollection<Double> barcodeCollection1 = peristenceAlgorithm.computeIntervals(vr_complex1); BarcodeCollection<Double> barcodeCollection2 = peristenceAlgorithm.computeIntervals(vr_complex2); List<Interval<Double>> collection1 = barcodeCollection1.getIntervalsAtDimension(0); List<Interval<Double>> collection2 = barcodeCollection2.getIntervalsAtDimension(0); collection1 = BottleneckDistance.truncate(collection1, 0, maxFiltrationValue); collection2 = BottleneckDistance.truncate(collection2, 0, maxFiltrationValue); double bottleneckDistance = BottleneckDistance.computeBottleneckDistance(collection1, collection2); System.out.println(bottleneckDistance); } } ================================================ FILE: src_test/java/edu/stanford/math/plex4/bottleneck/FordFulkersonTest.java ================================================ package edu.stanford.math.plex4.bottleneck; import static org.junit.Assert.assertTrue; import org.junit.After; import org.junit.Before; import org.junit.Test; public class FordFulkersonTest { @Before public void setUp() throws Exception { } @After public void tearDown() throws Exception { } //@Test public void test1() { FlowNetwork network = new FlowNetwork(); network.addEdge(1, 2, 3); network.addEdge(1, 3, 3); network.addEdge(2, 3, 2); network.addEdge(2, 4, 3); network.addEdge(3, 5, 2); network.addEdge(4, 5, 4); network.addEdge(4, 6, 2); network.addEdge(5, 6, 3); int flow = network.maxFlow(1, 6); System.out.println("Computed flow: " + flow); assertTrue("Incorrect flow computed", flow == 5); } @Test public void test2() { FlowNetwork network = new FlowNetwork(); network.addEdge(1, 2, 1000); network.addEdge(1, 3, 1000); network.addEdge(2, 3, 1); network.addEdge(2, 4, 1000); network.addEdge(3, 4, 1000); int flow = network.maxFlow(1, 4); System.out.println("Computed flow: " + flow); assertTrue("Incorrect flow computed", flow == 2000); } } ================================================ FILE: src_test/java/edu/stanford/math/plex4/example_tests/CustomFiltrationTest.java ================================================ package edu.stanford.math.plex4.example_tests; import org.junit.After; import org.junit.Before; import org.junit.Test; import edu.stanford.math.plex4.api.Plex4; import edu.stanford.math.plex4.examples.PointCloudExamples; import edu.stanford.math.plex4.homology.barcodes.BarcodeCollection; import edu.stanford.math.plex4.homology.chain_basis.Simplex; import edu.stanford.math.plex4.homology.interfaces.AbstractPersistenceAlgorithm; import edu.stanford.math.plex4.streams.impl.VietorisRipsStream; public class CustomFiltrationTest { @Before public void setUp() throws Exception { } @After public void tearDown() throws Exception { } @Test public void testExample() { double[][] points = PointCloudExamples.getRandomCirclePoints(100); int maxDimension = 1; double[] filtrationValues = new double[] { 0, 0.01, 0.02, 0.05, 0.1, 0.11, 0.2, 0.3, 0.5 }; VietorisRipsStream<double[]> stream = Plex4.createVietorisRipsStream(points, maxDimension + 1, filtrationValues); AbstractPersistenceAlgorithm<Simplex> algorithm = Plex4.getDefaultSimplicialAlgorithm(maxDimension + 1); BarcodeCollection<Double> intervals = algorithm.computeIntervals(stream); System.out.println(intervals); } } ================================================ FILE: src_test/java/edu/stanford/math/plex4/example_tests/FiltrationTimeTest.java ================================================ package edu.stanford.math.plex4.example_tests; import java.util.Iterator; import org.junit.Test; import edu.stanford.math.plex4.api.Plex4; import edu.stanford.math.plex4.homology.barcodes.BarcodeCollection; import edu.stanford.math.plex4.homology.chain_basis.Simplex; import edu.stanford.math.plex4.homology.interfaces.AbstractPersistenceAlgorithm; import edu.stanford.math.plex4.streams.impl.ExplicitSimplexStream; public class FiltrationTimeTest { @Test public void testExample() { ExplicitSimplexStream stream = Plex4.createExplicitSimplexStream(100); stream.addVertex(1, 17.23); stream.finalizeStream(); Iterator<Simplex> iterator = stream.iterator(); double filtrationValue = 0; while (iterator.hasNext()) { Simplex simplex = iterator.next(); filtrationValue = stream.getFiltrationValue(simplex); } AbstractPersistenceAlgorithm<Simplex> persistence = Plex4.getModularSimplicialAlgorithm(3, 2); BarcodeCollection<Double> intervals = persistence.computeIntervals(stream); System.out.println("FiltrationValue = " + filtrationValue); System.out.println("intervals = " + intervals); } } ================================================ FILE: src_test/java/edu/stanford/math/plex4/example_tests/FormalSumTest.java ================================================ package edu.stanford.math.plex4.example_tests; import java.util.Arrays; import java.util.List; import org.junit.After; import org.junit.Before; import org.junit.Test; import edu.stanford.math.plex4.homology.chain_basis.Simplex; import edu.stanford.math.plex4.utility.FormalSumUtility; import edu.stanford.math.primitivelib.autogen.formal_sum.BooleanPrimitiveFreeModule; import edu.stanford.math.primitivelib.autogen.formal_sum.BooleanSparseFormalSum; import edu.stanford.math.primitivelib.autogen.formal_sum.IntSparseFormalSum; import edu.stanford.math.primitivelib.autogen.formal_sum.ObjectSparseFormalSum; public class FormalSumTest { @Before public void setUp() throws Exception { } @After public void tearDown() throws Exception { } @Test public void test() { IntSparseFormalSum<String> sum = new IntSparseFormalSum<String>(); sum.put(1, "a"); sum.put(3, "b"); sum.put(-4, "z"); System.out.println("IntSparseFormalSum: " + sum); List<?> basisElements = FormalSumUtility.extractActiveBasisElements(sum); System.out.println("basis elements: " + basisElements); List<Integer> coefficients = FormalSumUtility.extractCoefficients(sum); System.out.println("coefficients: " + coefficients); } public static void testBooleanFormalSum() { BooleanPrimitiveFreeModule<String> chainModule = new BooleanPrimitiveFreeModule<String>(); BooleanSparseFormalSum<String> sum = chainModule.createNewSum(); sum.put(true, "a"); sum.put(true, "b"); sum.put(true, "z"); System.out.println("BooleanPrimitiveFreeModule: " + sum); List<?> basisElements = FormalSumUtility.extractActiveBasisElements(sum); System.out.println("basis elements: " + basisElements); } public static void testObjectFormalSum() { ObjectSparseFormalSum<Integer, String> sum = new ObjectSparseFormalSum<Integer, String>(); sum.put(3, "a"); sum.put(9, "b"); sum.put(4, "z"); System.out.println("ObjectSparseFormalSum: " + sum); List<?> basisElements = FormalSumUtility.extractActiveBasisElements(sum); System.out.println("basis elements: " + basisElements); List<?> coefficients = FormalSumUtility.extractCoefficients(sum); System.out.println("coefficients: " + coefficients); } public static void testSimplices() { IntSparseFormalSum<Simplex> sum = new IntSparseFormalSum<Simplex>(); sum.put(2, Simplex.makeSimplex(new int[] { 0, 1, 3 })); sum.put(-5, Simplex.makeSimplex(new int[] { 5, 6 })); System.out.println("IntSparseFormalSum: " + sum); List<Simplex> basisElements = FormalSumUtility.extractActiveBasisElements(sum); System.out.println("basis elements: " + basisElements); int[][] vertices = FormalSumUtility.extractVertices(basisElements); System.out.println("vertices:"); for (int[] v : vertices) { System.out.println(Arrays.toString(v)); } } } ================================================ FILE: src_test/java/edu/stanford/math/plex4/example_tests/GraphTest.java ================================================ package edu.stanford.math.plex4.example_tests; import static org.junit.Assert.assertTrue; import org.junit.After; import org.junit.Before; import org.junit.Test; import edu.stanford.math.plex4.graph.AbstractUndirectedGraph; import edu.stanford.math.plex4.graph.UndirectedListGraph; public class GraphTest { @Before public void setUp() throws Exception { } @After public void tearDown() throws Exception { } @Test public void testGraph() { AbstractUndirectedGraph graph = new UndirectedListGraph(4); graph.addEdge(0, 1); assertTrue("numEdges does not work", graph.getNumEdges() == 1); graph.addEdge(0, 1); assertTrue("numEdges does not work", graph.getNumEdges() == 1); graph.addEdge(1, 2); graph.addEdge(2, 3); graph.addEdge(3, 0); assertTrue("numEdges does not work", graph.getNumEdges() == 4); } @Test public void testCompleteGraph() { int n = 1000; AbstractUndirectedGraph graph = new UndirectedListGraph(n); for (int i = 0; i < n; i++) { for (int j = 0; j < i; j++) { graph.addEdge(i, j); } } assertTrue("numEdges does not work", graph.getNumEdges() == n * (n - 1) / 2); } } ================================================ FILE: src_test/java/edu/stanford/math/plex4/example_tests/HomVerificationTest.java ================================================ package edu.stanford.math.plex4.example_tests; import org.junit.After; import org.junit.Before; import org.junit.Test; import edu.stanford.math.plex4.examples.SimplexStreamExamples; import edu.stanford.math.plex4.homology.HomTester; import edu.stanford.math.plex4.homology.chain_basis.Simplex; import edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream; public class HomVerificationTest { @Before public void setUp() throws Exception { } @After public void tearDown() throws Exception { } @Test public void dumpHomInformation() { AbstractFilteredStream<Simplex> domain = SimplexStreamExamples.getCircle(3); AbstractFilteredStream<Simplex> codomain = SimplexStreamExamples.getCircle(3); HomTester.dumpHomInformation(domain, codomain); } } ================================================ FILE: src_test/java/edu/stanford/math/plex4/example_tests/MultifilteredFlatteningTest.java ================================================ package edu.stanford.math.plex4.example_tests; import org.junit.After; import org.junit.Before; import org.junit.Test; import edu.stanford.math.plex4.api.Plex4; import edu.stanford.math.plex4.examples.PointCloudExamples; import edu.stanford.math.plex4.homology.barcodes.BarcodeCollection; import edu.stanford.math.plex4.homology.chain_basis.Simplex; import edu.stanford.math.plex4.homology.interfaces.AbstractPersistenceAlgorithm; import edu.stanford.math.plex4.metric.impl.EuclideanMetricSpace; import edu.stanford.math.plex4.streams.filter.FilterFunction; import edu.stanford.math.plex4.streams.filter.IntFilterFunction; import edu.stanford.math.plex4.streams.filter.KernelDensityFilterFunction; import edu.stanford.math.plex4.streams.filter.MaxSimplicialFilterFunction; import edu.stanford.math.plex4.streams.impl.VietorisRipsStream; import edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream; import edu.stanford.math.plex4.streams.multi.AbstractMultifilteredStream; import edu.stanford.math.plex4.streams.multi.BifilteredMetricStream; import edu.stanford.math.plex4.streams.multi.IncreasingOrthantFlattener; public class MultifilteredFlatteningTest { @Before public void setUp() throws Exception { } @After public void tearDown() throws Exception { } @Test public void test() { // initialize constants int n = 100; int maxDimension = 1; double maxFiltrationValue = 0.4; double sigma = 0.4; // set direction of sets double[] principalDirection = new double[] { 0.05, 0.01 }; // create a new metric space from random points on a circle double[][] points = PointCloudExamples.getRandomCirclePoints(n); EuclideanMetricSpace metricSpace = new EuclideanMetricSpace(points); // create a vietoris rips complex from the points VietorisRipsStream<double[]> stream = Plex4.createVietorisRipsStream(metricSpace, maxDimension + 1, maxFiltrationValue); stream.finalizeStream(); // initialize the kernel density function IntFilterFunction intFilterFunction = new KernelDensityFilterFunction(metricSpace, sigma); FilterFunction<Simplex> simplexFilterFunction = new MaxSimplicialFilterFunction(intFilterFunction); // create the bifiltered stream AbstractMultifilteredStream<Simplex> multifilteredStream = new BifilteredMetricStream<Simplex>(stream, simplexFilterFunction); // create a "flattened" version of the stream by considering increasing // subsets IncreasingOrthantFlattener<Simplex> flattener = new IncreasingOrthantFlattener<Simplex>(principalDirection); AbstractFilteredStream<Simplex> flattenedStream = flattener.collapse(multifilteredStream); // compute the persistent homology of the flattened complex, and print // the result AbstractPersistenceAlgorithm<Simplex> persistenceAlgorithm = Plex4.getDefaultSimplicialAlgorithm(maxDimension + 1); BarcodeCollection<Double> barcodes = persistenceAlgorithm.computeIntervals(flattenedStream); System.out.println(barcodes.toString()); } } ================================================ FILE: src_test/java/edu/stanford/math/plex4/example_tests/VdsWitnessExample.java ================================================ package edu.stanford.math.plex4.example_tests; import org.junit.After; import org.junit.Before; import org.junit.Test; import edu.stanford.math.plex4.homology.chain_basis.SimplexPair; import edu.stanford.math.plex4.homology.chain_basis.SimplexPairComparator; import edu.stanford.math.plex4.streams.impl.ExplicitSimplexStream; import edu.stanford.math.plex4.streams.impl.ExplicitStream; import edu.stanford.math.plex4.utility.RandomUtility; import edu.stanford.math.primitivelib.algebraic.impl.ModularIntField; import edu.stanford.math.primitivelib.autogen.algebraic.IntAbstractField; public class VdsWitnessExample { IntAbstractField intField = ModularIntField.getInstance(2); @Before public void setUp() { RandomUtility.initializeWithSeed(0); } @After public void tearDown() {} public ExplicitSimplexStream getX() { ExplicitSimplexStream stream = new ExplicitSimplexStream(); stream.addElement(new int[]{0}); stream.addElement(new int[]{2}); stream.addElement(new int[]{4}); stream.addElement(new int[]{0, 2}); stream.addElement(new int[]{0, 4}); stream.addElement(new int[]{2, 4}); return stream; } public ExplicitSimplexStream getY() { ExplicitSimplexStream stream = new ExplicitSimplexStream(); stream.addElement(new int[]{1}); stream.addElement(new int[]{3}); stream.addElement(new int[]{5}); stream.addElement(new int[]{1, 3}); stream.addElement(new int[]{1, 5}); stream.addElement(new int[]{3, 5}); return stream; } public ExplicitStream<SimplexPair> getZ() { ExplicitStream<SimplexPair> subsetStream = new ExplicitStream<SimplexPair>(SimplexPairComparator.getInstance()); subsetStream.addElement(new SimplexPair(new int[]{0}, new int[]{1}), 0); subsetStream.addElement(new SimplexPair(new int[]{0}, new int[]{5}), 0); subsetStream.addElement(new SimplexPair(new int[]{2}, new int[]{1}), 0); subsetStream.addElement(new SimplexPair(new int[]{2}, new int[]{3}), 0); subsetStream.addElement(new SimplexPair(new int[]{4}, new int[]{3}), 0); subsetStream.addElement(new SimplexPair(new int[]{4}, new int[]{5}), 0); subsetStream.addElement(new SimplexPair(new int[]{0}, new int[]{1, 5}), 0); subsetStream.addElement(new SimplexPair(new int[]{0, 2}, new int[]{1}), 0); subsetStream.addElement(new SimplexPair(new int[]{2}, new int[]{1, 3}), 0); subsetStream.addElement(new SimplexPair(new int[]{0, 4}, new int[]{5}), 0); subsetStream.addElement(new SimplexPair(new int[]{4}, new int[]{3, 5}), 0); subsetStream.addElement(new SimplexPair(new int[]{2, 4}, new int[]{3}), 0); return subsetStream; } @Test public void test() { } } ================================================ FILE: src_test/java/edu/stanford/math/plex4/example_tests/VietorisRipsBootstrapTest.java ================================================ package edu.stanford.math.plex4.example_tests; import java.io.IOException; import org.junit.After; import org.junit.Before; import org.junit.Test; import edu.stanford.math.plex4.examples.PointCloudExamples; import edu.stanford.math.plex4.homology.barcodes.BarcodeCollection; import edu.stanford.math.plex4.homology.zigzag.bootstrap.VietorisRipsBootstrapper; import edu.stanford.math.plex4.utility.RandomUtility; public class VietorisRipsBootstrapTest { @Before public void setUp() {} @After public void tearDown() {} @Test public void testCircle() throws IOException { RandomUtility.initializeWithSeed(0); double[][] points = PointCloudExamples.getEquispacedCirclePoints(10000); double maxDistance = 1.3; int maxDimension = 1; int numSelections = 10; int selectionSize = 20; VietorisRipsBootstrapper bootstrapper = new VietorisRipsBootstrapper(points, maxDistance, maxDimension, numSelections, selectionSize); BarcodeCollection<Integer> barcodes = bootstrapper.performBootstrap(); System.out.println("Zigzag barcodes"); System.out.println(barcodes); } } ================================================ FILE: src_test/java/edu/stanford/math/plex4/example_tests/WitnessBootstrapTest.java ================================================ package edu.stanford.math.plex4.example_tests; import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.junit.After; import org.junit.Before; import org.junit.Test; import edu.stanford.math.plex4.examples.PointCloudExamples; import edu.stanford.math.plex4.homology.barcodes.BarcodeCollection; import edu.stanford.math.plex4.homology.zigzag.bootstrap.WitnessBootstrapper; import edu.stanford.math.plex4.metric.impl.EuclideanMetricSpace; import edu.stanford.math.plex4.metric.landmark.ExplicitLandmarkSelector; import edu.stanford.math.plex4.metric.landmark.LandmarkSelector; import edu.stanford.math.plex4.utility.RandomUtility; public class WitnessBootstrapTest { @Before public void setUp() {} @After public void tearDown() {} @Test public void testVdSExample() throws IOException { double[][] points = PointCloudExamples.getEquispacedCirclePoints(6); double maxDistance = 0.0; RandomUtility.initializeWithSeed(0); EuclideanMetricSpace metricSpace = new EuclideanMetricSpace(points); List<LandmarkSelector<double[]>> list = new ArrayList<LandmarkSelector<double[]>>(); list.add(new ExplicitLandmarkSelector<double[]>(metricSpace, new int[]{0, 2, 4})); list.add(new ExplicitLandmarkSelector<double[]>(metricSpace, new int[]{1, 3, 5})); WitnessBootstrapper<double[]> bootstrapper = new WitnessBootstrapper<double[]>(metricSpace, list, 1, maxDistance); BarcodeCollection<Integer> barcodes = bootstrapper.performProjectionBootstrap(); System.out.println("Zigzag barcodes"); System.out.println(barcodes); } @Test public void testSimpleIdentityExample() throws IOException { double[][] points = PointCloudExamples.getEquispacedCirclePoints(6); double maxDistance = 0.0; RandomUtility.initializeWithSeed(0); EuclideanMetricSpace metricSpace = new EuclideanMetricSpace(points); List<LandmarkSelector<double[]>> list = new ArrayList<LandmarkSelector<double[]>>(); list.add(new ExplicitLandmarkSelector<double[]>(metricSpace, new int[]{0, 2, 4})); list.add(new ExplicitLandmarkSelector<double[]>(metricSpace, new int[]{0, 2, 4})); WitnessBootstrapper<double[]> bootstrapper = new WitnessBootstrapper<double[]>(metricSpace, list, 1, maxDistance); BarcodeCollection<Integer> barcodes = bootstrapper.performProjectionBootstrap(); System.out.println("Zigzag barcodes"); System.out.println(barcodes); } //@Test public void testIdentityExample() throws IOException { int n = 10000; int l = 20; int dimension = 2; double[][] points = PointCloudExamples.getRandomSpherePoints(n, dimension); double maxDistance = 0.1; RandomUtility.initializeWithSeed(0); EuclideanMetricSpace metricSpace = new EuclideanMetricSpace(points); int[] indices = RandomUtility.randomSubset(l, n).toArray(); List<LandmarkSelector<double[]>> list = new ArrayList<LandmarkSelector<double[]>>(); list.add(new ExplicitLandmarkSelector<double[]>(metricSpace, indices)); list.add(new ExplicitLandmarkSelector<double[]>(metricSpace, indices)); WitnessBootstrapper<double[]> bootstrapper = new WitnessBootstrapper<double[]>(metricSpace, list, dimension, maxDistance); BarcodeCollection<Integer> barcodes = bootstrapper.performProjectionBootstrap(); System.out.println("Zigzag barcodes"); System.out.println(barcodes); } public static int[] range(int start, int step, int end) { int length = (end - start) / step; int[] result = new int[length]; int value = start; for (int i = 0; i < length; i++) { result[i] = value; value += step; } return result; } } ================================================ FILE: src_test/java/edu/stanford/math/plex4/example_tests/ZigZagTest.java ================================================ package edu.stanford.math.plex4.example_tests; import java.util.ArrayList; import java.util.Collections; import java.util.List; import org.junit.After; import org.junit.Before; import org.junit.Test; import edu.stanford.math.plex4.examples.SimplexStreamExamples; import edu.stanford.math.plex4.homology.barcodes.BarcodeCollection; import edu.stanford.math.plex4.homology.chain_basis.Simplex; import edu.stanford.math.plex4.homology.chain_basis.SimplexComparator; import edu.stanford.math.plex4.homology.zigzag.HomologyBasisTracker; import edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream; import edu.stanford.math.plex4.utility.RandomUtility; import edu.stanford.math.primitivelib.algebraic.impl.ModularIntField; import edu.stanford.math.primitivelib.autogen.algebraic.IntAbstractField; public class ZigZagTest { IntAbstractField intField = ModularIntField.getInstance(2); @Before public void setUp() { RandomUtility.initializeWithSeed(0); } @After public void tearDown() {} /** * This function adds simplices to a simplicial complex, and then removes them in reverse order. */ @Test public void testAddAndRemove() { AbstractFilteredStream<Simplex> stream = SimplexStreamExamples.getZomorodianCarlssonExample(); HomologyBasisTracker<Simplex> zz = new HomologyBasisTracker<Simplex>(intField, SimplexComparator.getInstance()); List<Simplex> elements = new ArrayList<Simplex>(); for (Simplex simplex: stream) { elements.add(simplex); } for (Simplex simplex: elements) { zz.add(simplex); } Collections.reverse(elements); for (Simplex simplex: elements) { zz.remove(simplex); } BarcodeCollection<Integer> collection = zz.getBarcodes(); System.out.println(collection); } } ================================================ FILE: src_test/java/edu/stanford/math/plex4/homology/HomTester.java ================================================ package edu.stanford.math.plex4.homology; import java.util.Iterator; import java.util.List; import org.apache.commons.math.fraction.Fraction; import edu.stanford.math.plex4.api.Plex4; import edu.stanford.math.plex4.autogen.homology.ObjectAbsoluteHomology; import edu.stanford.math.plex4.autogen.homology.ObjectPersistenceAlgorithm; import edu.stanford.math.plex4.homology.barcodes.AnnotatedBarcodeCollection; import edu.stanford.math.plex4.homology.barcodes.Interval; import edu.stanford.math.plex4.homology.chain_basis.Simplex; import edu.stanford.math.plex4.streams.derived.HomStream; import edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream; import edu.stanford.math.primitivelib.autogen.formal_sum.IntSparseFormalSum; import edu.stanford.math.primitivelib.autogen.formal_sum.ObjectAlgebraicFreeModule; import edu.stanford.math.primitivelib.autogen.formal_sum.ObjectSparseFormalSum; import edu.stanford.math.primitivelib.autogen.pair.ObjectObjectPair; public class HomTester { public static void dumpHomInformation(AbstractFilteredStream<Simplex> domainStream, AbstractFilteredStream<Simplex> codomainStream) { HomStream<Simplex, Simplex> homStream = new HomStream<Simplex, Simplex>(domainStream, codomainStream); List<IntSparseFormalSum<ObjectObjectPair<Simplex, Simplex>>> homotopies = homStream.getHomotopies(); System.out.println("Homotopies:"); for (IntSparseFormalSum<ObjectObjectPair<Simplex, Simplex>> homotopy: homotopies) { System.out.println("$$" + homotopy + "$$"); } ObjectPersistenceAlgorithm<Fraction, ObjectObjectPair<Simplex, Simplex>> persistence = Plex4.getRationalHomAlgorithm(); ObjectAlgebraicFreeModule<Fraction, ObjectObjectPair<Simplex, Simplex>> chain_module = persistence.getChainModule(); AnnotatedBarcodeCollection<Integer, ObjectSparseFormalSum<Fraction, ObjectObjectPair<Simplex, Simplex>>> barcode_collection = persistence.computeAnnotatedIndexIntervals(homStream); List<ObjectObjectPair<Interval<Integer>, ObjectSparseFormalSum<Fraction, ObjectObjectPair<Simplex, Simplex>>>> intervals = barcode_collection.getIntervalGeneratorPairsAtDimension(0); ObjectSparseFormalSum<Fraction, ObjectObjectPair<Simplex, Simplex>> cycle_sum = chain_module.createNewSum(); Iterator<ObjectObjectPair<Interval<Integer>, ObjectSparseFormalSum<Fraction, ObjectObjectPair<Simplex, Simplex>>>> iterator = intervals.iterator(); ObjectObjectPair<Interval<Integer>, ObjectSparseFormalSum<Fraction, ObjectObjectPair<Simplex, Simplex>>> interval_generator_pair; System.out.println("Generating Cycles:"); while (iterator.hasNext()) { interval_generator_pair = iterator.next(); Interval<Integer> interval = interval_generator_pair.getFirst(); ObjectSparseFormalSum<Fraction, ObjectObjectPair<Simplex, Simplex>> generator = interval_generator_pair.getSecond(); if (interval.isInfinite()) { chain_module.accumulate(cycle_sum, generator); System.out.println("$$" + generator + "$$"); } } System.out.println("Cycle Sum:"); System.out.println("$$" + cycle_sum + "$$"); ObjectAbsoluteHomology<Fraction, Simplex> basic_persistence = Plex4.getRationalSimplicialAlgorithm(2); System.out.println(basic_persistence.computeAnnotatedIndexIntervals(domainStream)); System.out.println(basic_persistence.computeAnnotatedIndexIntervals(codomainStream)); } } ================================================ FILE: src_test/java/edu/stanford/math/plex4/homology/PersistenceAlgorithmTester.java ================================================ package edu.stanford.math.plex4.homology; import static org.junit.Assert.assertTrue; import java.util.ArrayList; import java.util.List; import edu.stanford.math.plex4.homology.barcodes.AnnotatedBarcodeCollection; import edu.stanford.math.plex4.homology.barcodes.BarcodeCollection; import edu.stanford.math.plex4.homology.interfaces.AbstractPersistenceAlgorithm; import edu.stanford.math.plex4.homology.interfaces.AbstractPersistenceBasisAlgorithm; import edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream; import edu.stanford.math.plex4.test_utility.Timing; /** * This class contains functions that verify the equality of different persistence algorithms. * * @author Andrew Tausz * */ public class PersistenceAlgorithmTester { /** * This function verifies that all of the persistence algorithms in the supplied collection produce equal values when * applied to the given stream. * * @param <T> the basis element type * @param algorithms the set of algorithms to compare * @param stream the stream to compare on */ public static <T> void verifyEquality(List<AbstractPersistenceAlgorithm<T>> algorithms, AbstractFilteredStream<T> stream) { System.out.println("Stream size: " + stream.getSize()); List<BarcodeCollection<Integer>> barcodes = new ArrayList<BarcodeCollection<Integer>>(); for (AbstractPersistenceAlgorithm<T> algorithm: algorithms) { Timing.restart(); barcodes.add(algorithm.computeIndexIntervals(stream)); //System.out.println(barcodes.get(barcodes.size() - 1)); Timing.stopAndDisplay(algorithm.toString()); } int n = barcodes.size(); for (int i = 0; i < n; i++) { for (int j = i + 1; j < n; j++) { if (!barcodes.get(i).equals(barcodes.get(j))) { System.out.println(algorithms.get(i) + " != " + algorithms.get(j)); System.out.println(algorithms.get(i)); System.out.println(barcodes.get(i)); System.out.println(algorithms.get(j)); System.out.println(barcodes.get(j)); } assertTrue("Computed barcodes are not equal for algorithms " + algorithms.get(i) + " and " + algorithms.get(j), barcodes.get(i).equals(barcodes.get(j))); } } } /** * This function verifies that all of the persistence basis algorithms in the collection produce equal results. * * @param <T> the basis element type * @param <B> the type of the interval generators * @param algorithms the set of algorithms to compare * @param stream the stream to compare on */ public static <T, B> void verifyEqualityWithGenerators(List<AbstractPersistenceBasisAlgorithm<T, B>> algorithms, AbstractFilteredStream<T> stream) { System.out.println("Stream size: " + stream.getSize()); List<AnnotatedBarcodeCollection<Integer, B>> barcodes = new ArrayList<AnnotatedBarcodeCollection<Integer, B>>(); for (AbstractPersistenceBasisAlgorithm<T, B> algorithm: algorithms) { Timing.restart(); barcodes.add(algorithm.computeAnnotatedIndexIntervals(stream)); Timing.stopAndDisplay(algorithm.toString()); } int n = barcodes.size(); for (int i = 0; i < n; i++) { for (int j = i + 1; j < n; j++) { if (!barcodes.get(i).equals(barcodes.get(j))) { System.out.println(algorithms.get(i) + " != " + algorithms.get(j)); System.out.println(algorithms.get(i)); System.out.println(barcodes.get(i)); System.out.println(algorithms.get(j)); System.out.println(barcodes.get(j)); } assertTrue("Computed barcodes are not equal for algorithms " + algorithms.get(i) + " and " + algorithms.get(j), barcodes.get(i).equals(barcodes.get(j))); } } } /** * This function verifies that all of the given persistence algorithms in the supplied collection produce * equal values when applied to each element in the given set of streams. * * @param <T> the basis element type * @param algorithms the set of algorithms to compare * @param streams the set of streams to use as comparisons */ public static <T> void verifyEquality(List<AbstractPersistenceAlgorithm<T>> algorithms, Iterable<AbstractFilteredStream<T>> streams) { for (AbstractFilteredStream<T> stream: streams) { verifyEquality(algorithms, stream); } } /** * This function verifies that all of the given persistence algorithms in the supplied collection produce * equal values when applied to each element in the given set of streams. * * @param <T> the basis element type * @param <B> the type of the interval generators * @param algorithms the set of algorithms to compare * @param streams the set of streams to use as comparisons */ public static <T, B> void verifyEqualityWithGenerators(List<AbstractPersistenceBasisAlgorithm<T, B>> algorithms, Iterable<AbstractFilteredStream<T>> streams) { for (AbstractFilteredStream<T> stream: streams) { verifyEqualityWithGenerators(algorithms, stream); } } } ================================================ FILE: src_test/java/edu/stanford/math/plex4/homology/StreamTester.java ================================================ package edu.stanford.math.plex4.homology; import static org.junit.Assert.assertTrue; import edu.stanford.math.plex4.api.FilteredStreamInterface; import edu.stanford.math.plex4.homology.chain_basis.Simplex; import edu.stanford.math.plex4.metric.landmark.LandmarkSelector; import edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream; import edu.stanford.math.plex4.test_utility.Timing; /** * This class contains functions for comparing streams (filtered chain * complexes) for equality. * * @author Andrew Tausz * */ public class StreamTester { /** * This function verifies that the Vietoris-Rips streams constructed by plex * 3 and plex 4 are equal. * * @param points * the set of points in Euclidean space * @param maxDimension * the maximum dimension of the complex * @param maxFiltrationValue * the maximum filtration value (maximum distance allowable for * an edge) * @param numDivisions * the number of divisions of the interval [0, * maxFiltrationValue] */ public static void compareVietorisRipsStreams(double[][] points, int maxDimension, double maxFiltrationValue, int numDivisions) { Timing.restart(); AbstractFilteredStream<Simplex> plex3Stream = FilteredStreamInterface.createPlex3VietorisRipsStream(points, maxDimension, maxFiltrationValue, numDivisions); Timing.stopAndDisplay("Plex 3 Vietoris-Rips Stream"); Timing.restart(); AbstractFilteredStream<Simplex> plex4Stream = FilteredStreamInterface.createPlex4VietorisRipsStream(points, maxDimension, maxFiltrationValue, numDivisions); Timing.stopAndDisplay("Plex 4 Vietoris-Rips Stream"); verifyEqual(plex3Stream, plex4Stream); } /** * This function verifies that the Lazy-Witness streams constructed by plex * 3 and plex 4 are equal. * * @param selector * the selection of landmark points within a metric space * @param maxDimension * the maximum dimension of the complex * @param maxFiltrationValue * the maximum filtration value (maximum distance allowable for * an edge) * @param numDivisions * the number of divisions of the interval [0, * maxFiltrationValue] */ public static void compareLazyWitnessStreams(LandmarkSelector<double[]> selector, int maxDimension, double maxFiltrationValue, int numDivisions) { Timing.restart(); AbstractFilteredStream<Simplex> plex3Stream = FilteredStreamInterface.createPlex3LazyWitnessStream(selector, maxDimension, maxFiltrationValue, numDivisions); Timing.stopAndDisplay("Plex 3 Lazy-Witness Stream"); Timing.restart(); AbstractFilteredStream<Simplex> plex4Stream = FilteredStreamInterface.createPlex4LazyWitnessStream(selector, maxDimension, maxFiltrationValue, numDivisions); Timing.stopAndDisplay("Plex 4 Lazy-Witness Stream"); verifyEqual(plex3Stream, plex4Stream); } /** * This function verifies that the Witness streams constructed by plex 3 and * plex 4 are equal. * * @param selector * the selection of landmark points within a metric space * @param maxDimension * the maximum dimension of the complex * @param maxFiltrationValue * the maximum filtration value (maximum distance allowable for * an edge) * @param numDivisions * the number of divisions of the interval [0, * maxFiltrationValue] */ public static void compareWitnessStreams(LandmarkSelector<double[]> selector, int maxDimension, double maxFiltrationValue, int numDivisions) { Timing.restart(); AbstractFilteredStream<Simplex> plex3Stream = FilteredStreamInterface .createPlex3WitnessStream(selector, maxDimension, maxFiltrationValue, numDivisions); Timing.stopAndDisplay("Plex 3 Witness Stream"); Timing.restart(); AbstractFilteredStream<Simplex> plex4Stream = FilteredStreamInterface .createPlex4WitnessStream(selector, maxDimension, maxFiltrationValue, numDivisions); Timing.stopAndDisplay("Plex 4 Witness Stream"); verifyEqual(plex3Stream, plex4Stream); } /** * This function compares two AbstractFilteredStream objects to make sure * that they contain the same set of objects with the same filtration * indices. * * @param <T> * the underlying basis type for the filtered chain complexes * @param stream1 * the first stream * @param stream2 * the second stream */ public static <T> void verifyEqual(AbstractFilteredStream<T> stream1, AbstractFilteredStream<T> stream2) { assertTrue("Streams have different sizes.", stream1.getSize() == stream2.getSize()); for (T S : stream1) { assertTrue("Streams have different simplices.", stream2.containsElement(S)); assertTrue("Streams have different filtration indices.", stream1.getFiltrationIndex(S) == stream2.getFiltrationIndex(S)); } } } ================================================ FILE: src_test/java/edu/stanford/math/plex4/metric/SearchableMetricSpaceTester.java ================================================ package edu.stanford.math.plex4.metric; import static org.junit.Assert.assertTrue; import edu.stanford.math.plex4.metric.interfaces.AbstractSearchableMetricSpace; import gnu.trove.TIntHashSet; import gnu.trove.TIntIterator; /** * This class contains functions for testing the validity of the * subclasses of AbstractSearchableMetricSpace. It verifies that the * claimed nearest points are indeed the nearest, etc. * * @author Andrew Tausz */ public class SearchableMetricSpaceTester { private static final int K_MAX = 4; /** * This function verifies that the claimed nearest point to the query point is indeed the nearest point. * * @param <M> * @param metricSpace the metric space to test * @param queryPoint the query point */ public static <M> void verifyNearestPoint(AbstractSearchableMetricSpace<M> metricSpace, M queryPoint) { int nearestPointIndex = metricSpace.getNearestPointIndex(queryPoint); M nearestPoint = metricSpace.getPoint(nearestPointIndex); double nearestDistance = metricSpace.distance(queryPoint, nearestPoint); // make sure that all other points are not closer than the nearest point for (int j = 0; j < metricSpace.size(); j++) { if (queryPoint.equals(metricSpace.getPoint(j))) { continue; } double distance = metricSpace.distance(queryPoint, metricSpace.getPoint(j)); assertTrue("Claimed nearest point is not the nearest.", nearestDistance <= distance); } } /** * This function verifies that the k-nearest neighborhood returned is indeed the correct neighborhood. * * @param <M> * @param metricSpace the metric space to test * @param queryPoint the query point */ public static <M> void verifyKNearestPoint(AbstractSearchableMetricSpace<M> metricSpace, M queryPoint) { int k = Math.min(metricSpace.size(), K_MAX); TIntHashSet kNearestNeighbors = metricSpace.getKNearestNeighbors(queryPoint, k); // make sure that k points were returned assertTrue("k-Nearest Neighborhood does not contain k points.", kNearestNeighbors.size() == k); // make sure that non k-nearest points are not closer than k-nearest points double max_k_nn_distance = 0; for (TIntIterator iterator = kNearestNeighbors.iterator(); iterator.hasNext(); ) { int index = iterator.next(); max_k_nn_distance = Math.max(max_k_nn_distance, metricSpace.distance(queryPoint, metricSpace.getPoint(index))); } for (int j = 0; j < metricSpace.size(); j++) { if (!kNearestNeighbors.contains(j)) { // make sure that distance is greater than or equal to max_k_nn_distance double distance = metricSpace.distance(queryPoint, metricSpace.getPoint(j)); if (max_k_nn_distance > distance) { System.out.println("stop"); } assertTrue("k-Nearest Neighborhood does not contain near point.", max_k_nn_distance <= distance); } } } /** * This function performs the verifyNearestPoint test using each point in the metric space as a query point. * * @param <M> * @param metricSpace the metric space to test */ public static <M> void verifyNearestPoints(AbstractSearchableMetricSpace<M> metricSpace) { for (int i = 0; i < metricSpace.size(); i++) { M queryPoint = metricSpace.getPoint(i); verifyNearestPoint(metricSpace, queryPoint); } } /** * This function performs the verifyKNearestPoint test using each point in the metric space as a query point. * * @param <M> * @param metricSpace the metric space to test */ public static <M> void verifyKNearestPoints(AbstractSearchableMetricSpace<M> metricSpace) { for (int i = 0; i < metricSpace.size(); i++) { M queryPoint = metricSpace.getPoint(i); verifyKNearestPoint(metricSpace, queryPoint); } } /** * This function performs the nearest point verification for each point in the given array. * * @param <M> * @param metricSpace the metric space to test * @param queryPoints the set of query points */ public static <M> void verifyNearestPoints(AbstractSearchableMetricSpace<M> metricSpace, M[] queryPoints) { for (M queryPoint: queryPoints) { verifyNearestPoint(metricSpace, queryPoint); } } /** * This function performs the k-nearest point verification for each point in the given array. * * @param <M> * @param metricSpace the metric space to test * @param queryPoints the set of query points */ public static <M> void verifyKNearestPoints(AbstractSearchableMetricSpace<M> metricSpace, M[] queryPoints) { for (M queryPoint: queryPoints) { verifyKNearestPoint(metricSpace, queryPoint); } } /** * This function verifies that the epsilon neighborhood around each point in a searchable * finite metric space is indeed an epsilon neighborhood. * * @param <M> * @param metricSpace * @param epsilon */ public static <M> void verifyNeighborhoods(AbstractSearchableMetricSpace<M> metricSpace, double epsilon) { for (int i = 0; i < metricSpace.size(); i++) { M queryPoint = metricSpace.getPoint(i); TIntHashSet neighborhood = metricSpace.getOpenNeighborhood(queryPoint, epsilon); // make sure that the points in the neighborhood satisfy d(i, j) < epsilon for (TIntIterator iterator = neighborhood.iterator(); iterator.hasNext(); ) { int j = iterator.next(); double distance = metricSpace.distance(i, j); assertTrue("Epsilon neighborhood of point contains point further than epsilon away.", distance < epsilon); } // make sure that points outside of the neighborhood satisfy d(i, j) >= epsilon for (int j = 0; j < metricSpace.size(); j++) { if (neighborhood.contains(j) || i == j) { continue; } double distance = metricSpace.distance(i, j); assertTrue("Epsilon neighborhood of point does not contain valid point.", distance >= epsilon); } } } } ================================================ FILE: src_test/java/edu/stanford/math/plex4/test_utility/Timing.java ================================================ package edu.stanford.math.plex4.test_utility; import cern.colt.Timer; /** * This class contains static methods for measuring time intervals. It is exists * for convenience purposes so that one doesn't have to instantiate an object whenever * one wishes to measure a time interval. * * @author Andrew Tausz * */ public class Timing { private static Timer timer; private static void initialize() { timer = new Timer(); } public static void restart() { if (timer == null) { initialize(); } timer.reset(); timer.start(); } public static void stop() { if (timer == null) { initialize(); } timer.stop(); } public static void reset() { if (timer == null) { initialize(); } timer.reset(); } public static float seconds() { if (timer == null) { initialize(); } return timer.seconds(); } public static void stopAndDisplay() { if (timer == null) { initialize(); } timer.stop(); System.out.println("Elapsed time (s): " + timer.seconds()); timer.reset(); } public static void stopAndDisplay(String label) { if (timer == null) { initialize(); } timer.stop(); System.out.println("Elapsed time (s) for " + label + ": " + timer.seconds()); timer.reset(); } } ================================================ FILE: src_test/java/edu/stanford/math/plex4/unit_tests/DeSilvaMorozovJohanssonTest.java ================================================ package edu.stanford.math.plex4.unit_tests; import static org.junit.Assert.assertTrue; import org.junit.After; import org.junit.Before; import org.junit.Test; import edu.stanford.math.plex4.autogen.homology.ObjectAbsoluteHomology; import edu.stanford.math.plex4.autogen.homology.ObjectRelativeHomology; import edu.stanford.math.plex4.examples.DeSilvaMorozovJohanssonExample; import edu.stanford.math.plex4.homology.barcodes.AnnotatedBarcodeCollection; import edu.stanford.math.plex4.homology.chain_basis.Cell; import edu.stanford.math.plex4.homology.chain_basis.CellComparator; import edu.stanford.math.plex4.homology.interfaces.AbstractPersistenceBasisAlgorithm; import edu.stanford.math.primitivelib.algebraic.impl.ModularIntegerField; import edu.stanford.math.primitivelib.autogen.algebraic.ObjectAbstractField; import edu.stanford.math.primitivelib.autogen.formal_sum.ObjectSparseFormalSum; public class DeSilvaMorozovJohanssonTest { private final ObjectAbstractField<Integer> field = ModularIntegerField.getInstance(13); private final DeSilvaMorozovJohanssonExample<Integer> example = new DeSilvaMorozovJohanssonExample<Integer>(field); @Before public void setUp() throws Exception { } @After public void tearDown() throws Exception { } @Test public void testAbsoluteHomology() { AbstractPersistenceBasisAlgorithm<Cell, ObjectSparseFormalSum<Integer, Cell>> persistenceAlgorithm = new ObjectAbsoluteHomology<Integer, Cell>(field, CellComparator.getInstance(), 0, 3); AnnotatedBarcodeCollection<Integer, ObjectSparseFormalSum<Integer, Cell>> collection = persistenceAlgorithm.computeAnnotatedIndexIntervals(example.getCellComplex()); assertTrue(collection.equals(example.getAbsoluteHomologyBarcodes())); } @Test public void testRelativeHomology() { AbstractPersistenceBasisAlgorithm<Cell, ObjectSparseFormalSum<Integer, Cell>> persistenceAlgorithm = new ObjectRelativeHomology<Integer, Cell>(field, CellComparator.getInstance(), 0, 3); AnnotatedBarcodeCollection<Integer, ObjectSparseFormalSum<Integer, Cell>> collection = persistenceAlgorithm.computeAnnotatedIndexIntervals(example.getCellComplex()); assertTrue(collection.equals(example.getRelativeHomologyBarcodes())); } } ================================================ FILE: src_test/java/edu/stanford/math/plex4/unit_tests/ExperimentalEqualityTest.java ================================================ package edu.stanford.math.plex4.unit_tests; import java.util.ArrayList; import java.util.List; import org.junit.After; import org.junit.Before; import org.junit.Test; import edu.stanford.math.plex4.api.FilteredStreamInterface; import edu.stanford.math.plex4.api.PersistenceAlgorithmInterface; import edu.stanford.math.plex4.examples.PointCloudExamples; import edu.stanford.math.plex4.examples.SimplexStreamExamples; import edu.stanford.math.plex4.homology.PersistenceAlgorithmTester; import edu.stanford.math.plex4.homology.chain_basis.Simplex; import edu.stanford.math.plex4.homology.chain_basis.SimplexComparator; import edu.stanford.math.plex4.homology.interfaces.AbstractPersistenceAlgorithm; import edu.stanford.math.plex4.homology.zigzag.ZigZagHomology; import edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream; import edu.stanford.math.plex4.utility.RandomUtility; import edu.stanford.math.primitivelib.algebraic.impl.ModularIntField; import edu.stanford.math.primitivelib.autogen.algebraic.IntAbstractField; public class ExperimentalEqualityTest { IntAbstractField intField = ModularIntField.getInstance(11); @Before public void setUp() { RandomUtility.initializeWithSeed(0); } @After public void tearDown() {} public List<AbstractPersistenceAlgorithm<Simplex>> getAlgorithms(int maxDimension) { List<AbstractPersistenceAlgorithm<Simplex>> algorithms = new ArrayList<AbstractPersistenceAlgorithm<Simplex>>(); algorithms.add(PersistenceAlgorithmInterface.getPlex3SimplicialAbsoluteHomology(maxDimension)); algorithms.add(new ZigZagHomology<Simplex>(intField, SimplexComparator.getInstance(), 0, maxDimension - 1)); return algorithms; } /** * This function tests various small examples of filtered simplicial complexes. */ @Test public void testSmallSimplexStreams() { int maxDimension = 4; List<AbstractFilteredStream<Simplex>> streams = new ArrayList<AbstractFilteredStream<Simplex>>(); streams.add(SimplexStreamExamples.getFilteredTriangle()); streams.add(SimplexStreamExamples.getZomorodianCarlssonExample()); streams.add(SimplexStreamExamples.getTriangle()); streams.add(SimplexStreamExamples.getTetrahedron()); streams.add(SimplexStreamExamples.getTorus()); streams.add(SimplexStreamExamples.getCircle(7)); streams.add(SimplexStreamExamples.getOctahedron()); streams.add(SimplexStreamExamples.getIcosahedron()); streams.add(SimplexStreamExamples.getAnnulus(4, 10)); List<AbstractPersistenceAlgorithm<Simplex>> algorithms = getAlgorithms(maxDimension); PersistenceAlgorithmTester.verifyEquality(algorithms, streams); } /** * This function tests the algorithms on Vietoris-Rips complexes generated from point clouds. */ @Test public void testVietorisRipsPointClouds() { final int n = 120; final int maxDimension = 4; final double maxFiltrationValue = 0.5; final int numDivisions = 10; List<double[][]> pointClouds = new ArrayList<double[][]>(); pointClouds.add(PointCloudExamples.getEquispacedCirclePoints(n)); pointClouds.add(PointCloudExamples.getGaussianPoints(n, maxDimension)); pointClouds.add(PointCloudExamples.getRandomFigure8Points(n)); pointClouds.add(PointCloudExamples.getRandomSpherePoints(maxDimension * n, maxDimension - 1)); List<AbstractFilteredStream<Simplex>> streams = new ArrayList<AbstractFilteredStream<Simplex>>(); for (double[][] pointCloud: pointClouds) { streams.add(FilteredStreamInterface.createPlex4VietorisRipsStream(pointCloud, maxDimension + 1, maxFiltrationValue, numDivisions)); } List<AbstractPersistenceAlgorithm<Simplex>> algorithms = getAlgorithms(maxDimension); PersistenceAlgorithmTester.verifyEquality(algorithms, streams); } } ================================================ FILE: src_test/java/edu/stanford/math/plex4/unit_tests/PersistenceAlgorithmEqualityTest.java ================================================ package edu.stanford.math.plex4.unit_tests; import java.util.ArrayList; import java.util.List; import org.junit.After; import org.junit.Before; import org.junit.Test; import edu.stanford.math.plex4.api.FilteredStreamInterface; import edu.stanford.math.plex4.api.PersistenceAlgorithmInterface; import edu.stanford.math.plex4.examples.CellStreamExamples; import edu.stanford.math.plex4.examples.PointCloudExamples; import edu.stanford.math.plex4.examples.SimplexStreamExamples; import edu.stanford.math.plex4.homology.PersistenceAlgorithmTester; import edu.stanford.math.plex4.homology.chain_basis.Cell; import edu.stanford.math.plex4.homology.chain_basis.Simplex; import edu.stanford.math.plex4.homology.interfaces.AbstractPersistenceAlgorithm; import edu.stanford.math.plex4.metric.impl.EuclideanMetricSpace; import edu.stanford.math.plex4.metric.landmark.LandmarkSelector; import edu.stanford.math.plex4.metric.landmark.RandomLandmarkSelector; import edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream; import edu.stanford.math.plex4.utility.RandomUtility; /** * This class contains test for verifying that the different persistence algorithms produce the * same results. * * @author Andrew Tausz * */ public class PersistenceAlgorithmEqualityTest { @Before public void setUp() { RandomUtility.initializeWithSeed(0); } @After public void tearDown() {} /** * This function tests various small examples of filtered simplicial complexes. */ @Test public void testSmallSimplexStreams() { int maxDimension = 4; List<AbstractFilteredStream<Simplex>> streams = new ArrayList<AbstractFilteredStream<Simplex>>(); streams.add(SimplexStreamExamples.getZomorodianCarlssonExample()); streams.add(SimplexStreamExamples.getFilteredTriangle()); streams.add(SimplexStreamExamples.getTriangle()); streams.add(SimplexStreamExamples.getTetrahedron()); streams.add(SimplexStreamExamples.getTorus()); streams.add(SimplexStreamExamples.getCircle(7)); streams.add(SimplexStreamExamples.getOctahedron()); streams.add(SimplexStreamExamples.getIcosahedron()); streams.add(SimplexStreamExamples.getAnnulus(4, 10)); List<AbstractPersistenceAlgorithm<Simplex>> algorithms = PersistenceAlgorithmInterface.getAllSimplicialAbsoluteHomologyAlgorithms(maxDimension); PersistenceAlgorithmTester.verifyEquality(algorithms, streams); } /** * This function tests various small examples of filtered cell complexes. Note that we only test * the orientable examples, due to differing results due to torsion. */ @Test public void testSmallCellStreams() { int maxDimension = 4; List<AbstractFilteredStream<Cell>> streams = new ArrayList<AbstractFilteredStream<Cell>>(); streams.add(CellStreamExamples.getMorozovJohanssonExample()); streams.add(CellStreamExamples.getCellularSphere(maxDimension - 1)); streams.add(CellStreamExamples.getCellularTorus()); List<AbstractPersistenceAlgorithm<Cell>> algorithms = PersistenceAlgorithmInterface.getAllCellularAbsoluteHomologyAlgorithms(maxDimension); PersistenceAlgorithmTester.verifyEquality(algorithms, streams); } /** * This function tests the algorithms on Vietoris-Rips complexes generated from point clouds. */ @Test public void testVietorisRipsPointClouds() { final int n = 120; final int maxDimension = 5; final double maxFiltrationValue = 0.5; final int numDivisions = 10; List<double[][]> pointClouds = new ArrayList<double[][]>(); pointClouds.add(PointCloudExamples.getEquispacedCirclePoints(n)); pointClouds.add(PointCloudExamples.getGaussianPoints(n, maxDimension)); pointClouds.add(PointCloudExamples.getRandomFigure8Points(n)); pointClouds.add(PointCloudExamples.getRandomSpherePoints(maxDimension * n, maxDimension - 1)); List<AbstractFilteredStream<Simplex>> streams = new ArrayList<AbstractFilteredStream<Simplex>>(); for (double[][] pointCloud: pointClouds) { streams.add(FilteredStreamInterface.createPlex4VietorisRipsStream(pointCloud, maxDimension + 1, maxFiltrationValue, numDivisions)); } List<AbstractPersistenceAlgorithm<Simplex>> algorithms = PersistenceAlgorithmInterface.getAllSimplicialAbsoluteHomologyAlgorithms(maxDimension - 1); PersistenceAlgorithmTester.verifyEquality(algorithms, streams); } /** * This function tests the algorithms on Lazy-Witness complexes generated from point clouds. */ @Test public void testLazyWitnessPointClouds() { final int n = 500; final int l = 50; final int maxDimension = 3; final double maxFiltrationValue = 0.3; final int numDivisions = 10; List<double[][]> pointClouds = new ArrayList<double[][]>(); pointClouds.add(PointCloudExamples.getEquispacedCirclePoints(n)); pointClouds.add(PointCloudExamples.getGaussianPoints(n, maxDimension)); pointClouds.add(PointCloudExamples.getRandomFigure8Points(n)); pointClouds.add(PointCloudExamples.getRandomSpherePoints(maxDimension * n, maxDimension - 1)); List<AbstractFilteredStream<Simplex>> streams = new ArrayList<AbstractFilteredStream<Simplex>>(); for (double[][] pointCloud: pointClouds) { LandmarkSelector<double[]> landmarkSet = new RandomLandmarkSelector<double[]>(new EuclideanMetricSpace(pointCloud), l); streams.add(FilteredStreamInterface.createPlex4LazyWitnessStream(landmarkSet, maxDimension, maxFiltrationValue, numDivisions)); } List<AbstractPersistenceAlgorithm<Simplex>> algorithms = PersistenceAlgorithmInterface.getAllSimplicialAbsoluteHomologyAlgorithms(maxDimension - 1); PersistenceAlgorithmTester.verifyEquality(algorithms, streams); } /** * This function tests a complex that contains approximately 500,000 simplices. It compares the * efficiency of the different algorithms on a large complex. */ @Test public void testLargeFigure8Complex() { final int n = 220; final int maxDimension = 4; final double maxFiltrationValue = 0.5; final int numDivisions = 10; double[][] points = PointCloudExamples.getRandomFigure8Points(n); AbstractFilteredStream<Simplex> stream = FilteredStreamInterface.createPlex4VietorisRipsStream(points, maxDimension + 1, maxFiltrationValue, numDivisions); List<AbstractPersistenceAlgorithm<Simplex>> algorithms = PersistenceAlgorithmInterface.getAllSimplicialAbsoluteHomologyAlgorithms(maxDimension - 1); PersistenceAlgorithmTester.verifyEquality(algorithms, stream); } /** * This function compares the algorithms on a Vietoris-Rips stream generated from sampling a 6-dimensional sphere. */ @Test public void testHighDimensionalSphere() { final int n = 48; final int sphereDimension = 6; final double maxFiltrationValue = 1.5; final int numDivisions = 10; double[][] points = PointCloudExamples.getRandomSpherePoints(n, sphereDimension); AbstractFilteredStream<Simplex> stream = FilteredStreamInterface.createPlex4VietorisRipsStream(points, sphereDimension + 1, maxFiltrationValue, numDivisions); List<AbstractPersistenceAlgorithm<Simplex>> algorithms = PersistenceAlgorithmInterface.getAllSimplicialAbsoluteHomologyAlgorithms(sphereDimension); PersistenceAlgorithmTester.verifyEquality(algorithms, stream); } } ================================================ FILE: src_test/java/edu/stanford/math/plex4/unit_tests/SearchableMetricSpaceTest.java ================================================ package edu.stanford.math.plex4.unit_tests; import java.util.ArrayList; import java.util.List; import org.junit.After; import org.junit.Before; import org.junit.Test; import edu.stanford.math.plex4.examples.PointCloudExamples; import edu.stanford.math.plex4.kd.KDEuclideanMetricSpace; import edu.stanford.math.plex4.metric.SearchableMetricSpaceTester; import edu.stanford.math.plex4.metric.impl.EuclideanMetricSpace; import edu.stanford.math.plex4.metric.interfaces.AbstractSearchableMetricSpace; import edu.stanford.math.plex4.metric.utility.MetricUtility; import edu.stanford.math.plex4.test_utility.Timing; /** * This class contains tests for verifying the functionality of the * metric space searching classes. * * @author Andrew Tausz * */ public class SearchableMetricSpaceTest { // 2-D point cloud examples private List<double[][]> pointCloudExamples = new ArrayList<double[][]>(); // 2-D query point set private double[][] queryPointSet = null; private int d = 3; @Before public void setUp() { int n = 20000; pointCloudExamples.add(PointCloudExamples.getRandomSpherePoints(n, d - 1)); queryPointSet = PointCloudExamples.getGaussianPoints(n, d); } @After public void tearDown() { pointCloudExamples = null; queryPointSet = null; } @Test public void testNonKDMetricSpace2D() { Timing.restart(); for (double[][] pointCloud: this.pointCloudExamples) { AbstractSearchableMetricSpace<double[]> metricSpace = new EuclideanMetricSpace(pointCloud); double epsilon = MetricUtility.estimateDiameter(metricSpace) / 5.0; SearchableMetricSpaceTester.verifyNearestPoints(metricSpace, queryPointSet); SearchableMetricSpaceTester.verifyKNearestPoints(metricSpace, queryPointSet); SearchableMetricSpaceTester.verifyNeighborhoods(metricSpace, epsilon); } Timing.stopAndDisplay("Non KD"); } @Test public void testKDMetricSpace2D() { Timing.restart(); for (double[][] pointCloud: this.pointCloudExamples) { AbstractSearchableMetricSpace<double[]> metricSpace = new KDEuclideanMetricSpace(pointCloud); double epsilon = MetricUtility.estimateDiameter(metricSpace) / 5.0; SearchableMetricSpaceTester.verifyNearestPoints(metricSpace, queryPointSet); SearchableMetricSpaceTester.verifyKNearestPoints(metricSpace, queryPointSet); SearchableMetricSpaceTester.verifyNeighborhoods(metricSpace, epsilon); } Timing.stopAndDisplay("KD"); } } ================================================ FILE: src_test/java/edu/stanford/math/plex4/unit_tests/SimplicialSphereTest.java ================================================ package edu.stanford.math.plex4.unit_tests; import static org.junit.Assert.assertTrue; import java.util.List; import org.junit.After; import org.junit.Before; import org.junit.Test; import edu.stanford.math.plex4.api.PersistenceAlgorithmInterface; import edu.stanford.math.plex4.examples.SimplexStreamExamples; import edu.stanford.math.plex4.homology.barcodes.BarcodeCollection; import edu.stanford.math.plex4.homology.chain_basis.Simplex; import edu.stanford.math.plex4.homology.interfaces.AbstractPersistenceAlgorithm; import edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream; import edu.stanford.math.plex4.test_utility.Timing; /** * This class tests different persistence algorithms on a simplicial sphere. Since plex 3 doesn't support * simplices of dimension greater than 7, this only tests plex 4 algorithms. * * @author Andrew Tausz * */ public class SimplicialSphereTest { @Before public void setUp() throws Exception { } @After public void tearDown() throws Exception { } /** * This function tests the plex 4 algorithms on a 16 dimensional simplicial sphere. */ @Test public void testAbsoluteHomology() { final int sphereDimension = 16; final int maxHomologyDimension = sphereDimension + 5; List<AbstractPersistenceAlgorithm<Simplex>> algorithms = PersistenceAlgorithmInterface.getAllPlex4SimplicialAbsoluteHomologyAlgorithms(maxHomologyDimension); BarcodeCollection<Integer> correctAnswer = getSphereBarcodes(sphereDimension, maxHomologyDimension); AbstractFilteredStream<Simplex> stream = getSimplicialSphere(sphereDimension); System.out.println(String.format("Number of simplices in %d-sphere: %s", sphereDimension, stream.getSize())); for (AbstractPersistenceAlgorithm<Simplex> algorithm : algorithms) { Timing.restart(); BarcodeCollection<Integer> collection = algorithm.computeIndexIntervals(stream); Timing.stopAndDisplay(algorithm.toString()); assertTrue(correctAnswer.equals(collection)); } } public static AbstractFilteredStream<Simplex> getSimplicialSphere(int dimension) { return SimplexStreamExamples.getSimplicialSphere(dimension); } public static BarcodeCollection<Integer> getSphereBarcodes(int sphereDimension, int maxBarcodeDimension) { BarcodeCollection<Integer> collection = new BarcodeCollection<Integer>(); if (maxBarcodeDimension >= 0) { collection.addRightInfiniteInterval(0, 0); } if (maxBarcodeDimension >= sphereDimension) { collection.addRightInfiniteInterval(sphereDimension, 0); } return collection; } } ================================================ FILE: src_test/java/edu/stanford/math/plex4/unit_tests/StreamsTest.java ================================================ package edu.stanford.math.plex4.unit_tests; import java.util.ArrayList; import java.util.List; import org.junit.After; import org.junit.Before; import org.junit.Test; import edu.stanford.math.plex4.examples.PointCloudExamples; import edu.stanford.math.plex4.homology.StreamTester; import edu.stanford.math.plex4.metric.impl.EuclideanMetricSpace; import edu.stanford.math.plex4.metric.landmark.LandmarkSelector; import edu.stanford.math.plex4.metric.landmark.RandomLandmarkSelector; import edu.stanford.math.plex4.utility.RandomUtility; /** * This class tests the equality of streams produced by plex 3 and plex 4. * * @author Andrew Tausz * */ public class StreamsTest { private final List<double[][]> pointClouds = new ArrayList<double[][]>(); private final int n = 60; private final int l = n/2; private final int d = 4; private final int maxDimension = 4; private final double maxFiltrationValue = 0.3; private final int numDivisions = 20; @Before public void setUp() { RandomUtility.initializeWithSeed(4); pointClouds.add(PointCloudExamples.getEquispacedCirclePoints(n)); pointClouds.add(PointCloudExamples.getGaussianPoints(n, d)); pointClouds.add(PointCloudExamples.getRandomFigure8Points(n)); pointClouds.add(PointCloudExamples.getRandomSpherePoints(n, d - 1)); } @After public void tearDown() {} @Test public void testVietorisRips() { for (double[][] pointCloud: pointClouds) { StreamTester.compareVietorisRipsStreams(pointCloud, maxDimension, maxFiltrationValue, numDivisions); } } @Test public void testLazyWitness() { for (double[][] pointCloud: pointClouds) { LandmarkSelector<double[]> landmarkSet = new RandomLandmarkSelector<double[]>(new EuclideanMetricSpace(pointCloud), l); StreamTester.compareLazyWitnessStreams(landmarkSet, maxDimension, maxFiltrationValue, numDivisions); } } @Test public void testWitness() { for (double[][] pointCloud: pointClouds) { LandmarkSelector<double[]> landmarkSet = new RandomLandmarkSelector<double[]>(new EuclideanMetricSpace(pointCloud), l); StreamTester.compareWitnessStreams(landmarkSet, maxDimension, maxFiltrationValue, numDivisions); } } } ================================================ FILE: templates/homology/AbsoluteHomology.vm ================================================ package $packageName; import java.util.Iterator; #set ($coefficientType = $templateTypes.get(0)) #set ($objectType = $genericTypes.get(0)) #set ($sumClassName = $utility.getAnnotatedClassName("SparseFormalSum", $templateTypes, $genericTypes)) #set ($fieldClassName = $utility.getAnnotatedClassName("AbstractField", [$coefficientType], [])) #set ($className = $utility.getAnnotatedClassName("AbsoluteHomology", $templateTypes, $genericTypes)) #set ($basicClassName = $utility.getClassName("AbsoluteHomology", $templateTypes, $genericTypes)) #set ($superClassName = $utility.getAnnotatedClassName("PersistentHomology", $templateTypes, $genericTypes)) #if ($coefficientType == "boolean") #set ($moduleClassName = $utility.getAnnotatedClassName("PrimitiveFreeModule", $templateTypes, $genericTypes)) #else #set ($moduleClassName = $utility.getAnnotatedClassName("AlgebraicFreeModule", $templateTypes, $genericTypes)) #end #set ($mapType = $utility.getMapType($objectType, $coefficientType) + $utility.getGenericAnnotation([$objectType, $coefficientType])) #set ($iteratorType = $utility.getMapIteratorType($objectType, $coefficientType) + $utility.getGenericAnnotation([$objectType, $coefficientType])) @Generated(value = { "edu.stanford.math.plex4.generation.GeneratorDriver" }) public class $className extends $superClassName { #if ($coefficientType == "boolean") /** * This constructor initializes the object with a comparator on the basis type. * * @param basisComparator a comparator on the basis type $objectType * @param minDimension the minimum dimension to compute * @param maxDimension the maximum dimension to compute */ public $basicClassName(Comparator<$objectType> basisComparator, int minDimension, int maxDimension) { super(basisComparator, minDimension, maxDimension); } #else /** * This constructor initializes the object with a field and a comparator on the basis type. * * @param field a field structure on the type $coefficientType * @param basisComparator a comparator on the basis type $objectType * @param minDimension the minimum dimension to compute * @param maxDimension the maximum dimension to compute */ public $basicClassName($fieldClassName field, Comparator<$objectType> basisComparator, int minDimension, int maxDimension) { super(field, basisComparator, minDimension, maxDimension); } #end @Override protected AnnotatedBarcodeCollection<Integer, $sumClassName> getAnnotatedIntervals( ObjectObjectPair<THashMap<$objectType, $sumClassName>, THashMap<$objectType, $sumClassName>> RV_pair, AbstractFilteredStream<$objectType> stream) { return this.getAnnotatedIntervals(RV_pair, stream, true); } @Override protected BarcodeCollection<Integer> getIntervals(ObjectObjectPair<THashMap<$objectType, $sumClassName>, THashMap<$objectType, $sumClassName>> RV_pair, AbstractFilteredStream<$objectType> stream) { return this.getIntervals(RV_pair, stream, true); } } ================================================ FILE: templates/homology/ClassicalHomology.vm ================================================ package $packageName; import java.util.Iterator; #set ($coefficientType = $templateTypes.get(0)) #set ($objectType = $genericTypes.get(0)) #set ($sumClassName = $utility.getAnnotatedClassName("SparseFormalSum", $templateTypes, $genericTypes)) #set ($fieldClassName = $utility.getAnnotatedClassName("AbstractField", [$coefficientType], [])) #set ($className = $utility.getAnnotatedClassName("ClassicalHomology", $templateTypes, $genericTypes)) #set ($basicClassName = $utility.getClassName("ClassicalHomology", $templateTypes, $genericTypes)) #set ($superClassName = $utility.getAnnotatedClassName("AbstractPersistenceAlgorithm", [], $genericTypes)) #if ($coefficientType == "boolean") #set ($moduleClassName = $utility.getAnnotatedClassName("PrimitiveFreeModule", $templateTypes, $genericTypes)) #else #set ($moduleClassName = $utility.getAnnotatedClassName("AlgebraicFreeModule", $templateTypes, $genericTypes)) #end #set ($mapType = $utility.getMapType($objectType, $coefficientType) + $utility.getGenericAnnotation([$objectType, $coefficientType])) #set ($iteratorType = $utility.getMapIteratorType($objectType, $coefficientType) + $utility.getGenericAnnotation([$objectType, $coefficientType])) /** * <p>This class performs the persistent homology algorithm as outlined in * the paper "Computing Persistent Homology" by Zomorodian and Carlsson.</p> * * <p>$coefficientType the underlying type of the coefficient field</p> * <p>$objectType the underlying basis type</p> * * @author autogen * * */ @Generated(value = { "edu.stanford.math.plex4.generation.GeneratorDriver" }) public class $className extends $superClassName { #if (!($coefficientType == "boolean")) protected final $fieldClassName field; #end private final $moduleClassName chainModule; private final Comparator<$objectType> basisComparator; private final int maxDimension; private final int minDimension; private THashSet<$objectType> markedSimplices = null; private THashMap<$objectType, $sumClassName> T = null; private Comparator<$objectType> filteredComparator = null; #if ($coefficientType == "boolean") /** * This constructor initializes the object with a comparator on the basis type. * * @param basisComparator a comparator on the basis type $objectType * @param minDimension the minimum dimension to compute * @param maxDimension the maximum dimension to compute */ public $basicClassName(Comparator<$objectType> basisComparator, int minDimension, int maxDimension) { this.chainModule = new $moduleClassName(); this.basisComparator = basisComparator; this.minDimension = minDimension; this.maxDimension = maxDimension; } #else /** * This constructor initializes the object with a field and a comparator on the basis type. * * @param field a field structure on the type $coefficientType * @param basisComparator a comparator on the basis type $objectType * @param minDimension the minimum dimension to compute * @param maxDimension the maximum dimension to compute */ public $basicClassName($fieldClassName field, Comparator<$objectType> basisComparator, int minDimension, int maxDimension) { this.field = field; this.chainModule = new $moduleClassName(this.field); this.basisComparator = basisComparator; this.minDimension = minDimension; this.maxDimension = maxDimension; } #end public BarcodeCollection<Integer> computeIndexIntervals(AbstractFilteredStream<$objectType> stream) { BarcodeCollection<Integer> barcodeCollection = new BarcodeCollection<Integer>(); this.filteredComparator = new FilteredComparator<$objectType>(stream, this.basisComparator); this.markedSimplices = new THashSet<$objectType>(); this.T = new THashMap<$objectType, $sumClassName>(); for ($objectType simplex : stream) { if (stream.getDimension(simplex) > maxDimension + 1) { continue; } if (stream.getDimension(simplex) < this.minDimension) { continue; } /* * Translation from paper: * * sigma_j = simplex * sigma_i = d.maxObject(); * */ this.T.remove(simplex); $sumClassName d = this.removePivotRows(simplex, stream); if (d.isEmpty()) { this.markedSimplices.add(simplex); } else { $objectType sigma_j = simplex; $objectType sigma_i = getMaximumObject(d); int k = stream.getDimension(sigma_i); // store j and d in $objectType[i] this.T.put(sigma_i, d); // store interval int index_i = stream.getFiltrationIndex(sigma_i); int index_j = stream.getFiltrationIndex(sigma_j); assert (index_i <= index_j); // don't store intervals that are simultaneously created and destroyed if ((index_j - index_i > 0) && k < maxDimension) { barcodeCollection.addInterval(k, index_i, index_j); } } } for ($objectType simplex : this.markedSimplices) { if (!this.T.containsKey(simplex) || this.T.get(simplex).isEmpty()) { int k = stream.getDimension(simplex); if (k < maxDimension) { barcodeCollection.addRightInfiniteInterval(k, stream.getFiltrationIndex(simplex)); } } } this.T = null; this.markedSimplices = null; this.filteredComparator = null; return barcodeCollection; } private $sumClassName removePivotRows($objectType simplex, AbstractFilteredStream<$objectType> stream) { $sumClassName d = chainModule.createNewSum(stream.getBoundaryCoefficients(simplex), stream.getBoundary(simplex)); #if ($coefficientType == "boolean") $objectType current = null; for (Iterator<$objectType> iterator = d.iterator(); iterator.hasNext(); ) { current = iterator.next(); if (!this.markedSimplices.contains(current)) { iterator.remove(); } } #else #if ($utility.isPrimitive($coefficientType)) // remove unmarked terms from d for ($iteratorType iterator = d.iterator(); iterator.hasNext(); ) { iterator.advance(); if (!this.markedSimplices.contains(iterator.key())) { iterator.remove(); } } #else for (Iterator<Map.Entry<$objectType, $coefficientType>> iterator = d.iterator(); iterator.hasNext(); ) { Map.Entry<$objectType, $coefficientType> entry = iterator.next(); if (!this.markedSimplices.contains(entry.getKey())) { iterator.remove(); } } #end #end $objectType sigma_i = null; #if ($coefficientType == "boolean") $coefficientType q = $utility.getDefaultElement($coefficientType); #else $coefficientType q = this.field.getZero(); #end while (!d.isEmpty()) { sigma_i = getMaximumObject(d); if (!this.T.containsKey(sigma_i) || this.T.get(sigma_i).isEmpty()) { break; } q = T.get(sigma_i).getCoefficient(sigma_i); #if ($coefficientType == "boolean") if (q == $utility.getDefaultElement($coefficientType)) { break; } #else if (field.isZero(q)) { break; } #end #if ($coefficientType == "boolean") chainModule.accumulate(d, T.get(sigma_i), q); #else chainModule.accumulate(d, T.get(sigma_i), field.invert(q)); #end } return d; } private $objectType getMaximumObject($sumClassName chain) { $objectType maxObject = null; #if ($coefficientType == "boolean") $objectType current = null; for (Iterator<$objectType> iterator = chain.iterator(); iterator.hasNext(); ) { current = iterator.next(); if (maxObject == null || this.filteredComparator.compare(current, maxObject) > 0) { maxObject = current; } } #else #if ($utility.isPrimitive($coefficientType)) for ($iteratorType iterator = chain.iterator(); iterator.hasNext(); ) { iterator.advance(); if (maxObject == null || this.filteredComparator.compare(iterator.key(), maxObject) > 0) { maxObject = iterator.key(); } } #else for (Iterator<Map.Entry<$objectType, $coefficientType>> iterator = chain.iterator(); iterator.hasNext(); ) { Map.Entry<$objectType, $coefficientType> entry = iterator.next(); if (maxObject == null || this.filteredComparator.compare(entry.getKey(), maxObject) > 0) { maxObject = entry.getKey(); } } #end #end return maxObject; } } ================================================ FILE: templates/homology/PersistenceAlgorithm.vm ================================================ package $packageName; import java.util.Iterator; #set ($coefficientType = $templateTypes.get(0)) #set ($objectType = $genericTypes.get(0)) #set ($sumClassName = $utility.getAnnotatedClassName("SparseFormalSum", $templateTypes, $genericTypes)) #set ($fieldClassName = $utility.getAnnotatedClassName("AbstractField", [$coefficientType], [])) #set ($className = $utility.getAnnotatedClassName("PersistenceAlgorithm", $templateTypes, $genericTypes)) #set ($basicClassName = $utility.getClassName("PersistenceAlgorithm", $templateTypes, $genericTypes)) #if ($coefficientType == "boolean") #set ($moduleClassName = $utility.getAnnotatedClassName("PrimitiveFreeModule", $templateTypes, $genericTypes)) #else #set ($moduleClassName = $utility.getAnnotatedClassName("AlgebraicFreeModule", $templateTypes, $genericTypes)) #end #set ($mapType = $utility.getMapType($objectType, $coefficientType) + $utility.getGenericAnnotation([$objectType, $coefficientType])) #set ($iteratorType = $utility.getMapIteratorType($objectType, $coefficientType) + $utility.getGenericAnnotation([$objectType, $coefficientType])) /** * This class defines the functionality for a persistence algorithm with underlying * field type being $coefficientType and underlying basis element type being $objectType. * It acts as an intermediate layer between the interface AbstractPersistenceBasisAlgorithm * and the actual implementations of the persistent homology/cohomology algorithms. * * <p>$coefficientType the underlying type of the coefficient field</p> * <p>$objectType the underlying basis type</p> * * @author autogen * */ @Generated(value = { "edu.stanford.math.plex4.generation.GeneratorDriver" }) public abstract class $className extends AbstractPersistenceBasisAlgorithm<$objectType, $sumClassName> { #if (!($coefficientType == "boolean")) /** * This is the field over which we perform the arithmetic computations. */ protected final $fieldClassName field; #end /** * This objects performs the chain computations. */ protected final $moduleClassName chainModule; /** * This comparator defines the ordering on the basis elements. */ protected final Comparator<$objectType> basisComparator; /** * This comparator provides the dictionary ordering on filtration value - basis element * pairs. */ protected Comparator<$objectType> filteredComparator = null; /** * This stores the minimum dimension for which to compute (co)homology. */ protected int minDimension = 0; /** * This stores the maximum dimension for which to compute (co)homology. */ protected int maxDimension = 2; #if ($coefficientType == "boolean") /** * This constructor initializes the object with a comparator on the basis type. * * @param basisComparator a comparator on the basis type $objectType * @param minDimension the minimum dimension to compute * @param maxDimension the maximum dimension to compute */ public $basicClassName(Comparator<$objectType> basisComparator, int minDimension, int maxDimension) { this.chainModule = new $moduleClassName(); this.basisComparator = basisComparator; this.minDimension = minDimension; this.maxDimension = maxDimension; } #else /** * This constructor initializes the object with a field and a comparator on the basis type. * * @param field a field structure on the type $coefficientType * @param basisComparator a comparator on the basis type $objectType * @param minDimension the minimum dimension to compute * @param maxDimension the maximum dimension to compute */ public $basicClassName($fieldClassName field, Comparator<$objectType> basisComparator, int minDimension, int maxDimension) { this.field = field; this.chainModule = new $moduleClassName(this.field); this.basisComparator = basisComparator; this.minDimension = minDimension; this.maxDimension = maxDimension; } #end /** * This function simply updates the filtered comparator to the one induced by the given filtered stream. * * @param stream the AbstractFilteredStream that provides the filtration index information */ protected void initializeFilteredComparator(AbstractFilteredStream<$objectType> stream) { this.filteredComparator = new FilteredComparator<$objectType>(stream, this.basisComparator); } /** * This function returns the free module used for the arithmetic computations. * * @return the free module over chains in $objectType */ public $moduleClassName getChainModule() { return this.chainModule; } #if (!($coefficientType == "boolean")) /** * This function returns the field over which the homology is computed. * * @return the field over type $coefficientType */ public $fieldClassName getField() { return this.field; } #end public BarcodeCollection<Integer> computeIndexIntervals(AbstractFilteredStream<$objectType> stream) { this.initializeFilteredComparator(stream); return this.computeIntervalsImpl(stream); } public AnnotatedBarcodeCollection<Integer, $sumClassName> computeAnnotatedIndexIntervals(AbstractFilteredStream<$objectType> stream) { this.initializeFilteredComparator(stream); return this.computeAnnotatedIntervalsImpl(stream); } /** * This function provides the implementation of computeIntervals. * * @param stream the filtered chain complex * @return the persistence intervals of the given complex */ protected abstract BarcodeCollection<Integer> computeIntervalsImpl(AbstractFilteredStream<$objectType> stream); /** * This function provides the implementation of computeAnnotatedIntervals. * * @param stream the filtered chain complex * @return the augmented persistence intervals */ protected abstract AnnotatedBarcodeCollection<Integer, $sumClassName> computeAnnotatedIntervalsImpl(AbstractFilteredStream<$objectType> stream); /** * This function computes the operation low_A(j) as described in the paper. Note that if * the chain is empty (for example the column contains only zeros), then this function * returns null. * * @param chain the chain to search * @return the lowest element of the chain */ protected $objectType low($sumClassName chain) { $objectType maxObject = null; #if ($coefficientType == "boolean") $objectType current = null; for (Iterator<$objectType> iterator = chain.iterator(); iterator.hasNext(); ) { current = iterator.next(); if (maxObject == null || this.filteredComparator.compare(current, maxObject) > 0) { maxObject = current; } } #else #if ($utility.isPrimitive($coefficientType)) for ($iteratorType iterator = chain.iterator(); iterator.hasNext(); ) { iterator.advance(); if (maxObject == null || this.filteredComparator.compare(iterator.key(), maxObject) > 0) { maxObject = iterator.key(); } } #else for (Iterator<Map.Entry<$objectType, $coefficientType>> iterator = chain.iterator(); iterator.hasNext(); ) { Map.Entry<$objectType, $coefficientType> entry = iterator.next(); if (maxObject == null || this.filteredComparator.compare(entry.getKey(), maxObject) > 0) { maxObject = entry.getKey(); } } #end #end return maxObject; } } ================================================ FILE: templates/homology/PersistentHomology.vm ================================================ package $packageName; import java.util.Iterator; #set ($coefficientType = $templateTypes.get(0)) #set ($objectType = $genericTypes.get(0)) #set ($sumClassName = $utility.getAnnotatedClassName("SparseFormalSum", $templateTypes, $genericTypes)) #set ($fieldClassName = $utility.getAnnotatedClassName("AbstractField", [$coefficientType], [])) #set ($className = $utility.getAnnotatedClassName("PersistentHomology", $templateTypes, $genericTypes)) #set ($basicClassName = $utility.getClassName("PersistentHomology", $templateTypes, $genericTypes)) #set ($superClassName = $utility.getAnnotatedClassName("PersistenceAlgorithm", $templateTypes, $genericTypes)) #if ($coefficientType == "boolean") #set ($moduleClassName = $utility.getAnnotatedClassName("PrimitiveFreeModule", $templateTypes, $genericTypes)) #else #set ($moduleClassName = $utility.getAnnotatedClassName("AlgebraicFreeModule", $templateTypes, $genericTypes)) #end #set ($mapType = $utility.getMapType($objectType, $coefficientType) + $utility.getGenericAnnotation([$objectType, $coefficientType])) #set ($iteratorType = $utility.getMapIteratorType($objectType, $coefficientType) + $utility.getGenericAnnotation([$objectType, $coefficientType])) /** * This class defines the functionality for a persistence algorithm with underlying * field type being $coefficientType and underlying basis element type being $objectType. * It acts as an intermediate layer between the interface AbstractPersistenceBasisAlgorithm * and the actual implementations of the persistent homology/cohomology algorithms. * * <p>$coefficientType the underlying type of the coefficient field</p> * <p>$objectType the underlying basis type</p> * * @author autogen * */ @Generated(value = { "edu.stanford.math.plex4.generation.GeneratorDriver" }) public abstract class $className extends $superClassName { #if ($coefficientType == "boolean") /** * This constructor initializes the object with a comparator on the basis type. * * @param basisComparator a comparator on the basis type $objectType * @param minDimension the minimum dimension to compute * @param maxDimension the maximum dimension to compute */ public $basicClassName(Comparator<$objectType> basisComparator, int minDimension, int maxDimension) { super(basisComparator, minDimension, maxDimension); } #else /** * This constructor initializes the object with a field and a comparator on the basis type. * * @param field a field structure on the type $coefficientType * @param basisComparator a comparator on the basis type $objectType * @param minDimension the minimum dimension to compute * @param maxDimension the maximum dimension to compute */ public $basicClassName($fieldClassName field, Comparator<$objectType> basisComparator, int minDimension, int maxDimension) { super(field, basisComparator, minDimension, maxDimension); } #end @Override protected AnnotatedBarcodeCollection<Integer, $sumClassName> computeAnnotatedIntervalsImpl(AbstractFilteredStream<$objectType> stream) { return this.getAnnotatedIntervals(this.pHcol(stream), stream); } @Override protected BarcodeCollection<Integer> computeIntervalsImpl(AbstractFilteredStream<$objectType> stream) { return this.getIntervals(this.pHcol(stream), stream); } /** * This function implements the pHcol algorithm described in the paper. It computes the decomposition * R = D * V, where D is the boundary matrix, R is reduced, and is invertible and upper triangular. * This function returns the pair (R, V). Note that in our implementation, we represent a matrix by * a hash map which maps a generating object to a formal sum which corresponds to a column in the matrix. * Note that this is simply a sparse representation of a linear transformation on a vector space with * free basis consisting of elements of type $objectType. * * @param stream the filtered chain complex which provides elements in increasing filtration order * @return a ObjectObjectPair containing the matrices R and V */ private ObjectObjectPair<THashMap<$objectType, $sumClassName>, THashMap<$objectType, $sumClassName>> pHcol(AbstractFilteredStream<$objectType> stream) { THashMap<$objectType, $sumClassName> R = new THashMap<$objectType, $sumClassName>(); THashMap<$objectType, $sumClassName> V = new THashMap<$objectType, $sumClassName>(); /** * This maps a simplex to the set of columns containing the key as its low value. */ THashMap<$objectType, THashSet<$objectType>> lowMap = new THashMap<$objectType, THashSet<$objectType>>(); for ($objectType i : stream) { /* * Do not process simplices of higher dimension than maxDimension. */ if (stream.getDimension(i) < this.minDimension) { continue; } if (stream.getDimension(i) > this.maxDimension + 1) { continue; } // initialize V to be the identity matrix #if ($coefficientType == "boolean") V.put(i, this.chainModule.createNewSum(i)); #else V.put(i, this.chainModule.createNewSum(this.field.valueOf(1), i)); #end // form the column R[i] which equals the boundary of the current simplex. // store the column as a column in R R.put(i, chainModule.createNewSum(stream.getBoundaryCoefficients(i), stream.getBoundary(i))); // compute low_R(i) $objectType low_R_i = this.low(R.get(i)); // if the boundary of i is empty, then continue to next iteration since there // is nothing to process if (low_R_i == null) { continue; } THashSet<$objectType> matchingLowSimplices = lowMap.get(low_R_i); while (matchingLowSimplices != null && !matchingLowSimplices.isEmpty()) { Iterator<$objectType> iterator = matchingLowSimplices.iterator(); /** * TODO: Is this the right thing to do??? * Ie. should the iterator.next go at the end of the loop? */ $objectType j = iterator.next(); #if ($coefficientType == "boolean") assert (R.get(j).getCoefficient(low_R_i) == true); $coefficientType negative_c = R.get(i).getCoefficient(low_R_i); #else $coefficientType c = field.divide(R.get(i).getCoefficient(low_R_i), R.get(j).getCoefficient(low_R_i)); $coefficientType negative_c = field.negate(c); #end //R.put(i, chainModule.subtract(R.get(i), chainModule.multiply(c, R.get(j)))); //V.put(i, chainModule.subtract(V.get(i), chainModule.multiply(c, V.get(j)))); this.chainModule.accumulate(R.get(i), R.get(j), negative_c); this.chainModule.accumulate(V.get(i), V.get(j), negative_c); // remove old low_R(i) entry //lowMap.get(low_R_i).remove(i); // recompute low_R(i) low_R_i = this.low(R.get(i)); matchingLowSimplices = lowMap.get(low_R_i); } // store the low value in the map if (low_R_i != null) { if (!lowMap.containsKey(low_R_i)) { lowMap.put(low_R_i, new THashSet<$objectType>()); } lowMap.get(low_R_i).add(i); } } // at this point we have computed the decomposition R = D * V // we return the pair (R, V) return new ObjectObjectPair<THashMap<$objectType, $sumClassName>, THashMap<$objectType, $sumClassName>>(R, V); } protected abstract AnnotatedBarcodeCollection<Integer, $sumClassName> getAnnotatedIntervals(ObjectObjectPair<THashMap<$objectType, $sumClassName>, THashMap<$objectType, $sumClassName>> RV_pair, AbstractFilteredStream<$objectType> stream); protected abstract BarcodeCollection<Integer> getIntervals(ObjectObjectPair<THashMap<$objectType, $sumClassName>, THashMap<$objectType, $sumClassName>> RV_pair, AbstractFilteredStream<$objectType> stream); protected AnnotatedBarcodeCollection<Integer, $sumClassName> getAnnotatedIntervals( ObjectObjectPair<THashMap<$objectType, $sumClassName>, THashMap<$objectType, $sumClassName>> RV_pair, AbstractFilteredStream<$objectType> stream, boolean absolute) { AnnotatedBarcodeCollection<Integer, $sumClassName> barcodeCollection = new AnnotatedBarcodeCollection<Integer, $sumClassName>(); THashMap<$objectType, $sumClassName> R = RV_pair.getFirst(); THashMap<$objectType, $sumClassName> V = RV_pair.getSecond(); Set<$objectType> births = new THashSet<$objectType>(); for ($objectType i: stream) { if (!R.containsKey(i)) { continue; } $objectType low_R_i = this.low(R.get(i)); int dimension = stream.getDimension(i); if (low_R_i == null) { if (dimension <= this.maxDimension && dimension >= this.minDimension) { births.add(i); } } else { // simplex i kills low_R_i births.remove(low_R_i); births.remove(i); int start = stream.getFiltrationIndex(low_R_i); int end = stream.getFiltrationIndex(i); if (end > start) { if (absolute) { dimension = stream.getDimension(low_R_i); if (dimension < this.maxDimension && dimension >= this.minDimension) barcodeCollection.addInterval(stream.getDimension(low_R_i), start, end, R.get(i)); } else { dimension = stream.getDimension(i); if (dimension < this.maxDimension && dimension >= this.minDimension) barcodeCollection.addInterval(dimension, start, end, V.get(i)); } } } } // the elements in birth are the ones that are never killed // these correspond to semi-infinite intervals for ($objectType i: births) { int dimension = stream.getDimension(i); if (dimension < this.maxDimension && dimension >= this.minDimension) { if (absolute) { barcodeCollection.addRightInfiniteInterval(stream.getDimension(i), stream.getFiltrationIndex(i), V.get(i)); } else { barcodeCollection.addLeftInfiniteInterval(stream.getDimension(i), stream.getFiltrationIndex(i), V.get(i)); } } } return barcodeCollection; } protected BarcodeCollection<Integer> getIntervals( ObjectObjectPair<THashMap<$objectType, $sumClassName>, THashMap<$objectType, $sumClassName>> RV_pair, AbstractFilteredStream<$objectType> stream, boolean absolute) { BarcodeCollection<Integer> barcodeCollection = new BarcodeCollection<Integer>(); THashMap<$objectType, $sumClassName> R = RV_pair.getFirst(); Set<$objectType> births = new THashSet<$objectType>(); for ($objectType i: stream) { if (!R.containsKey(i)) { continue; } $objectType low_R_i = this.low(R.get(i)); int dimension = stream.getDimension(i); if (low_R_i == null) { if (dimension <= this.maxDimension && dimension >= this.minDimension) { births.add(i); } } else { // simplex i kills low_R_i births.remove(low_R_i); births.remove(i); int start = stream.getFiltrationIndex(low_R_i); int end = stream.getFiltrationIndex(i); if (end > start) { if (absolute) { dimension = stream.getDimension(low_R_i); if (dimension < this.maxDimension && dimension >= this.minDimension) barcodeCollection.addInterval(stream.getDimension(low_R_i), start, end); } else { dimension = stream.getDimension(i); if (dimension < this.maxDimension && dimension >= this.minDimension) barcodeCollection.addInterval(dimension, start, end); } } } } // the elements in birth are the ones that are never killed // these correspond to semi-infinite intervals for ($objectType i: births) { int dimension = stream.getDimension(i); if (dimension < this.maxDimension && dimension >= this.minDimension) { if (absolute) { barcodeCollection.addRightInfiniteInterval(stream.getDimension(i), stream.getFiltrationIndex(i)); } else { barcodeCollection.addLeftInfiniteInterval(stream.getDimension(i), stream.getFiltrationIndex(i)); } } } return barcodeCollection; } } ================================================ FILE: templates/homology/RelativeHomology.vm ================================================ package $packageName; import java.util.Iterator; #set ($coefficientType = $templateTypes.get(0)) #set ($objectType = $genericTypes.get(0)) #set ($sumClassName = $utility.getAnnotatedClassName("SparseFormalSum", $templateTypes, $genericTypes)) #set ($fieldClassName = $utility.getAnnotatedClassName("AbstractField", [$coefficientType], [])) #set ($className = $utility.getAnnotatedClassName("RelativeHomology", $templateTypes, $genericTypes)) #set ($basicClassName = $utility.getClassName("RelativeHomology", $templateTypes, $genericTypes)) #set ($superClassName = $utility.getAnnotatedClassName("PersistentHomology", $templateTypes, $genericTypes)) #if ($coefficientType == "boolean") #set ($moduleClassName = $utility.getAnnotatedClassName("PrimitiveFreeModule", $templateTypes, $genericTypes)) #else #set ($moduleClassName = $utility.getAnnotatedClassName("AlgebraicFreeModule", $templateTypes, $genericTypes)) #end #set ($mapType = $utility.getMapType($objectType, $coefficientType) + $utility.getGenericAnnotation([$objectType, $coefficientType])) #set ($iteratorType = $utility.getMapIteratorType($objectType, $coefficientType) + $utility.getGenericAnnotation([$objectType, $coefficientType])) @Generated(value = { "edu.stanford.math.plex4.generation.GeneratorDriver" }) public class $className extends $superClassName { #if ($coefficientType == "boolean") /** * This constructor initializes the object with a comparator on the basis type. * * @param basisComparator a comparator on the basis type $objectType * @param minDimension the minimum dimension to compute * @param maxDimension the maximum dimension to compute */ public $basicClassName(Comparator<$objectType> basisComparator, int minDimension, int maxDimension) { super(basisComparator, minDimension, maxDimension); } #else /** * This constructor initializes the object with a field and a comparator on the basis type. * * @param field a field structure on the type $coefficientType * @param basisComparator a comparator on the basis type $objectType * @param minDimension the minimum dimension to compute * @param maxDimension the maximum dimension to compute */ public $basicClassName($fieldClassName field, Comparator<$objectType> basisComparator, int minDimension, int maxDimension) { super(field, basisComparator, minDimension, maxDimension); } #end @Override protected AnnotatedBarcodeCollection<Integer, $sumClassName> getAnnotatedIntervals( ObjectObjectPair<THashMap<$objectType, $sumClassName>, THashMap<$objectType, $sumClassName>> RV_pair, AbstractFilteredStream<$objectType> stream) { return this.getAnnotatedIntervals(RV_pair, stream, false); } @Override protected BarcodeCollection<Integer> getIntervals(ObjectObjectPair<THashMap<$objectType, $sumClassName>, THashMap<$objectType, $sumClassName>> RV_pair, AbstractFilteredStream<$objectType> stream) { return this.getIntervals(RV_pair, stream, false); } }